diff options
author | Shivraj Patil <shivraj.patil@imgtec.com> | 2015-06-09 20:50:26 +0530 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2015-06-10 13:14:50 +0200 |
commit | 271195f85bbce284ac80ed31c62fba9b7e74e99d (patch) | |
tree | 0bcfc0bf5450d473a99867f1199b54d26589e990 /libavcodec/mips/hevcdsp_mips.h | |
parent | 05c57ba2f42324da2fdc93d83d65bb68dd637613 (diff) | |
download | ffmpeg-streaming-271195f85bbce284ac80ed31c62fba9b7e74e99d.zip ffmpeg-streaming-271195f85bbce284ac80ed31c62fba9b7e74e99d.tar.gz |
avcodec/mips: MSA (MIPS-SIMD-Arch) optimizations for HEVC loop filter and sao functions
This patch adds MSA (MIPS-SIMD-Arch) optimizations for HEVC loop filter and sao functions in new file hevc_lpf_sao_msa.c
Adds new generic macros (needed for this patch) in libavutil/mips/generic_macros_msa.h
In this patch, in comparision with previous patch, duplicated c functions are removed.
Signed-off-by: Shivraj Patil <shivraj.patil@imgtec.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec/mips/hevcdsp_mips.h')
-rw-r--r-- | libavcodec/mips/hevcdsp_mips.h | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/libavcodec/mips/hevcdsp_mips.h b/libavcodec/mips/hevcdsp_mips.h index b7c903e..f26d7d9 100644 --- a/libavcodec/mips/hevcdsp_mips.h +++ b/libavcodec/mips/hevcdsp_mips.h @@ -431,6 +431,36 @@ BI_W_MC(epel, hv, 64); #undef BI_W_MC +void ff_hevc_loop_filter_luma_h_8_msa(uint8_t *src, + ptrdiff_t src_stride, + int32_t beta, int32_t *tc, + uint8_t *no_p, uint8_t *no_q); + +void ff_hevc_loop_filter_luma_v_8_msa(uint8_t *src, + ptrdiff_t src_stride, + int32_t beta, int32_t *tc, + uint8_t *no_p, uint8_t *no_q); + +void ff_hevc_loop_filter_chroma_h_8_msa(uint8_t *src, + ptrdiff_t src_stride, + int32_t *tc, uint8_t *no_p, + uint8_t *no_q); + +void ff_hevc_loop_filter_chroma_v_8_msa(uint8_t *src, + ptrdiff_t src_stride, + int32_t *tc, uint8_t *no_p, + uint8_t *no_q); + +void ff_hevc_sao_band_filter_0_8_msa(uint8_t *dst, uint8_t *src, + ptrdiff_t stride_dst, ptrdiff_t stride_src, + int16_t *sao_offset_val, int sao_left_class, + int width, int height); + +void ff_hevc_sao_edge_filter_8_msa(uint8_t *dst, uint8_t *src, + ptrdiff_t stride_dst, + int16_t *sao_offset_val, + int eo, int width, int height); + void ff_hevc_idct_4x4_msa(int16_t *coeffs, int col_limit); void ff_hevc_idct_8x8_msa(int16_t *coeffs, int col_limit); void ff_hevc_idct_16x16_msa(int16_t *coeffs, int col_limit); |