aboutsummaryrefslogtreecommitdiffstats
path: root/codecs/ilbc/helpfun.h
blob: 01edc876be73756e62d4bfd254ed2c87363ba1d7 (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
83
84
85
86
87
88
89
90
91
92
93
 
/****************************************************************** 
 
    iLBC Speech Coder ANSI-C Source Code 
 
    helpfun.h          
 
    Copyright (c) 2001, 
    Global IP Sound AB. 
    All rights reserved. 
 
******************************************************************/ 
 
#ifndef __iLBC_HELPFUN_H 
#define __iLBC_HELPFUN_H 
 
void autocorr(  
    float *r,       /* (o) autocorrelation vector */ 
    const float *x, /* (i) data vector */ 
    int N,          /* (i) length of data vector */ 
    int order       /* largest lag for calculated autocorrelations */ 
); 
 
void lbc_window(  
    float *z,       /* (o) the windowed data */ 
    const float *x, /* (i) the original data vector */ 
    const float *y, /* (i) the window */ 
    int N           /* (i) length of all vectors */ 
); 
 
void levdurb(  
    float *a,       /* (o) lpc coefficient vector starting  
                           with 1.0 */ 
    float *k,       /* (o) reflection coefficients */ 
    float *r,       /* (i) autocorrelation vector */ 
    int order       /* (i) order of lpc filter */ 
); 
 
void interpolate(  
    float *out,     /* (o) the interpolated vector */ 
    float *in1,     /* (i) the first vector for the interpolation */ 
    float *in2,     /* (i) the second vector for the interpolation */ 
    float coef,     /* (i) interpolation weights */ 
    int length      /* (i) length of all vectors */ 
); 
            
void bwexpand(  
    float *out,     /* (o) the bandwidth expanded lpc coefficients */ 
    float *in,      /* (i) the lpc coefficients before bandwidth  
                           expansion */ 
    float coef,     /* (i) the bandwidth expansion factor */ 
    int length      /* (i) the length of lpc coefficient vectors */ 
); 
 
void vq(  
    float *Xq,      /* (o) the quantized vector */ 
    int *index,     /* (o) the quantization index */ 
    const float *CB,/* (i) the vector quantization codebook */ 
    float *X,       /* (i) the vector to quantize */ 
    int n_cb,       /* (i) the number of vectors in the codebook */ 
    int dim         /* (i) the dimension of all vectors */ 
);   
 
void SplitVQ(  
    float *qX,      /* (o) the quantized vector */ 
    int *index,     /* (o) a vector of indexes for all vector 
                           codebooks in the split */ 
    float *X,       /* (i) the vector to quantize */ 
    const float *CB,/* (i) the quantizer codebook */ 
    int nsplit,     /* the number of vector splits */ 
    const int *dim, /* the dimension of X and qX */ 
    const int *cbsize /* the number of vectors in the codebook */ 
); 
 
 
void sort_sq(  
    float *xq,      /* (o) the quantized value */ 
    int *index,     /* (o) the quantization index */ 
    float x,    /* (i) the value to quantize */ 
    const float *cb,/* (i) the quantization codebook */ 
    int cb_size     /* (i) the size of the quantization codebook */ 
); 
 
int LSF_check(      /* (o) 1 for stable lsf vectors and 0 for  
                           nonstable ones */ 
    float *lsf,     /* (i) a table of lsf vectors */ 
    int dim,    /* (i) the dimension of each lsf vector */ 
    int NoAn    /* (i) the number of lsf vectors in the table */ 
); 
 
#endif