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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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