Wavelet Transform CSE 490 G Introduction to Data Compression · CSE 490 G Introduction to Data...

11
1 CSE 490 G Introduction to Data Compression Winter 2006 Wavelet Transform Coding PACW CSE 490g - Lecture 12 - Winter 2006 2 Wavelet Transform Wavelet Transform A family of transformations that filters the data into low resolution data plus detail data. L L H H detail subbands low pass filter high pass filter image wavelet transformed image CSE 490g - Lecture 12 - Winter 2006 3 Wavelet Transformed Barbara (Enhanced) Detail subbands Low resolution subband CSE 490g - Lecture 12 - Winter 2006 4 Wavelet Transformed Barbara (Actual) most of the details are small so they are very dark. CSE 490g - Lecture 12 - Winter 2006 5 Wavelet Transform Compression wavelet transform image (pixels) wavelet coding wavelet decoding inverse wavelet transform transformed image (coefficients) bit stream Encoder Decoder distorted image transformed image (approx coefficients) Wavelet coder transmits wavelet transformed image in bit plane order with the most significant bits first. CSE 490g - Lecture 12 - Winter 2006 6 Bit Planes of Coefficients 0 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 1 1 . . . + - + + + sign plane 1 2 3 4 . . . Coefficients are normalized between –1 and 1

Transcript of Wavelet Transform CSE 490 G Introduction to Data Compression · CSE 490 G Introduction to Data...

Page 1: Wavelet Transform CSE 490 G Introduction to Data Compression · CSE 490 G Introduction to Data Compression Winter 2006 Wavelet Transform Coding PACW CSE 490g -Lecture 12 -Winter 2006

1

CSE 490 GIntroduction to Data Compression

Winter 2006

Wavelet Transform CodingPACW

CSE 490g - Lecture 12 - Winter 2006 2

Wavelet Transform

• Wavelet Transform– A family of transformations that filters the data into

low resolution data plus detail data.

L L

H H

detail subbands

low pass filter

high pass filter

imagewavelet transformed image

CSE 490g - Lecture 12 - Winter 2006 3

Wavelet Transformed Barbara (Enhanced)

Detailsubbands

Lowresolutionsubband

CSE 490g - Lecture 12 - Winter 2006 4

Wavelet Transformed Barbara(Actual)

most of thedetails are smallso they are very dark.

CSE 490g - Lecture 12 - Winter 2006 5

Wavelet Transform Compression

wavelettransform

image(pixels) wavelet

coding

waveletdecoding

inversewavelet

transform

transformed image (coefficients)

bitstream

Encoder

Decoder

distortedimage

transformed image(approx coefficients)

Wavelet coder transmits wavelet transformed image in bit planeorder with the most significant bits first.

CSE 490g - Lecture 12 - Winter 2006 6

Bit Planes of Coefficients

0 0 0 0 1

0 1 0 0 0

1 0 1 0 0

0 0 0 1 1

.

.

.

+ - + + +

sign plane

1

2

3

4...

Coefficients are normalized between –1 and 1

Page 2: Wavelet Transform CSE 490 G Introduction to Data Compression · CSE 490 G Introduction to Data Compression Winter 2006 Wavelet Transform Coding PACW CSE 490g -Lecture 12 -Winter 2006

2

CSE 490g - Lecture 12 - Winter 2006 7

Why Wavelet Compression Works

• Wavelet coefficients are transmitted in bit-plane order.– In most significant bit planes most coefficients are 0 so they

can be coded efficiently.– Only some of the bit planes are transmitted. This is where

fidelity is lost when compression is gained.

• Natural progressive transmission

...compressed bit planes

truncated compressed bit planes

CSE 490g - Lecture 12 - Winter 2006 8

Rate-Fidelity Curve

20222426283032343638

0.02

0.13

0.23

0.33

0.42

0.52

0.65

0.73

0.83

0.92

bits per pixel

PS

NR

SPIHT coded Barbara

More bit planes of the wavelet transformed image thatis sent the higher the fidelity.

CSE 490g - Lecture 12 - Winter 2006 9

Wavelet Coding Methods• EZW - Shapiro, 1993

– Embedded Zerotree coding.

• SPIHT - Said and Pearlman, 1996– Set Partitioning in Hierarchical Trees coding. Also uses

“zerotrees”.

• ECECOW - Wu, 1997– Uses arithmetic coding with context.

