On Fri, Apr 22, 2011 at 6:38 PM, Ronald S. Bultje <rsbul...@gmail.com> wrote:
> This prevents gcc from assuming that contents of it may have changed
> between calls to vp56_range_get_prob(), thus preventing countless (and
> unnecessary) movs. Decoding of sintel trailer goes from (avg+SG) 9.796
> +/- 0.003 to 9.635 +/- 0.010.
>
> This is admittedly a hack.

h264_cabac turns this off for ARCH_X86, but I'm not sure that's merited.

Does the code get better or worse with gcc-4.2 x86-32? If it's better,
OK with me.

(Huh, vp6 rac has an arm version and branchy version but cabac doesn't?)

> ---
>  libavcodec/vp8.c |   38 ++++++++++++++++++++------------------
>  1 files changed, 20 insertions(+), 18 deletions(-)
>
> [..]
> -        block[zigzag_scan[i]] = (vp8_rac_get(c) ? -coeff : coeff) * 
> qmul[!!i];
> +        block[zigzag_scan[i]] = (vp8_rac_get(&c) ? -coeff : coeff) * 
> qmul[!!i];
>     } while (++i < 16);

Come back and make this branchless later. See get_cabac_bypass_sign().
_______________________________________________
libav-devel mailing list
libav-devel@libav.org
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to