Commit graph

10 commits

Author SHA1 Message Date
Linfeng Zhang
64a1608d12
Fix celt_pitch_xcorr() ARM jump table compiling error
This bug is introduced in commit 85fb8a1.

Change-Id: I3822cdfc1308ca62ce03da008260de8f4b04596c

Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
2017-07-25 02:14:38 -04:00
Linfeng Zhang
4fe9de3b0f
Optimize floating-point celt_inner_prod() and dual_inner_prod() for ARM NEON
The floating-point optimizations are not bit exact with C functions,
because of the different orders of floating-point operations.
But they are bit exact with the simulation C functions which simulate
the floating operations in the optimizations.

Change-Id: I149fda5b602fd5712b16fc8983df3c6c0c9e76ad

Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
2017-06-06 17:12:20 -04:00
Linfeng Zhang
4d4ed208b1
Optimize fixed-point celt_inner_prod() and dual_inner_prod() for ARM NEON
This optimization is bit exact with C functions.

Change-Id: Ia9ce6dd3c20d2f56dbd43ddc02d1a6fd6554608d

Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
2017-06-06 17:12:20 -04:00
Linfeng Zhang
85fb8a1d17
Replace call of celt_inner_prod_c() (step 2)
Should call celt_inner_prod().
This requires the API change of celt_pitch_xcorr() by passing in
"arch".

We tested on x86 and arm, and got bit exact results as original.

Change-Id: I606915da6a196f327ce81f4a5ae32811f4c1fabb

Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
2017-06-06 17:12:20 -04:00
Jonathan Lennox
7017f55093 Add Neon fixed-point implementation of xcorr_kernel.
Used for celt_pitch_xcorr on aarch64, and celt_fir and celt_iir on both armv7 and aarch64.

Signed-off-by: Timothy B. Terriberry <tterribe@xiph.org>
2016-07-06 15:00:02 -07:00
Jonathan Lennox
ab61f328a4 Reorganize ARM CPU #ifdefs.
Signed-off-by: Timothy B. Terriberry <tterribe@xiph.org>
2016-07-06 15:00:01 -07:00
Jonathan Lennox
e6ac9fa993 Move ARM-specific macro overrides to arm-specific file.
Signed-off-by: Timothy B. Terriberry <tterribe@xiph.org>
2016-07-06 15:00:01 -07:00
Jonathan Lennox
b4aa5dc858 Reorganize configure's detection of intrinsics functions:
Actually try to compile intrinsics rather than using the output of --help.
Allow caller of configure script to set custom compiler options to enable intrinsics.
Detect when intrinsics are always available, without needing special compiler options.
Make naming of #defines for detected intrinsics support more systematic.
2015-09-01 17:21:31 -04:00
Viswanath Puttagunta
0b0a2b4d06 armv7: celt_pitch_xcorr: Introduce ARM NEON intrinsics
Optimize celt_pitch_xcorr function (for floating point)
using ARM NEON intrinsics for SoCs that have NEON VFP unit.

To enable this optimization, use --enable-intrinsics
configure option.

Compile time and runtime checks are also supported to make sure
this optimization is only enabled when the compiler supports
NEON intrinsics.

Signed-off-by: Timothy B. Terriberry <tterribe@xiph.org>
2014-12-25 14:36:46 -08:00
Timothy B. Terriberry
39386e0b85 Adds Neon assembly for correlation/convolution
Optimizing celt_pitch_xcorr()/xcorr_kernel() which also speeds up
FIRs, IIRs and auto-correlations

Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
2013-11-18 13:41:17 -05:00