The Embedded Block Coding with Optimized Truncation in JPEG2000 蘇文鈺 Prepared By 黃文彬...

56
The Embedded Block Coding with Optimized Truncation in JPEG2000 蘇蘇蘇 Prepared By 蘇蘇蘇 蘇蘇蘇蘇

Transcript of The Embedded Block Coding with Optimized Truncation in JPEG2000 蘇文鈺 Prepared By 黃文彬...

Page 1: The Embedded Block Coding with Optimized Truncation in JPEG2000 蘇文鈺 Prepared By 黃文彬 成大資訊.

The Embedded Block Coding with Optimized Truncation

in JPEG2000

蘇文鈺Prepared By 黃文彬

成大資訊

Page 2: The Embedded Block Coding with Optimized Truncation in JPEG2000 蘇文鈺 Prepared By 黃文彬 成大資訊.

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

Page 3: The Embedded Block Coding with Optimized Truncation in JPEG2000 蘇文鈺 Prepared By 黃文彬 成大資訊.

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

Page 4: The Embedded Block Coding with Optimized Truncation in JPEG2000 蘇文鈺 Prepared By 黃文彬 成大資訊.

A Zero-tree

Rough Image Header

Sequence of Zero-trees

Zero-tree Encoding File Structure

Rough Image

SPIHT Algorithm For Wavelet Compression

Page 5: The Embedded Block Coding with Optimized Truncation in JPEG2000 蘇文鈺 Prepared By 黃文彬 成大資訊.

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

Page 6: The Embedded Block Coding with Optimized Truncation in JPEG2000 蘇文鈺 Prepared By 黃文彬 成大資訊.

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

Page 7: The Embedded Block Coding with Optimized Truncation in JPEG2000 蘇文鈺 Prepared By 黃文彬 成大資訊.

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

Page 8: The Embedded Block Coding with Optimized Truncation in JPEG2000 蘇文鈺 Prepared By 黃文彬 成大資訊.

EBCOT Layered Formation

Page 9: The Embedded Block Coding with Optimized Truncation in JPEG2000 蘇文鈺 Prepared By 黃文彬 成大資訊.

The Concept of EBCOT

Sub-Block Significance Coding 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

Layer Formation and Representation Packet Header Coding Packet Body Coding

Page 10: The Embedded Block Coding with Optimized Truncation in JPEG2000 蘇文鈺 Prepared By 黃文彬 成大資訊.

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

Page 11: The Embedded Block Coding with Optimized Truncation in JPEG2000 蘇文鈺 Prepared By 黃文彬 成大資訊.

Significant

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

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

Sign:即係數的符號值。

Page 12: The Embedded Block Coding with Optimized Truncation in JPEG2000 蘇文鈺 Prepared By 黃文彬 成大資訊.

The Bit Plan Coding Primitives

Page 13: The Embedded Block Coding with Optimized Truncation in JPEG2000 蘇文鈺 Prepared By 黃文彬 成大資訊.

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

Page 14: The Embedded Block Coding with Optimized Truncation in JPEG2000 蘇文鈺 Prepared By 黃文彬 成大資訊.

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.

Page 15: The Embedded Block Coding with Optimized Truncation in JPEG2000 蘇文鈺 Prepared By 黃文彬 成大資訊.

Stripe Oriented Scanning Pattern Followed Within Each Coding Pass

Code block width J2

Context window

stripe

Page 16: The Embedded Block Coding with Optimized Truncation in JPEG2000 蘇文鈺 Prepared By 黃文彬 成大資訊.

Zero Coding

The objective here is to code , given that

Page 17: The Embedded Block Coding with Optimized Truncation in JPEG2000 蘇文鈺 Prepared By 黃文彬 成大資訊.

Run Length Coding

Specifically, each of the following conditions must hold: 1) Four consecutive samples must all be insignificant, i.e.,

2) The samples must have insignificant neighbors, i.e.,

3) The samples must reside within the same sub-block 4) The horizontal index of the first sample, , must be even.

0 0

0 0

0

0 0

0

0

1

0

1

Page 18: The Embedded Block Coding with Optimized Truncation in JPEG2000 蘇文鈺 Prepared By 黃文彬 成大資訊.

Example for RLC

Page 19: The Embedded Block Coding with Optimized Truncation in JPEG2000 蘇文鈺 Prepared By 黃文彬 成大資訊.

Sign Coding

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

nmnmnmnmnm

v

nmnmnmnmnmh

jjjjj

jjjjj

,1,1,1,1,

1,1,1,1,,

jxjxsignjx hhh ,1min

jxjxsignjx vvv ,1min

1ˆ kxkx

1ˆ kxkx

0ksymbol

1ksymbol

Page 20: The Embedded Block Coding with Optimized Truncation in JPEG2000 蘇文鈺 Prepared By 黃文彬 成大資訊.

