ZVON > RFC Repository > RFC 2301
Prev | Next | RFC index | RFC search Download as zip/tar.gz

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 |
       +---------------------------+--------------------------------+

ZVON > RFC Repository > RFC 2301
Prev | Next | RFC index | RFC search Download as zip/tar.gz