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:
Johann 2014-05-14 11:33:47 -07:00
parent 4dcc6d9707
commit 2f6f955a17
4 changed files with 9 additions and 28 deletions

View File

@ -38,8 +38,9 @@
# For this we import the 'cpufeatures' module from the NDK sources. # For this we import the 'cpufeatures' module from the NDK sources.
# libvpx can also be configured without this runtime detection method. # 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 will assume presence of NEON.
# Configuring with --disable-runtime-cpu-detect --disable-neon will remove any # Configuring with --disable-runtime-cpu-detect --disable-neon \
# NEON dependency. # --disable-neon-asm
# will remove any NEON dependency.
# To change to building armeabi, run ./libvpx/configure again, but with # To change to building armeabi, run ./libvpx/configure again, but with
# --target=arm5te-android-gcc and modify the Application.mk file to # --target=arm5te-android-gcc and modify the Application.mk file to

View File

@ -12,26 +12,9 @@
#include "vpx_config.h" #include "vpx_config.h"
#include "vp8/common/blockd.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 #if HAVE_MEDIA
extern void vp8_dequantize_b_loop_v6(short *Q, short *DQC, short *DQ); 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) void vp8_dequantize_b_v6(BLOCKD *d, short *DQC)
{ {
short *DQ = d->dqcoeff; short *DQ = d->dqcoeff;

View File

@ -10,18 +10,16 @@
#include <arm_neon.h> #include <arm_neon.h>
void vp8_dequantize_b_loop_neon( #include "vp8/common/blockd.h"
int16_t *Q,
int16_t *DQC, void vp8_dequantize_b_neon(BLOCKD *d, short *DQC) {
int16_t *DQ) {
int16x8x2_t qQ, qDQC, qDQ; int16x8x2_t qQ, qDQC, qDQ;
qQ = vld2q_s16(Q); qQ = vld2q_s16(d->qcoeff);
qDQC = vld2q_s16(DQC); qDQC = vld2q_s16(DQC);
qDQ.val[0] = vmulq_s16(qQ.val[0], qDQC.val[0]); qDQ.val[0] = vmulq_s16(qQ.val[0], qDQC.val[0]);
qDQ.val[1] = vmulq_s16(qQ.val[1], qDQC.val[1]); qDQ.val[1] = vmulq_s16(qQ.val[1], qDQC.val[1]);
vst2q_s16(DQ, qDQ); vst2q_s16(d->dqcoeff, qDQ);
return;
} }

View File

@ -29,9 +29,8 @@ $vp8_clear_system_state_mmx=vpx_reset_mmx_state;
# Dequant # Dequant
# #
add_proto qw/void vp8_dequantize_b/, "struct blockd*, short *dqc"; 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_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"; 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/; specialize qw/vp8_dequant_idct_add mmx media neon dspr2/;