Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
 help / color / mirror / Atom feed
From: Nuo Mi <nuomi2021@gmail.com>
To: ffmpeg-devel@ffmpeg.org
Cc: Nuo Mi <nuomi2021@gmail.com>, Shaun Loo <shaunloo10@gmail.com>
Subject: [FFmpeg-devel] [PATCH v2 3/7] x86/hevcdec: refact, remove duplicate code in HEVC_SAO_{BAND, EDGE}_FILTER
Date: Sat,  3 May 2025 17:13:15 +0800
Message-ID: <20250503091319.76948-3-nuomi2021@gmail.com> (raw)
In-Reply-To: <20250503091319.76948-1-nuomi2021@gmail.com>

From: Shaun Loo <shaunloo10@gmail.com>

This is a part of Google Summer of Code 2023

Co-authored-by: Nuo Mi <nuomi2021@gmail.com>
---
 libavcodec/x86/hevc/sao_10bit.asm | 100 ++++++++++++++----------------
 1 file changed, 48 insertions(+), 52 deletions(-)

diff --git a/libavcodec/x86/hevc/sao_10bit.asm b/libavcodec/x86/hevc/sao_10bit.asm
index eeb2b2fe59..0320efd758 100644
--- a/libavcodec/x86/hevc/sao_10bit.asm
+++ b/libavcodec/x86/hevc/sao_10bit.asm
@@ -28,18 +28,17 @@
     H2656_SAO_BAND_FILTER hevc, %1, %2, %3
 %endmacro
 
+%macro HEVC_SAO_BAND_FILTER_FUNCS 1
+    HEVC_SAO_BAND_FILTER %1,  8, 1
+    HEVC_SAO_BAND_FILTER %1, 16, 2
+    HEVC_SAO_BAND_FILTER %1, 32, 4
+    HEVC_SAO_BAND_FILTER %1, 48, 6
+    HEVC_SAO_BAND_FILTER %1, 64, 8
+%endmacro
+
 %macro HEVC_SAO_BAND_FILTER_FUNCS 0
-HEVC_SAO_BAND_FILTER 10,  8, 1
-HEVC_SAO_BAND_FILTER 10, 16, 2
-HEVC_SAO_BAND_FILTER 10, 32, 4
-HEVC_SAO_BAND_FILTER 10, 48, 6
-HEVC_SAO_BAND_FILTER 10, 64, 8
-
-HEVC_SAO_BAND_FILTER 12,  8, 1
-HEVC_SAO_BAND_FILTER 12, 16, 2
-HEVC_SAO_BAND_FILTER 12, 32, 4
-HEVC_SAO_BAND_FILTER 12, 48, 6
-HEVC_SAO_BAND_FILTER 12, 64, 8
+    HEVC_SAO_BAND_FILTER_FUNCS 10
+    HEVC_SAO_BAND_FILTER_FUNCS 12
 %endmacro
 
 INIT_XMM sse2
@@ -48,54 +47,51 @@ INIT_XMM avx
 HEVC_SAO_BAND_FILTER_FUNCS
 
 %if HAVE_AVX2_EXTERNAL
-INIT_XMM avx2
-HEVC_SAO_BAND_FILTER 10,  8, 1
-INIT_YMM avx2
-HEVC_SAO_BAND_FILTER 10, 16, 1
-HEVC_SAO_BAND_FILTER 10, 32, 2
-HEVC_SAO_BAND_FILTER 10, 48, 3
-HEVC_SAO_BAND_FILTER 10, 64, 4
-
-INIT_XMM avx2
-HEVC_SAO_BAND_FILTER 12,  8, 1
-INIT_YMM avx2
-HEVC_SAO_BAND_FILTER 12, 16, 1
-HEVC_SAO_BAND_FILTER 12, 32, 2
-HEVC_SAO_BAND_FILTER 12, 48, 3
-HEVC_SAO_BAND_FILTER 12, 64, 4
+
+%macro HEVC_SAO_BAND_FILTER_FUNCS_AVX2 1
+    INIT_XMM avx2
+    HEVC_SAO_BAND_FILTER %1,  8, 1
+    INIT_YMM avx2
+    HEVC_SAO_BAND_FILTER %1, 16, 1
+    HEVC_SAO_BAND_FILTER %1, 32, 2
+    HEVC_SAO_BAND_FILTER %1, 48, 3
+    HEVC_SAO_BAND_FILTER %1, 64, 4
+%endmacro
+
+    HEVC_SAO_BAND_FILTER_FUNCS_AVX2 10
+    HEVC_SAO_BAND_FILTER_FUNCS_AVX2 12
+
 %endif
 
 %macro HEVC_SAO_EDGE_FILTER 3
     H2656_SAO_EDGE_FILTER hevc, %1, %2, %3
 %endmacro
 
