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 |