aboutsummaryrefslogtreecommitdiff
path: root/celt
AgeCommit message (Collapse)Author
2016-07-06Add Neon fixed-point implementation of xcorr_kernel.Jonathan Lennox
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-06Add named constants for ARM architecture variants.Jonathan Lennox
Signed-off-by: Timothy B. Terriberry <tterribe@xiph.org>
2016-07-06Reorganize ARM CPU #ifdefs.Jonathan Lennox
Signed-off-by: Timothy B. Terriberry <tterribe@xiph.org>
2016-07-06Move ARM-specific macro overrides to arm-specific file.Jonathan Lennox
Signed-off-by: Timothy B. Terriberry <tterribe@xiph.org>
2016-07-06Update URLsMark Harris
2016-06-20Fixes minor code quality issues in CELTJean-Marc Valin
Reported by Durandal.
2016-06-18Fixes a fixed-point precision issue in remove_doubling()Jean-Marc Valin
This could lead to an integer overflow. Also, refactored the code a bit
2016-06-17Fixes an overflow in the constrained VBR code for bitrate>64000Jean-Marc Valin
2016-04-15Turn on CELT's PLC only if there are >=2 packets received consecutively.Felicia Lim
Avoids generating comfort noise with unwanted tones in DTX mode.
2016-03-24Fixes overflows on CPUs with 16-bit intsJean-Marc Valin
As reported by Giovanni Rovatti, this should fix some TI C55 issues.
2015-12-31Renamed MAX_PULSES to SILK_MAX_PULSES and CELT_MAX_PULSESJean-Marc Valin
Avoids accidental name collisions
2015-12-23Fixes patch_transient_decision() for hybrid modeJean-Marc Valin
...and also make it not ignore the right channel
2015-12-23Oops, fixes max_decay for LFE in fixed-pointJean-Marc Valin
2015-12-04Make the CELT background noise estimator adapt more quickly on DTX updateJean-Marc Valin
2015-12-04Fixes memory leak in some CELT unit testsJean-Marc Valin
Reported in https://trac.xiph.org/ticket/2241
2015-12-04Always use the max of the decaying PLC energy and the background noiseJean-Marc Valin
Should no longer cause discontinuities in the noise after 5 packets
2015-12-04Fixes the transient detector on silenceJean-Marc Valin
Previously silence would cause the divide approximation on 0/0 to return a very large value, which would be interpreted as a transient
2015-11-22Fix x86 build if we presume SSE4.1 (and earlier), but not AVX.Jonathan Lennox
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
2015-11-05Adding AVX config switchesRadu Velea
Signed-off-by: Timothy B. Terriberry <tterribe@xiph.org>
2015-11-05Naming convention for AVXRadu Velea
Signed-off-by: Timothy B. Terriberry <tterribe@xiph.org>
2015-11-03Suppress generation of comb_filter_const_c when not used; avoid warning.Jonathan Lennox
2015-11-02Fix unit tests on ARM without RTCD (e.g. aarch64 or iOS).Jonathan Lennox
2015-10-08Adds "arch" argument to MIPS MDCTRhishikesh Agashe
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
2015-10-07Fix dump_modes output for fixed-point NE10.Timothy B. Terriberry
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.
2015-10-07armv7: Enable NE10's fixed-point FFT for the MDCTViswanath Puttagunta
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>
2015-10-07armv7: Optimize fixed point FFT using NE10 libraryViswanath Puttagunta
Uses NEON optimized fixed point FFT routines in NE10 library. Signed-off-by: Timothy B. Terriberry <tterribe@xiph.org>
2015-10-07test_unit_dft: Add nfft = 60, 240, 480 testsViswanath Puttagunta
Signed-off-by: Viswanath Puttagunta <viswanath.puttagunta@linaro.org> Signed-off-by: Timothy B. Terriberry <tterribe@xiph.org>
2015-10-07armv7(float): Optimize decode usecase using NE10 libraryViswanath Puttagunta
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>
2015-10-07armv7(float): Optimize encode usecase using NE10 libraryViswanath Puttagunta
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>
2015-10-07Add entcode.c to the dump_modes binary.Timothy B. Terriberry
This is needed for the SMALL_DIV_TABLE constants added in commit ec5d01cbe486.
2015-10-07Fixes compile problems for MIPSRhishikesh Agashe
Brings MIPS in sync with the ARM/SSE optimizations that added "arch" parameters. Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
2015-09-01Add intrinsics support to Visual Studio build.Jonathan Lennox
2015-09-01Reorganize x86 SSE intrinsics code.Jonathan Lennox
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.
2015-09-01Move SSE2 and SSE4.1 intrinsics functions to separate files, to be compiled ↵Jonathan Lennox
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.
2015-09-01Remove some unnecessary #includes from x86cpu.c.Jonathan Lennox
2015-09-01Fix struct initialization of CPU_Feature structure.Jonathan Lennox
2015-09-01Fix cpuid asm on 32-bit PIC.Jonathan Lennox
2015-09-01In optimized mode, don't force Clang to use explicit load/store for ↵Jonathan Lennox
_mm_cvtepi16_epi32, only for _mm_cvtepi8_epi32. Adjust comment accordingly.
2015-09-01Reorganize configure's detection of intrinsics functions:Jonathan Lennox
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-02-27Wrap _mm_cvtepi...() intrinsics in macros on clang.Timothy B. Terriberry
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.
2015-02-20Document how to tell if your build is fixed-point.Timothy B. Terriberry
This way we won't break this by accident.
2015-01-02Fix silk_VQ_WMat_EC_sse4_1().Timothy B. Terriberry
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.
2014-12-26Fix warnings in pedantic build.Timothy B. Terriberry
This should suppress our current issues with unused parameters, unused variables, and set-but-not-used variables.
2014-12-25armv7: celt_pitch_xcorr: Introduce ARM NEON intrinsicsViswanath Puttagunta
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-01Fix celt_pitch_xcorr_c signature.Timothy B. Terriberry
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.
2014-11-19float_cast: Fix MSVC ARM buildCameron Gutman
Signed-off-by: Tristan Matthews <tmatth@videolan.org>
2014-10-12tests: fix linking for --enable-fixed-point on ARMTristan Matthews
2014-10-03There are no tabs in source code.Timothy B. Terriberry
There is also no trailing whitespace.
2014-10-03Fix build bustage from c95c9a048.Timothy B. Terriberry
2014-10-03Cisco optimization for x86 & fixed pointxiangmingzhu
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>