⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ld8k.h

📁 ITU-T G.729 Source code(已经验证过的)
💻 H
📖 第 1 页 / 共 3 页
字号:
  Word16 fg_sum[]   /* Q15 */
);

void Lsp_last_select(
  Word32 L_tdist[], /* Q27 */
  Word16 *mode_index
);

void Lsp_pre_select(
  Word16 rbuf[],         /* Q13 */
  Word16 lspcb1[][M], /* Q13 */
  Word16 *cand
);

void Lsp_select_1(
  Word16 rbuf[],         /* Q13 */
  Word16 lspcb1[],       /* Q13 */
  Word16 wegt[],         /* normalized */
  Word16 lspcb2[][M], /* Q13 */
  Word16 *index
);

void Lsp_select_2(
  Word16 rbuf[],         /* Q13 */
  Word16 lspcb1[],       /* Q13 */
  Word16 wegt[],         /* normalized */
  Word16 lspcb2[][M], /* Q13 */
  Word16 *index
);

void Lsp_stability(
  Word16 buf[]     /* Q13 */
);

void Relspwed(
  Word16 lsp[],                          /* Q13 */
  Word16 wegt[],                         /* normalized */
  Word16 lspq[],                         /* Q13 */
  Word16 lspcb1[][M],                 /* Q13 */
  Word16 lspcb2[][M],                 /* Q13 */
  Word16 fg[MODE][MA_NP][M],          /* Q15 */
  Word16 freq_prev[MA_NP][M],         /* Q13 */
  Word16 fg_sum[MODE][M],             /* Q15 */
  Word16 fg_sum_inv[MODE][M],         /* Q12 */
  Word16 code_ana[]
);

void D_lsp(
  Word16 prm[],     /* (i)     : indexes of the selected LSP                */
  Word16 lsp_q[],   /* (o) Q15 : Quantized LSP parameters                   */
  Word16 erase      /* (i)     : frame erase information                    */
);

void Lsp_decw_reset( void);

void Lsp_iqua_cs(
  Word16 prm[],     /* (i)     : codes of the selected LSP                  */
  Word16 lsp_q[],   /* (o)     : Quantized LSP parameters                   */
  Word16 erase      /* (i)     : frame erase information                    */
);

void Lsp_prev_compose(
  Word16 lsp_ele[], /* Q13 */
  Word16 lsp[],     /* Q13 */
  Word16 fg[][M],/* Q15 */
  Word16 freq_prev[][M],     /* Q13 */
  Word16 fg_sum[]   /* Q15 */
);

void Lsp_prev_extract(
  Word16 lsp[M],                 /* Q13 */
  Word16 lsp_ele[M],             /* Q13 */
  Word16 fg[MA_NP][M],           /* Q15 */
  Word16 freq_prev[MA_NP][M],    /* Q13 */
  Word16 fg_sum_inv[M]           /* Q12 */
);

void Lsp_prev_update(
  Word16 lsp_ele[M],             /* Q13 */
  Word16 freq_prev[MA_NP][M]     /* Q13 */
);

/*--------------------------------------------------------------------------*
 * gain VQ constants.                                                       *
 *--------------------------------------------------------------------------*/

#define NCODE1_B  3                /* number of Codebook-bit                */
#define NCODE2_B  4                /* number of Codebook-bit                */
#define NCODE1    (1<<NCODE1_B)    /* Codebook 1 size                       */
#define NCODE2    (1<<NCODE2_B)    /* Codebook 2 size                       */
#define NCAN1     4                /* Pre-selecting order for #1            */
#define NCAN2     8                /* Pre-selecting order for #2            */
#define INV_COEF  -17103           /* Q19                                   */

/*--------------------------------------------------------------------------*
 * gain VQ functions.                                                       *
 *--------------------------------------------------------------------------*/

Word16 Qua_gain(
  Word16 code[],    /* (i) Q13 : Innovative vector.                         */
  Word16 g_coeff[], /* (i)     : Correlations <xn y1> -2<y1 y1>             */
                    /*            <y2,y2>, -2<xn,y2>, 2<y1,y2>              */
  Word16 exp_coeff[],/* (i)    : Q-Format g_coeff[]                         */
  Word16 L_subfr,   /* (i)     : Subframe length.                           */
  Word16 *gain_pit, /* (o) Q14 : Pitch gain.                                */
  Word16 *gain_cod, /* (o) Q1  : Code gain.                                 */
  Word16 tameflag   /* (i)     : flag set to 1 if taming is needed          */
);

void Dec_gain(
  Word16 index,     /* (i)     : Index of quantization.                     */
  Word16 code[],    /* (i) Q13 : Innovative vector.                         */
  Word16 L_subfr,   /* (i)     : Subframe length.                           */
  Word16 bfi,       /* (i)     : Bad frame indicator                        */
  Word16 *gain_pit, /* (o) Q14 : Pitch gain.                                */
  Word16 *gain_cod  /* (o) Q1  : Code gain.                                 */
);

