Justin Ruggles <[email protected]> writes:

> This does all the actual bit counting as a final step.
> x86 benchmarks:
> 50% faster in function count_mantissa_bits()
> 16% faster in function bit_alloc()
> ---
>  libavcodec/ac3dsp.c              |   33 ++++++++--------
>  libavcodec/ac3dsp.h              |    4 +-
>  libavcodec/ac3enc.c              |   78 
> +++++++++++++++++++++-----------------
>  libavcodec/arm/Makefile          |    1 -
>  libavcodec/arm/ac3dsp_arm.S      |   52 -------------------------
>  libavcodec/arm/ac3dsp_init_arm.c |    2 -
>  6 files changed, 63 insertions(+), 107 deletions(-)
>  delete mode 100644 libavcodec/arm/ac3dsp_arm.S
> +static void count_mantissa_bits_update_ch(AC3EncodeContext *s, int ch,
> +                                          uint16_t 
> mant_cnt[AC3_MAX_BLOCKS][16],
> +                                          int start, int end)
> +{
> +    int blk, i;
> +
> +    for (blk = 0; blk < AC3_MAX_BLOCKS; blk++) {
> +        uint8_t *bap = s->blocks[blk].exp_ref_block[ch]->bap[ch];
> +        for (i = start; i < end; i++)
> +            mant_cnt[blk][bap[i]]++;

This loop will suck with gcc on ARM.

-- 
Måns Rullgård
[email protected]
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to