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".
next prev 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