Magnitude Refinement Coding

Specifically, is coded with context 0 if , with context 1 if and and with context 2 if

Page 21: The Embedded Block Coding with Optimized Truncation in JPEG2000 蘇文鈺 Prepared By 黃文彬 成大資訊.

Three Coding Pass

The JPEG2000 standard other three pass Significance Propagation Pass Magnitude Refinement Pass Cleanup Pass

Page 22: The Embedded Block Coding with Optimized Truncation in JPEG2000 蘇文鈺 Prepared By 黃文彬 成大資訊.

Significance Propagation Pass

The 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.

Page 23: The Embedded Block Coding with Optimized Truncation in JPEG2000 蘇文鈺 Prepared By 黃文彬 成大資訊.

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 two passes.

These samples are processed with the MR primitive.

Page 24: The Embedded Block Coding with Optimized Truncation in JPEG2000 蘇文鈺 Prepared By 黃文彬 成大資訊.

Cleanup Pass

Here we code the least significant bit, of all samples not considered in the previous two 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.

Page 25: The Embedded Block Coding with Optimized Truncation in JPEG2000 蘇文鈺 Prepared By 黃文彬 成大資訊.

Cleanup Pass Algorithm(cont.)

Page 26: The Embedded Block Coding with Optimized Truncation in JPEG2000 蘇文鈺 Prepared By 黃文彬 成大資訊.

The EBCOT encoding procedures

Algorithm for encoderInitialize the MQ encoderInitialize the context states according to each coding

tableSet For each

Initialize all the variable For

If Perform Encoder-Pass0 (Significance

propagation pass)Perform Encoder-Pass1 (Magnitude

refinement pass)Perform Encoder-Pass2 (Cleanup pass)

