change to properly account for coef scaling in unit tests
The transform functions in experimental branch absorbed a scaling factor of 4 to allow quantization steps closer to unit quantizer. This commit added scaling code in between forward and inverse transform to properly account for the scaling factor. Change-Id: I9a573ddc1ffa74973b34800a5da1a56dbabe0949
This commit is contained in:
parent
0b184efbbf
commit
95ee7f1131
@ -107,6 +107,19 @@ TEST(Vp8FdctTest, RoundTripErrorCheck) {
|
|||||||
// to test optimized versions of this function.
|
// to test optimized versions of this function.
|
||||||
const int pitch = 8;
|
const int pitch = 8;
|
||||||
vp8_short_fdct4x4_c(test_input_block, test_temp_block, pitch);
|
vp8_short_fdct4x4_c(test_input_block, test_temp_block, pitch);
|
||||||
|
|
||||||
|
for (int j = 0; j < 16; ++j) {
|
||||||
|
if(test_temp_block[j] > 0) {
|
||||||
|
test_temp_block[j] += 2;
|
||||||
|
test_temp_block[j] /= 4;
|
||||||
|
test_temp_block[j] *= 4;
|
||||||
|
} else {
|
||||||
|
test_temp_block[j] -= 2;
|
||||||
|
test_temp_block[j] /= 4;
|
||||||
|
test_temp_block[j] *= 4;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Because the bitstream is not frozen yet, use the idct in the codebase.
|
// Because the bitstream is not frozen yet, use the idct in the codebase.
|
||||||
vp8_short_idct4x4llm_c(test_temp_block, test_output_block, pitch);
|
vp8_short_idct4x4llm_c(test_temp_block, test_output_block, pitch);
|
||||||
|
|
||||||
@ -118,7 +131,6 @@ TEST(Vp8FdctTest, RoundTripErrorCheck) {
|
|||||||
total_error += error;
|
total_error += error;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
EXPECT_GE(1, max_error)
|
EXPECT_GE(1, max_error)
|
||||||
<< "Error: FDCT/IDCT has an individual roundtrip error > 1";
|
<< "Error: FDCT/IDCT has an individual roundtrip error > 1";
|
||||||
|
|
||||||
|
@ -101,6 +101,17 @@ TEST(VP8Fdct8x8Test, RoundTripErrorCheck) {
|
|||||||
|
|
||||||
const int pitch = 16;
|
const int pitch = 16;
|
||||||
vp8_short_fdct8x8_c(test_input_block, test_temp_block, pitch);
|
vp8_short_fdct8x8_c(test_input_block, test_temp_block, pitch);
|
||||||
|
for (int j = 0; j < 64; ++j){
|
||||||
|
if(test_temp_block[j] > 0) {
|
||||||
|
test_temp_block[j] += 2;
|
||||||
|
test_temp_block[j] /= 4;
|
||||||
|
test_temp_block[j] *= 4;
|
||||||
|
} else {
|
||||||
|
test_temp_block[j] -= 2;
|
||||||
|
test_temp_block[j] /= 4;
|
||||||
|
test_temp_block[j] *= 4;
|
||||||
|
}
|
||||||
|
}
|
||||||
vp8_short_idct8x8_c(test_temp_block, test_output_block, pitch);
|
vp8_short_idct8x8_c(test_temp_block, test_output_block, pitch);
|
||||||
|
|
||||||
for (int j = 0; j < 64; ++j) {
|
for (int j = 0; j < 64; ++j) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user