240-373: Chapter 12: Image Compression 1 Montri Karnjanadecha [email protected] . ac.th/~montri...

39
240-373: Chapter 12: Image 1 Montri Karnjanade cha [email protected] .th http://fivedots.c oe.psu.ac.th/~mon tri 240-373 Image Processing

Transcript of 240-373: Chapter 12: Image Compression 1 Montri Karnjanadecha [email protected] . ac.th/~montri...

Page 1: 240-373: Chapter 12: Image Compression 1 Montri Karnjanadecha montri@coe.psu.ac.th . ac.th/~montri 240-373 Image Processing.

240-373: Chapter 12: Image Compression

1

Montri [email protected]://fivedots.coe.psu.ac.th/~montri

240-373 Image Processing

Page 2: 240-373: Chapter 12: Image Compression 1 Montri Karnjanadecha montri@coe.psu.ac.th . ac.th/~montri 240-373 Image Processing.

240-373: Chapter 12: Image Compression

2

Chapter 12

Image Compression

Page 3: 240-373: Chapter 12: Image Compression 1 Montri Karnjanadecha montri@coe.psu.ac.th . ac.th/~montri 240-373 Image Processing.

240-373: Chapter 12: Image Compression

3

Image Compression

• Purposes– To minimize storage space– To maximize transfer speed– To minimize hardware costs

• Requirements– Speedy operation (compression and unpacking)– Significantly reduction in required memory– No significant loss of quality– Format of output suitable for transfer and

storage

Page 4: 240-373: Chapter 12: Image Compression 1 Montri Karnjanadecha montri@coe.psu.ac.th . ac.th/~montri 240-373 Image Processing.

240-373: Chapter 12: Image Compression

4

Image Compression

• Types– -- Statistical compression based on pixels in w

hole image– -- Spatial compression based on the spatial rel

ationship of pixels of similar type– -- Quantizing compression reducing number of

gray levels and resolution– -- Fractal compression based on fractal gener

ating functions

Page 5: 240-373: Chapter 12: Image Compression 1 Montri Karnjanadecha montri@coe.psu.ac.th . ac.th/~montri 240-373 Image Processing.

240-373: Chapter 12: Image Compression

5

Statistical Compression

• The Huffman Coding– Based on the assumption that the histogram

is not normally flat– If 4 of 16 colors are used 60% of the time, 4

more for a further 30% and the rest for 10%, then we could use the following scheme:

ffff ffffffffff ffff ffffff000

001

010

011

Page 6: 240-373: Chapter 12: Image Compression 1 Montri Karnjanadecha montri@coe.psu.ac.th . ac.th/~montri 240-373 Image Processing.

240-373: Chapter 12: Image Compression

6

Statistical Compression

next most frequently used colors1000

100110101011

the rest11000

11001110101101111100111011111011111

Page 7: 240-373: Chapter 12: Image Compression 1 Montri Karnjanadecha montri@coe.psu.ac.th . ac.th/~montri 240-373 Image Processing.

240-373: Chapter 12: Image Compression

7

Statistical Compression

This means that the length (for an 640x480 image =150K) is reduced to

[(0.6*3)+(0.3*4)+(0.1*5)] * 640 * 480 = 131.25K

Page 8: 240-373: Chapter 12: Image Compression 1 Montri Karnjanadecha montri@coe.psu.ac.th . ac.th/~montri 240-373 Image Processing.

240-373: Chapter 12: Image Compression

8

– The average length has been reduced from 4 bits to 3.5 bits

– It can be shown that with M gray levels, each with probability of P0, P1, .. PM-1 , The number of bits required to code them is at least

i

M

ii pp 2

1

0

log

Page 9: 240-373: Chapter 12: Image Compression 1 Montri Karnjanadecha montri@coe.psu.ac.th . ac.th/~montri 240-373 Image Processing.

240-373: Chapter 12: Image Compression

9

Huffman Coding

Technique 1: The Huffman CodeUSE: To reduce the space that an image

uses on disk or in transitOPERATION:

– Order the gray levels according to their frequency of use, most occurrence first

– Combine the two least used gray levels into one group, combine their frequencies and reorder the gray levels

Page 10: 240-373: Chapter 12: Image Compression 1 Montri Karnjanadecha montri@coe.psu.ac.th . ac.th/~montri 240-373 Image Processing.

240-373: Chapter 12: Image Compression

10

Huffman Coding

