[Ffmpeg-devel] TIFF LZW decoder (was: [PATCH] change gif demuxer to gif decoder)

Michael Niedermayer michaelni
Mon Oct 23 22:19:03 CEST 2006


Hi

On Mon, Oct 23, 2006 at 04:21:04PM +0300, Kostya wrote:
> On Mon, Oct 23, 2006 at 10:26:57AM +0300, Kostya wrote:
> > 
> [...]
> > Different LZW implementations may differ by:
> > a) initial code size
> > b) output codeword size (may vary from smth to smth or be constant 12 bits)
> > c) additional symbols for decoder reset and dictionary size expansion
> > 
> > As I implemented TIFF decoder for FFmpeg it'll be probably me who will
> > add LZW support to TIFF. I'll look in libtiff sources for further details.
> 
> Reality is far more curly than expected:
> a) there are two LZW variants - one is very similar (or identical) to GIF but
> it is not used
> b) TIFF LZW has MSB codeword order (i.e. next byte has lower 8 bits, not high)
> c) Codeword size should be increased _before_ the current dictionary is full
> d) Each line should end with end-of-image code and decoder needs to be reset
> before decoding next line.
> 
> Also preliminary patch for LZW support in TIFF is provided. It has some bugs but
> it should work more or less.

can this be merged with the code in gifdec.c ?

a few checks in the innermost loops would be no problem as the stuff could
be made always_inline (if needed in 2 warper functions like
always_inline lzw_decode_generic(..., variant){ ...

lzw_decode_gif(...){lzw_decode_generic(..., LZW_GIF);}

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

In the past you could go to a library and read, borrow or copy any book
Today you'd get arrested for mere telling someone where the library is




More information about the ffmpeg-devel mailing list