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

📄 ld8a.h

📁 G.729加解码程序
💻 H
📖 第 1 页 / 共 2 页
字号:
#define GRID_POINTS     50#define PI04      ((Word16)1029)        /* Q13  pi*0.04 */#define PI92      ((Word16)23677)       /* Q13  pi*0.92 */#define CONST10   ((Word16)10*(1<<11))  /* Q11  10.0 */#define CONST12   ((Word16)19661)       /* Q14  1.2 *//*-------------------------------* * LSP VQ functions.             * *-------------------------------*/void Lsf_lsp2(  Word16 lsf[],    /* (i) Q13 : lsf[m] (range: 0.0<=val<PI) */  Word16 lsp[],    /* (o) Q15 : lsp[m] (range: -1<=val<1)   */  Word16 m         /* (i)     : LPC order                   */);void Lsp_lsf2(  Word16 lsp[],    /* (i) Q15 : lsp[m] (range: -1<=val<1)   */  Word16 lsf[],    /* (o) Q13 : lsf[m] (range: 0.0<=val<PI) */  Word16 m         /* (i)     : LPC order                   */);void Qua_lsp(  Word16 lsp[],       /* (i) Q15 : Unquantized LSP            */  Word16 lsp_q[],     /* (o) Q15 : Quantized LSP              */  Word16 ana[]        /* (o)     : indexes                    */);void Get_wegt(  Word16 flsp[],    /* Q13 */  Word16 wegt[]     /* Q11 -> normalized */);void Lsp_encw_reset(  void);void Lsp_qua_cs(  Word16 flsp_in[M],    /* Q13 */  Word16 lspq_out[M],   /* Q13 */  Word16 *code);void Lsp_expand_1(  Word16 buf[],          /* Q13 */  Word16 gap             /* Q13 */);void Lsp_expand_2(  Word16 buf[],         /* Q13 */  Word16 gap            /* Q13 */);void Lsp_expand_1_2(  Word16 buf[],         /* Q13 */  Word16 gap            /* Q13 */);void Lsp_get_quant(  Word16 lspcb1[][M],      /* Q13 */  Word16 lspcb2[][M],      /* Q13 */  Word16 code0,  Word16 code1,  Word16 code2,  Word16 fg[][M],            /* Q15 */  Word16 freq_prev[][M],     /* Q13 */  Word16 lspq[],                /* Q13 */  Word16 fg_sum[]               /* Q15 */);void Lsp_get_tdist(  Word16 wegt[],        /* normalized */  Word16 buf[],         /* Q13 */  Word32 *L_tdist,      /* Q27 */  Word16 rbuf[],        /* Q13 */  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[],          /* input : codes of the selected LSP*/ Word16 lsp_q[],        /* output: Quantized LSP parameters*/ Word16 erase           /* input : 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[]         */);/*-----------------------* * Bitstream function    * *-----------------------*/void  prm2bits_ld8k(Word16 prm[], Word16 bits[]);void  bits2prm_ld8k(Word16 bits[], Word16 prm[]);#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                     *//*-----------------------------------* * Post-filter functions.            * *-----------------------------------*/#define L_H 22     /* size of truncated impulse response of A(z/g1)/A(z/g2) */#define GAMMAP      16384   /* 0.5               (Q15) */#define INV_GAMMAP  21845   /* 1/(1+GAMMAP)      (Q15) */#define GAMMAP_2    10923   /* GAMMAP/(1+GAMMAP) (Q15) */#define  GAMMA2_PST 18022 /* Formant postfilt factor (numerator)   0.55 Q15 */#define  GAMMA1_PST 22938 /* Formant postfilt factor (denominator) 0.70 Q15 */#define  MU       26214   /* Factor for tilt compensation filter   0.8  Q15 */#define  AGC_FAC  29491   /* Factor for automatic gain control     0.9  Q15 */#define  AGC_FAC1 (Word16)(32767 - AGC_FAC)    /* 1-AGC_FAC in Q15          */void Init_Post_Filter(void);void Post_Filter(  Word16 *syn,       /* in/out: synthesis speech (postfiltered is output)    */  Word16 *Az_4,       /* input : interpolated LPC parameters in all subframes */  Word16 *T            /* input : decoded pitch lags in all subframes          */);void pit_pst_filt(  Word16 *signal,      /* (i)     : input signal                        */  Word16 *scal_sig,    /* (i)     : input signal (scaled, divided by 4) */  Word16 t0_min,       /* (i)     : minimum value in the searched range */  Word16 t0_max,       /* (i)     : maximum value in the searched range */  Word16 L_subfr,      /* (i)     : size of filtering                   */  Word16 *signal_pst   /* (o)     : harmonically postfiltered signal    */);void preemphasis(  Word16 *signal,  /* (i/o)   : input signal overwritten by the output */  Word16 g,        /* (i) Q15 : preemphasis coefficient                */  Word16 L         /* (i)     : size of filtering                      */);void agc(  Word16 *sig_in,   /* (i)     : postfilter input signal  */  Word16 *sig_out,  /* (i/o)   : postfilter output signal */  Word16 l_trm      /* (i)     : subframe size            */);/*--------------------------------------------------------------------------* * Constants and prototypes for taming procedure.                           * *--------------------------------------------------------------------------*/#define GPCLIP      15564      /* Maximum pitch gain if taming is needed Q14*/#define GPCLIP2     481        /* Maximum pitch gain if taming is needed Q9 */#define GP0999      16383      /* Maximum pitch gain if taming is needed    */#define L_THRESH_ERR 983040000L /* Error threshold taming 16384. * 60000.   */void   Init_exc_err(void);void   update_exc_err(Word16 gain_pit, Word16 t0);Word16 test_err(Word16 t0, Word16 t0_frac);/*--------------------------------------------------------------------------* * 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(void);

⌨️ 快捷键说明

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