JPEG 2000 - PowerPoint PPT Presentation

1 / 110
About This Presentation
Title:

JPEG 2000

Description:

JPEG 2000 – PowerPoint PPT presentation

Number of Views:257
Avg rating:3.0/5.0
Slides: 111
Provided by: xiaol4
Category:
Tags: jpeg | ikon

less

Transcript and Presenter's Notes

Title: JPEG 2000


1
JPEG 2000
  • Principle and Features
  • Xiaolin Wu
  • Polytechnic University

2
Outline
  • JPEG 2000 overview
  • Development history
  • Key features of JPEG 2000
  • JPEG 2000 technology
  • EBCOT entropy coding technique
  • R-D optimized layered coding
  • Conclusion

3
Introduction
  • JPEG 2000 is a new still image compression
    standard
  • JPEG 2000 is standardized by ISO/IEC
    JTC1/SC29/WG1 (JPEG)
  • Formal Name ISO/IEC 15444
  • Nickname (.jp2, .j2k)
  • JPEG 2000 aims to be the one-for-all image codec.
  • Different image types bi-level, gray-level,
    color, multi-component
  • Different applications natural images,
    scientific, medical, remote sensing, text,
    rendered graphics, etc
  • Different imaging models client/server, consumer
    electronics, image library archival, limited
    buffer and bandwidth resources, etc.

4
History
  • Call for Contributions in 1996.
  • Agreement reached on the first Committee Draft
    (CD) in JPEG Maui meeting, Hawaii, Dec. 1999.
  • Committee Draft elevated to Final Committee Draft
    (FCD), Tokyo, March 2000.
  • Accepted as Draft International Standard in
    August 2000.
  • Published as ISO Standard in January 2002.

5
ISO, IEC JTC
ISO International Standard Organization IEC
International Electritechnical Committee
6
JTC1 Subcommittees
  • SC2 - coded character set
  • SC15 - volume and file structure
  • SC22 - programming language, their environment
    and system software interface
  • SC29 - coding of audio, picture, multimedia and
    hypermedia information

7
SC29 Activities
  • Activities - coding of audio, picture, multimedia
    and hypermedia information
  • WG1 - JBIG and JPEG
  • Joint Bi-level image group
  • Joint photographic experts group
  • WG11 - MPEG
  • Moving pictures experts group
  • WG12 - MHEG
  • Multimedia-hypermedia experts group

8
Applications/ Requirements/ Features (I)
  • Superior low bit-rate performance
  • E.g.0.25 bpp for gray-scale images
  • For network image transmission, wireless
  • Continuous-tone and bi-level compression
  • Various dynamic ranges (1bit to 16 bits per color
    component) with similar system resources.
  • For compound documents with images and text,
    medical images with annotation overlays, graphics
    and computer generated images with binary and
    near to binary regions, alpha and transparency
    planes, and facsimile.

9
Applications/ Requirements/ Features (II)
  • Lossless and lossy compression
  • Naturally in decoding
  • For medical images, image archival, network
    applications, pre-press imagery.
  • Progressive transmission
  • Reconstructed with increasing pixel accuracy or
    spatial resolution
  • Random codestream access and processing
  • Region of Interest (ROI)

10
Applications/ Requirements/ Features (III)
  • Robustness to bit-errors
  • For wireless channels
  • Open architecture
  • Only define decoder
  • Sequential build-up capability (real-time
    coding)
  • Single sequential pass
  • Capable of processing interleave/ non-interleaved
    order.
  • Context limited to a reasonable number of lines

11
Why JPEG 2000 (1)- The benefits of JPEG 2000
over JPEG
  • Achieve higher coding efficiency
  • Superior low bit-rate performance compared with
    JPEG
  • Better visual performance visual tools
  • Handle more types of image
  • Provide many new useful functionalities
  • Reasonable complexity
  • limited workspace memory
  • Iifting and line-based implementation of wavelets
  • MQ coder

12
Why JPEG 2000 - The benefit of JPEG 2000 over
JPEG
  • Provide many new useful functionalities
  • Lossless compression
  • Progressive transmission
  • By quality, visual and resolution
  • Progression to lossless
  • Region of interest (ROI)
  • Encoder code a certain region with high quality
  • Decoder access and processing
  • Progressive ROI access arbitrary access a
    certain area, decoding resolution and quality
    level
  • Robustness to bit errors

