History

x86/hevcdec: refact, remove duplicate code in HEVC_SAO_{BAND, EDGE}_FILTER

This is a part of Google Summer of Code 2023

Shaun Loo committed 1 year ago

Commit 69f63c61 parent dbd859a1 file · +48 −52Browse files

Unified · Split

libavcodec/x86/hevc/sao_10bit.asm+48−52
@@ -28,18 +28,17 @@ · 27 unmodified lines
2828 H2656_SAO_BAND_FILTER hevc, %1, %2, %3
2929 %endmacro
3030
31+%macro HEVC_SAO_BAND_FILTER_FUNCS 1
32+ HEVC_SAO_BAND_FILTER %1, 8, 1
33+ HEVC_SAO_BAND_FILTER %1, 16, 2
34+ HEVC_SAO_BAND_FILTER %1, 32, 4
35+ HEVC_SAO_BAND_FILTER %1, 48, 6
36+ HEVC_SAO_BAND_FILTER %1, 64, 8
37+%endmacro
38+
3139 %macro HEVC_SAO_BAND_FILTER_FUNCS 0
32−HEVC_SAO_BAND_FILTER 10, 8, 1
33−HEVC_SAO_BAND_FILTER 10, 16, 2
34−HEVC_SAO_BAND_FILTER 10, 32, 4
35−HEVC_SAO_BAND_FILTER 10, 48, 6
36−HEVC_SAO_BAND_FILTER 10, 64, 8
37−
38−HEVC_SAO_BAND_FILTER 12, 8, 1
39−HEVC_SAO_BAND_FILTER 12, 16, 2
40−HEVC_SAO_BAND_FILTER 12, 32, 4
41−HEVC_SAO_BAND_FILTER 12, 48, 6
42−HEVC_SAO_BAND_FILTER 12, 64, 8
40+ HEVC_SAO_BAND_FILTER_FUNCS 10
41+ HEVC_SAO_BAND_FILTER_FUNCS 12
4342 %endmacro
4443
4544 INIT_XMM sse2
@@ -48,54 +47,51 @@ INIT_XMM avx · 2 unmodified lines
4847 HEVC_SAO_BAND_FILTER_FUNCS
4948
5049 %if HAVE_AVX2_EXTERNAL
51−INIT_XMM avx2
52−HEVC_SAO_BAND_FILTER 10, 8, 1
53−INIT_YMM avx2
54−HEVC_SAO_BAND_FILTER 10, 16, 1
55−HEVC_SAO_BAND_FILTER 10, 32, 2
56−HEVC_SAO_BAND_FILTER 10, 48, 3
57−HEVC_SAO_BAND_FILTER 10, 64, 4
58−
59−INIT_XMM avx2
60−HEVC_SAO_BAND_FILTER 12, 8, 1
61−INIT_YMM avx2
62−HEVC_SAO_BAND_FILTER 12, 16, 1
63−HEVC_SAO_BAND_FILTER 12, 32, 2
64−HEVC_SAO_BAND_FILTER 12, 48, 3
65−HEVC_SAO_BAND_FILTER 12, 64, 4
50+
51+%macro HEVC_SAO_BAND_FILTER_FUNCS_AVX2 1
52+ INIT_XMM avx2
53+ HEVC_SAO_BAND_FILTER %1, 8, 1
54+ INIT_YMM avx2
55+ HEVC_SAO_BAND_FILTER %1, 16, 1
56+ HEVC_SAO_BAND_FILTER %1, 32, 2
57+ HEVC_SAO_BAND_FILTER %1, 48, 3
58+ HEVC_SAO_BAND_FILTER %1, 64, 4
59+%endmacro
60+
61+ HEVC_SAO_BAND_FILTER_FUNCS_AVX2 10
62+ HEVC_SAO_BAND_FILTER_FUNCS_AVX2 12
63+
6664 %endif
6765
6866 %macro HEVC_SAO_EDGE_FILTER 3
6967 H2656_SAO_EDGE_FILTER hevc, %1, %2, %3
7068 %endmacro
7169
70+%macro HEVC_SAO_EDGE_FILTER_FUNCS 1
71+ HEVC_SAO_EDGE_FILTER %1, 8, 1
72+ HEVC_SAO_EDGE_FILTER %1, 16, 2
73+ HEVC_SAO_EDGE_FILTER %1, 32, 4
74+ HEVC_SAO_EDGE_FILTER %1, 48, 6
75+ HEVC_SAO_EDGE_FILTER %1, 64, 8
76+%endmacro
77+
7278 INIT_XMM sse2
73−HEVC_SAO_EDGE_FILTER 10, 8, 1
74−HEVC_SAO_EDGE_FILTER 10, 16, 2
75−HEVC_SAO_EDGE_FILTER 10, 32, 4
76−HEVC_SAO_EDGE_FILTER 10, 48, 6
77−HEVC_SAO_EDGE_FILTER 10, 64, 8
78−
79−HEVC_SAO_EDGE_FILTER 12, 8, 1
80−HEVC_SAO_EDGE_FILTER 12, 16, 2
81−HEVC_SAO_EDGE_FILTER 12, 32, 4
82−HEVC_SAO_EDGE_FILTER 12, 48, 6
83−HEVC_SAO_EDGE_FILTER 12, 64, 8
79+HEVC_SAO_EDGE_FILTER_FUNCS 10
80+HEVC_SAO_EDGE_FILTER_FUNCS 12
8481
8582 %if HAVE_AVX2_EXTERNAL
86−INIT_XMM avx2
87−HEVC_SAO_EDGE_FILTER 10, 8, 1
88−INIT_YMM avx2
89−HEVC_SAO_EDGE_FILTER 10, 16, 1
90−HEVC_SAO_EDGE_FILTER 10, 32, 2
91−HEVC_SAO_EDGE_FILTER 10, 48, 3
92−HEVC_SAO_EDGE_FILTER 10, 64, 4
93−
94−INIT_XMM avx2
95−HEVC_SAO_EDGE_FILTER 12, 8, 1
96−INIT_YMM avx2
97−HEVC_SAO_EDGE_FILTER 12, 16, 1
98−HEVC_SAO_EDGE_FILTER 12, 32, 2
99−HEVC_SAO_EDGE_FILTER 12, 48, 3
100−HEVC_SAO_EDGE_FILTER 12, 64, 4
83+
84+%macro HEVC_SAO_EDGE_FILTER_FUNCS_AVX2 1
85+ INIT_XMM avx2
86+ HEVC_SAO_EDGE_FILTER %1, 8, 1
87+ INIT_YMM avx2
88+ HEVC_SAO_EDGE_FILTER %1, 16, 1
89+ HEVC_SAO_EDGE_FILTER %1, 32, 2
90+ HEVC_SAO_EDGE_FILTER %1, 48, 3
91+ HEVC_SAO_EDGE_FILTER %1, 64, 4
92+%endmacro
93+
94+HEVC_SAO_EDGE_FILTER_FUNCS_AVX2 10
95+HEVC_SAO_EDGE_FILTER_FUNCS_AVX2 12
96+
10197 %endif

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t