summaryrefslogtreecommitdiff
path: root/vp9/decoder/vp9_dequantize.c
diff options
context:
space:
mode:
authorScott LaVarnway <slavarnway@google.com>2013-02-04 16:49:17 -0800
committerScott LaVarnway <slavarnway@google.com>2013-02-04 16:49:17 -0800
commit5780c4cbd592c92da567609f737dbf823b055cd6 (patch)
tree2588e7cbb0e9d961d7eadddc84e8fe4a5bcbbac0 /vp9/decoder/vp9_dequantize.c
parentebd58089701345426a474e3288ff9484c85a85c4 (diff)
downloadlibvpx-5780c4cbd592c92da567609f737dbf823b055cd6.tar
libvpx-5780c4cbd592c92da567609f737dbf823b055cd6.tar.gz
libvpx-5780c4cbd592c92da567609f737dbf823b055cd6.tar.bz2
libvpx-5780c4cbd592c92da567609f737dbf823b055cd6.zip
Added vp9_short_idct1_32x32_c
and called this function in vp9_dequant_idct_add_32x32_c when eob == 1. For the test clip used, the decoder performance improved by 21+%. Based on Yaowu's 16 point idct work. Change-Id: Ib579a90fed531d45777980e04bf0c9b23c093c43
Diffstat (limited to 'vp9/decoder/vp9_dequantize.c')
-rw-r--r--vp9/decoder/vp9_dequantize.c23
1 files changed, 16 insertions, 7 deletions
diff --git a/vp9/decoder/vp9_dequantize.c b/vp9/decoder/vp9_dequantize.c
index e46be3ac7..18d4e59c7 100644
--- a/vp9/decoder/vp9_dequantize.c
+++ b/vp9/decoder/vp9_dequantize.c
@@ -349,13 +349,22 @@ void vp9_dequant_idct_add_32x32_c(int16_t *input, const int16_t *dq,
int i;
if (eob) {
- input[0]= input[0] * dq[0] / 2;
- for (i = 1; i < 1024; i++)
- input[i] = input[i] * dq[1] / 2;
- vp9_short_idct32x32_c(input, output, 64);
- vpx_memset(input, 0, 2048);
-
- add_residual(output, pred, pitch, dest, stride, 32, 32);
+ input[0] = input[0] * dq[0] / 2;
+#if !CONFIG_DWTDCTHYBRID
+ if (eob == 1) {
+ vp9_short_idct1_32x32_c(input, output);
+ add_constant_residual(output[0], pred, pitch, dest, stride, 32, 32);
+ input[0] = 0;
+ } else {
+#endif
+ for (i = 1; i < 1024; i++)
+ input[i] = input[i] * dq[1] / 2;
+ vp9_short_idct32x32_c(input, output, 64);
+ vpx_memset(input, 0, 2048);
+ add_residual(output, pred, pitch, dest, stride, 32, 32);
+#if !CONFIG_DWTDCTHYBRID
+ }
+#endif
}
}