Add 10/12-bit deblock SSSE3 implementation

Currently 64-bit only.
This commit is contained in:
Ronald S. Bultje
2021-06-11 12:06:15 -04:00
parent c187e704f7
commit f7043e4742
3 changed files with 1144 additions and 0 deletions
+1
View File
@@ -224,6 +224,7 @@ if is_asm_enabled
'x86/mc16_avx2.asm',
'x86/cdef16_sse.asm',
'x86/itx16_sse.asm',
'x86/loopfilter16_sse.asm',
'x86/looprestoration16_sse.asm',
'x86/mc16_sse.asm',
)
File diff suppressed because it is too large Load Diff
+8
View File
@@ -36,6 +36,7 @@ decl_loopfilter_sb_fn(dav1d_lpf_v_sb_uv_##ext)
decl_loopfilter_sb_fns(ssse3);
decl_loopfilter_sb_fns(avx2);
decl_loopfilter_sb_fns(16bpc_ssse3);
decl_loopfilter_sb_fns(16bpc_avx2);
COLD void bitfn(dav1d_loop_filter_dsp_init_x86)(Dav1dLoopFilterDSPContext *const c) {
@@ -48,6 +49,13 @@ COLD void bitfn(dav1d_loop_filter_dsp_init_x86)(Dav1dLoopFilterDSPContext *const
c->loop_filter_sb[0][1] = dav1d_lpf_v_sb_y_ssse3;
c->loop_filter_sb[1][0] = dav1d_lpf_h_sb_uv_ssse3;
c->loop_filter_sb[1][1] = dav1d_lpf_v_sb_uv_ssse3;
#else
#if ARCH_X86_64
c->loop_filter_sb[0][0] = dav1d_lpf_h_sb_y_16bpc_ssse3;
c->loop_filter_sb[0][1] = dav1d_lpf_v_sb_y_16bpc_ssse3;
c->loop_filter_sb[1][0] = dav1d_lpf_h_sb_uv_16bpc_ssse3;
c->loop_filter_sb[1][1] = dav1d_lpf_v_sb_uv_16bpc_ssse3;
#endif
#endif
if (!(flags & DAV1D_X86_CPU_FLAG_AVX2)) return;