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 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
85 void fdct8x8_ref(const int16_t *in, tran_low_t *out, int stride, int tx_type) { | 85 void fdct8x8_ref(const int16_t *in, tran_low_t *out, int stride, int tx_type) { |
86 vpx_fdct8x8_c(in, out, stride); | 86 vpx_fdct8x8_c(in, out, stride); |
87 } | 87 } |
88 | 88 |
89 void fht8x8_ref(const int16_t *in, tran_low_t *out, int stride, int tx_type) { | 89 void fht8x8_ref(const int16_t *in, tran_low_t *out, int stride, int tx_type) { |
90 vp9_fht8x8_c(in, out, stride, tx_type); | 90 vp9_fht8x8_c(in, out, stride, tx_type); |
91 } | 91 } |
92 | 92 |
93 #if CONFIG_VP9_HIGHBITDEPTH | 93 #if CONFIG_VP9_HIGHBITDEPTH |
94 void idct8x8_10(const tran_low_t *in, uint8_t *out, int stride) { | 94 void idct8x8_10(const tran_low_t *in, uint8_t *out, int stride) { |
95 vp9_highbd_idct8x8_64_add_c(in, out, stride, 10); | 95 vpx_highbd_idct8x8_64_add_c(in, out, stride, 10); |
96 } | 96 } |
97 | 97 |
98 void idct8x8_12(const tran_low_t *in, uint8_t *out, int stride) { | 98 void idct8x8_12(const tran_low_t *in, uint8_t *out, int stride) { |
99 vp9_highbd_idct8x8_64_add_c(in, out, stride, 12); | 99 vpx_highbd_idct8x8_64_add_c(in, out, stride, 12); |
100 } | 100 } |
101 | 101 |
102 void iht8x8_10(const tran_low_t *in, uint8_t *out, int stride, int tx_type) { | 102 void iht8x8_10(const tran_low_t *in, uint8_t *out, int stride, int tx_type) { |
103 vp9_highbd_iht8x8_64_add_c(in, out, stride, tx_type, 10); | 103 vp9_highbd_iht8x8_64_add_c(in, out, stride, tx_type, 10); |
104 } | 104 } |
105 | 105 |
106 void iht8x8_12(const tran_low_t *in, uint8_t *out, int stride, int tx_type) { | 106 void iht8x8_12(const tran_low_t *in, uint8_t *out, int stride, int tx_type) { |
107 vp9_highbd_iht8x8_64_add_c(in, out, stride, tx_type, 12); | 107 vp9_highbd_iht8x8_64_add_c(in, out, stride, tx_type, 12); |
108 } | 108 } |
109 | 109 |
110 void idct8x8_10_add_10_c(const tran_low_t *in, uint8_t *out, int stride) { | 110 void idct8x8_10_add_10_c(const tran_low_t *in, uint8_t *out, int stride) { |
111 vp9_highbd_idct8x8_10_add_c(in, out, stride, 10); | 111 vpx_highbd_idct8x8_10_add_c(in, out, stride, 10); |
112 } | 112 } |
113 | 113 |
114 void idct8x8_10_add_12_c(const tran_low_t *in, uint8_t *out, int stride) { | 114 void idct8x8_10_add_12_c(const tran_low_t *in, uint8_t *out, int stride) { |
115 vp9_highbd_idct8x8_10_add_c(in, out, stride, 12); | 115 vpx_highbd_idct8x8_10_add_c(in, out, stride, 12); |
116 } | 116 } |
117 | 117 |
118 #if HAVE_SSE2 | 118 #if HAVE_SSE2 |
119 void idct8x8_10_add_10_sse2(const tran_low_t *in, uint8_t *out, int stride) { | 119 void idct8x8_10_add_10_sse2(const tran_low_t *in, uint8_t *out, int stride) { |
120 vp9_highbd_idct8x8_10_add_sse2(in, out, stride, 10); | 120 vpx_highbd_idct8x8_10_add_sse2(in, out, stride, 10); |
121 } | 121 } |
122 | 122 |
123 void idct8x8_10_add_12_sse2(const tran_low_t *in, uint8_t *out, int stride) { | 123 void idct8x8_10_add_12_sse2(const tran_low_t *in, uint8_t *out, int stride) { |
124 vp9_highbd_idct8x8_10_add_sse2(in, out, stride, 12); | 124 vpx_highbd_idct8x8_10_add_sse2(in, out, stride, 12); |
125 } | 125 } |
126 | 126 |
127 void idct8x8_64_add_10_sse2(const tran_low_t *in, uint8_t *out, int stride) { | 127 void idct8x8_64_add_10_sse2(const tran_low_t *in, uint8_t *out, int stride) { |
128 vp9_highbd_idct8x8_64_add_sse2(in, out, stride, 10); | 128 vpx_highbd_idct8x8_64_add_sse2(in, out, stride, 10); |
129 } | 129 } |
130 | 130 |
131 void idct8x8_64_add_12_sse2(const tran_low_t *in, uint8_t *out, int stride) { | 131 void idct8x8_64_add_12_sse2(const tran_low_t *in, uint8_t *out, int stride) { |
132 vp9_highbd_idct8x8_64_add_sse2(in, out, stride, 12); | 132 vpx_highbd_idct8x8_64_add_sse2(in, out, stride, 12); |
133 } | 133 } |
134 #endif // HAVE_SSE2 | 134 #endif // HAVE_SSE2 |
135 #endif // CONFIG_VP9_HIGHBITDEPTH | 135 #endif // CONFIG_VP9_HIGHBITDEPTH |
136 | 136 |
137 class FwdTrans8x8TestBase { | 137 class FwdTrans8x8TestBase { |
138 public: | 138 public: |
139 virtual ~FwdTrans8x8TestBase() {} | 139 virtual ~FwdTrans8x8TestBase() {} |
140 | 140 |
141 protected: | 141 protected: |
142 virtual void RunFwdTxfm(int16_t *in, tran_low_t *out, int stride) = 0; | 142 virtual void RunFwdTxfm(int16_t *in, tran_low_t *out, int stride) = 0; |
(...skipping 508 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
651 TEST_P(InvTrans8x8DCT, CompareReference) { | 651 TEST_P(InvTrans8x8DCT, CompareReference) { |
652 CompareInvReference(ref_txfm_, thresh_); | 652 CompareInvReference(ref_txfm_, thresh_); |
653 } | 653 } |
654 | 654 |
655 using std::tr1::make_tuple; | 655 using std::tr1::make_tuple; |
656 | 656 |
657 #if CONFIG_VP9_HIGHBITDEPTH | 657 #if CONFIG_VP9_HIGHBITDEPTH |
658 INSTANTIATE_TEST_CASE_P( | 658 INSTANTIATE_TEST_CASE_P( |
659 C, FwdTrans8x8DCT, | 659 C, FwdTrans8x8DCT, |
660 ::testing::Values( | 660 ::testing::Values( |
661 make_tuple(&vpx_fdct8x8_c, &vp9_idct8x8_64_add_c, 0, VPX_BITS_8), | 661 make_tuple(&vpx_fdct8x8_c, &vpx_idct8x8_64_add_c, 0, VPX_BITS_8), |
662 make_tuple(&vpx_highbd_fdct8x8_c, &idct8x8_10, 0, VPX_BITS_10), | 662 make_tuple(&vpx_highbd_fdct8x8_c, &idct8x8_10, 0, VPX_BITS_10), |
663 make_tuple(&vpx_highbd_fdct8x8_c, &idct8x8_12, 0, VPX_BITS_12))); | 663 make_tuple(&vpx_highbd_fdct8x8_c, &idct8x8_12, 0, VPX_BITS_12))); |
664 #else | 664 #else |
665 INSTANTIATE_TEST_CASE_P( | 665 INSTANTIATE_TEST_CASE_P( |
666 C, FwdTrans8x8DCT, | 666 C, FwdTrans8x8DCT, |
667 ::testing::Values( | 667 ::testing::Values( |
668 make_tuple(&vpx_fdct8x8_c, &vp9_idct8x8_64_add_c, 0, VPX_BITS_8))); | 668 make_tuple(&vpx_fdct8x8_c, &vpx_idct8x8_64_add_c, 0, VPX_BITS_8))); |
669 #endif // CONFIG_VP9_HIGHBITDEPTH | 669 #endif // CONFIG_VP9_HIGHBITDEPTH |
670 | 670 |
671 #if CONFIG_VP9_HIGHBITDEPTH | 671 #if CONFIG_VP9_HIGHBITDEPTH |
672 INSTANTIATE_TEST_CASE_P( | 672 INSTANTIATE_TEST_CASE_P( |
673 C, FwdTrans8x8HT, | 673 C, FwdTrans8x8HT, |
674 ::testing::Values( | 674 ::testing::Values( |
675 make_tuple(&vp9_fht8x8_c, &vp9_iht8x8_64_add_c, 0, VPX_BITS_8), | 675 make_tuple(&vp9_fht8x8_c, &vp9_iht8x8_64_add_c, 0, VPX_BITS_8), |
676 make_tuple(&vp9_highbd_fht8x8_c, &iht8x8_10, 0, VPX_BITS_10), | 676 make_tuple(&vp9_highbd_fht8x8_c, &iht8x8_10, 0, VPX_BITS_10), |
677 make_tuple(&vp9_highbd_fht8x8_c, &iht8x8_10, 1, VPX_BITS_10), | 677 make_tuple(&vp9_highbd_fht8x8_c, &iht8x8_10, 1, VPX_BITS_10), |
678 make_tuple(&vp9_highbd_fht8x8_c, &iht8x8_10, 2, VPX_BITS_10), | 678 make_tuple(&vp9_highbd_fht8x8_c, &iht8x8_10, 2, VPX_BITS_10), |
(...skipping 12 matching lines...) Expand all Loading... |
691 make_tuple(&vp9_fht8x8_c, &vp9_iht8x8_64_add_c, 0, VPX_BITS_8), | 691 make_tuple(&vp9_fht8x8_c, &vp9_iht8x8_64_add_c, 0, VPX_BITS_8), |
692 make_tuple(&vp9_fht8x8_c, &vp9_iht8x8_64_add_c, 1, VPX_BITS_8), | 692 make_tuple(&vp9_fht8x8_c, &vp9_iht8x8_64_add_c, 1, VPX_BITS_8), |
693 make_tuple(&vp9_fht8x8_c, &vp9_iht8x8_64_add_c, 2, VPX_BITS_8), | 693 make_tuple(&vp9_fht8x8_c, &vp9_iht8x8_64_add_c, 2, VPX_BITS_8), |
694 make_tuple(&vp9_fht8x8_c, &vp9_iht8x8_64_add_c, 3, VPX_BITS_8))); | 694 make_tuple(&vp9_fht8x8_c, &vp9_iht8x8_64_add_c, 3, VPX_BITS_8))); |
695 #endif // CONFIG_VP9_HIGHBITDEPTH | 695 #endif // CONFIG_VP9_HIGHBITDEPTH |
696 | 696 |
697 #if HAVE_NEON_ASM && !CONFIG_VP9_HIGHBITDEPTH && !CONFIG_EMULATE_HARDWARE | 697 #if HAVE_NEON_ASM && !CONFIG_VP9_HIGHBITDEPTH && !CONFIG_EMULATE_HARDWARE |
698 INSTANTIATE_TEST_CASE_P( | 698 INSTANTIATE_TEST_CASE_P( |
699 NEON, FwdTrans8x8DCT, | 699 NEON, FwdTrans8x8DCT, |
700 ::testing::Values( | 700 ::testing::Values( |
701 make_tuple(&vpx_fdct8x8_neon, &vp9_idct8x8_64_add_neon, 0, | 701 make_tuple(&vpx_fdct8x8_neon, &vpx_idct8x8_64_add_neon, 0, |
702 VPX_BITS_8))); | 702 VPX_BITS_8))); |
703 #endif // HAVE_NEON_ASM && !CONFIG_VP9_HIGHBITDEPTH && !CONFIG_EMULATE_HARDWARE | 703 #endif // HAVE_NEON_ASM && !CONFIG_VP9_HIGHBITDEPTH && !CONFIG_EMULATE_HARDWARE |
704 | 704 |
705 #if HAVE_NEON && !CONFIG_VP9_HIGHBITDEPTH && !CONFIG_EMULATE_HARDWARE | 705 #if HAVE_NEON && !CONFIG_VP9_HIGHBITDEPTH && !CONFIG_EMULATE_HARDWARE |
706 INSTANTIATE_TEST_CASE_P( | 706 INSTANTIATE_TEST_CASE_P( |
707 NEON, FwdTrans8x8HT, | 707 NEON, FwdTrans8x8HT, |
708 ::testing::Values( | 708 ::testing::Values( |
709 make_tuple(&vp9_fht8x8_c, &vp9_iht8x8_64_add_neon, 0, VPX_BITS_8), | 709 make_tuple(&vp9_fht8x8_c, &vp9_iht8x8_64_add_neon, 0, VPX_BITS_8), |
710 make_tuple(&vp9_fht8x8_c, &vp9_iht8x8_64_add_neon, 1, VPX_BITS_8), | 710 make_tuple(&vp9_fht8x8_c, &vp9_iht8x8_64_add_neon, 1, VPX_BITS_8), |
711 make_tuple(&vp9_fht8x8_c, &vp9_iht8x8_64_add_neon, 2, VPX_BITS_8), | 711 make_tuple(&vp9_fht8x8_c, &vp9_iht8x8_64_add_neon, 2, VPX_BITS_8), |
712 make_tuple(&vp9_fht8x8_c, &vp9_iht8x8_64_add_neon, 3, VPX_BITS_8))); | 712 make_tuple(&vp9_fht8x8_c, &vp9_iht8x8_64_add_neon, 3, VPX_BITS_8))); |
713 #endif // HAVE_NEON && !CONFIG_VP9_HIGHBITDEPTH && !CONFIG_EMULATE_HARDWARE | 713 #endif // HAVE_NEON && !CONFIG_VP9_HIGHBITDEPTH && !CONFIG_EMULATE_HARDWARE |
714 | 714 |
715 #if HAVE_SSE2 && !CONFIG_VP9_HIGHBITDEPTH && !CONFIG_EMULATE_HARDWARE | 715 #if HAVE_SSE2 && !CONFIG_VP9_HIGHBITDEPTH && !CONFIG_EMULATE_HARDWARE |
716 INSTANTIATE_TEST_CASE_P( | 716 INSTANTIATE_TEST_CASE_P( |
717 SSE2, FwdTrans8x8DCT, | 717 SSE2, FwdTrans8x8DCT, |
718 ::testing::Values( | 718 ::testing::Values( |
719 make_tuple(&vpx_fdct8x8_sse2, &vp9_idct8x8_64_add_sse2, 0, | 719 make_tuple(&vpx_fdct8x8_sse2, &vpx_idct8x8_64_add_sse2, 0, |
720 VPX_BITS_8))); | 720 VPX_BITS_8))); |
721 INSTANTIATE_TEST_CASE_P( | 721 INSTANTIATE_TEST_CASE_P( |
722 SSE2, FwdTrans8x8HT, | 722 SSE2, FwdTrans8x8HT, |
723 ::testing::Values( | 723 ::testing::Values( |
724 make_tuple(&vp9_fht8x8_sse2, &vp9_iht8x8_64_add_sse2, 0, VPX_BITS_8), | 724 make_tuple(&vp9_fht8x8_sse2, &vp9_iht8x8_64_add_sse2, 0, VPX_BITS_8), |
725 make_tuple(&vp9_fht8x8_sse2, &vp9_iht8x8_64_add_sse2, 1, VPX_BITS_8), | 725 make_tuple(&vp9_fht8x8_sse2, &vp9_iht8x8_64_add_sse2, 1, VPX_BITS_8), |
726 make_tuple(&vp9_fht8x8_sse2, &vp9_iht8x8_64_add_sse2, 2, VPX_BITS_8), | 726 make_tuple(&vp9_fht8x8_sse2, &vp9_iht8x8_64_add_sse2, 2, VPX_BITS_8), |
727 make_tuple(&vp9_fht8x8_sse2, &vp9_iht8x8_64_add_sse2, 3, VPX_BITS_8))); | 727 make_tuple(&vp9_fht8x8_sse2, &vp9_iht8x8_64_add_sse2, 3, VPX_BITS_8))); |
728 #endif // HAVE_SSE2 && !CONFIG_VP9_HIGHBITDEPTH && !CONFIG_EMULATE_HARDWARE | 728 #endif // HAVE_SSE2 && !CONFIG_VP9_HIGHBITDEPTH && !CONFIG_EMULATE_HARDWARE |
729 | 729 |
730 #if HAVE_SSE2 && CONFIG_VP9_HIGHBITDEPTH && !CONFIG_EMULATE_HARDWARE | 730 #if HAVE_SSE2 && CONFIG_VP9_HIGHBITDEPTH && !CONFIG_EMULATE_HARDWARE |
731 INSTANTIATE_TEST_CASE_P( | 731 INSTANTIATE_TEST_CASE_P( |
732 SSE2, FwdTrans8x8DCT, | 732 SSE2, FwdTrans8x8DCT, |
733 ::testing::Values( | 733 ::testing::Values( |
734 make_tuple(&vpx_fdct8x8_sse2, &vp9_idct8x8_64_add_c, 0, VPX_BITS_8), | 734 make_tuple(&vpx_fdct8x8_sse2, &vpx_idct8x8_64_add_c, 0, VPX_BITS_8), |
735 make_tuple(&vpx_highbd_fdct8x8_c, | 735 make_tuple(&vpx_highbd_fdct8x8_c, |
736 &idct8x8_64_add_10_sse2, 12, VPX_BITS_10), | 736 &idct8x8_64_add_10_sse2, 12, VPX_BITS_10), |
737 make_tuple(&vpx_highbd_fdct8x8_sse2, | 737 make_tuple(&vpx_highbd_fdct8x8_sse2, |
738 &idct8x8_64_add_10_sse2, 12, VPX_BITS_10), | 738 &idct8x8_64_add_10_sse2, 12, VPX_BITS_10), |
739 make_tuple(&vpx_highbd_fdct8x8_c, | 739 make_tuple(&vpx_highbd_fdct8x8_c, |
740 &idct8x8_64_add_12_sse2, 12, VPX_BITS_12), | 740 &idct8x8_64_add_12_sse2, 12, VPX_BITS_12), |
741 make_tuple(&vpx_highbd_fdct8x8_sse2, | 741 make_tuple(&vpx_highbd_fdct8x8_sse2, |
742 &idct8x8_64_add_12_sse2, 12, VPX_BITS_12))); | 742 &idct8x8_64_add_12_sse2, 12, VPX_BITS_12))); |
743 | 743 |
744 INSTANTIATE_TEST_CASE_P( | 744 INSTANTIATE_TEST_CASE_P( |
(...skipping 17 matching lines...) Expand all Loading... |
762 &idct8x8_10_add_12_sse2, 6225, VPX_BITS_12), | 762 &idct8x8_10_add_12_sse2, 6225, VPX_BITS_12), |
763 make_tuple(&idct8x8_12, | 763 make_tuple(&idct8x8_12, |
764 &idct8x8_64_add_12_sse2, 6225, VPX_BITS_12))); | 764 &idct8x8_64_add_12_sse2, 6225, VPX_BITS_12))); |
765 #endif // HAVE_SSE2 && CONFIG_VP9_HIGHBITDEPTH && !CONFIG_EMULATE_HARDWARE | 765 #endif // HAVE_SSE2 && CONFIG_VP9_HIGHBITDEPTH && !CONFIG_EMULATE_HARDWARE |
766 | 766 |
767 #if HAVE_SSSE3 && CONFIG_USE_X86INC && ARCH_X86_64 && \ | 767 #if HAVE_SSSE3 && CONFIG_USE_X86INC && ARCH_X86_64 && \ |
768 !CONFIG_VP9_HIGHBITDEPTH && !CONFIG_EMULATE_HARDWARE | 768 !CONFIG_VP9_HIGHBITDEPTH && !CONFIG_EMULATE_HARDWARE |
769 INSTANTIATE_TEST_CASE_P( | 769 INSTANTIATE_TEST_CASE_P( |
770 SSSE3, FwdTrans8x8DCT, | 770 SSSE3, FwdTrans8x8DCT, |
771 ::testing::Values( | 771 ::testing::Values( |
772 make_tuple(&vpx_fdct8x8_ssse3, &vp9_idct8x8_64_add_ssse3, 0, | 772 make_tuple(&vpx_fdct8x8_ssse3, &vpx_idct8x8_64_add_ssse3, 0, |
773 VPX_BITS_8))); | 773 VPX_BITS_8))); |
774 #endif | 774 #endif |
775 | 775 |
776 #if HAVE_MSA && !CONFIG_VP9_HIGHBITDEPTH && !CONFIG_EMULATE_HARDWARE | 776 #if HAVE_MSA && !CONFIG_VP9_HIGHBITDEPTH && !CONFIG_EMULATE_HARDWARE |
777 INSTANTIATE_TEST_CASE_P( | 777 INSTANTIATE_TEST_CASE_P( |
778 MSA, FwdTrans8x8DCT, | 778 MSA, FwdTrans8x8DCT, |
779 ::testing::Values( | 779 ::testing::Values( |
780 make_tuple(&vpx_fdct8x8_msa, &vp9_idct8x8_64_add_msa, 0, VPX_BITS_8))); | 780 make_tuple(&vpx_fdct8x8_msa, &vpx_idct8x8_64_add_msa, 0, VPX_BITS_8))); |
781 INSTANTIATE_TEST_CASE_P( | 781 INSTANTIATE_TEST_CASE_P( |
782 MSA, FwdTrans8x8HT, | 782 MSA, FwdTrans8x8HT, |
783 ::testing::Values( | 783 ::testing::Values( |
784 make_tuple(&vp9_fht8x8_msa, &vp9_iht8x8_64_add_msa, 0, VPX_BITS_8), | 784 make_tuple(&vp9_fht8x8_msa, &vp9_iht8x8_64_add_msa, 0, VPX_BITS_8), |
785 make_tuple(&vp9_fht8x8_msa, &vp9_iht8x8_64_add_msa, 1, VPX_BITS_8), | 785 make_tuple(&vp9_fht8x8_msa, &vp9_iht8x8_64_add_msa, 1, VPX_BITS_8), |
786 make_tuple(&vp9_fht8x8_msa, &vp9_iht8x8_64_add_msa, 2, VPX_BITS_8), | 786 make_tuple(&vp9_fht8x8_msa, &vp9_iht8x8_64_add_msa, 2, VPX_BITS_8), |
787 make_tuple(&vp9_fht8x8_msa, &vp9_iht8x8_64_add_msa, 3, VPX_BITS_8))); | 787 make_tuple(&vp9_fht8x8_msa, &vp9_iht8x8_64_add_msa, 3, VPX_BITS_8))); |
788 #endif // HAVE_MSA && !CONFIG_VP9_HIGHBITDEPTH && !CONFIG_EMULATE_HARDWARE | 788 #endif // HAVE_MSA && !CONFIG_VP9_HIGHBITDEPTH && !CONFIG_EMULATE_HARDWARE |
789 } // namespace | 789 } // namespace |
OLD | NEW |