summaryrefslogtreecommitdiffstats
path: root/thirdparties/android/common/include/ilbc/filter.h
blob: 3db573fdfe21fa74f4309a562fabccf4d9ce077b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82

/******************************************************************

    iLBC Speech Coder ANSI-C Source Code

    filter.h

    Copyright (C) The Internet Society (2004).
    All Rights Reserved.

******************************************************************/







#ifndef __iLBC_FILTER_H
#define __iLBC_FILTER_H

void AllPoleFilter(
    float *InOut,   /* (i/o) on entrance InOut[-orderCoef] to
                              InOut[-1] contain the state of the
                              filter (delayed samples). InOut[0] to
                              InOut[lengthInOut-1] contain the filter
                              input, on en exit InOut[-orderCoef] to
                              InOut[-1] is unchanged and InOut[0] to
                              InOut[lengthInOut-1] contain filtered
                              samples */
    float *Coef,/* (i) filter coefficients, Coef[0] is assumed
                              to be 1.0 */
    int lengthInOut,/* (i) number of input/output samples */
    int orderCoef   /* (i) number of filter coefficients */
);

void AllZeroFilter(
    float *In,      /* (i) In[0] to In[lengthInOut-1] contain
                              filter input samples */
    float *Coef,/* (i) filter coefficients (Coef[0] is assumed
                              to be 1.0) */
    int lengthInOut,/* (i) number of input/output samples */
    int orderCoef,  /* (i) number of filter coefficients */
    float *Out      /* (i/o) on entrance Out[-orderCoef] to Out[-1]
                              contain the filter state, on exit Out[0]
                              to Out[lengthInOut-1] contain filtered
                              samples */
);

void ZeroPoleFilter(
    float *In,      /* (i) In[0] to In[lengthInOut-1] contain filter
                              input samples In[-orderCoef] to In[-1]
                              contain state of all-zero section */
    float *ZeroCoef,/* (i) filter coefficients for all-zero
                              section (ZeroCoef[0] is assumed to
                              be 1.0) */
    float *PoleCoef,/* (i) filter coefficients for all-pole section
                              (ZeroCoef[0] is assumed to be 1.0) */
    int lengthInOut,/* (i) number of input/output samples */
    int orderCoef,  /* (i) number of filter coefficients */
    float *Out      /* (i/o) on entrance Out[-orderCoef] to Out[-1]
                              contain state of all-pole section. On
                              exit Out[0] to Out[lengthInOut-1]
                              contain filtered samples */
);







void DownSample (
    float  *In,     /* (i) input samples */
    float  *Coef,   /* (i) filter coefficients */
    int lengthIn,   /* (i) number of input samples */
    float  *state,  /* (i) filter state */
    float  *Out     /* (o) downsampled output */
);

#endif

OpenPOWER on IntegriCloud