FreeCalypso > hg > gsm-codec-lib
annotate libgsmhr1/dec_func.h @ 603:27df1cef042c
libgsmhr1: put aToRc() only in dec_func.c
This function was originally static in sp_dec.c, but now it is needed
both in sp_dec.c and in dec_func.c shared decoder+encoder functions.
Solution: give it intermodule linkage, and let it reside in dec_func.c
only.
| author | Mychaela Falconia <falcon@freecalypso.org> |
|---|---|
| date | Thu, 04 Dec 2025 19:05:38 +0000 |
| parents | c7c03231002d |
| children |
| 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 |
|
603
27df1cef042c
libgsmhr1: put aToRc() only in dec_func.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
601
diff
changeset
|
23 short aToRc(Shortword swAshift, Shortword pswAin[], |
|
27df1cef042c
libgsmhr1: put aToRc() only in dec_func.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
601
diff
changeset
|
24 Shortword pswRc[]); |
|
27df1cef042c
libgsmhr1: put aToRc() only in dec_func.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
601
diff
changeset
|
25 |
|
594
83d46a16db1b
libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
26 void b_con(Shortword swCodeWord, short siNumBits, |
|
83d46a16db1b
libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
27 Shortword pswVectOut[]); |
|
83d46a16db1b
libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
28 |
|
83d46a16db1b
libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
29 void fp_ex(Shortword swOrigLagIn, Shortword pswLTPState[]); |
|
83d46a16db1b
libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
30 |
|
83d46a16db1b
libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
31 Shortword g_corr1(Shortword *pswIn, 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 Shortword g_corr1s(Shortword pswIn[], Shortword swEngyRShft, |
|
83d46a16db1b
libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
34 Longword *pL_out); |
|
83d46a16db1b
libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
35 |
|
83d46a16db1b
libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
36 void getSfrmLpc(short int siSoftInterpolation, |
|
83d46a16db1b
libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
37 Shortword swPrevR0, Shortword swNewR0, |
|
83d46a16db1b
libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
38 Shortword pswPrevFrmKs[], |
|
83d46a16db1b
libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
39 Shortword pswPrevFrmAs[], |
|
83d46a16db1b
libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
40 Shortword pswPrevFrmPFNum[], |
|
83d46a16db1b
libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
41 Shortword pswPrevFrmPFDenom[], |
|
83d46a16db1b
libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
42 Shortword pswNewFrmKs[], |
|
83d46a16db1b
libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
43 Shortword pswNewFrmAs[], |
|
83d46a16db1b
libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
44 Shortword pswNewFrmPFNum[], |
|
83d46a16db1b
libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
45 Shortword pswNewFrmPFDenom[], |
|
83d46a16db1b
libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
46 struct NormSw *psnsSqrtRs, |
|
83d46a16db1b
libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
47 Shortword *ppswSynthAs[], |
|
83d46a16db1b
libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
48 Shortword *ppswPFNumAs[], |
|
83d46a16db1b
libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
49 Shortword *ppswPFDenomAs[]); |
|
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 void get_ipjj(Shortword swLagIn, |
|
83d46a16db1b
libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
52 Shortword *pswIp, Shortword *pswJj); |
|
83d46a16db1b
libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
53 |
|
83d46a16db1b
libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
54 short int interpolateCheck(Shortword pswRefKs[], |
|
83d46a16db1b
libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
55 Shortword pswRefCoefsA[], |
|
83d46a16db1b
libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
56 Shortword pswOldCoefsA[], |
|
83d46a16db1b
libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
57 Shortword pswNewCoefsA[], |
|
83d46a16db1b
libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
58 Shortword swOldPer, |
|
83d46a16db1b
libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
59 Shortword swNewPer, |
|
83d46a16db1b
libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
60 Shortword swRq, |
|
83d46a16db1b
libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
61 struct NormSw *psnsSqrtRsOut, |
|
83d46a16db1b
libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
62 Shortword pswCoefOutA[]); |
|
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 lpcFir(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 lpcIir(Shortword pswInput[], Shortword pswCoef[], |
|
83d46a16db1b
libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
68 Shortword pswState[], Shortword pswFiltOut[]); |
|
83d46a16db1b
libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
69 |
|
83d46a16db1b
libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
70 void lpcIrZsIir(Shortword pswCoef[], 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 lpcZiIir(Shortword pswCoef[], Shortword pswState[], |
|
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 lpcZsFir(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 lpcZsIir(Shortword pswInput[], Shortword pswCoef[], |
|
83d46a16db1b
libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
79 Shortword pswFiltOut[]); |
|
83d46a16db1b
libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
80 |
|
83d46a16db1b
libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
81 void lpcZsIirP(Shortword pswCommonIO[], Shortword pswCoef[]); |
|
83d46a16db1b
libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
82 |
|
83d46a16db1b
libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
83 Shortword r0BasedEnergyShft(Shortword swR0Index); |
|
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 short rcToADp(Shortword swAscale, Shortword pswRc[], |
|
83d46a16db1b
libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
86 Shortword pswA[]); |
|
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 rcToCorrDpL(Shortword swAshift, Shortword swAscale, |
|
598
5809165fb140
libgsmhr1: integrate DTX functions for speech decoder
Mychaela Falconia <falcon@freecalypso.org>
parents:
595
diff
changeset
|
89 const Shortword pswRc[], Longword pL_R[]); |
|
594
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 res_eng(Shortword pswReflecCoefIn[], Shortword swRq, |
|
83d46a16db1b
libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
92 struct NormSw *psnsSqrtRsOut); |
|
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_rr(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 void rs_rrNs(Shortword pswExcitation[], struct NormSw snsSqrtRs, |
|
83d46a16db1b
libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
98 struct NormSw *snsSqrtRsRr); |
|
83d46a16db1b
libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
99 |
|
83d46a16db1b
libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
100 Shortword scaleExcite(Shortword pswVect[], |
|
83d46a16db1b
libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
101 Shortword swErrTerm, struct NormSw snsRS, |
|
83d46a16db1b
libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
102 Shortword pswScldVect[]); |
|
83d46a16db1b
libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
103 |
|
83d46a16db1b
libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
104 Shortword sqroot(Longword L_SqrtIn); |
|
83d46a16db1b
libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
105 |
|
601
c7c03231002d
libgsmhr1: integrate main body of speech decoder
Mychaela Falconia <falcon@freecalypso.org>
parents:
598
diff
changeset
|
106 void v_con(const Shortword pswBVects[], Shortword pswOutVect[], |
|
594
83d46a16db1b
libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
107 Shortword pswBitArray[], short int siNumBVctrs); |
|
83d46a16db1b
libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
108 |
|
83d46a16db1b
libgsmhr1/sp_dec.[ch]: import original
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
109 #endif |
