Age | Commit message (Collapse) | Author |
|
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>
|
|
Signed-off-by: Timothy B. Terriberry <tterribe@xiph.org>
|
|
Signed-off-by: Timothy B. Terriberry <tterribe@xiph.org>
|
|
Signed-off-by: Timothy B. Terriberry <tterribe@xiph.org>
|
|
|
|
Reported by Durandal.
|
|
This could lead to an integer overflow. Also, refactored the code a bit
|
|
|
|
Avoids generating comfort noise with unwanted tones in DTX mode.
|
|
As reported by Giovanni Rovatti, this should fix some TI C55 issues.
|
|
Avoids accidental name collisions
|
|
...and also make it not ignore the right channel
|
|
|
|
|
|
Reported in https://trac.xiph.org/ticket/2241
|
|
Should no longer cause discontinuities in the noise after 5 packets
|
|
Previously silence would cause the divide approximation on 0/0 to return a
very large value, which would be interpreted as a transient
|
|
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
|
|
Signed-off-by: Timothy B. Terriberry <tterribe@xiph.org>
|
|
Signed-off-by: Timothy B. Terriberry <tterribe@xiph.org>
|
|
|
|
|
|
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
|
|
Some of the fields present in NE10's float state struct are not
present in the fixed-point version, but we were generating
initializers for them anyway.
Also, the float modes were not up-to-date with the output of
dump_modes.
|
|
Extends usage of NEON optimized fixed-point FFT optimizations
in libNE10 to clt_mdct_forward and clt_mdct_backward.
Signed-off-by: Timothy B. Terriberry <tterribe@xiph.org>
|
|
Uses NEON optimized fixed point FFT routines in NE10 library.
Signed-off-by: Timothy B. Terriberry <tterribe@xiph.org>
|
|
Signed-off-by: Viswanath Puttagunta <viswanath.puttagunta@linaro.org>
Signed-off-by: Timothy B. Terriberry <tterribe@xiph.org>
|
|
Optimize opus decode (float only) use case using ARM NE10.
Mainly effects opus_ifft and ctl_mdct_backward and related
functions.
Work based on previous Encode optimization using ARM NE10
library. See previous commit for details on how to enable
this.
Signed-off-by: Timothy B. Terriberry <tterribe@xiph.org>
|
|
Optimize opus encode (float only) usecase using ARM NE10
library. Mainly effects opus_fft and ctl_mdct_forward
and related functions.
This optimization can be used for ARM CPUs that have NEON
VFP unit. This patch only enables optimizations for ARMv7.
Official ARM NE10 library page available at
http://projectne10.github.io/Ne10/
To enable this optimization, use
--enable-intrinsics --with-NE10=<install_prefix>
or
--enable-intrinsics --with-NE10-libraries=<NE10_lib_dir> --with-NE10-includes=<NE10_includes_dir>
Compile time checks made during configure process to make sure
optimization option available only when compiler supports NEON
instrinsics.
Runtime checks made to make sure optimized functions only called
on appropriate hardware.
Signed-off-by: Timothy B. Terriberry <tterribe@xiph.org>
|
|
This is needed for the SMALL_DIV_TABLE constants added in commit
ec5d01cbe486.
|
|
Brings MIPS in sync with the ARM/SSE optimizations that added "arch" parameters.
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
|
|
|
|
Enable x86 intrinsics when building in floating-point mode.
Support SSE as an arch value.
Use RTCD to conditionally enable existing floating-point Celt SSE code.
Call functions directly (without RTCD) when their architecture can be presumed.
Use SSE4.1 intrinsics optimized code for Silk even in floating-point mode.
|
|
with appropriate compiler flags. Otherwise, compilers are allowed to take advantage of (e.g.) -msse4.1 to generate code that uses SSE4.1 instructions, even when no SSE4.1 intrinsics are explicitly used in the source.
|
|
|
|
|
|
|
|
_mm_cvtepi16_epi32, only for _mm_cvtepi8_epi32. Adjust comment accordingly.
|
|
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.
|
|
We already needed these macros for gcc with optimizations disabled,
but it appears clang needs them all the time.
Thanks to Jonathan Lennox for the report.
|
|
This way we won't break this by accident.
|
|
During review of c95c9a048f32, I replaced a call to
_mm_cvtepi8_epi32() with the OP_CVTEPI16_EPI32_M64() macro (note
the 16 instead of 8).
Make a separate OP_CVTEPI8_EPI32_M32() macro and use that instead.
Thaks to Wei Zhou for the report.
|
|
This should suppress our current issues with unused parameters,
unused variables, and set-but-not-used variables.
|
|
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>
|
|
This should not take an arch parameter, so it can properly be used
as a fallback for accelerated versions which do not.
This patch instead provides a separate version which can call
accelerated helpers for platforms that have taken that approach.
|
|
Signed-off-by: Tristan Matthews <tmatth@videolan.org>
|
|
|
|
There is also no trailing whitespace.
|
|
|
|
1. Only for fixed point on x86 platform (32bit and 64bit, uses SIMD
intrinsics up to SSE4.2)
2. Use "configure --enable-fixed-point --enable-intrinsics" to enable
optimization, default is disabled.
3. Official test cases are verified and passed.
Signed-off-by: Timothy B. Terriberry <tterribe@xiph.org>
|