[opus] [RFC PATCHv1] cover: celt_pitch_xcorr: Introduce ARM neon intrinsics

Viswanath Puttagunta viswanath.puttagunta at linaro.org
Fri Nov 21 15:38:49 PST 2014


Hello,

I received feedback from engineers working on NE10 [1] that
it would be better to use NE10 [1] for FFT optimizations for
opus use cases. However, these FFT patches are currently in review
and haven't been integrated into NE10 yet.

While the FFT functions in NE10 are getting baked, I wanted
to optimize the celt_pitch_xcorr (floating point only) and use
it to introduce ARM NEON intrinsics into libopus project.

This will also lay the foundation when FFT routines in NE10
become available.

I would like to know the following as I DID NOT fully use-case
test this celt_pitch_xcorr optimization. Did only unit tests.

a. Simplest use case to validate this optimization for correctness.
b. Simplest use case to validate this optimization for performance.

Would prefer something like opusdec that can be executed on command
line.

Any other feedback welcome.

[1]: http://projectne10.github.io/Ne10/

Viswanath Puttagunta (1):
  armv7: celt_pitch_xcorr: Introduce ARM neon intrinsics

 Makefile.am                     |   23 +++++++++++
 celt/_kiss_fft_guts.h           |    4 +-
 celt/arch.h                     |    4 +-
 celt/arm/arm_celt_map.c         |   15 +++++++-
 celt/arm/celt_neon_intr.c       |   81 +++++++++++++++++++++++++++++++++++++++
 celt/arm/pitch_arm.h            |   15 +++++++-
 celt/pitch.h                    |   17 ++++++--
 celt/tests/test_unit_mathops.c  |    2 +-
 celt/tests/test_unit_rotation.c |    2 +-
 celt_sources.mk                 |    3 ++
 configure.ac                    |   56 ++++++++++++++++++++++-----
 silk/SigProc_FIX.h              |    4 +-
 silk/macros.h                   |    4 +-
 13 files changed, 205 insertions(+), 25 deletions(-)
 create mode 100644 celt/arm/celt_neon_intr.c

-- 
1.7.9.5



More information about the opus mailing list