summaryrefslogtreecommitdiff
path: root/vpx_dsp/mips/fwd_txfm_msa.c
diff options
context:
space:
mode:
authorJingning Han <jingning@google.com>2015-07-28 14:42:25 -0700
committerJingning Han <jingning@google.com>2015-07-28 14:52:30 -0700
commitd19033fa4e46a2a97adcf752ccebe79bc86662a9 (patch)
tree23b9c4e5681f8a50c1b1b0529095c3882d8a12fb /vpx_dsp/mips/fwd_txfm_msa.c
parenta73f0f4170b54ef5f8ab82f4801b39afd43be903 (diff)
downloadlibvpx-d19033fa4e46a2a97adcf752ccebe79bc86662a9.tar
libvpx-d19033fa4e46a2a97adcf752ccebe79bc86662a9.tar.gz
libvpx-d19033fa4e46a2a97adcf752ccebe79bc86662a9.tar.bz2
libvpx-d19033fa4e46a2a97adcf752ccebe79bc86662a9.zip
Move DC only forward 2D-DCT functions to vpx_dsp
This completes the forward transform functions layout refactoring. Change-Id: I996fb0fb795f41e2040f7b21db985774098aedbd
Diffstat (limited to 'vpx_dsp/mips/fwd_txfm_msa.c')
-rw-r--r--vpx_dsp/mips/fwd_txfm_msa.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/vpx_dsp/mips/fwd_txfm_msa.c b/vpx_dsp/mips/fwd_txfm_msa.c
index 8a7e7b6a9..1e35542f7 100644
--- a/vpx_dsp/mips/fwd_txfm_msa.c
+++ b/vpx_dsp/mips/fwd_txfm_msa.c
@@ -215,6 +215,11 @@ void vp9_fdct8x8_msa(const int16_t *input, int16_t *output,
ST_SH8(in0, in1, in2, in3, in4, in5, in6, in7, output, 8);
}
+void vp9_fdct8x8_1_msa(const int16_t *input, int16_t *out, int32_t stride) {
+ out[0] = LD_HADD(input, stride);
+ out[1] = 0;
+}
+
void vp9_fdct16x16_msa(const int16_t *input, int16_t *output,
int32_t src_stride) {
int32_t i;
@@ -230,3 +235,13 @@ void vp9_fdct16x16_msa(const int16_t *input, int16_t *output,
fdct16x8_1d_row((&tmp_buf[0] + (128 * i)), (output + (128 * i)));
}
}
+
+void vp9_fdct16x16_1_msa(const int16_t *input, int16_t *out, int32_t stride) {
+ out[1] = 0;
+
+ out[0] = LD_HADD(input, stride);
+ out[0] += LD_HADD(input + 8, stride);
+ out[0] += LD_HADD(input + 16 * 8, stride);
+ out[0] += LD_HADD(input + 16 * 8 + 8, stride);
+ out[0] >>= 1;
+}