Le 15 févr. 2014 18:01, "Janne Grunau" <[email protected]> a écrit :
>
> 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?
Actually it does but the timings were no longer relevant due to the order
of modifications having changed. You may look at older versions of that
patch for that info.
> > 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
I tried that for the same cosmetical reasons (at the time Diego commented).
Strangely this slowed the function but I didn't get to disassemble to check
why.
Anyway this is most probably irrelevant on a platform not using that code.
Sent from a phone so please excuse terseness.
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel