📄 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 4.1
copyright (c) 1995, AudioCodes, DSP Group, France Telecom,
Universite de Sherbrooke. All rights reserved.
*/
#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
/* 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 ;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -