Skip to content
GitLab
Menu
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
179bceff
Commit
179bceff
authored
Jun 03, 2015
by
Parag Salasakar
Committed by
Gerrit Code Review
Jun 03, 2015
Browse files
Merge "mips msa vp9 convolve8 avg vert optimization"
parents
0601f92a
c543d38a
Changes
5
Expand all
Hide whitespace changes
Inline
Side-by-side
test/convolve_test.cc
View file @
179bceff
...
...
@@ -1819,7 +1819,7 @@ INSTANTIATE_TEST_CASE_P(DSPR2, ConvolveTest, ::testing::Values(
const
ConvolveFunctions
convolve8_msa
(
vp9_convolve_copy_msa
,
vp9_convolve_avg_msa
,
vp9_convolve8_horiz_msa
,
vp9_convolve8_avg_horiz_c
,
vp9_convolve8_vert_msa
,
vp9_convolve8_avg_vert_
c
,
vp9_convolve8_vert_msa
,
vp9_convolve8_avg_vert_
msa
,
vp9_convolve8_msa
,
vp9_convolve8_avg_c
,
0
);
INSTANTIATE_TEST_CASE_P
(
MSA
,
ConvolveTest
,
::
testing
::
Values
(
...
...
vp9/common/mips/msa/vp9_convolve8_avg_vert_msa.c
0 → 100644
View file @
179bceff
This diff is collapsed.
Click to expand it.
vp9/common/mips/msa/vp9_macros_msa.h
View file @
179bceff
...
...
@@ -870,6 +870,13 @@
#define ILVR_W2_UB(...) ILVR_W2(v16u8, __VA_ARGS__)
#define ILVR_W2_SH(...) ILVR_W2(v8i16, __VA_ARGS__)
#define ILVR_W4(RTYPE, in0, in1, in2, in3, in4, in5, in6, in7, \
out0, out1, out2, out3) { \
ILVR_W2(RTYPE, in0, in1, in2, in3, out0, out1); \
ILVR_W2(RTYPE, in4, in5, in6, in7, out2, out3); \
}
#define ILVR_W4_UB(...) ILVR_W4(v16u8, __VA_ARGS__)
/* Description : Interleave right half of double word elements from vectors
Arguments : Inputs - in0, in1, in2, in3, in4, in5, in6, in7
Outputs - out0, out1, out2, out3
...
...
@@ -1446,6 +1453,23 @@
out_m; \
})
/* Description : Converts inputs to unsigned bytes, interleave, average & store
as 8x4 unsigned byte block
Arguments : Inputs - in0, in1, in2, in3, dst0, dst1, dst2, dst3,
pdst, stride
*/
#define CONVERT_UB_AVG_ST8x4_UB(in0, in1, in2, in3, \
dst0, dst1, dst2, dst3, pdst, stride) { \
v16u8 tmp0_m, tmp1_m, tmp2_m, tmp3_m; \
uint8_t *pdst_m = (uint8_t *)(pdst); \
\
tmp0_m = PCKEV_XORI128_UB(in0, in1); \
tmp1_m = PCKEV_XORI128_UB(in2, in3); \
ILVR_D2_UB(dst1, dst0, dst3, dst2, tmp2_m, tmp3_m); \
AVER_UB2_UB(tmp0_m, tmp2_m, tmp1_m, tmp3_m, tmp0_m, tmp1_m); \
ST8x4_UB(tmp0_m, tmp1_m, pdst_m, stride); \
}
/* Description : Pack even byte elements and store byte vector in destination
memory
Arguments : Inputs - in0, in1, pdst
...
...
vp9/common/vp9_rtcd_defs.pl
View file @
179bceff
...
...
@@ -307,7 +307,7 @@ add_proto qw/void vp9_convolve8_avg_horiz/, "const uint8_t *src, ptrdiff_t src_s
specialize
qw/vp9_convolve8_avg_horiz sse2 ssse3 neon dspr2/
;
add_proto
qw/void vp9_convolve8_avg_vert/
,
"
const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h
";
specialize
qw/vp9_convolve8_avg_vert sse2 ssse3 neon dspr2/
;
specialize
qw/vp9_convolve8_avg_vert sse2 ssse3 neon dspr2
msa
/
;
#
# dct
...
...
vp9/vp9_common.mk
View file @
179bceff
...
...
@@ -132,6 +132,7 @@ VP9_COMMON_SRCS-$(HAVE_DSPR2) += common/mips/dspr2/vp9_mblpf_vert_loopfilter_ds
# common (msa)
VP9_COMMON_SRCS-$(HAVE_MSA)
+=
common/mips/msa/vp9_macros_msa.h
VP9_COMMON_SRCS-$(HAVE_MSA)
+=
common/mips/msa/vp9_convolve8_avg_vert_msa.c
VP9_COMMON_SRCS-$(HAVE_MSA)
+=
common/mips/msa/vp9_convolve8_horiz_msa.c
VP9_COMMON_SRCS-$(HAVE_MSA)
+=
common/mips/msa/vp9_convolve8_msa.c
VP9_COMMON_SRCS-$(HAVE_MSA)
+=
common/mips/msa/vp9_convolve8_vert_msa.c
...
...
Write
Preview
Supports
Markdown
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