This is a part of Google Summer of Code 2023
Unified · Split
| @@ -28,18 +28,17 @@ · 27 unmodified lines | |||
| 28 | H2656_SAO_BAND_FILTER hevc, %1, %2, %3 | 28 | H2656_SAO_BAND_FILTER hevc, %1, %2, %3 |
| 29 | %endmacro | 29 | %endmacro |
| 30 | 30 | ||
| 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 | |||
| 31 | %macro HEVC_SAO_BAND_FILTER_FUNCS 0 | 39 | %macro HEVC_SAO_BAND_FILTER_FUNCS 0 |
| 32 | HEVC_SAO_BAND_FILTER 10, 8, 1 | 40 | HEVC_SAO_BAND_FILTER_FUNCS 10 |
| 33 | HEVC_SAO_BAND_FILTER 10, 16, 2 | 41 | HEVC_SAO_BAND_FILTER_FUNCS 12 |
| 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 | ||
| 43 | %endmacro | 42 | %endmacro |
| 44 | 43 | ||
| 45 | INIT_XMM sse2 | 44 | INIT_XMM sse2 |
| @@ -48,54 +47,51 @@ INIT_XMM avx · 2 unmodified lines | |||
| 48 | HEVC_SAO_BAND_FILTER_FUNCS | 47 | HEVC_SAO_BAND_FILTER_FUNCS |
| 49 | 48 | ||
| 50 | %if HAVE_AVX2_EXTERNAL | 49 | %if HAVE_AVX2_EXTERNAL |
| 51 | INIT_XMM avx2 | 50 | |
| 52 | HEVC_SAO_BAND_FILTER 10, 8, 1 | 51 | %macro HEVC_SAO_BAND_FILTER_FUNCS_AVX2 1 |
| 53 | INIT_YMM avx2 | 52 | INIT_XMM avx2 |
| 54 | HEVC_SAO_BAND_FILTER 10, 16, 1 | 53 | HEVC_SAO_BAND_FILTER %1, 8, 1 |
| 55 | HEVC_SAO_BAND_FILTER 10, 32, 2 | 54 | INIT_YMM avx2 |
| 56 | HEVC_SAO_BAND_FILTER 10, 48, 3 | 55 | HEVC_SAO_BAND_FILTER %1, 16, 1 |
| 57 | HEVC_SAO_BAND_FILTER 10, 64, 4 | 56 | HEVC_SAO_BAND_FILTER %1, 32, 2 |
| 58 | 57 | HEVC_SAO_BAND_FILTER %1, 48, 3 | |
| 59 | INIT_XMM avx2 | 58 | HEVC_SAO_BAND_FILTER %1, 64, 4 |
| 60 | HEVC_SAO_BAND_FILTER 12, 8, 1 | 59 | %endmacro |
| 61 | INIT_YMM avx2 | 60 | |
| 62 | HEVC_SAO_BAND_FILTER 12, 16, 1 | 61 | HEVC_SAO_BAND_FILTER_FUNCS_AVX2 10 |
| 63 | HEVC_SAO_BAND_FILTER 12, 32, 2 | 62 | HEVC_SAO_BAND_FILTER_FUNCS_AVX2 12 |
| 64 | HEVC_SAO_BAND_FILTER 12, 48, 3 | 63 | |
| 65 | HEVC_SAO_BAND_FILTER 12, 64, 4 | ||
| 66 | %endif | 64 | %endif |
| 67 | 65 | ||
| 68 | %macro HEVC_SAO_EDGE_FILTER 3 | 66 | %macro HEVC_SAO_EDGE_FILTER 3 |
| 69 | H2656_SAO_EDGE_FILTER hevc, %1, %2, %3 | 67 | H2656_SAO_EDGE_FILTER hevc, %1, %2, %3 |
| 70 | %endmacro | 68 | %endmacro |
| 71 | 69 | ||
| 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 | |||
| 72 | INIT_XMM sse2 | 78 | INIT_XMM sse2 |
| 73 | HEVC_SAO_EDGE_FILTER 10, 8, 1 | 79 | HEVC_SAO_EDGE_FILTER_FUNCS 10 |
| 74 | HEVC_SAO_EDGE_FILTER 10, 16, 2 | 80 | HEVC_SAO_EDGE_FILTER_FUNCS 12 |
| 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 | ||
| 84 | 81 | ||
| 85 | %if HAVE_AVX2_EXTERNAL | 82 | %if HAVE_AVX2_EXTERNAL |
| 86 | INIT_XMM avx2 | 83 | |
| 87 | HEVC_SAO_EDGE_FILTER 10, 8, 1 | 84 | %macro HEVC_SAO_EDGE_FILTER_FUNCS_AVX2 1 |
| 88 | INIT_YMM avx2 | 85 | INIT_XMM avx2 |
| 89 | HEVC_SAO_EDGE_FILTER 10, 16, 1 | 86 | HEVC_SAO_EDGE_FILTER %1, 8, 1 |
| 90 | HEVC_SAO_EDGE_FILTER 10, 32, 2 | 87 | INIT_YMM avx2 |
| 91 | HEVC_SAO_EDGE_FILTER 10, 48, 3 | 88 | HEVC_SAO_EDGE_FILTER %1, 16, 1 |
| 92 | HEVC_SAO_EDGE_FILTER 10, 64, 4 | 89 | HEVC_SAO_EDGE_FILTER %1, 32, 2 |
| 93 | 90 | HEVC_SAO_EDGE_FILTER %1, 48, 3 | |
| 94 | INIT_XMM avx2 | 91 | HEVC_SAO_EDGE_FILTER %1, 64, 4 |
| 95 | HEVC_SAO_EDGE_FILTER 12, 8, 1 | 92 | %endmacro |
| 96 | INIT_YMM avx2 | 93 | |
| 97 | HEVC_SAO_EDGE_FILTER 12, 16, 1 | 94 | HEVC_SAO_EDGE_FILTER_FUNCS_AVX2 10 |
| 98 | HEVC_SAO_EDGE_FILTER 12, 32, 2 | 95 | HEVC_SAO_EDGE_FILTER_FUNCS_AVX2 12 |
| 99 | HEVC_SAO_EDGE_FILTER 12, 48, 3 | 96 | |
| 100 | HEVC_SAO_EDGE_FILTER 12, 64, 4 | ||
| 101 | %endif | 97 | %endif |