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
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
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