aboutsummaryrefslogtreecommitdiff
path: root/silk
AgeCommit message (Collapse)Author
2016-02-09Expand SILK macro to avoid "Wexpansion-to-defined" violationflim
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
2015-12-31Renamed MAX_PULSES to SILK_MAX_PULSES and CELT_MAX_PULSESJean-Marc Valin
Avoids accidental name collisions
2015-11-05Adding AVX config switchesRadu Velea
Signed-off-by: Timothy B. Terriberry <tterribe@xiph.org>
2015-11-02Declare silk_warped_LPC_analysis_filter_FIX_c in silk/fixed/main_FIX.h.Jonathan Lennox
Fixes build failure on platforms with MAY_HAVE_SSE4_1 (but not PRESUME_SSE4_1) with --enable-intrinsics.
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-01Create OPUS_FAST_INT64 macro, to abstract conditions where opus_int64 should ↵Jonathan Lennox
be used. This patch adds a macro abstracting the condition under which the silk math macros use opus_int64-based calculations rather than opus_int32. No substantive change, but will make it easier to adjust if additional such platforms are found in the future.
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-08-10Fix for flutter with FECKoen Vos
The bug was caused by an improper feedback of the per-frame bitrate, causing the bitrate to jump up and down from frame to frame, within a packet. The patch avoids this, and also gives a slight improvement in general for multi-frame packets, even without FEC. Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
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-10-03There are no tabs in source code.Timothy B. Terriberry
There is also no trailing whitespace.
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>
2014-07-01Using 64-bit acculumation for C0 in silk_burg_modified()Marcello Caramma (mcaramma)
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
2014-06-20Merge branch 'exp_mips_opt'Jean-Marc Valin
2014-06-20Fixes CNG overflows from the previous commitKoen Vos
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
2014-06-19Fixes CNG to address the DTX issue reported by Gonzalo MarianoKoen Vos
- Bug fix: the CNG synthesis filter output consisted of only the prediction values, now added the input to that. - CNG excitation level now takes into account the level from the PLC (since both PLC and CNG can be active at the same time). - CNG is now called before PLC_glue() to smoothen the transition out of CNG. Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
2014-06-19Whitespace fixesJean-Marc Valin
2014-06-19MIPS optimizationsRhishikesh Agashe
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
2014-06-18Fixes a bug in silk_sum_sqr_shift() that was causing issues with Burg.Jean-Marc Valin
When an overflow happened in silk_sum_sqr_shift(), the sample pair causing the overflow would be counted twice. This would lead to the C0 in silk_burg_modified() being too large and cause problems on loud, tonal signals. Thanks to Marcello Caramma for tracking down the problem.
2014-02-06Fixes internal check_control_input() error checking.maks
The code was wrong, but did not have any impact on user-visible behaviour because all it did was change an internal-only error code. Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
2014-01-07Minor refactoring of the SILK PLC code to save more stackJean-Marc Valin
2014-01-07Another aliasing hack in the SILK PLC with SMALL_FOOTPRINTJean-Marc Valin
2014-01-07Don't allocate pulses on the stack when calling the SILK PLC.Jean-Marc Valin
Also minor C89 fix for the previous commit
2014-01-07Delaying allocation of the SILK temporary output buffer to reduce peak stackJean-Marc Valin
2014-01-06Store decoded SILK pulses as 16-bit vectorJean-Marc Valin
This saves 640 bytes on the peak stack usage.
2013-12-09Makes silk_inner_prod_aligned() use celt_inner_prod() in fixed-point.Jean-Marc Valin
Should make it easier when writing assembly.
2013-11-20Makes pitch gain control less aggressiveJean-Marc Valin
2013-11-20Using the maximum frequency response of pitch taps instead of maxabsJean-Marc Valin
2013-11-20Constrains accumulated pitch gain to avoid potential instability.Koen Vos
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
2013-11-18Adds Neon assembly for correlation/convolutionTimothy B. Terriberry
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-15Adds OPUS_SET_PREDICTION_DISABLED() ctl to force "independent" framesJean-Marc Valin
Works by turning off pitch and energy prediction in CELT, while setting first_frame_after_reset in SILK to disable pitch and LSF interpolation and reduce LPC gain.
2013-11-12Fixes an initialization issue in SILK prefill found by CoverityJean-Marc Valin
2013-11-11More size-zero VLA fixes and making opus_decode* return BAD_ARG on framesize<0Jean-Marc Valin
2013-11-09Fixes some minor issues found by scan buildJean-Marc Valin
2013-11-04This should be less confusing for static analyzersJean-Marc Valin
Code behaviour is unchanged
2013-10-28Replace "inline" with OPUS_INLINE.Gregory Maxwell
Newer versions of MSVC are unhappy with the strategy of the build environment redefining "inline" (even though they don't support the actual keyword). Instead we define OPUS_INLINE to the right thing in opus_defines.h. This is the same approach we use for restrict.
2013-10-23Remove dead codeStefan Beller
The compiler warned: silk/float/pitch_analysis_core_FLP.c: In function 'silk_P_Ana_calc_corr_st3': silk/float/pitch_analysis_core_FLP.c:499:36: warning: variable 'basis_ptr' set but not used [-Wunused-but-set-variable] const silk_float *target_ptr, *basis_ptr; This means we can safely remove it. Signed-off-by: Stefan Beller <stefanbeller@googlemail.com> Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
2013-09-16Remove trailing whitespace from the license headers.Ralph Giles
2013-08-29Implements fixed-point silk_LPC_analysis_filter() in terms of celt_fir()Jean-Marc Valin
Saves 2.5% on ARM without any asm. The float build still uses the old code because celt_fir() then becomes a float function.
2013-08-28Converts the fixed-point silk_burg_modified() to use celt_pitch_xcorr()Jean-Marc Valin
bit-exact with original version
2013-08-28Share auto-correlation code between SILK and CELTJean-Marc Valin
2013-08-26Makes the SILK pitch search use celt_pitch_xcorr()Jean-Marc Valin
Should gives us ARM/SSE optimizations for free.
2013-07-15Disable MSVC posix security warnings in the project file.Ralph Giles
By default Visual Studio warns about various C stdlib calls, recommending non-portable replacements instead. We disable this warning in a number of places in the source. Since they're specific to the Visual Studio build, it's better to disable them just in the project files where they always apply to the correct toolchain. I have only added the disable setting to project files which need it currently: opus, test_opus_encode, and test_opus_decode.
2013-07-15Conditionalize #pragma warn for MSVC.Ralph Giles
This warning disable was conditional on _WIN32, which mingw also defines, resulting in a warning about the unknown pragma on gcc. Instead make it depend on something only the Visual Studio compiler defines.
2013-07-15Revert "Fixes a number of double promotions and missing casts."Gregory Maxwell
This reverts commit 43279728cd39947f95dbf77557a0a698f164fdd1.
2013-07-15Fixes a number of double promotions and missing casts.Gregory Maxwell
At a minimum MSVC warns on some of this stuff.
2013-06-27Big squashed commit of Garf's MSVC reorg:Jean-Marc Valin
commit 77880655f652c54415e4b5f03b5984b951f5267b Author: Timothy B. Terriberry <tterribe@xiph.org> Date: Wed Jun 26 12:23:53 2013 +0200 Fix version.mk parsing in genversion.bat. This was broken by the changes in 0482c82f to make it work with spaces. CMD interprets the quotes to mean the argument to FOR is a string, not a file name. Instead, we expand the path to a short file name. Signed-off-by: Gian-Carlo Pascutto <gcp@sjeng.org> commit 8e97847ecac3a04956747b117fefef14939cbcbe Merge: 0482c82 3c0aa8f Author: Gian-Carlo Pascutto <gcp@sjeng.org> Date: Wed Jun 26 12:19:41 2013 +0200 Merge branch 'master' into msvc_reorg commit 0482c82fea6dd397a7d2ab50dc6cda4965278fc2 Author: Gian-Carlo Pascutto <gcp@sjeng.org> Date: Tue May 21 17:59:30 2013 +0200 Make genversion.bat work in paths with spaces. commit 3648ec55b7511119735280fc49bc57c7a3b55d6a Author: Gian-Carlo Pascutto <gcp@sjeng.org> Date: Tue May 21 17:42:14 2013 +0200 Rework output & intermediate dirs for parallel build support. commit c367a0fcfcbf5551fb65d61365d9b832d7af2b38 Merge: bafb1dd b518b56 Author: Gian-Carlo Pascutto <gcp@sjeng.org> Date: Tue May 21 14:17:11 2013 +0200 Merge branch 'master' into msvc_reorg Conflicts: win32/VS2010/celt.vcxproj win32/VS2010/opus.vcxproj win32/VS2010/silk_common.vcxproj win32/VS2010/silk_float.vcxproj commit bafb1dda3fcf6785decdfb42a1f934c7fab0c567 Author: Gian-Carlo Pascutto <gcp@sjeng.org> Date: Mon Mar 11 21:25:28 2013 +0100 Fix two more files to not have the Platform Toolset explicitly set. commit c69c870201fec7461862fe79731a37866a1810f1 Author: Gian-Carlo Pascutto <gcp@sjeng.org> Date: Mon Mar 11 21:08:00 2013 +0100 Add missing SILK MSVC project files. commit a0d41fb7f97558c8f812d500b9027c77907c37c0 Author: Gian-Carlo Pascutto <gcp@sjeng.org> Date: Fri Mar 8 15:00:51 2013 +0100 Use the default toolset in the MSVC project files. commit 34aac5b2637ed38c5620f0d876e08db232849933 Author: Gian-Carlo Pascutto <gcp@sjeng.org> Date: Fri Mar 8 14:54:41 2013 +0100 Move the MSVC project files outside the source tree. Bring the project structure more in line with the one in libogg.
2013-05-23Move misplaced RESTORE_STACK.Timothy B. Terriberry
Introduced in c152d602. Thanks to Pedro Becerra for the report.
2013-05-23Move misplaced RESTORE_STACK.Timothy B. Terriberry
Introduced in c152d602. Thanks to Pedro Becerra for the report.
2013-05-21Move ARM asm into its own directories.Timothy B. Terriberry
2013-05-20Clean up register constraints.Timothy B. Terriberry
http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0068b/CIHBJEHG.html says that "Rd cannot be the same as Rm." http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0068b/CIHBJEHG.html says that "RdLo, RdHi, and Rm must all be different registers." This means that some of the early clobbers I removed really should have been there (to prevent aliasing Rd, RdLo, or RdHi with Rm). It also means that we should reverse some of the operands in the FFT's complex multiplies. This should only affect the ARMv4 optimizations. Thanks to Nils Wallménius for the report. While we're here, audit the commutative pair flags again, since I screwed up at least one of them, and eliminate some dead code.