diff options
author | Janne Grunau <janne-libav@jannau.net> | 2013-12-20 21:02:43 +0100 |
---|---|---|
committer | Janne Grunau <janne-libav@jannau.net> | 2014-01-15 12:31:04 +0100 |
commit | 36e3b1f2fd262028834a9d7b1eb533c1218ee6c2 (patch) | |
tree | d897dbdd7b40d0b58d8c9d6d383283a448cb54b6 /libavcodec/aarch64/h264dsp_init_aarch64.c | |
parent | c65d67ef50241886b9749e88fd333c52090f70c7 (diff) | |
download | ffmpeg-streaming-36e3b1f2fd262028834a9d7b1eb533c1218ee6c2.zip ffmpeg-streaming-36e3b1f2fd262028834a9d7b1eb533c1218ee6c2.tar.gz |
aarch64: h264 loop filter NEON optimizations
Ported from ARMv7 NEON.
Diffstat (limited to 'libavcodec/aarch64/h264dsp_init_aarch64.c')
-rw-r--r-- | libavcodec/aarch64/h264dsp_init_aarch64.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/libavcodec/aarch64/h264dsp_init_aarch64.c b/libavcodec/aarch64/h264dsp_init_aarch64.c index 8148336..307b30c 100644 --- a/libavcodec/aarch64/h264dsp_init_aarch64.c +++ b/libavcodec/aarch64/h264dsp_init_aarch64.c @@ -25,6 +25,15 @@ #include "libavutil/aarch64/cpu.h" #include "libavcodec/h264dsp.h" +void ff_h264_v_loop_filter_luma_neon(uint8_t *pix, int stride, int alpha, + int beta, int8_t *tc0); +void ff_h264_h_loop_filter_luma_neon(uint8_t *pix, int stride, int alpha, + int beta, int8_t *tc0); +void ff_h264_v_loop_filter_chroma_neon(uint8_t *pix, int stride, int alpha, + int beta, int8_t *tc0); +void ff_h264_h_loop_filter_chroma_neon(uint8_t *pix, int stride, int alpha, + int beta, int8_t *tc0); + void ff_h264_idct_add_neon(uint8_t *dst, int16_t *block, int stride); void ff_h264_idct_dc_add_neon(uint8_t *dst, int16_t *block, int stride); void ff_h264_idct_add16_neon(uint8_t *dst, const int *block_offset, @@ -49,6 +58,11 @@ av_cold void ff_h264dsp_init_aarch64(H264DSPContext *c, const int bit_depth, int cpu_flags = av_get_cpu_flags(); if (have_neon(cpu_flags) && bit_depth == 8) { + c->h264_v_loop_filter_luma = ff_h264_v_loop_filter_luma_neon; + c->h264_h_loop_filter_luma = ff_h264_h_loop_filter_luma_neon; + c->h264_v_loop_filter_chroma = ff_h264_v_loop_filter_chroma_neon; + c->h264_h_loop_filter_chroma = ff_h264_h_loop_filter_chroma_neon; + c->h264_idct_add = ff_h264_idct_add_neon; c->h264_idct_dc_add = ff_h264_idct_dc_add_neon; c->h264_idct_add16 = ff_h264_idct_add16_neon; |