be6e727b7b7449a55cdb1a787629b6b827a9e692
[asterisk/asterisk.git] / codecs / ilbc / helpfun.h
1  
2 /****************************************************************** 
3  
4     iLBC Speech Coder ANSI-C Source Code 
5  
6     helpfun.h          
7  
8     Copyright (c) 2001, 
9     Global IP Sound AB. 
10     All rights reserved. 
11  
12 ******************************************************************/ 
13  
14 #ifndef __iLBC_HELPFUN_H 
15 #define __iLBC_HELPFUN_H 
16  
17 void autocorr(  
18     float *r,       /* (o) autocorrelation vector */ 
19     const float *x, /* (i) data vector */ 
20     int N,          /* (i) length of data vector */ 
21     int order       /* largest lag for calculated autocorrelations */ 
22 ); 
23  
24 void window(  
25     float *z,       /* (o) the windowed data */ 
26     const float *x, /* (i) the original data vector */ 
27     const float *y, /* (i) the window */ 
28     int N           /* (i) length of all vectors */ 
29 ); 
30  
31 void levdurb(  
32     float *a,       /* (o) lpc coefficient vector starting  
33                            with 1.0 */ 
34     float *k,       /* (o) reflection coefficients */ 
35     float *r,       /* (i) autocorrelation vector */ 
36     int order       /* (i) order of lpc filter */ 
37 ); 
38  
39 void interpolate(  
40     float *out,     /* (o) the interpolated vector */ 
41     float *in1,     /* (i) the first vector for the interpolation */ 
42     float *in2,     /* (i) the second vector for the interpolation */ 
43     float coef,     /* (i) interpolation weights */ 
44     int length      /* (i) length of all vectors */ 
45 ); 
46             
47 void bwexpand(  
48     float *out,     /* (o) the bandwidth expanded lpc coefficients */ 
49     float *in,      /* (i) the lpc coefficients before bandwidth  
50                            expansion */ 
51     float coef,     /* (i) the bandwidth expansion factor */ 
52     int length      /* (i) the length of lpc coefficient vectors */ 
53 ); 
54  
55 void vq(  
56     float *Xq,      /* (o) the quantized vector */ 
57     int *index,     /* (o) the quantization index */ 
58     const float *CB,/* (i) the vector quantization codebook */ 
59     float *X,       /* (i) the vector to quantize */ 
60     int n_cb,       /* (i) the number of vectors in the codebook */ 
61     int dim         /* (i) the dimension of all vectors */ 
62 );   
63  
64 void SplitVQ(  
65     float *qX,      /* (o) the quantized vector */ 
66     int *index,     /* (o) a vector of indexes for all vector 
67                            codebooks in the split */ 
68     float *X,       /* (i) the vector to quantize */ 
69     const float *CB,/* (i) the quantizer codebook */ 
70     int nsplit,     /* the number of vector splits */ 
71     const int *dim, /* the dimension of X and qX */ 
72     const int *cbsize /* the number of vectors in the codebook */ 
73 ); 
74  
75  
76 void sort_sq(  
77     float *xq,      /* (o) the quantized value */ 
78     int *index,     /* (o) the quantization index */ 
79     float x,    /* (i) the value to quantize */ 
80     const float *cb,/* (i) the quantization codebook */ 
81     int cb_size     /* (i) the size of the quantization codebook */ 
82 ); 
83  
84 int LSF_check(      /* (o) 1 for stable lsf vectors and 0 for  
85                            nonstable ones */ 
86     float *lsf,     /* (i) a table of lsf vectors */ 
87     int dim,    /* (i) the dimension of each lsf vector */ 
88     int NoAn    /* (i) the number of lsf vectors in the table */ 
89 ); 
90  
91 #endif 
92  
93