📄 ld8e.h
字号:
/* Version 1.1 Last modified: February 1998 */
/*--------------------------------------------------------------*
* LD8E.H *
* ~~~~~~ *
* Function prototypes and constants use in G.729E *
* *
*--------------------------------------------------------------*/
/*--------------------------------------------------------------------------*
* Codec constant parameters (coder, decoder, and postfilter) *
*--------------------------------------------------------------------------*/
/* bitstream paramaters */
#define PRM_SIZE_E_fwd 18 /* Size of vector of analysis parameters. */
#define PRM_SIZE_E_bwd 16 /* Size of vector of analysis parameters. */
#define PRM_SIZE_E 18 /* Size of vector of analysis parameters. */
#define SERIAL_SIZE_E (116+4) /* Bits/frame + bfi+ number of speech bits
+ bit de mode + protection */
/* backward LPC analysis parameters */
#define M_BWD 30 /* Order of Backward LP filter. */
#define M_BWDP1 (M_BWD+1) /* Order of Backward LP filter + 1 */
#define NRP 35
#define MEM_SYN_BWD M_BWD + NRP
#define N1 M_BWD + L_FRAME
#define L_ANA_BWD L_FRAME + MEM_SYN_BWD
#define L_ANA_BWD_M1 L_ANA_BWD - 1
#define W_FACT 10368
#define GAMMA_BWD 32113
/* short term pst parameters : */
#define GAMMA1_PST_E 22938 /* denominator weighting factor (Q15) */
#define GAMMA2_PST_E 21300 /* numerator weighting factor (Q15) */
#define LONG_H_ST_E 32 /* impulse response length */
#define GAMMA_HARM_E 8192
#define GAMMA_HARM 16384
/* ACELP codebooks parameters */
#define NB_TRACK 5
#define Q15_1_5 6554
/*--------------------------------------------------------------------------*
* Main coder and decoder functions *
*--------------------------------------------------------------------------*/
void Init_Coder_ld8e(void);
void Coder_ld8e(
Word16 ana[], /* (o) : analysis parameters */
Word16 rate /* input : rate selector/frame =0 8kbps,= 1 11.8 kbps*/
);
void Init_Decod_ld8e(void);
void Decod_ld8e(
Word16 parm[], /* (i) : vector of synthesis parameters
parm[0] = bad frame indicator (bfi) */
Word16 rate, /* input : rate selector/frame =0 8kbps,= 1 11.8 kbps*/
Word16 voicing, /* (i) : voicing decision from previous frame */
Word16 synth[], /* (o) : synthesized speech */
Word16 A_t[], /* (o) : decoded LP filter for 2 subframes */
Word16 *T0_first, /* (o) : decoded pitch lag in first subframe */
Word16 *stationnary, /* output: stationnarity indicator */
Word16 *m_pst /* output: LPC order */
);
/*--------------------------------------------------------------------------*
* protypes of functions similar to G729 *
* differences : *
* list of arguments modified *
* local static variables and arrays are now passed as parameters *
* LPC order formerly constant is now passed as variable parameter *
* some temporary variables are now passed to the calling routine *
*--------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------*
* LPC analysis and filtering *
*--------------------------------------------------------------------------*/
void Levinsone(
Word16 m, /* (i) : LPC order */
Word16 Rh[], /* (i) : Rh[m+1] autocorrelation coefficients (msb) */
Word16 Rl[], /* (i) : Rl[m+1] autocorrelation coefficients (lsb) */
Word16 A[], /* (o) Q12 : A[m] LPC coefficients (m = 10) */
Word16 rc[], /* (o) Q15 : rc[M] Reflection coefficients. */
Word16 old_A[], /* (i/o) Q12 : last stable filter LPC coefficients */
Word16 old_rc[] /* (i/o) Q15 : last stable filter Reflection coefficients. */
);
void Residue(
Word16 m, /* (i) : LPC order */
Word16 a[], /* (i) Q12 : prediction coefficients */
Word16 x[], /* (i) : speech (values x[-m..-1] are needed */
Word16 y[], /* (o) : residual signal */
Word16 lg /* (i) : size of filtering */
);
void Syn_filte(
Word16 m, /* (i) : LPC order */
Word16 a[], /* (i) Q12 : a[m+1] prediction coefficients (m=10) */
Word16 x[], /* (i) : input signal */
Word16 y[], /* (o) : output signal */
Word16 lg, /* (i) : size of filtering */
Word16 mem[], /* (i/o) : memory associated with this filtering. */
Word16 update /* (i) : 0=no update, 1=update of memory. */
);
/*--------------------------------------------------------------------------*
* LSP VQ functions. *
*--------------------------------------------------------------------------*/
void Qua_lspe(
Word16 lsp[], /* (i) Q15 : Unquantized LSP */
Word16 lsp_q[], /* (o) Q15 : Quantized LSP */
Word16 ana[], /* (o) : indexes */
Word16 freq_prev[MA_NP][M], /* (i) Q13 : previous LSP MA vector */
Word16 freq_cur[] /* (o) Q13 : current LSP MA vector */
);
void Lsp_encw_resete(
Word16 freq_prev[MA_NP][M] /* (i) Q13 : previous LSP MA vector */
);
void Lsp_qua_cse(
Word16 flsp_in[M], /* (i) Q13 : Original LSP parameters */
Word16 lspq_out[M], /* (o) Q13 : Quantized LSP parameters */
Word16 *code, /* (o) : codes of the selected LSP */
Word16 freq_prev[MA_NP][M], /* (i) Q13 : previous LSP MA vector */
Word16 freq_cur[] /* (o) Q13 : current LSP MA vector */
);
void Lsp_get_quante(
Word16 lspcb1[][M], /* (i) Q13 : first stage LSP codebook */
Word16 lspcb2[][M], /* (i) Q13 : Second stage LSP codebook */
Word16 code0, /* (i) : selected code of first stage */
Word16 code1, /* (i) : selected code of second stage */
Word16 code2, /* (i) : selected code of second stage */
Word16 fg[][M], /* (i) Q15 : MA prediction coef. */
Word16 freq_prev[][M], /* (i) Q13 : previous LSP vector */
Word16 lspq[], /* (o) Q13 : quantized LSP parameters */
Word16 fg_sum[], /* (i) Q15 : present MA prediction coef. */
Word16 freq_cur[] /* (i) Q15 : present MA prediction coef. */
);
void Relspwede(
Word16 lsp[], /* (i) Q13 : unquantized LSP parameters */
Word16 wegt[], /* (i) norm: weighting coefficients */
Word16 lspq[], /* (o) Q13 : quantized LSP parameters */
Word16 lspcb1[][M], /* (i) Q13 : first stage LSP codebook */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -