📄 cst_lbc.h
字号:
#ifndef _CST_LBC_H_#define _CST_LBC_H_/***** File: "cst_lbc.h"**** Description: This file contains global definition of the SG15** LBC Coder for 6.3/5.3 kbps.***//* ITU-T G.723 Speech Coder ANSI-C Source Code Version 5.00 copyright (c) 1995, AudioCodes, DSP Group, France Telecom, Universite de Sherbrooke. All rights reserved.*/#include "typedef.h"#define False 0#define True 1/* Definition of the working mode */enum Wmode { Both, Cod, Dec } ;/* Coder rate */enum Crate { Rate63, Rate53 } ;/* Coder global constants */#define Frame 240#define LpcFrame 180#define SubFrames 4#define SubFrLen (Frame/SubFrames)/* LPC constants */#define LpcOrder 10#define RidgeFact 10#define CosineTableSize 512#define PreCoef (Word16) 0xc000 /* -0.25*2 */#define LspPrd0 12288#define LspPrd1 23552#define LspQntBands 3#define LspCbSize 256#define LspCbBits 8/* LTP constants */#define PitchMin 18#define PitchMax (PitchMin+127)#define PwConst (Word16) 0x2800#define PwRange 3#define ClPitchOrd 5#define Pstep 1#define NbFilt085 85#define NbFilt170 170/* MP-MLQ constants */#define Sgrid 2#define MaxPulseNum 6#define MlqSteps 2/* acelp constants */#define SubFrLen2 (SubFrLen +4)#define DIM_RR 416#define NB_POS 8#define STEP 8#define MSIZE 64#define threshold 16384 /* 0.5 = 16384 in Q15 */#define max_time 120/* Gain constant */#define NumOfGainLev 24/* FER constant */#define ErrMaxNum 3/* CNG constants */#define NbAvAcf 3 /* Nb of frames for Acf average */#define NbAvGain 3 /* Nb of frames for gain average */#define ThreshGain 3 /* Theshold for quantized gains */#define FracThresh 7000 /* Itakura dist threshold: frac. part */#define NbPulsBlk 11 /* Nb of pulses in 2-subframes blocks */#define InvNbPulsBlk 2979 /* 32768/NbPulsBlk */#define NbFilt 50 /* number of filters for CNG exc generation */#define LpcOrderP1 (LpcOrder+1)#define SizAcf ((NbAvAcf+1)*LpcOrderP1) /* size of array Acf */#define SubFrLenD (2*SubFrLen)#define Gexc_Max 5000 /* Maximum gain for fixed CNG excitation *//* Taming constants */#define NbFilt085_min 51#define NbFilt170_min 93#define SizErr 5#define Err0 (Word32)4 /* scaling factor */#define ThreshErr 0x40000000L#define DEC (30 - 7)/* Used structures*/typedef struct { /* High pass variables */ Word16 HpfZdl ; Word32 HpfPdl ; /* Sine wave detector */ Word16 SinDet ; /* Lsp previous vector */ Word16 PrevLsp[LpcOrder] ; /* All pitch operation buffers */ Word16 PrevWgt[PitchMax] ; Word16 PrevErr[PitchMax] ; Word16 PrevExc[PitchMax] ; /* Required memory for the delay */ Word16 PrevDat[LpcFrame-SubFrLen] ; /* Used delay lines */ Word16 WghtFirDl[LpcOrder] ; Word16 WghtIirDl[LpcOrder] ; Word16 RingFirDl[LpcOrder] ; Word16 RingIirDl[LpcOrder] ; /* Taming procedure errors */ Word32 Err[SizErr]; } CODSTATDEF ;typedef struct { Word16 Ecount ; Word16 InterGain ; Word16 InterIndx ; Word16 Rseed ; Word16 Park ; Word16 Gain ; /* Lsp previous vector */ Word16 PrevLsp[LpcOrder] ; /* All pitch operation buffers */ Word16 PrevExc[PitchMax] ; /* Used delay lines */ Word16 SyntIirDl[LpcOrder] ; Word16 PostFirDl[LpcOrder] ; Word16 PostIirDl[LpcOrder] ; } DECSTATDEF ; /* subframe coded parameters */typedef struct { Word16 AcLg ; Word16 AcGn ; Word16 Mamp ; Word16 Grid ; Word16 Tran ; Word16 Pamp ; Word32 Ppos ; } SFSDEF ; /* frame coded parameters */typedef struct { Word16 Crc ; Word32 LspId ; Word16 Olp[SubFrames/2] ; SFSDEF Sfs[SubFrames] ; } LINEDEF ; /* harmonic noise shaping filter parameters */typedef struct { Word16 Indx ; Word16 Gain ; } PWDEF ; /* pitch postfilter parameters */typedef struct { Word16 Indx ; Word16 Gain ; Word16 ScGn ; } PFDEF ; /* best excitation vector parameters for the high rate */typedef struct { Word32 MaxErr ; Word16 GridId ; Word16 MampId ; Word16 UseTrn ; Word16 Ploc[MaxPulseNum] ; Word16 Pamp[MaxPulseNum] ; } BESTDEF ; /* VAD static variables */typedef struct { Word16 Hcnt ; Word16 Vcnt ; Word32 Penr ; Word32 Nlev ; Word16 Aen ; Word16 Polp[4] ; Word16 NLpc[LpcOrder] ;} VADSTATDEF ;/* CNG features *//* Coder part */typedef struct { Word16 CurGain; Word16 PastFtyp; Word16 Acf[SizAcf]; Word16 ShAcf[NbAvAcf+1]; Word16 LspSid[LpcOrder] ; Word16 SidLpc[LpcOrder] ; Word16 RC[LpcOrderP1]; Word16 ShRC; Word16 Ener[NbAvGain]; Word16 NbEner; Word16 IRef; Word16 SidGain; Word16 RandSeed;} CODCNGDEF;/* Decoder part */typedef struct { Word16 CurGain; Word16 PastFtyp; Word16 LspSid[LpcOrder] ; Word16 SidGain; Word16 RandSeed;} DECCNGDEF;#endif // _CST_LBC_H_
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -