From: Shaun Loo <shaunlo...@gmail.com>

This is a part of Google Summer of Code 2023

Co-authored-by: Nuo Mi <nuomi2...@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 77967db5e6..8173509d6f 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-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to