libvoipcodecs
0.0.1
helpfun.h
1
/*
2
* iLBC - a library for the iLBC codec
3
*
4
* helpfun.h - The iLBC low bit rate speech codec.
5
*
6
* Adapted by Steve Underwood <steveu@coppice.org> from the reference
7
* iLBC code supplied in RFC3951.
8
*
9
* Original code Copyright (C) The Internet Society (2004).
10
* All changes to produce this version Copyright (C) 2008 by Steve Underwood
11
* All Rights Reserved.
12
*
13
* This program is distributed in the hope that it will be useful,
14
* but WITHOUT ANY WARRANTY; without even the implied warranty of
15
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
16
*
17
* $Id: helpfun.h,v 1.2 2008/03/06 12:27:38 steveu Exp $
18
*/
19
20
#ifndef __iLBC_HELPFUN_H
21
#define __iLBC_HELPFUN_H
22
23
void
autocorr(
float
*r,
/* (o) autocorrelation vector */
24
const
float
*x,
/* (i) data vector */
25
int
N,
/* (i) length of data vector */
26
int
order);
/* largest lag for calculated
27
autocorrelations */
28
29
void
window(
float
*z,
/* (o) the windowed data */
30
const
float
*x,
/* (i) the original data vector */
31
const
float
*y,
/* (i) the window */
32
int
N);
/* (i) length of all vectors */
33
34
void
levdurb(
float
*a,
/* (o) lpc coefficient vector starting with 1.0 */
35
float
*k,
/* (o) reflection coefficients */
36
float
*r,
/* (i) autocorrelation vector */
37
int
order);
/* (i) order of lpc filter */
38
39
void
interpolate(
float
*out,
/* (o) the interpolated vector */
40
float
*in1,
/* (i) the first vector for the
41
interpolation */
42
float
*in2,
/* (i) the second vector for the
43
interpolation */
44
float
coef,
/* (i) interpolation weights */
45
int
length);
/* (i) length of all vectors */
46
47
void
bwexpand(
float
*out,
/* (o) the bandwidth expanded lpc coefficients */
48
float
*in,
/* (i) the lpc coefficients before bandwidth
49
expansion */
50
float
coef,
/* (i) the bandwidth expansion factor */
51
int
length);
/* (i) the length of lpc coefficient vectors */
52
53
void
vq(
float
*Xq,
/* (o) the quantized vector */
54
int
*index,
/* (o) the quantization index */
55
const
float
*CB,
/* (i) the vector quantization codebook */
56
float
*X,
/* (i) the vector to quantize */
57
int
n_cb,
/* (i) the number of vectors in the codebook */
58
int
dim);
/* (i) the dimension of all vectors */
59
60
void
SplitVQ(
float
*qX,
/* (o) the quantized vector */
61
int
*index,
/* (o) a vector of indexes for all vector
62
codebooks in the split */
63
float
*X,
/* (i) the vector to quantize */
64
const
float
*CB,
/* (i) the quantizer codebook */
65
int
nsplit,
/* the number of vector splits */
66
const
int
*dim,
/* the dimension of X and qX */
67
const
int
*cbsize);
/* the number of vectors in the codebook */
68
69
void
sort_sq(
float
*xq,
/* (o) the quantized value */
70
int
*index,
/* (o) the quantization index */
71
float
x,
/* (i) the value to quantize */
72
const
float
*cb,
/* (i) the quantization codebook */
73
int
cb_size);
/* (i) the size of the quantization codebook */
74
75
int
LSF_check(
/* (o) 1 for stable lsf vectors and 0 for nonstable ones */
76
float
*lsf,
/* (i) a table of lsf vectors */
77
int
dim,
/* (i) the dimension of each lsf vector */
78
int
NoAn);
/* (i) the number of lsf vectors in the table */
79
80
#endif
src
helpfun.h
Generated by
1.9.1