Add AVX2 intrinsic for vpx_comp_avg_pred() function
authorAnupam Pandey <anupam.pandey@ittiam.com>
Mon, 8 May 2023 06:40:09 +0000 (12:10 +0530)
committerAnupam Pandey <anupam.pandey@ittiam.com>
Tue, 9 May 2023 11:03:59 +0000 (16:33 +0530)
commit457b7f59860955415a23c20c535fc13fde51936f
tree1da1088a694cff95d93647a9a70e5eb7030ec196
parent4818f997fe43c96a96bbda2d3b9aac714dbcd920
Add AVX2 intrinsic for vpx_comp_avg_pred() function

The module level scaling w.r.t C function (timer based) for
existing (SSE2) and new AVX2 intrinsics:

If ref_padding = 0
Block     Scaling
size    SSE2    AVX2
8x4     3.24x   3.24x
8x8     4.22x   4.90x
8x16    5.91x   5.93x
16x8    1.63x   3.52x
16x16   1.53x   4.19x
16x32   1.38x   4.82x
32x16   1.28x   3.08x
32x32   1.45x   3.13x
32x64   1.38x   3.04x
64x32   1.39x   2.12x
64x64   1.46x   2.24x

If ref_padding = 8
Block     Scaling
size    SSE2    AVX2
8x4     3.20x   3.21x
8x8     4.61x   4.83x
8x16    5.50x   6.45x
16x8    1.56x   3.35x
16x16   1.53x   4.19x
16x32   1.37x   4.83x
32x16   1.28x   3.07x
32x32   1.46x   3.29x
32x64   1.38x   3.22x
64x32   1.38x   2.14x
64x64   1.38x   2.12x

This is a bit-exact change.

Change-Id: I72c5d155f64d0c630bc8c3aef21dc8bbd045d9e6
test/comp_avg_pred_test.cc
vp9/encoder/vp9_mcomp.c
vp9/encoder/vp9_rdopt.c
vpx_dsp/sad.c
vpx_dsp/variance.c
vpx_dsp/vpx_dsp.mk
vpx_dsp/vpx_dsp_rtcd_defs.pl
vpx_dsp/x86/avg_pred_avx2.c [new file with mode: 0644]