13
Acceptable visual quality at low rates


A visual comparison from left to right of an
(left) original image, (middle) 0.5kb JPEG 2000
compressed image, (right) 0.5kb jpeg.
14
archiving
distribution
browsing
15
How - JPEG 2000 Key Components
  • Transform
  • Wavelet
  • Wavelet packet
  • Wavelet in tiles
  • Quantization
  • Scalar
  • Entropy coding
  • (EBCOT) code once, truncate anywhere
  • Rate-distortion optimization
  • Context modeling
  • Optimized coding order
  • Visual
  • Weighting
  • Masking
  • Region of interest (ROI)
  • Lossless color transform
  • Error resilience

16
Block Diagram of JPEG 2000
Encoder
Transform
Entropy Cod
Quantization
Channel
Inv. Quant
Inv. Trans
Entropy Dec
Decoder
17
Transform
Transform Coeff. 4123, -12.4, -96.7, 4.5,
Original 128, 129, 125, 64, 65,
18
Quantization
Quantized Coeff.(Q64) 64, 0, -1, 0,
Transform Coeff. 4123, -12.4, -96.7, 4.5,
19
Entropy Coding
0 1 1 0 1 1 0 1 0 1 . . . Coded Bitstream
Quantized Coeff.(Q64) 64, 0, -1, 0,
20
Wavelet Transform - 1D
21
Wavelet Transform - Issues
  • 2D wavelet wavelet packets
  • Boundary handling
  • Lifting implementation
  • Memory efficient implementation
  • Tiling (how to avoid boundary artifact)
  • Line based wavelet transform

22
Wavelet Transform - 2D
Horizontal filtering
Vertical filtering
23
(No Transcript)
24
Wavelet Packet Structure
spacl
packet
mallat
25
Transform Schemes
Lifting Scheme
Convolution Scheme
26
Lifting Implementation
An example of biorthogonal 9-7 filter
L0
x0
a
c
d
b
H0
x1
b
c
d
a
L1
x2
a
c
d
b
H1
x3
c
a
b
d
L2
x4
c
b
d
a
No auxiliary memory is needed
Easy to do inverse transform
H2
x5
Exactly the same result as convolution with half
the computational complexity.
b
c
d
a
L3
x6
a
b
c
d
Convolution on average,every node requires 4.5
X, 7 .
H3
x7
c
a
b
d
Lifting on average,every node requires
2 X, 4 .
L4
x8
High Low
Original
27
Inverse Transform
Transform
L0
x0
a
c
d
b
H0
x1
b
c
d
a
L1
x2
a
c
d
b
H1
x3
c
a
b
d
L2
x4
c
b
d
a
H2
x5
b
c
d
a
L3
x6
a
b
c
d
H3
x7
c
a
b
d
L4
x8
High Low
Original
Original
28
Lifting Implementation Boundary
Handling
Used for Memory Efficient Implementation
  • Symmetry boundary extension
  • Single sample overlap DWT

x4
2x0-x4
2x0-x3
x3
x2
2x0-x2
2x0-x1
x1
x0
x0
c
a
c
a
2b
2d
x1
x1
b
c
d
b
c
a
d
a
x2
a
x2
b
c
a
d
b
c
d
x3
c
x3
a
b
c
d
a
b
d
x4
x4
29
Basic Framework Line-based Scheme
  • Use of the partial character of wavelet
    transform
  • No need to wait for all data

Buffersizelinenumber ( depend on the filters
length) linesize
Lowpass of Vertical
Highpass of Vertical
Vertical filter
Horizontal filter
30
Line-based Lifting Scheme
x0
a
c
d
b
x1
b
c
d
a
  • For 9-7 filter,the number of needed line in
    buffer is 6.

x2
a
b
c
d
x3
c
a
b
d
x4
c
b
d
a
x5
b
c
d
a
x6
a
b
c
d
x7
c
a
b
d
x8
High Low
Original
31
Recommended Wavelet Filter
  • Wavelet 9-7 filter for lossy compression
  • Best performance at low bit rate
  • Relatively high implementation complexity,
    especially for hardware

32
Recommended Wavelet Filter (cont.)
  • I 5-3 filter for integer transform lossless
    coding
  • Integer arithmetic, low implementation complexity

33
Quantizer
  • Scalar quantizer with a deadzone

Quantized Magnitude
Sign
34
Entropy coding
  • Key features of EBCOT ( embedded block coding
    with optimized truncation )
  • Low memory requirement in coding and decoding
  • Easy rate control
  • High compression performance
  • Region of interest (ROI) access
  • Error resilience
  • Modest complexity

35
Code assembly
  • Image gtgt Component gtgt Tile gtgt Subband gtgt
    Code-Block gtgt Bit-Planes

36
Block structure in EBCOT
Res1
Res2
. . .
Encode each block separately record the
bitstream of each block. Block size is 64x64.
37
EBCOT - Assemble the Bitstream
Abstraction Layer
Res1
. . .
. . .
Res2
Bitstream
  • Reassemble the bitstream, encodes an abstraction
    layer with the structure of the bitstream
  • The bitstream is ordered with a primary
    functionality, such as progressive by quality or
    progressive by resolution
  • The bitstream may be parsed to achieve
    additional functionality, such as progressive by
    resolution, region of interest access, etc..

. . .
Encode each block separately record a bitstream
for each block
38
Two Tier Coding
Assemble bitstream
Block embedded coding
39
A Sample JPEG 2000 Bit Stream
40
A Sample JPEG 2000 Bit Stream
Overhead is non trivial, but is worth it
41
Block Embedded Coding
  • Keys
  • How to encode each bit
  • What is the coding order
  • Highlight of technology
  • Partial bitplane embedded coder
  • Quadtree front end to reduce computational
    complexity
  • Context-based arithmetic coding

42
Bits of Coefficients
Sign
b1 b2 b3 b4 b5 b6 b7
w0 w1 w2 w3 w4 w5 w6 w7
45
-74
21
coefficient
14
-4
-18
4
-1
43
Conventional Coding
Sign
b1 b2 b3 b4 b5 b6 b7
First
w0 w1 w2 w3 w4 w5 w6 w7
Second
Third
44
Embedded Bit Plane Coding
b1 b2 b3 b4 b5 b6 b7
Sign
w0 w1 w2 w3 w4 w5 w6 w7
First
Second
Third
45
(No Transcript)
46
Coding Bitstream Reordering Based on R-D Slope
D
(D0,R0)
a
e
b
c
c
d
a
d
e
b
R
(Dend,Rend)
47
Partial bit planes
Sign
b1 b2 b3 b4 b5 b6 b7
w0 w1 w2 w3 w4 w5 w6 w7
0
1
0
1
1
0
1
. . . .
0
1
. . . .

1
0
0
1
0
1
0
. . . .
-
0
0
1
0
1
0
1
. . . .

0
0
0
1
1
1
0
. . . .

0
0
0
0
1
0
0
. . . .
-
0
0
1
0
0
1
0
. . . .
-
0
0
0
0
1
0
0
. . . .

0
0
0
0
0
0
1
. . . .
-
48
Calculation of R-D Slope (1)
Before coding symbol s
M0,b
M1,b
rb
rK-1,a
. . .
MK-1,a
r0,a
r1,a
M0,a
M1,a
M2,a
MK,a
After coding symbol s
  • Segment boundaries
  • Decoding reconstruction values

49
Calculation of R-D Slope (2)
  • Average distortion decrease
  • Average coding rate
  • with p(x) the normalized a priori probability

50
R-D Slope of Sig. Ident (1)
Before coding
-2Tn
0
2Tn
Tn
2Tn
-Tn
0
-2Tn
1.5Tn
-1.5Tn
After coding
  • Tn Quantization step size, Tn 2-n
  • p Probability of significance
  • Assume uniform pdf within significance interval

51
R-D Slope of Sig. Ident (2)
  • Expected R-D slope for significance ident
  • H(p) entropy of binary symbol with probability
    p
  • fs(p) significance modification factor

