On 2014-02-14 16:03:08 +0000, Christophe Gisquet wrote:
> This change is inspired by x86 asm, where this frees a register.

have you looked at the compiled version if it improves too?

> ---
>  libavcodec/dcadsp.c | 13 ++++++-------
>  1 file changed, 6 insertions(+), 7 deletions(-)
> 
> diff --git a/libavcodec/dcadsp.c b/libavcodec/dcadsp.c
> index 8fc49ce..30b732a 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;

spaces around operators, please

>      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;

+= *cf0 * in[... looks imho better, also spaces

>          }
>          *out++  = v0;
> -        *out2++ = v1;
> +        *out2-- = v1;
>      }
>  }

ok and queued with cosmetic changes


Janne

_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to