x86/hevcdsp: add ff_hevc_sao_edge_filter_{10,12}_{sse2,avx2}
authorJames Almer <jamrial@gmail.com>
Wed, 4 Feb 2015 23:23:19 +0000 (20:23 -0300)
committerJames Almer <jamrial@gmail.com>
Thu, 5 Feb 2015 18:02:33 +0000 (15:02 -0300)
commit15574c505b81d6e92370096eaca6764c13b5fbfc
tree224fce351260fb2a9fd6e1a656d6245998b26caf
parent042c1159fcf8431725c718a504b1fb40364bf434
x86/hevcdsp: add ff_hevc_sao_edge_filter_{10,12}_{sse2,avx2}

Original x86 intrinsics code by Pierre-Edouard Lepere.
Yasm port, refactoring and optimizations by James Almer.

Benchmarks of BQTerrace_1920x1080_60_qp22.bin with an Intel Core i5-4200U

Width 32
342694 decicycles in sao_edge_filter_10, 16384 runs, 0 skips
29476 decicycles in ff_hevc_sao_edge_filter_32_10_ssse3, 16384 runs, 0 skips
13996 decicycles in ff_hevc_sao_edge_filter_32_10_avx2, 16381 runs, 3 skips

Width 64
581163 decicycles in sao_edge_filter_10, 8192 runs, 0 skips
59774 decicycles in ff_hevc_sao_edge_filter_64_10_ssse3, 8192 runs, 0 skips
28383 decicycles in ff_hevc_sao_edge_filter_64_10_avx2, 8191 runs, 1 skips

Signed-off-by: James Almer <jamrial@gmail.com>
libavcodec/x86/constants.c
libavcodec/x86/constants.h
libavcodec/x86/hevc_sao.asm
libavcodec/x86/hevcdsp_init.c