+%macro HEVC_SAO_EDGE_FILTER_FUNCS 1
+    HEVC_SAO_EDGE_FILTER %1,  8, 1
+    HEVC_SAO_EDGE_FILTER %1, 16, 2
+    HEVC_SAO_EDGE_FILTER %1, 32, 4
+    HEVC_SAO_EDGE_FILTER %1, 48, 6
+    HEVC_SAO_EDGE_FILTER %1, 64, 8
+%endmacro
+
 INIT_XMM sse2
-HEVC_SAO_EDGE_FILTER 10,  8, 1
-HEVC_SAO_EDGE_FILTER 10, 16, 2
-HEVC_SAO_EDGE_FILTER 10, 32, 4
-HEVC_SAO_EDGE_FILTER 10, 48, 6
-HEVC_SAO_EDGE_FILTER 10, 64, 8
-
-HEVC_SAO_EDGE_FILTER 12,  8, 1
-HEVC_SAO_EDGE_FILTER 12, 16, 2
-HEVC_SAO_EDGE_FILTER 12, 32, 4
-HEVC_SAO_EDGE_FILTER 12, 48, 6
-HEVC_SAO_EDGE_FILTER 12, 64, 8
+HEVC_SAO_EDGE_FILTER_FUNCS 10
+HEVC_SAO_EDGE_FILTER_FUNCS 12
 
 %if HAVE_AVX2_EXTERNAL
-INIT_XMM avx2
-HEVC_SAO_EDGE_FILTER 10,  8, 1
-INIT_YMM avx2
-HEVC_SAO_EDGE_FILTER 10, 16, 1
-HEVC_SAO_EDGE_FILTER 10, 32, 2
-HEVC_SAO_EDGE_FILTER 10, 48, 3
-HEVC_SAO_EDGE_FILTER 10, 64, 4
-
-INIT_XMM avx2
-HEVC_SAO_EDGE_FILTER 12,  8, 1
-INIT_YMM avx2
-HEVC_SAO_EDGE_FILTER 12, 16, 1
-HEVC_SAO_EDGE_FILTER 12, 32, 2
-HEVC_SAO_EDGE_FILTER 12, 48, 3
-HEVC_SAO_EDGE_FILTER 12, 64, 4
+
+%macro HEVC_SAO_EDGE_FILTER_FUNCS_AVX2 1
+    INIT_XMM avx2
+    HEVC_SAO_EDGE_FILTER %1,  8, 1
+    INIT_YMM avx2
+    HEVC_SAO_EDGE_FILTER %1, 16, 1
+    HEVC_SAO_EDGE_FILTER %1, 32, 2
+    HEVC_SAO_EDGE_FILTER %1, 48, 3
+    HEVC_SAO_EDGE_FILTER %1, 64, 4
+%endmacro
+
+HEVC_SAO_EDGE_FILTER_FUNCS_AVX2 10
+HEVC_SAO_EDGE_FILTER_FUNCS_AVX2 12
+
 %endif
-- 
2.34.1

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

  parent reply	other threads:[~2025-05-03  9:14 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-05-03  9:13 [FFmpeg-devel] [PATCH v2 1/7] x86/vvcdec: misc, reordered functions in dsp_init for improved readability Nuo Mi
2025-05-03  9:13 ` [FFmpeg-devel] [PATCH v2 2/7] x86/hevcdec: sao, refact out h26x macros Nuo Mi
2025-05-03  9:13 ` Nuo Mi [this message]
2025-05-03  9:13 ` [FFmpeg-devel] [PATCH v2 4/7] x86/vvcdec: sao, add avx2 support Nuo Mi
2025-05-03  9:13 ` [FFmpeg-devel] [PATCH v2 5/7] checkasm: add vvc_sao Nuo Mi
2025-05-03  9:13 ` [FFmpeg-devel] [PATCH v2 6/7] checkasm: hevc sao_edge, benchmarking inside the width loop is meaningless Nuo Mi
2025-05-15  1:05   ` softworkz .
2025-05-15 12:49     ` Nuo Mi
2025-05-15 20:29       ` softworkz .
2025-05-03  9:13 ` [FFmpeg-devel] [PATCH v2 7/7] checkasm: hevc sao, use checkasm_check_padded Nuo Mi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20250503091319.76948-3-nuomi2021@gmail.com \
    --to=nuomi2021@gmail.com \
    --cc=ffmpeg-devel@ffmpeg.org \
    --cc=shaunloo10@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \
		ffmpegdev@gitmailbox.com
	public-inbox-index ffmpegdev

Example config snippet for mirrors.


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git