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
|
@ -150,7 +150,6 @@ typedef struct {
|
|||
opus_int minInternal_fs_Hz; /* Minimum internal sampling frequency (Hz) */
|
||||
opus_int desiredInternal_fs_Hz; /* Soft request for internal sampling frequency (Hz) */
|
||||
opus_int fs_kHz; /* Internal sampling frequency (kHz) */
|
||||
opus_int delay; /* Number of samples of delay to apply */
|
||||
opus_int nb_subfr; /* Number of 5 ms subframes in a frame */
|
||||
opus_int frame_length; /* Frame length (samples) */
|
||||
opus_int subfr_length; /* Subframe length (samples) */
|
||||
|
@ -194,7 +193,6 @@ typedef struct {
|
|||
|
||||
/* Input/output buffering */
|
||||
opus_int16 inputBuf[ MAX_FRAME_LENGTH + 2 ]; /* Buffer containing input signal */
|
||||
opus_int16 delayBuf[MAX_ENCODER_DELAY];
|
||||
opus_int inputBufIx;
|
||||
opus_int nFramesPerPacket;
|
||||
opus_int nFramesEncoded; /* Number of frames analyzed in current packet */
|
||||
|
@ -261,8 +259,6 @@ typedef struct {
|
|||
opus_int32 exc_Q10[ MAX_FRAME_LENGTH ];
|
||||
opus_int32 sLPC_Q14_buf[ MAX_LPC_ORDER ];
|
||||
opus_int16 outBuf[ MAX_FRAME_LENGTH + 2 * MAX_SUB_FRAME_LENGTH ]; /* Buffer for output signal */
|
||||
opus_int16 delayBuf[ MAX_DECODER_DELAY ]; /* Buffer for delaying the SILK output prior to resampling */
|
||||
opus_int delay; /* How much decoder delay to add */
|
||||
opus_int lagPrev; /* Previous Lag */
|
||||
opus_int8 LastGainIndex; /* Previous gain index */
|
||||
opus_int fs_kHz; /* Sampling frequency in kHz */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue