OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2011 The LibYuv Project Authors. All rights reserved. | 2 * Copyright 2011 The LibYuv 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 14 matching lines...) Expand all Loading... |
25 static uint32 ReferenceHashDjb2(const uint8* src, uint64 count, uint32 seed) { | 25 static uint32 ReferenceHashDjb2(const uint8* src, uint64 count, uint32 seed) { |
26 uint32 hash = seed; | 26 uint32 hash = seed; |
27 if (count > 0) { | 27 if (count > 0) { |
28 do { | 28 do { |
29 hash = hash * 33 + *src++; | 29 hash = hash * 33 + *src++; |
30 } while (--count); | 30 } while (--count); |
31 } | 31 } |
32 return hash; | 32 return hash; |
33 } | 33 } |
34 | 34 |
35 TEST_F(libyuvTest, Djb2_Test) { | 35 TEST_F(LibYUVBaseTest, Djb2_Test) { |
36 const int kMaxTest = benchmark_width_ * benchmark_height_; | 36 const int kMaxTest = benchmark_width_ * benchmark_height_; |
37 align_buffer_64(src_a, kMaxTest); | 37 align_buffer_64(src_a, kMaxTest); |
38 align_buffer_64(src_b, kMaxTest); | 38 align_buffer_64(src_b, kMaxTest); |
39 | 39 |
40 const char* fox = "The quick brown fox jumps over the lazy dog" | 40 const char* fox = "The quick brown fox jumps over the lazy dog" |
41 " and feels as if he were in the seventh heaven of typography" | 41 " and feels as if he were in the seventh heaven of typography" |
42 " together with Hermann Zapf"; | 42 " together with Hermann Zapf"; |
43 uint32 foxhash = HashDjb2(reinterpret_cast<const uint8*>(fox), 131, 5381); | 43 uint32 foxhash = HashDjb2(reinterpret_cast<const uint8*>(fox), 131, 5381); |
44 const uint32 kExpectedFoxHash = 2611006483u; | 44 const uint32 kExpectedFoxHash = 2611006483u; |
45 EXPECT_EQ(kExpectedFoxHash, foxhash); | 45 EXPECT_EQ(kExpectedFoxHash, foxhash); |
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
109 // Make a zeros and seed of zero. Test different lengths. Expect hash is same. | 109 // Make a zeros and seed of zero. Test different lengths. Expect hash is same. |
110 memset(src_a, 0, kMaxTest); | 110 memset(src_a, 0, kMaxTest); |
111 h1 = HashDjb2(src_a, kMaxTest, 0); | 111 h1 = HashDjb2(src_a, kMaxTest, 0); |
112 h2 = HashDjb2(src_a, kMaxTest / 2, 0); | 112 h2 = HashDjb2(src_a, kMaxTest / 2, 0); |
113 EXPECT_EQ(h1, h2); | 113 EXPECT_EQ(h1, h2); |
114 | 114 |
115 free_aligned_buffer_64(src_a); | 115 free_aligned_buffer_64(src_a); |
116 free_aligned_buffer_64(src_b); | 116 free_aligned_buffer_64(src_b); |
117 } | 117 } |
118 | 118 |
119 TEST_F(libyuvTest, BenchmarkDjb2_Opt) { | 119 TEST_F(LibYUVBaseTest, BenchmarkDjb2_Opt) { |
120 const int kMaxTest = benchmark_width_ * benchmark_height_; | 120 const int kMaxTest = benchmark_width_ * benchmark_height_; |
121 align_buffer_64(src_a, kMaxTest); | 121 align_buffer_64(src_a, kMaxTest); |
122 | 122 |
123 for (int i = 0; i < kMaxTest; ++i) { | 123 for (int i = 0; i < kMaxTest; ++i) { |
124 src_a[i] = i; | 124 src_a[i] = i; |
125 } | 125 } |
126 uint32 h2 = ReferenceHashDjb2(src_a, kMaxTest, 5381); | 126 uint32 h2 = ReferenceHashDjb2(src_a, kMaxTest, 5381); |
127 uint32 h1; | 127 uint32 h1; |
128 for (int i = 0; i < benchmark_iterations_; ++i) { | 128 for (int i = 0; i < benchmark_iterations_; ++i) { |
129 h1 = HashDjb2(src_a, kMaxTest, 5381); | 129 h1 = HashDjb2(src_a, kMaxTest, 5381); |
130 } | 130 } |
131 EXPECT_EQ(h1, h2); | 131 EXPECT_EQ(h1, h2); |
132 free_aligned_buffer_64(src_a); | 132 free_aligned_buffer_64(src_a); |
133 } | 133 } |
134 | 134 |
135 TEST_F(libyuvTest, BenchmarkDjb2_Unaligned) { | 135 TEST_F(LibYUVBaseTest, BenchmarkDjb2_Unaligned) { |
136 const int kMaxTest = benchmark_width_ * benchmark_height_; | 136 const int kMaxTest = benchmark_width_ * benchmark_height_; |
137 align_buffer_64(src_a, kMaxTest + 1); | 137 align_buffer_64(src_a, kMaxTest + 1); |
138 for (int i = 0; i < kMaxTest; ++i) { | 138 for (int i = 0; i < kMaxTest; ++i) { |
139 src_a[i + 1] = i; | 139 src_a[i + 1] = i; |
140 } | 140 } |
141 uint32 h2 = ReferenceHashDjb2(src_a + 1, kMaxTest, 5381); | 141 uint32 h2 = ReferenceHashDjb2(src_a + 1, kMaxTest, 5381); |
142 uint32 h1; | 142 uint32 h1; |
143 for (int i = 0; i < benchmark_iterations_; ++i) { | 143 for (int i = 0; i < benchmark_iterations_; ++i) { |
144 h1 = HashDjb2(src_a + 1, kMaxTest, 5381); | 144 h1 = HashDjb2(src_a + 1, kMaxTest, 5381); |
145 } | 145 } |
146 EXPECT_EQ(h1, h2); | 146 EXPECT_EQ(h1, h2); |
147 free_aligned_buffer_64(src_a); | 147 free_aligned_buffer_64(src_a); |
148 } | 148 } |
149 | 149 |
150 TEST_F(libyuvTest, BenchmarkARGBDetect_Opt) { | 150 TEST_F(LibYUVBaseTest, BenchmarkARGBDetect_Opt) { |
151 uint32 fourcc; | 151 uint32 fourcc; |
152 const int kMaxTest = benchmark_width_ * benchmark_height_ * 4; | 152 const int kMaxTest = benchmark_width_ * benchmark_height_ * 4; |
153 align_buffer_64(src_a, kMaxTest); | 153 align_buffer_64(src_a, kMaxTest); |
154 for (int i = 0; i < kMaxTest; ++i) { | 154 for (int i = 0; i < kMaxTest; ++i) { |
155 src_a[i] = 255; | 155 src_a[i] = 255; |
156 } | 156 } |
157 | 157 |
158 src_a[0] = 0; | 158 src_a[0] = 0; |
159 fourcc = ARGBDetect(src_a, benchmark_width_ * 4, | 159 fourcc = ARGBDetect(src_a, benchmark_width_ * 4, |
160 benchmark_width_, benchmark_height_); | 160 benchmark_width_, benchmark_height_); |
161 EXPECT_EQ(libyuv::FOURCC_BGRA, fourcc); | 161 EXPECT_EQ(libyuv::FOURCC_BGRA, fourcc); |
162 src_a[0] = 255; | 162 src_a[0] = 255; |
163 src_a[3] = 0; | 163 src_a[3] = 0; |
164 fourcc = ARGBDetect(src_a, benchmark_width_ * 4, | 164 fourcc = ARGBDetect(src_a, benchmark_width_ * 4, |
165 benchmark_width_, benchmark_height_); | 165 benchmark_width_, benchmark_height_); |
166 EXPECT_EQ(libyuv::FOURCC_ARGB, fourcc); | 166 EXPECT_EQ(libyuv::FOURCC_ARGB, fourcc); |
167 src_a[3] = 255; | 167 src_a[3] = 255; |
168 | 168 |
169 for (int i = 0; i < benchmark_iterations_; ++i) { | 169 for (int i = 0; i < benchmark_iterations_; ++i) { |
170 fourcc = ARGBDetect(src_a, benchmark_width_ * 4, | 170 fourcc = ARGBDetect(src_a, benchmark_width_ * 4, |
171 benchmark_width_, benchmark_height_); | 171 benchmark_width_, benchmark_height_); |
172 } | 172 } |
173 EXPECT_EQ(0, fourcc); | 173 EXPECT_EQ(0, fourcc); |
174 | 174 |
175 free_aligned_buffer_64(src_a); | 175 free_aligned_buffer_64(src_a); |
176 } | 176 } |
177 | 177 |
178 TEST_F(libyuvTest, BenchmarkARGBDetect_Unaligned) { | 178 TEST_F(LibYUVBaseTest, BenchmarkARGBDetect_Unaligned) { |
179 uint32 fourcc; | 179 uint32 fourcc; |
180 const int kMaxTest = benchmark_width_ * benchmark_height_ * 4 + 1; | 180 const int kMaxTest = benchmark_width_ * benchmark_height_ * 4 + 1; |
181 align_buffer_64(src_a, kMaxTest); | 181 align_buffer_64(src_a, kMaxTest); |
182 for (int i = 0; i < kMaxTest; ++i) { | 182 for (int i = 0; i < kMaxTest; ++i) { |
183 src_a[i + 1] = 255; | 183 src_a[i + 1] = 255; |
184 } | 184 } |
185 | 185 |
186 src_a[0 + 1] = 0; | 186 src_a[0 + 1] = 0; |
187 fourcc = ARGBDetect(src_a + 1, benchmark_width_ * 4, | 187 fourcc = ARGBDetect(src_a + 1, benchmark_width_ * 4, |
188 benchmark_width_, benchmark_height_); | 188 benchmark_width_, benchmark_height_); |
189 EXPECT_EQ(libyuv::FOURCC_BGRA, fourcc); | 189 EXPECT_EQ(libyuv::FOURCC_BGRA, fourcc); |
190 src_a[0 + 1] = 255; | 190 src_a[0 + 1] = 255; |
191 src_a[3 + 1] = 0; | 191 src_a[3 + 1] = 0; |
192 fourcc = ARGBDetect(src_a + 1, benchmark_width_ * 4, | 192 fourcc = ARGBDetect(src_a + 1, benchmark_width_ * 4, |
193 benchmark_width_, benchmark_height_); | 193 benchmark_width_, benchmark_height_); |
194 EXPECT_EQ(libyuv::FOURCC_ARGB, fourcc); | 194 EXPECT_EQ(libyuv::FOURCC_ARGB, fourcc); |
195 src_a[3 + 1] = 255; | 195 src_a[3 + 1] = 255; |
196 | 196 |
197 for (int i = 0; i < benchmark_iterations_; ++i) { | 197 for (int i = 0; i < benchmark_iterations_; ++i) { |
198 fourcc = ARGBDetect(src_a + 1, benchmark_width_ * 4, | 198 fourcc = ARGBDetect(src_a + 1, benchmark_width_ * 4, |
199 benchmark_width_, benchmark_height_); | 199 benchmark_width_, benchmark_height_); |
200 } | 200 } |
201 EXPECT_EQ(0, fourcc); | 201 EXPECT_EQ(0, fourcc); |
202 | 202 |
203 free_aligned_buffer_64(src_a); | 203 free_aligned_buffer_64(src_a); |
204 } | 204 } |
205 TEST_F(libyuvTest, BenchmarkSumSquareError_Opt) { | 205 TEST_F(LibYUVBaseTest, BenchmarkSumSquareError_Opt) { |
206 const int kMaxWidth = 4096 * 3; | 206 const int kMaxWidth = 4096 * 3; |
207 align_buffer_64(src_a, kMaxWidth); | 207 align_buffer_64(src_a, kMaxWidth); |
208 align_buffer_64(src_b, kMaxWidth); | 208 align_buffer_64(src_b, kMaxWidth); |
209 memset(src_a, 0, kMaxWidth); | 209 memset(src_a, 0, kMaxWidth); |
210 memset(src_b, 0, kMaxWidth); | 210 memset(src_b, 0, kMaxWidth); |
211 | 211 |
212 memcpy(src_a, "test0123test4567", 16); | 212 memcpy(src_a, "test0123test4567", 16); |
213 memcpy(src_b, "tick0123tock4567", 16); | 213 memcpy(src_b, "tick0123tock4567", 16); |
214 uint64 h1 = ComputeSumSquareError(src_a, src_b, 16); | 214 uint64 h1 = ComputeSumSquareError(src_a, src_b, 16); |
215 EXPECT_EQ(790u, h1); | 215 EXPECT_EQ(790u, h1); |
(...skipping 10 matching lines...) Expand all Loading... |
226 for (int i = 0; i < count; ++i) { | 226 for (int i = 0; i < count; ++i) { |
227 h1 = ComputeSumSquareError(src_a, src_b, kMaxWidth); | 227 h1 = ComputeSumSquareError(src_a, src_b, kMaxWidth); |
228 } | 228 } |
229 | 229 |
230 EXPECT_EQ(0, h1); | 230 EXPECT_EQ(0, h1); |
231 | 231 |
232 free_aligned_buffer_64(src_a); | 232 free_aligned_buffer_64(src_a); |
233 free_aligned_buffer_64(src_b); | 233 free_aligned_buffer_64(src_b); |
234 } | 234 } |
235 | 235 |
236 TEST_F(libyuvTest, SumSquareError) { | 236 TEST_F(LibYUVBaseTest, SumSquareError) { |
237 const int kMaxWidth = 4096 * 3; | 237 const int kMaxWidth = 4096 * 3; |
238 align_buffer_64(src_a, kMaxWidth); | 238 align_buffer_64(src_a, kMaxWidth); |
239 align_buffer_64(src_b, kMaxWidth); | 239 align_buffer_64(src_b, kMaxWidth); |
240 memset(src_a, 0, kMaxWidth); | 240 memset(src_a, 0, kMaxWidth); |
241 memset(src_b, 0, kMaxWidth); | 241 memset(src_b, 0, kMaxWidth); |
242 | 242 |
243 uint64 err; | 243 uint64 err; |
244 err = ComputeSumSquareError(src_a, src_b, kMaxWidth); | 244 err = ComputeSumSquareError(src_a, src_b, kMaxWidth); |
245 | 245 |
246 EXPECT_EQ(0, err); | 246 EXPECT_EQ(0, err); |
(...skipping 19 matching lines...) Expand all Loading... |
266 | 266 |
267 MaskCpuFlags(-1); | 267 MaskCpuFlags(-1); |
268 uint64 opt_err = ComputeSumSquareError(src_a, src_b, kMaxWidth); | 268 uint64 opt_err = ComputeSumSquareError(src_a, src_b, kMaxWidth); |
269 | 269 |
270 EXPECT_EQ(c_err, opt_err); | 270 EXPECT_EQ(c_err, opt_err); |
271 | 271 |
272 free_aligned_buffer_64(src_a); | 272 free_aligned_buffer_64(src_a); |
273 free_aligned_buffer_64(src_b); | 273 free_aligned_buffer_64(src_b); |
274 } | 274 } |
275 | 275 |
276 TEST_F(libyuvTest, BenchmarkPsnr_Opt) { | 276 TEST_F(LibYUVBaseTest, BenchmarkPsnr_Opt) { |
277 align_buffer_64(src_a, benchmark_width_ * benchmark_height_); | 277 align_buffer_64(src_a, benchmark_width_ * benchmark_height_); |
278 align_buffer_64(src_b, benchmark_width_ * benchmark_height_); | 278 align_buffer_64(src_b, benchmark_width_ * benchmark_height_); |
279 for (int i = 0; i < benchmark_width_ * benchmark_height_; ++i) { | 279 for (int i = 0; i < benchmark_width_ * benchmark_height_; ++i) { |
280 src_a[i] = i; | 280 src_a[i] = i; |
281 src_b[i] = i; | 281 src_b[i] = i; |
282 } | 282 } |
283 | 283 |
284 MaskCpuFlags(-1); | 284 MaskCpuFlags(-1); |
285 | 285 |
286 double opt_time = get_time(); | 286 double opt_time = get_time(); |
287 for (int i = 0; i < benchmark_iterations_; ++i) | 287 for (int i = 0; i < benchmark_iterations_; ++i) |
288 CalcFramePsnr(src_a, benchmark_width_, | 288 CalcFramePsnr(src_a, benchmark_width_, |
289 src_b, benchmark_width_, | 289 src_b, benchmark_width_, |
290 benchmark_width_, benchmark_height_); | 290 benchmark_width_, benchmark_height_); |
291 | 291 |
292 opt_time = (get_time() - opt_time) / benchmark_iterations_; | 292 opt_time = (get_time() - opt_time) / benchmark_iterations_; |
293 printf("BenchmarkPsnr_Opt - %8.2f us opt\n", opt_time * 1e6); | 293 printf("BenchmarkPsnr_Opt - %8.2f us opt\n", opt_time * 1e6); |
294 | 294 |
295 EXPECT_EQ(0, 0); | 295 EXPECT_EQ(0, 0); |
296 | 296 |
297 free_aligned_buffer_64(src_a); | 297 free_aligned_buffer_64(src_a); |
298 free_aligned_buffer_64(src_b); | 298 free_aligned_buffer_64(src_b); |
299 } | 299 } |
300 | 300 |
301 TEST_F(libyuvTest, BenchmarkPsnr_Unaligned) { | 301 TEST_F(LibYUVBaseTest, BenchmarkPsnr_Unaligned) { |
302 align_buffer_64(src_a, benchmark_width_ * benchmark_height_ + 1); | 302 align_buffer_64(src_a, benchmark_width_ * benchmark_height_ + 1); |
303 align_buffer_64(src_b, benchmark_width_ * benchmark_height_); | 303 align_buffer_64(src_b, benchmark_width_ * benchmark_height_); |
304 for (int i = 0; i < benchmark_width_ * benchmark_height_; ++i) { | 304 for (int i = 0; i < benchmark_width_ * benchmark_height_; ++i) { |
305 src_a[i + 1] = i; | 305 src_a[i + 1] = i; |
306 src_b[i] = i; | 306 src_b[i] = i; |
307 } | 307 } |
308 | 308 |
309 MaskCpuFlags(-1); | 309 MaskCpuFlags(-1); |
310 | 310 |
311 double opt_time = get_time(); | 311 double opt_time = get_time(); |
312 for (int i = 0; i < benchmark_iterations_; ++i) | 312 for (int i = 0; i < benchmark_iterations_; ++i) |
313 CalcFramePsnr(src_a + 1, benchmark_width_, | 313 CalcFramePsnr(src_a + 1, benchmark_width_, |
314 src_b, benchmark_width_, | 314 src_b, benchmark_width_, |
315 benchmark_width_, benchmark_height_); | 315 benchmark_width_, benchmark_height_); |
316 | 316 |
317 opt_time = (get_time() - opt_time) / benchmark_iterations_; | 317 opt_time = (get_time() - opt_time) / benchmark_iterations_; |
318 printf("BenchmarkPsnr_Opt - %8.2f us opt\n", opt_time * 1e6); | 318 printf("BenchmarkPsnr_Opt - %8.2f us opt\n", opt_time * 1e6); |
319 | 319 |
320 EXPECT_EQ(0, 0); | 320 EXPECT_EQ(0, 0); |
321 | 321 |
322 free_aligned_buffer_64(src_a); | 322 free_aligned_buffer_64(src_a); |
323 free_aligned_buffer_64(src_b); | 323 free_aligned_buffer_64(src_b); |
324 } | 324 } |
325 | 325 |
326 TEST_F(libyuvTest, Psnr) { | 326 TEST_F(LibYUVBaseTest, Psnr) { |
327 const int kSrcWidth = benchmark_width_; | 327 const int kSrcWidth = benchmark_width_; |
328 const int kSrcHeight = benchmark_height_; | 328 const int kSrcHeight = benchmark_height_; |
329 const int b = 128; | 329 const int b = 128; |
330 const int kSrcPlaneSize = (kSrcWidth + b * 2) * (kSrcHeight + b * 2); | 330 const int kSrcPlaneSize = (kSrcWidth + b * 2) * (kSrcHeight + b * 2); |
331 const int kSrcStride = 2 * b + kSrcWidth; | 331 const int kSrcStride = 2 * b + kSrcWidth; |
332 align_buffer_64(src_a, kSrcPlaneSize); | 332 align_buffer_64(src_a, kSrcPlaneSize); |
333 align_buffer_64(src_b, kSrcPlaneSize); | 333 align_buffer_64(src_b, kSrcPlaneSize); |
334 memset(src_a, 0, kSrcPlaneSize); | 334 memset(src_a, 0, kSrcPlaneSize); |
335 memset(src_b, 0, kSrcPlaneSize); | 335 memset(src_b, 0, kSrcPlaneSize); |
336 | 336 |
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
393 opt_err = CalcFramePsnr(src_a + kSrcStride * b + b, kSrcStride, | 393 opt_err = CalcFramePsnr(src_a + kSrcStride * b + b, kSrcStride, |
394 src_b + kSrcStride * b + b, kSrcStride, | 394 src_b + kSrcStride * b + b, kSrcStride, |
395 kSrcWidth, kSrcHeight); | 395 kSrcWidth, kSrcHeight); |
396 | 396 |
397 EXPECT_EQ(opt_err, c_err); | 397 EXPECT_EQ(opt_err, c_err); |
398 | 398 |
399 free_aligned_buffer_64(src_a); | 399 free_aligned_buffer_64(src_a); |
400 free_aligned_buffer_64(src_b); | 400 free_aligned_buffer_64(src_b); |
401 } | 401 } |
402 | 402 |
403 TEST_F(libyuvTest, DISABLED_BenchmarkSsim_Opt) { | 403 TEST_F(LibYUVBaseTest, DISABLED_BenchmarkSsim_Opt) { |
404 align_buffer_64(src_a, benchmark_width_ * benchmark_height_); | 404 align_buffer_64(src_a, benchmark_width_ * benchmark_height_); |
405 align_buffer_64(src_b, benchmark_width_ * benchmark_height_); | 405 align_buffer_64(src_b, benchmark_width_ * benchmark_height_); |
406 for (int i = 0; i < benchmark_width_ * benchmark_height_; ++i) { | 406 for (int i = 0; i < benchmark_width_ * benchmark_height_; ++i) { |
407 src_a[i] = i; | 407 src_a[i] = i; |
408 src_b[i] = i; | 408 src_b[i] = i; |
409 } | 409 } |
410 | 410 |
411 MaskCpuFlags(-1); | 411 MaskCpuFlags(-1); |
412 | 412 |
413 double opt_time = get_time(); | 413 double opt_time = get_time(); |
414 for (int i = 0; i < benchmark_iterations_; ++i) | 414 for (int i = 0; i < benchmark_iterations_; ++i) |
415 CalcFrameSsim(src_a, benchmark_width_, | 415 CalcFrameSsim(src_a, benchmark_width_, |
416 src_b, benchmark_width_, | 416 src_b, benchmark_width_, |
417 benchmark_width_, benchmark_height_); | 417 benchmark_width_, benchmark_height_); |
418 | 418 |
419 opt_time = (get_time() - opt_time) / benchmark_iterations_; | 419 opt_time = (get_time() - opt_time) / benchmark_iterations_; |
420 printf("BenchmarkSsim_Opt - %8.2f us opt\n", opt_time * 1e6); | 420 printf("BenchmarkSsim_Opt - %8.2f us opt\n", opt_time * 1e6); |
421 | 421 |
422 EXPECT_EQ(0, 0); // Pass if we get this far. | 422 EXPECT_EQ(0, 0); // Pass if we get this far. |
423 | 423 |
424 free_aligned_buffer_64(src_a); | 424 free_aligned_buffer_64(src_a); |
425 free_aligned_buffer_64(src_b); | 425 free_aligned_buffer_64(src_b); |
426 } | 426 } |
427 | 427 |
428 TEST_F(libyuvTest, Ssim) { | 428 TEST_F(LibYUVBaseTest, Ssim) { |
429 const int kSrcWidth = benchmark_width_; | 429 const int kSrcWidth = benchmark_width_; |
430 const int kSrcHeight = benchmark_height_; | 430 const int kSrcHeight = benchmark_height_; |
431 const int b = 128; | 431 const int b = 128; |
432 const int kSrcPlaneSize = (kSrcWidth + b * 2) * (kSrcHeight + b * 2); | 432 const int kSrcPlaneSize = (kSrcWidth + b * 2) * (kSrcHeight + b * 2); |
433 const int kSrcStride = 2 * b + kSrcWidth; | 433 const int kSrcStride = 2 * b + kSrcWidth; |
434 align_buffer_64(src_a, kSrcPlaneSize); | 434 align_buffer_64(src_a, kSrcPlaneSize); |
435 align_buffer_64(src_b, kSrcPlaneSize); | 435 align_buffer_64(src_b, kSrcPlaneSize); |
436 memset(src_a, 0, kSrcPlaneSize); | 436 memset(src_a, 0, kSrcPlaneSize); |
437 memset(src_b, 0, kSrcPlaneSize); | 437 memset(src_b, 0, kSrcPlaneSize); |
438 | 438 |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
505 | 505 |
506 if (kSrcWidth > 8 && kSrcHeight > 8) { | 506 if (kSrcWidth > 8 && kSrcHeight > 8) { |
507 EXPECT_EQ(opt_err, c_err); | 507 EXPECT_EQ(opt_err, c_err); |
508 } | 508 } |
509 | 509 |
510 free_aligned_buffer_64(src_a); | 510 free_aligned_buffer_64(src_a); |
511 free_aligned_buffer_64(src_b); | 511 free_aligned_buffer_64(src_b); |
512 } | 512 } |
513 | 513 |
514 } // namespace libyuv | 514 } // namespace libyuv |
OLD | NEW |