• EBCOT – Taubman, 2000– Uses arithmetic coding with different context.

• JPEG 2000 – new standard based largely on EBCOT• GTW – Hong, Ladner 2000

– Uses group testing which is closely related to Golomb codes

• PACW - Ladner, Askew, Barney 2003– Like GTW but uses arithmetic coding

CSE 490g - Lecture 12 - Winter 2006 10

Wavelet Transform

wavelettransform

image(pixels) wavelet

coding

waveletdecoding

inversewavelet

transform

transformed image (coefficients)

bitstream

Encoder

Decoder

distortedimage

transformed image(approx coefficients)

A wavelet transform decomposes the image into a low resolutionversion and details. The details are typically very small so they canbe coded in very few bits.

CSE 490g - Lecture 12 - Winter 2006 11

One-Dimensional Average Transform (1)

x

y

x

y

How do we representtwo data points at lower resolution?

(x+y)/2 (y-x)/2

average detail

CSE 490g - Lecture 12 - Winter 2006 12

One-Dimensional Average Transform (2)

x

y

(y-x)/2 = H

(x+y)/2 = L

low pass filter

high passfilter

L

H

x

y

Transform Inverse Transform

x = L - Hy = L + H

detail

Page 3: Wavelet Transform CSE 490 G Introduction to Data Compression · CSE 490 G Introduction to Data Compression Winter 2006 Wavelet Transform Coding PACW CSE 490g -Lecture 12 -Winter 2006

3

CSE 490g - Lecture 12 - Winter 2006 13

One-Dimensional Average Transform (3)

L

H

Low Resolution Version

DetailNote that the low resolutionversion and the detail togetherhave the same number of values as the original.

CSE 490g - Lecture 12 - Winter 2006 14

One-Dimensional Average Transform (4)

A B

L = B[0..n/2-1]H = B[n/2..n-1]

2n

