diff options
author | Anton Khirnov <anton@khirnov.net> | 2015-07-24 19:42:08 +0300 |
---|---|---|
committer | Anton Khirnov <anton@khirnov.net> | 2015-12-05 23:11:52 +0300 |
commit | e7078e842d93436edba1f30af1f9869d3913f7fe (patch) | |
tree | 2db50fbd63c9264b9de11ab36c9b3edfe21ce0d1 /libavcodec/hevcdsp.c | |
parent | 0cef06df073934ca08d0357fcbbbcf2bc9b2a0cd (diff) |
hevcdsp: add x86 SIMD for MC
Diffstat (limited to 'libavcodec/hevcdsp.c')
-rw-r--r-- | libavcodec/hevcdsp.c | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/libavcodec/hevcdsp.c b/libavcodec/hevcdsp.c index 67c2705318..15a712def7 100644 --- a/libavcodec/hevcdsp.c +++ b/libavcodec/hevcdsp.c @@ -89,7 +89,7 @@ static const int8_t transform[32][32] = { 90, -90, 88, -85, 82, -78, 73, -67, 61, -54, 46, -38, 31, -22, 13, -4 }, }; -DECLARE_ALIGNED(16, const int8_t, ff_hevc_epel_filters[7][16]) = { +DECLARE_ALIGNED(16, const int16_t, ff_hevc_epel_coeffs[7][16]) = { { -2, 58, 10, -2, -2, 58, 10, -2, -2, 58, 10, -2, -2, 58, 10, -2 }, { -4, 54, 16, -2, -4, 54, 16, -2, -4, 54, 16, -2, -4, 54, 16, -2 }, { -6, 46, 28, -4, -6, 46, 28, -4, -6, 46, 28, -4, -6, 46, 28, -4 }, @@ -99,6 +99,28 @@ DECLARE_ALIGNED(16, const int8_t, ff_hevc_epel_filters[7][16]) = { { -2, 10, 58, -2, -2, 10, 58, -2, -2, 10, 58, -2, -2, 10, 58, -2 }, }; +DECLARE_ALIGNED(16, const int8_t, ff_hevc_epel_coeffs8[7][16]) = { + { -2, 58, 10, -2, -2, 58, 10, -2, -2, 58, 10, -2, -2, 58, 10, -2 }, + { -4, 54, 16, -2, -4, 54, 16, -2, -4, 54, 16, -2, -4, 54, 16, -2 }, + { -6, 46, 28, -4, -6, 46, 28, -4, -6, 46, 28, -4, -6, 46, 28, -4 }, + { -4, 36, 36, -4, -4, 36, 36, -4, -4, 36, 36, -4, -4, 36, 36, -4 }, + { -4, 28, 46, -6, -4, 28, 46, -6, -4, 28, 46, -6, -4, 28, 46, -6 }, + { -2, 16, 54, -4, -2, 16, 54, -4, -2, 16, 54, -4, -2, 16, 54, -4 }, + { -2, 10, 58, -2, -2, 10, 58, -2, -2, 10, 58, -2, -2, 10, 58, -2 }, +}; + +DECLARE_ALIGNED(16, const int16_t, ff_hevc_qpel_coeffs[3][8]) = { + { -1, 4, -10, 58, 17, -5, 1, 0 }, + { -1, 4, -11, 40, 40, -11, 4, -1 }, + { 0, 1, -5, 17, 58, -10, 4, -1 }, +}; + +DECLARE_ALIGNED(16, const int8_t, ff_hevc_qpel_coeffs8[3][16]) = { + { -1, 4, -10, 58, 17, -5, 1, 0, -1, 4, -10, 58, 17, -5, 1, 0 }, + { -1, 4, -11, 40, 40, -11, 4, -1, -1, 4, -11, 40, 40, -11, 4, -1 }, + { 0, 1, -5, 17, 58, -10, 4, -1, 0, 1, -5, 17, 58, -10, 4, -1 }, +}; + #define BIT_DEPTH 8 #include "hevcdsp_template.c" #undef BIT_DEPTH |