mirror of
https://github.com/xiph/opus.git
synced 2025-05-31 07:37:42 +00:00
SILK fixes following last codec WG meeting
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 commit is contained in:
parent
6619a73637
commit
bf75c8ec4d
71 changed files with 961 additions and 1005 deletions
|
@ -50,8 +50,7 @@ void silk_bwexpander_FLP(
|
|||
/* compute inverse of LPC prediction gain, and */
|
||||
/* test if LPC coefficients are stable (all poles within unit circle) */
|
||||
/* this code is based on silk_FLP_a2k() */
|
||||
opus_int silk_LPC_inverse_pred_gain_FLP( /* O returns 1 if unstable, otherwise 0 */
|
||||
silk_float *invGain, /* O inverse prediction gain, energy domain */
|
||||
silk_float silk_LPC_inverse_pred_gain_FLP( /* O return inverse prediction gain, energy domain */
|
||||
const silk_float *A, /* I prediction coefficients [order] */
|
||||
opus_int32 order /* I prediction order */
|
||||
);
|
||||
|
@ -108,9 +107,9 @@ void silk_insertion_sort_decreasing_FLP(
|
|||
silk_float silk_burg_modified_FLP( /* O returns residual energy */
|
||||
silk_float A[], /* O prediction coefficients (length order) */
|
||||
const silk_float x[], /* I input signal, length: nb_subfr*(D+L_sub) */
|
||||
const silk_float minInvGain, /* I minimum inverse prediction gain */
|
||||
const opus_int subfr_length, /* I input signal subframe length (incl. D preceeding samples) */
|
||||
const opus_int nb_subfr, /* I number of subframes stacked in x */
|
||||
const silk_float WhiteNoiseFrac, /* I fraction added to zero-lag autocorrelation */
|
||||
const opus_int D /* I order */
|
||||
);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue