[FFmpeg-devel] [PATCH 03/10] dcadsp: scan coefficients linearly instead.

Michael Niedermayer michaelni at gmx.at
Sat Feb 15 20:23:18 CET 2014


On Fri, Feb 14, 2014 at 04:00:47PM +0000, Christophe Gisquet wrote:
> This change is inspired by x86 asm, where this frees a register.
> ---
>  libavcodec/dcadsp.c | 13 ++++++-------
>  1 file changed, 6 insertions(+), 7 deletions(-)
> 
> diff --git a/libavcodec/dcadsp.c b/libavcodec/dcadsp.c
> index 8515fcb..c239e14 100644
> --- a/libavcodec/dcadsp.c
> +++ b/libavcodec/dcadsp.c
> @@ -36,22 +36,21 @@ static inline void
>  dca_lfe_fir(float *out, const float *in, const float *coefs,
>              int decifactor)
>  {
> -    float *out2 = out + decifactor;
> +    float *out2 = out + 2*decifactor-1;
>      const float *cf0 = coefs;
> -    const float *cf1 = coefs + 256;
> +    int num_coeffs = 256 / decifactor;
>      int j, k;
>  
>      /* One decimated sample generates 2*decifactor interpolated ones */
>      for (k = 0; k < decifactor; k++) {
>          float v0 = 0.0;
>          float v1 = 0.0;
> -        for (j = 0; j < 256 / decifactor; j++) {
> -            float s = in[-j];
> -            v0 += s * *cf0++;
> -            v1 += s * *--cf1;
> +        for (j = 0; j < num_coeffs; j++, cf0++) {
> +            v0 += in[-j] * *cf0;
> +            v1 += in[1+j-num_coeffs] * *cf0;
>          }
>          *out++  = v0;
> -        *out2++ = v1;
> +        *out2-- = v1;
>      }

applied

PS: decifactor should probably be replaced by a decishift to avoid
divisions

thanks

[...]

-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

No human being will ever know the Truth, for even if they happen to say it
by chance, they would not even known they had done so. -- Xenophanes
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20140215/73b0109b/attachment.asc>


More information about the ffmpeg-devel mailing list