A general transform coding scheme involves subdividing an N x N image into smaller n x n blocks and performing a unitary transform on each subimage. A unitary transform is a reversible linear transform whose kernel describes a set of complete, orthonormal discrete basis functions . The goal of the transform is to decorrelate the original signal, and this decorrelation generally results in the signal energy being redistributed among only a small set of transform coefficients. In this way, many coefficients can be discarded after quantization and prior to encoding. Also, visually lossless compression can often be achieved by incorporating the HVS contrast sensitivity function in the quantization of the coefficients. A block diagram of a basic transform coding scheme is shown in Fig. 10.1.
A transform is referred to as one-dimensional (1-D) if it is performed along a single dimension of the image, i.e., along a line or a column of pixels. A 1-D transform performed on n pixels is termed an n-point transform. A transform is two-dimensional (2-D) if it is performed on a 2-D block of pixels. All of the 2-D transforms considered in this chapter are separable in that the transform kernel can be decomposed into two 1-D kernels specifying separate horizontal and vertical operations. Thus, a separable transform on an n Ã n block of pixels can be performed in two steps. First, a 1-D n-point transform is performed along each row of the block and then another 1-D n-point transform is performed along each column of the resulting output.
There are several ways in which an n-point unitary transform can be interpreted . One approach is to consider it as a rotation of the n-dimensional coordinate axes defined by the image pixels in a block. Another view is that the transform decomposes the original block into a set of n orthogonal basis functions. In the following sections, we elaborate on each of these interpretations.
Online access to SPIE eBooks is limited to subscribing institutions.