- Oct 17, 2011
-
-
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).
-
Jean-Marc Valin authored
-
- Oct 16, 2011
-
-
Gregory Maxwell authored
Only one of the two required checks in the encoder were updated. Thanks to Tim for tracking down the actual cause of the mismatch.
-
- Oct 14, 2011
-
-
Jean-Marc Valin authored
-
Jean-Marc Valin authored
These were caused by not prefilling the hybrid CELT state
-
A number of fixes and additions, including * Ensure all usage of the word "mode" refer only to the choice of SILK/hybrid/CELT, not audio bandwidth, frame size, channel count, or anything else. There's still a bunch of usage of "mode" in CELT to refer to things in the CELTMode struct (e.g., band layout, etc.). * Document the LSF reordering for silk_NLSF2A_find_poly(). * Document the DC response check during LSF stabilization. * Fix the excitation scaling to give decoded SILK output in the range -1.0...1.0. * Rewrite the mode-switching section. Ironically the title of the section still implies "mode" means than just SILK/hybrid/CELT, but I couldn't come up with a better one. * Minor clean-ups to the acknowledgements.
-
Jean-Marc Valin authored
-
- Oct 13, 2011
-
-
Jean-Marc Valin authored
-
Jean-Marc Valin authored
-
Jean-Marc Valin authored
-
Input that caused the problem was: a_Q16[] = [129763 -49346 -42032 5488 28014 -1549 -2384 -8568 3154 -5104 -1605 6291 11861 -1843 -17715 7361]
-
- Oct 12, 2011
-
-
Jean-Marc Valin authored
-
-
Jean-Marc Valin authored
The energy "sliding window" was using double accumulation with float multiplications. This forces the multiplications to be double as well.
-
Jean-Marc Valin authored
The previous commit introduced some cross-talk for the case of SILK with one channel muted.
-
Jean-Marc Valin authored
- 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
-
- Oct 11, 2011
-
-
Jean-Marc Valin authored
-
Jean-Marc Valin authored
-
Jean-Marc Valin authored
-
Jean-Marc Valin authored
-
Gregory Maxwell authored
Move a number of files and functions which are only used by fixed point builds from silk/ to silk/fixed/. I attempted to not break the msvc projects, but I can't test them.
-
- compile warning in opus_decoder.c - decoder state reduced by ~3 kB (by merging buffers, as Tim suggested) - some minor decoder optimizations (only the PLC is non-bit exact, so should be ok)
-
- Oct 10, 2011
-
-
Jean-Marc Valin authored
We check the DC gain before doing the full RC calculations
-
Gregory Maxwell authored
-
- fixes the test_opus "skip" for stereo - fixes 6 visual studio compile warnings - adds several header files to visual studio's include folder
-
-
-
- Oct 09, 2011
-
-
- 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
-
Jean-Marc Valin authored
SILK now reports an "effective width" that takes into account side prediction.
-
Jean-Marc Valin authored
Making sure not to abruptly "de-collapse" the stereo for such transitions
-
Jean-Marc Valin authored
-
Jean-Marc Valin authored
When SILK decided not to use the desired bandwidth, the redundancy could be encoded at the desired bandwidth rather than at the actual bandwidth used.
-
- Oct 08, 2011
-
-
Jean-Marc Valin authored
-
Jean-Marc Valin authored
No longer encoding the redundancy flag for SILK since we can infer redundancy from the length of the frame. Also, we skip encoding the flag for hybrid mode when we know the decoder will not read it.
-
Jean-Marc Valin authored
Also not fuzzing the mode when it's forced
-
Jean-Marc Valin authored
-
- Oct 07, 2011
-
-
Jean-Marc Valin authored
We now make sure that side is given >0 bits when it isn't disabled.
-
Jean-Marc Valin authored
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
-
Jean-Marc Valin authored
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).
-
- Oct 06, 2011
-
-
This patch * expands sections on LPC and LTP synthesis into something that can actually be implemented * fixes an error in the excitation reconstruction * reverts an erroneous simplification of the subframe gain decoding, and * updates the LPC gain limiting description to reflect the new, more accurate approach for computing the reflection coefficients. It also includes a number of general clean-ups, such as * correcting the description of the sample rates various pieces run at (e.g., we can decode directly to rates other than 48 kHz) * the usage of "sampling rate" vs. "sample rate" * capitalization consistency in TOC titles, and * better selection of which sections appear in the TOC.
-