summaryrefslogtreecommitdiff
path: root/vp9/encoder/arm
diff options
context:
space:
mode:
authorFrank Galligan <fgalligan@google.com>2015-01-15 19:29:46 -0800
committerFrank Galligan <fgalligan@google.com>2015-01-24 22:49:50 -0800
commit9f6eba419a876598aa7edaee9e99610fcbf6362b (patch)
tree93ffdee8881e88af304d3f73257f392777008fb2 /vp9/encoder/arm
parent643c75d90b71af8fc636367cb8552b3ae9ee141d (diff)
downloadlibvpx-9f6eba419a876598aa7edaee9e99610fcbf6362b.tar
libvpx-9f6eba419a876598aa7edaee9e99610fcbf6362b.tar.gz
libvpx-9f6eba419a876598aa7edaee9e99610fcbf6362b.tar.bz2
libvpx-9f6eba419a876598aa7edaee9e99610fcbf6362b.zip
Add Neon intrinsic vp9_fdct8x8_quant_neon
On Nexus 7 speed -5 got ~2%, -6 got ~15%, -7 and -8 got ~30% increase in perf. Tested on Nexus 7, built with ndk r10d, gcc 4.9. Change-Id: I83246d63b96674d170098a572fa4fe28a05aaf51
Diffstat (limited to 'vp9/encoder/arm')
-rw-r--r--vp9/encoder/arm/neon/vp9_dct_neon.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/vp9/encoder/arm/neon/vp9_dct_neon.c b/vp9/encoder/arm/neon/vp9_dct_neon.c
index 6c66f5d5b..a6d4797ad 100644
--- a/vp9/encoder/arm/neon/vp9_dct_neon.c
+++ b/vp9/encoder/arm/neon/vp9_dct_neon.c
@@ -32,6 +32,24 @@ void vp9_fdct8x8_1_neon(const int16_t *input, int16_t *output, int stride) {
}
}
+void vp9_fdct8x8_quant_neon(const int16_t *input, int stride,
+ int16_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,
+ int16_t* qcoeff_ptr, int16_t* dqcoeff_ptr,
+ const int16_t* dequant_ptr, uint16_t* eob_ptr,
+ const int16_t* scan_ptr,
+ const int16_t* iscan_ptr) {
+ int16_t temp_buffer[64];
+ (void)coeff_ptr;
+
+ vp9_fdct8x8_neon(input, temp_buffer, stride);
+ vp9_quantize_fp_neon(temp_buffer, n_coeffs, skip_block, zbin_ptr, round_ptr,
+ quant_ptr, quant_shift_ptr, qcoeff_ptr, dqcoeff_ptr,
+ dequant_ptr, eob_ptr, scan_ptr, iscan_ptr);
+}
+
void vp9_fdct8x8_neon(const int16_t *input, int16_t *final_output, int stride) {
int i;
// stage 1