| Index: third_party/opus/src/silk/main.h
|
| diff --git a/third_party/opus/src/silk/main.h b/third_party/opus/src/silk/main.h
|
| index 2f90d68f7da0c7d4b09b706af701a64e272af507..1a33eed549b6a2085d6120d5210ae1c2bd4b28b6 100644
|
| --- a/third_party/opus/src/silk/main.h
|
| +++ b/third_party/opus/src/silk/main.h
|
| @@ -42,6 +42,10 @@ POSSIBILITY OF SUCH DAMAGE.
|
| #include "x86/main_sse.h"
|
| #endif
|
|
|
| +#if (defined(OPUS_ARM_ASM) || defined(OPUS_ARM_MAY_HAVE_NEON_INTR))
|
| +#include "arm/NSQ_del_dec_arm.h"
|
| +#endif
|
| +
|
| /* Convert Left/Right stereo signal to adaptive Mid/Side representation */
|
| void silk_stereo_LR_to_MS(
|
| stereo_enc_state *state, /* I/O State */
|
| @@ -109,22 +113,22 @@ void silk_stereo_decode_mid_only(
|
|
|
| /* Encodes signs of excitation */
|
| void silk_encode_signs(
|
| - ec_enc *psRangeEnc, /* I/O Compressor data structure */
|
| - const opus_int8 pulses[], /* I pulse signal */
|
| - opus_int length, /* I length of input */
|
| - const opus_int signalType, /* I Signal type */
|
| - const opus_int quantOffsetType, /* I Quantization offset type */
|
| - const opus_int sum_pulses[ MAX_NB_SHELL_BLOCKS ] /* I Sum of absolute pulses per block */
|
| + ec_enc *psRangeEnc, /* I/O Compressor data structure */
|
| + const opus_int8 pulses[], /* I pulse signal */
|
| + opus_int length, /* I length of input */
|
| + const opus_int signalType, /* I Signal type */
|
| + const opus_int quantOffsetType, /* I Quantization offset type */
|
| + const opus_int sum_pulses[ MAX_NB_SHELL_BLOCKS ] /* I Sum of absolute pulses per block */
|
| );
|
|
|
| /* Decodes signs of excitation */
|
| void silk_decode_signs(
|
| - ec_dec *psRangeDec, /* I/O Compressor data structure */
|
| - opus_int16 pulses[], /* I/O pulse signal */
|
| - opus_int length, /* I length of input */
|
| - const opus_int signalType, /* I Signal type */
|
| - const opus_int quantOffsetType, /* I Quantization offset type */
|
| - const opus_int sum_pulses[ MAX_NB_SHELL_BLOCKS ] /* I Sum of absolute pulses per block */
|
| + ec_dec *psRangeDec, /* I/O Compressor data structure */
|
| + opus_int16 pulses[], /* I/O pulse signal */
|
| + opus_int length, /* I length of input */
|
| + const opus_int signalType, /* I Signal type */
|
| + const opus_int quantOffsetType, /* I Quantization offset type */
|
| + const opus_int sum_pulses[ MAX_NB_SHELL_BLOCKS ] /* I Sum of absolute pulses per block */
|
| );
|
|
|
| /* Check encoder control struct */
|
| @@ -205,37 +209,37 @@ void silk_interpolate(
|
|
|
| /* LTP tap quantizer */
|
| void silk_quant_LTP_gains(
|
| - opus_int16 B_Q14[ MAX_NB_SUBFR * LTP_ORDER ], /* I/O (un)quantized LTP gains */
|
| + opus_int16 B_Q14[ MAX_NB_SUBFR * LTP_ORDER ], /* O Quantized LTP gains */
|
| opus_int8 cbk_index[ MAX_NB_SUBFR ], /* O Codebook Index */
|
| opus_int8 *periodicity_index, /* O Periodicity Index */
|
| opus_int32 *sum_gain_dB_Q7, /* I/O Cumulative max prediction gain */
|
| - const opus_int32 W_Q18[ MAX_NB_SUBFR*LTP_ORDER*LTP_ORDER ], /* I Error Weights in Q18 */
|
| - opus_int mu_Q9, /* I Mu value (R/D tradeoff) */
|
| - opus_int lowComplexity, /* I Flag for low complexity */
|
| - const opus_int nb_subfr, /* I number of subframes */
|
| + opus_int *pred_gain_dB_Q7, /* O LTP prediction gain */
|
| + const opus_int32 XX_Q17[ MAX_NB_SUBFR*LTP_ORDER*LTP_ORDER ], /* I Correlation matrix in Q18 */
|
| + const opus_int32 xX_Q17[ MAX_NB_SUBFR*LTP_ORDER ], /* I Correlation vector in Q18 */
|
| + const opus_int subfr_len, /* I Number of samples per subframe */
|
| + const opus_int nb_subfr, /* I Number of subframes */
|
| int arch /* I Run-time architecture */
|
| );
|
|
|
| /* Entropy constrained matrix-weighted VQ, for a single input data vector */
|
| void silk_VQ_WMat_EC_c(
|
| opus_int8 *ind, /* O index of best codebook vector */
|
| - opus_int32 *rate_dist_Q14, /* O best weighted quant error + mu * rate */
|
| + opus_int32 *res_nrg_Q15, /* O best residual energy */
|
| + opus_int32 *rate_dist_Q8, /* O best total bitrate */
|
| opus_int *gain_Q7, /* O sum of absolute LTP coefficients */
|
| - const opus_int16 *in_Q14, /* I input vector to be quantized */
|
| - const opus_int32 *W_Q18, /* I weighting matrix */
|
| + const opus_int32 *XX_Q17, /* I correlation matrix */
|
| + const opus_int32 *xX_Q17, /* I correlation vector */
|
| const opus_int8 *cb_Q7, /* I codebook */
|
| const opus_uint8 *cb_gain_Q7, /* I codebook effective gain */
|
| const opus_uint8 *cl_Q5, /* I code length for each codebook vector */
|
| - const opus_int mu_Q9, /* I tradeoff betw. weighted error and rate */
|
| + const opus_int subfr_len, /* I number of samples per subframe */
|
| const opus_int32 max_gain_Q7, /* I maximum sum of absolute LTP coefficients */
|
| - opus_int L /* I number of vectors in codebook */
|
| + const opus_int L /* I number of vectors in codebook */
|
| );
|
|
|
| #if !defined(OVERRIDE_silk_VQ_WMat_EC)
|
| -#define silk_VQ_WMat_EC(ind, rate_dist_Q14, gain_Q7, in_Q14, W_Q18, cb_Q7, cb_gain_Q7, cl_Q5, \
|
| - mu_Q9, max_gain_Q7, L, arch) \
|
| - ((void)(arch),silk_VQ_WMat_EC_c(ind, rate_dist_Q14, gain_Q7, in_Q14, W_Q18, cb_Q7, cb_gain_Q7, cl_Q5, \
|
| - mu_Q9, max_gain_Q7, L))
|
| +#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) \
|
| + ((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))
|
| #endif
|
|
|
| /************************************/
|
| @@ -243,14 +247,14 @@ void silk_VQ_WMat_EC_c(
|
| /************************************/
|
|
|
| void silk_NSQ_c(
|
| - const silk_encoder_state *psEncC, /* I/O Encoder State */
|
| + const silk_encoder_state *psEncC, /* I Encoder State */
|
| silk_nsq_state *NSQ, /* I/O NSQ state */
|
| SideInfoIndices *psIndices, /* I/O Quantization Indices */
|
| - const opus_int32 x_Q3[], /* I Prefiltered input signal */
|
| + const opus_int16 x16[], /* I Input */
|
| opus_int8 pulses[], /* O Quantized pulse signal */
|
| const opus_int16 PredCoef_Q12[ 2 * MAX_LPC_ORDER ], /* I Short term prediction coefs */
|
| const opus_int16 LTPCoef_Q14[ LTP_ORDER * MAX_NB_SUBFR ], /* I Long term prediction coefs */
|
| - const opus_int16 AR2_Q13[ MAX_NB_SUBFR * MAX_SHAPE_LPC_ORDER ], /* I Noise shaping coefs */
|
| + const opus_int16 AR_Q13[ MAX_NB_SUBFR * MAX_SHAPE_LPC_ORDER ], /* I Noise shaping coefs */
|
| const opus_int HarmShapeGain_Q14[ MAX_NB_SUBFR ], /* I Long term shaping coefs */
|
| const opus_int Tilt_Q14[ MAX_NB_SUBFR ], /* I Spectral tilt */
|
| const opus_int32 LF_shp_Q14[ MAX_NB_SUBFR ], /* I Low frequency shaping coefs */
|
| @@ -261,22 +265,22 @@ void silk_NSQ_c(
|
| );
|
|
|
| #if !defined(OVERRIDE_silk_NSQ)
|
| -#define silk_NSQ(psEncC, NSQ, psIndices, x_Q3, pulses, PredCoef_Q12, LTPCoef_Q14, AR2_Q13, \
|
| +#define silk_NSQ(psEncC, NSQ, psIndices, x16, pulses, PredCoef_Q12, LTPCoef_Q14, AR_Q13, \
|
| HarmShapeGain_Q14, Tilt_Q14, LF_shp_Q14, Gains_Q16, pitchL, Lambda_Q10, LTP_scale_Q14, arch) \
|
| - ((void)(arch),silk_NSQ_c(psEncC, NSQ, psIndices, x_Q3, pulses, PredCoef_Q12, LTPCoef_Q14, AR2_Q13, \
|
| + ((void)(arch),silk_NSQ_c(psEncC, NSQ, psIndices, x16, pulses, PredCoef_Q12, LTPCoef_Q14, AR_Q13, \
|
| HarmShapeGain_Q14, Tilt_Q14, LF_shp_Q14, Gains_Q16, pitchL, Lambda_Q10, LTP_scale_Q14))
|
| #endif
|
|
|
| /* Noise shaping using delayed decision */
|
| void silk_NSQ_del_dec_c(
|
| - const silk_encoder_state *psEncC, /* I/O Encoder State */
|
| + const silk_encoder_state *psEncC, /* I Encoder State */
|
| silk_nsq_state *NSQ, /* I/O NSQ state */
|
| SideInfoIndices *psIndices, /* I/O Quantization Indices */
|
| - const opus_int32 x_Q3[], /* I Prefiltered input signal */
|
| + const opus_int16 x16[], /* I Input */
|
| opus_int8 pulses[], /* O Quantized pulse signal */
|
| const opus_int16 PredCoef_Q12[ 2 * MAX_LPC_ORDER ], /* I Short term prediction coefs */
|
| const opus_int16 LTPCoef_Q14[ LTP_ORDER * MAX_NB_SUBFR ], /* I Long term prediction coefs */
|
| - const opus_int16 AR2_Q13[ MAX_NB_SUBFR * MAX_SHAPE_LPC_ORDER ], /* I Noise shaping coefs */
|
| + const opus_int16 AR_Q13[ MAX_NB_SUBFR * MAX_SHAPE_LPC_ORDER ], /* I Noise shaping coefs */
|
| const opus_int HarmShapeGain_Q14[ MAX_NB_SUBFR ], /* I Long term shaping coefs */
|
| const opus_int Tilt_Q14[ MAX_NB_SUBFR ], /* I Spectral tilt */
|
| const opus_int32 LF_shp_Q14[ MAX_NB_SUBFR ], /* I Low frequency shaping coefs */
|
| @@ -287,9 +291,9 @@ void silk_NSQ_del_dec_c(
|
| );
|
|
|
| #if !defined(OVERRIDE_silk_NSQ_del_dec)
|
| -#define silk_NSQ_del_dec(psEncC, NSQ, psIndices, x_Q3, pulses, PredCoef_Q12, LTPCoef_Q14, AR2_Q13, \
|
| +#define silk_NSQ_del_dec(psEncC, NSQ, psIndices, x16, pulses, PredCoef_Q12, LTPCoef_Q14, AR_Q13, \
|
| HarmShapeGain_Q14, Tilt_Q14, LF_shp_Q14, Gains_Q16, pitchL, Lambda_Q10, LTP_scale_Q14, arch) \
|
| - ((void)(arch),silk_NSQ_del_dec_c(psEncC, NSQ, psIndices, x_Q3, pulses, PredCoef_Q12, LTPCoef_Q14, AR2_Q13, \
|
| + ((void)(arch),silk_NSQ_del_dec_c(psEncC, NSQ, psIndices, x16, pulses, PredCoef_Q12, LTPCoef_Q14, AR_Q13, \
|
| HarmShapeGain_Q14, Tilt_Q14, LF_shp_Q14, Gains_Q16, pitchL, Lambda_Q10, LTP_scale_Q14))
|
| #endif
|
|
|
| @@ -346,6 +350,7 @@ void silk_NLSF_VQ(
|
| opus_int32 err_Q26[], /* O Quantization errors [K] */
|
| const opus_int16 in_Q15[], /* I Input vectors to be quantized [LPC_order] */
|
| const opus_uint8 pCB_Q8[], /* I Codebook vectors [K*LPC_order] */
|
| + const opus_int16 pWght_Q9[], /* I Codebook weights [K*LPC_order] */
|
| const opus_int K, /* I Number of codebook vectors */
|
| const opus_int LPC_order /* I Number of LPCs */
|
| );
|
|
|