CSEP 590 Data Compression - University of Washington

29
CSEP 590 Data Compression Autumn 2007 EBCOT JPEG 2000

Transcript of CSEP 590 Data Compression - University of Washington

Page 1: CSEP 590 Data Compression - University of Washington

CSEP 590

Data CompressionAutumn 2007

EBCOT

JPEG 2000

Page 2: CSEP 590 Data Compression - University of Washington

CSEP 590 - Lecture 12 - Autumn 2007 2

History

• Embedded Block Coding with Optimized Truncation (EBCOT)– Taubman – journal paper 2000

– Algorithm goes back to 1998 or maybe earlier

– Basis of JPEG 2000

• Embedded– Prefixes of the encoded bit stream are legal

encodings at lower fidelity, like SPIHT and GTW

• Block coding– Entropy coding of blocks of bit planes, not block

transform coding like JPEG.

Page 3: CSEP 590 Data Compression - University of Washington

CSEP 590 - Lecture 12 - Autumn 2007 3

Features at a High Level

• SNR scalability (Signal to Noise Ratio)– Embedded code - The compressed bit stream can

be truncated to yield a smaller compressed image at lower fidelity

– Layered code – The bit stream can be partitioned into a base layer and enhancement layers. Each enhancement layer improves the fidelity of the image

• Resolution scalability– The lowest subband can be transmitted first yielding

a smaller image at high fidelity.

– Successive subbands can be transmitted to yield larger and larger images

Page 4: CSEP 590 Data Compression - University of Washington

CSEP 590 - Lecture 12 - Autumn 2007 4

Block Diagram of Encoder

wavelet

transform

Partition into

coding blocks

image

wavelet

transformed

image

blocked wavelet

transformed

image

truncate to achieve

desired bit rate and

maximum fidelity

bit-plane code each block independently

only

is transmitted

Page 5: CSEP 590 Data Compression - University of Washington

CSEP 590 - Lecture 12 - Autumn 2007 5

Extreme Case is Normal

wavelet

transform

Partition into

one block

image

wavelet

transformed

image

truncate to achieve

desired bit rate

bit-plane code

Page 6: CSEP 590 Data Compression - University of Washington

CSEP 590 - Lecture 12 - Autumn 2007 6

Layering

wavelet

transform

Partition into

coding blocks

image

wavelet

transformed

image

blocked wavelet

transformed

image

bit-plane code each block independently

create layers

layer 1

layer 2

layer 3

Page 7: CSEP 590 Data Compression - University of Washington

CSEP 590 - Lecture 12 - Autumn 2007 7

Resolution Ordering

wavelet

transform

1 2 5 6

3 4 7 8

9 10 13 14

12 15 16

Partition into

coding blocks

image

wavelet

transformed

image

blocked wavelet

transformed

image

11

resolution

partition

bit-plane code each block independently

1

2

34

.

.

.

1516

lowest resolution

next lowest

next,next lowest

Page 8: CSEP 590 Data Compression - University of Washington

CSEP 590 - Lecture 12 - Autumn 2007 8

Block Coding

• Assume we are in block k, and c(i,j) is a

coefficient in block k.

• Divide c(i,j) into its sign s(i,j) and m(i,j) its

magnitude.

• Quantize to where qk is

the quantization step for block k.

• Example: c(i,j) = -10, qk = 3.

– s(i,j) = 0

– v(i,j) = floor(-10/3 + .5) = -2

