shithub: libvpx

Download patch

ref: 6db4d93a27a48b48759fb98538bded3cf616a25f
parent: 2d60bee1fbfb7e5b6862e4e636151effabae98e3
parent: 95ee7f1131cf4a12f6dfbb8e3576e7637fe29fcf
author: Ronald S. Bultje <rbultje@google.com>
date: Fri Aug 24 08:10:04 EDT 2012

Merge "change to properly account for coef scaling in unit tests" into experimental

--- 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";
 
--- 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) {
--