FreeCalypso > hg > gsm-codec-lib
annotate libgsmhr1/enc_state.h @ 638:bce323eaeb3a
INSTALL: add libgsmhr1
| author | Mychaela Falconia <falcon@freecalypso.org> |
|---|---|
| date | Fri, 20 Mar 2026 04:55:48 +0000 |
| parents | ff5857556c44 |
| children |
| rev | line source |
|---|---|
|
610
d18efcba03bc
libgsmhr1: capture speech encoder state
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1 /* |
|
d18efcba03bc
libgsmhr1: capture speech encoder state
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2 * This library-internal header file provides definition for |
|
d18efcba03bc
libgsmhr1: capture speech encoder state
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
3 * struct gsmhr_encoder_state, the state structure for our speech |
|
d18efcba03bc
libgsmhr1: capture speech encoder state
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
4 * encoder engine. |
|
d18efcba03bc
libgsmhr1: capture speech encoder state
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
5 */ |
|
d18efcba03bc
libgsmhr1: capture speech encoder state
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
6 |
|
d18efcba03bc
libgsmhr1: capture speech encoder state
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
7 #ifndef enc_state_h |
|
d18efcba03bc
libgsmhr1: capture speech encoder state
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
8 #define enc_state_h |
|
d18efcba03bc
libgsmhr1: capture speech encoder state
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
9 |
|
d18efcba03bc
libgsmhr1: capture speech encoder state
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
10 #include "typedefs.h" |
|
d18efcba03bc
libgsmhr1: capture speech encoder state
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
11 |
|
d18efcba03bc
libgsmhr1: capture speech encoder state
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
12 #define CG_INT_MACS 6 /* Number of Multiply-Accumulates in */ |
|
d18efcba03bc
libgsmhr1: capture speech encoder state
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
13 /* one interpolation */ |
|
d18efcba03bc
libgsmhr1: capture speech encoder state
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
14 #define LMAX 142 /* largest lag (integer sense) */ |
|
617
ff5857556c44
libgsmhr1: integrate sp_frm.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
611
diff
changeset
|
15 #define LSMAX (LMAX + CG_INT_MACS/2) /* Lag Search Array Length */ |
|
610
d18efcba03bc
libgsmhr1: capture speech encoder state
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
16 #define LPCSTARTINDEX 25 /* Where the LPC analysis window |
|
d18efcba03bc
libgsmhr1: capture speech encoder state
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
17 * starts */ |
|
d18efcba03bc
libgsmhr1: capture speech encoder state
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
18 #define INBUFFSZ LPCSTARTINDEX + A_LEN /* Input buffer size */ |
|
d18efcba03bc
libgsmhr1: capture speech encoder state
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
19 |
|
d18efcba03bc
libgsmhr1: capture speech encoder state
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
20 #define HNW_BUFF_LEN LSMAX |
|
d18efcba03bc
libgsmhr1: capture speech encoder state
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
21 #define LTP_LEN 147 /* 147==0x93 length of LTP history */ |
|
d18efcba03bc
libgsmhr1: capture speech encoder state
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
22 |
|
d18efcba03bc
libgsmhr1: capture speech encoder state
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
23 struct gsmhr_encoder_state { |
|
d18efcba03bc
libgsmhr1: capture speech encoder state
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
24 int dtx_mode; |
|
d18efcba03bc
libgsmhr1: capture speech encoder state
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
25 /* state variables from sp_enc.c */ |
|
d18efcba03bc
libgsmhr1: capture speech encoder state
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
26 Shortword swOldR0; |
|
d18efcba03bc
libgsmhr1: capture speech encoder state
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
27 Shortword swOldR0Index; |
|
d18efcba03bc
libgsmhr1: capture speech encoder state
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
28 struct NormSw psnsWSfrmEngSpace[2 * N_SUB]; |
|
d18efcba03bc
libgsmhr1: capture speech encoder state
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
29 Shortword pswHPFXState[4]; |
|
d18efcba03bc
libgsmhr1: capture speech encoder state
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
30 Shortword pswHPFYState[8]; |
|
d18efcba03bc
libgsmhr1: capture speech encoder state
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
31 Shortword pswOldFrmKs[NP]; |
|
d18efcba03bc
libgsmhr1: capture speech encoder state
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
32 Shortword pswOldFrmAs[NP]; |
|
d18efcba03bc
libgsmhr1: capture speech encoder state
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
33 Shortword pswOldFrmSNWCoefs[NP]; |
|
d18efcba03bc
libgsmhr1: capture speech encoder state
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
34 Shortword pswWgtSpeechSpace[F_LEN + LMAX + CG_INT_MACS / 2]; |
|
d18efcba03bc
libgsmhr1: capture speech encoder state
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
35 Shortword pswSpeech[INBUFFSZ]; /* input speech */ |
|
d18efcba03bc
libgsmhr1: capture speech encoder state
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
36 Shortword swPtch; |
|
d18efcba03bc
libgsmhr1: capture speech encoder state
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
37 /* DTX state variables from sp_enc.c */ |
|
d18efcba03bc
libgsmhr1: capture speech encoder state
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
38 Shortword swTxGsHistPtr; |
|
d18efcba03bc
libgsmhr1: capture speech encoder state
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
39 Shortword pswCNVSCode1[N_SUB]; |
|
d18efcba03bc
libgsmhr1: capture speech encoder state
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
40 Shortword pswCNVSCode2[N_SUB]; |
|
d18efcba03bc
libgsmhr1: capture speech encoder state
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
41 Shortword pswCNGsp0Code[N_SUB]; |
|
d18efcba03bc
libgsmhr1: capture speech encoder state
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
42 Shortword pswCNLpc[3]; |
|
d18efcba03bc
libgsmhr1: capture speech encoder state
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
43 Shortword swCNR0; |
|
d18efcba03bc
libgsmhr1: capture speech encoder state
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
44 /* DTX state variables from dtx.c */ |
|
d18efcba03bc
libgsmhr1: capture speech encoder state
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
45 Shortword swVadFrmCnt; |
|
d18efcba03bc
libgsmhr1: capture speech encoder state
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
46 short int siUpdPointer; |
|
d18efcba03bc
libgsmhr1: capture speech encoder state
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
47 Shortword swNElapsed; |
|
d18efcba03bc
libgsmhr1: capture speech encoder state
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
48 Longword pL_GsHist[N_SUB * (OVERHANG - 1)]; |
|
611
f8759c856006
libgsmhr1/enc_state.h: add static vars from dtx.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
610
diff
changeset
|
49 /* previously static vars inside swComfortNoise() */ |
|
f8759c856006
libgsmhr1/enc_state.h: add static vars from dtx.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
610
diff
changeset
|
50 struct cn_state { |
|
f8759c856006
libgsmhr1/enc_state.h: add static vars from dtx.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
610
diff
changeset
|
51 /* history of unquantized parameters */ |
|
f8759c856006
libgsmhr1/enc_state.h: add static vars from dtx.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
610
diff
changeset
|
52 Longword pL_R0Hist[OVERHANG]; |
|
f8759c856006
libgsmhr1/enc_state.h: add static vars from dtx.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
610
diff
changeset
|
53 Longword ppL_CorrHist[OVERHANG][NP + 1]; |
|
f8759c856006
libgsmhr1/enc_state.h: add static vars from dtx.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
610
diff
changeset
|
54 /* quantized reference parameters */ |
|
f8759c856006
libgsmhr1/enc_state.h: add static vars from dtx.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
610
diff
changeset
|
55 Shortword swQntRefR0; |
|
f8759c856006
libgsmhr1/enc_state.h: add static vars from dtx.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
610
diff
changeset
|
56 Shortword swRefGsIndex; |
|
f8759c856006
libgsmhr1/enc_state.h: add static vars from dtx.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
610
diff
changeset
|
57 int piRefVqCodewds[3]; |
|
f8759c856006
libgsmhr1/enc_state.h: add static vars from dtx.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
610
diff
changeset
|
58 /* handling of short speech bursts */ |
|
f8759c856006
libgsmhr1/enc_state.h: add static vars from dtx.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
610
diff
changeset
|
59 Shortword swShortBurst; |
|
f8759c856006
libgsmhr1/enc_state.h: add static vars from dtx.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
610
diff
changeset
|
60 /* state value of random generator */ |
|
f8759c856006
libgsmhr1/enc_state.h: add static vars from dtx.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
610
diff
changeset
|
61 Longword L_TxPNSeed; |
|
f8759c856006
libgsmhr1/enc_state.h: add static vars from dtx.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
610
diff
changeset
|
62 } cn_state; |
|
610
d18efcba03bc
libgsmhr1: capture speech encoder state
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
63 /* state variables from sp_frm.c */ |
|
d18efcba03bc
libgsmhr1: capture speech encoder state
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
64 Shortword pswAnalysisState[NP]; |
|
d18efcba03bc
libgsmhr1: capture speech encoder state
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
65 Shortword pswWStateNum[NP]; |
|
d18efcba03bc
libgsmhr1: capture speech encoder state
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
66 Shortword pswWStateDenom[NP]; |
|
617
ff5857556c44
libgsmhr1: integrate sp_frm.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
611
diff
changeset
|
67 const Shortword *psrTable; |
|
ff5857556c44
libgsmhr1: integrate sp_frm.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
611
diff
changeset
|
68 int iLimit; |
|
ff5857556c44
libgsmhr1: integrate sp_frm.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
611
diff
changeset
|
69 int iLow; |
|
ff5857556c44
libgsmhr1: integrate sp_frm.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
611
diff
changeset
|
70 int iThree; |
|
ff5857556c44
libgsmhr1: integrate sp_frm.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
611
diff
changeset
|
71 int iWordHalfPtr; |
|
ff5857556c44
libgsmhr1: integrate sp_frm.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
611
diff
changeset
|
72 int iWordPtr; |
|
610
d18efcba03bc
libgsmhr1: capture speech encoder state
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
73 /* state variables from sp_sfrm.c */ |
|
d18efcba03bc
libgsmhr1: capture speech encoder state
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
74 Shortword pswLtpStateBase[LTP_LEN + S_LEN]; |
|
d18efcba03bc
libgsmhr1: capture speech encoder state
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
75 Shortword pswHState[NP]; |
|
d18efcba03bc
libgsmhr1: capture speech encoder state
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
76 Shortword pswHNWState[HNW_BUFF_LEN]; |
|
d18efcba03bc
libgsmhr1: capture speech encoder state
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
77 /* from vad.c */ |
|
d18efcba03bc
libgsmhr1: capture speech encoder state
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
78 struct vad_state { |
|
d18efcba03bc
libgsmhr1: capture speech encoder state
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
79 Shortword pswRvad[9]; |
|
d18efcba03bc
libgsmhr1: capture speech encoder state
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
80 Shortword swNormRvad; |
|
d18efcba03bc
libgsmhr1: capture speech encoder state
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
81 Shortword swPt_sacf; |
|
d18efcba03bc
libgsmhr1: capture speech encoder state
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
82 Shortword swPt_sav0; |
|
d18efcba03bc
libgsmhr1: capture speech encoder state
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
83 Shortword swE_thvad; |
|
d18efcba03bc
libgsmhr1: capture speech encoder state
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
84 Shortword swM_thvad; |
|
d18efcba03bc
libgsmhr1: capture speech encoder state
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
85 Shortword swAdaptCount; |
|
d18efcba03bc
libgsmhr1: capture speech encoder state
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
86 Shortword swBurstCount; |
|
d18efcba03bc
libgsmhr1: capture speech encoder state
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
87 Shortword swHangCount; |
|
d18efcba03bc
libgsmhr1: capture speech encoder state
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
88 Shortword swOldLagCount; |
|
d18efcba03bc
libgsmhr1: capture speech encoder state
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
89 Shortword swVeryOldLagCount; |
|
d18efcba03bc
libgsmhr1: capture speech encoder state
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
90 Shortword swOldLag; |
|
d18efcba03bc
libgsmhr1: capture speech encoder state
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
91 Longword pL_sacf[27]; |
|
d18efcba03bc
libgsmhr1: capture speech encoder state
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
92 Longword pL_sav0[36]; |
|
d18efcba03bc
libgsmhr1: capture speech encoder state
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
93 Longword L_lastdm; |
|
d18efcba03bc
libgsmhr1: capture speech encoder state
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
94 } vad; |
|
d18efcba03bc
libgsmhr1: capture speech encoder state
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
95 }; |
|
d18efcba03bc
libgsmhr1: capture speech encoder state
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
96 |
|
d18efcba03bc
libgsmhr1: capture speech encoder state
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
97 #endif |
