- 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
-
-
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
-
- Oct 05, 2011
-
-
Fixes a mono-stereo switching glitch and fixes a side prediction bug where coding side would result in worse panned-mono behaviour
-
There were assert failures for test cases with mode switching and LBRR enabled. (some similar problems remain) Tim identified that the assert was falsely firing while encoding LBRR frames but the flag doesn't matter while encoding the bitstream it only actually matters in silk/process_NLSFs.c.
-
Jean-Marc Valin authored
-
- Oct 04, 2011
-
-
Gregory Maxwell authored
More assert updates, make the initialization in silk_warped_autocorrelation_FLP more explicit to make tools happy, and allow resetting to auto with OPUS_SET_FORCE_CHANNELS.
-
Add the noreturn attribute on the assert functions to aid static analysis, improve test_repacketizer error handling, and silence 19 clang static analysis errors with additional assertions.
-
- Oct 03, 2011
-
-
-
Jean-Marc Valin authored
Gets rid of some more glitches caused by the decoder resampler
-
Jean-Marc Valin authored
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
-
- Sep 30, 2011
-
-
Jean-Marc Valin authored
-
LPC_inverse_pred_gain_QA() was failing to detect unstable filters because of insufficient numerical precision. Precision was increased to Q24 for LPC coefs and the reciprocal now uses all the precision available (variable shift right from the start).
-
- Sep 29, 2011
-
-
Gregory Maxwell authored
-
Gregory Maxwell authored
(Fs_kHz is always 8/12/16 in Opus and also enforced by the assert on line 112)
-
Gregory Maxwell authored
-
- Sep 28, 2011
-
-
Gregory Maxwell authored
-
Gregory Maxwell authored
-
Jean-Marc Valin authored
-
Jean-Marc Valin authored
There's still a range coder mismatch on the first frame when using FEC.
-
Gregory Maxwell authored
-
Gregory Maxwell authored
-
Gregory Maxwell authored
-
Gregory Maxwell authored
-
Gregory Maxwell authored
-
The SILK bitstream allowed coding 0 pulses in a shell block, but a non-zero number of LSb's, meaning some excitation coefficients could be non-zero, but would not have a corresponding sign. To fix this without breaking already-encoded bitstreams, this patch adds a set of sign PDFs for the 0 pulses case. This is occasionally more efficient than the normal encoding if there are a large number of coefficients with positive signs, since these cost more than 1 bit when using the > 0 pulse PDFs. It only saves 0.33 bits per second (on average: it does better at high rates), but that's probably enough to justify the two redundant ways of coding things (and it's too late now to remove the second one entirely, anyway). This patch does not include the encoder modifications required to check if this coding method is more efficient and switch to it.
-
- Sep 27, 2011
-
-
Jean-Marc Valin authored
We no longer reset the decoder predictors when switching only the frame size and not the sampling rate. The encoder already doesn't reset.
-
Jean-Marc Valin authored
For these transitions, we now start the left and right resamplers from the same state.
-
- Sep 23, 2011
-
-
Jean-Marc Valin authored
Result should be bit-identical on most machines/compilers, minus the undefined behaviour
-
Also some MSVC build fixes
-
- Sep 21, 2011
-
-
- Sep 16, 2011
-
-
Jean-Marc Valin authored
-
Jean-Marc Valin authored
-
Jean-Marc Valin authored
Mainly implementing signed overflow behaviour in a way that isn't undefined in the C standard
-
- Sep 14, 2011
-
-
Jean-Marc Valin authored
-
- Sep 07, 2011
-
-
Jean-Marc Valin authored
-
Jean-Marc Valin authored
Not that it actually reaches the target, but it should no longer cause a range coder mismatch
-
Gregory Maxwell authored
The API permits the caller to freely copy the codec state on their own, but this can't work if there are any any position dependant pointers in the codec state.
-
- Sep 02, 2011
-
-
Gregory Maxwell authored
-