52
Function fs(p)
53
R-D Slope of Refinement
Before coding
S
S2Tn
STn
STn
S2Tn
S
S1.5Tn
S0.5Tn
After coding
  • Tn Quantization step size, Tn 2-n
  • Assume uniform pdf within significance interval
  • Expected R-D slope for refinement

54
Laplacian Pdf
  • Assume pdf is Laplacian with variance s2
  • For significance identification
  • For refinement coding

55
Conclusion of R-D Slope
  • The R-D slope can be determined by the
    significant status of the current symbol, and its
    probability of significance
  • Significant identification symbol with a high
    probability of significance should be encoded
    first
  • Significant identification symbol with
    probability of significance higher than 0.01
    should be encoded before the refinement symbol in
    the same layer

56
Block structure in EBCOT
57
Quadtree Frontend (with subblock size 16x16 )
Example Block size is 56x36, and subblock size
is 16x16. Only 12 of the 16 subblock are used,
and 6 of them are partially used.
58
Partial Bitplane Block Coding
  • Within each bitplane, there are 4 passes
  • Forward significance identification pass P1
  • Only for subblocks which are significant, and for
    all samples which are insignificant and have a
    preferred neighbor (LL, HL, LH with at least one
    horizontal significant neighbors, HH at least
    one significant diagonal neighbors)
  • Backward significance identification pass P2
  • Similar to P1, except in reverse order and
    consider samples with at least one significant
    neighbor in the 8 immediate neighbors and not
    processed in P1
  • Magnitude refinement pass P3
  • Significant coefficient not processed in P1 and
    P2
  • General significance pass P4 (only step in the
    1st bitplane)
  • Quadtree subblock information
  • All remaining coefficient, except processed in
    P1, P2 and P3

59
Partial Bitplane Block Coding (cont.)
  • Implementation issue
  • Maintain three states for each coefficient
  • sm,n whether the coefficient is significant
  • hm,n whether the coefficient is processed in
    the current bitplane layer
  • Cm,n sign of coefficient ( 1 , 0 - )
  • Quadtree subblock status

60
Examples of 2-D Bitplane
MSB
Current Bit Plane
LSB
61
Examples of Partial Bitplane Coding
0
0
1
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
1
1
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
Bit in the current layer
0
Subblock
Coefficient which is already significant
0
62
Pass 1 Forward Significance
0
0
1
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
1
1
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
Pass 1
?
63
Pass 2 Backward Significance
0
0
1
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
1
1
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
Pass 1
?
Pass 2
?
64
Pass 3 Magnitude Refinement
0
0
1
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
1
1
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
Pass 1
Pass 3
?
?
Pass 2
?
65
Pass 4 Quadtree Encoding
0
0
1
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
1
1
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
Pass 1
Pass 3
?
?
Pass 2
?
Quadtree
66
Pass 4 General Significance
0
0
1
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
1
1
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
Pass 1
Pass 3
Pass 4
?
?
Pass 2
?
Quadtree
67
Partial Bitplane Block Coding
  • Coding Operation
  • Forward significance propagation pass P1
  • Zero coding
  • Sign coding
  • Backward significance propagation pass P2
  • Zero coding
  • Sign coding
  • Magnitude refinement pass P3
  • Magnitude refinement
  • General significant pass P4
  • Quadtree (coded in abstraction layer )
  • Run-length coding
  • Zero coding
  • sign coding

68
Context-based Arithmetic Coding
  • What is arithmetic coding

1
P11
P13
Coding result
P12
P03
0.100
(Shortest binary bitstream within the interval)
P01
P02
0
0
1
0
69
Probability Estimation
  • For each context, probability of 1 is estimated

1 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 1
0 0 0 0
70
Arithmetic Coder
  • Highlight
  • Very efficient toward symbols with skewed
    probability distribution, i.e., far more 0 than
    1
  • Easy to adapt to local statistics change
  • Problems of arithmetic coder
  • Fast computation of subinterval
  • Context modeling
  • Estimate the probability distribution of symbols
  • JPEG 2000 is the first standard to adopt
    arithmetic code in baseline
  • Implemented as MQ coder.

