Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
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
9db1f24c
Commit
9db1f24c
authored
Jun 22, 2015
by
James Zern
Browse files
vp9_reconintra_neon: add d45 16x16
~90% faster over 20M pixels Change-Id: I92d80f66e91e0a870a672cfb5dd29bf1a17cb11a
parent
c8b9658e
Changes
3
Hide whitespace changes
Inline
Side-by-side
test/test_intra_pred_speed.cc
View file @
9db1f24c
...
...
@@ -316,8 +316,8 @@ INTRA_PRED_TEST(NEON, TestIntraPred16, vp9_dc_predictor_16x16_neon,
vp9_dc_left_predictor_16x16_neon
,
vp9_dc_top_predictor_16x16_neon
,
vp9_dc_128_predictor_16x16_neon
,
vp9_v_predictor_16x16_neon
,
vp9_h_predictor_16x16_neon
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
vp9_tm_predictor_16x16_neon
)
vp9_h_predictor_16x16_neon
,
vp9_d45_predictor_16x16_neon
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
vp9_tm_predictor_16x16_neon
)
#endif // HAVE_NEON
#if HAVE_MSA
...
...
vp9/common/arm/neon/vp9_reconintra_neon.c
View file @
9db1f24c
...
...
@@ -358,6 +358,23 @@ void vp9_d45_predictor_8x8_neon(uint8_t *dst, ptrdiff_t stride,
vst1_u8
(
dst
+
i
*
stride
,
row
);
}
void
vp9_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
);
const
uint8x16_t
A1
=
vextq_u8
(
A0
,
above_right
,
1
);
const
uint8x16_t
A2
=
vextq_u8
(
A0
,
above_right
,
2
);
const
uint8x16_t
avg1
=
vhaddq_u8
(
A0
,
A2
);
uint8x16_t
row
=
vrhaddq_u8
(
avg1
,
A1
);
int
i
;
(
void
)
left
;
for
(
i
=
0
;
i
<
15
;
++
i
)
{
vst1q_u8
(
dst
+
i
*
stride
,
row
);
row
=
vextq_u8
(
row
,
above_right
,
1
);
}
vst1q_u8
(
dst
+
i
*
stride
,
row
);
}
// -----------------------------------------------------------------------------
void
vp9_d135_predictor_4x4_neon
(
uint8_t
*
dst
,
ptrdiff_t
stride
,
...
...
vp9/common/vp9_rtcd_defs.pl
View file @
9db1f24c
...
...
@@ -138,7 +138,7 @@ add_proto qw/void vp9_d207_predictor_16x16/, "uint8_t *dst, ptrdiff_t y_stride,
specialize
qw/vp9_d207_predictor_16x16/
,
"
$ssse3_x86inc
";
add_proto
qw/void vp9_d45_predictor_16x16/
,
"
uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left
";
specialize
qw/vp9_d45_predictor_16x16/
,
"
$ssse3_x86inc
";
specialize
qw/vp9_d45_predictor_16x16
neon
/
,
"
$ssse3_x86inc
";
add_proto
qw/void vp9_d63_predictor_16x16/
,
"
uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left
";
specialize
qw/vp9_d63_predictor_16x16/
,
"
$ssse3_x86inc
";
...
...
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