mirror of https://git.ffmpeg.org/ffmpeg.git
Add LP zero synthesis filter. Patch by Kenan Gillet.
Originally committed as revision 18616 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
b36da2c215
commit
d1bf60771c
|
@ -103,3 +103,23 @@ void ff_celp_lp_synthesis_filterf(
|
|||
out[n] -= filter_coeffs[i-1] * out[n-i];
|
||||
}
|
||||
}
|
||||
|
||||
void ff_celp_lp_zero_synthesis_filterf(
|
||||
float *out,
|
||||
const float* filter_coeffs,
|
||||
const float* in,
|
||||
int buffer_length,
|
||||
int filter_length)
|
||||
{
|
||||
int i,n;
|
||||
|
||||
// Avoids a +1 in the inner loop.
|
||||
filter_length++;
|
||||
|
||||
for(n=0; n<buffer_length; n++)
|
||||
{
|
||||
out[n] = in[n];
|
||||
for(i=1; i<filter_length; i++)
|
||||
out[n] -= filter_coeffs[i-1] * in[n-i];
|
||||
}
|
||||
}
|
||||
|
|
|
@ -91,4 +91,26 @@ void ff_celp_lp_synthesis_filterf(
|
|||
int buffer_length,
|
||||
int filter_length);
|
||||
|
||||
/**
|
||||
* LP zero synthesis filter.
|
||||
* @param out [out] pointer to output buffer
|
||||
* @param filter_coeffs filter coefficients.
|
||||
* @param in input signal
|
||||
* - the array in[-filter_length, -1] must
|
||||
* contain the previous input of this filter
|
||||
* @param buffer_length amount of data to process
|
||||
* @param filter_length filter length (10 for 10th order LP filter)
|
||||
*
|
||||
* @note Output buffer must contain filter_length samples of past
|
||||
* speech data before pointer.
|
||||
*
|
||||
* Routine applies A(z) filter to given speech data.
|
||||
*/
|
||||
void ff_celp_lp_zero_synthesis_filterf(
|
||||
float *out,
|
||||
const float* filter_coeffs,
|
||||
const float* in,
|
||||
int buffer_length,
|
||||
int filter_length);
|
||||
|
||||
#endif /* AVCODEC_CELP_FILTERS_H */
|
||||
|
|
Loading…
Reference in New Issue