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
65dd056e
Commit
65dd056e
authored
Oct 26, 2015
by
Debargha Mukherjee
Committed by
Gerrit Code Review
Oct 26, 2015
Browse files
Options
Browse Files
Download
Plain Diff
Merge "Optimize vpx_quantize_{b,b_32x32} assembler."
parents
35cae7f1
9cfba09a
Changes
5
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
562 additions
and
23 deletions
+562
-23
vp10/encoder/context_tree.c
vp10/encoder/context_tree.c
+4
-4
vp9/encoder/vp9_context_tree.c
vp9/encoder/vp9_context_tree.c
+4
-4
vpx_dsp/vpx_dsp.mk
vpx_dsp/vpx_dsp.mk
+2
-1
vpx_dsp/vpx_dsp_rtcd_defs.pl
vpx_dsp/vpx_dsp_rtcd_defs.pl
+8
-14
vpx_dsp/x86/quantize_avx_x86_64.asm
vpx_dsp/x86/quantize_avx_x86_64.asm
+544
-0
No files found.
vp10/encoder/context_tree.c
View file @
65dd056e
...
...
@@ -30,13 +30,13 @@ static void alloc_mode_context(VP10_COMMON *cm, int num_4x4_blk,
for
(
i
=
0
;
i
<
MAX_MB_PLANE
;
++
i
)
{
for
(
k
=
0
;
k
<
3
;
++
k
)
{
CHECK_MEM_ERROR
(
cm
,
ctx
->
coeff
[
i
][
k
],
vpx_memalign
(
16
,
num_pix
*
sizeof
(
*
ctx
->
coeff
[
i
][
k
])));
vpx_memalign
(
32
,
num_pix
*
sizeof
(
*
ctx
->
coeff
[
i
][
k
])));
CHECK_MEM_ERROR
(
cm
,
ctx
->
qcoeff
[
i
][
k
],
vpx_memalign
(
16
,
num_pix
*
sizeof
(
*
ctx
->
qcoeff
[
i
][
k
])));
vpx_memalign
(
32
,
num_pix
*
sizeof
(
*
ctx
->
qcoeff
[
i
][
k
])));
CHECK_MEM_ERROR
(
cm
,
ctx
->
dqcoeff
[
i
][
k
],
vpx_memalign
(
16
,
num_pix
*
sizeof
(
*
ctx
->
dqcoeff
[
i
][
k
])));
vpx_memalign
(
32
,
num_pix
*
sizeof
(
*
ctx
->
dqcoeff
[
i
][
k
])));
CHECK_MEM_ERROR
(
cm
,
ctx
->
eobs
[
i
][
k
],
vpx_memalign
(
16
,
num_blk
*
sizeof
(
*
ctx
->
eobs
[
i
][
k
])));
vpx_memalign
(
32
,
num_blk
*
sizeof
(
*
ctx
->
eobs
[
i
][
k
])));
ctx
->
coeff_pbuf
[
i
][
k
]
=
ctx
->
coeff
[
i
][
k
];
ctx
->
qcoeff_pbuf
[
i
][
k
]
=
ctx
->
qcoeff
[
i
][
k
];
ctx
->
dqcoeff_pbuf
[
i
][
k
]
=
ctx
->
dqcoeff
[
i
][
k
];
...
...
vp9/encoder/vp9_context_tree.c
View file @
65dd056e
...
...
@@ -30,13 +30,13 @@ static void alloc_mode_context(VP9_COMMON *cm, int num_4x4_blk,
for
(
i
=
0
;
i
<
MAX_MB_PLANE
;
++
i
)
{
for
(
k
=
0
;
k
<
3
;
++
k
)
{
CHECK_MEM_ERROR
(
cm
,
ctx
->
coeff
[
i
][
k
],
vpx_memalign
(
16
,
num_pix
*
sizeof
(
*
ctx
->
coeff
[
i
][
k
])));
vpx_memalign
(
32
,
num_pix
*
sizeof
(
*
ctx
->
coeff
[
i
][
k
])));
CHECK_MEM_ERROR
(
cm
,
ctx
->
qcoeff
[
i
][
k
],
vpx_memalign
(
16
,
num_pix
*
sizeof
(
*
ctx
->
qcoeff
[
i
][
k
])));
vpx_memalign
(
32
,
num_pix
*
sizeof
(
*
ctx
->
qcoeff
[
i
][
k
])));
CHECK_MEM_ERROR
(
cm
,
ctx
->
dqcoeff
[
i
][
k
],
vpx_memalign
(
16
,
num_pix
*
sizeof
(
*
ctx
->
dqcoeff
[
i
][
k
])));
vpx_memalign
(
32
,
num_pix
*
sizeof
(
*
ctx
->
dqcoeff
[
i
][
k
])));
CHECK_MEM_ERROR
(
cm
,
ctx
->
eobs
[
i
][
k
],
vpx_memalign
(
16
,
num_blk
*
sizeof
(
*
ctx
->
eobs
[
i
][
k
])));
vpx_memalign
(
32
,
num_blk
*
sizeof
(
*
ctx
->
eobs
[
i
][
k
])));
ctx
->
coeff_pbuf
[
i
][
k
]
=
ctx
->
coeff
[
i
][
k
];
ctx
->
qcoeff_pbuf
[
i
][
k
]
=
ctx
->
qcoeff
[
i
][
k
];
ctx
->
dqcoeff_pbuf
[
i
][
k
]
=
ctx
->
dqcoeff
[
i
][
k
];
...
...
vpx_dsp/vpx_dsp.mk
View file @
65dd056e
...
...
@@ -248,7 +248,8 @@ DSP_SRCS-$(HAVE_SSE2) += x86/highbd_quantize_intrin_sse2.c
endif
ifeq
($(ARCH_X86_64),yes)
ifeq
($(CONFIG_USE_X86INC),yes)
DSP_SRCS-$(HAVE_SSSE3)
+=
x86/quantize_ssse3_x86_64.asm
DSP_SRCS-$(HAVE_SSSE3)
+=
x86/quantize_ssse3_x86_64.asm
DSP_SRCS-$(HAVE_AVX)
+=
x86/quantize_avx_x86_64.asm
endif
endif
endif
# CONFIG_VP9_ENCODER || CONFIG_VP10_ENCODER
...
...
vpx_dsp/vpx_dsp_rtcd_defs.pl
View file @
65dd056e
...
...
@@ -913,25 +913,19 @@ if (vpx_config("CONFIG_VP9_HIGHBITDEPTH") eq "yes") {
# Quantization
#
if
((
vpx_config
("
CONFIG_VP9_ENCODER
")
eq
"
yes
")
||
(
vpx_config
("
CONFIG_VP10_ENCODER
")
eq
"
yes
"))
{
if
(
vpx_config
("
CONFIG_VP9_HIGHBITDEPTH
")
eq
"
yes
")
{
add_proto
qw/void vpx_quantize_b/
,
"
const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan
";
specialize
qw/vpx_quantize_b sse2/
,
"
$ssse3_x86_64_x86inc
";
specialize
qw/vpx_quantize_b sse2/
,
"
$ssse3_x86_64_x86inc
"
,
"
$avx_x86_64_x86inc
"
;
add_proto
qw/void vpx_quantize_b_32x32/
,
"
const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan
";
specialize
qw/vpx_quantize_b_32x32/
,
"
$ssse3_x86_64_x86inc
";
add_proto
qw/void vpx_highbd_quantize_b/
,
"
const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan
";
specialize
qw/vpx_highbd_quantize_b sse2/
;
specialize
qw/vpx_quantize_b_32x32/
,
"
$ssse3_x86_64_x86inc
",
"
$avx_x86_64_x86inc
";
add_proto
qw/void vpx_highbd_quantize_b_32x32/
,
"
const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan
";
specialize
qw/vpx_highbd_quantize_b_32x32 sse2/
;
}
else
{
add_proto
qw/void vpx_quantize_b/
,
"
const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan
";
specialize
qw/vpx_quantize_b sse2/
,
"
$ssse3_x86_64_x86inc
";
if
(
vpx_config
("
CONFIG_VP9_HIGHBITDEPTH
")
eq
"
yes
")
{
add_proto
qw/void vpx_highbd_quantize_b/
,
"
const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan
";
specialize
qw/vpx_highbd_quantize_b sse2/
;
add_proto
qw/void vpx_quantize_b_32x32/
,
"
const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan
";
specialize
qw/vpx_quantize_b_32x32
/
,
"
$ssse3_x86_64_x86inc
"
;
}
# CONFIG_VP9_HIGHBITDEPTH
add_proto
qw/void vpx_
highbd_
quantize_b_32x32/
,
"
const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan
";
specialize
qw/vpx_
highbd_
quantize_b_32x32
sse2/
;
}
# CONFIG_VP9_HIGHBITDEPTH
}
# CONFIG_VP9_ENCODER || CONFIG_VP10_ENCODER
if
(
vpx_config
("
CONFIG_ENCODERS
")
eq
"
yes
")
{
...
...
vpx_dsp/x86/quantize_avx_x86_64.asm
0 → 100644
View file @
65dd056e
This diff is collapsed.
Click to expand it.
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