71
What is Context
Source 0
Source 1
Symbol
Multiplex
Source 2
Context 0 1 2 0 0 2 0 0 1 1 0 2 0
1 0 2 0 1 Symbol 0 1 1 0 0 1 0 0 0
0 0 1 0 1 0 1 0 1 Entropy of combined
source H(7/18)18 17.35 bit Symbol under
context 0 0 0 0 0 0 0 0 0 0 Symbol
under context 1 1 0 0 1 1 Symbol under
context 2 1 1 1 1 Entropy of separated
source H(0/9)9H(3/5)5H(0/4)4 4.85bit
72
Context
  • Why context
  • Group symbols with similar statistics
  • To estimate the probability distribution of
    symbols under the same context
  • How context is obtained
  • From value of neighborhood coefficient
  • A special value frequently in use is the
    significance status
  • What is a better context
  • Symbols with same context should have a similar
    probability
  • Number of context should be small, otherwise, it
    takes long time for statistics to converge
    (context dilution)

73
Neighborhood in Zero Coding
h number of significant horizontal neighbors
(0-2) v number of significant vertical
neighbors (0-2) d number of significant diagonal
neighbors (0-4)
h
v
d
Current coefficient
74
Zero Coding Context
75
Run-Length Coding (RLC)
  • Invoked in normalization if and only if
  • 4 consecutive horizontal symbols are
    insignificant
  • They lie in the same subband
  • Aligned on a two-sample boundary
  • All 4 symbols have identical zero neighborhoods
  • Encoding
  • Encode a special symbol with a special context.
    The special symbol identifies if all 4 symbols
    are insignificant (0 yes, 1no)
  • if any of symbols is significant, a 2-based index
    of the 1st significant symbol is sent as a
    two-bit quantity (arithmetic coding with balanced
    probability distribution)
  • Rest of significant symbols are encoded with zero
    coding

76
Context in Sign Coding
h
v
h, v neighborhood sign status -1 one or both
negative 0 both insignificant or both
significant but opposite sign 1 one or both sig.
positive
Expected Sign
77
Magnitude Refinement
Whether magnitude refinement has been applied
h, v Defined as in zero coding
78
Context Summary
  • 19 contexts
  • 10 for zero coding
  • 1 for run-length coding
  • 5 for sign coding
  • 3 for magnitude refinement
  • 2 uniform probability in run-length coding
  • For each context, probability of 1 is estimated

1 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 1
0 0 0 0
79
Context Statistics
  • Each context
  • T 9 bit count of total number of symbols
  • N 4 bit count of total number of symbol 1
  • Both count fields are initialized to 1
  • Whenever either counts overflows, both count
    fields are normalized with a right shift
  • At end of a bitplane, both count fields of zero
    coding (10 contexts) are normalized (right shift)
    so long as Tgt32 Ngt2
  • Probability can be calculated by a lookup table
    with 13 bits (16kB)
  • Note
  • Adapted to the expectation that highly skewed
    context will be skewed toward the 0 symbol
  • Adaptation is much quicker towards a less skewed
    distribution

80
Rate-Distortion Optimization
  • For each block
  • Embedded encode each block with the partial
    bitplane coder
  • The end of each partial bitplane is a viable
    truncation point, record the rate Rik and
    distortion Dik, where i indexes the block, k
    indexes truncation point
  • Select a set of monotonically decreasing
    truncation points
  • 1) Set Ni the set of all truncation points,
    set Si0 ?
  • 2) Set p 0,
  • 3) For k1,2,3,4,...
  • If k belongs to Ni , Set DRik Rik - Ri p and
    DDik Dip - Ri k
  • Set Sik Dip / Ri k, if p?0 and Sik gt SiP then
    remove p from Ni and go to step (2)
  • Otherwise, set p k

81
Assemble Bitstream
D1
D2
R1
R2
D3
D4
R3
R4
82
Global R-D Optimization (1)
D1
D2
R1
R2
r1
r2
D3
D4
. . .
R3
R4
r3
r4
83
Global R-D Optimization (2)
D1
D1
D2
D2
R1
R1
R2
R2
r2
r1
r1
r2
D3
D3
D4
D4
. . .
R3
R3
R4
R4
r3
r3
r4
r4
84
Assemble the Bit Stream R-D Optimized Embedding
  • Encoding procedure
  • Set a series of target bytes B1, B2, . . . , Bn
  • For layer i, we gradually adjust li which is a
    decreasing threshold, so that we encode all
    partial bitplanes of a block with Sik gt li and
    the total number of bytes generated in layer i is
    Bi

