[FFmpeg-devel] Huffyuv: Align the image data in adaptive Huffman tables mode, updated
Thu Aug 12 23:08:30 CEST 2010
> On Sun, Aug 08, 2010 at 09:59:47PM +0200, Michael Kaufmann wrote:
>> This patch is for the "adaptive Huffman tables" mode of Huffyuv. In this
>> mode, three per-frame huffman tables are saved, and then the actual image
>> data. This patch aligns the image data by enlarging one of the three
>> Huffman tables by up to 3 bytes.
>> If the the image data is not aligned, then the bitstream is not saved in
>> little endian (like the bitstream of the original Huffyuv codec), but in a
>> strange mixture. Decoding the frame is much easier for other decoders if
>> the image data is aligned, and it is also possible with better performance.
>> A detailed explanation of the alignment problems can be found in the 3rd
>> comment of this blog entry:
>> This patch enlarges the Huffman tables in a backwards-compatible way to
>> align the image data. Video files generated with this patch can be read
>> with older ffmeg versions without any problems. They can also be read by
>> the built-in Huffyuv decoder of VirtualDub.
> The first question is which is the faster way to read huffyuv (with alignment)
> if the faster variant doesnt need alignment then theres little point in
> bothering about alignment. If the faster way does need alignment i would be
> interrested in a patch that switches our decoder to this faster way.
> either way enlarging the tables should only need <5 lines of code.
> aka i dont see how this mess would be needed
> a simple loop that enlarges the table by afew bits until final alignment is
> ok should do
Here is an updated patch, I hope it is acceptable.
I agree that another patch for the decoder would be interesting. The
performance will improve a bit. I have done some experiments with a
modified version of the original Huffyuv decoder, it can decode a
particular video at 67 fps instead of 65 fps if the Huffyuv file has
been created with this patch.
But another goal of this patch is to create a bitstream that is more
similar to the bitstream of the original Huffyuv encoder (a clean little
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
More information about the ffmpeg-devel