|AWARE [SYSTEMS]||Imaging expertise for the Delphi developer|
|TIFF and LibTiff Mailing List Archive|
LibTiff Mailing List
2002.03.05 02:20 "16 bit LAB in TIFF - documentation update", by Chris Cox
This is the official update for 16 bit LAB data in TIFF files, part of the documentation update coming out with the Photoshop 7 SDK. This covers the existing CIELab encoding and the new ICCLab encoding. An RTF version of the documentation is attached. A formatted PDF (104K) can be found at http://www.chriscox.org/PhotoshopLABTIFF.pdf (Sorry I had to put it on my own website, but Adobe's website team was going to take at least another 4 weeks) Chris Attachment converted from RTF Adobe Photoshop¨ TIFF Technical NotesDraft - March 4, 2002 L*a*b* Images Introduction CIE L*a*b* is a color space that is colorimetric, has separate lightness and chroma channels, and is approximately perceptually uniform. It has excellent applicability for device-independent manipulation of continuous tone images. These attributes make it an excellent choice for many image editing and archiving functions. 1976 CIEL*a*b* is represented as a Euclidean space with the following three quantities plotted along axes at right angles: L* representing lightness, a* representing the red/green axis, and b* representing the yellow/blue axis. The formulas for 1976 CIE L*a*b* follow: L* = 116(Y/Yn)1/3-16 for Y/Yn > 0.008856 L* = 903.3(Y/Yn) for Y/Yn <= 0.008856 *see note below. a* = 500[(X/Xn)1/3-(Y/Yn)1/3] b* = 200[(Y/Yn)1/3-(Z/Zn)1/3]. where Xn,Yn, and Zn are the CIE X, Y, and Z tristimulus values of an appropriate reference white. Also, if any of the ratios X/Xn, Y/Yn, or Z/Zn is equal to or less than 0.008856, it is replaced in the formulas with 7.787F + 16/116, where F is X/Xn, Y/Yn, or Z/Zn, as appropriate (note: these low-light conditions are of no relevance for most document-imaging applications). Scaling the 0-100 range of L* into 256 levels provides lightness steps that are less than half the size of a 'just noticeable difference' in the 8 bit encoding. Limiting the theoretically unbounded a* and b* ranges to +/- 127 allows encoding in 8 bits without eliminating any but the most saturated self-luminous colors The TIFF CIELAB Fields Field: PhotometricInterpretation Status: required Tag: 262 (106.H) Type: SHORT Count: 1 Value: This Field indicates the color space of the image. The new values are: 8 1976 CIE L*a*b*, normal encoding 9 ICCLab encoding For CIELab (PhotometricInterpretation = 8), the L* component is encoded in 8 bits as an unsigned integer range [0,255], and encoded in 16 bits as an unsigned integer range [0,65535]. The a* and b* components are encoded in 8 bits as signed integers range [-128,127], and encoded in 16 bits as signed integers range [-32768,32767]. The 8 bit chrominance values are exactly equal to the 1976 CIE a* and b* values, while the 16 bit values are equal to 256 times the 1976 CIE a* and b* values. For ICCLab (PhotometricInterpretation = 9), the L* component is encoded in 8 bits as an unsigned integer range [0,255], and encoded in 16 bits as an unsigned integer range [0,65280]. The a* and b* components are encoded in 8 bits as unsigned integers range [0,255], and encoded in 16 bits as unsigned integers range [0,65535]. The 8 bit chrominance values are exactly equal to the 1976 CIE a* and b* values plus 128, while the 16 bit values are equal to 256 times the 1976 CIE a* and b* values plus 32768 (this is also 256 times the 8 bit encoding). PhotometricInterpretation 9 is designed to match the encoding used by the ICC profile specification. Compression: same as other multi-bit formats. PlanarConfiguration: both chunky and planar data could be supported. WhitePoint: does not apply PrimaryChromaticities: does not apply. TransferFunction: does not apply Alpha Channel information will follow the lead of other data types. Important note: Some application vendors developed (mutually incompatible) proprietary encodings for 16 bit LAB data in TIFF images before the release of this update. Unfortunately, there is no simple way to determine whether a file uses the standard encoding or a proprietary encoding other than opening the image and verifying its appearance in an application known to use the standard encoding specified above. Legacy files which used these incompatible encodings will have to be converted to the standard encoding using updated versions of the software that created them or conversion utilities supplied by the company that created them.