Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Xiph.Org
aom-rav1e
Commits
40136453
Commit
40136453
authored
Jul 21, 2015
by
hui su
Browse files
Replace prefix vp9_ with vpx_ for intra prediction functions
Change-Id: I8ae6fb586f8d5d018ace228df11714f82b085076
parent
7971846a
Changes
15
Expand all
Hide whitespace changes
Inline
Side-by-side
test/test.mk
View file @
40136453
...
...
@@ -164,8 +164,8 @@ endif # VP9
LIBVPX_TEST_SRCS-$(CONFIG_ENCODERS)
+=
sad_test.cc
TEST_INTRA_PRED_SPEED_SRCS-$(CONFIG_VP9
_DECODER
)
:=
test_intra_pred_speed.cc
TEST_INTRA_PRED_SPEED_SRCS-$(CONFIG_VP9
_DECODER
)
+=
../md5_utils.h ../md5_utils.c
TEST_INTRA_PRED_SPEED_SRCS-$(CONFIG_VP9)
:=
test_intra_pred_speed.cc
TEST_INTRA_PRED_SPEED_SRCS-$(CONFIG_VP9)
+=
../md5_utils.h ../md5_utils.c
endif
# CONFIG_SHARED
...
...
test/test_intra_pred_speed.cc
View file @
40136453
...
...
@@ -7,7 +7,7 @@
* in the file PATENTS. All contributing project authors may
* be found in the AUTHORS file in the root of the source tree.
*/
// Test and time VP
9
intra-predictor functions
// Test and time VP
X
intra-predictor functions
#include
<stdio.h>
#include
<string.h>
...
...
@@ -170,215 +170,215 @@ void TestIntraPred32(VpxPredFunc const *pred_funcs) {
#define INTRA_PRED_TEST(arch, test_func, dc, dc_left, dc_top, dc_128, v, h, \
d45, d135, d117, d153, d207, d63, tm) \
TEST(arch, test_func) { \
static const VpxPredFunc vp
9
_intra_pred[] = { \
static const VpxPredFunc vp
x
_intra_pred[] = { \
dc, dc_left, dc_top, dc_128, v, h, d45, \
d135, d117, d153, d207, d63, tm}; \
test_func(vp
9
_intra_pred); \
test_func(vp
x
_intra_pred); \
}
// -----------------------------------------------------------------------------
// 4x4
INTRA_PRED_TEST
(
C
,
TestIntraPred4
,
vp
9
_dc_predictor_4x4_c
,
vp
9
_dc_left_predictor_4x4_c
,
vp
9
_dc_top_predictor_4x4_c
,
vp
9
_dc_128_predictor_4x4_c
,
vp
9
_v_predictor_4x4_c
,
vp
9
_h_predictor_4x4_c
,
vp
9
_d45_predictor_4x4_c
,
vp
9
_d135_predictor_4x4_c
,
vp
9
_d117_predictor_4x4_c
,
vp
9
_d153_predictor_4x4_c
,
vp
9
_d207_predictor_4x4_c
,
vp
9
_d63_predictor_4x4_c
,
vp
9
_tm_predictor_4x4_c
)
INTRA_PRED_TEST
(
C
,
TestIntraPred4
,
vp
x
_dc_predictor_4x4_c
,
vp
x
_dc_left_predictor_4x4_c
,
vp
x
_dc_top_predictor_4x4_c
,
vp
x
_dc_128_predictor_4x4_c
,
vp
x
_v_predictor_4x4_c
,
vp
x
_h_predictor_4x4_c
,
vp
x
_d45_predictor_4x4_c
,
vp
x
_d135_predictor_4x4_c
,
vp
x
_d117_predictor_4x4_c
,
vp
x
_d153_predictor_4x4_c
,
vp
x
_d207_predictor_4x4_c
,
vp
x
_d63_predictor_4x4_c
,
vp
x
_tm_predictor_4x4_c
)
#if HAVE_SSE && CONFIG_USE_X86INC
INTRA_PRED_TEST
(
SSE
,
TestIntraPred4
,
vp
9
_dc_predictor_4x4_sse
,
vp
9
_dc_left_predictor_4x4_sse
,
vp
9
_dc_top_predictor_4x4_sse
,
vp
9
_dc_128_predictor_4x4_sse
,
vp
9
_v_predictor_4x4_sse
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
vp
9
_tm_predictor_4x4_sse
)
INTRA_PRED_TEST
(
SSE
,
TestIntraPred4
,
vp
x
_dc_predictor_4x4_sse
,
vp
x
_dc_left_predictor_4x4_sse
,
vp
x
_dc_top_predictor_4x4_sse
,
vp
x
_dc_128_predictor_4x4_sse
,
vp
x
_v_predictor_4x4_sse
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
vp
x
_tm_predictor_4x4_sse
)
#endif // HAVE_SSE && CONFIG_USE_X86INC
#if HAVE_SSSE3 && CONFIG_USE_X86INC
INTRA_PRED_TEST
(
SSSE3
,
TestIntraPred4
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
vp
9
_h_predictor_4x4_ssse3
,
vp
9
_d45_predictor_4x4_ssse3
,
NULL
,
NULL
,
vp
9
_d153_predictor_4x4_ssse3
,
vp
9
_d207_predictor_4x4_ssse3
,
vp
9
_d63_predictor_4x4_ssse3
,
NULL
)
vp
x
_h_predictor_4x4_ssse3
,
vp
x
_d45_predictor_4x4_ssse3
,
NULL
,
NULL
,
vp
x
_d153_predictor_4x4_ssse3
,
vp
x
_d207_predictor_4x4_ssse3
,
vp
x
_d63_predictor_4x4_ssse3
,
NULL
)
#endif // HAVE_SSSE3 && CONFIG_USE_X86INC
#if HAVE_DSPR2
INTRA_PRED_TEST
(
DSPR2
,
TestIntraPred4
,
vp
9
_dc_predictor_4x4_dspr2
,
NULL
,
NULL
,
NULL
,
NULL
,
vp
9
_h_predictor_4x4_dspr2
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
vp
9
_tm_predictor_4x4_dspr2
)
INTRA_PRED_TEST
(
DSPR2
,
TestIntraPred4
,
vp
x
_dc_predictor_4x4_dspr2
,
NULL
,
NULL
,
NULL
,
NULL
,
vp
x
_h_predictor_4x4_dspr2
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
vp
x
_tm_predictor_4x4_dspr2
)
#endif // HAVE_DSPR2
#if HAVE_NEON
INTRA_PRED_TEST
(
NEON
,
TestIntraPred4
,
vp
9
_dc_predictor_4x4_neon
,
vp
9
_dc_left_predictor_4x4_neon
,
vp
9
_dc_top_predictor_4x4_neon
,
vp
9
_dc_128_predictor_4x4_neon
,
vp
9
_v_predictor_4x4_neon
,
vp
9
_h_predictor_4x4_neon
,
vp
9
_d45_predictor_4x4_neon
,
vp
9
_d135_predictor_4x4_neon
,
NULL
,
NULL
,
NULL
,
NULL
,
vp
9
_tm_predictor_4x4_neon
)
INTRA_PRED_TEST
(
NEON
,
TestIntraPred4
,
vp
x
_dc_predictor_4x4_neon
,
vp
x
_dc_left_predictor_4x4_neon
,
vp
x
_dc_top_predictor_4x4_neon
,
vp
x
_dc_128_predictor_4x4_neon
,
vp
x
_v_predictor_4x4_neon
,
vp
x
_h_predictor_4x4_neon
,
vp
x
_d45_predictor_4x4_neon
,
vp
x
_d135_predictor_4x4_neon
,
NULL
,
NULL
,
NULL
,
NULL
,
vp
x
_tm_predictor_4x4_neon
)
#endif // HAVE_NEON
#if HAVE_MSA
INTRA_PRED_TEST
(
MSA
,
TestIntraPred4
,
vp
9
_dc_predictor_4x4_msa
,
vp
9
_dc_left_predictor_4x4_msa
,
vp
9
_dc_top_predictor_4x4_msa
,
vp
9
_dc_128_predictor_4x4_msa
,
vp
9
_v_predictor_4x4_msa
,
vp
9
_h_predictor_4x4_msa
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
vp
9
_tm_predictor_4x4_msa
)
INTRA_PRED_TEST
(
MSA
,
TestIntraPred4
,
vp
x
_dc_predictor_4x4_msa
,
vp
x
_dc_left_predictor_4x4_msa
,
vp
x
_dc_top_predictor_4x4_msa
,
vp
x
_dc_128_predictor_4x4_msa
,
vp
x
_v_predictor_4x4_msa
,
vp
x
_h_predictor_4x4_msa
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
vp
x
_tm_predictor_4x4_msa
)
#endif // HAVE_MSA
// -----------------------------------------------------------------------------
// 8x8
INTRA_PRED_TEST
(
C
,
TestIntraPred8
,
vp
9
_dc_predictor_8x8_c
,
vp
9
_dc_left_predictor_8x8_c
,
vp
9
_dc_top_predictor_8x8_c
,
vp
9
_dc_128_predictor_8x8_c
,
vp
9
_v_predictor_8x8_c
,
vp
9
_h_predictor_8x8_c
,
vp
9
_d45_predictor_8x8_c
,
vp
9
_d135_predictor_8x8_c
,
vp
9
_d117_predictor_8x8_c
,
vp
9
_d153_predictor_8x8_c
,
vp
9
_d207_predictor_8x8_c
,
vp
9
_d63_predictor_8x8_c
,
vp
9
_tm_predictor_8x8_c
)
INTRA_PRED_TEST
(
C
,
TestIntraPred8
,
vp
x
_dc_predictor_8x8_c
,
vp
x
_dc_left_predictor_8x8_c
,
vp
x
_dc_top_predictor_8x8_c
,
vp
x
_dc_128_predictor_8x8_c
,
vp
x
_v_predictor_8x8_c
,
vp
x
_h_predictor_8x8_c
,
vp
x
_d45_predictor_8x8_c
,
vp
x
_d135_predictor_8x8_c
,
vp
x
_d117_predictor_8x8_c
,
vp
x
_d153_predictor_8x8_c
,
vp
x
_d207_predictor_8x8_c
,
vp
x
_d63_predictor_8x8_c
,
vp
x
_tm_predictor_8x8_c
)
#if HAVE_SSE && CONFIG_USE_X86INC
INTRA_PRED_TEST
(
SSE
,
TestIntraPred8
,
vp
9
_dc_predictor_8x8_sse
,
vp
9
_dc_left_predictor_8x8_sse
,
vp
9
_dc_top_predictor_8x8_sse
,
vp
9
_dc_128_predictor_8x8_sse
,
vp
9
_v_predictor_8x8_sse
,
NULL
,
INTRA_PRED_TEST
(
SSE
,
TestIntraPred8
,
vp
x
_dc_predictor_8x8_sse
,
vp
x
_dc_left_predictor_8x8_sse
,
vp
x
_dc_top_predictor_8x8_sse
,
vp
x
_dc_128_predictor_8x8_sse
,
vp
x
_v_predictor_8x8_sse
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
)
#endif // HAVE_SSE && CONFIG_USE_X86INC
#if HAVE_SSE2 && CONFIG_USE_X86INC
INTRA_PRED_TEST
(
SSE2
,
TestIntraPred8
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
vp
9
_tm_predictor_8x8_sse2
)
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
vp
x
_tm_predictor_8x8_sse2
)
#endif // HAVE_SSE2 && CONFIG_USE_X86INC
#if HAVE_SSSE3 && CONFIG_USE_X86INC
INTRA_PRED_TEST
(
SSSE3
,
TestIntraPred8
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
vp
9
_h_predictor_8x8_ssse3
,
vp
9
_d45_predictor_8x8_ssse3
,
NULL
,
NULL
,
vp
9
_d153_predictor_8x8_ssse3
,
vp
9
_d207_predictor_8x8_ssse3
,
vp
9
_d63_predictor_8x8_ssse3
,
NULL
)
vp
x
_h_predictor_8x8_ssse3
,
vp
x
_d45_predictor_8x8_ssse3
,
NULL
,
NULL
,
vp
x
_d153_predictor_8x8_ssse3
,
vp
x
_d207_predictor_8x8_ssse3
,
vp
x
_d63_predictor_8x8_ssse3
,
NULL
)
#endif // HAVE_SSSE3 && CONFIG_USE_X86INC
#if HAVE_DSPR2
INTRA_PRED_TEST
(
DSPR2
,
TestIntraPred8
,
vp
9
_dc_predictor_8x8_dspr2
,
NULL
,
NULL
,
NULL
,
NULL
,
vp
9
_h_predictor_8x8_dspr2
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
vp
9
_tm_predictor_8x8_c
)
INTRA_PRED_TEST
(
DSPR2
,
TestIntraPred8
,
vp
x
_dc_predictor_8x8_dspr2
,
NULL
,
NULL
,
NULL
,
NULL
,
vp
x
_h_predictor_8x8_dspr2
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
vp
x
_tm_predictor_8x8_c
)
#endif // HAVE_DSPR2
#if HAVE_NEON
INTRA_PRED_TEST
(
NEON
,
TestIntraPred8
,
vp
9
_dc_predictor_8x8_neon
,
vp
9
_dc_left_predictor_8x8_neon
,
vp
9
_dc_top_predictor_8x8_neon
,
vp
9
_dc_128_predictor_8x8_neon
,
vp
9
_v_predictor_8x8_neon
,
vp
9
_h_predictor_8x8_neon
,
vp
9
_d45_predictor_8x8_neon
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
vp
9
_tm_predictor_8x8_neon
)
INTRA_PRED_TEST
(
NEON
,
TestIntraPred8
,
vp
x
_dc_predictor_8x8_neon
,
vp
x
_dc_left_predictor_8x8_neon
,
vp
x
_dc_top_predictor_8x8_neon
,
vp
x
_dc_128_predictor_8x8_neon
,
vp
x
_v_predictor_8x8_neon
,
vp
x
_h_predictor_8x8_neon
,
vp
x
_d45_predictor_8x8_neon
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
vp
x
_tm_predictor_8x8_neon
)
#endif // HAVE_NEON
#if HAVE_MSA
INTRA_PRED_TEST
(
MSA
,
TestIntraPred8
,
vp
9
_dc_predictor_8x8_msa
,
vp
9
_dc_left_predictor_8x8_msa
,
vp
9
_dc_top_predictor_8x8_msa
,
vp
9
_dc_128_predictor_8x8_msa
,
vp
9
_v_predictor_8x8_msa
,
vp
9
_h_predictor_8x8_msa
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
vp
9
_tm_predictor_8x8_msa
)
INTRA_PRED_TEST
(
MSA
,
TestIntraPred8
,
vp
x
_dc_predictor_8x8_msa
,
vp
x
_dc_left_predictor_8x8_msa
,
vp
x
_dc_top_predictor_8x8_msa
,
vp
x
_dc_128_predictor_8x8_msa
,
vp
x
_v_predictor_8x8_msa
,
vp
x
_h_predictor_8x8_msa
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
vp
x
_tm_predictor_8x8_msa
)
#endif // HAVE_MSA
// -----------------------------------------------------------------------------
// 16x16
INTRA_PRED_TEST
(
C
,
TestIntraPred16
,
vp
9
_dc_predictor_16x16_c
,
vp
9
_dc_left_predictor_16x16_c
,
vp
9
_dc_top_predictor_16x16_c
,
vp
9
_dc_128_predictor_16x16_c
,
vp
9
_v_predictor_16x16_c
,
vp
9
_h_predictor_16x16_c
,
vp
9
_d45_predictor_16x16_c
,
vp
9
_d135_predictor_16x16_c
,
vp
9
_d117_predictor_16x16_c
,
vp
9
_d153_predictor_16x16_c
,
vp
9
_d207_predictor_16x16_c
,
vp
9
_d63_predictor_16x16_c
,
vp
9
_tm_predictor_16x16_c
)
INTRA_PRED_TEST
(
C
,
TestIntraPred16
,
vp
x
_dc_predictor_16x16_c
,
vp
x
_dc_left_predictor_16x16_c
,
vp
x
_dc_top_predictor_16x16_c
,
vp
x
_dc_128_predictor_16x16_c
,
vp
x
_v_predictor_16x16_c
,
vp
x
_h_predictor_16x16_c
,
vp
x
_d45_predictor_16x16_c
,
vp
x
_d135_predictor_16x16_c
,
vp
x
_d117_predictor_16x16_c
,
vp
x
_d153_predictor_16x16_c
,
vp
x
_d207_predictor_16x16_c
,
vp
x
_d63_predictor_16x16_c
,
vp
x
_tm_predictor_16x16_c
)
#if HAVE_SSE2 && CONFIG_USE_X86INC
INTRA_PRED_TEST
(
SSE2
,
TestIntraPred16
,
vp
9
_dc_predictor_16x16_sse2
,
vp
9
_dc_left_predictor_16x16_sse2
,
vp
9
_dc_top_predictor_16x16_sse2
,
vp
9
_dc_128_predictor_16x16_sse2
,
vp
9
_v_predictor_16x16_sse2
,
INTRA_PRED_TEST
(
SSE2
,
TestIntraPred16
,
vp
x
_dc_predictor_16x16_sse2
,
vp
x
_dc_left_predictor_16x16_sse2
,
vp
x
_dc_top_predictor_16x16_sse2
,
vp
x
_dc_128_predictor_16x16_sse2
,
vp
x
_v_predictor_16x16_sse2
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
vp
9
_tm_predictor_16x16_sse2
)
vp
x
_tm_predictor_16x16_sse2
)
#endif // HAVE_SSE2 && CONFIG_USE_X86INC
#if HAVE_SSSE3 && CONFIG_USE_X86INC
INTRA_PRED_TEST
(
SSSE3
,
TestIntraPred16
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
vp
9
_h_predictor_16x16_ssse3
,
vp
9
_d45_predictor_16x16_ssse3
,
NULL
,
NULL
,
vp
9
_d153_predictor_16x16_ssse3
,
vp
9
_d207_predictor_16x16_ssse3
,
vp
9
_d63_predictor_16x16_ssse3
,
vp
x
_h_predictor_16x16_ssse3
,
vp
x
_d45_predictor_16x16_ssse3
,
NULL
,
NULL
,
vp
x
_d153_predictor_16x16_ssse3
,
vp
x
_d207_predictor_16x16_ssse3
,
vp
x
_d63_predictor_16x16_ssse3
,
NULL
)
#endif // HAVE_SSSE3 && CONFIG_USE_X86INC
#if HAVE_DSPR2
INTRA_PRED_TEST
(
DSPR2
,
TestIntraPred16
,
vp
9
_dc_predictor_16x16_dspr2
,
NULL
,
NULL
,
NULL
,
NULL
,
vp
9
_h_predictor_16x16_dspr2
,
NULL
,
NULL
,
NULL
,
INTRA_PRED_TEST
(
DSPR2
,
TestIntraPred16
,
vp
x
_dc_predictor_16x16_dspr2
,
NULL
,
NULL
,
NULL
,
NULL
,
vp
x
_h_predictor_16x16_dspr2
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
)
#endif // HAVE_DSPR2
#if HAVE_NEON
INTRA_PRED_TEST
(
NEON
,
TestIntraPred16
,
vp
9
_dc_predictor_16x16_neon
,
vp
9
_dc_left_predictor_16x16_neon
,
vp
9
_dc_top_predictor_16x16_neon
,
vp
9
_dc_128_predictor_16x16_neon
,
vp
9
_v_predictor_16x16_neon
,
vp
9
_h_predictor_16x16_neon
,
vp
9
_d45_predictor_16x16_neon
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
vp
9
_tm_predictor_16x16_neon
)
INTRA_PRED_TEST
(
NEON
,
TestIntraPred16
,
vp
x
_dc_predictor_16x16_neon
,
vp
x
_dc_left_predictor_16x16_neon
,
vp
x
_dc_top_predictor_16x16_neon
,
vp
x
_dc_128_predictor_16x16_neon
,
vp
x
_v_predictor_16x16_neon
,
vp
x
_h_predictor_16x16_neon
,
vp
x
_d45_predictor_16x16_neon
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
vp
x
_tm_predictor_16x16_neon
)
#endif // HAVE_NEON
#if HAVE_MSA
INTRA_PRED_TEST
(
MSA
,
TestIntraPred16
,
vp
9
_dc_predictor_16x16_msa
,
vp
9
_dc_left_predictor_16x16_msa
,
vp
9
_dc_top_predictor_16x16_msa
,
vp
9
_dc_128_predictor_16x16_msa
,
vp
9
_v_predictor_16x16_msa
,
vp
9
_h_predictor_16x16_msa
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
vp
9
_tm_predictor_16x16_msa
)
INTRA_PRED_TEST
(
MSA
,
TestIntraPred16
,
vp
x
_dc_predictor_16x16_msa
,
vp
x
_dc_left_predictor_16x16_msa
,
vp
x
_dc_top_predictor_16x16_msa
,
vp
x
_dc_128_predictor_16x16_msa
,
vp
x
_v_predictor_16x16_msa
,
vp
x
_h_predictor_16x16_msa
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
vp
x
_tm_predictor_16x16_msa
)
#endif // HAVE_MSA
// -----------------------------------------------------------------------------
// 32x32
INTRA_PRED_TEST
(
C
,
TestIntraPred32
,
vp
9
_dc_predictor_32x32_c
,
vp
9
_dc_left_predictor_32x32_c
,
vp
9
_dc_top_predictor_32x32_c
,
vp
9
_dc_128_predictor_32x32_c
,
vp
9
_v_predictor_32x32_c
,
vp
9
_h_predictor_32x32_c
,
vp
9
_d45_predictor_32x32_c
,
vp
9
_d135_predictor_32x32_c
,
vp
9
_d117_predictor_32x32_c
,
vp
9
_d153_predictor_32x32_c
,
vp
9
_d207_predictor_32x32_c
,
vp
9
_d63_predictor_32x32_c
,
vp
9
_tm_predictor_32x32_c
)
INTRA_PRED_TEST
(
C
,
TestIntraPred32
,
vp
x
_dc_predictor_32x32_c
,
vp
x
_dc_left_predictor_32x32_c
,
vp
x
_dc_top_predictor_32x32_c
,
vp
x
_dc_128_predictor_32x32_c
,
vp
x
_v_predictor_32x32_c
,
vp
x
_h_predictor_32x32_c
,
vp
x
_d45_predictor_32x32_c
,
vp
x
_d135_predictor_32x32_c
,
vp
x
_d117_predictor_32x32_c
,
vp
x
_d153_predictor_32x32_c
,
vp
x
_d207_predictor_32x32_c
,
vp
x
_d63_predictor_32x32_c
,
vp
x
_tm_predictor_32x32_c
)
#if HAVE_SSE2 && CONFIG_USE_X86INC
#if ARCH_X86_64
INTRA_PRED_TEST
(
SSE2
,
TestIntraPred32
,
vp
9
_dc_predictor_32x32_sse2
,
vp
9
_dc_left_predictor_32x32_sse2
,
vp
9
_dc_top_predictor_32x32_sse2
,
vp
9
_dc_128_predictor_32x32_sse2
,
vp
9
_v_predictor_32x32_sse2
,
INTRA_PRED_TEST
(
SSE2
,
TestIntraPred32
,
vp
x
_dc_predictor_32x32_sse2
,
vp
x
_dc_left_predictor_32x32_sse2
,
vp
x
_dc_top_predictor_32x32_sse2
,
vp
x
_dc_128_predictor_32x32_sse2
,
vp
x
_v_predictor_32x32_sse2
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
vp
9
_tm_predictor_32x32_sse2
)
vp
x
_tm_predictor_32x32_sse2
)
#else
INTRA_PRED_TEST
(
SSE2
,
TestIntraPred32
,
vp
9
_dc_predictor_32x32_sse2
,
vp
9
_dc_left_predictor_32x32_sse2
,
vp
9
_dc_top_predictor_32x32_sse2
,
vp
9
_dc_128_predictor_32x32_sse2
,
vp
9
_v_predictor_32x32_sse2
,
INTRA_PRED_TEST
(
SSE2
,
TestIntraPred32
,
vp
x
_dc_predictor_32x32_sse2
,
vp
x
_dc_left_predictor_32x32_sse2
,
vp
x
_dc_top_predictor_32x32_sse2
,
vp
x
_dc_128_predictor_32x32_sse2
,
vp
x
_v_predictor_32x32_sse2
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
)
#endif // ARCH_X86_64
#endif // HAVE_SSE2 && CONFIG_USE_X86INC
#if HAVE_SSSE3 && CONFIG_USE_X86INC
INTRA_PRED_TEST
(
SSSE3
,
TestIntraPred32
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
vp
9
_h_predictor_32x32_ssse3
,
vp
9
_d45_predictor_32x32_ssse3
,
NULL
,
NULL
,
vp
9
_d153_predictor_32x32_ssse3
,
vp
9
_d207_predictor_32x32_ssse3
,
vp
9
_d63_predictor_32x32_ssse3
,
vp
x
_h_predictor_32x32_ssse3
,
vp
x
_d45_predictor_32x32_ssse3
,
NULL
,
NULL
,
vp
x
_d153_predictor_32x32_ssse3
,
vp
x
_d207_predictor_32x32_ssse3
,
vp
x
_d63_predictor_32x32_ssse3
,
NULL
)
#endif // HAVE_SSSE3 && CONFIG_USE_X86INC
#if HAVE_NEON
INTRA_PRED_TEST
(
NEON
,
TestIntraPred32
,
vp
9
_dc_predictor_32x32_neon
,
vp
9
_dc_left_predictor_32x32_neon
,
vp
9
_dc_top_predictor_32x32_neon
,
vp
9
_dc_128_predictor_32x32_neon
,
vp
9
_v_predictor_32x32_neon
,
vp
9
_h_predictor_32x32_neon
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
vp
9
_tm_predictor_32x32_neon
)
INTRA_PRED_TEST
(
NEON
,
TestIntraPred32
,
vp
x
_dc_predictor_32x32_neon
,
vp
x
_dc_left_predictor_32x32_neon
,
vp
x
_dc_top_predictor_32x32_neon
,
vp
x
_dc_128_predictor_32x32_neon
,
vp
x
_v_predictor_32x32_neon
,
vp
x
_h_predictor_32x32_neon
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
vp
x
_tm_predictor_32x32_neon
)
#endif // HAVE_NEON
#if HAVE_MSA
INTRA_PRED_TEST
(
MSA
,
TestIntraPred32
,
vp
9
_dc_predictor_32x32_msa
,
vp
9
_dc_left_predictor_32x32_msa
,
vp
9
_dc_top_predictor_32x32_msa
,
vp
9
_dc_128_predictor_32x32_msa
,
vp
9
_v_predictor_32x32_msa
,
vp
9
_h_predictor_32x32_msa
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
vp
9
_tm_predictor_32x32_msa
)
INTRA_PRED_TEST
(
MSA
,
TestIntraPred32
,
vp
x
_dc_predictor_32x32_msa
,
vp
x
_dc_left_predictor_32x32_msa
,
vp
x
_dc_top_predictor_32x32_msa
,
vp
x
_dc_128_predictor_32x32_msa
,
vp
x
_v_predictor_32x32_msa
,
vp
x
_h_predictor_32x32_msa
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
vp
x
_tm_predictor_32x32_msa
)
#endif // HAVE_MSA
#include
"test/test_libvpx.cc"
test/vp9_intrapred_test.cc
View file @
40136453
This diff is collapsed.
Click to expand it.
vp9/common/vp9_reconintra.c
View file @
40136453
...
...
@@ -66,10 +66,10 @@ static intra_high_pred_fn dc_pred_high[2][2][4];
static
void
vp9_init_intra_predictors_internal
(
void
)
{
#define INIT_ALL_SIZES(p, type) \
p[TX_4X4] = vp
9
_##type##_predictor_4x4; \
p[TX_8X8] = vp
9
_##type##_predictor_8x8; \
p[TX_16X16] = vp
9
_##type##_predictor_16x16; \
p[TX_32X32] = vp
9
_##type##_predictor_32x32
p[TX_4X4] = vp
x
_##type##_predictor_4x4; \
p[TX_8X8] = vp
x
_##type##_predictor_8x8; \
p[TX_16X16] = vp
x
_##type##_predictor_16x16; \
p[TX_32X32] = vp
x
_##type##_predictor_32x32
INIT_ALL_SIZES
(
pred
[
V_PRED
],
v
);
INIT_ALL_SIZES
(
pred
[
H_PRED
],
h
);
...
...
vpx_dsp/arm/intrapred_neon.c
View file @
40136453
...
...
@@ -59,24 +59,24 @@ static INLINE void dc_4x4(uint8_t *dst, ptrdiff_t stride,
}
}
void
vp
9
_dc_predictor_4x4_neon
(
uint8_t
*
dst
,
ptrdiff_t
stride
,
void
vp
x
_dc_predictor_4x4_neon
(
uint8_t
*
dst
,
ptrdiff_t
stride
,
const
uint8_t
*
above
,
const
uint8_t
*
left
)
{
dc_4x4
(
dst
,
stride
,
above
,
left
,
1
,
1
);
}
void
vp
9
_dc_left_predictor_4x4_neon
(
uint8_t
*
dst
,
ptrdiff_t
stride
,
void
vp
x
_dc_left_predictor_4x4_neon
(
uint8_t
*
dst
,
ptrdiff_t
stride
,
const
uint8_t
*
above
,
const
uint8_t
*
left
)
{
(
void
)
above
;
dc_4x4
(
dst
,
stride
,
NULL
,
left
,
0
,
1
);
}
void
vp
9
_dc_top_predictor_4x4_neon
(
uint8_t
*
dst
,
ptrdiff_t
stride
,
void
vp
x
_dc_top_predictor_4x4_neon
(
uint8_t
*
dst
,
ptrdiff_t
stride
,
const
uint8_t
*
above
,
const
uint8_t
*
left
)
{
(
void
)
left
;
dc_4x4
(
dst
,
stride
,
above
,
NULL
,
1
,
0
);
}
void
vp
9
_dc_128_predictor_4x4_neon
(
uint8_t
*
dst
,
ptrdiff_t
stride
,
void
vp
x
_dc_128_predictor_4x4_neon
(
uint8_t
*
dst
,
ptrdiff_t
stride
,
const
uint8_t
*
above
,
const
uint8_t
*
left
)
{
(
void
)
above
;
(
void
)
left
;
...
...
@@ -130,24 +130,24 @@ static INLINE void dc_8x8(uint8_t *dst, ptrdiff_t stride,
}
}
void
vp
9
_dc_predictor_8x8_neon
(
uint8_t
*
dst
,
ptrdiff_t
stride
,
void
vp
x
_dc_predictor_8x8_neon
(
uint8_t
*
dst
,
ptrdiff_t
stride
,
const
uint8_t
*
above
,
const
uint8_t
*
left
)
{
dc_8x8
(
dst
,
stride
,
above
,
left
,
1
,
1
);
}
void
vp
9
_dc_left_predictor_8x8_neon
(
uint8_t
*
dst
,
ptrdiff_t
stride
,
void
vp
x
_dc_left_predictor_8x8_neon
(
uint8_t
*
dst
,
ptrdiff_t
stride
,
const
uint8_t
*
above
,
const
uint8_t
*
left
)
{
(
void
)
above
;
dc_8x8
(
dst
,
stride
,
NULL
,
left
,
0
,
1
);
}
void
vp
9
_dc_top_predictor_8x8_neon
(
uint8_t
*
dst
,
ptrdiff_t
stride
,
void
vp
x
_dc_top_predictor_8x8_neon
(
uint8_t
*
dst
,
ptrdiff_t
stride
,
const
uint8_t
*
above
,
const
uint8_t
*
left
)
{
(
void
)
left
;
dc_8x8
(
dst
,
stride
,
above
,
NULL
,
1
,
0
);
}
void
vp
9
_dc_128_predictor_8x8_neon
(
uint8_t
*
dst
,
ptrdiff_t
stride
,
void
vp
x
_dc_128_predictor_8x8_neon
(
uint8_t
*
dst
,
ptrdiff_t
stride
,
const
uint8_t
*
above
,
const
uint8_t
*
left
)
{
(
void
)
above
;
(
void
)
left
;
...
...
@@ -203,26 +203,26 @@ static INLINE void dc_16x16(uint8_t *dst, ptrdiff_t stride,
}
}
void
vp
9
_dc_predictor_16x16_neon
(
uint8_t
*
dst
,
ptrdiff_t
stride
,
void
vp
x
_dc_predictor_16x16_neon
(
uint8_t
*
dst
,
ptrdiff_t
stride
,
const
uint8_t
*
above
,
const
uint8_t
*
left
)
{
dc_16x16
(
dst
,
stride
,
above
,
left
,
1
,
1
);
}
void
vp
9
_dc_left_predictor_16x16_neon
(
uint8_t
*
dst
,
ptrdiff_t
stride
,
void
vp
x
_dc_left_predictor_16x16_neon
(
uint8_t
*
dst
,
ptrdiff_t
stride
,
const
uint8_t
*
above
,
const
uint8_t
*
left
)
{
(
void
)
above
;
dc_16x16
(
dst
,
stride
,
NULL
,
left
,
0
,
1
);
}
void
vp
9
_dc_top_predictor_16x16_neon
(
uint8_t
*
dst
,
ptrdiff_t
stride
,
void
vp
x
_dc_top_predictor_16x16_neon
(
uint8_t
*
dst
,
ptrdiff_t
stride
,
const
uint8_t
*
above
,
const
uint8_t
*
left
)
{
(
void
)
left
;
dc_16x16
(
dst
,
stride
,
above
,
NULL
,
1
,
0
);
}
void
vp
9
_dc_128_predictor_16x16_neon
(
uint8_t
*
dst
,
ptrdiff_t
stride
,
void
vp
x
_dc_128_predictor_16x16_neon
(
uint8_t
*
dst
,
ptrdiff_t
stride
,
const
uint8_t
*
above
,
const
uint8_t
*
left
)
{
(
void
)
above
;
...
...
@@ -286,26 +286,26 @@ static INLINE void dc_32x32(uint8_t *dst, ptrdiff_t stride,
}
}
void
vp
9
_dc_predictor_32x32_neon
(
uint8_t
*
dst
,
ptrdiff_t
stride
,
void
vp
x
_dc_predictor_32x32_neon
(
uint8_t
*
dst
,
ptrdiff_t
stride
,
const
uint8_t
*
above
,
const
uint8_t
*
left
)
{
dc_32x32
(
dst
,
stride
,
above
,
left
,
1
,
1
);
}
void
vp
9
_dc_left_predictor_32x32_neon
(
uint8_t
*
dst
,
ptrdiff_t
stride
,
void
vp
x
_dc_left_predictor_32x32_neon
(
uint8_t
*
dst
,
ptrdiff_t
stride
,
const
uint8_t
*
above
,
const
uint8_t
*
left
)
{
(
void
)
above
;
dc_32x32
(
dst
,
stride
,
NULL
,
left
,
0
,
1
);
}
void
vp
9
_dc_top_predictor_32x32_neon
(
uint8_t
*
dst
,
ptrdiff_t
stride
,
void
vp
x
_dc_top_predictor_32x32_neon
(
uint8_t
*
dst
,
ptrdiff_t
stride
,
const
uint8_t
*
above
,
const
uint8_t
*
left
)
{
(
void
)
left
;
dc_32x32
(
dst
,
stride
,
above
,
NULL
,
1
,
0
);
}
void
vp
9
_dc_128_predictor_32x32_neon
(
uint8_t
*
dst
,
ptrdiff_t
stride
,
void
vp
x
_dc_128_predictor_32x32_neon
(
uint8_t
*
dst
,
ptrdiff_t
stride
,
const
uint8_t
*
above
,
const
uint8_t
*
left
)
{
(
void
)
above
;
...
...
@@ -315,7 +315,7 @@ void vp9_dc_128_predictor_32x32_neon(uint8_t *dst, ptrdiff_t stride,
// -----------------------------------------------------------------------------
void
vp
9
_d45_predictor_4x4_neon
(
uint8_t
*
dst
,
ptrdiff_t
stride
,
void
vp
x
_d45_predictor_4x4_neon
(
uint8_t
*
dst
,
ptrdiff_t
stride
,
const
uint8_t
*
above
,
const
uint8_t
*
left
)
{
const
uint64x1_t
A0
=
vreinterpret_u64_u8
(
vld1_u8
(
above
));
// top row
const
uint64x1_t
A1
=
vshr_n_u64
(
A0
,
8
);
...
...
@@ -338,7 +338,7 @@ void vp9_d45_predictor_4x4_neon(uint8_t *dst, ptrdiff_t stride,
dst
[
3
*
stride
+
3
]
=
above
[
7
];
}
void
vp
9
_d45_predictor_8x8_neon
(
uint8_t
*
dst
,
ptrdiff_t
stride
,
void
vp
x
_d45_predictor_8x8_neon
(
uint8_t
*
dst
,
ptrdiff_t
stride
,
const
uint8_t
*
above
,
const
uint8_t
*
left
)
{
static
const
uint8_t
shuffle1
[
8
]
=
{
1
,
2
,
3
,
4
,
5
,
6
,
7
,
7
};
static
const
uint8_t
shuffle2
[
8
]
=
{
2
,
3
,
4
,
5
,
6
,
7
,
7
,
7
};
...
...
@@ -358,7 +358,7 @@ void vp9_d45_predictor_8x8_neon(uint8_t *dst, ptrdiff_t stride,
vst1_u8
(
dst
+
i
*
stride
,
row
);
}
void
vp
9
_d45_predictor_16x16_neon
(
uint8_t
*
dst
,
ptrdiff_t
stride
,
void
vp
x
_d45_predictor_16x16_neon
(
uint8_t
*
dst
,
ptrdiff_t
stride
,
const
uint8_t
*
above
,
const
uint8_t
*
left
)
{
const
uint8x16_t
A0
=
vld1q_u8
(
above
);
// top row
const
uint8x16_t
above_right
=
vld1q_dup_u8
(
above
+
15
);
...
...
@@ -377,7 +377,7 @@ void vp9_d45_predictor_16x16_neon(uint8_t *dst, ptrdiff_t stride,
// -----------------------------------------------------------------------------
void
vp
9
_d135_predictor_4x4_neon
(
uint8_t
*
dst
,
ptrdiff_t
stride
,
void
vp
x
_d135_predictor_4x4_neon
(
uint8_t
*
dst
,
ptrdiff_t
stride
,
const
uint8_t
*
above
,
const
uint8_t
*
left
)
{
const
uint8x8_t
XABCD_u8
=
vld1_u8
(
above
-
1
);
const
uint64x1_t
XABCD
=
vreinterpret_u64_u8
(
XABCD_u8
);
...
...
@@ -407,7 +407,7 @@ void vp9_d135_predictor_4x4_neon(uint8_t *dst, ptrdiff_t stride,
#if !HAVE_NEON_ASM
void
vp
9
_v_predictor_4x4_neon
(
uint8_t
*
dst
,
ptrdiff_t
stride
,
void
vp
x
_v_predictor_4x4_neon
(
uint8_t
*
dst
,
ptrdiff_t
stride
,
const
uint8_t
*
above
,
const
uint8_t
*
left
)
{
int
i
;
uint32x2_t
d0u32
=
vdup_n_u32
(
0
);
...
...
@@ -418,7 +418,7 @@ void vp9_v_predictor_4x4_neon(uint8_t *dst, ptrdiff_t stride,
vst1_lane_u32
((
uint32_t
*
)
dst
,
d0u32
,
0
);
}
void
vp
9
_v_predictor_8x8_neon
(
uint8_t
*
dst
,
ptrdiff_t
stride
,
void
vp
x
_v_predictor_8x8_neon
(
uint8_t
*
dst
,
ptrdiff_t
stride
,
const
uint8_t
*
above
,
const
uint8_t
*
left
)
{
int
i
;
uint8x8_t
d0u8
=
vdup_n_u8
(
0
);
...
...
@@ -429,7 +429,7 @@ void vp9_v_predictor_8x8_neon(uint8_t *dst, ptrdiff_t stride,
vst1_u8
(
dst
,
d0u8
);
}
void
vp
9
_v_predictor_16x16_neon
(
uint8_t
*
dst
,
ptrdiff_t
stride
,
void
vp
x
_v_predictor_16x16_neon
(
uint8_t
*
dst
,
ptrdiff_t
stride
,
const
uint8_t
*
above
,
const
uint8_t
*
left
)
{
int
i
;
uint8x16_t
q0u8
=
vdupq_n_u8
(
0
);
...
...
@@ -440,7 +440,7 @@ void vp9_v_predictor_16x16_neon(uint8_t *dst, ptrdiff_t stride,
vst1q_u8
(
dst
,
q0u8
);
}
void
vp
9
_v_predictor_32x32_neon
(
uint8_t
*
dst
,
ptrdiff_t
stride
,
void
vp
x
_v_predictor_32x32_neon
(
uint8_t
*
dst
,
ptrdiff_t
stride
,
const
uint8_t
*
above
,
const
uint8_t
*
left
)
{
int
i
;
uint8x16_t
q0u8
=
vdupq_n_u8
(
0
);
...
...
@@ -455,7 +455,7 @@ void vp9_v_predictor_32x32_neon(uint8_t *dst, ptrdiff_t stride,
}
}
void
vp
9
_h_predictor_4x4_neon
(
uint8_t
*
dst
,
ptrdiff_t
stride
,
void
vp
x
_h_predictor_4x4_neon
(
uint8_t
*
dst
,
ptrdiff_t
stride
,
const
uint8_t
*
above
,
const
uint8_t
*
left
)
{
uint8x8_t
d0u8
=
vdup_n_u8
(
0
);
uint32x2_t
d1u32
=
vdup_n_u32
(
0
);
...
...
@@ -476,7 +476,7 @@ void vp9_h_predictor_4x4_neon(uint8_t *dst, ptrdiff_t stride,
vst1_lane_u32
((
uint32_t
*
)
dst
,
vreinterpret_u32_u8
(
d0u8
),
0
);
}
void
vp
9
_h_predictor_8x8_neon
(
uint8_t
*
dst
,
ptrdiff_t
stride
,
void
vp
x
_h_predictor_8x8_neon
(
uint8_t
*
dst
,
ptrdiff_t
stride
,
const
uint8_t
*
above
,
const
uint8_t
*
left
)
{
uint8x8_t
d0u8
=
vdup_n_u8
(
0
);
uint64x1_t
d1u64
=
vdup_n_u64
(
0
);
...
...
@@ -509,7 +509,7 @@ void vp9_h_predictor_8x8_neon(uint8_t *dst, ptrdiff_t stride,
vst1_u8
(
dst
,
d0u8
);
}
void
vp
9
_h_predictor_16x16_neon
(
uint8_t
*
dst
,
ptrdiff_t
stride
,
void
vp
x
_h_predictor_16x16_neon
(
uint8_t
*
dst
,
ptrdiff_t
stride
,
const
uint8_t
*
above
,
const
uint8_t
*
left
)
{
int
j
;
uint8x8_t
d2u8
=
vdup_n_u8
(
0
);
...
...
@@ -547,7 +547,7 @@ void vp9_h_predictor_16x16_neon(uint8_t *dst, ptrdiff_t stride,
}
}
void
vp
9
_h_predictor_32x32_neon
(
uint8_t
*
dst
,
ptrdiff_t
stride
,
void
vp
x
_h_predictor_32x32_neon
(
uint8_t
*
dst
,
ptrdiff_t
stride
,
const
uint8_t
*
above
,
const
uint8_t
*
left
)
{
int
j
,
k
;
uint8x8_t
d2u8
=
vdup_n_u8
(
0
);
...
...
@@ -595,7 +595,7 @@ void vp9_h_predictor_32x32_neon(uint8_t *dst, ptrdiff_t stride,
}
}