mirror of
				https://github.com/asterisk/asterisk.git
				synced 2025-10-31 10:47:18 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			106 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			106 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| 
 | |
|    /******************************************************************
 | |
| 
 | |
|        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
 |