annotate libgsmhr1/dec_func.h @ 596:8e4ecdfadf5a

libgsmhr1: capture decoder state
author Mychaela Falconia <falcon@freecalypso.org>
date Thu, 04 Dec 2025 06:25:54 +0000
parents 1e75556ab6c0
children 5809165fb140
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
595
1e75556ab6c0 libgsmhr1: integrate helper functions from sp_dec.c
Mychaela Falconia <falcon@freecalypso.org>
parents: 594
diff changeset
1 /*
1e75556ab6c0 libgsmhr1: integrate helper functions from sp_dec.c
Mychaela Falconia <falcon@freecalypso.org>
parents: 594
diff changeset
2 * This library-internal header file is derived from sp_dec.h in the
1e75556ab6c0 libgsmhr1: integrate helper functions from sp_dec.c
Mychaela Falconia <falcon@freecalypso.org>
parents: 594
diff changeset
3 * original GSM 06.06 code drop. It contains function prototype
1e75556ab6c0 libgsmhr1: integrate helper functions from sp_dec.c
Mychaela Falconia <falcon@freecalypso.org>
parents: 594
diff changeset
4 * declarations for functions that were originally in sp_dec.c, but
1e75556ab6c0 libgsmhr1: integrate helper functions from sp_dec.c
Mychaela Falconia <falcon@freecalypso.org>
parents: 594
diff changeset
5 * have been moved to dec_func.c in our library. These functions
1e75556ab6c0 libgsmhr1: integrate helper functions from sp_dec.c
Mychaela Falconia <falcon@freecalypso.org>
parents: 594
diff changeset
6 * relate to speech decoding, but are used by both decoder and encoder
1e75556ab6c0 libgsmhr1: integrate helper functions from sp_dec.c
Mychaela Falconia <falcon@freecalypso.org>
parents: 594
diff changeset
7 * engines, following the principle of an analysis-by-synthesis codec.
1e75556ab6c0 libgsmhr1: integrate helper functions from sp_dec.c
Mychaela Falconia <falcon@freecalypso.org>
parents: 594
diff changeset
8 */
1e75556ab6c0 libgsmhr1: integrate helper functions from sp_dec.c
Mychaela Falconia <falcon@freecalypso.org>
parents: 594
diff changeset
9
1e75556ab6c0 libgsmhr1: integrate helper functions from sp_dec.c
Mychaela Falconia <falcon@freecalypso.org>
parents: 594
diff changeset
10 #ifndef dec_func_h
1e75556ab6c0 libgsmhr1: integrate helper functions from sp_dec.c
Mychaela Falconia <falcon@freecalypso.org>
parents: 594
diff changeset
11 #define dec_func_h
594
83d46a16db1b libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
12
83d46a16db1b libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
13 #include "typedefs.h"
83d46a16db1b libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
14
83d46a16db1b libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
15 /*_________________________________________________________________________
83d46a16db1b libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
16 | |
83d46a16db1b libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
17 | Function Prototypes |
83d46a16db1b libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
18 |_________________________________________________________________________|
83d46a16db1b libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
19 */
83d46a16db1b libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
20
83d46a16db1b libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
21 void aFlatRcDp(Longword *pL_R, Shortword *pswRc);
83d46a16db1b libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
22
83d46a16db1b libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
23 void b_con(Shortword swCodeWord, short siNumBits,
83d46a16db1b libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
24 Shortword pswVectOut[]);
83d46a16db1b libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
25
83d46a16db1b libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
26 void fp_ex(Shortword swOrigLagIn, Shortword pswLTPState[]);
83d46a16db1b libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
27
83d46a16db1b libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
28 Shortword g_corr1(Shortword *pswIn, Longword *pL_out);
83d46a16db1b libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
29
83d46a16db1b libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
30 Shortword g_corr1s(Shortword pswIn[], Shortword swEngyRShft,
83d46a16db1b libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
31 Longword *pL_out);
83d46a16db1b libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
32
83d46a16db1b libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
33 void getSfrmLpc(short int siSoftInterpolation,
83d46a16db1b libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
34 Shortword swPrevR0, Shortword swNewR0,
83d46a16db1b libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
35 Shortword pswPrevFrmKs[],
83d46a16db1b libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
36 Shortword pswPrevFrmAs[],
83d46a16db1b libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
37 Shortword pswPrevFrmPFNum[],
83d46a16db1b libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
38 Shortword pswPrevFrmPFDenom[],
83d46a16db1b libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
39 Shortword pswNewFrmKs[],
83d46a16db1b libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
40 Shortword pswNewFrmAs[],
83d46a16db1b libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
41 Shortword pswNewFrmPFNum[],
83d46a16db1b libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
42 Shortword pswNewFrmPFDenom[],
83d46a16db1b libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
43 struct NormSw *psnsSqrtRs,
83d46a16db1b libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
44 Shortword *ppswSynthAs[],
83d46a16db1b libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
45 Shortword *ppswPFNumAs[],
83d46a16db1b libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
46 Shortword *ppswPFDenomAs[]);
83d46a16db1b libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
47
83d46a16db1b libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
48 void get_ipjj(Shortword swLagIn,
83d46a16db1b libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
49 Shortword *pswIp, Shortword *pswJj);
83d46a16db1b libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
50
83d46a16db1b libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
51 short int interpolateCheck(Shortword pswRefKs[],
83d46a16db1b libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
52 Shortword pswRefCoefsA[],
83d46a16db1b libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
53 Shortword pswOldCoefsA[],
83d46a16db1b libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
54 Shortword pswNewCoefsA[],
83d46a16db1b libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
55 Shortword swOldPer,
83d46a16db1b libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
56 Shortword swNewPer,
83d46a16db1b libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
57 Shortword swRq,
83d46a16db1b libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
58 struct NormSw *psnsSqrtRsOut,
83d46a16db1b libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
59 Shortword pswCoefOutA[]);
83d46a16db1b libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
60
83d46a16db1b libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
61 void lpcFir(Shortword pswInput[], Shortword pswCoef[],
83d46a16db1b libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
62 Shortword pswState[], Shortword pswFiltOut[]);
83d46a16db1b libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
63
83d46a16db1b libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
64 void lpcIir(Shortword pswInput[], Shortword pswCoef[],
83d46a16db1b libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
65 Shortword pswState[], Shortword pswFiltOut[]);
83d46a16db1b libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
66
83d46a16db1b libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
67 void lpcIrZsIir(Shortword pswCoef[], Shortword pswFiltOut[]);
83d46a16db1b libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
68
83d46a16db1b libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
69 void lpcZiIir(Shortword pswCoef[], Shortword pswState[],
83d46a16db1b libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
70 Shortword pswFiltOut[]);
83d46a16db1b libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
71
83d46a16db1b libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
72 void lpcZsFir(Shortword pswInput[], Shortword pswCoef[],
83d46a16db1b libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
73 Shortword pswFiltOut[]);
83d46a16db1b libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
74
83d46a16db1b libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
75 void lpcZsIir(Shortword pswInput[], Shortword pswCoef[],
83d46a16db1b libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
76 Shortword pswFiltOut[]);
83d46a16db1b libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
77
83d46a16db1b libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
78 void lpcZsIirP(Shortword pswCommonIO[], Shortword pswCoef[]);
83d46a16db1b libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
79
83d46a16db1b libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
80 Shortword r0BasedEnergyShft(Shortword swR0Index);
83d46a16db1b libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
81
83d46a16db1b libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
82 short rcToADp(Shortword swAscale, Shortword pswRc[],
83d46a16db1b libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
83 Shortword pswA[]);
83d46a16db1b libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
84
83d46a16db1b libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
85 void rcToCorrDpL(Shortword swAshift, Shortword swAscale,
83d46a16db1b libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
86 Shortword pswRc[], Longword pL_R[]);
83d46a16db1b libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
87
83d46a16db1b libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
88 void res_eng(Shortword pswReflecCoefIn[], Shortword swRq,
83d46a16db1b libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
89 struct NormSw *psnsSqrtRsOut);
83d46a16db1b libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
90
83d46a16db1b libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
91 void rs_rr(Shortword pswExcitation[], struct NormSw snsSqrtRs,
83d46a16db1b libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
92 struct NormSw *snsSqrtRsRr);
83d46a16db1b libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
93
83d46a16db1b libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
94 void rs_rrNs(Shortword pswExcitation[], struct NormSw snsSqrtRs,
83d46a16db1b libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
95 struct NormSw *snsSqrtRsRr);
83d46a16db1b libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
96
83d46a16db1b libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
97 Shortword scaleExcite(Shortword pswVect[],
83d46a16db1b libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
98 Shortword swErrTerm, struct NormSw snsRS,
83d46a16db1b libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
99 Shortword pswScldVect[]);
83d46a16db1b libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
100
83d46a16db1b libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
101 Shortword sqroot(Longword L_SqrtIn);
83d46a16db1b libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
102
83d46a16db1b libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
103 void v_con(Shortword pswBVects[], Shortword pswOutVect[],
83d46a16db1b libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
104 Shortword pswBitArray[], short int siNumBVctrs);
83d46a16db1b libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
105
83d46a16db1b libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
106 #endif