OPERATION: (cont’d)– ffffffff ff ff ffff fffff ffff ff f ffff ffffff

are left– f ff ffffffff f 0 - to one of these gray level gr

oups and a 1 ff fff fffff– f fff ffff fffffff fff fffffffff ff ffff f f

ere two groups have been combined to form a new, larger, group which is currently coded

ff ffff’– Code one of the smaller groups as ccc0 and t

ff fffff ff ccc1

Page 11: 240-373: Chapter 12: Image Compression 1 Montri Karnjanadecha montri@coe.psu.ac.th . ac.th/~montri 240-373 Image Processing.

240-373: Chapter 12: Image Compression

11

Huffman coding example

• Example: For a nine-color system, we obtain the following coding:0 100000 5 011 10001 6 0002 101 7 10013 001 8 1000015 11

Storage has improved from 19000*3 bits (57000) to 51910 bits.

Page 12: 240-373: Chapter 12: Image Compression 1 Montri Karnjanadecha montri@coe.psu.ac.th . ac.th/~montri 240-373 Image Processing.

240-373: Chapter 12: Image Compression

12

Page 13: 240-373: Chapter 12: Image Compression 1 Montri Karnjanadecha montri@coe.psu.ac.th . ac.th/~montri 240-373 Image Processing.

240-373: Chapter 12: Image Compression

13

Run Length Encoding

Technique 2: Run length encodingUSE: To reduce the space required by an

imageOPERATION:

– The run is encoded by creating pairs of values: the first representing the gray level and the second how many of them are in the run

Page 14: 240-373: Chapter 12: Image Compression 1 Montri Karnjanadecha montri@coe.psu.ac.th . ac.th/~montri 240-373 Image Processing.

240-373: Chapter 12: Image Compression

14

Run Length Encoding

Example: image

giving a sequence: 1 2 1 1 1 1 1 3 4 4 4 4 1 1 3 3 3 5 1 1 1 1 3 3

(24 values)with run length encoding

(1,1) (2,1) (1,5) (3,1) (4,4) (1,2) (3,3) (5,1) (1,4) (3,2)this would give: 1 1 2 1 1 5 3 1 4 4 1 2 3 3 5 1 1 4 3 2

(20 values)

331111

533311

444431

111121

Page 15: 240-373: Chapter 12: Image Compression 1 Montri Karnjanadecha montri@coe.psu.ac.th . ac.th/~montri 240-373 Image Processing.

240-373: Chapter 12: Image Compression

15

Run Length Encoding

• Notes– Huffman coding can be performed after Run

length encoding– It might be possible to implement the

Huffman code only on the run lengths

Page 16: 240-373: Chapter 12: Image Compression 1 Montri Karnjanadecha montri@coe.psu.ac.th . ac.th/~montri 240-373 Image Processing.

240-373: Chapter 12: Image Compression

16

Run Length Encoding

• Contour Coding– Reducing the areas of pixels of the same

gray levels to a set of contours that bound those areas

– Consider the following image

Page 17: 240-373: Chapter 12: Image Compression 1 Montri Karnjanadecha montri@coe.psu.ac.th . ac.th/~montri 240-373 Image Processing.

240-373: Chapter 12: Image Compression

17

Page 18: 240-373: Chapter 12: Image Compression 1 Montri Karnjanadecha montri@coe.psu.ac.th . ac.th/~montri 240-373 Image Processing.

240-373: Chapter 12: Image Compression

18

Page 19: 240-373: Chapter 12: Image Compression 1 Montri Karnjanadecha montri@coe.psu.ac.th . ac.th/~montri 240-373 Image Processing.

240-373: Chapter 12: Image Compression

19

Changing the Domain

Technique 3: Compression using the frequency domain

USE: To reduce space required for an image

OPERATION:– Convert the image to the frequency domain

using FFT or FHT– Threshold this new image removing all

values less than k

Page 20: 240-373: Chapter 12: Image Compression 1 Montri Karnjanadecha montri@coe.psu.ac.th . ac.th/~montri 240-373 Image Processing.

240-373: Chapter 12: Image Compression

20

Changing the Domain

OPERATION: (cont’d)

– If what is left is significantly less than the ori ginal image, using one of the spatial region t

echniques, store the rest of the image

– If it is not significantly less, increase k-- f fff information will be lost

Page 21: 240-373: Chapter 12: Image Compression 1 Montri Karnjanadecha montri@coe.psu.ac.th . ac.th/~montri 240-373 Image Processing.

240-373: Chapter 12: Image Compression

21

Quantizing Compression

• Involves reducing number of gray levels• The easiest way is to divide all the gray l

evels by a factor

4Technique : Quantizing compression USE: To reduce storage space by limiting n

umber of colors or gray levels

Page 22: 240-373: Chapter 12: Image Compression 1 Montri Karnjanadecha montri@coe.psu.ac.th . ac.th/~montri 240-373 Image Processing.

240-373: Chapter 12: Image Compression

22

Quantizing Compression

OPERATION:– Let P be the number of pixels in an original image to b

e compressed to N gray levels– Create a histogram of the gray level in the original im

age– Identify N ranges in the histogram such that approxim

ately P/N lie in each range– Identify the median (the gray level with 50% of the pix

els in the range on one side of it and 50% on the other ) gray level in each range. These will be the N gray lev

els used to quantize the image– Store the N gray levels and allocate to each pixel a gr

oup (0 to n -1) according to which range it lies in

Page 23: 240-373: Chapter 12: Image Compression 1 Montri Karnjanadecha montri@coe.psu.ac.th . ac.th/~montri 240-373 Image Processing.

240-373: Chapter 12: Image Compression

23

Quantizing compression example

• Consider the following image

2which is to be compressed to bits/pixel, i.e. N =4

3821745983402

0356126727493

9472832947483

3748283674583

7395836284692

Page 24: 240-373: Chapter 12: Image Compression 1 Montri Karnjanadecha montri@coe.psu.ac.th . ac.th/~montri 240-373 Image Processing.

240-373: Chapter 12: Image Compression

24

Quantizing compression example

histogram:0 **

1 **

2 *********

3 ***********

4 *********

5 ****

6 *****

7 ********

8 *********

9 ******

Page 25: 240-373: Chapter 12: Image Compression 1 Montri Karnjanadecha montri@coe.psu.ac.th . ac.th/~montri 240-373 Image Processing.

240-373: Chapter 12: Image Compression

25

Quantizing compression example

65 4 16pixels, down to gray levels = ffffff fff ffff fffff ffff.2 4 . :

0 **

13 1 **

2 *********

3 ***********

20 4 *********

5 ****

17 6 *****

7 ********

8 *********

15 9 ******

Page 26: 240-373: Chapter 12: Image Compression 1 Montri Karnjanadecha montri@coe.psu.ac.th . ac.th/~montri 240-373 Image Processing.

240-373: Chapter 12: Image Compression

26

Example: Cont’d

With median gray levels 2,3,6 and 8, the new image become:

Note that this technique is similar to the histogram equalization technique.

0300212331100

0122002202131

3120310312131

1213031221231

2132312031230

Page 27: 240-373: Chapter 12: Image Compression 1 Montri Karnjanadecha montri@coe.psu.ac.th . ac.th/~montri 240-373 Image Processing.

240-373: Chapter 12: Image Compression

27

Fractal Compression

• Fractal Compression– Yields 10000:1 compression ratio– Can also yield 1000000:1 compression

ration with conventional algorithm added– Based on very simple functions to generate

(in multi-dimensional space) highly complex and totally predictable pattern

– Fractal graphics workstations: a 640x480 VGA image requires 5800 bytes of storage

Page 28: 240-373: Chapter 12: Image Compression 1 Montri Karnjanadecha montri@coe.psu.ac.th . ac.th/~montri 240-373 Image Processing.

240-373: Chapter 12: Image Compression

28

Real-Time Image Transmission

• Compressing and sending a sequence of images in real-time

• Most of real-time vision systems send many images of the same type before changing the image to a new scene

• For example, most television program will dwell on a scene for at least 5 seconds

Page 29: 240-373: Chapter 12: Image Compression 1 Montri Karnjanadecha montri@coe.psu.ac.th . ac.th/~montri 240-373 Image Processing.

240-373: Chapter 12: Image Compression

29

Real-Time Image Transmission

• Approach: the full first frame is sent, then only the differences of the next frames will be sent

• Run length encoding or simple vector encoding can be used for data reduction

• Example

3 bits/pixel x 48 pixels = 144 bits/image

11122211

11444121

11444112

11444211

11211221

12212211

11122211

11244421

11144412

11144411

11211221

12212211

Page 30: 240-373: Chapter 12: Image Compression 1 Montri Karnjanadecha montri@coe.psu.ac.th . ac.th/~montri 240-373 Image Processing.

