annotate libtwamr/c8_31pf.h @ 513:03a40ac2e931

libgsmhr1: implement validation for *.cod frames
author Mychaela Falconia <falcon@freecalypso.org>
date Sun, 25 Aug 2024 19:00:03 +0000
parents dfd5f159574b
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
323
dfd5f159574b libtwamr: integrate c8_31pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1 /*
dfd5f159574b libtwamr: integrate c8_31pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
2 ********************************************************************************
dfd5f159574b libtwamr: integrate c8_31pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
3 *
dfd5f159574b libtwamr: integrate c8_31pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
4 * GSM AMR-NB speech codec R98 Version 7.6.0 December 12, 2001
dfd5f159574b libtwamr: integrate c8_31pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
5 * R99 Version 3.3.0
dfd5f159574b libtwamr: integrate c8_31pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
6 * REL-4 Version 4.1.0
dfd5f159574b libtwamr: integrate c8_31pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
7 *
dfd5f159574b libtwamr: integrate c8_31pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
8 ********************************************************************************
dfd5f159574b libtwamr: integrate c8_31pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
9 *
dfd5f159574b libtwamr: integrate c8_31pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
10 * File : c8_31pf.h
dfd5f159574b libtwamr: integrate c8_31pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
11 * Purpose : Searches a 31 bit algebraic codebook containing
dfd5f159574b libtwamr: integrate c8_31pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
12 * : 8 pulses in a frame of 40 samples.
dfd5f159574b libtwamr: integrate c8_31pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
13 *
dfd5f159574b libtwamr: integrate c8_31pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
14 ********************************************************************************
dfd5f159574b libtwamr: integrate c8_31pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
15 */
dfd5f159574b libtwamr: integrate c8_31pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
16 #ifndef c8_31pf_h
dfd5f159574b libtwamr: integrate c8_31pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
17 #define c8_31pf_h "$Id $"
dfd5f159574b libtwamr: integrate c8_31pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
18
dfd5f159574b libtwamr: integrate c8_31pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
19 /*
dfd5f159574b libtwamr: integrate c8_31pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
20 ********************************************************************************
dfd5f159574b libtwamr: integrate c8_31pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
21 * INCLUDE FILES
dfd5f159574b libtwamr: integrate c8_31pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
22 ********************************************************************************
dfd5f159574b libtwamr: integrate c8_31pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
23 */
dfd5f159574b libtwamr: integrate c8_31pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
24 #include "typedef.h"
dfd5f159574b libtwamr: integrate c8_31pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
25
dfd5f159574b libtwamr: integrate c8_31pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
26 /*
dfd5f159574b libtwamr: integrate c8_31pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
27 ********************************************************************************
dfd5f159574b libtwamr: integrate c8_31pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
28 * DEFINITION OF DATA TYPES
dfd5f159574b libtwamr: integrate c8_31pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
29 ********************************************************************************
dfd5f159574b libtwamr: integrate c8_31pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
30 */
dfd5f159574b libtwamr: integrate c8_31pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
31
dfd5f159574b libtwamr: integrate c8_31pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
32 /*
dfd5f159574b libtwamr: integrate c8_31pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
33 ********************************************************************************
dfd5f159574b libtwamr: integrate c8_31pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
34 * DECLARATION OF PROTOTYPES
dfd5f159574b libtwamr: integrate c8_31pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
35 ********************************************************************************
dfd5f159574b libtwamr: integrate c8_31pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
36 */
dfd5f159574b libtwamr: integrate c8_31pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
37 void code_8i40_31bits (
dfd5f159574b libtwamr: integrate c8_31pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
38 Word16 x[], /* i : target vector */
dfd5f159574b libtwamr: integrate c8_31pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
39 Word16 cn[], /* i : residual after long term prediction */
dfd5f159574b libtwamr: integrate c8_31pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
40 Word16 h[], /* i : impulse response of weighted synthesis
dfd5f159574b libtwamr: integrate c8_31pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
41 filter */
dfd5f159574b libtwamr: integrate c8_31pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
42 Word16 cod[], /* o : algebraic (fixed) codebook excitation */
dfd5f159574b libtwamr: integrate c8_31pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
43 Word16 y[], /* o : filtered fixed codebook excitation */
dfd5f159574b libtwamr: integrate c8_31pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
44 Word16 indx[] /* o : 7 Word16, index of 8 pulses (signs+positions) */
dfd5f159574b libtwamr: integrate c8_31pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
45 );
dfd5f159574b libtwamr: integrate c8_31pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
46
dfd5f159574b libtwamr: integrate c8_31pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
47 #endif