summaryrefslogtreecommitdiff
path: root/silk
Commit message (Collapse)AuthorAgeFilesLines
...
* silk_LIMIT_32() should return an opus_int32 (not opus_int)Jean-Marc Valin2017-05-301-1/+1
| | | | | Thanks to petrufm for pointing that out: https://github.com/xiph/opus/issues/35
* cosmetics,silk: correct input/output arg commentsLinfeng Zhang2017-05-238-17/+17
| | | | | | Change-Id: I607a8b75b0711a485384d6f854cf6e2ec18b38b7 Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
* Optimize silk_biquad_alt_stride2() for ARM NEONLinfeng Zhang2017-05-175-2/+245
| | | | | | | | The optimization is bit exact with C function. Change-Id: Ifb8f04b19f2d576e79ce5dcfa7e0fc374d71d6c8 Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
* Update silk_biquad_alt()Linfeng Zhang2017-05-173-9/+60
| | | | | | | | | | | Split to silk_biquad_alt_stride1() and silk_biquad_alt_stride2(), so that it can be optimized more efficiently when stride is 2. This change in C code is bit exact with the origin. Change-Id: Idaefe670397016ace2a489e3435ac61b7dbe79d5 Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
* Optimize silk_warped_autocorrelation_FIX() for ARM NEONLinfeng Zhang2017-04-138-10/+366
| | | | | | | | | | | The optimization is bit exact with C function. This optimization speeds up fixed-point SILK encoder on NEON about 5% to 8%. (Tested on Acer Chromebook, ARMv7 Processor rev 3 (v7l).) Change-Id: I582f6f3585b7946149e16a2ad3084ebc0ae79a4f Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
* Fix compiler warningsMark Harris2017-02-266-17/+19
| | | | | | | | | | | | | | | | | | | - celt/modes.c:430:14: warning: cast from 'const unsigned char *' to 'opus_int16 *' increases required alignment from 1 to 2 [-Wcast-align] - 'C[0][1]' may be used uninitialized [-Wmaybe-uninitialized] - Unused variable/parameter - Value stored is never read - MSVC warnings about "possible loss of data" due to type conversions - MSVC warning C4146: unary minus operator applied to unsigned type - silk/NLSF_del_dec_quant.c:137:20: warning: array subscript is above array bounds [-Warray-bounds] (gcc -O3 false positive) - src/mlp_train.h:39:20: warning: function declaration isn't a prototype [-Wstrict-prototypes] - Remove SMALL_FOOTPRINT code from SSE 4.1 FIR implementation, matching the C implementation. The clang -Wcast-align warnings with SSE intrinsics are a known clang issue: https://llvm.org/bugs/show_bug.cgi?id=20670
* Fix stability testJean-Marc Valin2017-02-181-1/+1
|
* Speed up test_unit_LPC_inv_pred_gain by returning early on stable filtersJean-Marc Valin2017-02-181-0/+10
|
* Optimize silk_LPC_inverse_pred_gain() for ARM NEONLinfeng Zhang2017-02-1418-21/+384
| | | | | | | | The optimization is bit exact with C function. Change-Id: Ib3bdc26a5a4ebe02e7f24be85104e8e9a2a9a738 Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
* Adding a unit test for LPC_inv_pred_gain()Jean-Marc Valin2017-02-141-0/+118
| | | | | | | It checks that no clearly unstable filter passes the LPC_inv_pred_gain() test. Also, this will make it possible to check assembly for correctness. Modified from an original patch from Linfeng Zhang <linfengz@google.com>.
* Remove silk_LPC_inverse_pred_gain_Q24() which is no longer used anywhereJean-Marc Valin2017-02-092-26/+0
|
* fix ARM build w/--disable-intrinsics --enable-asmJames Zern2017-02-041-1/+1
| | | | | | | | | and rtcd disabled (CFLAGS=-mfpu=neon) broken since: cfdaf365 Optimize silk_NSQ_del_dec() for ARM NEON Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
* Optimize silk_NSQ_del_dec() for ARM NEONLinfeng Zhang2017-01-305-1/+1255
| | | | | | | | | | | | | | | | The optimization is bit exact with C function. This optimization speeds up SILK encoder on NEON as following. Fixed-point: Complexity 0-5: 0% Complexity 6-7: 6% Complexity 8-9: 10% Complexity 10: 8% Got similar results on floating-point. Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
* Avoids undefined behaviour in ARM-optimized codeJean-Marc Valin2017-01-253-20/+35
| | | | Casting to unsigned to avoid shifting negative values left.
* Update NSQ_LPC_BUF_LENGTH macroLinfeng Zhang2017-01-231-4/+0
| | | | | | NSQ_LPC_BUF_LENGTH is independent of DECISION_DELAY. Signed-off-by: Felicia Lim <flim@google.com>
* Add FIXED_POINT check if using celt_fir in SILK's LPC analysis filterFelicia Lim2017-01-171-2/+2
| | | | Use of celt_fir remains off by default
* Revise celt_fir_c() to not pass in argument "mem"Linfeng Zhang2017-01-171-5/+1
| | | | | | | | The "mem" in celt_fir_c() either is contained in the head of input "x" in reverse order already, or can be easily attached to the head of "x" before calling the function. Removing argument "mem" can eliminate the redundant buffer copies inside. Update celt_fir_sse4_1() accordingly.
* Fix some compiler warningsMark Harris2016-12-221-5/+0
|
* Correct SILK encoder gain limitMark Harris2016-11-161-0/+1
| | | | | | | Ensure that the SILK encoder's log gain is 63, not 64, when encoding a maximum-value delta gain index of 40. This matches the decoder and RFC 6716 4.2.7.4, and prevents an assertion failure in the rare case that the gain is later independently coded.
* Remove SILK_DEBUG define when _WIN32 and _DEBUG are defined.Ralph Giles2016-11-101-17/+4
| | | | | This was just enabling commented-out code, setting a fixed default removes dead code.
* Remove commented-out DEBUG_STORE_DATA calls. r=keonRalph Giles2016-11-105-6/+0
| | | | | | | | | | | | | | Also remove the SILK_DEBUG_STORE_CLOSE_FILES flush call from opus_demo. This is debugging code which is no longer used, but defining the symbols for SILK_DEBUG_STORE_CLOSE_FILES and calling it from opus_demo causes linking problems on Microsoft Visual Studio where we have strict controls on public symbols and want to test the compiled DLL. Since the code isn't in active use, it's better to remove it to avoid clutter and address the linking issue.
* Eliminate trailing spacesMark Harris2016-11-022-4/+4
|
* Fixing some opus_int vs opus_int32 mismatchesJean-Marc Valin2016-10-052-3/+4
| | | | Reported by Mark Warner.
* Fixes an overflow in LPC_inverse_pred_gain_QA()Jean-Marc Valin2016-08-171-2/+13
| | | | We now declare that anything that would overflow is not stable enough
* Speeding up PVQ using unlikely() and moving first position out of the loopJean-Marc Valin2016-08-061-8/+0
| | | | Speeds up encoding by another ~1-2%
* Making it clearer to Coverity that nStates cannot exceed ↵Jean-Marc Valin2016-08-051-1/+1
| | | | NLSF_QUANT_DEL_DEC_STATES
* Fixes overflow in CNGJean-Marc Valin2016-07-301-1/+1
| | | | (found through fuzzing)
* Ensure that NLSF cannot be negative when computing a min distance between themFelicia Lim2016-07-281-1/+1
| | | | Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
* Disabling the use of celt_fir() in silk_LPC_analysis_filter() by defaultJean-Marc Valin2016-07-251-2/+9
|
* Fixes an overflow in limit_warped_coefs()Jean-Marc Valin2016-07-251-4/+7
| | | | | For large values of maxabs_Q20, silk_MUL( maxabs_Q20, ind + 1 ) could overflow.
* Avoiding an overflow in the LTP quantizationJean-Marc Valin2016-07-221-1/+1
| | | | | Reduces the XX values to avoid an overflow in silk_VQ_WMat_EC(), even in floating-point.
* Disables MIPS silk_noise_shape_analysis_FIX() until it's updatedJean-Marc Valin2016-07-221-1/+2
|
* More headroom in fixed-point silk_burg_modified() to avoid an overflowJean-Marc Valin2016-07-221-1/+1
|
* Increase headroom in silk_warped_autocorrelation_FIX()Jean-Marc Valin2016-07-221-1/+1
|
* Increase headroom to avoid overflow in silk_pitch_analysis_core()Jean-Marc Valin2016-07-221-1/+1
|
* Avoids undefined behaviour from left-shifting negative valuesJean-Marc Valin2016-07-201-2/+2
|
* Fix include warningTristan Matthews2016-07-191-0/+1
|
* Fix include warningTristan Matthews2016-07-191-0/+1
|
* Moving FEC decision to the Opus encoder level (from SILK level)Jean-Marc Valin2016-07-195-27/+14
|
* CBR: set gains to their previons values where we're busting the budgetJean-Marc Valin2016-07-192-6/+42
|
* Set pulses to zero if we can't meet rate targetJean-Marc Valin2016-07-192-0/+26
|
* Now that we're preventing huge gains, we no longer need to pretend there'sJean-Marc Valin2016-07-192-7/+0
| | | | no dither
* CBR: lock the gain on a subframe when the number of pulses stops going downJean-Marc Valin2016-07-192-2/+50
|
* merge back in the LTP gain safety limiterKoen Vos2016-07-1910-9/+74
|
* CBR: Using the same gain increase for fixed-point as for floatJean-Marc Valin2016-07-191-5/+10
|
* comment about reduced codelength component in LTP quantizer error metricKoen Vos2016-07-191-2/+3
|
* avoid double if statement for finding best quantized LTP coefsKoen Vos2016-07-191-4/+2
|
* increase NSQ decision delay from 32 to 40Koen Vos2016-07-195-14/+20
|
* reduced noise floor in noise shaping analysis by 2 dBKoen Vos2016-07-191-1/+1
|
* increase order of noise shaping filterKoen Vos2016-07-196-13/+12
|