240-373: Chapter 12: Image Compression

30

Example (cont’d)If the first frame is sent, then the differences

(mod 8) are now:

vector encoded: (2,2)=2, (2,5)=5, (3,2)=3, (3,5)=5, (4,2)=3,

(4,5)=6 6 vectors, 6 bits/position, 4 bits/difference = 60

bits

00000000

00600300

00500300

00500200

00000000

00000000

Page 31: 240-373: Chapter 12: Image Compression 1 Montri Karnjanadecha montri@coe.psu.ac.th . ac.th/~montri 240-373 Image Processing.

240-373: Chapter 12: Image Compression

31

Example (cont’d)

Modified run length encoded: 18 2 2 2 5 4 3 2 5 4 3 2 6 10 6 bits/0 count, 4 bits/difference = 66 bits

• Difficulties arise when the scene does change, then the information may be too much to be transmitted in one frame time

• Solution: The receiver has a series of buffers for images to be displayed. The differences image must take less than the minimum ‘uncompressed’ frame time

Page 32: 240-373: Chapter 12: Image Compression 1 Montri Karnjanadecha montri@coe.psu.ac.th . ac.th/~montri 240-373 Image Processing.

240-373: Chapter 12: Image Compression

32

Motion Prediction

• The image may still have the same constituent parts but they may have all shifted in one direction

Technique 5: Block matching for motion prediction

USE: Saving space by estimating what motion has occurred between past and present images, then only saving the changes.

Page 33: 240-373: Chapter 12: Image Compression 1 Montri Karnjanadecha montri@coe.psu.ac.th . ac.th/~montri 240-373 Image Processing.

240-373: Chapter 12: Image Compression

33

Motion Prediction

OPERATION:1. Tile off the latest frame into blocks2. Each of these blocks is then compared

with blocks of the same size from the previous frame that are near in position to the block on the latest frame.

3. This has to be done for all blocks in the latest frame. Then the best match (and the corresponding predicted movement vector) is determined. This is called “ full-search block matching”

Page 34: 240-373: Chapter 12: Image Compression 1 Montri Karnjanadecha montri@coe.psu.ac.th . ac.th/~montri 240-373 Image Processing.

240-373: Chapter 12: Image Compression

34

Motion Prediction

nm

p

p

Latest frame Previous frame

Search area

One of many blocks

Page 35: 240-373: Chapter 12: Image Compression 1 Montri Karnjanadecha montri@coe.psu.ac.th . ac.th/~montri 240-373 Image Processing.

240-373: Chapter 12: Image Compression

35

Quadtrees

• A quadtree is a recursive segmenting of an image into four parts

• A suitable compression method for an im age that has large area of the same color

ed pixels and rectangular in character

Page 36: 240-373: Chapter 12: Image Compression 1 Montri Karnjanadecha montri@coe.psu.ac.th . ac.th/~montri 240-373 Image Processing.

240-373: Chapter 12: Image Compression

36

Quadtrees

• Operation:– the original image is cut into 4 equal quarter images and theses are cut into four, and

so on…– consider each quarter image, break the image that has more than one color (non-

homogeneous) and combine similar quarter– build a tree structure to store sub-images relationship

2

1 2

1 2 1

• Image standard– .BMP, .PIC, .PCX, .PIG, .TIFF, .GIF, .JPG, etc.

Page 37: 240-373: Chapter 12: Image Compression 1 Montri Karnjanadecha montri@coe.psu.ac.th . ac.th/~montri 240-373 Image Processing.

240-373: Chapter 12: Image Compression

37

Quadtrees

2

1 2

1 2 1

Page 38: 240-373: Chapter 12: Image Compression 1 Montri Karnjanadecha montri@coe.psu.ac.th . ac.th/~montri 240-373 Image Processing.

240-373: Chapter 12: Image Compression

38

Standard Image File Format

– .BMP– .PIC– .PCX – .PIG– .TIFF – .GIF– .JPG– etc.

Page 39: 240-373: Chapter 12: Image Compression 1 Montri Karnjanadecha montri@coe.psu.ac.th . ac.th/~montri 240-373 Image Processing.

240-373: Chapter 12: Image Compression

39

Image Compression Exercise

• Compare the compression of the following image using (a) Huffman coding (b) run length coding. The image has a gray level range of 0-7.

111111111111

232225111111

222225551111

233225555511

322555555111

222255551111