summaryrefslogtreecommitdiff
path: root/celt
Commit message (Collapse)AuthorAgeFilesLines
* Fix comma that should have been a semicolonJean-Marc Valin2018-07-261-1/+1
| | | | | Didn't cause any problem, but still good to fix. Reported by keithchugg on github.
* Silence compiler warningsMark Harris2018-07-211-1/+1
| | | | | | | clang -Wcast-align warnings with ambisonics enabled clang -Wnull-pointer-arithmetic warnings in test_opus_api.c gcc -Wimplicit-fallthrough warnings on arm msvc warning C4244 in celt_encoder.c with fixed point
* Fix DISABLE_FLOAT_API unused parameter warningMark Harris2018-05-281-0/+2
|
* Only call isqrt32() with a positive argumentMark Harris2018-05-281-1/+2
| | | | Fixes test_opus_projection failure under ubsan, due to clz(0).
* Oops, fix NaN testJean-Marc Valin2018-05-171-1/+1
|
* Aborting on NaN in CELTJean-Marc Valin2018-05-152-0/+11
| | | | | | NaNs should be filtered at the Opus layer, so if there are any in the CELT encoder, then it's likely something went horribly wrong (e.g. corrupted state). In that case, better abort than have something bad happen.
* two more asserts I forgotJean-Marc Valin2018-03-271-0/+1
|
* Asserting on some ctl() calls that should never failJean-Marc Valin2018-03-271-0/+2
|
* Adding decoder state validationJean-Marc Valin2018-03-272-8/+48
|
* Adding ENABLE_HARDENINGJean-Marc Valin2018-03-2714-22/+36
| | | | Enables "safes" assertions even with ENABLE_ASSERTIONS isn't set
* Forgot one RFC8251 behaviour to disable with --disable-rfc8251Jean-Marc Valin2018-02-181-0/+2
| | | | Reported by daddesio in #opus
* Disabling weak transients and 5ms resolution on voiced framesJean-Marc Valin2018-02-151-2/+2
|
* Add a simple masking model to the spreading decisionJean-Marc Valin2018-02-133-8/+46
| | | | This improves cases where a whole region is dominated by a handful of tones
* Making sure importance[] is initialized even when we don't use dynallocJean-Marc Valin2018-02-131-0/+3
|
* oopsJean-Marc Valin2018-02-131-1/+1
|
* Improve TF analysis RDO to take into account how important each band isJean-Marc Valin2018-02-131-19/+34
| | | | Also adds the error terms for band 0 that were previously omitted
* Scaling back the pitch filter when most of the energy is above 3.2 kHzJean-Marc Valin2018-01-262-3/+7
| | | | That corresponds to the fundamental for the shortest pitch period allowed
* Fix unnecessary assignment.Roman Kalashnikov2017-10-301-1/+1
| | | | | | | Fixes a warning from PVS-Studio. This was a cut-and-paste error from the stanza above and had no effect. Signed-off-by: Ralph Giles <giles@thaumas.net>
* Enable RFC 8251 changes by defaultJean-Marc Valin2017-10-292-3/+3
|
* Fix entropy coder docJean-Marc Valin2017-10-082-2/+2
| | | | Addresses issue https://github.com/xiph/opus/issues/54
* Simplifying celt_fir5() since x==y and mem[]={0}Jean-Marc Valin2017-10-081-17/+10
| | | | Addresses issue https://github.com/xiph/opus/issues/58
* Fix #undef of constantJean-Marc Valin2017-10-081-1/+1
| | | | Reported in https://github.com/xiph/opus/issues/55
* Fixes CELT PLCJean-Marc Valin2017-10-062-15/+14
| | | | | The regression was introduced in 783ad76766e1f6b6aaca5d6eb415ac8a8269e1f2 by changes to celt_fir() that make it no longer in-place.
* Add RNN for VAD and speech/music classificationJean-Marc Valin2017-10-051-1/+2
| | | | Based on two dense layers with a GRU layer in the middle
* Rename arm ne10 assembly optimization files.Ralph Giles2017-09-112-2/+2
| | | | | | | | Make these consistent with the other optimization file sets which use a suffix to indicate the extension they use. Signed-off-by: Jonathan Lennox <jonathan@vidyo.com>
* Rename SSE 4.1 files to match their targets.Ralph Giles2017-09-111-0/+0
| | | | | | | | | Distinguish source files for the SSE 4.1 instruction set extension consistently by their filename. This makes it easier to check the correct flags are being set at build time. Signed-off-by: Jonathan Lennox <jonathan@vidyo.com>
* fix alignment exceptionsRay Essick2017-08-241-1/+3
| | | | | | | | | some SSE optimizations were using an instruction sequence that required 128-bit alignment, even though this is not always guaranteed. The error was in handling a 64-bit entity; made the same macro changes that had been done previously for 32-bit entities. Signed-off-by: Felicia Lim <flim@google.com>
* Fix celt_pitch_xcorr() ARM jump table compiling errorLinfeng Zhang2017-07-251-2/+6
| | | | | | | | This bug is introduced in commit 85fb8a1. Change-Id: I3822cdfc1308ca62ce03da008260de8f4b04596c Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
* Free all allocated memory in unit testsMark Harris2017-06-132-8/+15
|
* Clean celt_pitch_xcorr_float_neon()v1.2-rc1Linfeng Zhang2017-06-061-103/+2
| | | | | | | | Call celt_inner_prod_neon() and remove redundant code. Change-Id: I980e94330ae75c10297b9035fac221515aee144f Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
* Optimize floating-point celt_inner_prod() and dual_inner_prod() for ARM NEONLinfeng Zhang2017-06-064-6/+165
| | | | | | | | | | | 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>
* Optimize fixed-point celt_inner_prod() and dual_inner_prod() for ARM NEONLinfeng Zhang2017-06-063-0/+183
| | | | | | | | This optimization is bit exact with C functions. Change-Id: Ia9ce6dd3c20d2f56dbd43ddc02d1a6fd6554608d Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
* Replace call of celt_inner_prod_c() (step 2)Linfeng Zhang2017-06-066-41/+20
| | | | | | | | | | | | 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>
* Replace call of celt_inner_prod_c() (step 1)Linfeng Zhang2017-06-064-8/+9
| | | | | | | | | | | | Should call celt_inner_prod(). This change is bit exact as original, except for x86 floating-point. In x86 floating-point, it calls celt_inner_prod_sse() which may have different output with the change of floating-point operations' orders. Change-Id: Ia2381e2e198a84296ac28305183f15be842b3454 Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
* Recalibrate VBR to hit target bitrate on averageJean-Marc Valin2017-06-021-2/+2
|
* Update dynalloc VBR calibrationJean-Marc Valin2017-06-021-1/+1
|
* Adding leakage modelling to boost bandsexp_leakage7Jean-Marc Valin2017-06-012-6/+22
| | | | We boost bands that either cause leakage or are filled with leakage
* Let CBR use more bits for dynallocJean-Marc Valin2017-06-011-3/+3
| | | | It seems like letting CBR use up to 2/3 of the bit is still a win
* Fixes unit tests that need arch-specific codeJean-Marc Valin2017-05-258-141/+54
| | | | | We now include the object files for those rather than attempt to problems.
* Fixes a double->float conversion warningJean-Marc Valin2017-05-241-1/+1
|
* Fixes some fixed-point 16-bit int overflowsv1.2-betaJean-Marc Valin2017-05-242-2/+2
| | | | | The code would have run fine on 32-bit archs, but would have overflowed on a 16-bit arch
* Reducing trim at low bitrateJean-Marc Valin2017-05-241-2/+10
| | | | | | | | | | | | Some informal tests seem to confirm that reducing the trim at 32-64 kbps improves quality (better HF). It's not clear whether it's also the case at 96 kb/s and above, so we're leaving it as is for those rates. This corresponds to buildC in this thread: https://hydrogenaud.io/index.php/topic,113985.0.html Also see: https://hydrogenaud.io/index.php/topic,111798.0.html
* Fix compiler warningsMark Harris2017-02-267-20/+11
| | | | | | | | | | | | | | | | | | | - 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 sum initializer in celt_fir()Jean-Marc Valin2017-02-181-4/+5
|
* Remove SMALL_FOOTPRINT code for celt_fir()Jean-Marc Valin2017-02-171-20/+10
| | | | | Wasn't worth it given the small code size of the alternative, which also got refactored a little (still bit exact).
* Increasing GLOBAL_STACK_SIZE to 120000 to avoid failureJean-Marc Valin2017-02-151-2/+2
| | | | | | Cannot prove it's the correct value, but it's better than the previous values, which sometimes segfaults. The increase was made necessary due to 120 ms frame size support.
* Reduce the scope of Ne10 includesMichael Bradshaw2017-02-154-4/+3
| | | | | | | libopus only uses the DSP module of Ne10, and never uses the init functions. Signed-off-by: Michael Bradshaw <mjbshaw@google.com> Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
* Remove #include "config.h" from ARM Ne10 headersMichael Bradshaw2017-02-152-2/+0
| | | | | Signed-off-by: Michael Bradshaw <mjbshaw@google.com> Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
* arm2gnu.pl: Fix GNU ARM .type directiveMark Harris2017-02-041-2/+2
| | | | | | Broken by 76e831d. Without the .type directive, SIGILL may be produced if the C code is compiled in Thumb mode, because the compiler may assume that the asm symbol is also Thumb and call it using a BL instruction.
* Avoids undefined behaviour in ARM-optimized codeJean-Marc Valin2017-01-252-5/+5
| | | | Casting to unsigned to avoid shifting negative values left.