85
Bit Stream Syntax (Overhead)
  • Number of layers
  • For each block,
  • Whether any bits present in a certain layer
    (start inclusion layer 1 bit every layer
    afterwards)
  • Coded by tag tree, a kind of layered quadtree
  • About 1 bit per block per layer
  • Maximum bit depth
  • Coded by tag tree, a kind of layered quadtree
  • About a few bits once per block
  • Truncation point at each bitstream layer
  • Huffman coded
  • About several bits per block per layer
  • Number of bits included in the current layer
  • About several bits per block per layer

Overhead is quite high
86
Tag Tree Concept
qi(m,n) tag at tree level i index
(m,n) ti(m,n) state variable at tree level i
index (m,n), T(m,n,t) a procedure with
help of the state variable sends sufficient
information to deter- mine if qm,n? t
87
Comment on Tag Tree
  • Advantage of tag tree
  • Distribute overhead information so that only
    those necessary is included at any given moment
  • Compress overhead information
  • Tag tree essence
  • It is actually a layered quadtree coding, with
    layer t defined as
  • Q(m,n) ? t
  • Depending on the order T(m,n,t) is called, the
    information can be encoded one coefficient by
    another, or layer by layer
  • Only necessary information for whether Q(m,n) ? t
    is sent

88
Tag Tree Coding T(m,n,t)
  • (i) set kK, i.e. start at the root node
  • (ii) set tmintK 0,0
  • (iii) set mm/2k-1 and nn/2k-1, so that
    (m,n) is the location in level k
  • (iv) tK m, nlt tmin then set tK m, n tmin
  • (v) if t? tK m, n
  • if k1, we are finished!
  • otherwise, let tmin tK m, n, qK m, n
    so sufficient information has been sent to deduce
    that all descendant nodes have quantities which
    are at least as large as tmin, kk-1, go to step
    (iii)
  • (vi) otherwise, i.e. if t gt tK m, n
  • if qK m, ngttK m, n, emit a "0" bit,
  • else if qK m, ntK m, n emit a "1" bit,
  • else if qK m, nlttK m, n, dont send bits
  • set tK m, n tK m, n1, go to step (v),

89
Tag Tree Coding Sample T(m,n,1)
1 All nodes are greater or equal to t 0 At
least one node is smaller than t
1
90
Tag Tree Coding Sample T(m,n,2)
1
0
1
1
1 All nodes are greater or equal to t 0 At
least one node is smaller than t
1
1
0
1
0
1
0
0
1
0
0
0
1
1
0
91
Tag Tree Coding Sample T(m,n,3)
0
0
1
0
1
1 All nodes are greater or equal to t 0 At
least one node is smaller than t
0
0
1
1
1
0
0
0
0
0
0
0
0
92
Tag Tree Coding Sample T(m,n,4)
0
0
1 All nodes are greater or equal to t 0 At
least one node is smaller than t
0
1
0
93
Tag Tree Information Ordering
  • Depend on the order T(m,n) is called, the coded
    bits of the tag tree are ordered differently.
  • It is called one node after another, the output
    bits are
  • (0,0) 1 0 0 0 0
  • (0,1) 1 0
  • (0,2) 0 1 0
  • (0,3) 1 1 0
  • (0,4) 0 1 0 0
  • (0,5) 1 0
  • It is called layer by layer, the output bits are
  • Layer 1 1
  • Layer 2 0 0 0 0 1 0 1 1 0 1 1 1 0 1 1 1 0 0 1
  • Layer 3 0 0 1 0 0 1 1 0 1 1 0 0 0 0 0 0 0 0
  • Layer 4 0 0 0 1 0

