Request for Comments: 3949 D. Venable
Obsoletes: 2301 Xerox Corporation
Category: Standards Track L. McIntyre
Consultant
G. Parsons
Nortel Networks
J. Rafferty
Brooktrout
February 2005
File Format for Internet Fax
Status of this Memo
This document specifies an Internet standards track protocol for the
Internet community, and requests discussion and suggestions for
improvements. Please refer to the current edition of the "Internet
Official Protocol Standards" (STD 1) for the standardization state
and status of this protocol. Distribution of this memo is unlimited.
Copyright Notice
Copyright (C) The Internet Society (2005).
Abstract
This document is a revised version of RFC 2301. The revisions,
summarized in the list attached as Annex B, are based on discussions
and suggestions for improvements that have been made since RFC 2301
was issued in March 1998, and on the results of independent
implementations and interoperability testing.
This RFC 2301 revision describes the Tag Image File Format (TIFF)
representation of image data specified by the International
Telecommunication Union (ITU-T) Recommendations for black-and-white
and color facsimile. This file format specification is commonly
known as TIFF for Fax eXtended (TIFF-FX). It formally defines
minimal, extended, and lossless Joint Bi-level Image experts Group
(JBIG) profiles (Profiles S, F, J) for black-and-white fax and base
JPEG, lossless JBIG, and Mixed Raster Content profiles (Profiles C,
L, M) for color and grayscale fax. These profiles correspond to the
content of the applicable ITU-T Recommendations.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.1. Scope . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2. Approach. . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3. Overview of this Document . . . . . . . . . . . . . . . . 5
2. TIFF and Fax . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.1. TIFF Overview . . . . . . . . . . . . . . . . . . . . . . 7
2.1.1. File Structure . . . . . . . . . . . . . . . . . . 8
2.1.2. Image Structure. . . . . . . . . . . . . . . . . . 10
2.1.3. TIFF File Structure for Fax Applications . . . . . 11
2.2. TIFF Fields for All Fax Applications. . . . . . . . . . . 12
2.2.1. TIFF Fields required for all fax profiles. . . . . 13
2.2.2. Additional TIFF Fields required for all fax
profiles . . . . . . . . . . . . . . . . . . . . . 14
2.2.3. TIFF Fields recommended for all fax profiles . . . 17
2.2.4. New TIFF Fields recommended for fax profiles . . . 18
3. Profile S: Minimal Black-and-White Fax Profile . . . . . . . . 20
3.1. Overview. . . . . . . . . . . . . . . . . . . . . . . . . 20
3.2. Required TIFF Fields. . . . . . . . . . . . . . . . . . . 21
3.2.1. Baseline Fields. . . . . . . . . . . . . . . . . . 21
3.2.2. Extension Fields . . . . . . . . . . . . . . . . . 23
3.2.3. New Fields . . . . . . . . . . . . . . . . . . . . 23
3.3. Recommended TIFF Fields . . . . . . . . . . . . . . . . . 23
3.4. End of Line (EOL) and Return to Control (RTC) . . . . . . 23
3.4.1. RTC Exclusion. . . . . . . . . . . . . . . . . . . 24
3.5. File Structure. . . . . . . . . . . . . . . . . . . . . . 24
3.6. Profile S: Minimal Black-and-White Profile Summary. . . . 26
4. Profile F: Extended Black-and-White Fax Profile. . . . . . . . 27
4.1. TIFF-F Overview . . . . . . . . . . . . . . . . . . . . . 28
4.2. Required TIFF Fields. . . . . . . . . . . . . . . . . . . 29
4.2.1. Baseline Fields. . . . . . . . . . . . . . . . . . 29
4.2.2. Extension Fields . . . . . . . . . . . . . . . . . 32
4.2.3. New Fields . . . . . . . . . . . . . . . . . . . . 32
4.3. Recommended TIFF Fields . . . . . . . . . . . . . . . . . 32
4.3.1. Baseline Fields. . . . . . . . . . . . . . . . . . 32
4.3.2. Extension Fields . . . . . . . . . . . . . . . . . 33
4.3.3. New Fields . . . . . . . . . . . . . . . . . . . . 33
4.4. Technical Implementation Issues . . . . . . . . . . . . . 34
4.4.1. Strips . . . . . . . . . . . . . . . . . . . . . . 34
4.4.2. Bit Order. . . . . . . . . . . . . . . . . . . . . 34
4.4.3. Multi-Page . . . . . . . . . . . . . . . . . . . . 35
4.4.4. Compression. . . . . . . . . . . . . . . . . . . . 35
4.4.5. Example Use of Page-quality Fields . . . . . . . . 36
4.4.6. Practical Guidelines for Writing and Reading
Multi-Page TIFF-F Files. . . . . . . . . . . . . . 36
4.4.7. Use of TIFF-F for Streaming Applications . . . . . 38
4.5. Implementation Warnings . . . . . . . . . . . . . . . . . 38
4.5.1. Uncompressed Data. . . . . . . . . . . . . . . . . 38
4.5.2. Encoding and Resolution. . . . . . . . . . . . . . 38
4.5.3. EOL byte-aligned . . . . . . . . . . . . . . . . . 39
4.5.4. EOL. . . . . . . . . . . . . . . . . . . . . . . . 40
4.5.5. RTC Exclusion. . . . . . . . . . . . . . . . . . . 40
4.5.6. Use of EOFB for T.6 Compressed Images. . . . . . . 40
4.6. Example Use of TIFF-F . . . . . . . . . . . . . . . . . . 40
4.7. Profile F: Extended Black-and-white Fax Profile Summary . 41
5. Profile J: Lossless JBIG Black-and-White Fax Profile . . . . . 43
5.1. Overview. . . . . . . . . . . . . . . . . . . . . . . . . 43
5.2. Required TIFF Fields. . . . . . . . . . . . . . . . . . . 44
5.2.1. Baseline Fields. . . . . . . . . . . . . . . . . . 44
5.2.2. Extension Fields . . . . . . . . . . . . . . . . . 44
5.2.3. New Fields . . . . . . . . . . . . . . . . . . . . 44
5.3. Recommended TIFF Fields . . . . . . . . . . . . . . . . . 45
5.4. Profile J: Lossless JBIG Black-and-White Profile Summary. 45
6. Profile C: Base Color Fax Profile. . . . . . . . . . . . . . . 47
6.1. Overview. . . . . . . . . . . . . . . . . . . . . . . . . 47
6.2. Required TIFF Fields. . . . . . . . . . . . . . . . . . . 47
6.2.1. Baseline Fields. . . . . . . . . . . . . . . . . . 47
6.2.2. Extension Fields . . . . . . . . . . . . . . . . . 49
6.2.3. New Fields . . . . . . . . . . . . . . . . . . . . 50
6.3. Recommended TIFF Fields . . . . . . . . . . . . . . . . . 52
6.4. Profile C: Base Color Fax Profile Summary . . . . . . . . 52
7. Profile L: Lossless Color Profile. . . . . . . . . . . . . . . 54
7.1. Overview. . . . . . . . . . . . . . . . . . . . . . . . . 54
7.1.1. Color Encoding . . . . . . . . . . . . . . . . . . 54
7.1.2. JBIG Compression . . . . . . . . . . . . . . . . . 55
7.2. Required TIFF Fields. . . . . . . . . . . . . . . . . . . 55
7.2.1. Baseline Fields. . . . . . . . . . . . . . . . . . 56
7.2.2. Extension Fields . . . . . . . . . . . . . . . . . 57
7.2.3. New Fields . . . . . . . . . . . . . . . . . . . . 57
7.3. Recommended TIFF Fields . . . . . . . . . . . . . . . . . 57
7.4. Profile L: Lossless Color Fax Profile Summary . . . . . . 58
8. Profile M: Mixed Raster Content Profile. . . . . . . . . . . . 60
8.1. Overview. . . . . . . . . . . . . . . . . . . . . . . . . 60
8.1.1. MRC 3-layer model. . . . . . . . . . . . . . . . . 60
8.1.2. A TIFF Representation for the MRC 3-layer model. . 62
8.2. Required TIFF Fields. . . . . . . . . . . . . . . . . . . 64
8.2.1. Baseline Fields. . . . . . . . . . . . . . . . . . 64
8.2.2. Extension Fields . . . . . . . . . . . . . . . . . 66
8.2.3. New Fields . . . . . . . . . . . . . . . . . . . . 67
8.3. Recommended TIFF Fields . . . . . . . . . . . . . . . . . 69
8.4. Rules and Requirements for Images . . . . . . . . . . . . 69
8.5. Profile M: MRC Fax Profile Summary. . . . . . . . . . . . 71
9. MIME content-types image/tiff and image/tiff-fx. . . . . . . . 74
10. Security Considerations. . . . . . . . . . . . . . . . . . . . 74
11. References . . . . . . . . . . . . . . . . . . . . . . . . . . 74
11.1. Normative References . . . . . . . . . . . . . . . . . . 74
11.2. Informative References . . . . . . . . . . . . . . . . . 76
Annex A: Summary of TIFF Fields for Internet Fax . . . . . . . . . 77
Annex B: List of technical edits to RFC 2301 . . . . . . . . . . . 81
Authors’ Addresses . . . . . . . . . . . . . . . . . . . . . . . . 82
Full Copyright Statement . . . . . . . . . . . . . . . . . . . . . 84
1. Introduction
This document describes the use of TIFF (Tag Image File Format) to
represent the data content and structure generated by the current
suite of ITU-T Recommendations for Group 3 facsimile. These
recommendations and the TIFF fields described here support the
following facsimile profiles:
S: Minimal black-and-white profile, using binary MH compression
[T.4]
F: Extended black-and-white profile, using binary MH, MR, and MMR
compression [T.4, T.6]
J: Lossless JBIG black-and-white profile, with JBIG compression
[T.85, T.82]
C: Lossy color and grayscale profile, using JPEG compression [T.42,
T.81]
L: Lossless color and grayscale profile, using JBIG compression
[T.43, T.82]
M: Mixed raster content profile [T.44], using a combination of
existing compression methods
Each profile corresponds to the content of ITU-T Recommendations
shown and is a subset of the full TIFF for facsimile specification.
Profile S describes a minimal interchange set of fields, which will
guarantee that, at least, binary black-and-white images will be
supported. Implementations are required to support this minimal
interchange set of fields.
With the intent of specifying a file format for Internet fax, this
document
1. specifies the structure of TIFF files for facsimile data,
2. defines ITU fax-compatible values for existing TIFF fields, and
3. defines new TIFF fields and values required for compatibility with
ITU color fax.
This specification of TIFF for facsimile is known as TIFF-FX (TIFF
for Fax eXtended). References to the format described by this
specification should always use the term "TIFF-FX", and some profiles
in this specification may not be interpreted correctly by other TIFF
applications.
1.1. Scope
This document defines a TIFF-based file format specification for
enabling standardized messaging-based fax over the Internet. It
specifies the TIFF fields and field values required for compatibility
with the existing ITU-T Recommendations for Group 3 black-and-white,
grayscale, and color facsimile. TIFF has historically been used for
handling fax image files in applications such as store-and-forward
messaging. Implementations that support this file format
specification for import/export may elect to support it as a native
format. This document recommends a TIFF file structure compatible
with low-memory and page-level streaming implementations.
Unless otherwise noted, the current TIFF specification [TIFF] and
selected TIFF Technical Notes [TTN1, TTN2] are the primary references
for describing TIFF and defining TIFF fields. This document is the
primary reference for defining TIFF field values for fax
applications.
1.2. Approach
The basic approach to using TIFF for facsimile data is to insert the
compressed fax image data into a TIFF file and use TIFF fields to
encode the parameters that describe the image data. These fields
will have values that comply with the ITU-T Recommendations.
This approach takes advantage of TIFF features and structures that
bridge the data formats and performance requirements of both legacy
fax machines and host-based fax applications. TIFF constructs for
pages, images, and strips allow a TIFF file to preserve the fax data
stream structure and the performance advantages that come with it. A
TIFF-based approach also builds on an established base of users and
implementors and ensures backward compatibility with existing TIFF-
based IETF proposals and work in progress for Internet fax.
1.3. Overview of this Document
Section 2 gives an overview of TIFF. Section 2.1 describes the
structure of TIFF files, including general guidelines for structuring
multi-page TIFF files. Section 2.2 lists the TIFF fields that are
required or recommended for all fax profiles. The TIFF fields used
only by specific fax profiles are described in Sections 3 - 8, which
describe the individual fax profiles. These sections also specify
the ITU-compatible field values (image parameters) for each profile.
The full set of permitted fields of TIFF for facsimile are included
in the current TIFF specification, Section 2 of this document, and
the sections on specific profiles of facsimile operation. This
document defines profiles of TIFF for facsimile, where a profile is a
subset of the full set of permitted fields and field values of TIFF
for facsimile.
Section 3 defines the minimal black-and-white facsimile profile
(Profile S), which is required in all implementations. Section 4
defines the extended black-and-white fax profile (Profile F), which
provides a standard definition of TIFF-F. Section 5 describes the
lossless black-and-white profile using JBIG compression (Profile J).
Section 6 defines the base color profile, required in all color
implementations, for the lossy JPEG representation of color and
grayscale facsimile data (Profile C). Section 7 defines the lossless
JBIG color and grayscale facsimile profile (Profile L), and Section 8
defines the Mixed Raster Content facsimile profile (Profile M). Each
of these sections concludes with a table summarizing the required and
recommended fields for each profile and the values they can have.
Section 9 refers to the MIME content types used in connection with
TIFF for facsimile. Sections 10 and 11 give Security Considerations
and References, followed by Authors’ Addresses and the Copyright
Notice. Annex A gives a summary of the TIFF fields used or defined
in this document and provides a convenient reference for
implementors.
To implement only the minimal interchange black-and-white set of
fields and values (Profile S), one need read only Sections 1, 2, 3,
9, and 10.
The following tree diagram shows the relationship among profiles and
between profiles and coding methods.
S (MH)
/ \
B&W / \ Color
------------ ----------
/ \ \
/ F (MH, MR, MMR) C (JPEG)
/ / \
J (JBIG) ---- \
/ \
L (JBIG) \
\
M (MRC)
A profile is based on a collection of ITU-T facsimile coding methods.
For example, Profile S, the minimal profile, is based on Modified
Huffman (MH) compression, which is defined in ITU-T Rec. T.4.
Profile F specifies Modified Huffman (MH), Modified READ (MR), and
Modified Modified READ (MMR) compressions, which are defined in ITU-T
Rec. T.4 and T.6.
All implementations of TIFF for facsimile MUST implement Profile S,
which is the root node of the tree. All color implementations of
TIFF for facsimile MUST implement Profile C. The implementation of a
particular profile MUST also implement those profiles on the path
that connect it to the root node, and MAY optionally implement
profiles not on the path connecting it to the root node. For
example, an implementation of Profile M must also implement Profiles
C and S and may optionally implement Profile F, J, or L. For another
example, an implementation of Profile C must also implement Profile S
and may optionally implement Profile F or J.
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", " NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in [REQ].
2. TIFF and Fax
2.1. TIFF Overview
TIFF provides a means for describing, storing, and interchanging
raster image data. A primary goal of TIFF is to provide a rich
environment within which applications can exchange image data. The
current TIFF specification [TIFF] defines a commonly used core set of
TIFF fields known as Baseline TIFF. The current specification, the
set of Pagemaker TIFF Technical Notes [TTN1], and TIFF Technical Note
2 [TTN2] define several TIFF extensions. The TIFF-based
specification for fax applications uses a subset of Baseline TIFF
fields, with selected extensions, as described in this document. In
a few cases, this document defines new TIFF fields specifically for
fax applications.
2.1.1. File Structure
TIFF is designed for raster images, which makes it a good match for
facsimile documents, which are multi-page raster images. Each raster
image consists of a number of rows or scanlines, each of which has
the same number of pixels, the unit of sampling. Each pixel has at
least one sample or component (exactly one for black-and-white
images).
A TIFF file begins with an 8-byte image file header. The first two
bytes describe the byte order used within the file. Legal values are
"II" (0x4949) when bytes are ordered from least to most significant
(little-endian), and "MM" (0x4D4D), when bytes are ordered from most
to least significant (big-endian) within a 16- or 32-bit integer.
Either byte order can be used, except in the case of the minimal
black-and-white profile, which SHALL use value "II". The next two
bytes contain the value 42, which identifies the file as a TIFF file
and is ordered according to the value in the first two bytes of the
header. The last four bytes give the offset that points to the first
image file directory (IFD). This and all other offsets in a TIFF
file are with respect to the beginning of the TIFF file. An IFD can
be at any location in the file after the header but must begin on a
word boundary.
An IFD is a sequence of tagged fields, sorted in ascending order by
tag value. An IFD consists of a 2-byte count of the number of
fields, a sequence of field entries, and a 4-byte offset to the next
IFD. The fields contain information about the image and pointers to
the image data. Each separate raster image in the file is
represented by an IFD.