Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
7
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Open sidebar
Xiph.Org
aom-rav1e
Commits
0d515b29
Commit
0d515b29
authored
Sep 01, 2016
by
Urvang Joshi
Committed by
Gerrit Code Review
Sep 01, 2016
Browse files
Options
Browse Files
Download
Plain Diff
Merge "Add ALT_INTRA experiment." into nextgenv2
parents
f7ae12d7
340593e5
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
256 additions
and
40 deletions
+256
-40
aom_dsp/aom_dsp_rtcd_defs.pl
aom_dsp/aom_dsp_rtcd_defs.pl
+51
-16
aom_dsp/intrapred.c
aom_dsp/intrapred.c
+52
-0
av1/common/reconintra.c
av1/common/reconintra.c
+10
-0
configure
configure
+1
-0
test/intrapred_test.cc
test/intrapred_test.cc
+25
-6
test/test_intra_pred_speed.cc
test/test_intra_pred_speed.cc
+117
-18
No files found.
aom_dsp/aom_dsp_rtcd_defs.pl
View file @
0d515b29
...
...
@@ -86,8 +86,12 @@ specialize qw/aom_v_predictor_4x4 neon msa sse2/;
add_proto
qw/void aom_ve_predictor_4x4/
,
"
uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left
";
specialize
qw/aom_ve_predictor_4x4/
;
add_proto
qw/void aom_tm_predictor_4x4/
,
"
uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left
";
specialize
qw/aom_tm_predictor_4x4 neon dspr2 msa sse2/
;
if
((
aom_config
("
CONFIG_ALT_INTRA
")
eq
"
yes
"))
{
add_proto
qw/void aom_paeth_predictor_4x4/
,
"
uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left
";
}
else
{
add_proto
qw/void aom_tm_predictor_4x4/
,
"
uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left
";
specialize
qw/aom_tm_predictor_4x4 neon dspr2 msa sse2/
;
}
# CONFIG_ALT_INTRA
add_proto
qw/void aom_dc_predictor_4x4/
,
"
uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left
";
specialize
qw/aom_dc_predictor_4x4 dspr2 msa neon sse2/
;
...
...
@@ -134,8 +138,12 @@ specialize qw/aom_d153_predictor_8x8 ssse3/;
add_proto
qw/void aom_v_predictor_8x8/
,
"
uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left
";
specialize
qw/aom_v_predictor_8x8 neon msa sse2/
;
add_proto
qw/void aom_tm_predictor_8x8/
,
"
uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left
";
specialize
qw/aom_tm_predictor_8x8 neon dspr2 msa sse2/
;
if
((
aom_config
("
CONFIG_ALT_INTRA
")
eq
"
yes
"))
{
add_proto
qw/void aom_paeth_predictor_8x8/
,
"
uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left
";
}
else
{
add_proto
qw/void aom_tm_predictor_8x8/
,
"
uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left
";
specialize
qw/aom_tm_predictor_8x8 neon dspr2 msa sse2/
;
}
# CONFIG_ALT_INTRA
add_proto
qw/void aom_dc_predictor_8x8/
,
"
uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left
";
specialize
qw/aom_dc_predictor_8x8 dspr2 neon msa sse2/
;
...
...
@@ -182,8 +190,13 @@ specialize qw/aom_d153_predictor_16x16 ssse3/;
add_proto
qw/void aom_v_predictor_16x16/
,
"
uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left
";
specialize
qw/aom_v_predictor_16x16 neon msa sse2/
;
add_proto
qw/void aom_tm_predictor_16x16/
,
"
uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left
";
specialize
qw/aom_tm_predictor_16x16 neon msa sse2/
;
if
((
aom_config
("
CONFIG_ALT_INTRA
")
eq
"
yes
"))
{
add_proto
qw/void aom_paeth_predictor_16x16/
,
"
uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left
";
}
else
{
add_proto
qw/void aom_tm_predictor_16x16/
,
"
uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left
";
specialize
qw/aom_tm_predictor_16x16 neon msa sse2/
;
}
# CONFIG_ALT_INTRA
add_proto
qw/void aom_dc_predictor_16x16/
,
"
uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left
";
specialize
qw/aom_dc_predictor_16x16 dspr2 neon msa sse2/
;
...
...
@@ -230,8 +243,13 @@ specialize qw/aom_d153_predictor_32x32 ssse3/;
add_proto
qw/void aom_v_predictor_32x32/
,
"
uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left
";
specialize
qw/aom_v_predictor_32x32 neon msa sse2/
;
add_proto
qw/void aom_tm_predictor_32x32/
,
"
uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left
";
specialize
qw/aom_tm_predictor_32x32 neon msa sse2/
;
if
((
aom_config
("
CONFIG_ALT_INTRA
")
eq
"
yes
"))
{
add_proto
qw/void aom_paeth_predictor_32x32/
,
"
uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left
";
}
else
{
add_proto
qw/void aom_tm_predictor_32x32/
,
"
uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left
";
specialize
qw/aom_tm_predictor_32x32 neon msa sse2/
;
}
# CONFIG_ALT_INTRA
add_proto
qw/void aom_dc_predictor_32x32/
,
"
uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left
";
specialize
qw/aom_dc_predictor_32x32 msa neon sse2/
;
...
...
@@ -280,8 +298,13 @@ if (aom_config("CONFIG_AOM_HIGHBITDEPTH") eq "yes") {
add_proto
qw/void aom_highbd_v_predictor_4x4/
,
"
uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd
";
specialize
qw/aom_highbd_v_predictor_4x4 sse2/
;
add_proto
qw/void aom_highbd_tm_predictor_4x4/
,
"
uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd
";
specialize
qw/aom_highbd_tm_predictor_4x4 sse2/
;
if
((
aom_config
("
CONFIG_ALT_INTRA
")
eq
"
yes
"))
{
add_proto
qw/void aom_highbd_paeth_predictor_4x4/
,
"
uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd
";
}
else
{
add_proto
qw/void aom_highbd_tm_predictor_4x4/
,
"
uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd
";
specialize
qw/aom_highbd_tm_predictor_4x4 sse2/
;
}
# CONFIG_ALT_INTRA
add_proto
qw/void aom_highbd_dc_predictor_4x4/
,
"
uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd
";
specialize
qw/aom_highbd_dc_predictor_4x4 sse2/
;
...
...
@@ -328,8 +351,12 @@ if (aom_config("CONFIG_AOM_HIGHBITDEPTH") eq "yes") {
add_proto
qw/void aom_highbd_v_predictor_8x8/
,
"
uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd
";
specialize
qw/aom_highbd_v_predictor_8x8 sse2/
;
add_proto
qw/void aom_highbd_tm_predictor_8x8/
,
"
uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd
";
specialize
qw/aom_highbd_tm_predictor_8x8 sse2/
;
if
((
aom_config
("
CONFIG_ALT_INTRA
")
eq
"
yes
"))
{
add_proto
qw/void aom_highbd_paeth_predictor_8x8/
,
"
uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd
";
}
else
{
add_proto
qw/void aom_highbd_tm_predictor_8x8/
,
"
uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd
";
specialize
qw/aom_highbd_tm_predictor_8x8 sse2/
;
}
# CONFIG_ALT_INTRA
add_proto
qw/void aom_highbd_dc_predictor_8x8/
,
"
uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd
";
specialize
qw/aom_highbd_dc_predictor_8x8 sse2/
;;
...
...
@@ -376,8 +403,12 @@ if (aom_config("CONFIG_AOM_HIGHBITDEPTH") eq "yes") {
add_proto
qw/void aom_highbd_v_predictor_16x16/
,
"
uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd
";
specialize
qw/aom_highbd_v_predictor_16x16 sse2/
;
add_proto
qw/void aom_highbd_tm_predictor_16x16/
,
"
uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd
";
specialize
qw/aom_highbd_tm_predictor_16x16 sse2/
;
if
((
aom_config
("
CONFIG_ALT_INTRA
")
eq
"
yes
"))
{
add_proto
qw/void aom_highbd_paeth_predictor_16x16/
,
"
uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd
";
}
else
{
add_proto
qw/void aom_highbd_tm_predictor_16x16/
,
"
uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd
";
specialize
qw/aom_highbd_tm_predictor_16x16 sse2/
;
}
# CONFIG_ALT_INTRA
add_proto
qw/void aom_highbd_dc_predictor_16x16/
,
"
uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd
";
specialize
qw/aom_highbd_dc_predictor_16x16 sse2/
;
...
...
@@ -424,8 +455,12 @@ if (aom_config("CONFIG_AOM_HIGHBITDEPTH") eq "yes") {
add_proto
qw/void aom_highbd_v_predictor_32x32/
,
"
uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd
";
specialize
qw/aom_highbd_v_predictor_32x32 sse2/
;
add_proto
qw/void aom_highbd_tm_predictor_32x32/
,
"
uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd
";
specialize
qw/aom_highbd_tm_predictor_32x32 sse2/
;
if
((
aom_config
("
CONFIG_ALT_INTRA
")
eq
"
yes
"))
{
add_proto
qw/void aom_highbd_paeth_predictor_32x32/
,
"
uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd
";
}
else
{
add_proto
qw/void aom_highbd_tm_predictor_32x32/
,
"
uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd
";
specialize
qw/aom_highbd_tm_predictor_32x32 sse2/
;
}
# CONFIG_ALT_INTRA
add_proto
qw/void aom_highbd_dc_predictor_32x32/
,
"
uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd
";
specialize
qw/aom_highbd_dc_predictor_32x32 sse2/
;
...
...
aom_dsp/intrapred.c
View file @
0d515b29
...
...
@@ -218,6 +218,36 @@ static INLINE void h_predictor(uint8_t *dst, ptrdiff_t stride, int bs,
}
}
#if CONFIG_ALT_INTRA
static
INLINE
int
abs_diff
(
int
a
,
int
b
)
{
return
(
a
>
b
)
?
a
-
b
:
b
-
a
;
}
static
INLINE
uint16_t
paeth_predictor_single
(
uint16_t
left
,
uint16_t
top
,
uint16_t
top_left
)
{
const
int
base
=
top
+
left
-
top_left
;
const
int
p_left
=
abs_diff
(
base
,
left
);
const
int
p_top
=
abs_diff
(
base
,
top
);
const
int
p_top_left
=
abs_diff
(
base
,
top_left
);
// Return nearest to base of left, top and top_left.
return
(
p_left
<=
p_top
&&
p_left
<=
p_top_left
)
?
left
:
(
p_top
<=
p_top_left
)
?
top
:
top_left
;
}
static
INLINE
void
paeth_predictor
(
uint8_t
*
dst
,
ptrdiff_t
stride
,
int
bs
,
const
uint8_t
*
above
,
const
uint8_t
*
left
)
{
int
r
,
c
;
const
uint8_t
ytop_left
=
above
[
-
1
];
for
(
r
=
0
;
r
<
bs
;
r
++
)
{
for
(
c
=
0
;
c
<
bs
;
c
++
)
dst
[
c
]
=
(
uint8_t
)
paeth_predictor_single
(
left
[
r
],
above
[
c
],
ytop_left
);
dst
+=
stride
;
}
}
#else
static
INLINE
void
tm_predictor
(
uint8_t
*
dst
,
ptrdiff_t
stride
,
int
bs
,
const
uint8_t
*
above
,
const
uint8_t
*
left
)
{
int
r
,
c
;
...
...
@@ -229,6 +259,7 @@ static INLINE void tm_predictor(uint8_t *dst, ptrdiff_t stride, int bs,
dst
+=
stride
;
}
}
#endif // CONFIG_ALT_INTRA
static
INLINE
void
dc_128_predictor
(
uint8_t
*
dst
,
ptrdiff_t
stride
,
int
bs
,
const
uint8_t
*
above
,
const
uint8_t
*
left
)
{
...
...
@@ -688,6 +719,22 @@ static INLINE void highbd_h_predictor(uint16_t *dst, ptrdiff_t stride, int bs,
}
}
#if CONFIG_ALT_INTRA
static
INLINE
void
highbd_paeth_predictor
(
uint16_t
*
dst
,
ptrdiff_t
stride
,
int
bs
,
const
uint16_t
*
above
,
const
uint16_t
*
left
,
int
bd
)
{
int
r
,
c
;
const
uint16_t
ytop_left
=
above
[
-
1
];
(
void
)
bd
;
for
(
r
=
0
;
r
<
bs
;
r
++
)
{
for
(
c
=
0
;
c
<
bs
;
c
++
)
dst
[
c
]
=
paeth_predictor_single
(
left
[
r
],
above
[
c
],
ytop_left
);
dst
+=
stride
;
}
}
#else
static
INLINE
void
highbd_tm_predictor
(
uint16_t
*
dst
,
ptrdiff_t
stride
,
int
bs
,
const
uint16_t
*
above
,
const
uint16_t
*
left
,
int
bd
)
{
...
...
@@ -701,6 +748,7 @@ static INLINE void highbd_tm_predictor(uint16_t *dst, ptrdiff_t stride, int bs,
dst
+=
stride
;
}
}
#endif // CONFIG_ALT_INTRA
static
INLINE
void
highbd_dc_128_predictor
(
uint16_t
*
dst
,
ptrdiff_t
stride
,
int
bs
,
const
uint16_t
*
above
,
...
...
@@ -830,7 +878,11 @@ intra_pred_no_4x4(d135)
intra_pred_no_4x4
(
d153
)
intra_pred_allsizes
(
v
)
intra_pred_allsizes
(
h
)
#if CONFIG_ALT_INTRA
intra_pred_allsizes
(
paeth
)
#else
intra_pred_allsizes
(
tm
)
#endif // CONFIG_ALT_INTRA
intra_pred_allsizes
(
dc_128
)
intra_pred_allsizes
(
dc_left
)
intra_pred_allsizes
(
dc_top
)
...
...
av1/common/reconintra.c
View file @
0d515b29
...
...
@@ -335,7 +335,12 @@ static void av1_init_intra_predictors_internal(void) {
INIT_ALL_SIZES
(
pred
[
D117_PRED
],
d117
);
INIT_ALL_SIZES
(
pred
[
D135_PRED
],
d135
);
INIT_ALL_SIZES
(
pred
[
D153_PRED
],
d153
);
#if CONFIG_ALT_INTRA
INIT_ALL_SIZES
(
pred
[
TM_PRED
],
paeth
);
#else
INIT_ALL_SIZES
(
pred
[
TM_PRED
],
tm
);
#endif // CONFIG_ALT_INTRA
INIT_ALL_SIZES
(
dc_pred
[
0
][
0
],
dc_128
);
INIT_ALL_SIZES
(
dc_pred
[
0
][
1
],
dc_top
);
...
...
@@ -351,7 +356,12 @@ static void av1_init_intra_predictors_internal(void) {
INIT_ALL_SIZES
(
pred_high
[
D117_PRED
],
highbd_d117
);
INIT_ALL_SIZES
(
pred_high
[
D135_PRED
],
highbd_d135
);
INIT_ALL_SIZES
(
pred_high
[
D153_PRED
],
highbd_d153
);
#if CONFIG_ALT_INTRA
INIT_ALL_SIZES
(
pred_high
[
TM_PRED
],
highbd_paeth
);
#else
INIT_ALL_SIZES
(
pred_high
[
TM_PRED
],
highbd_tm
);
#endif // CONFIG_ALT_INTRA
INIT_ALL_SIZES
(
dc_pred_high
[
0
][
0
],
highbd_dc_128
);
INIT_ALL_SIZES
(
dc_pred_high
[
0
][
1
],
highbd_dc_top
);
...
...
configure
View file @
0d515b29
...
...
@@ -276,6 +276,7 @@ EXPERIMENT_LIST="
entropy
bidir_pred
bitstream_debug
alt_intra
"
CONFIG_LIST
=
"
dependency_tracking
...
...
test/intrapred_test.cc
View file @
0d515b29
...
...
@@ -129,10 +129,13 @@ INSTANTIATE_TEST_CASE_P(
SSE2_TO_C_8
,
AV1IntraPredTest
,
::
testing
::
Values
(
IntraPredFunc
(
&
aom_highbd_dc_predictor_32x32_sse2
,
&
aom_highbd_dc_predictor_32x32_c
,
32
,
8
),
#if !CONFIG_ALT_INTRA
IntraPredFunc
(
&
aom_highbd_tm_predictor_16x16_sse2
,
&
aom_highbd_tm_predictor_16x16_c
,
16
,
8
),
IntraPredFunc
(
&
aom_highbd_tm_predictor_32x32_sse2
,
&
aom_highbd_tm_predictor_32x32_c
,
32
,
8
),
#endif // !CONFIG_ALT_INTRA
IntraPredFunc
(
&
aom_highbd_dc_predictor_4x4_sse2
,
&
aom_highbd_dc_predictor_4x4_c
,
4
,
8
),
IntraPredFunc
(
&
aom_highbd_dc_predictor_8x8_sse2
,
...
...
@@ -146,20 +149,26 @@ INSTANTIATE_TEST_CASE_P(
IntraPredFunc
(
&
aom_highbd_v_predictor_16x16_sse2
,
&
aom_highbd_v_predictor_16x16_c
,
16
,
8
),
IntraPredFunc
(
&
aom_highbd_v_predictor_32x32_sse2
,
&
aom_highbd_v_predictor_32x32_c
,
32
,
8
),
&
aom_highbd_v_predictor_32x32_c
,
32
,
8
)
#if !CONFIG_ALT_INTRA
,
IntraPredFunc
(
&
aom_highbd_tm_predictor_4x4_sse2
,
&
aom_highbd_tm_predictor_4x4_c
,
4
,
8
),
IntraPredFunc
(
&
aom_highbd_tm_predictor_8x8_sse2
,
&
aom_highbd_tm_predictor_8x8_c
,
8
,
8
)));
&
aom_highbd_tm_predictor_8x8_c
,
8
,
8
)
#endif // !CONFIG_ALT_INTRA
));
INSTANTIATE_TEST_CASE_P
(
SSE2_TO_C_10
,
AV1IntraPredTest
,
::
testing
::
Values
(
IntraPredFunc
(
&
aom_highbd_dc_predictor_32x32_sse2
,
&
aom_highbd_dc_predictor_32x32_c
,
32
,
10
),
#if !CONFIG_ALT_INTRA
IntraPredFunc
(
&
aom_highbd_tm_predictor_16x16_sse2
,
&
aom_highbd_tm_predictor_16x16_c
,
16
,
10
),
IntraPredFunc
(
&
aom_highbd_tm_predictor_32x32_sse2
,
&
aom_highbd_tm_predictor_32x32_c
,
32
,
10
),
#endif // !CONFIG_ALT_INTRA
IntraPredFunc
(
&
aom_highbd_dc_predictor_4x4_sse2
,
&
aom_highbd_dc_predictor_4x4_c
,
4
,
10
),
IntraPredFunc
(
&
aom_highbd_dc_predictor_8x8_sse2
,
...
...
@@ -173,20 +182,26 @@ INSTANTIATE_TEST_CASE_P(
IntraPredFunc
(
&
aom_highbd_v_predictor_16x16_sse2
,
&
aom_highbd_v_predictor_16x16_c
,
16
,
10
),
IntraPredFunc
(
&
aom_highbd_v_predictor_32x32_sse2
,
&
aom_highbd_v_predictor_32x32_c
,
32
,
10
),
&
aom_highbd_v_predictor_32x32_c
,
32
,
10
)
#if !CONFIG_ALT_INTRA
,
IntraPredFunc
(
&
aom_highbd_tm_predictor_4x4_sse2
,
&
aom_highbd_tm_predictor_4x4_c
,
4
,
10
),
IntraPredFunc
(
&
aom_highbd_tm_predictor_8x8_sse2
,
&
aom_highbd_tm_predictor_8x8_c
,
8
,
10
)));
&
aom_highbd_tm_predictor_8x8_c
,
8
,
10
)
#endif // !CONFIG_ALT_INTRA
));
INSTANTIATE_TEST_CASE_P
(
SSE2_TO_C_12
,
AV1IntraPredTest
,
::
testing
::
Values
(
IntraPredFunc
(
&
aom_highbd_dc_predictor_32x32_sse2
,
&
aom_highbd_dc_predictor_32x32_c
,
32
,
12
),
#if !CONFIG_ALT_INTRA
IntraPredFunc
(
&
aom_highbd_tm_predictor_16x16_sse2
,
&
aom_highbd_tm_predictor_16x16_c
,
16
,
12
),
IntraPredFunc
(
&
aom_highbd_tm_predictor_32x32_sse2
,
&
aom_highbd_tm_predictor_32x32_c
,
32
,
12
),
#endif // !CONFIG_ALT_INTRA
IntraPredFunc
(
&
aom_highbd_dc_predictor_4x4_sse2
,
&
aom_highbd_dc_predictor_4x4_c
,
4
,
12
),
IntraPredFunc
(
&
aom_highbd_dc_predictor_8x8_sse2
,
...
...
@@ -200,11 +215,15 @@ INSTANTIATE_TEST_CASE_P(
IntraPredFunc
(
&
aom_highbd_v_predictor_16x16_sse2
,
&
aom_highbd_v_predictor_16x16_c
,
16
,
12
),
IntraPredFunc
(
&
aom_highbd_v_predictor_32x32_sse2
,
&
aom_highbd_v_predictor_32x32_c
,
32
,
12
),
&
aom_highbd_v_predictor_32x32_c
,
32
,
12
)
#if !CONFIG_ALT_INTRA
,
IntraPredFunc
(
&
aom_highbd_tm_predictor_4x4_sse2
,
&
aom_highbd_tm_predictor_4x4_c
,
4
,
12
),
IntraPredFunc
(
&
aom_highbd_tm_predictor_8x8_sse2
,
&
aom_highbd_tm_predictor_8x8_c
,
8
,
12
)));
&
aom_highbd_tm_predictor_8x8_c
,
8
,
12
)
#endif // !CONFIG_ALT_INTRA
));
#endif // CONFIG_AOM_HIGHBITDEPTH
#endif // HAVE_SSE2
...
...
test/test_intra_pred_speed.cc
View file @
0d515b29
...
...
@@ -161,7 +161,13 @@ INTRA_PRED_TEST(C, TestIntraPred4, aom_dc_predictor_4x4_c,
aom_h_predictor_4x4_c
,
aom_d45_predictor_4x4_c
,
aom_d135_predictor_4x4_c
,
aom_d117_predictor_4x4_c
,
aom_d153_predictor_4x4_c
,
aom_d207_predictor_4x4_c
,
aom_d63_predictor_4x4_c
,
aom_tm_predictor_4x4_c
)
aom_d63_predictor_4x4_c
,
#if CONFIG_ALT_INTRA
aom_paeth_predictor_4x4_c
#else
aom_tm_predictor_4x4_c
#endif // CONFIG_ALT_INTRA
)
#if HAVE_SSE2
INTRA_PRED_TEST
(
SSE2
,
TestIntraPred4
,
aom_dc_predictor_4x4_sse2
,
...
...
@@ -169,7 +175,12 @@ INTRA_PRED_TEST(SSE2, TestIntraPred4, aom_dc_predictor_4x4_sse2,
aom_dc_128_predictor_4x4_sse2
,
aom_v_predictor_4x4_sse2
,
aom_h_predictor_4x4_sse2
,
aom_d45_predictor_4x4_sse2
,
NULL
,
NULL
,
NULL
,
aom_d207_predictor_4x4_sse2
,
NULL
,
aom_tm_predictor_4x4_sse2
)
#if CONFIG_ALT_INTRA
NULL
#else
aom_tm_predictor_4x4_sse2
#endif // CONFIG_ALT_INTRA
)
#endif // HAVE_SSE2
#if HAVE_SSSE3
...
...
@@ -181,7 +192,13 @@ INTRA_PRED_TEST(SSSE3, TestIntraPred4, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
#if HAVE_DSPR2
INTRA_PRED_TEST
(
DSPR2
,
TestIntraPred4
,
aom_dc_predictor_4x4_dspr2
,
NULL
,
NULL
,
NULL
,
NULL
,
aom_h_predictor_4x4_dspr2
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
aom_tm_predictor_4x4_dspr2
)
NULL
,
NULL
,
#if CONFIG_ALT_INTRA
NULL
#else
aom_tm_predictor_4x4_dspr2
#endif // CONFIG_ALT_INTRA
)
#endif // HAVE_DSPR2
#if HAVE_NEON
...
...
@@ -190,7 +207,12 @@ INTRA_PRED_TEST(NEON, TestIntraPred4, aom_dc_predictor_4x4_neon,
aom_dc_128_predictor_4x4_neon
,
aom_v_predictor_4x4_neon
,
aom_h_predictor_4x4_neon
,
aom_d45_predictor_4x4_neon
,
aom_d135_predictor_4x4_neon
,
NULL
,
NULL
,
NULL
,
NULL
,
aom_tm_predictor_4x4_neon
)
#if CONFIG_ALT_INTRA
NULL
#else
aom_tm_predictor_4x4_neon
#endif // CONFIG_ALT_INTRA
)
#endif // HAVE_NEON
#if HAVE_MSA
...
...
@@ -198,7 +220,12 @@ INTRA_PRED_TEST(MSA, TestIntraPred4, aom_dc_predictor_4x4_msa,
aom_dc_left_predictor_4x4_msa
,
aom_dc_top_predictor_4x4_msa
,
aom_dc_128_predictor_4x4_msa
,
aom_v_predictor_4x4_msa
,
aom_h_predictor_4x4_msa
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
aom_tm_predictor_4x4_msa
)
#if CONFIG_ALT_INTRA
NULL
#else
aom_tm_predictor_4x4_msa
#endif // CONFIG_ALT_INTRA
)
#endif // HAVE_MSA
// -----------------------------------------------------------------------------
...
...
@@ -210,14 +237,26 @@ INTRA_PRED_TEST(C, TestIntraPred8, aom_dc_predictor_8x8_c,
aom_h_predictor_8x8_c
,
aom_d45_predictor_8x8_c
,
aom_d135_predictor_8x8_c
,
aom_d117_predictor_8x8_c
,
aom_d153_predictor_8x8_c
,
aom_d207_predictor_8x8_c
,
aom_d63_predictor_8x8_c
,
aom_tm_predictor_8x8_c
)
aom_d63_predictor_8x8_c
,
#if CONFIG_ALT_INTRA
aom_paeth_predictor_8x8_c
#else
aom_tm_predictor_8x8_c
#endif // CONFIG_ALT_INTRA
)
#if HAVE_SSE2
INTRA_PRED_TEST
(
SSE2
,
TestIntraPred8
,
aom_dc_predictor_8x8_sse2
,
aom_dc_left_predictor_8x8_sse2
,
aom_dc_top_predictor_8x8_sse2
,
aom_dc_128_predictor_8x8_sse2
,
aom_v_predictor_8x8_sse2
,
aom_h_predictor_8x8_sse2
,
aom_d45_predictor_8x8_sse2
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
aom_tm_predictor_8x8_sse2
)
NULL
,
NULL
,
NULL
,
NULL
,
#if CONFIG_ALT_INTRA
NULL
#else
aom_tm_predictor_8x8_sse2
#endif // CONFIG_ALT_INTRA
)
#endif // HAVE_SSE2
#if HAVE_SSSE3
...
...
@@ -229,7 +268,13 @@ INTRA_PRED_TEST(SSSE3, TestIntraPred8, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
#if HAVE_DSPR2
INTRA_PRED_TEST
(
DSPR2
,
TestIntraPred8
,
aom_dc_predictor_8x8_dspr2
,
NULL
,
NULL
,
NULL
,
NULL
,
aom_h_predictor_8x8_dspr2
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
aom_tm_predictor_8x8_dspr2
)
NULL
,
NULL
,
#if CONFIG_ALT_INTRA
NULL
#else
aom_tm_predictor_8x8_dspr2
#endif // CONFIG_ALT_INTRA
)
#endif // HAVE_DSPR2
#if HAVE_NEON
...
...
@@ -237,7 +282,13 @@ INTRA_PRED_TEST(NEON, TestIntraPred8, aom_dc_predictor_8x8_neon,
aom_dc_left_predictor_8x8_neon
,
aom_dc_top_predictor_8x8_neon
,
aom_dc_128_predictor_8x8_neon
,
aom_v_predictor_8x8_neon
,
aom_h_predictor_8x8_neon
,
aom_d45_predictor_8x8_neon
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
aom_tm_predictor_8x8_neon
)
NULL
,
NULL
,
NULL
,
NULL
,
#if CONFIG_ALT_INTRA
NULL
#else
aom_tm_predictor_8x8_neon
#endif // CONFIG_ALT_INTRA
)
#endif // HAVE_NEON
...
...
@@ -246,7 +297,12 @@ INTRA_PRED_TEST(MSA, TestIntraPred8, aom_dc_predictor_8x8_msa,
aom_dc_left_predictor_8x8_msa
,
aom_dc_top_predictor_8x8_msa
,
aom_dc_128_predictor_8x8_msa
,
aom_v_predictor_8x8_msa
,
aom_h_predictor_8x8_msa
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
aom_tm_predictor_8x8_msa
)
#if CONFIG_ALT_INTRA
NULL
#else
aom_tm_predictor_8x8_msa
#endif // CONFIG_ALT_INTRA
)
#endif // HAVE_MSA
// -----------------------------------------------------------------------------
...
...
@@ -258,7 +314,13 @@ INTRA_PRED_TEST(C, TestIntraPred16, aom_dc_predictor_16x16_c,
aom_h_predictor_16x16_c
,
aom_d45_predictor_16x16_c
,
aom_d135_predictor_16x16_c
,
aom_d117_predictor_16x16_c
,
aom_d153_predictor_16x16_c
,
aom_d207_predictor_16x16_c
,
aom_d63_predictor_16x16_c
,
aom_tm_predictor_16x16_c
)
aom_d63_predictor_16x16_c
,
#if CONFIG_ALT_INTRA
aom_paeth_predictor_16x16_c
#else
aom_tm_predictor_16x16_c
#endif // CONFIG_ALT_INTRA
)
#if HAVE_SSE2
INTRA_PRED_TEST
(
SSE2
,
TestIntraPred16
,
aom_dc_predictor_16x16_sse2
,
...
...
@@ -266,7 +328,12 @@ INTRA_PRED_TEST(SSE2, TestIntraPred16, aom_dc_predictor_16x16_sse2,
aom_dc_top_predictor_16x16_sse2
,
aom_dc_128_predictor_16x16_sse2
,
aom_v_predictor_16x16_sse2
,
aom_h_predictor_16x16_sse2
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
aom_tm_predictor_16x16_sse2
)
#if CONFIG_ALT_INTRA
NULL
#else
aom_tm_predictor_16x16_sse2
#endif // CONFIG_ALT_INTRA
)
#endif // HAVE_SSE2
#if HAVE_SSSE3
...
...
@@ -288,7 +355,13 @@ INTRA_PRED_TEST(NEON, TestIntraPred16, aom_dc_predictor_16x16_neon,
aom_dc_top_predictor_16x16_neon
,
aom_dc_128_predictor_16x16_neon
,
aom_v_predictor_16x16_neon
,
aom_h_predictor_16x16_neon
,
aom_d45_predictor_16x16_neon
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
aom_tm_predictor_16x16_neon
)
NULL
,
NULL
,
NULL
,
NULL
,
#if CONFIG_ALT_INTRA
NULL
#else
aom_tm_predictor_16x16_neon
#endif // CONFIG_ALT_INTRA
)
#endif // HAVE_NEON
#if HAVE_MSA
...
...
@@ -296,7 +369,12 @@ INTRA_PRED_TEST(MSA, TestIntraPred16, aom_dc_predictor_16x16_msa,
aom_dc_left_predictor_16x16_msa
,
aom_dc_top_predictor_16x16_msa
,
aom_dc_128_predictor_16x16_msa
,
aom_v_predictor_16x16_msa
,
aom_h_predictor_16x16_msa
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
aom_tm_predictor_16x16_msa
)
#if CONFIG_ALT_INTRA
NULL
#else
aom_tm_predictor_16x16_msa
#endif // CONFIG_ALT_INTRA
)
#endif // HAVE_MSA
// -----------------------------------------------------------------------------
...
...
@@ -308,7 +386,13 @@ INTRA_PRED_TEST(C, TestIntraPred32, aom_dc_predictor_32x32_c,
aom_h_predictor_32x32_c
,
aom_d45_predictor_32x32_c
,
aom_d135_predictor_32x32_c
,
aom_d117_predictor_32x32_c
,
aom_d153_predictor_32x32_c
,
aom_d207_predictor_32x32_c
,
aom_d63_predictor_32x32_c
,
aom_tm_predictor_32x32_c
)
aom_d63_predictor_32x32_c
,
#if CONFIG_ALT_INTRA
aom_paeth_predictor_32x32_c
#else
aom_tm_predictor_32x32_c
#endif // CONFIG_ALT_INTRA
)
#if HAVE_SSE2
INTRA_PRED_TEST
(
SSE2
,
TestIntraPred32
,
aom_dc_predictor_32x32_sse2
,
...
...
@@ -316,7 +400,12 @@ INTRA_PRED_TEST(SSE2, TestIntraPred32, aom_dc_predictor_32x32_sse2,
aom_dc_top_predictor_32x32_sse2
,
aom_dc_128_predictor_32x32_sse2
,
aom_v_predictor_32x32_sse2
,
aom_h_predictor_32x32_sse2
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
aom_tm_predictor_32x32_sse2
)
#if CONFIG_ALT_INTRA
NULL
#else
aom_tm_predictor_32x32_sse2
#endif // CONFIG_ALT_INTRA
)
#endif // HAVE_SSE2
#if HAVE_SSSE3
...
...
@@ -332,7 +421,12 @@ INTRA_PRED_TEST(NEON, TestIntraPred32, aom_dc_predictor_32x32_neon,
aom_dc_top_predictor_32x32_neon
,
aom_dc_128_predictor_32x32_neon
,
aom_v_predictor_32x32_neon
,
aom_h_predictor_32x32_neon
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
aom_tm_predictor_32x32_neon
)
#if CONFIG_ALT_INTRA
NULL
#else
aom_tm_predictor_32x32_neon
#endif // CONFIG_ALT_INTRA
)
#endif // HAVE_NEON
#if HAVE_MSA
...
...
@@ -340,7 +434,12 @@ INTRA_PRED_TEST(MSA, TestIntraPred32, aom_dc_predictor_32x32_msa,
aom_dc_left_predictor_32x32_msa
,
aom_dc_top_predictor_32x32_msa
,
aom_dc_128_predictor_32x32_msa
,
aom_v_predictor_32x32_msa
,
aom_h_predictor_32x32_msa
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
aom_tm_predictor_32x32_msa
)
#if CONFIG_ALT_INTRA
NULL
#else
aom_tm_predictor_32x32_msa
#endif // CONFIG_ALT_INTRA
)
#endif // HAVE_MSA
#include "test/test_libaom.cc"
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment