# Exploring Image Compression Techniques: MATLAB's DCT and Wavelet Compression

October 06, 2023
Dr. Richard Hughes
United Kingdom
Image Compression Using MATLAB
Dr Richard Hughes, a leading expert in multimedia engineering, brings over a decade of experience in image compression and optimization strategies.
In the digital era, images have become an integral part of our lives. They are used in various fields, such as medicine, entertainment, and communication. However, the storage and transmission of high-resolution images can be resource-intensive. This is where image compression techniques come into play. Image compression is the process of reducing the size of an image while maintaining its visual quality. In this blog, we will delve into various image compression techniques and focus on how MATLAB's built-in functions, particularly Discrete Cosine Transform (DCT) and wavelet compression, can be employed for image compression. This discussion aims to provide university students with a comprehensive theoretical understanding to aid them in solving their image compression assignments using MATLAB and gaining a deeper insight into image compression.

## Image Compression Techniques

Image compression techniques are essential tools for efficiently storing and transmitting images in various applications. They encompass a spectrum of methods, from lossless compression like Huffman coding to the widely used lossy compression through transforms such as DCT and wavelets. Understanding these techniques empowers individuals to strike a balance between image quality and data size, making them invaluable in fields like multimedia, healthcare, and communication. Below are some of these tools:
1. Lossless Compression vs. Lossy Compression
2. Image compression techniques can be broadly categorized into two types: lossless compression and lossy compression. Lossless compression preserves all the original image data, allowing for perfect reconstruction. On the other hand, lossy compression sacrifices some image data to achieve higher compression ratios.

3. Run-Length Encoding (RLE)
4. Run-length encoding is a simple lossless compression technique that is effective for binary images or images with long runs of the same pixel value. It replaces consecutive identical pixels with a single value and a count.

5. Huffman Coding
6. Huffman coding is another lossless technique that assigns shorter codes to frequently occurring pixel values and longer codes to less frequent values. This results in variable-length codes that can achieve significant compression.

7. Lempel-Ziv-Welch (LZW)
8. LZW is a dictionary-based lossless compression method that is particularly efficient for compressing text and images with repetitive patterns. It replaces repetitive sequences with shorter codes.

9. Transform-Based Compression
10. Transform-based compression techniques, such as DCT and wavelet compression, are widely used in image compression due to their ability to achieve high compression ratios while maintaining acceptable image quality. We will now focus on these techniques in more detail.

## Discrete Cosine Transform (DCT) Compression

DCT is a mathematical transform used in image compression, most notably in the JPEG (Joint Photographic Experts Group) compression standard. It operates by converting an image from its spatial domain to its frequency domain. The DCT coefficients represent the image's frequency components, and by quantizing these coefficients, we can achieve compression.
1. DCT Process
• Break the image into small, non-overlapping blocks (e.g., 8x8 pixels).
• Apply the DCT to each block, resulting in a set of DCT coefficients.
• Quantize the DCT coefficients by dividing them by a quantization matrix.
• Zigzag scan and entropy encode the quantized coefficients to obtain a compressed image.
2. Quantization
3. Quantization is the key to DCT compression. It involves dividing the DCT coefficients by a set of quantization values. Higher quantization values lead to more compression but also more loss in image quality.

4. Compression Ratio vs. Image Quality
5. Adjusting the quantization matrix allows users to control the trade-off between compression ratio and image quality. Higher quantization values yield higher compression ratios but lower image quality.

## Wavelet Compression

Wavelet compression is another popular technique for image compression. It utilizes wavelet transforms to represent the image in a different way, achieving both spatial and frequency domain information simultaneously.
1. Wavelet Transform
• The image is subjected to a wavelet transform, which breaks it down into different frequency components at multiple scales.
• The wavelet transform produces coefficients for each scale and orientation, capturing both high-frequency and low-frequency details.
2. Thresholding and Quantization
3. Wavelet coefficients can be thresholded and quantized to reduce the number of coefficients while preserving essential image features. Thresholding allows for the elimination of insignificant coefficients.

4. Multiresolution Representation
5. Wavelet compression provides a multiresolution representation of the image, which can be selectively included in the compressed data. This feature is particularly useful for progressive image transmission.

## Employing MATLAB for Image Compression

MATLAB, a powerful computational tool, offers built-in functions and tools for image compression. Let's explore how MATLAB's functions can be utilized for DCT and wavelet compression:
1. MATLAB for DCT Compression:
• MATLAB provides functions like dct2 to perform 2D DCT on image blocks.
• Quantization and zigzag scanning can be easily implemented using MATLAB's matrix operations.
• MATLAB's image processing toolbox offers tools for entropy encoding and decoding.
2. MATLAB for Wavelet Compression:
• MATLAB includes functions for various wavelet transforms, such as wavedec for wavelet decomposition.
• Thresholding and quantization of wavelet coefficients can be implemented using MATLAB's array operations.
• Progressive image transmission can be achieved by selectively transmitting wavelet coefficients at different scales.

## Conclusion

In this theoretical discussion, we explored various image compression techniques, with a focus on MATLAB's built-in functions for DCT and wavelet compression. We discussed the differences between lossless and lossy compression, as well as common lossless techniques like RLE, Huffman coding, and LZW. DCT compression, widely used in JPEG, was explained in detail, emphasizing the quantization process's role in achieving compression. Wavelet compression, which captures both spatial and frequency information, was also covered. University students can use this theoretical foundation to solve assignments related to image compression. By understanding the principles of DCT and wavelet compression and how MATLAB's functions can be employed, students can gain a deeper insight into the field of image processing and apply this knowledge to practical tasks. Whether it's reducing the storage space of medical images or optimizing the transmission of multimedia content, image compression plays a crucial role in today's data-driven world, and MATLAB provides a valuable toolkit for tackling these challenges.