summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorScott LaVarnway <slavarnway@google.com>2017-09-06 10:08:03 -0700
committerScott LaVarnway <slavarnway@google.com>2017-09-11 07:36:24 -0700
commitd6c9bbc2b6f2b15495c3e1fcc86feba23b27dc08 (patch)
tree27b7cb1c305734c6b16e6459034d60bf00468621 /test
parentfb40b5d7a76978e6fcedf5997fd7a45571aa6b0d (diff)
downloadlibvpx-d6c9bbc2b6f2b15495c3e1fcc86feba23b27dc08.tar
libvpx-d6c9bbc2b6f2b15495c3e1fcc86feba23b27dc08.tar.gz
libvpx-d6c9bbc2b6f2b15495c3e1fcc86feba23b27dc08.tar.bz2
libvpx-d6c9bbc2b6f2b15495c3e1fcc86feba23b27dc08.zip
vpxdsp: [x86] add highbd_d207_predictor functions
C vs SSE2 speed gains: _4x4 : ~2.31x C vs SSSE3 speed gains: _8x8 : ~4.73x _16x16 : ~10.88x _32x32 : ~4.80x BUG=webm:1411 Change-Id: I0bac29db261079181ddabc6814bd62c463109caf
Diffstat (limited to 'test')
-rw-r--r--test/test_intra_pred_speed.cc28
-rw-r--r--test/vp9_intrapred_test.cc38
2 files changed, 58 insertions, 8 deletions
diff --git a/test/test_intra_pred_speed.cc b/test/test_intra_pred_speed.cc
index cbc1a8c43..b92fc2b68 100644
--- a/test/test_intra_pred_speed.cc
+++ b/test/test_intra_pred_speed.cc
@@ -480,14 +480,12 @@ HIGHBD_INTRA_PRED_TEST(
vpx_highbd_d63_predictor_32x32_c, vpx_highbd_tm_predictor_32x32_c)
#if HAVE_SSE2
-HIGHBD_INTRA_PRED_TEST(SSE2, TestHighbdIntraPred4,
- vpx_highbd_dc_predictor_4x4_sse2,
- vpx_highbd_dc_left_predictor_4x4_sse2,
- vpx_highbd_dc_top_predictor_4x4_sse2,
- vpx_highbd_dc_128_predictor_4x4_sse2,
- vpx_highbd_v_predictor_4x4_sse2,
- vpx_highbd_h_predictor_4x4_sse2, NULL, NULL, NULL, NULL,
- NULL, NULL, vpx_highbd_tm_predictor_4x4_c)
+HIGHBD_INTRA_PRED_TEST(
+ SSE2, TestHighbdIntraPred4, vpx_highbd_dc_predictor_4x4_sse2,
+ vpx_highbd_dc_left_predictor_4x4_sse2, vpx_highbd_dc_top_predictor_4x4_sse2,
+ vpx_highbd_dc_128_predictor_4x4_sse2, vpx_highbd_v_predictor_4x4_sse2,
+ vpx_highbd_h_predictor_4x4_sse2, NULL, NULL, NULL, NULL,
+ vpx_highbd_d207_predictor_4x4_sse2, NULL, vpx_highbd_tm_predictor_4x4_c)
HIGHBD_INTRA_PRED_TEST(SSE2, TestHighbdIntraPred8,
vpx_highbd_dc_predictor_8x8_sse2,
@@ -517,6 +515,20 @@ HIGHBD_INTRA_PRED_TEST(SSE2, TestHighbdIntraPred32,
NULL, NULL, NULL, vpx_highbd_tm_predictor_32x32_sse2)
#endif // HAVE_SSE2
+#if HAVE_SSSE3
+HIGHBD_INTRA_PRED_TEST(SSSE3, TestHighbdIntraPred4, NULL, NULL, NULL, NULL,
+ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL)
+HIGHBD_INTRA_PRED_TEST(SSSE3, TestHighbdIntraPred8, NULL, NULL, NULL, NULL,
+ NULL, NULL, NULL, NULL, NULL, NULL,
+ vpx_highbd_d207_predictor_8x8_ssse3, NULL, NULL)
+HIGHBD_INTRA_PRED_TEST(SSSE3, TestHighbdIntraPred16, NULL, NULL, NULL, NULL,
+ NULL, NULL, NULL, NULL, NULL, NULL,
+ vpx_highbd_d207_predictor_16x16_ssse3, NULL, NULL)
+HIGHBD_INTRA_PRED_TEST(SSSE3, TestHighbdIntraPred32, NULL, NULL, NULL, NULL,
+ NULL, NULL, NULL, NULL, NULL, NULL,
+ vpx_highbd_d207_predictor_32x32_ssse3, NULL, NULL)
+#endif // HAVE_SSSE3
+
#if HAVE_NEON
HIGHBD_INTRA_PRED_TEST(
NEON, TestHighbdIntraPred4, vpx_highbd_dc_predictor_4x4_neon,
diff --git a/test/vp9_intrapred_test.cc b/test/vp9_intrapred_test.cc
index 96985bd14..649f5012e 100644
--- a/test/vp9_intrapred_test.cc
+++ b/test/vp9_intrapred_test.cc
@@ -467,6 +467,38 @@ TEST_P(VP9HighbdIntraPredTest, HighbdIntraPredTests) {
RunTest(left_col, above_data, dst, ref_dst);
}
+#if HAVE_SSSE3
+INSTANTIATE_TEST_CASE_P(
+ SSSE3_TO_C_8, VP9HighbdIntraPredTest,
+ ::testing::Values(
+ HighbdIntraPredParam(&vpx_highbd_d207_predictor_8x8_ssse3,
+ &vpx_highbd_d207_predictor_8x8_c, 8, 8),
+ HighbdIntraPredParam(&vpx_highbd_d207_predictor_16x16_ssse3,
+ &vpx_highbd_d207_predictor_16x16_c, 16, 8),
+ HighbdIntraPredParam(&vpx_highbd_d207_predictor_32x32_ssse3,
+ &vpx_highbd_d207_predictor_32x32_c, 32, 8)));
+
+INSTANTIATE_TEST_CASE_P(
+ SSSE3_TO_C_10, VP9HighbdIntraPredTest,
+ ::testing::Values(
+ HighbdIntraPredParam(&vpx_highbd_d207_predictor_8x8_ssse3,
+ &vpx_highbd_d207_predictor_8x8_c, 8, 10),
+ HighbdIntraPredParam(&vpx_highbd_d207_predictor_16x16_ssse3,
+ &vpx_highbd_d207_predictor_16x16_c, 16, 10),
+ HighbdIntraPredParam(&vpx_highbd_d207_predictor_32x32_ssse3,
+ &vpx_highbd_d207_predictor_32x32_c, 32, 10)));
+
+INSTANTIATE_TEST_CASE_P(
+ SSSE3_TO_C_12, VP9HighbdIntraPredTest,
+ ::testing::Values(
+ HighbdIntraPredParam(&vpx_highbd_d207_predictor_8x8_ssse3,
+ &vpx_highbd_d207_predictor_8x8_c, 8, 12),
+ HighbdIntraPredParam(&vpx_highbd_d207_predictor_16x16_ssse3,
+ &vpx_highbd_d207_predictor_16x16_c, 16, 12),
+ HighbdIntraPredParam(&vpx_highbd_d207_predictor_32x32_ssse3,
+ &vpx_highbd_d207_predictor_32x32_c, 32, 12)));
+#endif // HAVE_SSSE3
+
#if HAVE_SSE2
INSTANTIATE_TEST_CASE_P(
SSE2_TO_C_8, VP9HighbdIntraPredTest,
@@ -479,6 +511,8 @@ INSTANTIATE_TEST_CASE_P(
&vpx_highbd_dc_128_predictor_16x16_c, 16, 8),
HighbdIntraPredParam(&vpx_highbd_dc_128_predictor_32x32_sse2,
&vpx_highbd_dc_128_predictor_32x32_c, 32, 8),
+ HighbdIntraPredParam(&vpx_highbd_d207_predictor_4x4_sse2,
+ &vpx_highbd_d207_predictor_4x4_c, 4, 8),
HighbdIntraPredParam(&vpx_highbd_dc_left_predictor_4x4_sse2,
&vpx_highbd_dc_left_predictor_4x4_c, 4, 8),
HighbdIntraPredParam(&vpx_highbd_dc_left_predictor_8x8_sse2,
@@ -539,6 +573,8 @@ INSTANTIATE_TEST_CASE_P(
&vpx_highbd_dc_128_predictor_16x16_c, 16, 10),
HighbdIntraPredParam(&vpx_highbd_dc_128_predictor_32x32_sse2,
&vpx_highbd_dc_128_predictor_32x32_c, 32, 10),
+ HighbdIntraPredParam(&vpx_highbd_d207_predictor_4x4_sse2,
+ &vpx_highbd_d207_predictor_4x4_c, 4, 10),
HighbdIntraPredParam(&vpx_highbd_dc_left_predictor_4x4_sse2,
&vpx_highbd_dc_left_predictor_4x4_c, 4, 10),
HighbdIntraPredParam(&vpx_highbd_dc_left_predictor_8x8_sse2,
@@ -599,6 +635,8 @@ INSTANTIATE_TEST_CASE_P(
&vpx_highbd_dc_128_predictor_16x16_c, 16, 12),
HighbdIntraPredParam(&vpx_highbd_dc_128_predictor_32x32_sse2,
&vpx_highbd_dc_128_predictor_32x32_c, 32, 12),
+ HighbdIntraPredParam(&vpx_highbd_d207_predictor_4x4_sse2,
+ &vpx_highbd_d207_predictor_4x4_c, 4, 12),
HighbdIntraPredParam(&vpx_highbd_dc_left_predictor_4x4_sse2,
&vpx_highbd_dc_left_predictor_4x4_c, 4, 12),
HighbdIntraPredParam(&vpx_highbd_dc_left_predictor_8x8_sse2,