7. Lossless Color Mode
This section defines the lossless color mode or Profile L of TIFF for
facsimile. Implementations of this profile are required to also
implement Profiles S and C.
7.1. Overview
This mode, defined in [T.43], uses JBIG to losslessly code three
types of color and grayscale images: one bit per color CMY, CMYK and
RGB images; a palettized (i.e. mapped) color image; and continuous
tone color and grayscale images. The last two are multi-level and use
the L*a*b* encoding specified in [T.42].
7.1.1. Color Encoding
While under development, this mode was called T.Palette, as one of
its major additions was palette or mapped color images. Baseline TIFF
only allows RGB color maps, but ITU-T Rec. T.43 requires L*a*b* color
maps, using the encoding specified in ITU-T Rec. T.42. Palette color
images are expressed with indices (bits per sample) of 12 bits or
less, or optionally 13 to 16 bits, per [T.43].
Enabling T.43 color maps in TIFF requires the extension field
Indexed, defined in [TTN1], and the PhotometricInterpretation field
value 10, defined in Section 6.2.1. The following table shows the
corresponding PhotometricInterpretation, SamplesPerPixel,
BitsPerSample and Indexed field values for the different T.43 image
types.
+----------------------------------------------------------+
| Image Type |PhotometricIn| Samples | Bits Per | Indexed |
| |-terpretation| PerPixel | Sample | |
|------------+-------------+----------+----------+---------|
| RGB | 2=RGB | 3 | 1 | 0 |
+----------------------------------------------------------+
| CMY | 5=CMYK | 3 | 1 | 0 |
+------------+-------------+----------+----------+---------+
| CMYK | 5=CMYK | 4 | 1 | 0 |
+------------+-------------+----------+----------+---------+
| Palette | 10=ITULAB | 1 | n | 1 |
+------------+-------------+----------+----------+---------+
| Grayscale | 10=ITULAB | 1 | 8, 12 | 0 |
+------------+-------------+----------+----------+---------+
| Color | 10=ITULAB | 3 | 8, 12 | 0 |
+------------+-------------+----------+----------+---------+
7.1.2. JBIG Encoding
T.43 uses the single-progression sequential mode of JBIG, defined in
ITU-T Rec. T.82. To code multi-level images using JBIG, which is a
bi-level compression method, an image is resolved into a set of bit-
planes, and each bit-plane is then JBIG compressed. For continuous
tone color and grayscale images, Gray code conversion is used. The
Gray code conversion is part of the data stream encoding, and is
therefore invisible to TIFF.
7.2. Required TIFF Fields
This section lists the required fields, in addition to those in
Section 2.2.1, and the values they must have to be compatible with
ITU-T Rec. T.43.
7.2.1. Baseline Fields
ImageWidth(256). SHORT or LONG
Same page widths as the base color mode; see Section 6.2.1.
NewSubFileType(254) = (Bit 1=1). LONG
RequiredByTIFFforFAX
Bit 1 is 1 if the image is a single page of a multi-page document.
Default = 0 (no subfile bits on, so may not be omitted for fax)
BitsPerSample(258) = 1, 2-8, 9-16. SHORT
Count = SamplesPerPixel
RGB, CMY, CMYK: 1 bit per sample
Continuous tone (L*a*b*): 2-8 bits per sample, 9-12 bits optional
Palette color: 12 or fewer bits per sample, 13-16 bits optional
Note: More than 8 bits per sample is not baseline TIFF.
ColorMap(320). SHORT
Count = 3 * number of sample values
Lossless color fax mode supports palette-color (indexed) images
where the single component value is used as an index into a full
color lookup table stored in the ColorMap field. The sample value is
encoded using the number of bits given by the BitsPerSample field
value. However, per [T.43],the number of sample values may be less
than 2**BitsPerSample. The color lookup table is only required to
have as many entries as there are number of sample values. For
palette-color images in lossless color fax mode, the ITULAB encoding
with 8 or optionally 12 bits per color map value is supported. To
utilize a color map, the TIFF Indexed field must be present. TIFF
orders the color map values so that all the L* values come first,
followed by all the a* values and then all the b* values. Because
ITU-T Rec. T.43 specifies a "chunky" ordering with the L*a*b*
components of the first value, followed by those of the second
value, and so on, reproducing color map values from a fax data
stream in a TIFF file requires reordering values.
Compression(259) = 10. SHORT
10: ITU-T Rec. T.43 representation, using ITU-T Rec. T.82 (JBIG)
coding
FillOrder(266) = 1 , 2. SHORT
RequiredByTIFFBaseline
Profile F readers must be able to read data in both bit orders,
but the vast majority of facsimile products store data LSB
first, exactly as it appears on the telephone line.
1 = Most Significant Bit first.
2 = Least Significant Bit first
PhotometricInterpretation(262) = 2, 5, 10. SHORT
2: RGB
5: CMYK, including CMY
10: ITULAB
Image data may also be stored as palette color images, where pixel
values are represented by a single component that is an index into a
color map using the ITULAB encoding. This color map is specified by
the ColorMap field. To use palette color images, set the
PhotometricInterpretation to 10,SamplesPerPixel to 1, and Indexed to
1. The color map is stored in the ColorMap field. See Section 7.1.1
for further discussion on the color encoding.
ResolutionUnit(296) = 2, 3. SHORT
The unit of measure for resolution. 2 = inch, 3 = centimeter;
Default = 2 (field may be omitted if this is the value)
SamplesPerPixel(277) = 1, 3, 4. SHORT
1: Palette color image, or L*-only if Indexed = 0 and
PhotometricInterpretation is 10 (ITULAB).
3: RGB, or L*a*b*, or CMY if PhotometricInterpretation is 5 (CMYK).
4: CMYK.
XResolution(282) = 100, 200, 300, 400. RATIONAL
YResolution(283) = 100, 200, 300, 400. RATIONAL
The resolution of the image is expressed in pixels per resolution
unit. In pixels per inch, allowed XResolution values are: 100, 200,
300, and 400. The lossless color fax mode requires the pixels to be
square, hence YResolution must equal XResolution. Base resolution is
200 pixels per inch. See Section 2.2.2 for inch-metric equivalency.
7.2.2. Extension Fields
Indexed(364) = 0, 1. SHORT
0: not a palette-color image
1: palette-color image
This field is used to indicate that each sample value is an index
into an array of color values specified in the ColorMap field.
Lossless color fax mode supports palette-color images with the
ITULAB encoding. The SamplesPerPixel value must be 1.
7.2.3. New Fields
Decode(433) SRATIONAL
Decode is used in connection with the ITULAB encoding of image data
and color map values; see Section 6.2.3.
7.3. Recommended TIFF Fields
See Sections 2.2.3. and 2.2.4.
7.4. Lossless Color Fax Mode Summary
Recommended fields are shown with an asterisk *.
+--------------------+--------------------------------------+
| Baseline Fields | Values |
+--------------------+--------------------------------------+
| BitsPerSample | 1: Binary RGB, CMY(K) |
| | 8: 8 bits per color sample |
| | 9-16: optional |
+--------------------+--------------------------------------+
| ColorMap | n: LAB color map |
+--------------------+--------------------------------------+
| Compression | 10: JBIG, per T.43 |
+--------------------+--------------------------------------+
| DateTime* | {ASCII}: date/time in the 24-hour |
| | format "YYYY:MM:DD HH:MM:SS" |
+--------------------+--------------------------------------+
| FillOrder** | 1: Most significant bit first |
| | 2: Least significant bit first |
+--------------------+--------------------------------------+
| ImageDescription* | {ASCII}: A string describing the |
| | contents of the image. |
+--------------------+--------------------------------------+
| ImageWidth | 864, 1024, 1216, 1728**, 2048, 2432, |
| | 2592, 3072, 3456, 3648, 4096, 4864 |
+--------------------+--------------------------------------+
| ImageLength** | n: total number of scanlines in image|
+--------------------+--------------------------------------+
| NewSubFileType | 2: Bit 1 identifies single page of a |
| | multi-page document |
+--------------------+--------------------------------------+
| Orientation | 1**-8, Default 1 |
+--------------------+--------------------------------------+
| PhotometricInter- | 2: RGB |
| pretation | 5: CMYK |
| | 10: ITULAB |
+--------------------+--------------------------------------+
+--------------------+--------------------------------------+
| ResolutionUnit | 2: inch |
| | 3: centimeter |
+--------------------+--------------------------------------+
| RowsPerStrip | n: number of scanlines per TIFF strip|
+--------------------+--------------------------------------+
| SamplesPerPixel | 1: L* (lightness) |
| | 3: LAB, RGB, CMY |
| | 4: CMYK |
+--------------------+--------------------------------------+
| Software* | {ASCII}: name & release number of |
| | creator software |
+--------------------+--------------------------------------+
| StripByteCounts | <n>: number or bytes in TIFF strip |
+--------------------+--------------------------------------+
| StripOffsets | <n>: offset from beginning of file to|
| | each TIFF strip |
+--------------------+--------------------------------------+
| XResolution | 100, 200, 300, 400 (written in |
| | pixels/inch) |
+--------------------+--------------------------------------+
| YResolution | equal to XResolution (pixels must be |
| | square) |
+--------------------+--------------------------------------+
| Extension Fields |
+--------------------+--------------------------------------+
| DocumentName* | {ASCII}: name of scanned document |
+--------------------+--------------------------------------+
| PageNumber | n,m: page number followed by total |
| | page count |
+--------------------+--------------------------------------+
| Indexed | 0: not a palette-color image |
| | 1: palette-color image |
+--------------------+--------------------------------------+
| New Fields |
+--------------------+--------------------------------------|
| Decode | minL, maxL, mina, maxa, minb, maxb: |
| |minimum and maximum values for L*a*b* |
+--------------------+--------------------------------------+
| GlobalParameters | IFD: global parameters IFD |
| IFD* | |
+-----------------------------------------------------------+
+--------------------+--------------------------------------+
| ProfileType* | n: type of data stored in TIFF file |
+--------------------+--------------------------------------+
| FaxProfile* | n: ITU-compatible fax mode |
+--------------------+--------------------------------------+
| CodingMethods* | n:compression algorithms used in |
| | file |
+--------------------+--------------------------------------+
| VersionYear* | byte sequence: year of ITU fax std |
+--------------------+--------------------------------------+