enc_main.h
上传用户:zhongxx05
上传日期:2007-06-06
资源大小:33641k
文件大小:4k
源码类别:

Symbian

开发平台:

C/C++

  1. /*
  2.  *===================================================================
  3.  *  3GPP AMR Wideband Floating-point Speech Codec
  4.  *===================================================================
  5.  */
  6. #ifndef ENC_MAIN_H
  7. #define ENC_MAIN_H
  8. #include "typedef.h"
  9. #include "enc_dtx.h"
  10. #define L_FRAME      256     /* Frame size                                 */
  11. #define L_TOTAL      384     /* Total size of speech buffer.               */
  12. #define L_FILT16k    15      /* Delay of down-sampling filter              */
  13. #define PIT_MAX      231     /* Maximum pitch lag                          */
  14. #define OPL_DECIM    2       /* Decimation in open-loop pitch analysis     */
  15. #define L_INTERPOL   (16+1)  /* Length of filter for interpolation         */
  16. typedef struct
  17. {
  18.    /* Float32 */
  19.    Float32 mem_speech[L_TOTAL];        /* old speech vector at 12.8kHz       */
  20.    Float32 mem_wsp[L_FRAME + PIT_MAX / OPL_DECIM]; /* old decimated weighted */
  21.                                                    /* speech vector          */
  22.    Float32 mem_hp_wsp[L_FRAME / OPL_DECIM + (PIT_MAX / OPL_DECIM)];
  23.    Float32 mem_decim[2 * L_FILT16k];   /* speech decimated filter memory     */
  24.    Float32 mem_hf[2 * L_FILT16k];      /* HF band-pass filter memory         */
  25.    Float32 mem_hf2[2 * L_FILT16k];     /* HF band-pass filter memory         */
  26.    Float32 mem_hf3[2 * L_FILT16k];     /* HF band-pass filter memory         */
  27.    Float32 mem_isp[M];                 /* old isp (immittance spectral pairs)*/
  28.    Float32 mem_syn[M];                 /* synthesis memory                   */
  29.    Float32 mem_syn2[M];                /* modified synthesis memory          */
  30.    Float32 mem_syn_hf[M];              /* HF synthesis memory                */
  31.    Float32 mem_isf[M];                 /* old isf (frequency domain)         */
  32.    Float32 mem_hf_wsp[9];              /* Open-loop lag gain filter memory   */
  33.    Float32 mem_sig_in[4];              /* hp50 filter memory                 */
  34.    Float32 mem_sig_out[4];             /* hp50 filter memory for synthesis   */
  35.    Float32 mem_hp400[4];               /* hp400 filter memory for synthesis  */
  36.    Float32 mem_decim2[3];              /* wsp decimation filter memory       */
  37.    Float32 mem_gp_clip[2];             /* gain of pitch clipping memory      */
  38.    Float32 mem_preemph;                /* speech preemph filter memory       */
  39.    Float32 mem_deemph;                 /* speech deemph filter memory        */
  40.    Float32 mem_wsp_df;                 /* Open-loop LTP deemph filter memory */
  41.    Float32 mem_w0;                     /* target vector memory               */
  42.    Float32 mem_ol_gain;                /* Open-loop gain                     */
  43.    Float32 mem_ada_w;                  /* weighting level                    */
  44.    Float32 mem_gc_threshold;           /* threshold for noise enhancer       */
  45.    Float32 mem_gain_alpha;             /* Higher band gain weighting factor  */
  46.    /* Word32 */
  47.    Word32 mem_ol_lag[5];               /* Open loop lag history              */
  48.    Word32 mem_T0_med;                  /* weighted open loop pitch lag       */
  49.    /* Word16 */
  50.    Word16 mem_exc[(L_FRAME + 1) + PIT_MAX + L_INTERPOL];
  51.                                        /* old excitation vector              */
  52.    Word16 mem_isp_q[M];                /* quantized old isp                  */
  53.    Word16 mem_isf_q[M];                /* past isf quantizer                 */
  54.    Word16 mem_gain_q[4];               /* gain quantizer memory              */
  55.    Word16 mem_subfr_q[4];              /* old maximum scaling factor         */
  56.    Word16 mem_tilt_code;               /* tilt of code                       */
  57.    Word16 mem_q;                       /* old scaling factor                 */
  58.    Word16 mem_seed;                    /* random memory for HF generation    */
  59.    /* other */
  60.    E_DTX_Vad_State *vadSt;
  61.    E_DTX_State *dtx_encSt;
  62.    UWord8 mem_first_frame;             /* First frame indicator              */
  63.    UWord8 mem_ol_wght_flg;             /* switches lag weighting on and off  */
  64.    UWord8 mem_vad_hist;                /* VAD history                        */
  65. } Coder_State;
  66. #endif