/****************************************************************** | |
iLBC Speech Coder ANSI-C Source Code | |
helpfun.h | |
Copyright (C) The Internet Society (2004). | |
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 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 | |