[FFmpeg-devel] [PATCH] Arithmetic decoding in ALS

Thilo Borgmann thilo.borgmann
Thu Jan 14 15:20:04 CET 2010


Am 13.01.10 00:00, schrieb Michael Niedermayer:
> On Tue, Jan 12, 2010 at 08:50:27PM +0100, Thilo Borgmann wrote:
>> Am 12.01.10 00:33, schrieb Michael Niedermayer:
>>> On Mon, Jan 11, 2010 at 09:15:05PM +0100, Thilo Borgmann wrote:
>>>> ...
>>>
>>>> +    while (cf_table[sx][(symbol + 1) << delta] > target)
>>>> +        symbol++;
>>>
>>> this probably can be speed up by a LUT of some of the MSBs
>>
>> ...

Ok here is the approach with lookup (prediction...) tables then.

Speedup compared to full search i.e. not using any luts is about 12-15%:

3580258 dezicycles in complete bgmc decoding using lut, 511 runs, 1 skips
4141277 dezicycles in complete bgmc decoding not using lut, 512 runs, 0
skips

The size for the luts is tuneable. It might be easily added to use a
#define to disable the use of luts completely, would this make sense?

The size of the luts might be further reduced if the shifted symbol
would be stored and use a smaller type than uint for the luts. Then, the
stored symbol would have to be shifted back before usage, but this again
costs many << operations (one for each sample in the file). Useful?

-Thilo
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: als_bgmc.rev3.patch
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20100114/e0ff42dc/attachment.asc>



More information about the ffmpeg-devel mailing list