Commit d1bf6077 authored by Kenan Gillet's avatar Kenan Gillet Committed by Reynaldo H. Verdejo Pinochet

Add LP zero synthesis filter. Patch by Kenan Gillet.

Originally committed as revision 18616 to svn://svn.ffmpeg.org/ffmpeg/trunk
parent b36da2c2
......@@ -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 */
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment