A DCT transformation matrix is useful for doing things like JPEG image
compression, in which an 8x8 DCT matrix is applied to non-overlapping blocks
throughout an image and only a sub-block on the top left of each block is
kept. During restoration, the remainder of the block is filled with zeros
and the inverse transform is applied to the block.
The two-dimensional DCT of A can be computed as D %*% A %*% t(D)
.
This computation is sometimes faster than using dct2
, especially if
you are computing a large number of small DCTs, because D needs to be
determined only once. For example, in JPEG compression, the DCT of each
8-by-8 block is computed. To perform this computation, use dctmtx
to
determine D of input image A, and then calculate each DCT using D %*%
A %*% t(D)
(where A is each 8-by-8 block). This is faster than calling
dct2
for each individual block.