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

📄 vad2.h

📁 实现3GPP的GSM中AMR语音的CODECS。
💻 H
字号:
/* ------------------------------------------------------------------ * Copyright (C) 2008 PacketVideo * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * *      http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either * express or implied. * See the License for the specific language governing permissions * and limitations under the License. * ------------------------------------------------------------------- *//****************************************************************************************Portions of this file are derived from the following 3GPP standard:    3GPP TS 26.073    ANSI-C code for the Adaptive Multi-Rate (AMR) speech codec    Available from http://www.3gpp.org(C) 2004, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC)Permission to distribute, modify and use this file under the standard licenseterms listed above has been obtained from the copyright holder.****************************************************************************************//*------------------------------------------------------------------------------ Filename: /audio/gsm_amr/c/include/vad2.h     Date: 02/04/2002------------------------------------------------------------------------------ REVISION HISTORY Description: Placed header file in the proper template format.  Added parameter pOverflow for the basic math ops. Description: Added pOverflow to the r_fft function prototype. Description: Added pOverflow to the LTP_flag_update prototype. Description:  Replaced "int" and/or "char" with OSCL defined types. Description: Moved _cplusplus #ifdef after Include section. Description:------------------------------------------------------------------------------ INCLUDE DESCRIPTION This file contains all the constant definitions, prototype and structure definitions needed by vad_2.c------------------------------------------------------------------------------*//*----------------------------------------------------------------------------; CONTINUE ONLY IF NOT ALREADY DEFINED----------------------------------------------------------------------------*/#ifndef vad_2_h#define vad_2_h "$Id $"/*----------------------------------------------------------------------------; INCLUDES----------------------------------------------------------------------------*/#include "typedef.h"/*--------------------------------------------------------------------------*/#ifdef __cplusplusextern "C"{#endif    /*----------------------------------------------------------------------------    ; MACROS    ; Define module specific macros here    ----------------------------------------------------------------------------*/    /*----------------------------------------------------------------------------    ; DEFINES    ; Include all pre-processor statements here.    ----------------------------------------------------------------------------*/#define     YES     1#define     NO      0#define     ON      1#define     OFF     0#define     TRUE        1#define     FALSE       0#define     FRM_LEN                 80#define     DELAY                   24#define     FFT_LEN                 128#define     NUM_CHAN                16#define     LO_CHAN                 0#define     HI_CHAN                 15#define     UPDATE_THLD             35#define     HYSTER_CNT_THLD         6#define     UPDATE_CNT_THLD         50#define     SHIFT_STATE_0       0       /* channel energy scaled as 22,9 */#define     SHIFT_STATE_1       1       /* channel energy scaled as 27,4 */#define     NOISE_FLOOR_CHAN_0  512     /* 1.0    scaled as 22,9 */#define     MIN_CHAN_ENRG_0     32      /* 0.0625 scaled as 22,9 */#define     MIN_NOISE_ENRG_0    32      /* 0.0625 scaled as 22,9 */#define     INE_NOISE_0     8192        /* 16.0   scaled as 22,9 */#define     FRACTIONAL_BITS_0   9       /* used as input to fn10Log10() */#define     NOISE_FLOOR_CHAN_1  16      /* 1.0    scaled as 27,4 */#define     MIN_CHAN_ENRG_1     1       /* 0.0625 scaled as 27,4 */#define     MIN_NOISE_ENRG_1    1       /* 0.0625 scaled as 27,4 */#define     INE_NOISE_1     256     /* 16.0   scaled as 27,4 */#define     FRACTIONAL_BITS_1   4       /* used as input to fn10Log10() */#define     STATE_1_TO_0_SHIFT_R    (FRACTIONAL_BITS_1-FRACTIONAL_BITS_0)   /* state correction factor */#define     STATE_0_TO_1_SHIFT_R    (FRACTIONAL_BITS_0-FRACTIONAL_BITS_1)   /* state correction factor */#define         HIGH_ALPHA              29491       /* 0.9 scaled as 0,15 */#define         LOW_ALPHA               22938       /* 0.7 scaled as 0,15 */#define         ALPHA_RANGE             (HIGH_ALPHA - LOW_ALPHA)#define         DEV_THLD                7168        /* 28.0 scaled as 7,8 */#define         PRE_EMP_FAC             (-26214)    /* -0.8 scaled as 0,15 */#define         CEE_SM_FAC              18022       /* 0.55 scaled as 0,15 */#define         ONE_MINUS_CEE_SM_FAC    14746       /* 0.45 scaled as 0,15 */#define         CNE_SM_FAC              3277        /* 0.1 scaled as 0,15 */#define         ONE_MINUS_CNE_SM_FAC    29491       /* 0.9 scaled as 0,15 */#define         FFT_HEADROOM            2    /*----------------------------------------------------------------------------    ; EXTERNAL VARIABLES REFERENCES    ; Declare variables used in this module but defined elsewhere    ----------------------------------------------------------------------------*/    /*----------------------------------------------------------------------------    ; SIMPLE TYPEDEF'S    ----------------------------------------------------------------------------*/    /*----------------------------------------------------------------------------    ; ENUMERATED TYPEDEF'S    ----------------------------------------------------------------------------*/    /*----------------------------------------------------------------------------    ; STRUCTURES TYPEDEF'S    ----------------------------------------------------------------------------*/    typedef struct    {        Word16 pre_emp_mem;        Word16 update_cnt;        Word16 hyster_cnt;        Word16 last_update_cnt;        Word16 ch_enrg_long_db[NUM_CHAN];   /* scaled as 7,8  */        Word32 Lframe_cnt;        Word32 Lch_enrg[NUM_CHAN];  /* scaled as 22,9 or 27,4 */        Word32 Lch_noise[NUM_CHAN]; /* scaled as 22,9 */        Word16 last_normb_shift;    /* last block norm shift count */        Word16 tsnr;            /* total signal-to-noise ratio in dB (scaled as 7,8) */        Word16 hangover;        Word16 burstcount;        Word16 fupdate_flag;        /* forced update flag from previous frame */        Word16 negSNRvar;       /* Negative SNR variance (scaled as 7,8) */        Word16 negSNRbias;      /* sensitivity bias from negative SNR variance (scaled as 15,0) */        Word16 shift_state;     /* use 22,9 or 27,4 scaling for ch_enrg[] */        Word32 L_R0;        Word32 L_Rmax;        Flag   LTP_flag;        /* Use to indicate the the LTP gain is > LTP_THRESH */    } vadState2;    /*----------------------------------------------------------------------------    ; GLOBAL FUNCTION DEFINITIONS    ; Function Prototype declaration    ----------------------------------------------------------------------------*/    Word16  vad2(Word16 *farray_ptr, vadState2 *st, Flag *pOverflow);    Word16 vad2_init(vadState2 **st);    Word16 vad2_reset(vadState2 *st);    void    vad2_exit(vadState2 **state);    void    r_fft(Word16 *farray_ptr, Flag *pOverflow);    void    LTP_flag_update(vadState2 *st, Word16 mode, Flag *pOverflow);    /*----------------------------------------------------------------------------    ; END    ----------------------------------------------------------------------------*/#ifdef __cplusplus}#endif#endif /* _VAD2_H_ */

⌨️ 快捷键说明

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