summaryrefslogtreecommitdiff
path: root/libavcodec/mips/vp9dsp_init_mips.c
diff options
context:
space:
mode:
authorShivraj Patil <shivraj.patil@imgtec.com>2015-07-20 20:04:31 +0530
committerMichael Niedermayer <michael@niedermayer.cc>2015-07-23 16:52:18 +0200
commitfd7eadd25c77307ef8398b5f0307b18050ee070a (patch)
tree20bb98012ab30a58e558d85a0d74c88240e71036 /libavcodec/mips/vp9dsp_init_mips.c
parent52c75d486ed5f75cbb79e5dbd07b7aef24f3071f (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.c25
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