Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
at every stage
|
|
There is also no trailing whitespace.
|
|
Optimizing celt_pitch_xcorr()/xcorr_kernel() which also speeds up
FIRs, IIRs and auto-correlations
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
|
|
The compiler warned:
silk/float/pitch_analysis_core_FLP.c: In function 'silk_P_Ana_calc_corr_st3':
silk/float/pitch_analysis_core_FLP.c:499:36: warning: variable 'basis_ptr' set but not used [-Wunused-but-set-variable]
const silk_float *target_ptr, *basis_ptr;
This means we can safely remove it.
Signed-off-by: Stefan Beller <stefanbeller@googlemail.com>
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
|
|
|
|
Should gives us ARM/SSE optimizations for free.
|
|
Since the last patch originally had them mangled (presumably by
mailer, http server, or something else), let's just get rid of
them.
|
|
|
|
Normalizes the cost function by (x+y) instead of sqrt(x*y)
|
|
I stumbled upon the typo in README.draft, so took the opportunity to
grep for common misspellings using List_of_common_misspellings.txt for
hunspell.
|
|
|
|
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
|
|
|
|
|
|
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.
|
|
The energy "sliding window" was using double accumulation with
float multiplications. This forces the multiplications to be
double as well.
|
|
- 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
|
|
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
|
|
(Fs_kHz is always 8/12/16 in Opus and also enforced by the assert on line 112)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Uses a 5ms redundant CELT frame embedded into the SILK or hybrid
packet to handle the switching. It's still possible to use the
PLC-based method when no redundant packet is included.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The byte buffer is now part of the range coder struct itself, and
rangeenc.c and rangedec.c have gone away.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|