Digital Image Processing Lecture 21: Lossy Compression

Post on 12-Jan-2016

58 views 0 download

Tags:

description

Digital Image Processing Lecture 21: Lossy Compression. Prof. Charlene Tsai. Reminder …. The Thursday class (5/29) is moved to Monday (5/28) for next week. JPEG Algorithm. Lossy compression trades some acceptable data loss for greater rate of compression. - PowerPoint PPT Presentation

Transcript of Digital Image Processing Lecture 21: Lossy Compression

Digital Image Processing Lecture 21: Lossy

Compression

Prof. Charlene TsaiProf. Charlene Tsai

2

Reminder …

The Thursday class (5/29) is moved to Monday (5/28) for next week.

3

JPEG Algorithm

Lossy compression trades some acceptable data loss for greater rate of compression.

There are many available, but the most popular is the one developed by JPEG – transform coding.

Coding not done on pixel values, but on a transform.

4

Transform

Discrete Cosine Transform (DCT) Applying to 8x8 blocks, the forward and

inverse DCT are

DCT are real-valued, high information-packing capability, and separable.

16

12cos

16

12cos,

4,

7

0

7

0

vkujkjf

vCuCvuF

j k

16

12cos

16

12cos,,

7

0

7

0

vkujvCuCvuFjif

u v

5

Comparison with FFT

Given the following sequence

10 25 40 55 70 85 100 115 If using FFT, the inverse of the first 4 FFT

coefficients gives

49 41 56 57 71 70 85 90 If using DCT, the result is

11 23 41 56 69 84 102 114

6

JPEG Compression

For each 8x8 image block, perform the compression Subtracting 128 from each value Apply DCT Normalization by dividing by matrix Q (the lossy part)

Turning most of the elements zero Change the matrix into a vector by reading the

nonzero element in a zigzag fashion. O O O …

O O O …

O O O …

… … … …

7

(con’d)

The first element (DC coefficient) of the vector is encoded as the difference between itself and the DC of previous block. Keeps all values (except the very first one) small Compressed using RLE

Other values (AC coefficients) are compressed using Huffman coding

Rate of compression is controlled by scaling Q => more scaling, more compression

8

Decompression

Inverse the operations: Decode Huffman encoding and RLE Put the vector back to 8x8 matrix Multiply by Q Inverse DCT Shift back by 128

9

The Lossless Parts

Huffman Coding and RLE for AC and DC terms, respectively.

We’ll focus the discussion on the AC terms Each nonzero value x is assigned a category k

The number of preceding 0s (run). Values: 7 -1 10 0 2 1 0 0 2 4 0 1 0 -1 Category: 1 4 2 1 2 3 1 1 Run: 0 0 1 0 2 0 1 1

122 1 kk x

10

Huffman Code Table

Part of JPEG baseline standard See the handout for the code table and

application.

11

Wavelet Transform

For both FT and DCT, we assume so kind of periodicity in the image.

Wavelet Transform keeps the wave concept, but drop the eriodicity.

Wavelet is a little part of a wave

wave wavelet

12

What to do with a wavelet?

Given a wavelet function , we can Dilate it by applying a scaling factor to x.

e.g. would squash and would expand.

Translate by adding/subtracting a value from x. e.g. shift the wavelet 2 to the right, and shift 3 to the left.

Change it height by multiplying the function by a constant.

All together, we get

xwf

xwf 2 2xwf

2 xwf 3 xwf

cbxaw

13

Applications

Noise reduction Edge detection Compression

Adopted by JPEG2000

14

A Simple Wavelet Transform

All wavelet transform work by taking weighted averages of input values and providing extra information for inversion.

Here the example is: averaging of two values and differencing. If a and b are two numbers, we get average s and

difference d by:

sadba

s

;2

15

(cont)

Given a simple vector v of 8 elements, we create two new vectors v1 and v2 of 4 elements each: v1 containing the averages v2 containing the differences

DWT at 1 scale is: We can keep going for another 2 levels. Let’s go through the example in pg425 of the

handout. (available online)

211 ,vvd

16

Haar Wavelet

Simplest wavelet, defined as

Haar wavelet can be written in terms of a simpler pulse function

otherwise0

121 if1

210 if1

x

x

x

otherwise0

10 if1 xx

17

Mother wavelet Father wavelet (scaling function)

122 xxx 122 xxx

18

Discrete Wavelet transform

The forward transformation

The inverse is

xxfM

kjW

xxfM

kjW

kjx

kjx

,

,0

1,

1,

0

xkjWM

xkjWM

xf kjjj

kjk

,,0

0

0,

1,

1

19

are called the filter coefficients (or taps) A wavelet is completely specified by its taps.

ih

20

Back to Haar Wavelet

where values are what we have in a DWT matrix Let’s look at the example in pg 429.

122

122

01

10

xhxhx

xhxhx

2110 hh

ih

Low pass

High pass

21

Two-Dimensional Wavelet (STD)

22

Two-Dimensional Wavelet (non-STD)

23

Example: one scale

24

Image Compression

For a given value d, set all values x in the DWT for which to 0.dx

25

High-Pass Filtering

Except from the top left image, the rest is high-frequency information.

If setting the top-left corner to 0, the result after inversion would be a high-pass filtered image.

26

Denoising

Very similar to compression by using thresholding.

An example is given in pg446.