Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(357)

Side by Side Diff: source/libvpx/test/vp9_quantize_test.cc

Issue 1124333011: libvpx: Pull from upstream (Closed) Base URL: https://chromium.googlesource.com/chromium/deps/libvpx.git@master
Patch Set: only update to last nights LKGR Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « source/libvpx/test/vp9_intrapred_test.cc ('k') | source/libvpx/test/vpx_scale_test.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2014 The WebM project authors. All Rights Reserved. 2 * Copyright (c) 2014 The WebM project authors. All Rights Reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
73 73
74 protected: 74 protected:
75 vpx_bit_depth_t bit_depth_; 75 vpx_bit_depth_t bit_depth_;
76 int mask_; 76 int mask_;
77 QuantizeFunc quantize_op_; 77 QuantizeFunc quantize_op_;
78 QuantizeFunc ref_quantize_op_; 78 QuantizeFunc ref_quantize_op_;
79 }; 79 };
80 80
81 TEST_P(VP9QuantizeTest, OperationCheck) { 81 TEST_P(VP9QuantizeTest, OperationCheck) {
82 ACMRandom rnd(ACMRandom::DeterministicSeed()); 82 ACMRandom rnd(ACMRandom::DeterministicSeed());
83 DECLARE_ALIGNED_ARRAY(16, tran_low_t, coeff_ptr, 256); 83 DECLARE_ALIGNED(16, tran_low_t, coeff_ptr[256]);
84 DECLARE_ALIGNED_ARRAY(16, int16_t, zbin_ptr, 2); 84 DECLARE_ALIGNED(16, int16_t, zbin_ptr[2]);
85 DECLARE_ALIGNED_ARRAY(16, int16_t, round_ptr, 2); 85 DECLARE_ALIGNED(16, int16_t, round_ptr[2]);
86 DECLARE_ALIGNED_ARRAY(16, int16_t, quant_ptr, 2); 86 DECLARE_ALIGNED(16, int16_t, quant_ptr[2]);
87 DECLARE_ALIGNED_ARRAY(16, int16_t, quant_shift_ptr, 2); 87 DECLARE_ALIGNED(16, int16_t, quant_shift_ptr[2]);
88 DECLARE_ALIGNED_ARRAY(16, tran_low_t, qcoeff_ptr, 256); 88 DECLARE_ALIGNED(16, tran_low_t, qcoeff_ptr[256]);
89 DECLARE_ALIGNED_ARRAY(16, tran_low_t, dqcoeff_ptr, 256); 89 DECLARE_ALIGNED(16, tran_low_t, dqcoeff_ptr[256]);
90 DECLARE_ALIGNED_ARRAY(16, tran_low_t, ref_qcoeff_ptr, 256); 90 DECLARE_ALIGNED(16, tran_low_t, ref_qcoeff_ptr[256]);
91 DECLARE_ALIGNED_ARRAY(16, tran_low_t, ref_dqcoeff_ptr, 256); 91 DECLARE_ALIGNED(16, tran_low_t, ref_dqcoeff_ptr[256]);
92 DECLARE_ALIGNED_ARRAY(16, int16_t, dequant_ptr, 2); 92 DECLARE_ALIGNED(16, int16_t, dequant_ptr[2]);
93 DECLARE_ALIGNED_ARRAY(16, uint16_t, eob_ptr, 1); 93 DECLARE_ALIGNED(16, uint16_t, eob_ptr[1]);
94 DECLARE_ALIGNED_ARRAY(16, uint16_t, ref_eob_ptr, 1); 94 DECLARE_ALIGNED(16, uint16_t, ref_eob_ptr[1]);
95 int err_count_total = 0; 95 int err_count_total = 0;
96 int first_failure = -1; 96 int first_failure = -1;
97 for (int i = 0; i < number_of_iterations; ++i) { 97 for (int i = 0; i < number_of_iterations; ++i) {
98 const int skip_block = i == 0; 98 const int skip_block = i == 0;
99 const TX_SIZE sz = (TX_SIZE)(i % 3); // TX_4X4, TX_8X8 TX_16X16 99 const TX_SIZE sz = (TX_SIZE)(i % 3); // TX_4X4, TX_8X8 TX_16X16
100 const TX_TYPE tx_type = (TX_TYPE)((i >> 2) % 3); 100 const TX_TYPE tx_type = (TX_TYPE)((i >> 2) % 3);
101 const scan_order *scan_order = &vp9_scan_orders[sz][tx_type]; 101 const scan_order *scan_order = &vp9_scan_orders[sz][tx_type];
102 const int count = (4 << sz) * (4 << sz); // 16, 64, 256 102 const int count = (4 << sz) * (4 << sz); // 16, 64, 256
103 int err_count = 0; 103 int err_count = 0;
104 *eob_ptr = rnd.Rand16(); 104 *eob_ptr = rnd.Rand16();
(...skipping 27 matching lines...) Expand all
132 } 132 }
133 err_count_total += err_count; 133 err_count_total += err_count;
134 } 134 }
135 EXPECT_EQ(0, err_count_total) 135 EXPECT_EQ(0, err_count_total)
136 << "Error: Quantization Test, C output doesn't match SSE2 output. " 136 << "Error: Quantization Test, C output doesn't match SSE2 output. "
137 << "First failed at test case " << first_failure; 137 << "First failed at test case " << first_failure;
138 } 138 }
139 139
140 TEST_P(VP9Quantize32Test, OperationCheck) { 140 TEST_P(VP9Quantize32Test, OperationCheck) {
141 ACMRandom rnd(ACMRandom::DeterministicSeed()); 141 ACMRandom rnd(ACMRandom::DeterministicSeed());
142 DECLARE_ALIGNED_ARRAY(16, tran_low_t, coeff_ptr, 1024); 142 DECLARE_ALIGNED(16, tran_low_t, coeff_ptr[1024]);
143 DECLARE_ALIGNED_ARRAY(16, int16_t, zbin_ptr, 2); 143 DECLARE_ALIGNED(16, int16_t, zbin_ptr[2]);
144 DECLARE_ALIGNED_ARRAY(16, int16_t, round_ptr, 2); 144 DECLARE_ALIGNED(16, int16_t, round_ptr[2]);
145 DECLARE_ALIGNED_ARRAY(16, int16_t, quant_ptr, 2); 145 DECLARE_ALIGNED(16, int16_t, quant_ptr[2]);
146 DECLARE_ALIGNED_ARRAY(16, int16_t, quant_shift_ptr, 2); 146 DECLARE_ALIGNED(16, int16_t, quant_shift_ptr[2]);
147 DECLARE_ALIGNED_ARRAY(16, tran_low_t, qcoeff_ptr, 1024); 147 DECLARE_ALIGNED(16, tran_low_t, qcoeff_ptr[1024]);
148 DECLARE_ALIGNED_ARRAY(16, tran_low_t, dqcoeff_ptr, 1024); 148 DECLARE_ALIGNED(16, tran_low_t, dqcoeff_ptr[1024]);
149 DECLARE_ALIGNED_ARRAY(16, tran_low_t, ref_qcoeff_ptr, 1024); 149 DECLARE_ALIGNED(16, tran_low_t, ref_qcoeff_ptr[1024]);
150 DECLARE_ALIGNED_ARRAY(16, tran_low_t, ref_dqcoeff_ptr, 1024); 150 DECLARE_ALIGNED(16, tran_low_t, ref_dqcoeff_ptr[1024]);
151 DECLARE_ALIGNED_ARRAY(16, int16_t, dequant_ptr, 2); 151 DECLARE_ALIGNED(16, int16_t, dequant_ptr[2]);
152 DECLARE_ALIGNED_ARRAY(16, uint16_t, eob_ptr, 1); 152 DECLARE_ALIGNED(16, uint16_t, eob_ptr[1]);
153 DECLARE_ALIGNED_ARRAY(16, uint16_t, ref_eob_ptr, 1); 153 DECLARE_ALIGNED(16, uint16_t, ref_eob_ptr[1]);
154 int err_count_total = 0; 154 int err_count_total = 0;
155 int first_failure = -1; 155 int first_failure = -1;
156 for (int i = 0; i < number_of_iterations; ++i) { 156 for (int i = 0; i < number_of_iterations; ++i) {
157 const int skip_block = i == 0; 157 const int skip_block = i == 0;
158 const TX_SIZE sz = TX_32X32; 158 const TX_SIZE sz = TX_32X32;
159 const TX_TYPE tx_type = (TX_TYPE)(i % 4); 159 const TX_TYPE tx_type = (TX_TYPE)(i % 4);
160 const scan_order *scan_order = &vp9_scan_orders[sz][tx_type]; 160 const scan_order *scan_order = &vp9_scan_orders[sz][tx_type];
161 const int count = (4 << sz) * (4 << sz); // 1024 161 const int count = (4 << sz) * (4 << sz); // 1024
162 int err_count = 0; 162 int err_count = 0;
163 *eob_ptr = rnd.Rand16(); 163 *eob_ptr = rnd.Rand16();
(...skipping 27 matching lines...) Expand all
191 } 191 }
192 err_count_total += err_count; 192 err_count_total += err_count;
193 } 193 }
194 EXPECT_EQ(0, err_count_total) 194 EXPECT_EQ(0, err_count_total)
195 << "Error: Quantization Test, C output doesn't match SSE2 output. " 195 << "Error: Quantization Test, C output doesn't match SSE2 output. "
196 << "First failed at test case " << first_failure; 196 << "First failed at test case " << first_failure;
197 } 197 }
198 198
199 TEST_P(VP9QuantizeTest, EOBCheck) { 199 TEST_P(VP9QuantizeTest, EOBCheck) {
200 ACMRandom rnd(ACMRandom::DeterministicSeed()); 200 ACMRandom rnd(ACMRandom::DeterministicSeed());
201 DECLARE_ALIGNED_ARRAY(16, tran_low_t, coeff_ptr, 256); 201 DECLARE_ALIGNED(16, tran_low_t, coeff_ptr[256]);
202 DECLARE_ALIGNED_ARRAY(16, int16_t, zbin_ptr, 2); 202 DECLARE_ALIGNED(16, int16_t, zbin_ptr[2]);
203 DECLARE_ALIGNED_ARRAY(16, int16_t, round_ptr, 2); 203 DECLARE_ALIGNED(16, int16_t, round_ptr[2]);
204 DECLARE_ALIGNED_ARRAY(16, int16_t, quant_ptr, 2); 204 DECLARE_ALIGNED(16, int16_t, quant_ptr[2]);
205 DECLARE_ALIGNED_ARRAY(16, int16_t, quant_shift_ptr, 2); 205 DECLARE_ALIGNED(16, int16_t, quant_shift_ptr[2]);
206 DECLARE_ALIGNED_ARRAY(16, tran_low_t, qcoeff_ptr, 256); 206 DECLARE_ALIGNED(16, tran_low_t, qcoeff_ptr[256]);
207 DECLARE_ALIGNED_ARRAY(16, tran_low_t, dqcoeff_ptr, 256); 207 DECLARE_ALIGNED(16, tran_low_t, dqcoeff_ptr[256]);
208 DECLARE_ALIGNED_ARRAY(16, tran_low_t, ref_qcoeff_ptr, 256); 208 DECLARE_ALIGNED(16, tran_low_t, ref_qcoeff_ptr[256]);
209 DECLARE_ALIGNED_ARRAY(16, tran_low_t, ref_dqcoeff_ptr, 256); 209 DECLARE_ALIGNED(16, tran_low_t, ref_dqcoeff_ptr[256]);
210 DECLARE_ALIGNED_ARRAY(16, int16_t, dequant_ptr, 2); 210 DECLARE_ALIGNED(16, int16_t, dequant_ptr[2]);
211 DECLARE_ALIGNED_ARRAY(16, uint16_t, eob_ptr, 1); 211 DECLARE_ALIGNED(16, uint16_t, eob_ptr[1]);
212 DECLARE_ALIGNED_ARRAY(16, uint16_t, ref_eob_ptr, 1); 212 DECLARE_ALIGNED(16, uint16_t, ref_eob_ptr[1]);
213 int err_count_total = 0; 213 int err_count_total = 0;
214 int first_failure = -1; 214 int first_failure = -1;
215 for (int i = 0; i < number_of_iterations; ++i) { 215 for (int i = 0; i < number_of_iterations; ++i) {
216 int skip_block = i == 0; 216 int skip_block = i == 0;
217 TX_SIZE sz = (TX_SIZE)(i % 3); // TX_4X4, TX_8X8 TX_16X16 217 TX_SIZE sz = (TX_SIZE)(i % 3); // TX_4X4, TX_8X8 TX_16X16
218 TX_TYPE tx_type = (TX_TYPE)((i >> 2) % 3); 218 TX_TYPE tx_type = (TX_TYPE)((i >> 2) % 3);
219 const scan_order *scan_order = &vp9_scan_orders[sz][tx_type]; 219 const scan_order *scan_order = &vp9_scan_orders[sz][tx_type];
220 int count = (4 << sz) * (4 << sz); // 16, 64, 256 220 int count = (4 << sz) * (4 << sz); // 16, 64, 256
221 int err_count = 0; 221 int err_count = 0;
222 *eob_ptr = rnd.Rand16(); 222 *eob_ptr = rnd.Rand16();
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
255 } 255 }
256 err_count_total += err_count; 256 err_count_total += err_count;
257 } 257 }
258 EXPECT_EQ(0, err_count_total) 258 EXPECT_EQ(0, err_count_total)
259 << "Error: Quantization Test, C output doesn't match SSE2 output. " 259 << "Error: Quantization Test, C output doesn't match SSE2 output. "
260 << "First failed at test case " << first_failure; 260 << "First failed at test case " << first_failure;
261 } 261 }
262 262
263 TEST_P(VP9Quantize32Test, EOBCheck) { 263 TEST_P(VP9Quantize32Test, EOBCheck) {
264 ACMRandom rnd(ACMRandom::DeterministicSeed()); 264 ACMRandom rnd(ACMRandom::DeterministicSeed());
265 DECLARE_ALIGNED_ARRAY(16, tran_low_t, coeff_ptr, 1024); 265 DECLARE_ALIGNED(16, tran_low_t, coeff_ptr[1024]);
266 DECLARE_ALIGNED_ARRAY(16, int16_t, zbin_ptr, 2); 266 DECLARE_ALIGNED(16, int16_t, zbin_ptr[2]);
267 DECLARE_ALIGNED_ARRAY(16, int16_t, round_ptr, 2); 267 DECLARE_ALIGNED(16, int16_t, round_ptr[2]);
268 DECLARE_ALIGNED_ARRAY(16, int16_t, quant_ptr, 2); 268 DECLARE_ALIGNED(16, int16_t, quant_ptr[2]);
269 DECLARE_ALIGNED_ARRAY(16, int16_t, quant_shift_ptr, 2); 269 DECLARE_ALIGNED(16, int16_t, quant_shift_ptr[2]);
270 DECLARE_ALIGNED_ARRAY(16, tran_low_t, qcoeff_ptr, 1024); 270 DECLARE_ALIGNED(16, tran_low_t, qcoeff_ptr[1024]);
271 DECLARE_ALIGNED_ARRAY(16, tran_low_t, dqcoeff_ptr, 1024); 271 DECLARE_ALIGNED(16, tran_low_t, dqcoeff_ptr[1024]);
272 DECLARE_ALIGNED_ARRAY(16, tran_low_t, ref_qcoeff_ptr, 1024); 272 DECLARE_ALIGNED(16, tran_low_t, ref_qcoeff_ptr[1024]);
273 DECLARE_ALIGNED_ARRAY(16, tran_low_t, ref_dqcoeff_ptr, 1024); 273 DECLARE_ALIGNED(16, tran_low_t, ref_dqcoeff_ptr[1024]);
274 DECLARE_ALIGNED_ARRAY(16, int16_t, dequant_ptr, 2); 274 DECLARE_ALIGNED(16, int16_t, dequant_ptr[2]);
275 DECLARE_ALIGNED_ARRAY(16, uint16_t, eob_ptr, 1); 275 DECLARE_ALIGNED(16, uint16_t, eob_ptr[1]);
276 DECLARE_ALIGNED_ARRAY(16, uint16_t, ref_eob_ptr, 1); 276 DECLARE_ALIGNED(16, uint16_t, ref_eob_ptr[1]);
277 int err_count_total = 0; 277 int err_count_total = 0;
278 int first_failure = -1; 278 int first_failure = -1;
279 for (int i = 0; i < number_of_iterations; ++i) { 279 for (int i = 0; i < number_of_iterations; ++i) {
280 int skip_block = i == 0; 280 int skip_block = i == 0;
281 TX_SIZE sz = TX_32X32; 281 TX_SIZE sz = TX_32X32;
282 TX_TYPE tx_type = (TX_TYPE)(i % 4); 282 TX_TYPE tx_type = (TX_TYPE)(i % 4);
283 const scan_order *scan_order = &vp9_scan_orders[sz][tx_type]; 283 const scan_order *scan_order = &vp9_scan_orders[sz][tx_type];
284 int count = (4 << sz) * (4 << sz); // 1024 284 int count = (4 << sz) * (4 << sz); // 1024
285 int err_count = 0; 285 int err_count = 0;
286 *eob_ptr = rnd.Rand16(); 286 *eob_ptr = rnd.Rand16();
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
340 ::testing::Values( 340 ::testing::Values(
341 make_tuple(&vp9_highbd_quantize_b_32x32_sse2, 341 make_tuple(&vp9_highbd_quantize_b_32x32_sse2,
342 &vp9_highbd_quantize_b_32x32_c, VPX_BITS_8), 342 &vp9_highbd_quantize_b_32x32_c, VPX_BITS_8),
343 make_tuple(&vp9_highbd_quantize_b_32x32_sse2, 343 make_tuple(&vp9_highbd_quantize_b_32x32_sse2,
344 &vp9_highbd_quantize_b_32x32_c, VPX_BITS_10), 344 &vp9_highbd_quantize_b_32x32_c, VPX_BITS_10),
345 make_tuple(&vp9_highbd_quantize_b_32x32_sse2, 345 make_tuple(&vp9_highbd_quantize_b_32x32_sse2,
346 &vp9_highbd_quantize_b_32x32_c, VPX_BITS_12))); 346 &vp9_highbd_quantize_b_32x32_c, VPX_BITS_12)));
347 #endif // HAVE_SSE2 347 #endif // HAVE_SSE2
348 #endif // CONFIG_VP9_HIGHBITDEPTH 348 #endif // CONFIG_VP9_HIGHBITDEPTH
349 } // namespace 349 } // namespace
OLDNEW
« no previous file with comments | « source/libvpx/test/vp9_intrapred_test.cc ('k') | source/libvpx/test/vpx_scale_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698