Commit 65821d66 authored by Jingning Han's avatar Jingning Han
Browse files

Improving the forward 16x16 ADST/DCT accuracy

Increase the first stage dynamic range by 4 times, and reduce it
back with proper rounding before applying the second stage. Hence
it still fits in the given dynamic range and slightly improves
the key frame coding performance.

Change-Id: Ia4c5907446f20a95dc3de079c314b3ad1221d8aa
parent 77a3becf
...@@ -728,10 +728,10 @@ void vp9_short_fht16x16_c(int16_t *input, int16_t *output, ...@@ -728,10 +728,10 @@ void vp9_short_fht16x16_c(int16_t *input, int16_t *output,
// column transform // column transform
for (i = 0; i < 16; ++i) { for (i = 0; i < 16; ++i) {
for (j = 0; j < 16; ++j) for (j = 0; j < 16; ++j)
temp_in[j] = input[j * short_pitch + i]; temp_in[j] = input[j * short_pitch + i] << 2;
fwdc(temp_in, temp_out); fwdc(temp_in, temp_out);
for (j = 0; j < 16; ++j) for (j = 0; j < 16; ++j)
outptr[j * 16 + i] = temp_out[j]; outptr[j * 16 + i] = (temp_out[j] + 1 + (temp_out[j] > 0)) >> 2;
} }
// row transform // row transform
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment