annotate libtwamr/lpc.h @ 428:ffd87f972f86

libtwamr: implement TXFrameType to RXFrameType conversion
author Mychaela Falconia <falcon@freecalypso.org>
date Tue, 07 May 2024 22:15:23 +0000
parents 9adfe3863a41
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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