6. Base Color Fax Mode
6.1. Overview
This section defines the lossy color mode or Profile C of TIFF for
facsimile. Implementations of this profile are required to also
implement Profile S.
This is the base mode for color and grayscale facsimile, which means
that all applications that support color fax must support this mode.
The basic approach is the lossy JPEG compression [T.4, Annex E; T.81]
of L*a*b* color data [T.42]. Grayscale applications use the L*
lightness component; color applications use the L*, a* and b*
components.
This mode uses a new PhotometricInterpretation field value to
describe the L*a*b* encoding specified in [T.42]. This encoding
differs in two ways from the other L*a*b* encodings used in TIFF
[TIFF, TTN1]: it specifies a different default range for the a* and
b* components, based on a comprehensive evaluation of existing
hardcopy output, and it optionally allows selectable range for the
L*, a* and b* components.
6.2. Required TIFF Fields
This section lists the required fields, in addition to those given in
Section 2.2.1, and the values they must support to be compatible with
ITU-T Rec. T.42 and Annex E in ITU-T Rec. T.4.
6.2.1. Baseline Fields
ImageWidth(256). SHORT or LONG
This mode supports the following fixed page widths: 864, 1024, 1216,
1728, 2048, 2432, 2592, 3072, 3456, 3648, 4096, 4864.
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) = 8, 12. SHORT
Count = SamplesPerPixel
The base color fax mode requires 8 bits per sample, with 12 as an
option. 12 bits per sample is not baseline TIFF.
Compression(259) = 7. SHORT
Base color fax mode uses Baseline JPEG compression. Value 7
represents JPEG compression as specified in [TTN2].
FillOrder(266) = 1 , 2. SHORT
RequiredByTIFFBaseline
Profile C 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) = 10. SHORT
Base color fax mode requires pixel values to be stored using the CIE
L*a*b* encoding defined in ITU-T Rec. T.42. This encoding is
indicated by the PhotometricInterpretation value 10, referred to as
ITULAB. With this encoding, the minimum sample value is mapped to 0
and the maximum sample value is mapped to (2^n - 1), i.e. the
maximum value, where n is the BitsPerSample value. The conversion
from unsigned ITULAB-encoded samples values to signed CIE L*a*b*
values is determined by the Decode field; see Sec. 6.2.3
NOTE: PhotometricInterpretation values 8 and 9 specify encodings for
use with 8-bit-per-sample CIE L*a*b* [TIFF] and ICC L*a*b* [TTN1]
data, but they are fixed encodings, which use different minimum and
maximum samples than the T.42 default encoding. As currently defined,
they are not able to represent fax-encoded L*a*b* data.
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. SHORT
1: L* component only, required in base color mode
3: L*, a*, b* components
Encoded according to PhotometricInterpretation field
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 base color fax mode requires the pixels to be
square, hence YResolution must equal XResolution. Base resolution is
200 pixels per inch and SHALL be supported by all implementations of
this mode. See Section 2.2.2 for inch-metric equivalency.
NOTE: Not all combinations of XResolution, YResolution and ImageWidth
are legal. The following table gives the legal combinations for inch-
based resolutions and the corresponding paper sizes [T.30].
+--------------------------------+---------------------------+
| XResolution x YResolution | ImageWidth |
+--------------------------------+---------------------------+
| 100 x 100 | 864 | 1024 | 1216 |
+--------------------------------+---------------------------+
| 200 x 200 | 1728 | 2048 | 2432 |
+--------------------------------+---------------------------+
| 300 x 300 | 2592 | 3072 | 3648 |
+--------------------------------+---------------------------+
| 400 x 400 | 3456 | 4096 | 4864 |
+--------------------------------+---------------------------+
|Letter,A4| B4 | A3 |
| Legal | | |
+---------------------------+
| Paper Size |
+---------------------------+
6.2.2. Extension Fields
The JPEG compression standard allows for the a*b* chroma components of
an image to be subsampled relative to the L* lightness component. The
extension fields ChromaSubSampling and ChromaPositioning define the
subsampling. They are the same as YCbCrSubSampling and YCbCrPositioning
in [TIFF], but have been renamed to reflect their applicability to other
color spaces.
ChromaSubSampling(530). SHORT
Count = 2
Specifies the subsampling factors for the chroma components of a
L*a*b* image. The two subfields of this field, ChromaSubsampleHoriz
and ChromaSubsampleVert, specify the horizontal and vertical
subsampling factors respectively.
SHORT 0: ChromaSubsampleHoriz = 1, 2.
1: equal numbers of lightness and chroma samples horizontally,
2: twice as many lightness samples as chroma samples horizontally,
SHORT 1: ChromaSubsampleVert = 1, 2.
1: equal numbers of lightness and chroma samples vertically,
2: twice as many lightness samples as chroma samples vertically,
The default value for ChromaSubSampling is (2,2), which is the
default for chroma subsampling in color fax [T.4, Annex E]. No
chroma subsampling, i.e. ChromaSubSampling = (1,1), is an option
for color fax
ChromaPositioning(531) = 1. SHORT
Specifies the spatial positioning of chroma components relative to
the lightness component.
1: centered,
A value of 1 means chrominance samples are spatially offset and
centered with respect to luminance samples. See the current TIFF
specification under YcbCr positioning for further information.
Default = 1, which is what ITU-T T.4, Annex E specifies.
6.2.3. New Fields
Decode(433). SRATIONAL
Count = 2 * SamplesPerPixel
Describes how to map image sample values into the range of values
appropriate for the current color space. In general, the values are
taken in pairs and specify the minimum and maximum output value for
each color component. For the base color fax mode, Decode has a
count of 6 values and maps the unsigned ITULAB-encoded sample values
(Lsample, asample, bsample) to signed L*a*b* values, as follows:.
L* = Decode[0] + Lsample x (Decode[1]-Decode[0])/(2^n -1)
a* = Decode[2] + asample x (Decode[3]-Decode[2])/(2^n -1)
b* = Decode[4] + bsample x (Decode[5]-Decode[4])/(2^n -1)
where Decode[0], Decode[2] and Decode[4] are the minimum values for
L*, a* and b*; Decode[1], Decode[3] and Decode[5] are the maximum
values for L*, a* and b*; and n is the BitsPerSample, either 8 or
12. For example, when n=8, L*=Decode[0] when Lsample=0 and
L*=Decode[1] when Lsample=255.
ITU-T Rec. T.42 specifies the ITULAB encoding in terms of a range
and offset for each component, which are related to the minimum and
maximum values as follows:
minimum = - (range x offset) / 2^n - 1
maximum = minimum + range
The Decode field default values depend on the color space. For the
ITULAB color space encoding, the default values correspond to the
base range and offset, as specified in ITU-T Rec. T.42 [T.42]. The
following table gives the base range and offset values for
BitsPerSample=8 and 12, and the corresponding default minimum and
maximum default values for the Decode field, calculated using the
equations above when PhotometricInterpetation=10.
+-----------------------------------------------+
| ITU-T Rec. T.42 | Decode |
+---------+-----------| base values | default values |
| BitsPer + Component +------------------+----------------------------+
| -Sample | | Range | Offset | Min | Max |
+---------+-----------+--------+---------+--------------+-------------+
| 8 | L* | 100 | 0 | 0 | 100 |
| +-----------+--------+---------+--------------+-------------+
| | a* | 170 | 128 | -21760/255 | 21590/255 |
| +-----------+--------+---------+--------------+-------------+
| | b* | 200 | 96 | -19200/255 | 31800/255 |
+---------+-----------+--------+---------+--------------+-------------+
| 12 | L* | 100 | 0 | 0 | 100 |
| +-----------+--------+---------+--------------+-------------+
| | a* | 170 | 2048 | -348160/4095 | 347990/4095 |
| +-----------+--------+---------+--------------+-------------+
| | b* | 200 | 1536 | -307200/4095 | 511800/4095 |
+---------+-----------+--------+---------+--------------+-------------+
For example, when PhotometricInterpretation=10 and BitsPerSample=8,
the default value for Decode is (0, 100, -21760/255, 21590/255,
-19200/255, 31800/255).
6.3. Recommended TIFF Fields
See Sections 2.2.3. and 2.2.4.
6.4. Base Color Fax Mode Summary
Recommended fields are shown with an asterisk *
Required fields or values are shown with a double asterisk **. If the
double asterisk is on the field name, then all the listed values are
required of implementations; if the double asterisks are in the
Values column, then only the values suffixed with a double asterisk
are required of implementations.
+---------------------------+--------------------------------+
| Baseline Fields | Values |
+---------------------------+--------------------------------+
| BitsPerSample | 8**: 8 bits per color sample |
| | 12: optional 12 bits/sample |
+---------------------------+--------------------------------+
| Compression** | 7: JPEG |
+---------------------------+--------------------------------+
| DateTime* | {ASCII}: date/time in 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 |
+---------------------------+--------------------------------+
| PhotometricInterpretation | 10**: ITULAB |
+---------------------------+--------------------------------+
| ResolutionUnit** | 2: inch |
| | 3: centimeter |
+---------------------------+--------------------------------+
| RowsPerStrip** | n: number of scanlines per |
| | TIFF strip |
+---------------------------+--------------------------------+
| SamplesPerPixel | 1**: L* (lightness) |
| | 3: LAB |
+---------------------------+--------------------------------+
| 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 | 100, 200**, 300, 400 |
| | (must equal XResolution) |
+---------------------------+--------------------------------+
+---------------------------+--------------------------------+
| Extension Fields |
+---------------------------+--------------------------------+
| DocumentName* | {ASCII}: name of scanned |
| | document |
+---------------------------+--------------------------------+
| PageNumber** | n,m: page number followed by |
| | total page count |
+---------------------------+--------------------------------+
| ChromaSubSampling | (1,1), (2, 2)** |
| | (1, 1): equal numbers of |
| | lightness and chroma samples |
| | horizontally and vertically |
| | (2, 2): twice as many lightness|
| | samples as chroma samples |
| | horizontally and vertically |
+---------------------------+--------------------------------+
| ChromaPositioning | 1**: centered |
+---------------------------+--------------------------------+
| New Fields |
+---------------------------+--------------------------------+
| Decode** | minL, maxL, mina, maxa, minb, |
| | maxb: minimum and maximum |
| | values for L*a*b* |
+---------------------------+--------------------------------+
| GlobalParametersIFD* | IFD: IFD containing |
| | global parameters |
+---------------------------+--------------------------------+
| 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 std |
+---------------------------+--------------------------------+