diff options
author | Frank Galligan <fgalligan@google.com> | 2015-01-15 19:29:46 -0800 |
---|---|---|
committer | Frank Galligan <fgalligan@google.com> | 2015-01-24 22:49:50 -0800 |
commit | 9f6eba419a876598aa7edaee9e99610fcbf6362b (patch) | |
tree | 93ffdee8881e88af304d3f73257f392777008fb2 /vp9/encoder/arm | |
parent | 643c75d90b71af8fc636367cb8552b3ae9ee141d (diff) | |
download | libvpx-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.c | 18 |
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 |