FreeCalypso > hg > gsm-codec-lib
annotate libtwamr/lpc.h @ 483:4f13db3a7086
doc/Utils-overview: document new utilities
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Mon, 20 May 2024 01:26:12 +0000 |
parents | 9adfe3863a41 |
children |
rev | line source |
---|---|
386
9adfe3863a41
libtwamr: integrate lpc.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1 /* |
9adfe3863a41
libtwamr: integrate lpc.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2 ******************************************************************************** |
9adfe3863a41
libtwamr: integrate lpc.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
3 * |
9adfe3863a41
libtwamr: integrate lpc.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
4 * GSM AMR-NB speech codec R98 Version 7.6.0 December 12, 2001 |
9adfe3863a41
libtwamr: integrate lpc.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
5 * R99 Version 3.3.0 |
9adfe3863a41
libtwamr: integrate lpc.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
6 * REL-4 Version 4.1.0 |
9adfe3863a41
libtwamr: integrate lpc.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
7 * |
9adfe3863a41
libtwamr: integrate lpc.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
8 ******************************************************************************** |
9adfe3863a41
libtwamr: integrate lpc.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
9 * |
9adfe3863a41
libtwamr: integrate lpc.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
10 * File : lpc.h |
9adfe3863a41
libtwamr: integrate lpc.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
11 * Purpose : 2 LP analyses centered at 2nd and 4th subframe |
9adfe3863a41
libtwamr: integrate lpc.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
12 * for mode 12.2. For all other modes a |
9adfe3863a41
libtwamr: integrate lpc.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
13 * LP analysis centered at 4th subframe is |
9adfe3863a41
libtwamr: integrate lpc.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
14 * performed. |
9adfe3863a41
libtwamr: integrate lpc.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
15 * |
9adfe3863a41
libtwamr: integrate lpc.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
16 ******************************************************************************** |
9adfe3863a41
libtwamr: integrate lpc.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
17 */ |
9adfe3863a41
libtwamr: integrate lpc.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
18 #ifndef lpc_h |
9adfe3863a41
libtwamr: integrate lpc.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
19 #define lpc_h "$Id $" |
9adfe3863a41
libtwamr: integrate lpc.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
20 |
9adfe3863a41
libtwamr: integrate lpc.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
21 /* |
9adfe3863a41
libtwamr: integrate lpc.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
22 ******************************************************************************** |
9adfe3863a41
libtwamr: integrate lpc.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
23 * INCLUDE FILES |
9adfe3863a41
libtwamr: integrate lpc.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
24 ******************************************************************************** |
9adfe3863a41
libtwamr: integrate lpc.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
25 */ |
9adfe3863a41
libtwamr: integrate lpc.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
26 #include "tw_amr.h" |
9adfe3863a41
libtwamr: integrate lpc.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
27 #include "typedef.h" |
9adfe3863a41
libtwamr: integrate lpc.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
28 #include "levinson.h" |
9adfe3863a41
libtwamr: integrate lpc.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
29 |
9adfe3863a41
libtwamr: integrate lpc.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
30 /* |
9adfe3863a41
libtwamr: integrate lpc.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
31 ******************************************************************************** |
9adfe3863a41
libtwamr: integrate lpc.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
32 * LOCAL VARIABLES AND TABLES |
9adfe3863a41
libtwamr: integrate lpc.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
33 ******************************************************************************** |
9adfe3863a41
libtwamr: integrate lpc.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
34 */ |
9adfe3863a41
libtwamr: integrate lpc.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
35 /* |
9adfe3863a41
libtwamr: integrate lpc.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
36 ******************************************************************************** |
9adfe3863a41
libtwamr: integrate lpc.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
37 * DEFINITION OF DATA TYPES |
9adfe3863a41
libtwamr: integrate lpc.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
38 ******************************************************************************** |
9adfe3863a41
libtwamr: integrate lpc.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
39 */ |
9adfe3863a41
libtwamr: integrate lpc.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
40 typedef struct { |
9adfe3863a41
libtwamr: integrate lpc.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
41 LevinsonState levinsonSt; |
9adfe3863a41
libtwamr: integrate lpc.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
42 } lpcState; |
9adfe3863a41
libtwamr: integrate lpc.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
43 |
9adfe3863a41
libtwamr: integrate lpc.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
44 /* |
9adfe3863a41
libtwamr: integrate lpc.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
45 ******************************************************************************** |
9adfe3863a41
libtwamr: integrate lpc.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
46 * DECLARATION OF PROTOTYPES |
9adfe3863a41
libtwamr: integrate lpc.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
47 ******************************************************************************** |
9adfe3863a41
libtwamr: integrate lpc.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
48 */ |
9adfe3863a41
libtwamr: integrate lpc.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
49 |
9adfe3863a41
libtwamr: integrate lpc.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
50 void lpc_reset (lpcState *st); |
9adfe3863a41
libtwamr: integrate lpc.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
51 /* reset of pre processing state (i.e. set state memory to zero) |
9adfe3863a41
libtwamr: integrate lpc.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
52 returns 0 on success |
9adfe3863a41
libtwamr: integrate lpc.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
53 */ |
9adfe3863a41
libtwamr: integrate lpc.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
54 |
9adfe3863a41
libtwamr: integrate lpc.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
55 int lpc( |
9adfe3863a41
libtwamr: integrate lpc.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
56 lpcState *st, /* i/o: State struct */ |
9adfe3863a41
libtwamr: integrate lpc.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
57 enum Mode mode, /* i : coder mode */ |
9adfe3863a41
libtwamr: integrate lpc.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
58 Word16 x[], /* i : Input signal Q15 */ |
9adfe3863a41
libtwamr: integrate lpc.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
59 Word16 x_12k2[], /* i : Input signal (EFR) Q15 */ |
9adfe3863a41
libtwamr: integrate lpc.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
60 Word16 a[] /* o : predictor coefficients Q12 */ |
9adfe3863a41
libtwamr: integrate lpc.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
61 ); |
9adfe3863a41
libtwamr: integrate lpc.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
62 |
9adfe3863a41
libtwamr: integrate lpc.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
63 #endif |