240-373: Chapter 12: Image Compression 1 Montri Karnjanadecha [email protected] . ac.th/~montri...
-
Upload
geoffrey-fowler -
Category
Documents
-
view
220 -
download
0
Transcript of 240-373: Chapter 12: Image Compression 1 Montri Karnjanadecha [email protected] . ac.th/~montri...
240-373: Chapter 12: Image Compression
1
Montri [email protected]://fivedots.coe.psu.ac.th/~montri
240-373 Image Processing
240-373: Chapter 12: Image Compression
2
Chapter 12
Image Compression
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
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
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
240-373: Chapter 12: Image Compression
6
Statistical Compression
next most frequently used colors1000
100110101011
the rest11000
11001110101101111100111011111011111
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
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
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
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
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.
240-373: Chapter 12: Image Compression
12
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
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
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
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
240-373: Chapter 12: Image Compression
17
240-373: Chapter 12: Image Compression
18
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
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
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
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
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
240-373: Chapter 12: Image Compression
24
Quantizing compression example
histogram:0 **
1 **
2 *********
3 ***********
4 *********
5 ****
6 *****
7 ********
8 *********
9 ******
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 ******
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
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
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
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
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
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
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.
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”
240-373: Chapter 12: Image Compression
34
Motion Prediction
nm
p
p
Latest frame Previous frame
Search area
One of many blocks
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
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.
240-373: Chapter 12: Image Compression
37
Quadtrees
2
1 2
1 2 1
240-373: Chapter 12: Image Compression
38
Standard Image File Format
– .BMP– .PIC– .PCX – .PIG– .TIFF – .GIF– .JPG– etc.
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