diff options
author | Scott LaVarnway <slavarnway@google.com> | 2013-02-04 16:49:17 -0800 |
---|---|---|
committer | Scott LaVarnway <slavarnway@google.com> | 2013-02-04 16:49:17 -0800 |
commit | 5780c4cbd592c92da567609f737dbf823b055cd6 (patch) | |
tree | 2588e7cbb0e9d961d7eadddc84e8fe4a5bcbbac0 /vp9/decoder/vp9_dequantize.c | |
parent | ebd58089701345426a474e3288ff9484c85a85c4 (diff) | |
download | libvpx-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.c | 23 |
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 } } |