| OLD | NEW |
| 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 278 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 289 TEST_P(SADTest, MaxSAD) { | 289 TEST_P(SADTest, MaxSAD) { |
| 290 // Verify that, when max_sad is set, the implementation does not return a | 290 // Verify that, when max_sad is set, the implementation does not return a |
| 291 // value lower than the reference. | 291 // value lower than the reference. |
| 292 FillConstant(source_data_, source_stride_, 255); | 292 FillConstant(source_data_, source_stride_, 255); |
| 293 FillConstant(reference_data_, reference_stride_, 0); | 293 FillConstant(reference_data_, reference_stride_, 0); |
| 294 CheckSad(128); | 294 CheckSad(128); |
| 295 } | 295 } |
| 296 | 296 |
| 297 using std::tr1::make_tuple; | 297 using std::tr1::make_tuple; |
| 298 | 298 |
| 299 //------------------------------------------------------------------------------ |
| 300 // C functions |
| 299 #if CONFIG_VP8_ENCODER | 301 #if CONFIG_VP8_ENCODER |
| 300 const sad_m_by_n_fn_t sad_16x16_c = vp8_sad16x16_c; | 302 const sad_m_by_n_fn_t sad_16x16_c = vp8_sad16x16_c; |
| 301 const sad_m_by_n_fn_t sad_8x16_c = vp8_sad8x16_c; | 303 const sad_m_by_n_fn_t sad_8x16_c = vp8_sad8x16_c; |
| 302 const sad_m_by_n_fn_t sad_16x8_c = vp8_sad16x8_c; | 304 const sad_m_by_n_fn_t sad_16x8_c = vp8_sad16x8_c; |
| 303 const sad_m_by_n_fn_t sad_8x8_c = vp8_sad8x8_c; | 305 const sad_m_by_n_fn_t sad_8x8_c = vp8_sad8x8_c; |
| 304 const sad_m_by_n_fn_t sad_4x4_c = vp8_sad4x4_c; | 306 const sad_m_by_n_fn_t sad_4x4_c = vp8_sad4x4_c; |
| 305 #endif | 307 #endif |
| 306 #if CONFIG_VP9_ENCODER | 308 #if CONFIG_VP9_ENCODER |
| 307 const sad_m_by_n_fn_t sad_64x64_c_vp9 = vp9_sad64x64_c; | 309 const sad_m_by_n_fn_t sad_64x64_c_vp9 = vp9_sad64x64_c; |
| 308 const sad_m_by_n_fn_t sad_32x32_c_vp9 = vp9_sad32x32_c; | 310 const sad_m_by_n_fn_t sad_32x32_c_vp9 = vp9_sad32x32_c; |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 357 make_tuple(32, 32, sad_32x32x4d_c), | 359 make_tuple(32, 32, sad_32x32x4d_c), |
| 358 make_tuple(32, 16, sad_32x16x4d_c), | 360 make_tuple(32, 16, sad_32x16x4d_c), |
| 359 make_tuple(16, 32, sad_16x32x4d_c), | 361 make_tuple(16, 32, sad_16x32x4d_c), |
| 360 make_tuple(16, 16, sad_16x16x4d_c), | 362 make_tuple(16, 16, sad_16x16x4d_c), |
| 361 make_tuple(16, 8, sad_16x8x4d_c), | 363 make_tuple(16, 8, sad_16x8x4d_c), |
| 362 make_tuple(8, 16, sad_8x16x4d_c), | 364 make_tuple(8, 16, sad_8x16x4d_c), |
| 363 make_tuple(8, 8, sad_8x8x4d_c), | 365 make_tuple(8, 8, sad_8x8x4d_c), |
| 364 make_tuple(8, 4, sad_8x4x4d_c), | 366 make_tuple(8, 4, sad_8x4x4d_c), |
| 365 make_tuple(4, 8, sad_4x8x4d_c), | 367 make_tuple(4, 8, sad_4x8x4d_c), |
| 366 make_tuple(4, 4, sad_4x4x4d_c))); | 368 make_tuple(4, 4, sad_4x4x4d_c))); |
| 367 #endif | 369 #endif // CONFIG_VP9_ENCODER |
| 368 | 370 |
| 369 // ARM tests | 371 //------------------------------------------------------------------------------ |
| 372 // ARM functions |
| 370 #if HAVE_MEDIA | 373 #if HAVE_MEDIA |
| 374 #if CONFIG_VP8_ENCODER |
| 371 const sad_m_by_n_fn_t sad_16x16_armv6 = vp8_sad16x16_armv6; | 375 const sad_m_by_n_fn_t sad_16x16_armv6 = vp8_sad16x16_armv6; |
| 372 INSTANTIATE_TEST_CASE_P(MEDIA, SADTest, ::testing::Values( | 376 INSTANTIATE_TEST_CASE_P(MEDIA, SADTest, ::testing::Values( |
| 373 make_tuple(16, 16, sad_16x16_armv6))); | 377 make_tuple(16, 16, sad_16x16_armv6))); |
| 378 #endif |
| 379 #endif |
| 374 | 380 |
| 375 #endif | |
| 376 #if HAVE_NEON | 381 #if HAVE_NEON |
| 382 #if CONFIG_VP8_ENCODER |
| 377 const sad_m_by_n_fn_t sad_16x16_neon = vp8_sad16x16_neon; | 383 const sad_m_by_n_fn_t sad_16x16_neon = vp8_sad16x16_neon; |
| 378 const sad_m_by_n_fn_t sad_8x16_neon = vp8_sad8x16_neon; | 384 const sad_m_by_n_fn_t sad_8x16_neon = vp8_sad8x16_neon; |
| 379 const sad_m_by_n_fn_t sad_16x8_neon = vp8_sad16x8_neon; | 385 const sad_m_by_n_fn_t sad_16x8_neon = vp8_sad16x8_neon; |
| 380 const sad_m_by_n_fn_t sad_8x8_neon = vp8_sad8x8_neon; | 386 const sad_m_by_n_fn_t sad_8x8_neon = vp8_sad8x8_neon; |
| 381 const sad_m_by_n_fn_t sad_4x4_neon = vp8_sad4x4_neon; | 387 const sad_m_by_n_fn_t sad_4x4_neon = vp8_sad4x4_neon; |
| 382 INSTANTIATE_TEST_CASE_P(NEON, SADTest, ::testing::Values( | 388 INSTANTIATE_TEST_CASE_P(NEON, SADTest, ::testing::Values( |
| 383 make_tuple(16, 16, sad_16x16_neon), | 389 make_tuple(16, 16, sad_16x16_neon), |
| 384 make_tuple(8, 16, sad_8x16_neon), | 390 make_tuple(8, 16, sad_8x16_neon), |
| 385 make_tuple(16, 8, sad_16x8_neon), | 391 make_tuple(16, 8, sad_16x8_neon), |
| 386 make_tuple(8, 8, sad_8x8_neon), | 392 make_tuple(8, 8, sad_8x8_neon), |
| 387 make_tuple(4, 4, sad_4x4_neon))); | 393 make_tuple(4, 4, sad_4x4_neon))); |
| 388 #endif | 394 #endif |
| 395 #endif |
| 389 | 396 |
| 390 // X86 tests | 397 //------------------------------------------------------------------------------ |
| 398 // x86 functions |
| 391 #if HAVE_MMX | 399 #if HAVE_MMX |
| 392 #if CONFIG_VP8_ENCODER | 400 #if CONFIG_VP8_ENCODER |
| 393 const sad_m_by_n_fn_t sad_16x16_mmx = vp8_sad16x16_mmx; | 401 const sad_m_by_n_fn_t sad_16x16_mmx = vp8_sad16x16_mmx; |
| 394 const sad_m_by_n_fn_t sad_8x16_mmx = vp8_sad8x16_mmx; | 402 const sad_m_by_n_fn_t sad_8x16_mmx = vp8_sad8x16_mmx; |
| 395 const sad_m_by_n_fn_t sad_16x8_mmx = vp8_sad16x8_mmx; | 403 const sad_m_by_n_fn_t sad_16x8_mmx = vp8_sad16x8_mmx; |
| 396 const sad_m_by_n_fn_t sad_8x8_mmx = vp8_sad8x8_mmx; | 404 const sad_m_by_n_fn_t sad_8x8_mmx = vp8_sad8x8_mmx; |
| 397 const sad_m_by_n_fn_t sad_4x4_mmx = vp8_sad4x4_mmx; | 405 const sad_m_by_n_fn_t sad_4x4_mmx = vp8_sad4x4_mmx; |
| 398 #endif | 406 #endif |
| 399 #if CONFIG_VP9_ENCODER | 407 #if CONFIG_VP9_ENCODER |
| 400 const sad_m_by_n_fn_t sad_16x16_mmx_vp9 = vp9_sad16x16_mmx; | 408 const sad_m_by_n_fn_t sad_16x16_mmx_vp9 = vp9_sad16x16_mmx; |
| (...skipping 29 matching lines...) Expand all Loading... |
| 430 const sad_m_by_n_fn_t sad_4x8_sse_vp9 = vp9_sad4x8_sse; | 438 const sad_m_by_n_fn_t sad_4x8_sse_vp9 = vp9_sad4x8_sse; |
| 431 INSTANTIATE_TEST_CASE_P(SSE, SADTest, ::testing::Values( | 439 INSTANTIATE_TEST_CASE_P(SSE, SADTest, ::testing::Values( |
| 432 make_tuple(4, 4, sad_4x4_sse_vp9), | 440 make_tuple(4, 4, sad_4x4_sse_vp9), |
| 433 make_tuple(4, 8, sad_4x8_sse_vp9))); | 441 make_tuple(4, 8, sad_4x8_sse_vp9))); |
| 434 | 442 |
| 435 const sad_n_by_n_by_4_fn_t sad_4x8x4d_sse = vp9_sad4x8x4d_sse; | 443 const sad_n_by_n_by_4_fn_t sad_4x8x4d_sse = vp9_sad4x8x4d_sse; |
| 436 const sad_n_by_n_by_4_fn_t sad_4x4x4d_sse = vp9_sad4x4x4d_sse; | 444 const sad_n_by_n_by_4_fn_t sad_4x4x4d_sse = vp9_sad4x4x4d_sse; |
| 437 INSTANTIATE_TEST_CASE_P(SSE, SADx4Test, ::testing::Values( | 445 INSTANTIATE_TEST_CASE_P(SSE, SADx4Test, ::testing::Values( |
| 438 make_tuple(4, 8, sad_4x8x4d_sse), | 446 make_tuple(4, 8, sad_4x8x4d_sse), |
| 439 make_tuple(4, 4, sad_4x4x4d_sse))); | 447 make_tuple(4, 4, sad_4x4x4d_sse))); |
| 440 #endif | 448 #endif // CONFIG_USE_X86INC |
| 441 #endif | 449 #endif // CONFIG_VP9_ENCODER |
| 442 #endif | 450 #endif // HAVE_SSE |
| 443 | 451 |
| 444 #if HAVE_SSE2 | 452 #if HAVE_SSE2 |
| 445 #if CONFIG_VP8_ENCODER | 453 #if CONFIG_VP8_ENCODER |
| 446 const sad_m_by_n_fn_t sad_16x16_wmt = vp8_sad16x16_wmt; | 454 const sad_m_by_n_fn_t sad_16x16_wmt = vp8_sad16x16_wmt; |
| 447 const sad_m_by_n_fn_t sad_8x16_wmt = vp8_sad8x16_wmt; | 455 const sad_m_by_n_fn_t sad_8x16_wmt = vp8_sad8x16_wmt; |
| 448 const sad_m_by_n_fn_t sad_16x8_wmt = vp8_sad16x8_wmt; | 456 const sad_m_by_n_fn_t sad_16x8_wmt = vp8_sad16x8_wmt; |
| 449 const sad_m_by_n_fn_t sad_8x8_wmt = vp8_sad8x8_wmt; | 457 const sad_m_by_n_fn_t sad_8x8_wmt = vp8_sad8x8_wmt; |
| 450 const sad_m_by_n_fn_t sad_4x4_wmt = vp8_sad4x4_wmt; | 458 const sad_m_by_n_fn_t sad_4x4_wmt = vp8_sad4x4_wmt; |
| 451 #endif | 459 #endif |
| 452 #if CONFIG_VP9_ENCODER | 460 #if CONFIG_VP9_ENCODER |
| (...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 530 make_tuple(16, 16, sad_16x16x4d_sse3), | 538 make_tuple(16, 16, sad_16x16x4d_sse3), |
| 531 make_tuple(16, 8, sad_16x8x4d_sse3), | 539 make_tuple(16, 8, sad_16x8x4d_sse3), |
| 532 make_tuple(8, 16, sad_8x16x4d_sse3), | 540 make_tuple(8, 16, sad_8x16x4d_sse3), |
| 533 make_tuple(8, 8, sad_8x8x4d_sse3), | 541 make_tuple(8, 8, sad_8x8x4d_sse3), |
| 534 make_tuple(4, 4, sad_4x4x4d_sse3))); | 542 make_tuple(4, 4, sad_4x4x4d_sse3))); |
| 535 #endif | 543 #endif |
| 536 #endif | 544 #endif |
| 537 | 545 |
| 538 #if HAVE_SSSE3 | 546 #if HAVE_SSSE3 |
| 539 #if CONFIG_USE_X86INC | 547 #if CONFIG_USE_X86INC |
| 548 #if CONFIG_VP8_ENCODER |
| 540 const sad_m_by_n_fn_t sad_16x16_sse3 = vp8_sad16x16_sse3; | 549 const sad_m_by_n_fn_t sad_16x16_sse3 = vp8_sad16x16_sse3; |
| 541 INSTANTIATE_TEST_CASE_P(SSE3, SADTest, ::testing::Values( | 550 INSTANTIATE_TEST_CASE_P(SSE3, SADTest, ::testing::Values( |
| 542 make_tuple(16, 16, sad_16x16_sse3))); | 551 make_tuple(16, 16, sad_16x16_sse3))); |
| 543 #endif | 552 #endif |
| 544 #endif | 553 #endif |
| 554 #endif |
| 545 | 555 |
| 546 } // namespace | 556 } // namespace |
| OLD | NEW |