1 The Embedded Block Coding with Optimized Truncation (EBCOT) in JPEG2000.

41
1 The Embedded Block Coding with Optimized Truncation (EBCOT) in JPEG2000

Transcript of 1 The Embedded Block Coding with Optimized Truncation (EBCOT) in JPEG2000.

1

The Embedded Block Coding with Optimized Truncation (EBCOT)

in JPEG2000

2

JPEG2000 Codec

(a) encoder

(b) decoder

SourceImage Data

ForwardWavelet

Transform

QuantizationCoefficient

bit modeling

Compressed Image Data

Arithmeticencoding

Compressed Image Data

Coefficientbit

modeling

De-Quantization

InverseWavelet

Transform

ReconstructedImage Data

Arithmeticdecoding

3

120 128 130 105 78 23 ... 129150 10 218 89 12 45 ... 110 98 104 38 204 239 89 ... 98 78 198 19 178 192 37 … 123109 45 23 106 76 12 … 67 ….. ….. 28 120 238 129 109 37 … 203

Original ImageLevel 2

Wavelet Image

DWT

Pixel Representation Wavelet Coefficients

9283 5721 -986 49 40 19 … 08785 3061 2083 29 -38 61 … -3 456 -440 108 23 37 31 … 1 148 621 51 29 -36 45 … -2 103 70 22 20 12 -19 … 4 …… …… 10 2 0 -3 -7 11 … 0

Wavelet Image

DWT

Quantization

...

Wavelet Compression

3 1 -16 9 10 0 … 0 5 3 3 0 0 1 … -0 6 -2 18 0 0 0 … 0 8 1 1 0 0 5 … -0 3 12 0 0 0 0 … 0 …… …… 0 0 0 -0 -0 0 … 0

4

The JPEG2000 Encoder

The part of EBCOT

T1

Embedded Block Coding

Operates on block samples

T2

Coding of block contributions

To each quality layer

Operates on block summary info

Embedded block

bit-streams

Block of sub-band samples

Full-featured

bit-stream

5

Quantization

The quantization operation is defined by the step size parameter, ,through

Here, denotes the samples of sub-band , while denotes their quantization indices.

The step size for each sub-band is specified in terms of an exponent, , and a mantissa, , where

LL HL

LH HHHL

LH HH

HL

LH HH

b

b

bbb

nynysignnq

nyb b nqb

b b

11212 b

bb

520 b

1120 b

6

From “Sub band” to “code block” to “bit stream”

7

EBCOT Layered Formation

8

The Concept of EBCOT

Bit-Plan Coding Primitives Zero Coding Run Length Coding Sign Coding Magnitude Refinement Coding

Fractional Bit-Planes and Scanning Order Significance Propagation Pass Magnitude Refinement Pass Cleanup Pass

9

Sub-bank and Code Block and sub-block

Generally, Code Block size is 64*64 or 32*32 and sub-code block size is 16*16.

The scanning order of the sub block to be used.

Each code block is coded independently.

Code BlockCode Sub-Block

LL HL

LH HHHL

LH HH

LH HH

HL

10

Significant

Significance:當一個係數 bit-plane 的值,第一次由0變為1,則此 時這個係數將變為 Significance。

Refinement:當一個係數已經是 Significance,則這個係數接下來的bit皆稱之為 Refinement。

Sign:即係數的符號值。

11

The Bit Plan Coding Primitives

12

Scan coding

q = -2 11 0 -23 49 3 -10

sign

Bit plan 1

Bit plan 2

Bit plan 3

Bit plan 4

Bit plan 5

Bit plan 6

-2 1000010

11 0001011

0 0000000

-23 1010111

49 0110001

3 0000011

-10 1001010

13

Four Types of Coding Operation for Bit Plan Coding

Zero Coding Used to code new significance.

Run Length Coding Reduce the average number of symbols needed to be

coded. Sign Coding

Used to code the sign right after a coefficient is identified significant.

Magnitude Refinement Coding 3 context depending on the significance of its neighbors

and whether it is the first time for refinement.

14

Stripe Oriented Scanning Pattern Followed Within Each Coding Pass

Code block width J2

Context window

stripe

15

Zero Coding

16

Run Length Coding

Specifically, each of the following conditions must hold: 1) Four consecutive samples must all be insignificant. 2) The samples must have insignificant neighbors. 3) The samples must reside within the same sub-block

17

Example for RLC

18

Sign Coding

當 symbol由 insignificance 變為 significance,此時必須將送出該 symbol 的 sign值,而 sign 值是由垂直及水平鄰近點的 sign 值和 significance 來查表決定 context states。

19

20

Magnitude Refinement Coding

21

Three Coding Pass

The JPEG2000 standard three passes Significance Propagation Pass Magnitude Refinement Pass Cleanup Pass

22

Significance Propagation Pass

The first coding pass for each bit plane is the significance pass. This pass is used to convey significance and (as necessary) sign

information for samples that have not yet been found to be significant and are predicted to become significant during the processing of the current bit plane.

23

Magnitude Refinement Pass

During this pass we skip over all samples except those which are already significant, and for which no information has been coded in the previous pass.

These samples are processed with the MR primitive.

24

Cleanup Pass

Here we code the least significant bit, of all samples not considered in the previous three coding passes, using the SC and RLC primitives as appropriate

if a sample is found to be significant in this process, its sign is coded immediately using the SC primitive.

25

Cleanup Pass Algorithm(cont.)

26

A Simple Example For Bit Plan Coding

1

0

0

0

0

0

0

1

1

0

1

1

0

1

1

1

bit plane1 bit plane2 bit plane3 bit plane4

Example :

10 = +1010

1 = +0001

3 = +0011

-7 = -0111

27

Redefine JPEG2000 Table

Context label in RLC: RLC(0),UNIFORM(18/0x1D)

28

29

30

31

32

33

Example 1 For JPEG2000 Encoder(Only Cleanup Pass)

34

Example 1 For JPEG2000 Decoder (Only Cleanup Pass)

第一個讀入的值為 context label即 coding的方式 ,查表可知 00為 Run-length coding.

第二個讀入的值為 symbol即本身的二進位值 ,此例為 1

35

Example 2 For JPEG2000- Two Bit Plane

36

Example 2 For JPEG2000 – Bit Plane 1 Cleanup Pass (1)

37

Example 2 For JPEG2000 – Bit Plane 1 Cleanup Pass (2)

38

Example 2 For JPEG2000 – Bit Plane 2 Significance Pass (1)

39

Example 2 For JPEG2000 – Bit Plane 2 Significance Pass (2)

40

Example 2 For JPEG2000 – Bit Plane 2 Magnitude Refinement Pass

41

Example 2 For JPEG2000 – Bit Plane 2 Cleanup Pass (1)