| OLD | NEW |
| 1 /*********************************************************************** | 1 /*********************************************************************** |
| 2 Copyright (c) 2006-2011, Skype Limited. All rights reserved. | 2 Copyright (c) 2006-2011, Skype Limited. All rights reserved. |
| 3 Redistribution and use in source and binary forms, with or without | 3 Redistribution and use in source and binary forms, with or without |
| 4 modification, are permitted provided that the following conditions | 4 modification, are permitted provided that the following conditions |
| 5 are met: | 5 are met: |
| 6 - Redistributions of source code must retain the above copyright notice, | 6 - Redistributions of source code must retain the above copyright notice, |
| 7 this list of conditions and the following disclaimer. | 7 this list of conditions and the following disclaimer. |
| 8 - Redistributions in binary form must reproduce the above copyright | 8 - Redistributions in binary form must reproduce the above copyright |
| 9 notice, this list of conditions and the following disclaimer in the | 9 notice, this list of conditions and the following disclaimer in the |
| 10 documentation and/or other materials provided with the distribution. | 10 documentation and/or other materials provided with the distribution. |
| (...skipping 30 matching lines...) Expand all Loading... |
| 41 | 41 |
| 42 /************************************/ | 42 /************************************/ |
| 43 /* Noise shaping quantization state */ | 43 /* Noise shaping quantization state */ |
| 44 /************************************/ | 44 /************************************/ |
| 45 typedef struct { | 45 typedef struct { |
| 46 opus_int16 xq[ 2 * MAX_FRAME_LENGTH ]; /* Buffer
for quantized output signal */ | 46 opus_int16 xq[ 2 * MAX_FRAME_LENGTH ]; /* Buffer
for quantized output signal */ |
| 47 opus_int32 sLTP_shp_Q14[ 2 * MAX_FRAME_LENGTH ]; | 47 opus_int32 sLTP_shp_Q14[ 2 * MAX_FRAME_LENGTH ]; |
| 48 opus_int32 sLPC_Q14[ MAX_SUB_FRAME_LENGTH + NSQ_LPC_BUF_LEN
GTH ]; | 48 opus_int32 sLPC_Q14[ MAX_SUB_FRAME_LENGTH + NSQ_LPC_BUF_LEN
GTH ]; |
| 49 opus_int32 sAR2_Q14[ MAX_SHAPE_LPC_ORDER ]; | 49 opus_int32 sAR2_Q14[ MAX_SHAPE_LPC_ORDER ]; |
| 50 opus_int32 sLF_AR_shp_Q14; | 50 opus_int32 sLF_AR_shp_Q14; |
| 51 opus_int32 sDiff_shp_Q14; |
| 51 opus_int lagPrev; | 52 opus_int lagPrev; |
| 52 opus_int sLTP_buf_idx; | 53 opus_int sLTP_buf_idx; |
| 53 opus_int sLTP_shp_buf_idx; | 54 opus_int sLTP_shp_buf_idx; |
| 54 opus_int32 rand_seed; | 55 opus_int32 rand_seed; |
| 55 opus_int32 prev_gain_Q16; | 56 opus_int32 prev_gain_Q16; |
| 56 opus_int rewhite_flag; | 57 opus_int rewhite_flag; |
| 57 } silk_nsq_state; | 58 } silk_nsq_state; |
| 58 | 59 |
| 59 /********************************/ | 60 /********************************/ |
| 60 /* VAD state */ | 61 /* VAD state */ |
| (...skipping 18 matching lines...) Expand all Loading... |
| 79 opus_int mode; /* Operating mode,
<0: switch down, >0: switch up; 0: do nothing */ | 80 opus_int mode; /* Operating mode,
<0: switch down, >0: switch up; 0: do nothing */ |
| 80 } silk_LP_state; | 81 } silk_LP_state; |
| 81 | 82 |
| 82 /* Structure containing NLSF codebook */ | 83 /* Structure containing NLSF codebook */ |
| 83 typedef struct { | 84 typedef struct { |
| 84 const opus_int16 nVectors; | 85 const opus_int16 nVectors; |
| 85 const opus_int16 order; | 86 const opus_int16 order; |
| 86 const opus_int16 quantStepSize_Q16; | 87 const opus_int16 quantStepSize_Q16; |
| 87 const opus_int16 invQuantStepSize_Q6; | 88 const opus_int16 invQuantStepSize_Q6; |
| 88 const opus_uint8 *CB1_NLSF_Q8; | 89 const opus_uint8 *CB1_NLSF_Q8; |
| 90 const opus_int16 *CB1_Wght_Q9; |
| 89 const opus_uint8 *CB1_iCDF; | 91 const opus_uint8 *CB1_iCDF; |
| 90 const opus_uint8 *pred_Q8; | 92 const opus_uint8 *pred_Q8; |
| 91 const opus_uint8 *ec_sel; | 93 const opus_uint8 *ec_sel; |
| 92 const opus_uint8 *ec_iCDF; | 94 const opus_uint8 *ec_iCDF; |
| 93 const opus_uint8 *ec_Rates_Q5; | 95 const opus_uint8 *ec_Rates_Q5; |
| 94 const opus_int16 *deltaMin_Q15; | 96 const opus_int16 *deltaMin_Q15; |
| 95 } silk_NLSF_CB_struct; | 97 } silk_NLSF_CB_struct; |
| 96 | 98 |
| 97 typedef struct { | 99 typedef struct { |
| 98 opus_int16 pred_prev_Q13[ 2 ]; | 100 opus_int16 pred_prev_Q13[ 2 ]; |
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 162 opus_int PacketLoss_perc; /* Packet lo
ss rate measured by farend */ | 164 opus_int PacketLoss_perc; /* Packet lo
ss rate measured by farend */ |
| 163 opus_int32 frameCounter; | 165 opus_int32 frameCounter; |
| 164 opus_int Complexity; /* Complexit
y setting */ | 166 opus_int Complexity; /* Complexit
y setting */ |
| 165 opus_int nStatesDelayedDecision; /* Number of
states in delayed decision quantization */ | 167 opus_int nStatesDelayedDecision; /* Number of
states in delayed decision quantization */ |
| 166 opus_int useInterpolatedNLSFs; /* Flag for
using NLSF interpolation */ | 168 opus_int useInterpolatedNLSFs; /* Flag for
using NLSF interpolation */ |
| 167 opus_int shapingLPCOrder; /* Filter or
der for noise shaping filters */ | 169 opus_int shapingLPCOrder; /* Filter or
der for noise shaping filters */ |
| 168 opus_int predictLPCOrder; /* Filter or
der for prediction filters */ | 170 opus_int predictLPCOrder; /* Filter or
der for prediction filters */ |
| 169 opus_int pitchEstimationComplexity; /* Complexit
y level for pitch estimator */ | 171 opus_int pitchEstimationComplexity; /* Complexit
y level for pitch estimator */ |
| 170 opus_int pitchEstimationLPCOrder; /* Whitening
filter order for pitch estimator */ | 172 opus_int pitchEstimationLPCOrder; /* Whitening
filter order for pitch estimator */ |
| 171 opus_int32 pitchEstimationThreshold_Q16; /* Threshold
for pitch estimator */ | 173 opus_int32 pitchEstimationThreshold_Q16; /* Threshold
for pitch estimator */ |
| 172 opus_int LTPQuantLowComplexity; /* Flag for
low complexity LTP quantization */ | |
| 173 opus_int mu_LTP_Q9; /* Rate-dist
ortion tradeoff in LTP quantization */ | |
| 174 opus_int32 sum_log_gain_Q7; /* Cumulativ
e max prediction gain */ | 174 opus_int32 sum_log_gain_Q7; /* Cumulativ
e max prediction gain */ |
| 175 opus_int NLSF_MSVQ_Survivors; /* Number of
survivors in NLSF MSVQ */ | 175 opus_int NLSF_MSVQ_Survivors; /* Number of
survivors in NLSF MSVQ */ |
| 176 opus_int first_frame_after_reset; /* Flag for
deactivating NLSF interpolation, pitch prediction */ | 176 opus_int first_frame_after_reset; /* Flag for
deactivating NLSF interpolation, pitch prediction */ |
| 177 opus_int controlled_since_last_payload; /* Flag for
ensuring codec_control only runs once per packet */ | 177 opus_int controlled_since_last_payload; /* Flag for
ensuring codec_control only runs once per packet */ |
| 178 opus_int warping_Q16; /* Warping p
arameter for warped noise shaping */ | 178 opus_int warping_Q16; /* Warping p
arameter for warped noise shaping */ |
| 179 opus_int useCBR; /* Flag to e
nable constant bitrate */ | 179 opus_int useCBR; /* Flag to e
nable constant bitrate */ |
| 180 opus_int prefillFlag; /* Flag to i
ndicate that only buffers are prefilled, no coding */ | 180 opus_int prefillFlag; /* Flag to i
ndicate that only buffers are prefilled, no coding */ |
| 181 const opus_uint8 *pitch_lag_low_bits_iCDF; /* Pointer t
o iCDF table for low bits of pitch lag index */ | 181 const opus_uint8 *pitch_lag_low_bits_iCDF; /* Pointer t
o iCDF table for low bits of pitch lag index */ |
| 182 const opus_uint8 *pitch_contour_iCDF; /* Pointer t
o iCDF table for pitch contour index */ | 182 const opus_uint8 *pitch_contour_iCDF; /* Pointer t
o iCDF table for pitch contour index */ |
| 183 const silk_NLSF_CB_struct *psNLSF_CB; /* Pointer t
o NLSF codebook */ | 183 const silk_NLSF_CB_struct *psNLSF_CB; /* Pointer t
o NLSF codebook */ |
| (...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 294 | 294 |
| 295 /* Quantization indices */ | 295 /* Quantization indices */ |
| 296 SideInfoIndices indices; | 296 SideInfoIndices indices; |
| 297 | 297 |
| 298 /* CNG state */ | 298 /* CNG state */ |
| 299 silk_CNG_struct sCNG; | 299 silk_CNG_struct sCNG; |
| 300 | 300 |
| 301 /* Stuff used for PLC */ | 301 /* Stuff used for PLC */ |
| 302 opus_int lossCnt; | 302 opus_int lossCnt; |
| 303 opus_int prevSignalType; | 303 opus_int prevSignalType; |
| 304 int arch; |
| 304 | 305 |
| 305 silk_PLC_struct sPLC; | 306 silk_PLC_struct sPLC; |
| 306 | 307 |
| 307 } silk_decoder_state; | 308 } silk_decoder_state; |
| 308 | 309 |
| 309 /************************/ | 310 /************************/ |
| 310 /* Decoder control */ | 311 /* Decoder control */ |
| 311 /************************/ | 312 /************************/ |
| 312 typedef struct { | 313 typedef struct { |
| 313 /* Prediction and coding parameters */ | 314 /* Prediction and coding parameters */ |
| 314 opus_int pitchL[ MAX_NB_SUBFR ]; | 315 opus_int pitchL[ MAX_NB_SUBFR ]; |
| 315 opus_int32 Gains_Q16[ MAX_NB_SUBFR ]; | 316 opus_int32 Gains_Q16[ MAX_NB_SUBFR ]; |
| 316 /* Holds interpolated and final coefficients, 4-byte aligned */ | 317 /* Holds interpolated and final coefficients, 4-byte aligned */ |
| 317 silk_DWORD_ALIGN opus_int16 PredCoef_Q12[ 2 ][ MAX_LPC_ORDER ]; | 318 silk_DWORD_ALIGN opus_int16 PredCoef_Q12[ 2 ][ MAX_LPC_ORDER ]; |
| 318 opus_int16 LTPCoef_Q14[ LTP_ORDER * MAX_NB_SUBFR ]; | 319 opus_int16 LTPCoef_Q14[ LTP_ORDER * MAX_NB_SUBFR ]; |
| 319 opus_int LTP_scale_Q14; | 320 opus_int LTP_scale_Q14; |
| 320 } silk_decoder_control; | 321 } silk_decoder_control; |
| 321 | 322 |
| 322 | 323 |
| 323 #ifdef __cplusplus | 324 #ifdef __cplusplus |
| 324 } | 325 } |
| 325 #endif | 326 #endif |
| 326 | 327 |
| 327 #endif | 328 #endif |
| OLD | NEW |