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
diff --git a/test/fdct4x4_test.cc b/test/fdct4x4_test.cc index d88ed8d..3bce41a 100644 --- a/test/fdct4x4_test.cc +++ b/test/fdct4x4_test.cc
@@ -107,6 +107,19 @@ // to test optimized versions of this function. const int pitch = 8; 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. vp8_short_idct4x4llm_c(test_temp_block, test_output_block, pitch); @@ -118,7 +131,6 @@ total_error += error; } } - EXPECT_GE(1, max_error) << "Error: FDCT/IDCT has an individual roundtrip error > 1";
diff --git a/test/fdct8x8_test.cc b/test/fdct8x8_test.cc index 28b6afb..068d98e 100644 --- a/test/fdct8x8_test.cc +++ b/test/fdct8x8_test.cc
@@ -101,6 +101,17 @@ const int pitch = 16; 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); for (int j = 0; j < 64; ++j) {