.5j)/qm(i,j)v(i, k +=

Page 9: CSEP 590 Data Compression - University of Washington

CSEP 590 - Lecture 12 - Autumn 2007 9

Bit Planes of Normalized Quantized

Coefficients

0 0 0 0 1

0 1 0 0 0

1 0 1 0 0

0 0 0 1 1

.

.

.

+ - + + +

block sign plane

1

2

3

4...

Quantized coefficients are normalized between –1 and 1

Page 10: CSEP 590 Data Compression - University of Washington

CSEP 590 - Lecture 12 - Autumn 2007 10

Bit-Plane Coding of Blocks

• Sub-block significance coding (like group testing)

– Some sub-blocks are declared insignificant

– Significant sub-blocks must be coded

• Contexts are defined based on the previous bit-plane

significance.

– Zero coding (ZC) – 9 contexts

– Run length coding (RLC) – 1 context

– Sign coding (SC) – 5 contexts

– Magnitude refinement coding (MR) – 3 contexts

• Block coded in raster order using arithmetic coding

Page 11: CSEP 590 Data Compression - University of Washington

CSEP 590 - Lecture 12 - Autumn 2007 11

Sub-Block Significance Coding

• Quad-tree organized group testing

• Block divided into 16x16 sub-blocks

• Identify in few bits the sub-blocks that are significant

significant

insignificant

block

Page 12: CSEP 590 Data Compression - University of Washington

CSEP 590 - Lecture 12 - Autumn 2007 12

Quad-Tree Subdivision

0

2 3

1

0 2 31

Page 13: CSEP 590 Data Compression - University of Washington

CSEP 590 - Lecture 12 - Autumn 2007 13

Quad-Tree Subdivision

0

2 3

1

Page 14: CSEP 590 Data Compression - University of Washington

CSEP 590 - Lecture 12 - Autumn 2007 14

Quad-Tree Subdivision Coding

0

2 3

1

Depth-first code = 1 for significant 0 for insignificant

111000100110000100101000110001000

Page 15: CSEP 590 Data Compression - University of Washington

CSEP 590 - Lecture 12 - Autumn 2007 15

Quad-Tree Subdivision Coding

0

2 3

1

Skip symbols that are already known:1. nodes significant in previous bit plane2. last child of significant parent of other children

are insignificant

known significant inlast bit plane

111000100110000100101000110001000

Page 16: CSEP 590 Data Compression - University of Washington

CSEP 590 - Lecture 12 - Autumn 2007 16

ZC – Zero Coding

• LH is transposed so that it can be treated the same as HL. (LH)T has similar characteristics to HL.

• Each coefficient has its neighbors in the samesubband

HH

LH

HL

HH

LH

HL

LL

vertical neighborshorizontal neighborsdiagonal neighbors

?

Page 17: CSEP 590 Data Compression - University of Washington

CSEP 590 - Lecture 12 - Autumn 2007 17

ZC Contexts

• v = number of vertical neighbors significant in the previous bit-plane

• h = number of horizontal neighbors significant in the previous bit-plane

• d = number of diagonal neighbors significant in the previous bit-plane

HL (LH)T LL HH

h v d d h+v

*> 2**28

> 02*> 017

02> 0016

> 110015

11*204

01*103

> 10> 1002

101001

000000

label

0 < h, v < 20 < d < 4

higher labelsmean more likelyto be significant

Page 18: CSEP 590 Data Compression - University of Washington

CSEP 590 - Lecture 12 - Autumn 2007 18

Examples

HLh = 0v = 2d = 0

Context 4

?

HHh = 0v = 2d = 0

Context 2

?

HLh = 2v = 0d = 0

Context 8

HHh = 2v = 0d = 0

Context 2

HLh = 0v = 0d = 2

Context 2

HHh = 0v = 0d = 2

Context 6

significant in

previous bit-plane

?

?

??

Page 19: CSEP 590 Data Compression - University of Washington

CSEP 590 - Lecture 12 - Autumn 2007 19

RLC – Run Length Coding

• Looks for runs of 4 that are likely to be

insignificant

• If all insignificant then code as a single

symbol

• Main purpose – to lighten the load on the

arithmetic coder.

? ???

Page 20: CSEP 590 Data Compression - University of Washington

CSEP 590 - Lecture 12 - Autumn 2007 20

SC – Sign Coding

−=

1

1

0

hs

if horizontal neighbors are both insignificant or of opposite signif at least one horizontal neighbor is positiveif at least one horizontal neighbor is negative

−=

1

1

0

vs

if vertical neighbors are both insignificant or of opposite signif at least one vertical neighbor is positiveif at least one vertical neighbor is negative

432101234

-1-1-111-1111

-101-101-101

-1-1-1000111hs

vs

sign prediction

label

Page 21: CSEP 590 Data Compression - University of Washington

CSEP 590 - Lecture 12 - Autumn 2007 21

MR – Magnitude Refinement

• This is the refinement pass.

• Define t = 0 if first refinement bit, t = 1

otherwise.

*12

> 001

000

label t h + v

Page 22: CSEP 590 Data Compression - University of Washington

CSEP 590 - Lecture 12 - Autumn 2007 22

Bit Allocation

• How do we truncate the encoded blocks to

achieve a desired bit rate and get maximum

fidelity

truncate to achieve

desired bit rate and

maximum fidelity

Page 23: CSEP 590 Data Compression - University of Washington

CSEP 590 - Lecture 12 - Autumn 2007 23

Basic Set Up

• Encoded block k can be truncated to nk bits.

• Total Bit Rate

• Distortion attributable to block k is

where wk is the “weight” of the basis vectors

for block k and is the recovered

coefficients from nk bits of block k.

∑∈

−=k

kk

Bj)(i,

2n2k

n

k j))c(i,j)(i,(cwD

∑k

kn

j)(i,c kn

Page 24: CSEP 590 Data Compression - University of Washington

CSEP 590 - Lecture 12 - Autumn 2007 24

Bit Allocation as an Optimization

Problem

• Input: Given m embedded codes and a bit

rate target R

• Output: Find truncation values nk, 1< k < m,

such that

∑=k

n

kkDD is minimized and

Rnk

k ≤∑

Page 25: CSEP 590 Data Compression - University of Washington

CSEP 590 - Lecture 12 - Autumn 2007 25

Facts about Bit Allocation

• It is an NP-hard problem generally

• There are fast approximate algorithms that

work well in practice

– GBFOS

– Lagrange multiplier method

– Multiple choice knapsack method

Page 26: CSEP 590 Data Compression - University of Washington

CSEP 590 - Lecture 12 - Autumn 2007 26

Rate-Distortion Curve

rate

distortion

a

c d egf h

b

a b c d e f g h

rate-distortioncurve

truncationpoints

encoded block

Page 27: CSEP 590 Data Compression - University of Washington

CSEP 590 - Lecture 12 - Autumn 2007 27

Picture of Bit Allocation

block 1 block 2 block m

....

Pick one point from each curve so that the sumof the x values is bounded by R and the sum ofthe y values is minimized.

Good approximate algorithms exist because thecurves are almost convex.

Page 28: CSEP 590 Data Compression - University of Washington

CSEP 590 - Lecture 12 - Autumn 2007 28

Notes on EBCOT

• EBCOT is quite complicated with many features.

• JPEG 2000 based on EBCOT but differs to improve compression and decompression time.

• EBCOT has– resolution scalability

– SNR scalability

– quantization

– bit allocation

– arithmetic coding with context and adaptivity

– group testing (quad trees)

– sign and refinement bit contexts

– lots of engineering

Page 29: CSEP 590 Data Compression - University of Washington

CSEP 590 - Lecture 12 - Autumn 2007 29

Notes on Wavelet Compression

• Wavelets appear to be excellent for image

compression

– No blocking artifacts

– Wavelet coding techniques abound and are very effective

• Some of the wavelet coding techniques can

apply to block transforms.

• Newest generation of image compressor use

wavelets, JPEG 2000.