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