summaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* Switch from narrowband to wideband at 9 kb/s, don't use mediumbandexp_bandwidth_fix4Jean-Marc Valin2018-05-241-8/+12
|
* Fix decision thresholds for larger frame sizesexp_bandwidth_fix3Jean-Marc Valin2018-05-241-1/+2
| | | | Don't assume that frames larger than 20 ms save any overhead compared to 20 ms.
* Fixes a SILK bandwidth switching regressionJean-Marc Valin2018-05-241-2/+5
| | | | | | | The bug was triggered because f982b84d started using prefill for SILK bandwidth changes, which reinitialized the encoder state and prevented the variable lowpass from working properly. To fix the problem, we preserve the sampling rate and variable low-pass when prefilling.
* Silk makes use of Opus VADGustaf Ullberg2018-05-141-2/+11
| | | | Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
* Misc assertion cleanupJean-Marc Valin2018-03-272-3/+4
|
* Some missing checksJean-Marc Valin2018-03-272-1/+3
|
* Adding multistream decoder validationJean-Marc Valin2018-03-271-0/+16
|
* Asserting on some ctl() calls that should never failJean-Marc Valin2018-03-271-14/+14
|
* Adds Opus decoder state validationJean-Marc Valin2018-03-271-0/+21
|
* Fixing no-redundancy CELT->SILK and CELT->hybrid transitionsJean-Marc Valin2018-03-271-20/+28
| | | | | We make sure the CELT PLC we do in the transition uses the same bandwidth as the previous (CELT) packet and not the new bandwidth
* Support for Ambisonics.Andrew Allen2018-03-212-0/+190
| | | | Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
* Using a first-order filter for DC rejectionJean-Marc Valin2018-03-121-32/+12
| | | | | | | | | A second-order DC rejection filter is uselsss unless we have complex poles. However, complex poles means we have to compute the filter as a single pass (rather than two casdaded first-order filters), which has numerical issues that would require a higher complexity to solve. So rather than waste cycles with a second-order filter (with a longer impulse response), we just go with a first-order filter.
* Fix comment to take into account previous commitJean-Marc Valin2018-02-211-1/+1
|
* Increasing the CELT bit allocation slightly for stereo hybridJean-Marc Valin2018-02-211-1/+1
| | | | | | Fixes a "regression" from 1.2 to 1.3-beta that was especially noticeable on a Korean speech sample. (it wasn't a real regression since 1.2 only worked because it was using CELT)
* Fix divide-by-zeros in opus_demo stats codeJean-Marc Valin2018-02-201-11/+20
|
* Scaling back the pitch filter when most of the energy is above 3.2 kHzJean-Marc Valin2018-01-261-0/+15
| | | | That corresponds to the fundamental for the shortest pitch period allowed
* Fixes NaN issues in compute_stereo_width()Jean-Marc Valin2017-12-311-0/+6
|
* Decouple OpusProjection* API from static matrices.Andrew Allen2017-12-072-32/+68
| | | | | Change-Id: I3db285875b6b5548decc436be00096b97be1be3c Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
* Ensure mapping matrix size is always valid.Andrew Allen2017-12-074-4/+33
| | | | Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
* Fix memory issues in Projection API.Andrew Allen2017-12-077-190/+345
| | | | | | Modified by Jean-Marc Valin Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
* fix float constantsJean-Marc Valin2017-11-161-1/+1
|
* Tuning decision thresholds for low-bitrate musicJean-Marc Valin2017-11-161-13/+20
|
* Fix matrix export via CTL func.Andrew Allen2017-11-102-6/+10
| | | | | | | | Ensure matrix is properly exported from projection encoder. Change-Id: I5ede77e4f4d0dc82074e2230780777af542a416e Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
* Retrained speech/music RNNJean-Marc Valin2017-11-093-205/+642
| | | | Larger network, using 8-bit weights
* Support for Channel Mapping 253Andrew Allen2017-11-077-44/+1104
| | | | | | | | | OpusProjection* classes MixingMatrix class Projection tests Change-Id: I98644466abf4ffd36e48bdecad1204d69e1539b9 Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
* Fixing (hopefully) bandwidth detection for 24 kHz analysisJean-Marc Valin2017-10-061-20/+31
| | | | | | | | | The masking term was previously completely broken (even in 1.1). The bandwidth detection relies mostly on the noise floor and can only use masking to cut one extra band. The 12-24 kHz energy is now normalized properly but uses a higher noise floor due to the leakage in the resampler. Bandwidth detection is still mostly useless at identifying SWB speech (it usually says FB).
* float constantsJean-Marc Valin2017-10-051-1/+1
|
* Add RNN for VAD and speech/music classificationJean-Marc Valin2017-10-058-942/+454
| | | | Based on two dense layers with a GRU layer in the middle
* Better rate allocation for stereo SILK in hybrid modeJean-Marc Valin2017-09-281-4/+12
| | | | | | | SILK was being allocated too few bits for stereo hybrid, often resulting in forced narrowing of the width. We now allocate more bits to SILK and reduce the threshold for narrowing. This improves quality enough that the bitrate threshold for switching to SILK can be increased to 44 kb/s.
* Fix typo in a comment in opus_decoder.cMatt Brubeck2017-08-291-1/+1
| | | | Signed-off-by: Ralph Giles <giles@thaumas.net>
* Fix uninitialized variables in decide_dtx_mode()Andrew Larkin2017-07-061-6/+5
| | | | Signed-off-by: Felicia Lim <flim@google.com>
* Working around misdetected audio bandwidthJean-Marc Valin2017-06-262-2/+9
| | | | | | The new detector for SWB vs FB is unreliable due to the hack that was required to get 24 kHz analysis working. We're now err on the side of FB just to make sure.
* Add "f" suffix to float constantsv1.2Jean-Marc Valin2017-06-191-6/+6
|
* Improving tonality estimation with delayed decisionJean-Marc Valin2017-06-101-1/+9
|
* Replace call of celt_inner_prod_c() (step 1)Linfeng Zhang2017-06-061-1/+1
| | | | | | | | | | | | 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>
* Initialize speech/music prob based on applicationJean-Marc Valin2017-06-043-4/+16
|
* Properly compute redundancy_bytesJean-Marc Valin2017-06-041-8/+34
|
* Properly init speech/music confidence valuesJean-Marc Valin2017-06-041-5/+2
| | | | | This was sometimes causing the music probability to be stuck at zero at the beginning of files
* fix commentsJean-Marc Valin2017-06-011-3/+3
|
* Avoid using log2() since it's not in C90Jean-Marc Valin2017-06-011-2/+2
|
* Adding leakage modelling to boost bandsexp_leakage7Jean-Marc Valin2017-06-011-0/+52
| | | | We boost bands that either cause leakage or are filled with leakage
* Analysis refactoring for fixed-point scalingJean-Marc Valin2017-06-011-8/+12
| | | | Now scaling the energy to the same value is would be in floating-point
* Fix memory leaks in opus_compare.cJean-Marc Valin2017-05-261-0/+3
| | | | This makes it possible to run the testvectors with asan enabled.
* Fixes a surround bug on loud signalJean-Marc Valin2017-05-231-1/+1
| | | | | The constant was copied from the analysis code which uses +/-1 as float scaling, but surround_analysis() uses +/-32767.
* Optimize silk_biquad_alt_stride2() for ARM NEONLinfeng Zhang2017-05-171-3/+4
| | | | | | | | 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-171-3/+4
| | | | | | | | | | | 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>
* oops, fix build broken by previous patchJean-Marc Valin2017-04-281-2/+0
|
* Non-diegetic support for Ambisonics Mapping 254.Drew Allen2017-04-281-23/+90
| | | | Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
* Fix compiler warningsMark Harris2017-02-267-51/+56
| | | | | | | | | | | | | | | | | | | - 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
* Rename y0/y1 to out0/out1 to avoid name clash with the Bessel functionsJean-Marc Valin2017-02-141-5/+5
|