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

Symbian

开发平台:

C/C++

  1. /*
  2.  *===================================================================
  3.  *  3GPP AMR Wideband Floating-point Speech Codec
  4.  *===================================================================
  5.  */
  6. #ifndef DEC_DTX_H
  7. #define DEC_DTX_H
  8. #include "typedef.h"
  9. #define M               16      /* Order of LP filter */
  10. #define SPEECH          0
  11. #define DTX             1
  12. #define D_DTX_MUTE      2
  13. #define D_DTX_HIST_SIZE 8
  14. typedef struct {
  15.    Word16 mem_isf_buf[M * D_DTX_HIST_SIZE];  /* ISF vector history (8 frames)*/
  16.    Word16 mem_isf[M];            /* ISF vector                               */
  17.    Word16 mem_isf_prev[M];       /* Previous ISF vector                      */
  18.    Word16 mem_log_en_buf[D_DTX_HIST_SIZE];/* logarithmic frame energy history*/
  19.    Word16 mem_true_sid_period_inv;  /* inverse of true SID update rate       */
  20.    Word16 mem_log_en;            /* logarithmic frame energy                 */
  21.    Word16 mem_log_en_prev;       /* previous logarithmic frame energy        */
  22.    Word16 mem_cng_seed;          /* Comfort noise excitation seed            */
  23.    Word16 mem_hist_ptr;          /* index to beginning of LSF history        */
  24.    Word16 mem_dither_seed;       /* comfort noise dithering seed             */
  25.    Word16 mem_cn_dith;           /* background noise stationarity information*/
  26.    UWord8 mem_dec_ana_elapsed_count;/* counts elapsed speech frames after DTX*/
  27.    UWord8 mem_dtx_global_state;  /* DTX state flags                          */
  28.    UWord8 mem_since_last_sid;    /* number of frames since last SID frame    */
  29.    UWord8 mem_data_updated;      /* flags CNI updates                        */
  30.    UWord8 mem_dtx_hangover_count;/* counts down in hangover period           */
  31.    UWord8 mem_sid_frame;         /* flags SID frames                         */
  32.    UWord8 mem_valid_data;        /* flags SID frames containing valid data   */
  33.    UWord8 mem_dtx_hangover_added;/* flags hangover period at end of speech   */
  34. } D_DTX_State;
  35. int D_DTX_init(D_DTX_State **st, const Word16 *isf_init);
  36. int D_DTX_reset(D_DTX_State *st, const Word16 *isf_init);
  37. void D_DTX_exit(D_DTX_State **st);
  38. UWord8 D_DTX_rx_handler(D_DTX_State *st, UWord8 frame_type);
  39. void D_DTX_exe(D_DTX_State *st, Word16 *exc2, Word16 new_state,
  40.                Word16 isf[], Word16 **prms);
  41. void D_DTX_activity_update(D_DTX_State *st, Word16 isf[], Word16 exc[]);
  42. #endif