1999.11.26 17:01 "Re: Alternative to LZW (was Re: tiffcp)", by Tom Lane
How about PNGs algorithm? I'm not suggesting the interleaving stuff; but I thought the spatial filtering bits were important in order to get the best out of the subsequent ZIP style compression.
That's pretty much what I said to Sam when I heard he was putting in plain ZIP. His reply was that in the context of TIFF, PNG-style compression shouldn't be considered a monolithic Compression type, but rather a combination of Compression = ZIP and some appropriate differencing predictor (cf. section 14 of TIFF 6.0). The existing Predictor = 1 tag is equivalent to PNG's "Sub" filter. I don't think Sam got around to inventing more Predictor values to match the other PNG filter types, but it would be a straightforward extension.
The only thing missing from this approach is that it doesn't provide any way to emulate PNG's "adaptive" differencing (pick a new filter for each scanline). I'm not sure if that's really a big enough win to be worth worrying about. Certainly ZIP plus a good filter would beat out LZW already.
Also, while a ZIP compression filter can be built in no time using zlib, I don't think you could use libpng very easily as a TIFF compression filter. libpng is oriented towards reading/writing the whole PNG file format --- you'd have to pull out just the bits that deal with scanline differencing.
I'm fed up with not having a decent free lossless compression algorithm available for TIFF, too. Is there some way this group can move things along?
I dunno --- we've already found by experiment that just putting a compression filter into libtiff doesn't cause much of anything to happen. Maybe it's time to start picketing Adobe with signs reading "Free TIFF Now!"...
regards, tom lane