2005.03.22 17:20 "[Tiff] tif_jpeg.c and 12bit JPEG Files", by Frank Warmerdam

2005.03.22 20:38 "Re: [Tiff] tif_jpeg.c and 12bit JPEG Files", by Frank Warmerdam

This is not really compatible with the way the libtiff interfaces work. Libtiff normally provides the data as a scanline, strip, or tile where the bits-per-sample of the data is the same as reported by libtiff, and the values occupy the full range of the sample. As part of the "decompress" step, the data should be converted to packed 12-bit form. This can easily be done "in-place" if necessary while reading since 12-bits is smaller than 16-bits. A secondary buffer would be needed while writing.


I have modified the JPEGDecode in tif_jpeg.c to take care of repacking the 16bit data into 12bit packed format. BTW, the changes are now all committed in tif_jpeg.c in the CVS head for libtiff for use with the Mk1 libjpeg.

In order to make 12-bit JPEG in TIFF available to a broader variety of applications, an option could be provided via a virtual tag (similar to that used by the LogLuv support) to set libtiff in a mode where 12-bit JPEG in TIFF pretends to be a 16-bit format. 12-bit JPEG in TIFF files would be reported as 16-bits/sample. In this case the samples should be scaled to 16-bits. The only change necessary for applications already supporting 16-bit TIFF is to set the option requesting that 12-bit TIFF be supported like 16-bit TIFF.

While I agree this would be desirable (auto-upgrade to 16bit), I am not personally keen to try and implement it. It might be fairly challenging to do properly without any adverse effects.

Best regards,

I set the clouds in motion - turn up   | Frank Warmerdam, warmerdam@pobox.com
light and sound - activate the windows | http://pobox.com/~warmerdam
and watch the world go round - Rush    | Geospatial Programmer for Rent