94
Information in Abstraction Layer
  • The tag tree is used for
  • Whether any bits present in a certain layer for
    the block
  • One tag tree per subband, with a tag per block
  • qm,nlm,n-1, lm,n is the first bit stream
    layer which the code block is included
  • If the block has not been included, T(m,n, l) is
    called to determine if the block will be
    included.
  • If the block has been included, one bit sent to
    indicate whether any bits is included in the
    current layer
  • Maximum bit depth
  • One tag tree per subband, with a tag per subblock
  • qm,nP-1- Pmaxm,n, Pmaxm,n is the most
    significant bit-plane of current block, P is the
    most significant bitplane of all blocks
  • invoke T(m,n,t) for t1,2, . . ., until qm,n is
    encoded

95
Information in Abstraction Layer
  • Truncation point information
  • nmin m,n is the minimum value which new
    truncation may take.
  • If first time coded, nmin m,n is the 1st
    non-trival truncation point
  • If already coded, nmin m,n is the last
    truncation point
  • nm,n new truncation point, encode nm,n-
    nmin m,n
  • If nm,n- nmin m,n0, sends 0
  • If nm,n- nmin m,n1, sends 10
  • If nm,n- nmin m,n between 2-4, sends 11
    plus 2 bits with nm,n-nmin m,n-2
  • If nm,n- nmin m,n between 5-35, sends 1111
    plus 5 bits with nm,n-nmin m,n-5
  • If nm,n- nmin m,n gt35, sends 9 1 bits plus
    7 bits with nm,n-nmin m,n-36

96
Tag Tree In Use (cont)
  • Number of bits for each block in the current
    layer
  • Coded with a fixed number of bits
  • Number of bits is
  • bl is a fixed value determined at the beginning
    of the pass so as to be large enough to represent
    the number of bits for all blocks

97
Region of Interest Coding (ROI)
  • Allows certain parts of image to be coded with
    better quality
  • Idea
  • Calculate wavelet transform of whole image/time
  • calculate ROI mask, i.e., set of needed
    coefficients
  • Encoding is done in two ways
  • Sequence based mode
  • Scaling based mode

98
Region-of-Interest (ROI)
  • Scale-down the coefficients outside the ROI so
    those are in lowerer bit-planes
  • Decoded or refined ROI bits before the rest of
    the image.

99
Two Implementations of ROI
  • Sequence based code
  • ROI coefficients are coded as independent
    sequences
  • Allows random access to ROI without fully
    decoding
  • Can specify exact quality/bitrate for ROI and the
    BG
  • Scaling based mode
  • Scale ROI mask coefficients up (decoder scales
    down)
  • During encoding the ROI mask coefficients are
    found significant at early stages of the coding
  • ROI always coded with better quality than BG
  • Can't specify rate for BG and ROI

100
Multiple-Component Image
101
RGB to YUV Transform
  • Forward transform
  • Inverse transform

102
Reversible Color Transform
  • For lossless coding of color images
  • Approximation Y,Cr, Cb (YUV) Transform
  • Note all components must have identical
    subsampling parameters and same depth.

103
R
G
B
104
I
J
K
105
Error Resilience
  • Allows periodical resynchronization markers

Resync mark and error protection
106
Error Resilience
  • Data partition and reshnchronization
  • Error detection and concelment
  • Quality of Service based on priority

107
File Format
  • JP2
  • Metadata
  • Tone-scale or color-space
  • Intellectual property rights (IPR)
  • Vendor specific information

108
Post Processing
  • Simple, non-iterative nonlinear filtering
  • Filter window

109
Conclusion
  • Characteristics
  • embedded lossy to lossless coding
  • progressive by spatial resolution and PSNR
  • good compression performance
  • region of interests
  • error resilience
  • Compared with JPEG, JPEG 2000 provides not only
    better efficiency, but also more functionality

110
References
  • JPEG 2000 webpage
  • http//www.jpeg.org/JPEG2000.htm
  • An Overview of JPEG-2000, M. W. Marcellin, M. J.
    Gormish, A. Bilgin, M. P. Boliek, Proceedings of
    2000 Data Compression Conference.
  • Reference software
  • http//www.imagepower.com/
  • http//jj2000.epfl.ch/
Write a Comment
User Comments (0)
About PowerShow.com