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

📄 g7231_cst_lbc.h

📁 G723.1语音压缩解压在tms320c54系列上的实现代码,本人已在CCS上仿真通过. 包含全部源代码,主函数请自已写(本人的就不奉送了:
💻 H
字号:
#ifndef _H_G7231CSTLBC
#define _H_G7231CSTLBC


#define  False 0
#define  True  1

enum  G7231Crate    { Rate63, Rate53 } ;

#define  G7231Frame       240
#define  G7231LpcFrame    180
#define  G7231SubFrames   4
#define  G7231SubFrLen    (G7231Frame/G7231SubFrames)

#define  G7231LpcOrder          10
#define  G7231RidgeFact         10
#define  G7231CosineTableSize   512
#define  G7231PreCoef           (Word16) 0xc000            

#define  G7231LspPrd0           12288
#define  G7231LspPrd1           23552

#define  G7231LspQntBands       3
#define  G7231LspCbSize         256
#define  G7231LspCbBits         8

#define  G7231PitchMin          18
#define  G7231PitchMax          (G7231PitchMin+127)
#define  G7231PwConst           (Word16) 0x2800
#define  G7231PwRange           3
#define  G7231ClPitchOrd        5
#define  G7231Pstep             1
#define G7231NbFilt085          85
#define G7231NbFilt170          170

#define  G7231Sgrid             2
#define  G7231MaxPulseNum       6
#define  G7231MlqSteps          2

#define G7231SubFrLen2          (G7231SubFrLen +4)
#define G7231DIM_RR             416
#define G7231NB_POS             8
#define G7231STEP               8
#define G7231MSIZE              64
#define G7231threshold          16384  
#define G7231max_time           120

#define  G7231NumOfGainLev      24

#define  G7231ErrMaxNum         3

#define G7231NbAvAcf            3  
#define G7231NbAvGain           3  
#define G7231ThreshGain         3 
#define G7231FracThresh         7000   
#define G7231NbPulsBlk          11 

#define G7231InvNbPulsBlk       2979 
#define G7231NbFilt             50 
#define G7231LpcOrderP1         (G7231LpcOrder+1)
#define G7231SizAcf             ((G7231NbAvAcf+1)*G7231LpcOrderP1)
#define G7231SubFrLenD          (2*G7231SubFrLen)
#define G7231Gexc_Max           5000  

#define G7231NbFilt085_min      51
#define G7231NbFilt170_min      93
#define G7231SizErr             5
#define G7231Err0               (Word32)4 
#define G7231ThreshErr          0x40000000L
#define G7231DEC                (30 - 7)

typedef  struct   {
   Word16   HpfZdl   ;
   Word32   HpfPdl   ;

   Word16   SinDet   ;

   Word16   PrevLsp[G7231LpcOrder] ;

   Word16   PrevWgt[G7231PitchMax] ;
   Word16   PrevErr[G7231PitchMax] ;
   Word16   PrevExc[G7231PitchMax] ;

   Word16   PrevDat[G7231LpcFrame-G7231SubFrLen] ;

   Word16   WghtFirDl[G7231LpcOrder] ;
   Word16   WghtIirDl[G7231LpcOrder] ;
   Word16   RingFirDl[G7231LpcOrder] ;
   Word16   RingIirDl[G7231LpcOrder] ;

   Word32 Err[G7231SizErr];
   
   enum  G7231Crate    WrkRate;

   } G7231CODSTATDEF  ;

typedef  struct   {
   Word16   Ecount ;
   Word16   InterGain ;
   Word16   InterIndx ;
   Word16   Rseed ;
   Word16   Park  ;
   Word16   Gain  ;

   Word16   PrevLsp[G7231LpcOrder] ;

   Word16   PrevExc[G7231PitchMax] ;

   Word16   SyntIirDl[G7231LpcOrder] ;
   Word16   PostFirDl[G7231LpcOrder] ;
   Word16   PostIirDl[G7231LpcOrder] ;
   
   enum  G7231Crate    WrkRate;

   } G7231DECSTATDEF  ;

typedef  struct   {
   Word16   AcLg  ;
   Word16   AcGn  ;
   Word16   Mamp  ;
   Word16   Grid  ;
   Word16   Tran  ;
   Word16   Pamp  ;
   Word32   Ppos  ;
   } G7231SFSDEF ;

typedef  struct   {
   Word16   Crc   ;
   Word32   LspId ;
   Word16   Olp[G7231SubFrames/2] ;
   G7231SFSDEF   Sfs[G7231SubFrames] ;
   } G7231LINEDEF ;

typedef  struct   {
   Word16   Indx  ;
   Word16   Gain  ;
   } G7231PWDEF  ;

typedef  struct   {
   Word16   Indx  ;
   Word16   Gain  ;
   Word16   ScGn  ;
   } G7231PFDEF  ;

typedef  struct {
   Word32   MaxErr   ;
   Word16   GridId   ;
   Word16   MampId   ;
   Word16   UseTrn   ;
   Word16   Ploc[G7231MaxPulseNum] ;
   Word16   Pamp[G7231MaxPulseNum] ;
   } G7231BESTDEF ;

typedef struct {
    Word16  Hcnt ;
    Word16  Vcnt ;
    Word32  Penr ;
    Word32  Nlev ;
    Word16  Aen ;
    Word16  Polp[4] ;
    Word16  NLpc[G7231LpcOrder] ;
} G7231VADSTATDEF ;


typedef struct {
    Word16 CurGain;
    Word16 PastFtyp;
    Word16 Acf[G7231SizAcf];
    Word16 ShAcf[G7231NbAvAcf+1];
    Word16 LspSid[G7231LpcOrder] ;
    Word16 SidLpc[G7231LpcOrder] ;
    Word16 RC[G7231LpcOrderP1];
    Word16 ShRC;
    Word16 Ener[G7231NbAvGain];
    Word16 NbEner;
    Word16 IRef;
    Word16 SidGain;
    Word16 RandSeed;
} G7231CODCNGDEF;

typedef struct {
    Word16 CurGain;
    Word16 PastFtyp;
    Word16 LspSid[G7231LpcOrder] ;
    Word16 SidGain;
    Word16 RandSeed;
} G7231DECCNGDEF;

#endif //_H_G7231CSTLBC

⌨️ 快捷键说明

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