i01],A[2i21

A[2i]21

i]B[n/2

2n

i01],A[2i21

A[2i]21

B[i]

<≤++−=+

<≤++=

L H

CSE 490g - Lecture 12 - Winter 2006 15

One-Dimensional Average Inverse Transform

B

2n

i0i],B[n/2B[i]1]A[2i

2n

i0i],B[n/2B[i]A[2i]

<≤++=+

<≤+−=

L H A

CSE 490g - Lecture 12 - Winter 2006 16

Two Dimensional Transform (1)

L H

LL

HL HH

LHhorizontaltransform

verticaltransform

Transform each row

Transform each columnin L and H

3 detailsubbands

low resolutionsubband

CSE 490g - Lecture 12 - Winter 2006 17

Two Dimensional Transform (1)

LL

HL HH

LH horizontaltransform

verticaltransform

Transform each row in LL

Transform each column inLLL and HLL

HL HH

LHHLLLLL

HL HH

LHHLLL HHLL

LLLL LHLL

2 levels of transform gives 7 subbands.k levels of transform gives 3k + 1 subbands.

CSE 490g - Lecture 12 - Winter 2006 18

Two Dimensional Average Transform

horizontaltransform

vertical transform

negative value

Page 4: Wavelet Transform CSE 490 G Introduction to Data Compression · CSE 490 G Introduction to Data Compression Winter 2006 Wavelet Transform Coding PACW CSE 490g -Lecture 12 -Winter 2006

4

CSE 490g - Lecture 12 - Winter 2006 19

Wavelet Transformed Image

2 levels of wavelet transform

1 low resolutionsubband

6 detail subbands

CSE 490g - Lecture 12 - Winter 2006 20

Wavelet Transform Details

• Conversion to reals.– Convert gray scale to floating point.– Convert color to Y U V and then convert each to

band to floating point. Compress separately.

• After several levels (3-8) of transform we have a matrix of floating point numbers called the wavelet transformed image (coefficients).

CSE 490g - Lecture 12 - Winter 2006 21

Wavelet Transforms

• Technically wavelet transforms are special kinds of linear transformations. Easiest to think of them as filters.– The filters depend only on a constant number of values.

(bounded support)– Preserve energy (norm of the pixels = norm of the

coefficients)– Inverse filters also have bounded support.

• Well-known wavelet transforms– Haar – like the average but orthogonal to preserve energy.

Not used in practice.– Daubechies 9/7 – biorthogonal (inverse is not the

transpose). Most commonly used in practice.

CSE 490g - Lecture 12 - Winter 2006 22

Haar Filters

low pass = high pass =

2n

i01],A[2i2

1A[2i]

2

1i]B[n/2

2n

i01],A[2i2

1A[2i]

2

1B[i]

<≤++−=+

<≤++=low pass

high pass

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

0 1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

0 1

2

1,

2

1

2

1,

2

1−

Want the sum of squares of the filter coefficients = 1

CSE 490g - Lecture 12 - Winter 2006 23

Daubechies 9/7 Filters

-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

-4 -3 -2 -1 0 1 2 3 4

low pass filter

-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

-3 -2 -1 0 1 2 3

high pass filter

2n

i0j],i A[2gi]B[n/2

2n

i0j],i A[2hB[i]

3

3jj

4

4jj

<≤+=+

<≤+=

−=

−=

low pass

high pass

hjgj

reflection used near boundariesCSE 490g - Lecture 12 - Winter 2006 24

Linear Time Complexity of 2D Wavelet Transform

• Let n = number of pixels and let b be the number of coefficients in the filters.

• One level of transform takes time – O(bn)

• k levels of transform takes time proportional to– bn + bn/4 + ... + bn/4k-1 < (4/3)bn.

• The wavelet transform is linear time when the filters have constant size.– The point of wavelets is to use constant size filters

unlike many other transforms.

Page 5: Wavelet Transform CSE 490 G Introduction to Data Compression · CSE 490 G Introduction to Data Compression Winter 2006 Wavelet Transform Coding PACW CSE 490g -Lecture 12 -Winter 2006

5

CSE 490g - Lecture 12 - Winter 2006 25

Wavelet Transform

wavelettransform

image(pixels) wavelet

coding

waveletdecoding

inversewavelet

transform

transformed image (coefficients)

bitstream

Encoder

Decoder

distortedimage

transformed image(approx coefficients)

Wavelet coder transmits wavelet transformed image in bit planeorder with the most significant bits first.

CSE 490g - Lecture 12 - Winter 2006 26

Bit-Plane Coding

• Normalize the coefficients to be between –1 and 1

• Transmit one bit-plane at a time• For each bit-plane

– Significance pass: Find the newly significant coefficients, transmit their signs.

– Refinement pass: transmit the bits of the known significant coefficients.

CSE 490g - Lecture 12 - Winter 2006 27

Divide into Bit-Planes

Sign Plane

+0010

+0001

+0101

-0011

-1000

+0111

Coefficients1

2

...

CSE 490g - Lecture 12 - Winter 2006 28

Significant Coefficients

0

10

20

30

40

50

60

70

80

90

magnitude

coefficients

bit-plane 1 threshold

CSE 490g - Lecture 12 - Winter 2006 29

Significant Coefficients

0

10

20

30

40

50

60

70

80

90

coefficients

bit-plane 2 threshold

magnitude

CSE 490g - Lecture 12 - Winter 2006 30

Coefficient List

refinement bits

Significance & Refinement Passes• Code a bit-plane in two

passes– Significance pass

• codes previously insignificant coefficients

• also codes sign bit– Refinement pass

• refines values for previously significant coefficients

• Main idea: – Significance-pass bits likely to

be 0;– Refinement-pass bit are not

# value

:: Bit-plane 3

000010100101

001011101101

010010011111

101101110101

000000100101

000100111101

000000010110

000001001001

001011011110

010010010110

10

9

8

7

6

5

4

3

2

1

Page 6: Wavelet Transform CSE 490 G Introduction to Data Compression · CSE 490 G Introduction to Data Compression Winter 2006 Wavelet Transform Coding PACW CSE 490g -Lecture 12 -Winter 2006

6

CSE 490g - Lecture 12 - Winter 2006 31

bit plane1

bpp.0014

PSNR15.3

Compressedsize

CSE 490g - Lecture 12 - Winter 2006 32

bit planes1 – 2

bpp.0033

PSNR16.8

Compressedsize

CSE 490g - Lecture 12 - Winter 2006 33

bit planes1 – 3

bpp.0072

PSNR18.8

Compressedsize

CSE 490g - Lecture 12 - Winter 2006 34

bit planes1 – 4

bpp.015

533 : 1

PSNR20.5

Compressedsize

CSE 490g - Lecture 12 - Winter 2006 35

bit planes1 – 5

bpp.035

ratio229 : 1

PSNR22.2

Compressedsize

CSE 490g - Lecture 12 - Winter 2006 36

bit planes1 – 6

bpp.118

ratio68 : 1

PSNR24.8

Compressedsize

Page 7: Wavelet Transform CSE 490 G Introduction to Data Compression · CSE 490 G Introduction to Data Compression Winter 2006 Wavelet Transform Coding PACW CSE 490g -Lecture 12 -Winter 2006

7

CSE 490g - Lecture 12 - Winter 2006 37

bit planes1 – 7

bpp.303

ratio26 : 1

PSNR28.7

Compressedsize

CSE 490g - Lecture 12 - Winter 2006 38

bit planes1 – 8

bpp.619

ratio13 : 1

PSNR32.9

Compressedsize

CSE 490g - Lecture 12 - Winter 2006 39

bit planes1 – 9

bpp1.116

ratio7 : 1

PSNR37.5

CSE 490g - Lecture 12 - Winter 2006 40

PACW

• A simple image coder based on– Bit-plane coding

• Significance pass• Refinement pass

– Arithmetic coding– Careful selection of contexts based on statistical

studies

• Implemented by undergraduates AmandaAskew and Dane Barney in Summer 2003.

CSE 490g - Lecture 12 - Winter 2006 41

PACW Block Diagram

wavelettransform

image(pixels) bit plane

encodingusing AC

transformed image (coefficients)

bitstream

Encoder

distortedimage

Divide intobit-planes

subtractLL Avg

bit planedecodingusing AC

inversewavelet

transform

transformed image (approx coefficients)

Decoder

Recombinebit-planes

addLL Avg

Bit-planes

Bit-planes Interpo-

late

CSE 490g - Lecture 12 - Winter 2006 42

Arithmetic Coding in PACW

• Performed on each individual bit plane. – Alphabet is

�={0,1}

– Signs are coded as needed

• Uses integer implementation with 32-bit integers. (Initialize L = 0, R = 232-1)

• Uses scaling and adaptation.• Uses contexts based on statistical studies.

Page 8: Wavelet Transform CSE 490 G Introduction to Data Compression · CSE 490 G Introduction to Data Compression Winter 2006 Wavelet Transform Coding PACW CSE 490g -Lecture 12 -Winter 2006

8

CSE 490g - Lecture 12 - Winter 2006 43

Encoding the Bit-Planes

• Code most significant bit-planes first

• Significance pass for a bit-plane– First code those coefficients that were insignificant

in the previous bit-plane.– Code these in a priority order.– If a coefficient becomes significant then code its

sign.

• Refinement pass for a bit-plane– Code the refinement bit for each coefficient that is

significant in a previous bit-plane

CSE 490g - Lecture 12 - Winter 2006 44

Decoding

• Emulate the encoder to find the bit planes.– The decoder know which bit-plane is being

decoded– Whether it is the significant or refinement pass– Which coefficient is being decoded.

• Interpolate to estimate the coefficients.

CSE 490g - Lecture 12 - Winter 2006 45

Contexts (per bit plane)

• Significance pass contexts: – Contexts based on

• Subband level• Number of significant neighbors

– Sign context • Refinement contexts

– 1st refinement bit is always 1 so no context needed– 2nd refinement bit has a context– All other refinement bits have a context

• Context Principles– Bits in a given context have a probability distribution– Bits in different contexts have different probability

distributions

CSE 490g - Lecture 12 - Winter 2006 46

3

2

10

Subband Level

• Image is divided into subbands until LL band (subband level 0) is less than 16x16

• Barbara image has 7 subband levels

CSE 490g - Lecture 12 - Winter 2006 47

Statistics for Subband Levels

8.7%504633482825

7.8%22269041900036

9.7%113886122684

11.7%2356831343

15.6%45928482

20.6%10482721

28.3%3641440

% significant# insignificant# significantSubband Level

Barbara (8bpp)

CSE 490g - Lecture 12 - Winter 2006 48

Significant Neighbor Metric

• Count # of significant neighbors– children count for at most 1– 0,1,2,3+

p a a a

a

a

a

a a

i i

c c

c c

p

a

i

c

parent

spatially adjacent

spatially identical

child

Neighbors of :

Page 9: Wavelet Transform CSE 490 G Introduction to Data Compression · CSE 490 G Introduction to Data Compression Winter 2006 Wavelet Transform Coding PACW CSE 490g -Lecture 12 -Winter 2006

9

CSE 490g - Lecture 12 - Winter 2006 49

Number of Significant Neighbors

48.8%91760875667

45.2%44225364826

41.1%39189273545

37.3%55841332444

27.7%78899302063

17.6%104252222762

5.9%210695133191

.2%225246848490

% significant# insignificant# significantSignificant neighbors

Barbara (8bpp)

CSE 490g - Lecture 12 - Winter 2006 50

Refinement Bit Context Statistics

49.6%130,100128,145Sign Bits

53.3%433,982475,941Other Refinement Bits

59.3%100,521146,2932nd Refinement Bits

% 0’s1’s0’s

• Barbara at 2bpp: 2nd Refinement bit % 0’s = 65.8%

Barbara (8bpp)

CSE 490g - Lecture 12 - Winter 2006 51

Context Details

• Significance pass contexts per bit-plane: – Max neighbors* num subband levels contexts– For Barbara: contexts for sig neighbor counts of 0 - 3 and subband

levels of 0-6 = 4*7 = 28 contexts– Index of a context.

• Max neighbors * subband level + num sig neighbors• Example num sig neighbors = 2, subband level = 3,

index = 4 * 3 + 2 = 14• Sign context

– 1 contexts• 2 Refinement contexts

– 1st refinement bit is always 1 not transmitted– 2nd refinement bit has a context– all other refinement bits have a context

• Number of contexts per bit-plane for Barbara = 28 + 1 +2 = 31

CSE 490g - Lecture 12 - Winter 2006 52

Priority Queue

• Used in significance pass to decide which coefficient to code next– Goal code coefficients most likely to become

significant

• All non-empty contexts are kept in a max heap

• Priority is determined by:– # sig coefficients coded / total coefficients coded

CSE 490g - Lecture 12 - Winter 2006 53

Reconstruction of Coefficients

• Coefficients are decoded to a certain number of bit planes– .101110XXXXX What should X’s be?– .101110000… < .101110XXXXX < .101110111… – .101110100000 is half-way

• Handled the same as SPIHT and GTW– if coefficient is still insignificant, do no interpolation– if newly significant, add on .38 to scale– if significant, add on .5 to scale

.A000… .A111…+.5+.38

2-k

.A100…

|A| = k

.A01100…… CSE 490g - Lecture 12 - Winter 2006 54

Original Barbara Image

Page 10: Wavelet Transform CSE 490 G Introduction to Data Compression · CSE 490 G Introduction to Data Compression Winter 2006 Wavelet Transform Coding PACW CSE 490g -Lecture 12 -Winter 2006

10

CSE 490g - Lecture 12 - Winter 2006 55

Barbara at .5 bpp (PSNR = 31.68)

CSE 490g - Lecture 12 - Winter 2006 56

Barbara at .25 bpp (PSNR = 27.75)

CSE 490g - Lecture 12 - Winter 2006 57

Barbara at .1 bpp (PSNR = 24.53)

CSE 490g - Lecture 12 - Winter 2006 58

Results

Compression of Barbara

24

25

26

27

28

29

30

31

32

33

34

35

36

37

0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0

Bit rate (bits/pixel)

PS

NR

(d

B)

JPEG2000

UWIC

GTW

SPIHT

JPEG

CSE 490g - Lecture 12 - Winter 2006 59

Results

Compression of Lena

29

30

31

32

33

34

35

36

37

38

39

40

41

0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0

Bit rate (bits/pixel)

PS

NR

(d

B)

PACWGTWSPIHTJPEG2000JPEG

CSE 490g - Lecture 12 - Winter 2006 60

ResultsCompression of RoughWall

23

24

25

26

27

28

29

30

31

32

33

0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0

Bit rate (bits/pixel)

PS

NR

(d

B)

UWIC

GTW

SPIHT

JPEG2000

JPEG

Page 11: Wavelet Transform CSE 490 G Introduction to Data Compression · CSE 490 G Introduction to Data Compression Winter 2006 Wavelet Transform Coding PACW CSE 490g -Lecture 12 -Winter 2006

11

CSE 490g - Lecture 12 - Winter 2006 61

PACW Notes

• PACW competitive with JPEG 2000, SPIHT-AC, and GTW.

• Developed in Java from scratch by two undergraduates, Dane Barney and Amanda Askew, in 2 months.

• Dane’s final version is slightly different than the one describe here. See his senior thesis.