x86/hevcdsp: add ff_hevc_sao_edge_filter_8_{ssse3,avx2}
authorJames Almer <jamrial@gmail.com>
Wed, 4 Feb 2015 23:21:56 +0000 (20:21 -0300)
committerJames Almer <jamrial@gmail.com>
Thu, 5 Feb 2015 18:02:27 +0000 (15:02 -0300)
commit042c1159fcf8431725c718a504b1fb40364bf434
treef80a1ec51d5d10feccdbcc6be4cc1a652c26e4ce
parent1f1c7c8a57e81803a034b00077bd43e7a6e4ed82
x86/hevcdsp: add ff_hevc_sao_edge_filter_8_{ssse3,avx2}

Original x86 intrinsics code and initial yasm port by Pierre-Edouard Lepere.
Refactoring and optimizations by James Almer.

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

Width 32
158583 decicycles in edge, sao_edge_filter_8 runs, 0 skips
5205 decicycles in ff_hevc_sao_edge_filter_32_8_ssse3, 32767 runs, 1 skips
2942 decicycles in ff_hevc_sao_edge_filter_32_8_avx2, 32767 runs, 1 skips

Width 64
705639 decicycles in sao_edge_filter_8, 262144 runs, 0 skips
19224 decicycles in ff_hevc_sao_edge_filter_64_8_ssse3, 262111 runs, 33 skips
10433 decicycles in ff_hevc_sao_edge_filter_64_8_avx2, 262115 runs, 29 skips

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