diff options
author | Shivraj Patil <shivraj.patil@imgtec.com> | 2015-07-20 20:04:31 +0530 |
---|---|---|
committer | Michael Niedermayer <michael@niedermayer.cc> | 2015-07-23 16:52:18 +0200 |
commit | fd7eadd25c77307ef8398b5f0307b18050ee070a (patch) | |
tree | 20bb98012ab30a58e558d85a0d74c88240e71036 /libavcodec/mips/vp9dsp_init_mips.c | |
parent | 52c75d486ed5f75cbb79e5dbd07b7aef24f3071f (diff) |
avcodec/mips: MSA (MIPS-SIMD-Arch) optimizations for VP9 lpf functions
Signed-off-by: Shivraj Patil <shivraj.patil@imgtec.com>
Reviewed-by: "Ronald S. Bultje" <rsbultje@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Diffstat (limited to 'libavcodec/mips/vp9dsp_init_mips.c')
-rw-r--r-- | libavcodec/mips/vp9dsp_init_mips.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/libavcodec/mips/vp9dsp_init_mips.c b/libavcodec/mips/vp9dsp_init_mips.c index ad4ef1aa6b..f58bc4b956 100644 --- a/libavcodec/mips/vp9dsp_init_mips.c +++ b/libavcodec/mips/vp9dsp_init_mips.c @@ -80,9 +80,34 @@ static av_cold void vp9dsp_mc_init_msa(VP9DSPContext *dsp, int bpp) } } +static av_cold void vp9dsp_loopfilter_init_msa(VP9DSPContext *dsp, int bpp) +{ + if (bpp == 8) { + dsp->loop_filter_8[0][0] = ff_loop_filter_h_4_8_msa; + dsp->loop_filter_8[0][1] = ff_loop_filter_v_4_8_msa; + dsp->loop_filter_8[1][0] = ff_loop_filter_h_8_8_msa; + dsp->loop_filter_8[1][1] = ff_loop_filter_v_8_8_msa; + dsp->loop_filter_8[2][0] = ff_loop_filter_h_16_8_msa; + dsp->loop_filter_8[2][1] = ff_loop_filter_v_16_8_msa; + + dsp->loop_filter_16[0] = ff_loop_filter_h_16_16_msa; + dsp->loop_filter_16[1] = ff_loop_filter_v_16_16_msa; + + dsp->loop_filter_mix2[0][0][0] = ff_loop_filter_h_44_16_msa; + dsp->loop_filter_mix2[0][0][1] = ff_loop_filter_v_44_16_msa; + dsp->loop_filter_mix2[0][1][0] = ff_loop_filter_h_48_16_msa; + dsp->loop_filter_mix2[0][1][1] = ff_loop_filter_v_48_16_msa; + dsp->loop_filter_mix2[1][0][0] = ff_loop_filter_h_84_16_msa; + dsp->loop_filter_mix2[1][0][1] = ff_loop_filter_v_84_16_msa; + dsp->loop_filter_mix2[1][1][0] = ff_loop_filter_h_88_16_msa; + dsp->loop_filter_mix2[1][1][1] = ff_loop_filter_v_88_16_msa; + } +} + static av_cold void vp9dsp_init_msa(VP9DSPContext *dsp, int bpp) { vp9dsp_mc_init_msa(dsp, bpp); + vp9dsp_loopfilter_init_msa(dsp, bpp); } #endif // #if HAVE_MSA |