ref: d1c74c149bc3f8310c7088e5fee768c4db9be4d5
parent: 2e6a1976a0fd9bc1cfbae137876b397b1148037e
author: Linfeng Zhang <[email protected]>
date: Wed Oct 19 08:58:05 EDT 2016
Update vp9_intrapred_test.cc to support 8-bit BUG=webm:1316 Change-Id: Ic9309bbeeef52e9d07fb4a4c95c12efa813cbf8c
--- a/test/vp9_intrapred_test.cc
+++ b/test/vp9_intrapred_test.cc
@@ -28,25 +28,25 @@
const int count_test_block = 100000;
-typedef void (*IntraPred)(uint16_t *dst, ptrdiff_t stride,
- const uint16_t *above, const uint16_t *left, int bps);
+typedef void (*IntraPredFunc)(uint8_t *dst, ptrdiff_t stride,
+ const uint8_t *above, const uint8_t *left);
-struct IntraPredFunc {
- IntraPredFunc(IntraPred pred = NULL, IntraPred ref = NULL,
- int block_size_value = 0, int bit_depth_value = 0)
+struct IntraPredParam {
+ IntraPredParam(IntraPredFunc pred = NULL, IntraPredFunc ref = NULL,
+ int block_size_value = 0, int bit_depth_value = 0)
: pred_fn(pred), ref_fn(ref), block_size(block_size_value),
bit_depth(bit_depth_value) {}
- IntraPred pred_fn;
- IntraPred ref_fn;
+ IntraPredFunc pred_fn;
+ IntraPredFunc ref_fn;
int block_size;
int bit_depth;
};
-class VP9IntraPredTest : public ::testing::TestWithParam<IntraPredFunc> {
+template <typename Pixel, typename PredParam>
+class IntraPredTest : public ::testing::TestWithParam<PredParam> {
public:
- void RunTest(uint16_t *left_col, uint16_t *above_data, uint16_t *dst,
- uint16_t *ref_dst) {
+ void RunTest(Pixel *left_col, Pixel *above_data, Pixel *dst, Pixel *ref_dst) {
ACMRandom rnd(ACMRandom::DeterministicSeed());
const int block_size = params_.block_size;
above_row_ = above_data + 16;
@@ -56,7 +56,7 @@
int error_count = 0;
for (int i = 0; i < count_test_block; ++i) {
// Fill edges with random data, try first with saturated values.
- for (int x = -1; x <= block_size * 2; x++) {
+ for (int x = -1; x < block_size; x++) {
if (i == 0) {
above_row_[x] = mask_;
} else {
@@ -63,6 +63,9 @@
above_row_[x] = rnd.Rand16() & mask_;
}
}
+ for (int x = block_size; x < 2 * block_size; x++) {
+ above_row_[x] = above_row_[block_size - 1];
+ }
for (int y = 0; y < block_size; y++) {
if (i == 0) {
left_col_[y] = mask_;
@@ -78,17 +81,12 @@
protected:
virtual void SetUp() {
- params_ = GetParam();
+ params_ = this->GetParam();
stride_ = params_.block_size * 3;
mask_ = (1 << params_.bit_depth) - 1;
}
- void Predict() {
- const int bit_depth = params_.bit_depth;
- params_.ref_fn(ref_dst_, stride_, above_row_, left_col_, bit_depth);
- ASM_REGISTER_STATE_CHECK(
- params_.pred_fn(dst_, stride_, above_row_, left_col_, bit_depth));
- }
+ void Predict();
void CheckPrediction(int test_case_number, int *error_count) const {
// For each pixel ensure that the calculated value is the same as reference.
@@ -104,18 +102,223 @@
}
}
- uint16_t *above_row_;
- uint16_t *left_col_;
- uint16_t *dst_;
- uint16_t *ref_dst_;
+ Pixel *above_row_;
+ Pixel *left_col_;
+ Pixel *dst_;
+ Pixel *ref_dst_;
ptrdiff_t stride_;
int mask_;
- IntraPredFunc params_;
+ PredParam params_;
};
+template <>
+void IntraPredTest<uint8_t, IntraPredParam>::Predict() {
+ params_.ref_fn(ref_dst_, stride_, above_row_, left_col_);
+ ASM_REGISTER_STATE_CHECK(
+ params_.pred_fn(dst_, stride_, above_row_, left_col_));
+}
+
+typedef IntraPredTest<uint8_t, IntraPredParam> VP9IntraPredTest;
+
TEST_P(VP9IntraPredTest, IntraPredTests) {
// max block size is 32
+ DECLARE_ALIGNED(16, uint8_t, left_col[2 * 32]);
+ DECLARE_ALIGNED(16, uint8_t, above_data[2 * 32 + 32]);
+ DECLARE_ALIGNED(16, uint8_t, dst[3 * 32 * 32]);
+ DECLARE_ALIGNED(16, uint8_t, ref_dst[3 * 32 * 32]);
+ RunTest(left_col, above_data, dst, ref_dst);
+}
+
+#if HAVE_SSE2
+INSTANTIATE_TEST_CASE_P(
+ SSE2, VP9IntraPredTest,
+ ::testing::Values(
+ IntraPredParam(&vpx_d45_predictor_4x4_sse2, &vpx_d45_predictor_4x4_c, 4,
+ 8),
+ IntraPredParam(&vpx_d45_predictor_8x8_sse2, &vpx_d45_predictor_8x8_c, 8,
+ 8),
+ IntraPredParam(&vpx_d207_predictor_4x4_sse2, &vpx_d207_predictor_4x4_c,
+ 4, 8),
+ IntraPredParam(&vpx_dc_128_predictor_4x4_sse2,
+ &vpx_dc_128_predictor_4x4_c, 4, 8),
+ IntraPredParam(&vpx_dc_128_predictor_8x8_sse2,
+ &vpx_dc_128_predictor_8x8_c, 8, 8),
+ IntraPredParam(&vpx_dc_128_predictor_16x16_sse2,
+ &vpx_dc_128_predictor_16x16_c, 16, 8),
+ IntraPredParam(&vpx_dc_128_predictor_32x32_sse2,
+ &vpx_dc_128_predictor_32x32_c, 32, 8),
+ IntraPredParam(&vpx_dc_left_predictor_4x4_sse2,
+ &vpx_dc_left_predictor_4x4_c, 4, 8),
+ IntraPredParam(&vpx_dc_left_predictor_8x8_sse2,
+ &vpx_dc_left_predictor_8x8_c, 8, 8),
+ IntraPredParam(&vpx_dc_left_predictor_16x16_sse2,
+ &vpx_dc_left_predictor_16x16_c, 16, 8),
+ IntraPredParam(&vpx_dc_left_predictor_32x32_sse2,
+ &vpx_dc_left_predictor_32x32_c, 32, 8),
+ IntraPredParam(&vpx_dc_predictor_4x4_sse2, &vpx_dc_predictor_4x4_c, 4,
+ 8),
+ IntraPredParam(&vpx_dc_predictor_8x8_sse2, &vpx_dc_predictor_8x8_c, 8,
+ 8),
+ IntraPredParam(&vpx_dc_predictor_16x16_sse2, &vpx_dc_predictor_16x16_c,
+ 16, 8),
+ IntraPredParam(&vpx_dc_predictor_32x32_sse2, &vpx_dc_predictor_32x32_c,
+ 32, 8),
+ IntraPredParam(&vpx_dc_top_predictor_4x4_sse2,
+ &vpx_dc_top_predictor_4x4_c, 4, 8),
+ IntraPredParam(&vpx_dc_top_predictor_8x8_sse2,
+ &vpx_dc_top_predictor_8x8_c, 8, 8),
+ IntraPredParam(&vpx_dc_top_predictor_16x16_sse2,
+ &vpx_dc_top_predictor_16x16_c, 16, 8),
+ IntraPredParam(&vpx_dc_top_predictor_32x32_sse2,
+ &vpx_dc_top_predictor_32x32_c, 32, 8),
+ IntraPredParam(&vpx_h_predictor_4x4_sse2, &vpx_h_predictor_4x4_c, 4, 8),
+ IntraPredParam(&vpx_h_predictor_8x8_sse2, &vpx_h_predictor_8x8_c, 8, 8),
+ IntraPredParam(&vpx_h_predictor_16x16_sse2, &vpx_h_predictor_16x16_c,
+ 16, 8),
+ IntraPredParam(&vpx_h_predictor_32x32_sse2, &vpx_h_predictor_32x32_c,
+ 32, 8),
+ IntraPredParam(&vpx_tm_predictor_4x4_sse2, &vpx_tm_predictor_4x4_c, 4,
+ 8),
+ IntraPredParam(&vpx_tm_predictor_8x8_sse2, &vpx_tm_predictor_8x8_c, 8,
+ 8),
+ IntraPredParam(&vpx_tm_predictor_16x16_sse2, &vpx_tm_predictor_16x16_c,
+ 16, 8),
+ IntraPredParam(&vpx_tm_predictor_32x32_sse2, &vpx_tm_predictor_32x32_c,
+ 32, 8),
+ IntraPredParam(&vpx_v_predictor_4x4_sse2, &vpx_v_predictor_4x4_c, 4, 8),
+ IntraPredParam(&vpx_v_predictor_8x8_sse2, &vpx_v_predictor_8x8_c, 8, 8),
+ IntraPredParam(&vpx_v_predictor_16x16_sse2, &vpx_v_predictor_16x16_c,
+ 16, 8),
+ IntraPredParam(&vpx_v_predictor_32x32_sse2, &vpx_v_predictor_32x32_c,
+ 32, 8)));
+#endif // HAVE_SSE2
+
+#if HAVE_SSSE3
+INSTANTIATE_TEST_CASE_P(
+ SSSE3, VP9IntraPredTest,
+ ::testing::Values(IntraPredParam(&vpx_d45_predictor_16x16_ssse3,
+ &vpx_d45_predictor_16x16_c, 16, 8),
+ IntraPredParam(&vpx_d45_predictor_32x32_ssse3,
+ &vpx_d45_predictor_32x32_c, 32, 8),
+ IntraPredParam(&vpx_d63_predictor_4x4_ssse3,
+ &vpx_d63_predictor_4x4_c, 4, 8),
+ IntraPredParam(&vpx_d63_predictor_8x8_ssse3,
+ &vpx_d63_predictor_8x8_c, 8, 8),
+ IntraPredParam(&vpx_d63_predictor_16x16_ssse3,
+ &vpx_d63_predictor_16x16_c, 16, 8),
+ IntraPredParam(&vpx_d63_predictor_32x32_ssse3,
+ &vpx_d63_predictor_32x32_c, 32, 8),
+ IntraPredParam(&vpx_d153_predictor_4x4_ssse3,
+ &vpx_d153_predictor_4x4_c, 4, 8),
+ IntraPredParam(&vpx_d153_predictor_8x8_ssse3,
+ &vpx_d153_predictor_8x8_c, 8, 8),
+ IntraPredParam(&vpx_d153_predictor_16x16_ssse3,
+ &vpx_d153_predictor_16x16_c, 16, 8),
+ IntraPredParam(&vpx_d153_predictor_32x32_ssse3,
+ &vpx_d153_predictor_32x32_c, 32, 8),
+ IntraPredParam(&vpx_d207_predictor_8x8_ssse3,
+ &vpx_d207_predictor_8x8_c, 8, 8),
+ IntraPredParam(&vpx_d207_predictor_16x16_ssse3,
+ &vpx_d207_predictor_16x16_c, 16, 8),
+ IntraPredParam(&vpx_d207_predictor_32x32_ssse3,
+ &vpx_d207_predictor_32x32_c, 32, 8)));
+#endif // HAVE_SSSE3
+
+#if HAVE_NEON
+INSTANTIATE_TEST_CASE_P(
+ NEON, VP9IntraPredTest,
+ ::testing::Values(
+ IntraPredParam(&vpx_d45_predictor_4x4_neon, &vpx_d45_predictor_4x4_c, 4,
+ 8),
+ IntraPredParam(&vpx_d45_predictor_8x8_neon, &vpx_d45_predictor_8x8_c, 8,
+ 8),
+ IntraPredParam(&vpx_d45_predictor_16x16_neon,
+ &vpx_d45_predictor_16x16_c, 16, 8),
+ IntraPredParam(&vpx_d135_predictor_4x4_neon, &vpx_d135_predictor_4x4_c,
+ 4, 8),
+ IntraPredParam(&vpx_dc_128_predictor_4x4_neon,
+ &vpx_dc_128_predictor_4x4_c, 4, 8),
+ IntraPredParam(&vpx_dc_128_predictor_8x8_neon,
+ &vpx_dc_128_predictor_8x8_c, 8, 8),
+ IntraPredParam(&vpx_dc_128_predictor_16x16_neon,
+ &vpx_dc_128_predictor_16x16_c, 16, 8),
+ IntraPredParam(&vpx_dc_128_predictor_32x32_neon,
+ &vpx_dc_128_predictor_32x32_c, 32, 8),
+ IntraPredParam(&vpx_dc_left_predictor_4x4_neon,
+ &vpx_dc_left_predictor_4x4_c, 4, 8),
+ IntraPredParam(&vpx_dc_left_predictor_8x8_neon,
+ &vpx_dc_left_predictor_8x8_c, 8, 8),
+ IntraPredParam(&vpx_dc_left_predictor_16x16_neon,
+ &vpx_dc_left_predictor_16x16_c, 16, 8),
+ IntraPredParam(&vpx_dc_left_predictor_32x32_neon,
+ &vpx_dc_left_predictor_32x32_c, 32, 8),
+ IntraPredParam(&vpx_dc_predictor_4x4_neon, &vpx_dc_predictor_4x4_c, 4,
+ 8),
+ IntraPredParam(&vpx_dc_predictor_8x8_neon, &vpx_dc_predictor_8x8_c, 8,
+ 8),
+ IntraPredParam(&vpx_dc_predictor_16x16_neon, &vpx_dc_predictor_16x16_c,
+ 16, 8),
+ IntraPredParam(&vpx_dc_predictor_32x32_neon, &vpx_dc_predictor_32x32_c,
+ 32, 8),
+ IntraPredParam(&vpx_dc_top_predictor_4x4_neon,
+ &vpx_dc_top_predictor_4x4_c, 4, 8),
+ IntraPredParam(&vpx_dc_top_predictor_8x8_neon,
+ &vpx_dc_top_predictor_8x8_c, 8, 8),
+ IntraPredParam(&vpx_dc_top_predictor_16x16_neon,
+ &vpx_dc_top_predictor_16x16_c, 16, 8),
+ IntraPredParam(&vpx_dc_top_predictor_32x32_neon,
+ &vpx_dc_top_predictor_32x32_c, 32, 8),
+ IntraPredParam(&vpx_h_predictor_4x4_neon, &vpx_h_predictor_4x4_c, 4, 8),
+ IntraPredParam(&vpx_h_predictor_8x8_neon, &vpx_h_predictor_8x8_c, 8, 8),
+ IntraPredParam(&vpx_h_predictor_16x16_neon, &vpx_h_predictor_16x16_c,
+ 16, 8),
+ IntraPredParam(&vpx_h_predictor_32x32_neon, &vpx_h_predictor_32x32_c,
+ 32, 8),
+ IntraPredParam(&vpx_tm_predictor_4x4_neon, &vpx_tm_predictor_4x4_c, 4,
+ 8),
+ IntraPredParam(&vpx_tm_predictor_8x8_neon, &vpx_tm_predictor_8x8_c, 8,
+ 8),
+ IntraPredParam(&vpx_tm_predictor_16x16_neon, &vpx_tm_predictor_16x16_c,
+ 16, 8),
+ IntraPredParam(&vpx_tm_predictor_32x32_neon, &vpx_tm_predictor_32x32_c,
+ 32, 8),
+ IntraPredParam(&vpx_v_predictor_4x4_neon, &vpx_v_predictor_4x4_c, 4, 8),
+ IntraPredParam(&vpx_v_predictor_8x8_neon, &vpx_v_predictor_8x8_c, 8, 8),
+ IntraPredParam(&vpx_v_predictor_16x16_neon, &vpx_v_predictor_16x16_c,
+ 16, 8),
+ IntraPredParam(&vpx_v_predictor_32x32_neon, &vpx_v_predictor_32x32_c,
+ 32, 8)));
+#endif // HAVE_NEON
+
+#if CONFIG_VP9_HIGHBITDEPTH
+typedef void (*HighbdIntraPred)(uint16_t *dst, ptrdiff_t stride,
+ const uint16_t *above, const uint16_t *left,
+ int bps);
+struct HighbdIntraPredParam {
+ HighbdIntraPredParam(HighbdIntraPred pred = NULL, HighbdIntraPred ref = NULL,
+ int block_size_value = 0, int bit_depth_value = 0)
+ : pred_fn(pred), ref_fn(ref), block_size(block_size_value),
+ bit_depth(bit_depth_value) {}
+
+ HighbdIntraPred pred_fn;
+ HighbdIntraPred ref_fn;
+ int block_size;
+ int bit_depth;
+};
+
+template <>
+void IntraPredTest<uint16_t, HighbdIntraPredParam>::Predict() {
+ const int bit_depth = params_.bit_depth;
+ params_.ref_fn(ref_dst_, stride_, above_row_, left_col_, bit_depth);
+ ASM_REGISTER_STATE_CHECK(
+ params_.pred_fn(dst_, stride_, above_row_, left_col_, bit_depth));
+}
+
+typedef IntraPredTest<uint16_t, HighbdIntraPredParam> VP9HighbdIntraPredTest;
+
+TEST_P(VP9HighbdIntraPredTest, HighbdIntraPredTests) {
+ // max block size is 32
DECLARE_ALIGNED(16, uint16_t, left_col[2 * 32]);
DECLARE_ALIGNED(16, uint16_t, above_data[2 * 32 + 32]);
DECLARE_ALIGNED(16, uint16_t, dst[3 * 32 * 32]);
@@ -124,88 +327,90 @@
}
#if HAVE_SSE2
-#if CONFIG_VP9_HIGHBITDEPTH
INSTANTIATE_TEST_CASE_P(
- SSE2_TO_C_8, VP9IntraPredTest,
- ::testing::Values(IntraPredFunc(&vpx_highbd_dc_predictor_32x32_sse2,
- &vpx_highbd_dc_predictor_32x32_c, 32, 8),
- IntraPredFunc(&vpx_highbd_tm_predictor_16x16_sse2,
- &vpx_highbd_tm_predictor_16x16_c, 16, 8),
- IntraPredFunc(&vpx_highbd_tm_predictor_32x32_sse2,
- &vpx_highbd_tm_predictor_32x32_c, 32, 8),
- IntraPredFunc(&vpx_highbd_dc_predictor_4x4_sse2,
- &vpx_highbd_dc_predictor_4x4_c, 4, 8),
- IntraPredFunc(&vpx_highbd_dc_predictor_8x8_sse2,
- &vpx_highbd_dc_predictor_8x8_c, 8, 8),
- IntraPredFunc(&vpx_highbd_dc_predictor_16x16_sse2,
- &vpx_highbd_dc_predictor_16x16_c, 16, 8),
- IntraPredFunc(&vpx_highbd_v_predictor_4x4_sse2,
- &vpx_highbd_v_predictor_4x4_c, 4, 8),
- IntraPredFunc(&vpx_highbd_v_predictor_8x8_sse2,
- &vpx_highbd_v_predictor_8x8_c, 8, 8),
- IntraPredFunc(&vpx_highbd_v_predictor_16x16_sse2,
- &vpx_highbd_v_predictor_16x16_c, 16, 8),
- IntraPredFunc(&vpx_highbd_v_predictor_32x32_sse2,
- &vpx_highbd_v_predictor_32x32_c, 32, 8),
- IntraPredFunc(&vpx_highbd_tm_predictor_4x4_sse2,
- &vpx_highbd_tm_predictor_4x4_c, 4, 8),
- IntraPredFunc(&vpx_highbd_tm_predictor_8x8_sse2,
- &vpx_highbd_tm_predictor_8x8_c, 8, 8)));
+ SSE2_TO_C_8, VP9HighbdIntraPredTest,
+ ::testing::Values(
+ HighbdIntraPredParam(&vpx_highbd_dc_predictor_4x4_sse2,
+ &vpx_highbd_dc_predictor_4x4_c, 4, 8),
+ HighbdIntraPredParam(&vpx_highbd_dc_predictor_8x8_sse2,
+ &vpx_highbd_dc_predictor_8x8_c, 8, 8),
+ HighbdIntraPredParam(&vpx_highbd_dc_predictor_16x16_sse2,
+ &vpx_highbd_dc_predictor_16x16_c, 16, 8),
+ HighbdIntraPredParam(&vpx_highbd_dc_predictor_32x32_sse2,
+ &vpx_highbd_dc_predictor_32x32_c, 32, 8),
+ HighbdIntraPredParam(&vpx_highbd_tm_predictor_4x4_sse2,
+ &vpx_highbd_tm_predictor_4x4_c, 4, 8),
+ HighbdIntraPredParam(&vpx_highbd_tm_predictor_8x8_sse2,
+ &vpx_highbd_tm_predictor_8x8_c, 8, 8),
+ HighbdIntraPredParam(&vpx_highbd_tm_predictor_16x16_sse2,
+ &vpx_highbd_tm_predictor_16x16_c, 16, 8),
+ HighbdIntraPredParam(&vpx_highbd_tm_predictor_32x32_sse2,
+ &vpx_highbd_tm_predictor_32x32_c, 32, 8),
+ HighbdIntraPredParam(&vpx_highbd_v_predictor_4x4_sse2,
+ &vpx_highbd_v_predictor_4x4_c, 4, 8),
+ HighbdIntraPredParam(&vpx_highbd_v_predictor_8x8_sse2,
+ &vpx_highbd_v_predictor_8x8_c, 8, 8),
+ HighbdIntraPredParam(&vpx_highbd_v_predictor_16x16_sse2,
+ &vpx_highbd_v_predictor_16x16_c, 16, 8),
+ HighbdIntraPredParam(&vpx_highbd_v_predictor_32x32_sse2,
+ &vpx_highbd_v_predictor_32x32_c, 32, 8)));
INSTANTIATE_TEST_CASE_P(
- SSE2_TO_C_10, VP9IntraPredTest,
- ::testing::Values(IntraPredFunc(&vpx_highbd_dc_predictor_32x32_sse2,
- &vpx_highbd_dc_predictor_32x32_c, 32, 10),
- IntraPredFunc(&vpx_highbd_tm_predictor_16x16_sse2,
- &vpx_highbd_tm_predictor_16x16_c, 16, 10),
- IntraPredFunc(&vpx_highbd_tm_predictor_32x32_sse2,
- &vpx_highbd_tm_predictor_32x32_c, 32, 10),
- IntraPredFunc(&vpx_highbd_dc_predictor_4x4_sse2,
- &vpx_highbd_dc_predictor_4x4_c, 4, 10),
- IntraPredFunc(&vpx_highbd_dc_predictor_8x8_sse2,
- &vpx_highbd_dc_predictor_8x8_c, 8, 10),
- IntraPredFunc(&vpx_highbd_dc_predictor_16x16_sse2,
- &vpx_highbd_dc_predictor_16x16_c, 16, 10),
- IntraPredFunc(&vpx_highbd_v_predictor_4x4_sse2,
- &vpx_highbd_v_predictor_4x4_c, 4, 10),
- IntraPredFunc(&vpx_highbd_v_predictor_8x8_sse2,
- &vpx_highbd_v_predictor_8x8_c, 8, 10),
- IntraPredFunc(&vpx_highbd_v_predictor_16x16_sse2,
- &vpx_highbd_v_predictor_16x16_c, 16, 10),
- IntraPredFunc(&vpx_highbd_v_predictor_32x32_sse2,
- &vpx_highbd_v_predictor_32x32_c, 32, 10),
- IntraPredFunc(&vpx_highbd_tm_predictor_4x4_sse2,
- &vpx_highbd_tm_predictor_4x4_c, 4, 10),
- IntraPredFunc(&vpx_highbd_tm_predictor_8x8_sse2,
- &vpx_highbd_tm_predictor_8x8_c, 8, 10)));
+ SSE2_TO_C_10, VP9HighbdIntraPredTest,
+ ::testing::Values(
+ HighbdIntraPredParam(&vpx_highbd_dc_predictor_4x4_sse2,
+ &vpx_highbd_dc_predictor_4x4_c, 4, 10),
+ HighbdIntraPredParam(&vpx_highbd_dc_predictor_8x8_sse2,
+ &vpx_highbd_dc_predictor_8x8_c, 8, 10),
+ HighbdIntraPredParam(&vpx_highbd_dc_predictor_16x16_sse2,
+ &vpx_highbd_dc_predictor_16x16_c, 16, 10),
+ HighbdIntraPredParam(&vpx_highbd_dc_predictor_32x32_sse2,
+ &vpx_highbd_dc_predictor_32x32_c, 32, 10),
+ HighbdIntraPredParam(&vpx_highbd_tm_predictor_4x4_sse2,
+ &vpx_highbd_tm_predictor_4x4_c, 4, 10),
+ HighbdIntraPredParam(&vpx_highbd_tm_predictor_8x8_sse2,
+ &vpx_highbd_tm_predictor_8x8_c, 8, 10),
+ HighbdIntraPredParam(&vpx_highbd_tm_predictor_16x16_sse2,
+ &vpx_highbd_tm_predictor_16x16_c, 16, 10),
+ HighbdIntraPredParam(&vpx_highbd_tm_predictor_32x32_sse2,
+ &vpx_highbd_tm_predictor_32x32_c, 32, 10),
+ HighbdIntraPredParam(&vpx_highbd_v_predictor_4x4_sse2,
+ &vpx_highbd_v_predictor_4x4_c, 4, 10),
+ HighbdIntraPredParam(&vpx_highbd_v_predictor_8x8_sse2,
+ &vpx_highbd_v_predictor_8x8_c, 8, 10),
+ HighbdIntraPredParam(&vpx_highbd_v_predictor_16x16_sse2,
+ &vpx_highbd_v_predictor_16x16_c, 16, 10),
+ HighbdIntraPredParam(&vpx_highbd_v_predictor_32x32_sse2,
+ &vpx_highbd_v_predictor_32x32_c, 32, 10)));
INSTANTIATE_TEST_CASE_P(
- SSE2_TO_C_12, VP9IntraPredTest,
- ::testing::Values(IntraPredFunc(&vpx_highbd_dc_predictor_32x32_sse2,
- &vpx_highbd_dc_predictor_32x32_c, 32, 12),
- IntraPredFunc(&vpx_highbd_tm_predictor_16x16_sse2,
- &vpx_highbd_tm_predictor_16x16_c, 16, 12),
- IntraPredFunc(&vpx_highbd_tm_predictor_32x32_sse2,
- &vpx_highbd_tm_predictor_32x32_c, 32, 12),
- IntraPredFunc(&vpx_highbd_dc_predictor_4x4_sse2,
- &vpx_highbd_dc_predictor_4x4_c, 4, 12),
- IntraPredFunc(&vpx_highbd_dc_predictor_8x8_sse2,
- &vpx_highbd_dc_predictor_8x8_c, 8, 12),
- IntraPredFunc(&vpx_highbd_dc_predictor_16x16_sse2,
- &vpx_highbd_dc_predictor_16x16_c, 16, 12),
- IntraPredFunc(&vpx_highbd_v_predictor_4x4_sse2,
- &vpx_highbd_v_predictor_4x4_c, 4, 12),
- IntraPredFunc(&vpx_highbd_v_predictor_8x8_sse2,
- &vpx_highbd_v_predictor_8x8_c, 8, 12),
- IntraPredFunc(&vpx_highbd_v_predictor_16x16_sse2,
- &vpx_highbd_v_predictor_16x16_c, 16, 12),
- IntraPredFunc(&vpx_highbd_v_predictor_32x32_sse2,
- &vpx_highbd_v_predictor_32x32_c, 32, 12),
- IntraPredFunc(&vpx_highbd_tm_predictor_4x4_sse2,
- &vpx_highbd_tm_predictor_4x4_c, 4, 12),
- IntraPredFunc(&vpx_highbd_tm_predictor_8x8_sse2,
- &vpx_highbd_tm_predictor_8x8_c, 8, 12)));
+ SSE2_TO_C_12, VP9HighbdIntraPredTest,
+ ::testing::Values(
+ HighbdIntraPredParam(&vpx_highbd_dc_predictor_4x4_sse2,
+ &vpx_highbd_dc_predictor_4x4_c, 4, 12),
+ HighbdIntraPredParam(&vpx_highbd_dc_predictor_8x8_sse2,
+ &vpx_highbd_dc_predictor_8x8_c, 8, 12),
+ HighbdIntraPredParam(&vpx_highbd_dc_predictor_16x16_sse2,
+ &vpx_highbd_dc_predictor_16x16_c, 16, 12),
+ HighbdIntraPredParam(&vpx_highbd_dc_predictor_32x32_sse2,
+ &vpx_highbd_dc_predictor_32x32_c, 32, 12),
+ HighbdIntraPredParam(&vpx_highbd_tm_predictor_4x4_sse2,
+ &vpx_highbd_tm_predictor_4x4_c, 4, 12),
+ HighbdIntraPredParam(&vpx_highbd_tm_predictor_8x8_sse2,
+ &vpx_highbd_tm_predictor_8x8_c, 8, 12),
+ HighbdIntraPredParam(&vpx_highbd_tm_predictor_16x16_sse2,
+ &vpx_highbd_tm_predictor_16x16_c, 16, 12),
+ HighbdIntraPredParam(&vpx_highbd_tm_predictor_32x32_sse2,
+ &vpx_highbd_tm_predictor_32x32_c, 32, 12),
+ HighbdIntraPredParam(&vpx_highbd_v_predictor_4x4_sse2,
+ &vpx_highbd_v_predictor_4x4_c, 4, 12),
+ HighbdIntraPredParam(&vpx_highbd_v_predictor_8x8_sse2,
+ &vpx_highbd_v_predictor_8x8_c, 8, 12),
+ HighbdIntraPredParam(&vpx_highbd_v_predictor_16x16_sse2,
+ &vpx_highbd_v_predictor_16x16_c, 16, 12),
+ HighbdIntraPredParam(&vpx_highbd_v_predictor_32x32_sse2,
+ &vpx_highbd_v_predictor_32x32_c, 32, 12)));
+#endif // HAVE_SSE2
#endif // CONFIG_VP9_HIGHBITDEPTH
-#endif // HAVE_SSE2
} // namespace