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

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

Issue 390713002: libvpx: Pull from upstream (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/deps/third_party/libvpx/
Patch Set: libvpx: Pull from upstream Created 6 years, 5 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 | Annotate | Revision Log
« no previous file with comments | « source/libvpx/test/resize_util.sh ('k') | source/libvpx/test/simple_decoder.sh » ('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) 2012 The WebM project authors. All Rights Reserved. 2 * Copyright (c) 2012 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 131 matching lines...) Expand 10 before | Expand all | Expand 10 after
142 : public SADTestBase, 142 : public SADTestBase,
143 public ::testing::WithParamInterface<sad_n_by_n_by_4_test_param_t> { 143 public ::testing::WithParamInterface<sad_n_by_n_by_4_test_param_t> {
144 public: 144 public:
145 SADx4Test() : SADTestBase(GET_PARAM(0), GET_PARAM(1)) {} 145 SADx4Test() : SADTestBase(GET_PARAM(0), GET_PARAM(1)) {}
146 146
147 protected: 147 protected:
148 void SADs(unsigned int *results) { 148 void SADs(unsigned int *results) {
149 const uint8_t* refs[] = {GetReference(0), GetReference(1), 149 const uint8_t* refs[] = {GetReference(0), GetReference(1),
150 GetReference(2), GetReference(3)}; 150 GetReference(2), GetReference(3)};
151 151
152 REGISTER_STATE_CHECK(GET_PARAM(2)(source_data_, source_stride_, 152 ASM_REGISTER_STATE_CHECK(GET_PARAM(2)(source_data_, source_stride_,
153 refs, reference_stride_, 153 refs, reference_stride_,
154 results)); 154 results));
155 } 155 }
156 156
157 void CheckSADs() { 157 void CheckSADs() {
158 unsigned int reference_sad, exp_sad[4]; 158 unsigned int reference_sad, exp_sad[4];
159 159
160 SADs(exp_sad); 160 SADs(exp_sad);
161 for (int block = 0; block < 4; ++block) { 161 for (int block = 0; block < 4; ++block) {
162 reference_sad = ReferenceSAD(UINT_MAX, block); 162 reference_sad = ReferenceSAD(UINT_MAX, block);
163 163
164 EXPECT_EQ(reference_sad, exp_sad[block]) << "block " << block; 164 EXPECT_EQ(reference_sad, exp_sad[block]) << "block " << block;
165 } 165 }
166 } 166 }
167 }; 167 };
168 168
169 #if CONFIG_VP8_ENCODER 169 #if CONFIG_VP8_ENCODER
170 class SADTest 170 class SADTest
171 : public SADTestBase, 171 : public SADTestBase,
172 public ::testing::WithParamInterface<sad_m_by_n_test_param_t> { 172 public ::testing::WithParamInterface<sad_m_by_n_test_param_t> {
173 public: 173 public:
174 SADTest() : SADTestBase(GET_PARAM(0), GET_PARAM(1)) {} 174 SADTest() : SADTestBase(GET_PARAM(0), GET_PARAM(1)) {}
175 175
176 protected: 176 protected:
177 unsigned int SAD(unsigned int max_sad, int block_idx) { 177 unsigned int SAD(unsigned int max_sad, int block_idx) {
178 unsigned int ret; 178 unsigned int ret;
179 const uint8_t* const reference = GetReference(block_idx); 179 const uint8_t* const reference = GetReference(block_idx);
180 180
181 REGISTER_STATE_CHECK(ret = GET_PARAM(2)(source_data_, source_stride_, 181 ASM_REGISTER_STATE_CHECK(ret = GET_PARAM(2)(source_data_, source_stride_,
182 reference, reference_stride_, 182 reference, reference_stride_,
183 max_sad)); 183 max_sad));
184 return ret; 184 return ret;
185 } 185 }
186 186
187 void CheckSAD(unsigned int max_sad) { 187 void CheckSAD(unsigned int max_sad) {
188 const unsigned int reference_sad = ReferenceSAD(max_sad, 0); 188 const unsigned int reference_sad = ReferenceSAD(max_sad, 0);
189 const unsigned int exp_sad = SAD(max_sad, 0); 189 const unsigned int exp_sad = SAD(max_sad, 0);
190 190
191 if (reference_sad <= max_sad) { 191 if (reference_sad <= max_sad) {
192 ASSERT_EQ(exp_sad, reference_sad); 192 ASSERT_EQ(exp_sad, reference_sad);
193 } else { 193 } else {
194 // Alternative implementations are not required to check max_sad 194 // Alternative implementations are not required to check max_sad
195 ASSERT_GE(exp_sad, reference_sad); 195 ASSERT_GE(exp_sad, reference_sad);
196 } 196 }
197 } 197 }
198 }; 198 };
199 #endif // CONFIG_VP8_ENCODER 199 #endif // CONFIG_VP8_ENCODER
200 200
201 #if CONFIG_VP9_ENCODER 201 #if CONFIG_VP9_ENCODER
202 class SADVP9Test 202 class SADVP9Test
203 : public SADTestBase, 203 : public SADTestBase,
204 public ::testing::WithParamInterface<sad_m_by_n_test_param_vp9_t> { 204 public ::testing::WithParamInterface<sad_m_by_n_test_param_vp9_t> {
205 public: 205 public:
206 SADVP9Test() : SADTestBase(GET_PARAM(0), GET_PARAM(1)) {} 206 SADVP9Test() : SADTestBase(GET_PARAM(0), GET_PARAM(1)) {}
207 207
208 protected: 208 protected:
209 unsigned int SAD(int block_idx) { 209 unsigned int SAD(int block_idx) {
210 unsigned int ret; 210 unsigned int ret;
211 const uint8_t* const reference = GetReference(block_idx); 211 const uint8_t* const reference = GetReference(block_idx);
212 212
213 REGISTER_STATE_CHECK(ret = GET_PARAM(2)(source_data_, source_stride_, 213 ASM_REGISTER_STATE_CHECK(ret = GET_PARAM(2)(source_data_, source_stride_,
214 reference, reference_stride_)); 214 reference, reference_stride_));
215 return ret; 215 return ret;
216 } 216 }
217 217
218 void CheckSAD() { 218 void CheckSAD() {
219 const unsigned int reference_sad = ReferenceSAD(UINT_MAX, 0); 219 const unsigned int reference_sad = ReferenceSAD(UINT_MAX, 0);
220 const unsigned int exp_sad = SAD(0); 220 const unsigned int exp_sad = SAD(0);
221 221
222 ASSERT_EQ(reference_sad, exp_sad); 222 ASSERT_EQ(reference_sad, exp_sad);
223 } 223 }
224 }; 224 };
(...skipping 416 matching lines...) Expand 10 before | Expand all | Expand 10 after
641 } 641 }
642 const sad_n_by_n_by_4_fn_t sad_64x64x4d_avx2 = vp9_sad64x64x4d_avx2; 642 const sad_n_by_n_by_4_fn_t sad_64x64x4d_avx2 = vp9_sad64x64x4d_avx2;
643 const sad_n_by_n_by_4_fn_t sad_32x32x4d_avx2 = vp9_sad32x32x4d_avx2; 643 const sad_n_by_n_by_4_fn_t sad_32x32x4d_avx2 = vp9_sad32x32x4d_avx2;
644 INSTANTIATE_TEST_CASE_P(DISABLED_AVX2, SADx4Test, ::testing::Values( 644 INSTANTIATE_TEST_CASE_P(DISABLED_AVX2, SADx4Test, ::testing::Values(
645 make_tuple(32, 32, sad_32x32x4d_avx2), 645 make_tuple(32, 32, sad_32x32x4d_avx2),
646 make_tuple(64, 64, sad_64x64x4d_avx2))); 646 make_tuple(64, 64, sad_64x64x4d_avx2)));
647 #endif // CONFIG_VP9_ENCODER 647 #endif // CONFIG_VP9_ENCODER
648 #endif // HAVE_AVX2 648 #endif // HAVE_AVX2
649 649
650 } // namespace 650 } // namespace
OLDNEW
« no previous file with comments | « source/libvpx/test/resize_util.sh ('k') | source/libvpx/test/simple_decoder.sh » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698