You've already forked FFmpeg
mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-08-04 22:03:09 +02:00
x86/hevcdec: refact, remove duplicate code in HEVC_SAO_{BAND, EDGE}_FILTER
This is a part of Google Summer of Code 2023 Co-authored-by: Nuo Mi <nuomi2021@gmail.com>
This commit is contained in:
@ -28,18 +28,17 @@
|
|||||||
H2656_SAO_BAND_FILTER hevc, %1, %2, %3
|
H2656_SAO_BAND_FILTER hevc, %1, %2, %3
|
||||||
%endmacro
|
%endmacro
|
||||||
|
|
||||||
%macro HEVC_SAO_BAND_FILTER_FUNCS 0
|
%macro HEVC_SAO_BAND_FILTER_FUNCS 1
|
||||||
HEVC_SAO_BAND_FILTER 10, 8, 1
|
HEVC_SAO_BAND_FILTER %1, 8, 1
|
||||||
HEVC_SAO_BAND_FILTER 10, 16, 2
|
HEVC_SAO_BAND_FILTER %1, 16, 2
|
||||||
HEVC_SAO_BAND_FILTER 10, 32, 4
|
HEVC_SAO_BAND_FILTER %1, 32, 4
|
||||||
HEVC_SAO_BAND_FILTER 10, 48, 6
|
HEVC_SAO_BAND_FILTER %1, 48, 6
|
||||||
HEVC_SAO_BAND_FILTER 10, 64, 8
|
HEVC_SAO_BAND_FILTER %1, 64, 8
|
||||||
|
%endmacro
|
||||||
|
|
||||||
HEVC_SAO_BAND_FILTER 12, 8, 1
|
%macro HEVC_SAO_BAND_FILTER_FUNCS 0
|
||||||
HEVC_SAO_BAND_FILTER 12, 16, 2
|
HEVC_SAO_BAND_FILTER_FUNCS 10
|
||||||
HEVC_SAO_BAND_FILTER 12, 32, 4
|
HEVC_SAO_BAND_FILTER_FUNCS 12
|
||||||
HEVC_SAO_BAND_FILTER 12, 48, 6
|
|
||||||
HEVC_SAO_BAND_FILTER 12, 64, 8
|
|
||||||
%endmacro
|
%endmacro
|
||||||
|
|
||||||
INIT_XMM sse2
|
INIT_XMM sse2
|
||||||
@ -48,54 +47,51 @@ INIT_XMM avx
|
|||||||
HEVC_SAO_BAND_FILTER_FUNCS
|
HEVC_SAO_BAND_FILTER_FUNCS
|
||||||
|
|
||||||
%if HAVE_AVX2_EXTERNAL
|
%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
|
%macro HEVC_SAO_BAND_FILTER_FUNCS_AVX2 1
|
||||||
HEVC_SAO_BAND_FILTER 12, 8, 1
|
INIT_XMM avx2
|
||||||
INIT_YMM avx2
|
HEVC_SAO_BAND_FILTER %1, 8, 1
|
||||||
HEVC_SAO_BAND_FILTER 12, 16, 1
|
INIT_YMM avx2
|
||||||
HEVC_SAO_BAND_FILTER 12, 32, 2
|
HEVC_SAO_BAND_FILTER %1, 16, 1
|
||||||
HEVC_SAO_BAND_FILTER 12, 48, 3
|
HEVC_SAO_BAND_FILTER %1, 32, 2
|
||||||
HEVC_SAO_BAND_FILTER 12, 64, 4
|
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
|
%endif
|
||||||
|
|
||||||
%macro HEVC_SAO_EDGE_FILTER 3
|
%macro HEVC_SAO_EDGE_FILTER 3
|
||||||
H2656_SAO_EDGE_FILTER hevc, %1, %2, %3
|
H2656_SAO_EDGE_FILTER hevc, %1, %2, %3
|
||||||
%endmacro
|
%endmacro
|
||||||
|
|
||||||
INIT_XMM sse2
|
%macro HEVC_SAO_EDGE_FILTER_FUNCS 1
|
||||||
HEVC_SAO_EDGE_FILTER 10, 8, 1
|
HEVC_SAO_EDGE_FILTER %1, 8, 1
|
||||||
HEVC_SAO_EDGE_FILTER 10, 16, 2
|
HEVC_SAO_EDGE_FILTER %1, 16, 2
|
||||||
HEVC_SAO_EDGE_FILTER 10, 32, 4
|
HEVC_SAO_EDGE_FILTER %1, 32, 4
|
||||||
HEVC_SAO_EDGE_FILTER 10, 48, 6
|
HEVC_SAO_EDGE_FILTER %1, 48, 6
|
||||||
HEVC_SAO_EDGE_FILTER 10, 64, 8
|
HEVC_SAO_EDGE_FILTER %1, 64, 8
|
||||||
|
%endmacro
|
||||||
|
|
||||||
HEVC_SAO_EDGE_FILTER 12, 8, 1
|
INIT_XMM sse2
|
||||||
HEVC_SAO_EDGE_FILTER 12, 16, 2
|
HEVC_SAO_EDGE_FILTER_FUNCS 10
|
||||||
HEVC_SAO_EDGE_FILTER 12, 32, 4
|
HEVC_SAO_EDGE_FILTER_FUNCS 12
|
||||||
HEVC_SAO_EDGE_FILTER 12, 48, 6
|
|
||||||
HEVC_SAO_EDGE_FILTER 12, 64, 8
|
|
||||||
|
|
||||||
%if HAVE_AVX2_EXTERNAL
|
%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
|
%macro HEVC_SAO_EDGE_FILTER_FUNCS_AVX2 1
|
||||||
HEVC_SAO_EDGE_FILTER 12, 8, 1
|
INIT_XMM avx2
|
||||||
INIT_YMM avx2
|
HEVC_SAO_EDGE_FILTER %1, 8, 1
|
||||||
HEVC_SAO_EDGE_FILTER 12, 16, 1
|
INIT_YMM avx2
|
||||||
HEVC_SAO_EDGE_FILTER 12, 32, 2
|
HEVC_SAO_EDGE_FILTER %1, 16, 1
|
||||||
HEVC_SAO_EDGE_FILTER 12, 48, 3
|
HEVC_SAO_EDGE_FILTER %1, 32, 2
|
||||||
HEVC_SAO_EDGE_FILTER 12, 64, 4
|
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
|
%endif
|
||||||
|
Reference in New Issue
Block a user