From 042c1159fcf8431725c718a504b1fb40364bf434 Mon Sep 17 00:00:00 2001 From: James Almer Date: Wed, 4 Feb 2015 20:21:56 -0300 Subject: 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 --- libavcodec/hevcdsp.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'libavcodec/hevcdsp.c') diff --git a/libavcodec/hevcdsp.c b/libavcodec/hevcdsp.c index b9ae787527..7dcdfff77d 100644 --- a/libavcodec/hevcdsp.c +++ b/libavcodec/hevcdsp.c @@ -217,7 +217,11 @@ void ff_hevc_dsp_init(HEVCDSPContext *hevcdsp, int bit_depth) hevcdsp->sao_band_filter[2] = \ hevcdsp->sao_band_filter[3] = \ hevcdsp->sao_band_filter[4] = FUNC(sao_band_filter_0, depth); \ - hevcdsp->sao_edge_filter = FUNC(sao_edge_filter, depth); \ + hevcdsp->sao_edge_filter[0] = \ + hevcdsp->sao_edge_filter[1] = \ + hevcdsp->sao_edge_filter[2] = \ + hevcdsp->sao_edge_filter[3] = \ + hevcdsp->sao_edge_filter[4] = FUNC(sao_edge_filter, depth); \ hevcdsp->sao_edge_restore[0] = FUNC(sao_edge_restore_0, depth); \ hevcdsp->sao_edge_restore[1] = FUNC(sao_edge_restore_1, depth); \ \ -- cgit v1.2.3