comparison libtwamr/calc_cor.c @ 325:67c31802392b

libtwamr: integrate calc_cor.c
author Mychaela Falconia <falcon@freecalypso.org>
date Thu, 18 Apr 2024 20:12:48 +0000
parents
children
comparison
equal deleted inserted replaced
324:dc3b7caa59c4 325:67c31802392b
1 /*
2 ********************************************************************************
3 *
4 * GSM AMR-NB speech codec R98 Version 7.6.0 December 12, 2001
5 * R99 Version 3.3.0
6 * REL-4 Version 4.1.0
7 *
8 ********************************************************************************
9 *
10 * File : calc_cor.c
11 * Purpose : Calculate all correlations for prior the OL LTP
12 *
13 ********************************************************************************
14 */
15
16 /*
17 ********************************************************************************
18 * MODULE INCLUDE FILE AND VERSION ID
19 ********************************************************************************
20 */
21 #include "namespace.h"
22 #include "calc_cor.h"
23
24 /*
25 ********************************************************************************
26 * INCLUDE FILES
27 ********************************************************************************
28 */
29 #include "typedef.h"
30 #include "basic_op.h"
31 #include "oper_32b.h"
32 #include "no_count.h"
33 #include "cnst.h"
34
35 /*
36 ********************************************************************************
37 * PUBLIC PROGRAM CODE
38 ********************************************************************************
39 */
40 /*************************************************************************
41 *
42 * FUNCTION: comp_corr
43 *
44 * PURPOSE: Calculate all correlations of scal_sig[] in a given delay
45 * range.
46 *
47 * DESCRIPTION:
48 * The correlation is given by
49 * cor[t] = <scal_sig[n],scal_sig[n-t]>, t=lag_min,...,lag_max
50 * The functions outputs the all correlations
51 *
52 *************************************************************************/
53 void comp_corr (
54 Word16 scal_sig[], /* i : scaled signal. */
55 Word16 L_frame, /* i : length of frame to compute pitch */
56 Word16 lag_max, /* i : maximum lag */
57 Word16 lag_min, /* i : minimum lag */
58 Word32 corr[]) /* o : correlation of selected lag */
59 {
60 Word16 i, j;
61 Word16 *p, *p1;
62 Word32 t0;
63
64 for (i = lag_max; i >= lag_min; i--)
65 {
66 p = scal_sig; move16 ();
67 p1 = &scal_sig[-i]; move16 ();
68 t0 = 0; move32 ();
69
70 for (j = 0; j < L_frame; j++, p++, p1++)
71 {
72 t0 = L_mac (t0, *p, *p1);
73 }
74 corr[-i] = t0; move32 ();
75 }
76
77 return;
78 }