[FFmpeg-devel] [PATCH] Common ACELP code & G.729 [1/7] - filters

Diego Biurrun diego
Sat May 3 12:26:19 CEST 2008


On Sat, May 03, 2008 at 03:24:54PM +0700, Vladimir Voroshilov wrote:
> 
> --- /dev/null
> +++ b/libavcodec/acelp_filters.c
> @@ -0,0 +1,132 @@
> +/*
> + * Various filters for ACELP-based codecs

various

> +    /* Since there are few pulses over all subframe (i.e. almost all

subframeS

> +       fc_in[i] are zero, in case of G.729D it is only two non-zero
> +       samples of total 40), it is faster to swap two loops and process
> +       non-zero samples only. This will reduce number of multiplications

the number

> +       from 40*40 to 2*40 for G.729D */

.

> +++ b/libavcodec/acelp_filters.h
> @@ -0,0 +1,104 @@
> +/*
> + * Various filters for ACELP-based codecs

various

> + * \brief Circularly convolve fixed vector with a phase dispersion impulse
> + *        response filter (D.6.2 of G.729 and 6.1.5 of AMR)

.

> + * \return 1 if overflow occurred, 0 - otherwise

.

> + * \note output buffer must contain 10 samples of past
> + *       speech data before pointer

.

> + * Routine applies 1/A(z) filter to given speech data

.

> + * \brief Calculates coefficients of weighted A(z/weight) filter

.

> + * Filter has cut-off frequency 100Hz

.

> + * \remark It is safe to pass the same array in in and out parameters

.

Diego




More information about the ffmpeg-devel mailing list