| 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 24 matching lines...) Expand all Loading... |
| 35 #include "PLC.h" | 35 #include "PLC.h" |
| 36 #include "control.h" | 36 #include "control.h" |
| 37 #include "debug.h" | 37 #include "debug.h" |
| 38 #include "entenc.h" | 38 #include "entenc.h" |
| 39 #include "entdec.h" | 39 #include "entdec.h" |
| 40 | 40 |
| 41 #if defined(OPUS_X86_MAY_HAVE_SSE4_1) | 41 #if defined(OPUS_X86_MAY_HAVE_SSE4_1) |
| 42 #include "x86/main_sse.h" | 42 #include "x86/main_sse.h" |
| 43 #endif | 43 #endif |
| 44 | 44 |
| 45 #if (defined(OPUS_ARM_ASM) || defined(OPUS_ARM_MAY_HAVE_NEON_INTR)) |
| 46 #include "arm/NSQ_del_dec_arm.h" |
| 47 #endif |
| 48 |
| 45 /* Convert Left/Right stereo signal to adaptive Mid/Side representation */ | 49 /* Convert Left/Right stereo signal to adaptive Mid/Side representation */ |
| 46 void silk_stereo_LR_to_MS( | 50 void silk_stereo_LR_to_MS( |
| 47 stereo_enc_state *state, /* I/O State
*/ | 51 stereo_enc_state *state, /* I/O State
*/ |
| 48 opus_int16 x1[], /* I/O Left inp
ut signal, becomes mid signal */ | 52 opus_int16 x1[], /* I/O Left inp
ut signal, becomes mid signal */ |
| 49 opus_int16 x2[], /* I/O Right in
put signal, becomes side signal */ | 53 opus_int16 x2[], /* I/O Right in
put signal, becomes side signal */ |
| 50 opus_int8 ix[ 2 ][ 3 ], /* O Quantiza
tion indices */ | 54 opus_int8 ix[ 2 ][ 3 ], /* O Quantiza
tion indices */ |
| 51 opus_int8 *mid_only_flag, /* O Flag: on
ly mid signal coded */ | 55 opus_int8 *mid_only_flag, /* O Flag: on
ly mid signal coded */ |
| 52 opus_int32 mid_side_rates_bps[], /* O Bitrates
for mid and side signals */ | 56 opus_int32 mid_side_rates_bps[], /* O Bitrates
for mid and side signals */ |
| 53 opus_int32 total_rate_bps, /* I Total bi
trate */ | 57 opus_int32 total_rate_bps, /* I Total bi
trate */ |
| 54 opus_int prev_speech_act_Q8, /* I Speech a
ctivity level in previous frame */ | 58 opus_int prev_speech_act_Q8, /* I Speech a
ctivity level in previous frame */ |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 102 ); | 106 ); |
| 103 | 107 |
| 104 /* Decode mid-only flag */ | 108 /* Decode mid-only flag */ |
| 105 void silk_stereo_decode_mid_only( | 109 void silk_stereo_decode_mid_only( |
| 106 ec_dec *psRangeDec, /* I/O Compress
or data structure */ | 110 ec_dec *psRangeDec, /* I/O Compress
or data structure */ |
| 107 opus_int *decode_only_mid /* O Flag tha
t only mid channel has been coded */ | 111 opus_int *decode_only_mid /* O Flag tha
t only mid channel has been coded */ |
| 108 ); | 112 ); |
| 109 | 113 |
| 110 /* Encodes signs of excitation */ | 114 /* Encodes signs of excitation */ |
| 111 void silk_encode_signs( | 115 void silk_encode_signs( |
| 112 ec_enc *psRangeEnc, /* I/O Comp
ressor data structure */ | 116 ec_enc *psRangeEnc, /* I/O Comp
ressor data structure */ |
| 113 const opus_int8 pulses[], /* I puls
e signal */ | 117 const opus_int8 pulses[], /* I puls
e signal */ |
| 114 opus_int length, /* I leng
th of input */ | 118 opus_int length, /* I leng
th of input */ |
| 115 const opus_int signalType, /* I Sign
al type */ | 119 const opus_int signalType, /* I Sign
al type */ |
| 116 const opus_int quantOffsetType, /* I Quan
tization offset type */ | 120 const opus_int quantOffsetType, /* I Quan
tization offset type */ |
| 117 const opus_int sum_pulses[ MAX_NB_SHELL_BLOCKS ] /* I Sum
of absolute pulses per block */ | 121 const opus_int sum_pulses[ MAX_NB_SHELL_BLOCKS ] /* I Sum
of absolute pulses per block */ |
| 118 ); | 122 ); |
| 119 | 123 |
| 120 /* Decodes signs of excitation */ | 124 /* Decodes signs of excitation */ |
| 121 void silk_decode_signs( | 125 void silk_decode_signs( |
| 122 ec_dec *psRangeDec, /* I/O Comp
ressor data structure */ | 126 ec_dec *psRangeDec, /* I/O Comp
ressor data structure */ |
| 123 opus_int16 pulses[], /* I/O puls
e signal */ | 127 opus_int16 pulses[], /* I/O puls
e signal */ |
| 124 opus_int length, /* I leng
th of input */ | 128 opus_int length, /* I leng
th of input */ |
| 125 const opus_int signalType, /* I Sign
al type */ | 129 const opus_int signalType, /* I Sign
al type */ |
| 126 const opus_int quantOffsetType, /* I Quan
tization offset type */ | 130 const opus_int quantOffsetType, /* I Quan
tization offset type */ |
| 127 const opus_int sum_pulses[ MAX_NB_SHELL_BLOCKS ] /* I Sum
of absolute pulses per block */ | 131 const opus_int sum_pulses[ MAX_NB_SHELL_BLOCKS ] /* I Sum
of absolute pulses per block */ |
| 128 ); | 132 ); |
| 129 | 133 |
| 130 /* Check encoder control struct */ | 134 /* Check encoder control struct */ |
| 131 opus_int check_control_input( | 135 opus_int check_control_input( |
| 132 silk_EncControlStruct *encControl /* I Control
structure */ | 136 silk_EncControlStruct *encControl /* I Control
structure */ |
| 133 ); | 137 ); |
| 134 | 138 |
| 135 /* Control internal sampling rate */ | 139 /* Control internal sampling rate */ |
| 136 opus_int silk_control_audio_bandwidth( | 140 opus_int silk_control_audio_bandwidth( |
| 137 silk_encoder_state *psEncC, /* I/O Pointer
to Silk encoder state */ | 141 silk_encoder_state *psEncC, /* I/O Pointer
to Silk encoder state */ |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 198 void silk_interpolate( | 202 void silk_interpolate( |
| 199 opus_int16 xi[ MAX_LPC_ORDER ], /* O interpol
ated vector */ | 203 opus_int16 xi[ MAX_LPC_ORDER ], /* O interpol
ated vector */ |
| 200 const opus_int16 x0[ MAX_LPC_ORDER ], /* I first ve
ctor */ | 204 const opus_int16 x0[ MAX_LPC_ORDER ], /* I first ve
ctor */ |
| 201 const opus_int16 x1[ MAX_LPC_ORDER ], /* I second v
ector */ | 205 const opus_int16 x1[ MAX_LPC_ORDER ], /* I second v
ector */ |
| 202 const opus_int ifact_Q2, /* I interp.
factor, weight on 2nd vector */ | 206 const opus_int ifact_Q2, /* I interp.
factor, weight on 2nd vector */ |
| 203 const opus_int d /* I number o
f parameters */ | 207 const opus_int d /* I number o
f parameters */ |
| 204 ); | 208 ); |
| 205 | 209 |
| 206 /* LTP tap quantizer */ | 210 /* LTP tap quantizer */ |
| 207 void silk_quant_LTP_gains( | 211 void silk_quant_LTP_gains( |
| 208 opus_int16 B_Q14[ MAX_NB_SUBFR * LTP_ORDER ], /* I
/O (un)quantized LTP gains */ | 212 opus_int16 B_Q14[ MAX_NB_SUBFR * LTP_ORDER ], /* O
Quantized LTP gains */ |
| 209 opus_int8 cbk_index[ MAX_NB_SUBFR ], /* O
Codebook Index */ | 213 opus_int8 cbk_index[ MAX_NB_SUBFR ], /* O
Codebook Index */ |
| 210 opus_int8 *periodicity_index, /* O
Periodicity Index */ | 214 opus_int8 *periodicity_index, /* O
Periodicity Index */ |
| 211 opus_int32 *sum_gain_dB_Q7, /* I
/O Cumulative max prediction gain */ | 215 opus_int32 *sum_gain_dB_Q7, /* I
/O Cumulative max prediction gain */ |
| 212 const opus_int32 W_Q18[ MAX_NB_SUBFR*LTP_ORDER*LTP_ORDER ], /* I
Error Weights in Q18 */ | 216 opus_int *pred_gain_dB_Q7, /* O
LTP prediction gain */ |
| 213 opus_int mu_Q9, /* I
Mu value (R/D tradeoff) */ | 217 const opus_int32 XX_Q17[ MAX_NB_SUBFR*LTP_ORDER*LTP_ORDER ], /* I
Correlation matrix in Q18 */ |
| 214 opus_int lowComplexity, /* I
Flag for low complexity */ | 218 const opus_int32 xX_Q17[ MAX_NB_SUBFR*LTP_ORDER ], /* I
Correlation vector in Q18 */ |
| 215 const opus_int nb_subfr, /* I
number of subframes */ | 219 const opus_int subfr_len, /* I
Number of samples per subframe */ |
| 220 const opus_int nb_subfr, /* I
Number of subframes */ |
| 216 int arch /* I
Run-time architecture */ | 221 int arch /* I
Run-time architecture */ |
| 217 ); | 222 ); |
| 218 | 223 |
| 219 /* Entropy constrained matrix-weighted VQ, for a single input data vector */ | 224 /* Entropy constrained matrix-weighted VQ, for a single input data vector */ |
| 220 void silk_VQ_WMat_EC_c( | 225 void silk_VQ_WMat_EC_c( |
| 221 opus_int8 *ind, /* O index of
best codebook vector */ | 226 opus_int8 *ind, /* O index of
best codebook vector */ |
| 222 opus_int32 *rate_dist_Q14, /* O best wei
ghted quant error + mu * rate */ | 227 opus_int32 *res_nrg_Q15, /* O best res
idual energy */ |
| 228 opus_int32 *rate_dist_Q8, /* O best tot
al bitrate */ |
| 223 opus_int *gain_Q7, /* O sum of a
bsolute LTP coefficients */ | 229 opus_int *gain_Q7, /* O sum of a
bsolute LTP coefficients */ |
| 224 const opus_int16 *in_Q14, /* I input ve
ctor to be quantized */ | 230 const opus_int32 *XX_Q17, /* I correlat
ion matrix */ |
| 225 const opus_int32 *W_Q18, /* I weightin
g matrix */ | 231 const opus_int32 *xX_Q17, /* I correlat
ion vector */ |
| 226 const opus_int8 *cb_Q7, /* I codebook
*/ | 232 const opus_int8 *cb_Q7, /* I codebook
*/ |
| 227 const opus_uint8 *cb_gain_Q7, /* I codebook
effective gain */ | 233 const opus_uint8 *cb_gain_Q7, /* I codebook
effective gain */ |
| 228 const opus_uint8 *cl_Q5, /* I code len
gth for each codebook vector */ | 234 const opus_uint8 *cl_Q5, /* I code len
gth for each codebook vector */ |
| 229 const opus_int mu_Q9, /* I tradeoff
betw. weighted error and rate */ | 235 const opus_int subfr_len, /* I number o
f samples per subframe */ |
| 230 const opus_int32 max_gain_Q7, /* I maximum
sum of absolute LTP coefficients */ | 236 const opus_int32 max_gain_Q7, /* I maximum
sum of absolute LTP coefficients */ |
| 231 opus_int L /* I number o
f vectors in codebook */ | 237 const opus_int L /* I number o
f vectors in codebook */ |
| 232 ); | 238 ); |
| 233 | 239 |
| 234 #if !defined(OVERRIDE_silk_VQ_WMat_EC) | 240 #if !defined(OVERRIDE_silk_VQ_WMat_EC) |
| 235 #define silk_VQ_WMat_EC(ind, rate_dist_Q14, gain_Q7, in_Q14, W_Q18, cb_Q7, cb_ga
in_Q7, cl_Q5, \ | 241 #define silk_VQ_WMat_EC(ind, res_nrg_Q15, rate_dist_Q8, gain_Q7, XX_Q17, xX_Q17,
cb_Q7, cb_gain_Q7, cl_Q5, subfr_len, max_gain_Q7, L, arch) \ |
| 236 mu_Q9, max_gain_Q7, L, arch) \ | 242 ((void)(arch),silk_VQ_WMat_EC_c(ind, res_nrg_Q15, rate_dist_Q8, gain_Q7, XX_
Q17, xX_Q17, cb_Q7, cb_gain_Q7, cl_Q5, subfr_len, max_gain_Q7, L)) |
| 237 ((void)(arch),silk_VQ_WMat_EC_c(ind, rate_dist_Q14, gain_Q7, in_Q14, W_Q18,
cb_Q7, cb_gain_Q7, cl_Q5, \ | |
| 238 mu_Q9, max_gain_Q7, L)) | |
| 239 #endif | 243 #endif |
| 240 | 244 |
| 241 /************************************/ | 245 /************************************/ |
| 242 /* Noise shaping quantization (NSQ) */ | 246 /* Noise shaping quantization (NSQ) */ |
| 243 /************************************/ | 247 /************************************/ |
| 244 | 248 |
| 245 void silk_NSQ_c( | 249 void silk_NSQ_c( |
| 246 const silk_encoder_state *psEncC, /* I
/O Encoder State */ | 250 const silk_encoder_state *psEncC, /* I
Encoder State */ |
| 247 silk_nsq_state *NSQ, /* I
/O NSQ state */ | 251 silk_nsq_state *NSQ, /* I
/O NSQ state */ |
| 248 SideInfoIndices *psIndices, /* I
/O Quantization Indices */ | 252 SideInfoIndices *psIndices, /* I
/O Quantization Indices */ |
| 249 const opus_int32 x_Q3[], /* I
Prefiltered input signal */ | 253 const opus_int16 x16[], /* I
Input */ |
| 250 opus_int8 pulses[], /* O
Quantized pulse signal */ | 254 opus_int8 pulses[], /* O
Quantized pulse signal */ |
| 251 const opus_int16 PredCoef_Q12[ 2 * MAX_LPC_ORDER ], /* I
Short term prediction coefs */ | 255 const opus_int16 PredCoef_Q12[ 2 * MAX_LPC_ORDER ], /* I
Short term prediction coefs */ |
| 252 const opus_int16 LTPCoef_Q14[ LTP_ORDER * MAX_NB_SUBFR ], /* I
Long term prediction coefs */ | 256 const opus_int16 LTPCoef_Q14[ LTP_ORDER * MAX_NB_SUBFR ], /* I
Long term prediction coefs */ |
| 253 const opus_int16 AR2_Q13[ MAX_NB_SUBFR * MAX_SHAPE_LPC_ORDER ], /
* I Noise shaping coefs */ | 257 const opus_int16 AR_Q13[ MAX_NB_SUBFR * MAX_SHAPE_LPC_ORDER ], /*
I Noise shaping coefs */ |
| 254 const opus_int HarmShapeGain_Q14[ MAX_NB_SUBFR ], /* I
Long term shaping coefs */ | 258 const opus_int HarmShapeGain_Q14[ MAX_NB_SUBFR ], /* I
Long term shaping coefs */ |
| 255 const opus_int Tilt_Q14[ MAX_NB_SUBFR ], /* I
Spectral tilt */ | 259 const opus_int Tilt_Q14[ MAX_NB_SUBFR ], /* I
Spectral tilt */ |
| 256 const opus_int32 LF_shp_Q14[ MAX_NB_SUBFR ], /* I
Low frequency shaping coefs */ | 260 const opus_int32 LF_shp_Q14[ MAX_NB_SUBFR ], /* I
Low frequency shaping coefs */ |
| 257 const opus_int32 Gains_Q16[ MAX_NB_SUBFR ], /* I
Quantization step sizes */ | 261 const opus_int32 Gains_Q16[ MAX_NB_SUBFR ], /* I
Quantization step sizes */ |
| 258 const opus_int pitchL[ MAX_NB_SUBFR ], /* I
Pitch lags */ | 262 const opus_int pitchL[ MAX_NB_SUBFR ], /* I
Pitch lags */ |
| 259 const opus_int Lambda_Q10, /* I
Rate/distortion tradeoff */ | 263 const opus_int Lambda_Q10, /* I
Rate/distortion tradeoff */ |
| 260 const opus_int LTP_scale_Q14 /* I
LTP state scaling */ | 264 const opus_int LTP_scale_Q14 /* I
LTP state scaling */ |
| 261 ); | 265 ); |
| 262 | 266 |
| 263 #if !defined(OVERRIDE_silk_NSQ) | 267 #if !defined(OVERRIDE_silk_NSQ) |
| 264 #define silk_NSQ(psEncC, NSQ, psIndices, x_Q3, pulses, PredCoef_Q12, LTPCoef_Q14
, AR2_Q13, \ | 268 #define silk_NSQ(psEncC, NSQ, psIndices, x16, pulses, PredCoef_Q12, LTPCoef_Q14,
AR_Q13, \ |
| 265 HarmShapeGain_Q14, Tilt_Q14, LF_shp_Q14, Gains_Q16, pitchL, L
ambda_Q10, LTP_scale_Q14, arch) \ | 269 HarmShapeGain_Q14, Tilt_Q14, LF_shp_Q14, Gains_Q16, pitchL, L
ambda_Q10, LTP_scale_Q14, arch) \ |
| 266 ((void)(arch),silk_NSQ_c(psEncC, NSQ, psIndices, x_Q3, pulses, PredCoef_Q12,
LTPCoef_Q14, AR2_Q13, \ | 270 ((void)(arch),silk_NSQ_c(psEncC, NSQ, psIndices, x16, pulses, PredCoef_Q12,
LTPCoef_Q14, AR_Q13, \ |
| 267 HarmShapeGain_Q14, Tilt_Q14, LF_shp_Q14, Gains_Q16, pitchL, L
ambda_Q10, LTP_scale_Q14)) | 271 HarmShapeGain_Q14, Tilt_Q14, LF_shp_Q14, Gains_Q16, pitchL, L
ambda_Q10, LTP_scale_Q14)) |
| 268 #endif | 272 #endif |
| 269 | 273 |
| 270 /* Noise shaping using delayed decision */ | 274 /* Noise shaping using delayed decision */ |
| 271 void silk_NSQ_del_dec_c( | 275 void silk_NSQ_del_dec_c( |
| 272 const silk_encoder_state *psEncC, /* I
/O Encoder State */ | 276 const silk_encoder_state *psEncC, /* I
Encoder State */ |
| 273 silk_nsq_state *NSQ, /* I
/O NSQ state */ | 277 silk_nsq_state *NSQ, /* I
/O NSQ state */ |
| 274 SideInfoIndices *psIndices, /* I
/O Quantization Indices */ | 278 SideInfoIndices *psIndices, /* I
/O Quantization Indices */ |
| 275 const opus_int32 x_Q3[], /* I
Prefiltered input signal */ | 279 const opus_int16 x16[], /* I
Input */ |
| 276 opus_int8 pulses[], /* O
Quantized pulse signal */ | 280 opus_int8 pulses[], /* O
Quantized pulse signal */ |
| 277 const opus_int16 PredCoef_Q12[ 2 * MAX_LPC_ORDER ], /* I
Short term prediction coefs */ | 281 const opus_int16 PredCoef_Q12[ 2 * MAX_LPC_ORDER ], /* I
Short term prediction coefs */ |
| 278 const opus_int16 LTPCoef_Q14[ LTP_ORDER * MAX_NB_SUBFR ], /* I
Long term prediction coefs */ | 282 const opus_int16 LTPCoef_Q14[ LTP_ORDER * MAX_NB_SUBFR ], /* I
Long term prediction coefs */ |
| 279 const opus_int16 AR2_Q13[ MAX_NB_SUBFR * MAX_SHAPE_LPC_ORDER ], /
* I Noise shaping coefs */ | 283 const opus_int16 AR_Q13[ MAX_NB_SUBFR * MAX_SHAPE_LPC_ORDER ], /*
I Noise shaping coefs */ |
| 280 const opus_int HarmShapeGain_Q14[ MAX_NB_SUBFR ], /* I
Long term shaping coefs */ | 284 const opus_int HarmShapeGain_Q14[ MAX_NB_SUBFR ], /* I
Long term shaping coefs */ |
| 281 const opus_int Tilt_Q14[ MAX_NB_SUBFR ], /* I
Spectral tilt */ | 285 const opus_int Tilt_Q14[ MAX_NB_SUBFR ], /* I
Spectral tilt */ |
| 282 const opus_int32 LF_shp_Q14[ MAX_NB_SUBFR ], /* I
Low frequency shaping coefs */ | 286 const opus_int32 LF_shp_Q14[ MAX_NB_SUBFR ], /* I
Low frequency shaping coefs */ |
| 283 const opus_int32 Gains_Q16[ MAX_NB_SUBFR ], /* I
Quantization step sizes */ | 287 const opus_int32 Gains_Q16[ MAX_NB_SUBFR ], /* I
Quantization step sizes */ |
| 284 const opus_int pitchL[ MAX_NB_SUBFR ], /* I
Pitch lags */ | 288 const opus_int pitchL[ MAX_NB_SUBFR ], /* I
Pitch lags */ |
| 285 const opus_int Lambda_Q10, /* I
Rate/distortion tradeoff */ | 289 const opus_int Lambda_Q10, /* I
Rate/distortion tradeoff */ |
| 286 const opus_int LTP_scale_Q14 /* I
LTP state scaling */ | 290 const opus_int LTP_scale_Q14 /* I
LTP state scaling */ |
| 287 ); | 291 ); |
| 288 | 292 |
| 289 #if !defined(OVERRIDE_silk_NSQ_del_dec) | 293 #if !defined(OVERRIDE_silk_NSQ_del_dec) |
| 290 #define silk_NSQ_del_dec(psEncC, NSQ, psIndices, x_Q3, pulses, PredCoef_Q12, LTP
Coef_Q14, AR2_Q13, \ | 294 #define silk_NSQ_del_dec(psEncC, NSQ, psIndices, x16, pulses, PredCoef_Q12, LTPC
oef_Q14, AR_Q13, \ |
| 291 HarmShapeGain_Q14, Tilt_Q14, LF_shp_Q14, Gains_Q16, p
itchL, Lambda_Q10, LTP_scale_Q14, arch) \ | 295 HarmShapeGain_Q14, Tilt_Q14, LF_shp_Q14, Gains_Q16, p
itchL, Lambda_Q10, LTP_scale_Q14, arch) \ |
| 292 ((void)(arch),silk_NSQ_del_dec_c(psEncC, NSQ, psIndices, x_Q3, pulses, PredC
oef_Q12, LTPCoef_Q14, AR2_Q13, \ | 296 ((void)(arch),silk_NSQ_del_dec_c(psEncC, NSQ, psIndices, x16, pulses, PredCo
ef_Q12, LTPCoef_Q14, AR_Q13, \ |
| 293 HarmShapeGain_Q14, Tilt_Q14, LF_shp_Q14, Gains_Q16, p
itchL, Lambda_Q10, LTP_scale_Q14)) | 297 HarmShapeGain_Q14, Tilt_Q14, LF_shp_Q14, Gains_Q16, p
itchL, Lambda_Q10, LTP_scale_Q14)) |
| 294 #endif | 298 #endif |
| 295 | 299 |
| 296 /************/ | 300 /************/ |
| 297 /* Silk VAD */ | 301 /* Silk VAD */ |
| 298 /************/ | 302 /************/ |
| 299 /* Initialize the Silk VAD */ | 303 /* Initialize the Silk VAD */ |
| 300 opus_int silk_VAD_Init( /* O Return v
alue, 0 if success */ | 304 opus_int silk_VAD_Init( /* O Return v
alue, 0 if success */ |
| 301 silk_VAD_state *psSilk_VAD /* I/O Pointer
to Silk VAD state */ | 305 silk_VAD_state *psSilk_VAD /* I/O Pointer
to Silk VAD state */ |
| 302 ); | 306 ); |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 339 const opus_int NLSF_mu_Q20, /* I Rate wei
ght for the RD optimization */ | 343 const opus_int NLSF_mu_Q20, /* I Rate wei
ght for the RD optimization */ |
| 340 const opus_int nSurvivors, /* I Max surv
ivors after first stage */ | 344 const opus_int nSurvivors, /* I Max surv
ivors after first stage */ |
| 341 const opus_int signalType /* I Signal t
ype: 0/1/2 */ | 345 const opus_int signalType /* I Signal t
ype: 0/1/2 */ |
| 342 ); | 346 ); |
| 343 | 347 |
| 344 /* Compute quantization errors for an LPC_order element input vector for a VQ co
debook */ | 348 /* Compute quantization errors for an LPC_order element input vector for a VQ co
debook */ |
| 345 void silk_NLSF_VQ( | 349 void silk_NLSF_VQ( |
| 346 opus_int32 err_Q26[], /* O Quantiza
tion errors [K] */ | 350 opus_int32 err_Q26[], /* O Quantiza
tion errors [K] */ |
| 347 const opus_int16 in_Q15[], /* I Input ve
ctors to be quantized [LPC_order] */ | 351 const opus_int16 in_Q15[], /* I Input ve
ctors to be quantized [LPC_order] */ |
| 348 const opus_uint8 pCB_Q8[], /* I Codebook
vectors [K*LPC_order] */ | 352 const opus_uint8 pCB_Q8[], /* I Codebook
vectors [K*LPC_order] */ |
| 353 const opus_int16 pWght_Q9[], /* I Codebook
weights [K*LPC_order] */ |
| 349 const opus_int K, /* I Number o
f codebook vectors */ | 354 const opus_int K, /* I Number o
f codebook vectors */ |
| 350 const opus_int LPC_order /* I Number o
f LPCs */ | 355 const opus_int LPC_order /* I Number o
f LPCs */ |
| 351 ); | 356 ); |
| 352 | 357 |
| 353 /* Delayed-decision quantizer for NLSF residuals */ | 358 /* Delayed-decision quantizer for NLSF residuals */ |
| 354 opus_int32 silk_NLSF_del_dec_quant( /* O Returns
RD value in Q25 */ | 359 opus_int32 silk_NLSF_del_dec_quant( /* O Returns
RD value in Q25 */ |
| 355 opus_int8 indices[], /* O Quantiza
tion indices [ order ] */ | 360 opus_int8 indices[], /* O Quantiza
tion indices [ order ] */ |
| 356 const opus_int16 x_Q10[], /* I Input [
order ] */ | 361 const opus_int16 x_Q10[], /* I Input [
order ] */ |
| 357 const opus_int16 w_Q5[], /* I Weights
[ order ] */ | 362 const opus_int16 w_Q5[], /* I Weights
[ order ] */ |
| 358 const opus_uint8 pred_coef_Q8[], /* I Backward
predictor coefs [ order ] */ | 363 const opus_uint8 pred_coef_Q8[], /* I Backward
predictor coefs [ order ] */ |
| (...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 462 /* Encoding of various parameters */ | 467 /* Encoding of various parameters */ |
| 463 void silk_encode_indices( | 468 void silk_encode_indices( |
| 464 silk_encoder_state *psEncC, /* I/O Encoder
state */ | 469 silk_encoder_state *psEncC, /* I/O Encoder
state */ |
| 465 ec_enc *psRangeEnc, /* I/O Compress
or data structure */ | 470 ec_enc *psRangeEnc, /* I/O Compress
or data structure */ |
| 466 opus_int FrameIndex, /* I Frame nu
mber */ | 471 opus_int FrameIndex, /* I Frame nu
mber */ |
| 467 opus_int encode_LBRR, /* I Flag ind
icating LBRR data is being encoded */ | 472 opus_int encode_LBRR, /* I Flag ind
icating LBRR data is being encoded */ |
| 468 opus_int condCoding /* I The type
of conditional coding to use */ | 473 opus_int condCoding /* I The type
of conditional coding to use */ |
| 469 ); | 474 ); |
| 470 | 475 |
| 471 #endif | 476 #endif |
| OLD | NEW |