aboutsummaryrefslogtreecommitdiff
path: root/celt
AgeCommit message (Collapse)Author
2019-04-08Fix build errors using Makefile.mipsMark Harris
Broken by earlier ARM optimizations.
2019-04-01Fix #elif OPUS_ARM_INLINE_EDSPJean-Marc Valin
Reported in https://github.com/xiph/opus/issues/108
2019-03-01Fix mismatching arg names in function declaration and definitionFelicia Lim
2019-01-20Fix FIXED_POINT conditional checkevpobr
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
2018-10-31Make float2int() static with VSJean-Marc Valin
Addresses the rest of https://github.com/xiph/opus/pull/79
2018-10-16Proper detection of _mm_cvtss_si32 for MS compilerPavel P
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
2018-10-16Renaming compute_allocation to clt_compute_allocation() to avoid symbol clashesJean-Marc Valin
As suggested in https://github.com/xiph/opus/pull/83
2018-07-28Work around VS2015 internal compiler errorMark Harris
The error was: c:\projects\opus\celt\celt_encoder.c(1019): fatal error C1001: An internal error has occurred in the compiler. [C:\projects\opus\win32\VS2015\opus.vcxproj] (compiler file 'f:\dd\vctools\compiler\utc\src\p2\main.c', line 255) To work around this problem, try simplifying or changing the program near the locations listed above. Please choose the Technical Support command on the Visual C++ Help menu, or open the Technical Support help file for more information Internal Compiler Error in C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\x86_amd64\CL.exe. You will be prompted to send an error report to Microsoft later.
2018-07-26Fix comma that should have been a semicolonJean-Marc Valin
Didn't cause any problem, but still good to fix. Reported by keithchugg on github.
2018-07-21Silence compiler warningsMark Harris
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
2018-05-28Fix DISABLE_FLOAT_API unused parameter warningMark Harris
2018-05-28Only call isqrt32() with a positive argumentMark Harris
Fixes test_opus_projection failure under ubsan, due to clz(0).
2018-05-17Oops, fix NaN testJean-Marc Valin
2018-05-15Aborting on NaN in CELTJean-Marc Valin
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.
2018-03-27two more asserts I forgotJean-Marc Valin
2018-03-27Asserting on some ctl() calls that should never failJean-Marc Valin
2018-03-27Adding decoder state validationJean-Marc Valin
2018-03-27Adding ENABLE_HARDENINGJean-Marc Valin
Enables "safes" assertions even with ENABLE_ASSERTIONS isn't set
2018-02-18Forgot one RFC8251 behaviour to disable with --disable-rfc8251Jean-Marc Valin
Reported by daddesio in #opus
2018-02-15Disabling weak transients and 5ms resolution on voiced framesJean-Marc Valin
2018-02-13Add a simple masking model to the spreading decisionJean-Marc Valin
This improves cases where a whole region is dominated by a handful of tones
2018-02-13Making sure importance[] is initialized even when we don't use dynallocJean-Marc Valin
2018-02-13oopsJean-Marc Valin
2018-02-13Improve TF analysis RDO to take into account how important each band isJean-Marc Valin
Also adds the error terms for band 0 that were previously omitted
2018-01-26Scaling back the pitch filter when most of the energy is above 3.2 kHzJean-Marc Valin
That corresponds to the fundamental for the shortest pitch period allowed
2017-10-30Fix unnecessary assignment.Roman Kalashnikov
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>
2017-10-29Enable RFC 8251 changes by defaultJean-Marc Valin
2017-10-08Fix entropy coder docJean-Marc Valin
Addresses issue https://github.com/xiph/opus/issues/54
2017-10-08Simplifying celt_fir5() since x==y and mem[]={0}Jean-Marc Valin
Addresses issue https://github.com/xiph/opus/issues/58
2017-10-08Fix #undef of constantJean-Marc Valin
Reported in https://github.com/xiph/opus/issues/55
2017-10-06Fixes CELT PLCJean-Marc Valin
The regression was introduced in 783ad76766e1f6b6aaca5d6eb415ac8a8269e1f2 by changes to celt_fir() that make it no longer in-place.
2017-10-05Add RNN for VAD and speech/music classificationJean-Marc Valin
Based on two dense layers with a GRU layer in the middle
2017-09-11Rename arm ne10 assembly optimization files.Ralph Giles
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>
2017-09-11Rename SSE 4.1 files to match their targets.Ralph Giles
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>
2017-08-24fix alignment exceptionsRay Essick
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>
2017-07-25Fix celt_pitch_xcorr() ARM jump table compiling errorLinfeng Zhang
This bug is introduced in commit 85fb8a1. Change-Id: I3822cdfc1308ca62ce03da008260de8f4b04596c Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
2017-06-13Free all allocated memory in unit testsMark Harris
2017-06-06Clean celt_pitch_xcorr_float_neon()Linfeng Zhang
Call celt_inner_prod_neon() and remove redundant code. Change-Id: I980e94330ae75c10297b9035fac221515aee144f Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
2017-06-06Optimize floating-point celt_inner_prod() and dual_inner_prod() for ARM NEONLinfeng Zhang
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>
2017-06-06Optimize fixed-point celt_inner_prod() and dual_inner_prod() for ARM NEONLinfeng Zhang
This optimization is bit exact with C functions. Change-Id: Ia9ce6dd3c20d2f56dbd43ddc02d1a6fd6554608d Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
2017-06-06Replace call of celt_inner_prod_c() (step 2)Linfeng Zhang
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>
2017-06-06Replace call of celt_inner_prod_c() (step 1)Linfeng Zhang
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>
2017-06-02Recalibrate VBR to hit target bitrate on averageJean-Marc Valin
2017-06-02Update dynalloc VBR calibrationJean-Marc Valin
2017-06-01Adding leakage modelling to boost bandsJean-Marc Valin
We boost bands that either cause leakage or are filled with leakage
2017-06-01Let CBR use more bits for dynallocJean-Marc Valin
It seems like letting CBR use up to 2/3 of the bit is still a win
2017-05-25Fixes unit tests that need arch-specific codeJean-Marc Valin
We now include the object files for those rather than attempt to problems.
2017-05-24Fixes a double->float conversion warningJean-Marc Valin
2017-05-24Fixes some fixed-point 16-bit int overflowsJean-Marc Valin
The code would have run fine on 32-bit archs, but would have overflowed on a 16-bit arch
2017-05-24Reducing trim at low bitrateJean-Marc Valin
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