AWARE [SYSTEMS] Imaging expertise for the Delphi developer
AWare Systems, Imaging expertise for the Delphi developer, Home TIFF and LibTiff Mailing List Archive

LibTiff Mailing List

TIFF and LibTiff Mailing List Archive
March 2002

Previous Thread
Next Thread

Previous by Thread
Next by Thread

Previous by Date
Next by Date

Contact

The TIFF Mailing List Homepage
This list is run by Frank Warmerdam
Archive maintained by AWare Systems



Valid HTML 4.01!



Thread

2002.03.05 02:20 "16 bit LAB in TIFF - documentation update", by Chris Cox
2002.03.05 13:05 "Re: 16 bit LAB in TIFF - documentation update", by Marti Maria
2002.03.05 20:31 "Re: 16 bit LAB in TIFF - documentation update", by Chris Cox
2002.03.05 15:38 "Re: 16 bit LAB in TIFF - documentation update", by Martin Bailey
2002.03.05 20:31 "Re: 16 bit LAB in TIFF - documentation update", by Chris Cox
2002.03.06 01:03 "Re: 16 bit LAB in TIFF - documentation update", by Martin Bailey
2002.03.06 03:02 "Re: 16 bit LAB in TIFF - documentation update", by Chris Cox
2002.03.07 13:35 "Re: 16 bit LAB in TIFF - documentation update", by Marti Maria
2002.03.21 00:24 "16 bit LAB in TIFF - second pass", by Chris Cox
2002.03.21 13:00 "Re: 16 bit LAB in TIFF - second pass", by Marti Maria

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.