0tmpv),0[),0[ 10 jjj

0,1,....,1Kp1 Kp

Page 27: The Embedded Block Coding with Optimized Truncation in JPEG2000 蘇文鈺 Prepared By 黃文彬 成大資訊.

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

Page 28: The Embedded Block Coding with Optimized Truncation in JPEG2000 蘇文鈺 Prepared By 黃文彬 成大資訊.

Block diagram of the embedded block coder

x

k

Code blocksample array

Significancestate

Delayedsignificance

First passmembership

Context AdaptiveBit Plane Coder

Context state file

MQ coder

k kS

jjv ,

j j j

Embedded bit stream

Page 29: The Embedded Block Coding with Optimized Truncation in JPEG2000 蘇文鈺 Prepared By 黃文彬 成大資訊.

EBCOT Decoder

Algorithm for decoderInitialize the context states according to each coding

tableFor each

Initialize all the variable For

If Perform De-Significance propagation passPerform De-Magnitude refinement pass

Perform De-Cleanup pass

),0[),0[ 10 jjj

0,1,....,1Kp1 Kp

Page 30: The Embedded Block Coding with Optimized Truncation in JPEG2000 蘇文鈺 Prepared By 黃文彬 成大資訊.

Redefine JPEG2000 Table

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

Context

1 x 12 / 0xC

0 11 / 0xB

0 0 10 / 0xA

nm, vh

1

h v Context

1 1 1 17 / 11

1 0 1 16 / 10

1 -1 1 15 / F

0 1 1 14 / E

0 0 1 13 / D

0 -1 -1 14 / E

-1 1 -1

-1 0 -1

-1 -1 -1

15 / F

16 / 10

17 / 11

Context Context

LL, LH, HL Sub-bank HH Sub-bank

0

0

0

0

0

1

1

1

2

0

0

0

1

2

0

0

> 0

x

0

1

> 1

x

x

0

> 0

x

x

1

2

3

4

5

6

7

8

9

0

0

0

1

1

1

2

2

> 2

0

1

> 1

0

1

> 1

0

> 0

x

kd i kvkh ii khi kvi kd i

1

2

3

4

5

6

7

8

9

Page 31: The Embedded Block Coding with Optimized Truncation in JPEG2000 蘇文鈺 Prepared By 黃文彬 成大資訊.

Example 1 For JPEG2000 Encoder(Only Cleanup Pass)

Page 32: The Embedded Block Coding with Optimized Truncation in JPEG2000 蘇文鈺 Prepared By 黃文彬 成大資訊.

Example 1 For JPEG2000 Decoder (Only Cleanup Pass)

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

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

Page 33: The Embedded Block Coding with Optimized Truncation in JPEG2000 蘇文鈺 Prepared By 黃文彬 成大資訊.

Example 2 For JPEG2000- Two Bit Plane

Page 34: The Embedded Block Coding with Optimized Truncation in JPEG2000 蘇文鈺 Prepared By 黃文彬 成大資訊.

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

Page 35: The Embedded Block Coding with Optimized Truncation in JPEG2000 蘇文鈺 Prepared By 黃文彬 成大資訊.

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

Page 36: The Embedded Block Coding with Optimized Truncation in JPEG2000 蘇文鈺 Prepared By 黃文彬 成大資訊.

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

Page 37: The Embedded Block Coding with Optimized Truncation in JPEG2000 蘇文鈺 Prepared By 黃文彬 成大資訊.

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

Page 38: The Embedded Block Coding with Optimized Truncation in JPEG2000 蘇文鈺 Prepared By 黃文彬 成大資訊.

Example 2 For JPEG2000 – Bit Plane 2 Magnitude Refinement Pass

Page 39: The Embedded Block Coding with Optimized Truncation in JPEG2000 蘇文鈺 Prepared By 黃文彬 成大資訊.

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

Page 40: The Embedded Block Coding with Optimized Truncation in JPEG2000 蘇文鈺 Prepared By 黃文彬 成大資訊.

Arithmetic Coding - MQ Coder

Before talking about MQ coder, we must understand the Arithmetic coding.

Because the MQ coder is almost the same as a binary arithmetic coding.

Just only one difference between them. Where is the probability of the zero or one from?

For binary arithmetic coding, the probability of zero or one is driven by the pre-processing.

In other words, before arithmetic coding, the probability of zero or one have been already known, and it’s through the statistic of all data.

In MQ coder, the probability of zero or one is by the dynamic decision.

Page 41: The Embedded Block Coding with Optimized Truncation in JPEG2000 蘇文鈺 Prepared By 黃文彬 成大資訊.

Arithmetic Coding - MQ Coder

In JPEG2000 standard, there is a table for MQ coder. The table provides the new probability of zero or one. The table is shown in the next page. In the beginning, the probability of zero or one is 0.5, and it is

the start of table. And the next probability of zero or one depends on the input

context that is zero or one. If the input context is zero, the new probability of zero becomes

larger in the table. Otherwise, it becomes smaller.

Page 42: The Embedded Block Coding with Optimized Truncation in JPEG2000 蘇文鈺 Prepared By 黃文彬 成大資訊.

Arithmetic Coding - MQ Coder

Page 43: The Embedded Block Coding with Optimized Truncation in JPEG2000 蘇文鈺 Prepared By 黃文彬 成大資訊.

Arithmetic Coding - MQ Coder

Page 44: The Embedded Block Coding with Optimized Truncation in JPEG2000 蘇文鈺 Prepared By 黃文彬 成大資訊.

Arithmetic Coding - MQ Coder

Page 45: The Embedded Block Coding with Optimized Truncation in JPEG2000 蘇文鈺 Prepared By 黃文彬 成大資訊.

Arithmetic Coding - MQ Coder

Page 46: The Embedded Block Coding with Optimized Truncation in JPEG2000 蘇文鈺 Prepared By 黃文彬 成大資訊.

Arithmetic Coding – Binary Arithmetic Coding Algorithm

Initialize , , ,

For eachSetIf

IfPropagate carry

WhileRenormalize

Set

0C NA 2 1r 0b

,.....1,0n

PNC 2

12 PNT

TA Pn

21

nApT ,01nx

TCC TAT P 2 Binary

arithmetic coder

nx

np ,0

Arithmetic codestream

Page 47: The Embedded Block Coding with Optimized Truncation in JPEG2000 蘇文鈺 Prepared By 黃文彬 成大資訊.

Arithmetic Coding – Binary Arithmetic Coding Algorithm

Propagate carryEmit-bit(1)If ,

execute times, emit-bit(0)Set

ElseSet

RenormalizeIncrementShiftShiftIf

if ,emit-bit(1)

elseincrement

Else if

emit-bit(0)execute

times,emit-bit(1)Set

0r1r

0r

1r

1 bbTT 2CC 2

PNC 20r

1 rr

0r

r0r

Page 48: The Embedded Block Coding with Optimized Truncation in JPEG2000 蘇文鈺 Prepared By 黃文彬 成大資訊.

Arithmetic Coding - MQ Coder algorithm

Initialize ,For each

and

If

If (encode an MPS)

else (encode an LPS)

If If (The symbol was a real MPS)

else (The symbol was a real LPS)

Whilerenormalization

nss

0C NA 2,.....1,0n

12 NA

sxn npCC

npA

nPAA nPA

ss 1

nkPP

12 NA

nn sx )( nn kNMPSk

)( nnn kswitchss )( nn kNLPSk

Page 49: The Embedded Block Coding with Optimized Truncation in JPEG2000 蘇文鈺 Prepared By 黃文彬 成大資訊.

Arithmetic Coding - MQ Coder Example

We want to encode 1101 and the coding pass is always in context 1

(1) Initial

A = 0x8000 , C = 0x0000 , k = 0 , B = 0 , ct = 12 , Sn = 0 Encode 1

X = 1 , Sn = 0 , k = 0 P = 5601 , A = A – P = 29ff A(29ff) < P(5601) => S = 1 – Sn = 1 X = S => C = C + P = 5601 A(29ff) < 0x8000 and X != Sn => Sn = 1 and k = 1 A = a7fc , C = 15804 , ct = 10

While A < 0x8000 A = 2A , C = 2C , ct = ct -1 if ct = 0 Transfer-Byte

Page 50: The Embedded Block Coding with Optimized Truncation in JPEG2000 蘇文鈺 Prepared By 黃文彬 成大資訊.

Arithmetic Coding - MQ Coder Example

Encode 1 X = 1 , Sn = 1 , k = 1 P = 3401 , A = A – P = 73fb A(73fb) > P(3401) X = S => C = C + P = 15804 + 3401 = 18c05 A(73fb) < 0x8000 and X = Sn => k = 2 A = e7f6 , C = 3180A , ct = 9

Encode 0 X = 0 , Sn = 1 , k = 2 P = 1801 , A = A – P = cff5 A(cff5) > P(1801) X != S => A = 1801 A(1801) < 0x8000 and X != Sn => Sn = 1 and k = 9 A = c008 , C = 18c050 , ct = 6

Page 51: The Embedded Block Coding with Optimized Truncation in JPEG2000 蘇文鈺 Prepared By 黃文彬 成大資訊.

Arithmetic Coding - MQ Coder Example

Encode 1 X = 1 , Sn = 1 , k = 9 P = 3801 , A = A – P = 8807 A(8807) > P(3801) X = S => C = C + P = 18c050 + 3801 = 18f851 A(18f851) > 0x8000 and X != Sn => Sn = 1 and k = 9 A = c008 , C = 18c050 , ct = 6

Page 52: The Embedded Block Coding with Optimized Truncation in JPEG2000 蘇文鈺 Prepared By 黃文彬 成大資訊.

Combined EBCOT with MQ Coder

Encoder-Pass0 Procedure (significance propagation) AlgorithmFor each location, j, following the stripe-based scan of above

figureif and ,

MQ-Encode( , )If ,

Encode-Sign( )

else

0j 0jk sig

jvx p jkk sig 1jv p

1j jjj vh ,,

1j

0j

Page 53: The Embedded Block Coding with Optimized Truncation in JPEG2000 蘇文鈺 Prepared By 黃文彬 成大資訊.

Combined EBCOT with MQ Coder

Encode-Sign Procedure Algorithm Determine and from and using Table 2If ,

MQ-Encode( , )Else

MQ-Encode( , )

signkflip jh jv

1 flipj

0x

1x

signkk

signkk

signk

1

0

-1

1

0

-1

14

13

12

11

10

11

1

1

1

1

1

-1

jh jv flip

1

1

1

0

0

0

1

0

-1

12

13

14

-1

-1

-1

-1

-1

-1

Page 54: The Embedded Block Coding with Optimized Truncation in JPEG2000 蘇文鈺 Prepared By 黃文彬 成大資訊.

Combined EBCOT with MQ Coder

Encoder-Pass1 Procedure (magnitude refinement) AlgorithmFor each location, j, following the stripe-based scan of above

FigureIf and ,

Find form and using table3MQ-Encode( , )

magkk jk sigmagk

1j 0j jG

jpvx

jj G

jk sig

0

> 0

15

16

17

0

0

1

mapk jG

ax

Page 55: The Embedded Block Coding with Optimized Truncation in JPEG2000 蘇文鈺 Prepared By 黃文彬 成大資訊.

Combined EBCOT with MQ CoderEncoder-Pass2 Procedure (cleanup) AlgorithmFor each location, j, following the stripe-based scan of above

Figureif and ,(entering a full stripe column)

(signifies not using run mode)if for all ,(enter run mode)

while and ,

ifMQ-Encode( )

else (run interruption)MQ-Encode( )MQ-Encode( )

MQ-Encode( )

04mod1 j 411 Jj

1r

0r 0, 21 jijk sig 3,2,1,0i

4r 0, 21 jrjv p

1 rr

4rrunkkx ,0

runkkx ,1unikk

rx

,2

unikkrx ,2mod

Page 56: The Embedded Block Coding with Optimized Truncation in JPEG2000 蘇文鈺 Prepared By 黃文彬 成大資訊.

Combined EBCOT with MQ Coder (cleanup pass cont.)

If and ,if ,

(no need to code significance)else

MQ-Encode( )if ,

Encode-Sign( )

0j 0j0r

1 rr

1jv p

1j

jkkjvx sigp ,

jjj vh ,,