summaryrefslogtreecommitdiff
path: root/libavcodec/hevcdsp.h
diff options
context:
space:
mode:
authorJames Almer <jamrial@gmail.com>2015-02-04 20:21:56 -0300
committerJames Almer <jamrial@gmail.com>2015-02-05 15:02:27 -0300
commit042c1159fcf8431725c718a504b1fb40364bf434 (patch)
treef80a1ec51d5d10feccdbcc6be4cc1a652c26e4ce /libavcodec/hevcdsp.h
parent1f1c7c8a57e81803a034b00077bd43e7a6e4ed82 (diff)
downloadffmpeg-042c1159fcf8431725c718a504b1fb40364bf434.tar.gz
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>
Diffstat (limited to 'libavcodec/hevcdsp.h')
-rw-r--r--libavcodec/hevcdsp.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/libavcodec/hevcdsp.h b/libavcodec/hevcdsp.h
index c0706fa353..bf7777f0d8 100644
--- a/libavcodec/hevcdsp.h
+++ b/libavcodec/hevcdsp.h
@@ -62,8 +62,8 @@ typedef struct HEVCDSPContext {
int16_t *sao_offset_val, int sao_left_class, int width, int height);
/* implicit stride_src parameter has value of 2 * MAX_PB_SIZE + FF_INPUT_BUFFER_PADDING_SIZE */
- void (*sao_edge_filter)(uint8_t *_dst, uint8_t *_src, ptrdiff_t stride_dst, int16_t *sao_offset_val,
- int sao_eo_class, int width, int height);
+ void (*sao_edge_filter[5])(uint8_t *_dst /* align 16 */, uint8_t *_src /* align 32 */, ptrdiff_t stride_dst,
+ int16_t *sao_offset_val, int sao_eo_class, int width, int height);
void (*sao_edge_restore[2])(uint8_t *_dst, uint8_t *_src, ptrdiff_t _stride_dst, ptrdiff_t _stride_src,
struct SAOParams *sao, int *borders, int _width, int _height, int c_idx,