Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.xiph.org/xiph/opus.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-07-24Smooth out the LBRR rate estimateJean-Marc Valin
Reduces fluctuations in the non-FEC target bitrate.
2018-05-24Fixes a SILK bandwidth switching regressionJean-Marc Valin
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.
2018-05-14Silk makes use of Opus VADGustaf Ullberg
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
2018-03-27Converting some silk_assert()s into hardening celt_assert()sJean-Marc Valin
Only converted the ones that are really sure (not signal-dependent) and that shouldn't add much run-time complexity
2017-02-27Fix compiler warningsMark Harris
- 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
2016-07-19Moving FEC decision to the Opus encoder level (from SILK level)Jean-Marc Valin
2016-07-17removed prefilterKoen Vos
The NSQ SSE optimizations are disabled for now because they need to be updated
2016-07-17Quality: Increase CELT rate for voiced frames in hybrid modeJean-Marc Valin
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>
2014-02-07Fixes 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>
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-09-17Remove trailing whitespace from the license headers.Ralph Giles
2013-05-20Convert quotes in license headers to ASCII.Timothy B. Terriberry
Since the last patch originally had them mangled (presumably by mailer, http server, or something else), let's just get rid of them.
2013-05-08Use dynamic stack allocation in the SILK encoder.Timothy B. Terriberry
This makes all remaining large stack allocations use the vararray macros. This continues the work of 6f2d9f50 to allow compiling with NONTHREADSAFE_PSEUDOSTACK to move the memory for large buffers off the stack for devices where it is very limited. It also does this for some additional large buffers used by the PLC in the decoder.
2012-10-11Fix minor issues reported by scan-buildPhilip Jägenstedt
2012-09-12Mark functions static if they are only used in their own translation unit.Diego Elio Pettenò
This allows the compiler to perform more optimization on them as it knows how the functions are being called. Signed-off-by: Diego Elio Pettenò <flameeyes@flameeyes.eu>
2012-04-24Merge commit '390c89225d'Jean-Marc Valin
2012-04-21License update using the IETF Trust flavour of the BSD on the Silk codeJean-Marc Valin
2012-03-08Fixes int vs opus_int32 compile errors on C5xJean-Marc Valin
2011-12-14Accuracy improvements to help float implementationsKoen Vos
Also clamps the gain to avoid forcing a float decoder to emulate the state rescaling.
2011-12-13Improves the accuracy such that it matches a float decoder much betterKoen Vos
2011-12-13SILK fixes following last codec WG meetingKoen Vos
decoder: - fixed incorrect scaling of filter states for the smallest quantization step sizes - NLSF2A now limits the prediction gain of LPC filters encoder: - increased damping of LTP coefficients in LTP analysis - increased white noise fraction in noise shaping LPC analysis - introduced maximum total prediction gain. Used by Burg's method to exit early if prediction gain is exceeded. This improves packet loss robustness and numerical robustness in Burg's method - Prefiltered signal is now in int32 Q10 domain, from int16 Q0 - Increased max number of iterations in CBR gain control loop from 5 to 6 - Removed useless code from LTP scaling control - Optimization: smarter LPC loop unrolling - Switched default win32 compile mode to be floating-point resampler: - made resampler have constant delay of 0.75 ms; removed delay compensation from silk code. - removed obsolete table entries (~850 Bytes) - increased downsampling filter order from 16 to 18/24/36 (depending on frequency ratio) - reoptimized filter coefficients
2011-10-29Reformatting changes with an update to the MSVC project filesKoen Vos
2011-10-24Optimization of the CBR loopKoen Vos
Also some comment/warning fixes
2011-10-22Implements glitchless switching between SILK bandwidthsJean-Marc Valin
Only encoder changes were necessary because this uses the same "redundant frames" mechanism as SILK<->CELT switching. This also fixes a regression introduced in 78291b27 that was causing the encoder to go back and forth between bandwidths when SILK wasn't ready to change.
2011-10-20Implements hard CBR for SILKJean-Marc Valin
This is achieved by running the encoding process in a loop and padding when we don't reach the exact rate. It also implements VBR-with-cap, which means we no longer need to artificially decrease the SILK bandwidth when it's close to the cap.
2011-10-19Correct encoder/decoder state mismatch and spurious state resetting in the ↵Gregory Maxwell
encoder when side is reset. Patch from Tim which corrects a glitch during mode switching tests.
2011-10-18Remove redundant mid-only flag when side VAD flag is set.Timothy B. Terriberry
If there is activity in a regular, side SILK frame, then it must be coded, so we don't need to send a mid-only flag.
2011-10-18Fix side-channel index for VAD/LBRR flags.Timothy B. Terriberry
Neither the encoder nor decoder were incrementing the side-channel index for a mid-only frame. Unfortunately, they used that index to index the VAD flags and LBRR flags. This made the VAD flags for the side channel particularly useless, as you couldn't tell which frame a flag belonged to without decoding most of the packet. It also desynched the LBRR information, as look at the wrong LBRR flags to decide when it had to code a mid-only flag. If some frames were skipped in the side channel, then the last few VAD flags and LBRR flags would be garbage, but still get encoded. This patch fixes this by continuing to increment nFramesDecoded or nFramesEncoded, even when skipping a frame in the side channel. This makes the side-channel VAD and LBRR flags correspond to the correct time periods for frames greater than 20 ms. It also fixes a bug where if DTX was not used on the packet where the side channel got turned off, it would never get used again until the encoder attempted to encode something in the side channel again.
2011-10-18Fix the side frame conditional coding rules.Timothy B. Terriberry
b24e5746 introduced changes to LastGainIndex which broke conditional coding for side frames after a mid-only frame (i.e., in a 60 ms frame where the side is coded, not coded, then coded again). These rules were a mess in general, however, because the side channel state kept a different nFramesDecoded count from the mid channel state, and had no way to tell if the prior side frame was coded. This patch attempts to rationalize them by moving the conditional coding decision up to the top level, where all this information is available. The first coded side frame after an uncoded side frame now always uses independent coding. If such a frame is also not the first side frame in an Opus frame, then it doesn't include an LTP scaling parameter (because the LTP state is well-defined).
2011-10-12Misc bug fixesJean-Marc Valin
- There was a bug where the decoder resampler was not properly initialized when fs_kHz == API_fs_kHz. In that case the resampler would continue to upsample, and the output was corrupt. - The delay value in the decoder was taken from the state before it was potentially updated. This caused the decoder to apply the new dalay value one frame late - The encoder and decoder states are now updated more consistently, when the sampling rate changes (pesq liked these changes) - Properly resetting the side channel encoder and decoder for the first frame with side coding active again - Faster updating the "ratio" value in the LR_to_MS() code for large prediction values means that for certain extreme/artificial input signals the output looks better
2011-10-10Cleaner way to take into account the prediction for stereo widthKoen Vos
2011-10-09Two minor SILK fixesKoen Vos
- increases the max pitch lag by 1 (the thing Tim pointed out). this brings the decoder in sync with the old one - avoids that the first stereo frame is collapsed to mono
2011-10-09Avoids unnecessary collapse of the HF stereo image in hybrid mode.Jean-Marc Valin
SILK now reports an "effective width" that takes into account side prediction.
2011-10-07Fixes two encoder bugs causing glitches in stereo->mono switchesJean-Marc Valin
1) averaging the output of the left and right resampling states when switching to mono 2) averaging the the delay buffers from left and right when switching
2011-10-07Proper SILK delay compensation for resamplingJean-Marc Valin
Adds SILK delay compensation that depends on encode and decode sampling rate, as well as SILK internal coding rate. This ensures that the SILK part of Opus is always in sync with the CELT part no matter what the sampling rates are. It also increases the resampling delay to 1.15 ms (was previously 0.48 ms).
2011-10-06SILK updateKoen Vos
Simplifies mono/stereo switching in SILK Fixes a quantization mismatch between encoder and decoder Constrains the pitch lags in the same way in the encoder and decoder
2011-10-05Disabling LBRR for whever there's a change in bandwidth/channels/framesizeJean-Marc Valin
2011-10-03Delaying SILK stereo->mono transitions by two framesJean-Marc Valin
Gets rid of some more glitches caused by the decoder resampler
2011-10-03Fixes stereo->mono switching bugs (encoder)Jean-Marc Valin
Delaying stereo->mono switching decisions so that SILK can do a smooth downmix. Also, wrote proper float/fixed code for the hybrid variable stereo collapse, including a smooth downmix for stereo<->mono switching
2011-09-29Fixes a bug introduced while fixing the original 60-ms stereo bugJean-Marc Valin
2011-09-28Fixes a bug that was falsely triggering DTX for 60 ms stereoJean-Marc Valin
There's still a range coder mismatch on the first frame when using FEC.
2011-09-28Fix some GCC warings in the silk/ directory.Gregory Maxwell
2011-09-27Fixes a glitch in SILK mono->stereo switchingJean-Marc Valin
For these transitions, we now start the left and right resamplers from the same state.
2011-09-16Removed all the silk_ prefixes in source file names (not symbols)Jean-Marc Valin
2011-04-29Moved all SILK source code to the silk/ directoryJean-Marc Valin
2011-04-28Relying on SILK for the switching decisionsJean-Marc Valin
2011-04-28SILK makefile updateJean-Marc Valin
2011-04-27Changing the SILK bandwidth only when there's no speechJean-Marc Valin