TIFF 6.0 Specification
Final—June 3, 1992
The EOFB sequence is immediately followed by enough 0-bit padding to fit the
entire stream into a sequence of 8-bit bytes.
General Application.
Because of the single uniform encoding procedure, without
disruptions by end-of-line codes and shifts into one-dimensional encodings, T.6-
encoding is very popular for compression of bi-level images in document imaging
systems. T.6-encoding trades off redundancy for minimum encoded size, relying
on the underlying storage and transmission systems for reliable retention and
communication of the encoded stream.
TIFF readers will operate most smoothly by always ignoring bits beyond the
EOFB. Some writers may produce additional bytes of pad bits beyond the byte
containing the final bit of the EOFB. Robust readers will not be disturbed by this
prospect.
It is not possible to correctly decode a T.6-Encoding without knowledge of the
exact number of pixels in each line of the pixel array. ImageWidth (or TileWidth,
if used) must be stated exactly and accurately. If an image or segment is
overscanned, producing extraneous pixels at the beginning or ending of lines,
these pixels must be counted. Any cropping must be accomplished by other
means. It is not possible to recover from a pixel-count deviation, even when one is
detected. Failure of any row to be completed as expected is cause for abandoning
further decoding of the entire segment. There is no requirement that ImageWidth
be a multiple of eight, of course, and readers must be prepared to pad the final
octet bytes of decoded bitmap rows with additional bits.
If a TIFF reader encounters EOFB before the expected number of lines has been
extracted, it is appropriate to assume that the missing rows consist entirely of
white pixels. Cautious readers might produce an unobtrusive warning if such an
EOFB is followed by anything other than pad bits.
Readers that successfully decode the RowsPerStrip (or TileLength or residual
ImageLength) number of lines are not required to verify that an EOFB follows.
That is, it is generally appropriate to stop decoding when the expected lines are
decoded or the EOFB is detected, whichever occurs first. Whether error indica-
tions or warnings are also appropriate depends upon the application and whether
more precise troubleshooting of encoding deviations is important.
TIFF writers should always encode the full, prescribed number of rows, with a
proper EOFB immediately following in the encoding. Padding should be by the
least number of 0-bits needed for the T.6-encoding to exactly occupy a multiple of
8 bits. Only 0-bits should be used for padding, and StripByteCount (or
TileByteCount) should not extend to any bytes not containing properly-formed
T.6-encoding. In addition, even though not required by T.6-encoding rules, suc-
cessful interchange with a large variety of readers and applications will be en-
hanced if writers can arrange for the number of pixels per line and the number of
lines per strip to be multiples of eight.
Uncompressed Mode.
Although T.6-encodings of simple bi-level images result
in data compressions of 10:1 and better, some pixel-array patterns have T.6-
encodings that require more bits than their simple bi-level bitmaps. When such
cases are detected by encoding procedures, there is an optional extension for
shifting to a form of uncompressed coding within the T.6-encoding string.
Uncompressed mode is not well-specified and many applications discourage its
usage, prefering alternatives such as different compressions on a segment-by-
segment (strip or tile) basis, or by simply leaving the image uncompressed in its
53