Main Content

idct2

2-D inverse discrete cosine transform

Description

B = idct2(A) returns the two-dimensional inverse discrete cosine transform (DCT) of A.

example

B = idct2(A,m,n) and

B = idct2(A,[m n]) zero-pads or crops the matrix A to size m-by-n before applying the inverse transformation.

Examples

collapse all

Read an image into the workspace, then convert the image to grayscale.

RGB = imread('autumn.tif');
I = im2gray(RGB);

Perform a 2-D DCT of the grayscale image using the dct2 function.

J = dct2(I);

Display the transformed image using a logarithmic scale. Notice that most of the energy is in the upper left corner.

imshow(log(abs(J)),[])
colormap parula
colorbar

Figure contains an axes object. The hidden axes object contains an object of type image.

Set values less than magnitude 10 in the DCT matrix to zero.

J(abs(J) < 10) = 0;

Reconstruct the image using the inverse DCT function idct2. Rescale the values to the range [0, 1] expected of images of data type double.

K = idct2(J);
K = rescale(K);

Display the original grayscale image alongside the processed image. The processed image has fewer high frequency details, such as in the texture of the trees.

montage({I,K})
title('Original Grayscale Image (Left) and Processed Image (Right)');

Figure contains an axes object. The hidden axes object with title Original Grayscale Image (Left) and Processed Image (Right) contains an object of type image.

Input Arguments

collapse all

Input matrix, specified as a 2-D numeric matrix.

Data Types: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Number of image rows, specified as a positive integer. idct2 pads image A with 0s or truncates image A so that it has m rows. By default, m is equal to size(A,1).

Number of image columns, specified as a positive integer. idct2 pads image A with 0s or truncates image A so that it has n columns. By default, n is equal to size(A,2)

Output Arguments

collapse all

Transformed matrix using a two-dimensional discrete cosine transform, returned as an m-by-n numeric matrix.

Data Types: double

Tips

  • For any matrix A, idct2(dct2(A)) equals A to within round-off error.

Algorithms

idct2 computes the two-dimensional inverse DCT using:

Amn=p=0M1q=0N1αpαqBpqcosπ(2m+1)p2Mcosπ(2n+1)q2N, 0mM10nN1,

where

αp={1M, p=0             2M, 1pM1

and

αq={1N, q=0            2N, 1qN1.

References

[1] Jain, A. K., Fundamentals of Digital Image Processing, Englewood Cliffs, NJ, Prentice Hall, 1989, pp. 150-153.

[2] Pennebaker, W. B., and J. L. Mitchell, JPEG: Still Image Data Compression Standard, New York, Van Nostrand Reinhold, 1993.

Extended Capabilities

Version History

Introduced before R2006a

expand all

See Also

| | |