Discrete cosine transform matrix
D = dctmtx(n)
D = dctmtx(n) returns the
(discrete cosine transform) matrix.
D*A is the
DCT of the columns of
the inverse DCT of the columns of
n is an integer scalar of class
returned as a matrix of class
Read image into the workspace and cast it to class
A = im2double(imread('rice.png'));
Calculate discrete cosine transform matrix.
D = dctmtx(size(A,1));
Multiply the input image A by D to get the DCT of the columns of A and by D' to get the inverse DCT of the columsn of A.
dct = D*A*D'; figure, imshow(dct)
A is square, the two-dimensional DCT of
be computed as
D*A*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
D, and then calculate each DCT using
each 8-by-8 block). This is faster than calling
each individual block.