Remove intermediate step in vp8_dequantize_b
With the intrinsics it is no longer necessary to have a stub/helper function. Change-Id: I3695961c3c94f1bb750d3b7b29716e509ebba482
This commit is contained in:
parent
4dcc6d9707
commit
2f6f955a17
@ -38,8 +38,9 @@
|
||||
# For this we import the 'cpufeatures' module from the NDK sources.
|
||||
# libvpx can also be configured without this runtime detection method.
|
||||
# Configuring with --disable-runtime-cpu-detect will assume presence of NEON.
|
||||
# Configuring with --disable-runtime-cpu-detect --disable-neon will remove any
|
||||
# NEON dependency.
|
||||
# Configuring with --disable-runtime-cpu-detect --disable-neon \
|
||||
# --disable-neon-asm
|
||||
# will remove any NEON dependency.
|
||||
|
||||
# To change to building armeabi, run ./libvpx/configure again, but with
|
||||
# --target=arm5te-android-gcc and modify the Application.mk file to
|
||||
|
@ -12,26 +12,9 @@
|
||||
#include "vpx_config.h"
|
||||
#include "vp8/common/blockd.h"
|
||||
|
||||
#if HAVE_NEON_ASM
|
||||
extern void vp8_dequantize_b_loop_neon(short *Q, short *DQC, short *DQ);
|
||||
#endif
|
||||
|
||||
#if HAVE_MEDIA
|
||||
extern void vp8_dequantize_b_loop_v6(short *Q, short *DQC, short *DQ);
|
||||
#endif
|
||||
|
||||
#if HAVE_NEON_ASM
|
||||
|
||||
void vp8_dequantize_b_neon(BLOCKD *d, short *DQC)
|
||||
{
|
||||
short *DQ = d->dqcoeff;
|
||||
short *Q = d->qcoeff;
|
||||
|
||||
vp8_dequantize_b_loop_neon(Q, DQC, DQ);
|
||||
}
|
||||
#endif
|
||||
|
||||
#if HAVE_MEDIA
|
||||
void vp8_dequantize_b_v6(BLOCKD *d, short *DQC)
|
||||
{
|
||||
short *DQ = d->dqcoeff;
|
||||
|
@ -10,18 +10,16 @@
|
||||
|
||||
#include <arm_neon.h>
|
||||
|
||||
void vp8_dequantize_b_loop_neon(
|
||||
int16_t *Q,
|
||||
int16_t *DQC,
|
||||
int16_t *DQ) {
|
||||
#include "vp8/common/blockd.h"
|
||||
|
||||
void vp8_dequantize_b_neon(BLOCKD *d, short *DQC) {
|
||||
int16x8x2_t qQ, qDQC, qDQ;
|
||||
|
||||
qQ = vld2q_s16(Q);
|
||||
qQ = vld2q_s16(d->qcoeff);
|
||||
qDQC = vld2q_s16(DQC);
|
||||
|
||||
qDQ.val[0] = vmulq_s16(qQ.val[0], qDQC.val[0]);
|
||||
qDQ.val[1] = vmulq_s16(qQ.val[1], qDQC.val[1]);
|
||||
|
||||
vst2q_s16(DQ, qDQ);
|
||||
return;
|
||||
vst2q_s16(d->dqcoeff, qDQ);
|
||||
}
|
||||
|
@ -29,9 +29,8 @@ $vp8_clear_system_state_mmx=vpx_reset_mmx_state;
|
||||
# Dequant
|
||||
#
|
||||
add_proto qw/void vp8_dequantize_b/, "struct blockd*, short *dqc";
|
||||
specialize qw/vp8_dequantize_b mmx media neon_asm/;
|
||||
specialize qw/vp8_dequantize_b mmx media neon/;
|
||||
$vp8_dequantize_b_media=vp8_dequantize_b_v6;
|
||||
$vp8_dequantize_b_neon_asm=vp8_dequantize_b_neon;
|
||||
|
||||
add_proto qw/void vp8_dequant_idct_add/, "short *input, short *dq, unsigned char *output, int stride";
|
||||
specialize qw/vp8_dequant_idct_add mmx media neon dspr2/;
|
||||
|
Loading…
Reference in New Issue
Block a user