diff options
Diffstat (limited to 'thirdparties/android/common/include/g729b/dtx.h')
-rw-r--r-- | thirdparties/android/common/include/g729b/dtx.h | 99 |
1 files changed, 99 insertions, 0 deletions
diff --git a/thirdparties/android/common/include/g729b/dtx.h b/thirdparties/android/common/include/g729b/dtx.h new file mode 100644 index 0000000..d0cc6ac --- /dev/null +++ b/thirdparties/android/common/include/g729b/dtx.h @@ -0,0 +1,99 @@ +/* + ITU-T G.729A Annex B ANSI-C Source Code + Version 1.3 Last modified: August 1997 + Copyright (c) 1996, France Telecom, Rockwell International, + Universite de Sherbrooke. + All rights reserved. +*/ + +/*--------------------------------------------------------------------------* + * Prototypes for DTX/CNG * + *--------------------------------------------------------------------------*/ + +/* Encoder DTX/CNG functions */ +void Init_Cod_cng(void); +void Cod_cng( + Word16 *exc, /* (i/o) : excitation array */ + Word16 pastVad, /* (i) : previous VAD decision */ + Word16 *lsp_old_q, /* (i/o) : previous quantized lsp */ + Word16 *Aq, /* (o) : set of interpolated LPC coefficients */ + Word16 *ana, /* (o) : coded SID parameters */ + Word16 freq_prev[MA_NP][M], + /* (i/o) : previous LPS for quantization */ + Word16 *seed /* (i/o) : random generator seed */ +); +void Update_cng( + Word16 *r_h, /* (i) : MSB of frame autocorrelation */ + Word16 exp_r, /* (i) : scaling factor associated */ + Word16 Vad /* (i) : current Vad decision */ +); + +/* SID gain Quantization */ +void Qua_Sidgain( + Word16 *ener, /* (i) array of energies */ + Word16 *sh_ener, /* (i) corresponding scaling factors */ + Word16 nb_ener, /* (i) number of energies or */ + Word16 *enerq, /* (o) decoded energies in dB */ + Word16 *idx /* (o) SID gain quantization index */ +); + +/* CNG excitation generation */ +void Calc_exc_rand( + Word16 cur_gain, /* (i) : target sample gain */ + Word16 *exc, /* (i/o) : excitation array */ + Word16 *seed, /* (i) : current Vad decision */ + Flag flag_cod /* (i) : encoder/decoder flag */ +); + +/* SID LSP Quantization */ +void Get_freq_prev(Word16 x[MA_NP][M]); +void Update_freq_prev(Word16 x[MA_NP][M]); +void Get_decfreq_prev(Word16 x[MA_NP][M]); +void Update_decfreq_prev(Word16 x[MA_NP][M]); + +/* Decoder CNG generation */ +void Init_Dec_cng(void); +void Dec_cng( + Word16 past_ftyp, /* (i) : past frame type */ + Word16 sid_sav, /* (i) : energy to recover SID gain */ + Word16 sh_sid_sav, /* (i) : corresponding scaling factor */ + Word16 *parm, /* (i) : coded SID parameters */ + Word16 *exc, /* (i/o) : excitation array */ + Word16 *lsp_old, /* (i/o) : previous lsp */ + Word16 *A_t, /* (o) : set of interpolated LPC coefficients */ + Word16 *seed, /* (i/o) : random generator seed */ + Word16 freq_prev[MA_NP][M] + /* (i/o) : previous LPS for quantization */ +); +Word16 read_frame(FILE *f_serial, Word16 *parm); + +/*--------------------------------------------------------------------------* + * Constants for DTX/CNG * + *--------------------------------------------------------------------------*/ + +/* DTX constants */ +#define FLAG_COD (Flag)1 +#define FLAG_DEC (Flag)0 +#define INIT_SEED 11111 +#define FR_SID_MIN 3 +#define NB_SUMACF 3 +#define NB_CURACF 2 +#define NB_GAIN 2 +#define FRAC_THRESH1 4855 +#define FRAC_THRESH2 3161 +#define A_GAIN0 28672 + +#define SIZ_SUMACF (NB_SUMACF * MP1) +#define SIZ_ACF (NB_CURACF * MP1) +#define A_GAIN1 4096 /* 32768L - A_GAIN0 */ + +#define RATE_8000 80 /* Full rate (8000 bit/s) */ +#define RATE_SID 15 /* SID */ +#define RATE_0 0 /* 0 bit/s rate */ + +/* CNG excitation generation constant */ + /* alpha = 0.5 */ +#define FRAC1 19043 /* (sqrt(40)xalpha/2 - 1) * 32768 */ +#define K0 24576 /* (1 - alpha ** 2) in Q15 */ +#define G_MAX 5000 + |