From 95ee7f1131cf4a12f6dfbb8e3576e7637fe29fcf Mon Sep 17 00:00:00 2001 From: Yaowu Xu Date: Fri, 24 Aug 2012 09:59:49 -0700 Subject: [PATCH] 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 --- test/fdct4x4_test.cc | 14 +++++++++++++- test/fdct8x8_test.cc | 11 +++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) 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 @@ TEST(Vp8FdctTest, RoundTripErrorCheck) { // 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 @@ TEST(Vp8FdctTest, RoundTripErrorCheck) { 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 @@ TEST(VP8Fdct8x8Test, RoundTripErrorCheck) { 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) { -- 2.7.4