void Gain_predict(
  Word16 past_qua_en[],/* (i) Q10 :Past quantized energies                  */
  Word16 code[],    /* (i) Q13 : Innovative vector.                         */
  Word16 L_subfr,   /* (i)     : Subframe length.                           */
  Word16 *gcode0,   /* (o) Qxx : Predicted codebook gain                    */
  Word16 *exp_gcode0 /* (o)    : Q-Format(gcode0)                           */
);

void Gain_update(
  Word16 past_qua_en[],/* (i) Q10 :Past quantized energies                  */
  Word32 L_gbk12    /* (i) Q13 : gbk1[indice1][1]+gbk2[indice2][1]          */
);

void Gain_update_erasure(
  Word16 past_qua_en[]/* (i) Q10 :Past quantized energies                   */
);

void Corr_xy2(
  Word16 xn[],      /* (i) Q0  :Target vector.                              */
  Word16 y1[],      /* (i) Q0  :Adaptive codebook.                          */
  Word16 y2[],      /* (i) Q12 :Filtered innovative vector.                 */
  Word16 g_coeff[], /* (o) Q[exp]:Correlations between xn,y1,y2             */
  Word16 exp_g_coeff[]  /* (o)  :Q-format of g_coeff[]                      */
);

/*--------------------------------------------------------------------------*
 * Postfilter constants and functions                                       *
 *--------------------------------------------------------------------------*/

/* short term pst parameters :                                              */
#define GAMMA1_PST  22938      /* denominator weighting factor   (Q15)      */
#define GAMMA2_PST  18022      /* numerator  weighting factor (Q15)         */
#define LONG_H_ST   20         /* impulse response length                   */
#define GAMMA3_PLUS 6554       /* tilt weighting factor when k1>0 (Q15)     */
#define GAMMA3_MINUS 29491     /* tilt weighting factor when k1<0 (Q15)     */

/* long term pst parameters :                                               */
#define F_UP_PST    8          /* resolution for fractional delay           */
#define LH2_S       4          /* length of short interp. subfilters        */
#define L2_LH2_L    4          /* log2(LH2_L)                               */
#define LH2_L       (1 << L2_LH2_L)
#define MIN_GPLT    21845      /* LT gain minimum (Q15)                     */

#define LH_UP_S     (LH2_S/2)
#define LH_UP_SM1   (LH_UP_S-1)
#define LH_UP_L     (LH2_L/2)
#define LH2_L_P1    (LH2_L + 1)

/* gain adjustment parameters                                               */
#define AGC_FAC     32358     /* gain adjustment factor  0.9875 (Q15)       */
#define AGC_FAC1    (Word16)(32768L - AGC_FAC)

/* Array sizes */
#define MEM_RES2    (PIT_MAX + 1 + LH_UP_L)
#define SIZ_RES2    (MEM_RES2 + L_SUBFR)
#define SIZ_Y_UP    ((F_UP_PST-1) * L_SUBFRP1)
#define SIZ_TAB_HUP_L ((F_UP_PST-1) * LH2_L)
#define SIZ_TAB_HUP_S ((F_UP_PST-1) * LH2_S)

void  Init_Post_Filter( void);

void Post(
  Word16 t0,        /* (i) : 1st subframe delay given by coder              */
  Word16 *signal_ptr, /* (i) : input signal (pointer to current subframe    */
  Word16 *coeff,    /* (i) : LPC coefficients for current subframe          */
  Word16 *sig_out,  /* (o) : postfiltered output                            */
  Word16 *vo,       /* (o) : voicing decision 0 = uv,  > 0 delay            */
  Word16 Vad        /* (i) : frame type                                     */
);

/*--------------------------------------------------------------------------*
 * Bitstream constants and functions                                        *
 *--------------------------------------------------------------------------*/

#define BIT_0    (short)0x007f /* definition of zero-bit in bit-stream      */
#define BIT_1    (short)0x0081 /* definition of one-bit in bit-stream       */
#define SYNC_WORD (short)0x6b21 /* definition of frame erasure flag         */
#define SIZE_WORD (short)80     /* number of speech bits                    */

void  prm2bits_ld8k(
  Word16 prm[],     /* (i)     : coder parameters                           */
  Word16 bits[]     /* (o)     : bit stream                                 */
);
void  bits2prm_ld8k(
  Word16 bits[],    /* (i)     : bit stream                                 */
  Word16 prm[]      /* (o)     : coder parameters                           */
);

/*--------------------------------------------------------------------------*
 * Prototypes for auxiliary functions.                                      *
 *--------------------------------------------------------------------------*/

void Copy(
  Word16 x[],       /* (i)     : input vector                               */
  Word16 y[],       /* (o)     : output vector                              */
  Word16 L          /* (i)     : vector length                              */
);

void Set_zero(
  Word16 x[],       /* (o)     : vector to clear                            */
  Word16 L          /* (i)     : length of vector                           */
);

Word16 Random(Word16 *seed);


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -