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 457 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
468 make_tuple(16, 16, sad_16x16_neon), | 468 make_tuple(16, 16, sad_16x16_neon), |
469 make_tuple(8, 16, sad_8x16_neon), | 469 make_tuple(8, 16, sad_8x16_neon), |
470 make_tuple(16, 8, sad_16x8_neon), | 470 make_tuple(16, 8, sad_16x8_neon), |
471 make_tuple(8, 8, sad_8x8_neon), | 471 make_tuple(8, 8, sad_8x8_neon), |
472 make_tuple(4, 4, sad_4x4_neon))); | 472 make_tuple(4, 4, sad_4x4_neon))); |
473 #endif // CONFIG_VP8_ENCODER | 473 #endif // CONFIG_VP8_ENCODER |
474 #if CONFIG_VP9_ENCODER | 474 #if CONFIG_VP9_ENCODER |
475 const SadMxNVp9Func sad_64x64_neon_vp9 = vp9_sad64x64_neon; | 475 const SadMxNVp9Func sad_64x64_neon_vp9 = vp9_sad64x64_neon; |
476 const SadMxNVp9Func sad_32x32_neon_vp9 = vp9_sad32x32_neon; | 476 const SadMxNVp9Func sad_32x32_neon_vp9 = vp9_sad32x32_neon; |
477 const SadMxNVp9Func sad_16x16_neon_vp9 = vp9_sad16x16_neon; | 477 const SadMxNVp9Func sad_16x16_neon_vp9 = vp9_sad16x16_neon; |
| 478 const SadMxNVp9Func sad_8x8_neon_vp9 = vp9_sad8x8_neon; |
478 const SadMxNVp9Param neon_vp9_tests[] = { | 479 const SadMxNVp9Param neon_vp9_tests[] = { |
479 make_tuple(64, 64, sad_64x64_neon_vp9), | 480 make_tuple(64, 64, sad_64x64_neon_vp9), |
480 make_tuple(32, 32, sad_32x32_neon_vp9), | 481 make_tuple(32, 32, sad_32x32_neon_vp9), |
481 make_tuple(16, 16, sad_16x16_neon_vp9), | 482 make_tuple(16, 16, sad_16x16_neon_vp9), |
| 483 make_tuple(8, 8, sad_8x8_neon_vp9), |
482 }; | 484 }; |
483 INSTANTIATE_TEST_CASE_P(NEON, SADVP9Test, ::testing::ValuesIn(neon_vp9_tests)); | 485 INSTANTIATE_TEST_CASE_P(NEON, SADVP9Test, ::testing::ValuesIn(neon_vp9_tests)); |
484 #endif // CONFIG_VP9_ENCODER | 486 #endif // CONFIG_VP9_ENCODER |
485 #endif // HAVE_NEON | 487 #endif // HAVE_NEON |
486 | 488 |
487 //------------------------------------------------------------------------------ | 489 //------------------------------------------------------------------------------ |
488 // x86 functions | 490 // x86 functions |
489 #if HAVE_MMX | 491 #if HAVE_MMX |
490 #if CONFIG_VP8_ENCODER | 492 #if CONFIG_VP8_ENCODER |
491 const SadMxNFunc sad_16x16_mmx = vp8_sad16x16_mmx; | 493 const SadMxNFunc sad_16x16_mmx = vp8_sad16x16_mmx; |
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
631 #if CONFIG_VP8_ENCODER | 633 #if CONFIG_VP8_ENCODER |
632 const SadMxNFunc sad_16x16_sse3 = vp8_sad16x16_sse3; | 634 const SadMxNFunc sad_16x16_sse3 = vp8_sad16x16_sse3; |
633 INSTANTIATE_TEST_CASE_P(SSE3, SADTest, ::testing::Values( | 635 INSTANTIATE_TEST_CASE_P(SSE3, SADTest, ::testing::Values( |
634 make_tuple(16, 16, sad_16x16_sse3))); | 636 make_tuple(16, 16, sad_16x16_sse3))); |
635 #endif // CONFIG_VP8_ENCODER | 637 #endif // CONFIG_VP8_ENCODER |
636 #endif // CONFIG_USE_X86INC | 638 #endif // CONFIG_USE_X86INC |
637 #endif // HAVE_SSSE3 | 639 #endif // HAVE_SSSE3 |
638 | 640 |
639 #if HAVE_AVX2 | 641 #if HAVE_AVX2 |
640 #if CONFIG_VP9_ENCODER | 642 #if CONFIG_VP9_ENCODER |
641 // TODO(jzern): these prototypes can be removed after the avx2 versions are | |
642 // reenabled in vp9_rtcd_defs.pl. | |
643 extern "C" { | |
644 void vp9_sad32x32x4d_avx2(const uint8_t *src_ptr, int src_stride, | |
645 const uint8_t *const ref_ptr[], int ref_stride, | |
646 unsigned int *sad_array); | |
647 void vp9_sad64x64x4d_avx2(const uint8_t *src_ptr, int src_stride, | |
648 const uint8_t *const ref_ptr[], int ref_stride, | |
649 unsigned int *sad_array); | |
650 } | |
651 const SadMxNx4Func sad_64x64x4d_avx2 = vp9_sad64x64x4d_avx2; | 643 const SadMxNx4Func sad_64x64x4d_avx2 = vp9_sad64x64x4d_avx2; |
652 const SadMxNx4Func sad_32x32x4d_avx2 = vp9_sad32x32x4d_avx2; | 644 const SadMxNx4Func sad_32x32x4d_avx2 = vp9_sad32x32x4d_avx2; |
653 INSTANTIATE_TEST_CASE_P(DISABLED_AVX2, SADx4Test, ::testing::Values( | 645 INSTANTIATE_TEST_CASE_P(AVX2, SADx4Test, ::testing::Values( |
654 make_tuple(32, 32, sad_32x32x4d_avx2), | 646 make_tuple(32, 32, sad_32x32x4d_avx2), |
655 make_tuple(64, 64, sad_64x64x4d_avx2))); | 647 make_tuple(64, 64, sad_64x64x4d_avx2))); |
656 #endif // CONFIG_VP9_ENCODER | 648 #endif // CONFIG_VP9_ENCODER |
657 #endif // HAVE_AVX2 | 649 #endif // HAVE_AVX2 |
658 | 650 |
659 } // namespace | 651 } // namespace |
OLD | NEW |