FreeCalypso > hg > gsm-codec-lib
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 |
| 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 |
