354 PART IV
The four dimensions of progressivity are very powerful and can be changed (nearly at will)
throughout the codestream. Since only the data required by the viewer need to be transmitted, the
"effective compression ratio" experienced by the client can be many times greater than the actual
compression ratio as measured from the file size at the server.
18.3 THE JPEG2000 ALGORITHM
In this section, we provide a high-level description of the JPEG2000 algorithm. Although the
standard specifies only the decoder and codestream syntax, this review focuses on the description
of a representative encoder, since this enables a more readable explanation of the algorithm. We
note that we will discuss the algorithm as it applies to Part I of the standard. As mentioned earlier,
Part I describes the minimal decoder required for JPEG2000, which should be used to provide
maximum interchange. Value-added technologies that are not required of all implementations are
described in Part II.
18.3.1 Tiles and Component Transforms
In JPEG2000, an image is defined as a collection of two-dimensional rectangular arrays of samples.
Each of these arrays is called an image component. Typical examples include RGB images
that have three components and CMYK images that have four components. Components need
not have the same number of samples. The image resides on a high-resolution grid. This grid,
usually referred to as "the canvas," is the reference for all geometric structures in JPEG2000. The
main purpose of the canvas is to define a consistent set of region mapping rules to be used for
manipulation of the geometric structures of JPEG2000.
The first step in JPEG2000 is to divide the image into non-overlapping rectangular files.
The array of samples from one component that fall within a tile is called a
primary benefits of tiles are that they provide a simple vehicle for limiting implementation memory
requirements and for spatial random access. They can also be useful for segmenting compound
imagery, as the coding parameters can be changed from tile to tile. As the tile grid is rectangular
and regular, options for segmentation are rather restricted.
The primary disadvantage of files is blocking artifacts. Since each tile is compressed indepen-
dently of all other tiles, visible artifacts can occur at tile boundaries. For high bit-rates and large
tile sizes, these artifacts are generally invisible. The tile size can always be made so large as to
encompass the entire image, effectively eliminating the presence of files.
When multiple component images are being encoded, one of two optional component trans-
forms can be applied to the first three components. 1 These transforms decorrelate the components
and increase the compression efficiency.
The first component transform is the irreversible color transform (ICT) and is used only in
conjunction with the irreversible wavelet transform discussed in the following section. The second
transform is called the reversible color transform (RCT) and is used only in conjunction with the
reversible wavelet transform. Although both transforms are invertible in the mathematical sense,
the RCT maps integer color components to integer transformed color components and is perfectly
invertible using only finite (low) precision arithmetic. Conversely, the ICT employs floating-point
arithmetic and, in general, requires infinite precision arithmetic to guarantee perfect inversion.
The RCT can be viewed as an approximate version of ICT.
1 Part II of the standard enables more general component transforms.