Image Compression

 

Home
Image Fundamentals
Fourier Transforms
Fourier Properties
Point Operations
More Point Operations
Spatial Filters
Frequency Filters
Image Restoration
Frequency Filters
Homomorphic Filters
Color Models
Color Palettes
Color Processing
Image Geometry
Image Compression
Run Length Encoding
Lossy Compression

Apr 23, 2001

 

 

Standard n-bit binary coding: 000 001 010 011 100 101 110 111 (n = 3)

Gray code:

Compression ratio:

Redundancy:

Histogram:

Average bits per graylevel:

Entropy:                      (units are number of bits)

Redundancy:

· Coding : want to minimize average bits per graylevel
· Spatial : exploit correlation between neighboring pixel values
· Visual : human eye limitations as applied to image data

 

Compression can be either error-free or lossy.

Error-free compression:

Coding: Huffman, error-free and near optimal, but uses complex algorithm.

Example for image of 8 greylevels:

Graylevels

ni

hi

0

3441

0.21

1

4423

0.27

2

3932

0.24

3

1802

0.11

4

1311

0.08

5

819

0.05

6

492

0.03

7

164

0.01

nt

16384

 

This image has an entropy of 2.55 bits/pixel.

Applying Huffman coding to this data gives the coding representation:

Graylevel

Huffman coding

g1

01

g2

10

g0

11

g3

001

g4

0000

g5

00010

g6

000110

g7

000111

The average bits/pixel for the compressed image is 2.59, slightly larger than the entropy of 2.55.  Huffman coding compared to straight 3-bit binary coding has given a compression ratio of 1.16:1 or a 14% reduction in size.

Another example showing how to decode the Huffman representation:

Original Huffman Code: 110011000010000111
Greylevels: go,g3,g2,g5,g7.

Arithmetic coding of a binary sequence is covered in the text.

 

Run Length coding: If pixel values are correlated to their neighbors, then there will be sequences of the same value. Instead of coding all the repeat values, just encode the first value and then give the run length of the sequence.

Bit-plane coding: break image up into bit planes and apply run length coding to each plane.

face.gif (55895 bytes)

To get the bit planes of the above 8-bit grayscale image, AND the picture with the binary value corresponding to the desired plane; i.e., ANDing the image with 10000000 should give the 7th bit plane, ANDing the image with 00100000 should give the 5th bit plane, etc. After the AND operation, use the thresholding operation to make a binary image. It may also be necessary to invert the result.

 

 

Last modified on April 25, 2001