Title: JPEG 2000
1JPEG 2000
- Principle and Features
- Xiaolin Wu
- Polytechnic University
2Outline
- JPEG 2000 overview
- Development history
- Key features of JPEG 2000
- JPEG 2000 technology
- EBCOT entropy coding technique
- R-D optimized layered coding
- Conclusion
3Introduction
- 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.
4History
- 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.
5ISO, IEC JTC
ISO International Standard Organization IEC
International Electritechnical Committee
6JTC1 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
7SC29 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
8Applications/ 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.
9Applications/ 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)
10Applications/ 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
11Why 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
12Why 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
13Acceptable 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.
14archiving
distribution
browsing
15How - 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
16Block Diagram of JPEG 2000
Encoder
Transform
Entropy Cod
Quantization
Channel
Inv. Quant
Inv. Trans
Entropy Dec
Decoder
17Transform
Transform Coeff. 4123, -12.4, -96.7, 4.5,
Original 128, 129, 125, 64, 65,
18Quantization
Quantized Coeff.(Q64) 64, 0, -1, 0,
Transform Coeff. 4123, -12.4, -96.7, 4.5,
19Entropy Coding
0 1 1 0 1 1 0 1 0 1 . . . Coded Bitstream
Quantized Coeff.(Q64) 64, 0, -1, 0,
20Wavelet Transform - 1D
21Wavelet Transform - Issues
- 2D wavelet wavelet packets
- Boundary handling
- Lifting implementation
- Memory efficient implementation
- Tiling (how to avoid boundary artifact)
- Line based wavelet transform
22Wavelet Transform - 2D
Horizontal filtering
Vertical filtering
23(No Transcript)
24Wavelet Packet Structure
spacl
packet
mallat
25Transform Schemes
Lifting Scheme
Convolution Scheme
26Lifting 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
27Inverse 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
28Lifting 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
29Basic 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
30Line-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
31Recommended Wavelet Filter
- Wavelet 9-7 filter for lossy compression
- Best performance at low bit rate
- Relatively high implementation complexity,
especially for hardware
32Recommended Wavelet Filter (cont.)
- I 5-3 filter for integer transform lossless
coding - Integer arithmetic, low implementation complexity
33Quantizer
- Scalar quantizer with a deadzone
Quantized Magnitude
Sign
34Entropy 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
35Code assembly
- Image gtgt Component gtgt Tile gtgt Subband gtgt
Code-Block gtgt Bit-Planes
36Block structure in EBCOT
Res1
Res2
. . .
Encode each block separately record the
bitstream of each block. Block size is 64x64.
37EBCOT - 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
38Two Tier Coding
Assemble bitstream
Block embedded coding
39A Sample JPEG 2000 Bit Stream
40A Sample JPEG 2000 Bit Stream
Overhead is non trivial, but is worth it
41Block 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
42Bits 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
43Conventional Coding
Sign
b1 b2 b3 b4 b5 b6 b7
First
w0 w1 w2 w3 w4 w5 w6 w7
Second
Third
44Embedded 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)
46Coding Bitstream Reordering Based on R-D Slope
D
(D0,R0)
a
e
b
c
c
d
a
d
e
b
R
(Dend,Rend)
47Partial 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
. . . .
-
48Calculation 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
49Calculation of R-D Slope (2)
- Average distortion decrease
- Average coding rate
- with p(x) the normalized a priori probability
50R-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
51R-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
52Function fs(p)
53R-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
54Laplacian Pdf
- Assume pdf is Laplacian with variance s2
- For significance identification
- For refinement coding
55Conclusion 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
56Block structure in EBCOT
57Quadtree 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.
58Partial 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
59Partial 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
60Examples of 2-D Bitplane
MSB
Current Bit Plane
LSB
61Examples 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
62Pass 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
?
63Pass 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
?
64Pass 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
?
65Pass 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
66Pass 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
67Partial 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
68Context-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
69Probability 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
70Arithmetic 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.
71What 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
72Context
- 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)
73Neighborhood 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
74Zero Coding Context
75Run-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
76Context 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
77Magnitude Refinement
Whether magnitude refinement has been applied
h, v Defined as in zero coding
78Context 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
79Context 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
80Rate-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
81Assemble Bitstream
D1
D2
R1
R2
D3
D4
R3
R4
82Global R-D Optimization (1)
D1
D2
R1
R2
r1
r2
D3
D4
. . .
R3
R4
r3
r4
83Global 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
84Assemble 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
85Bit 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
86Tag 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
87Comment 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
88Tag 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),
89Tag 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
90Tag 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
91Tag 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
92Tag 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
93Tag 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
94Information 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
95Information 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
96Tag 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
97Region 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
98Region-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.
99Two 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
101RGB to YUV Transform
- Forward transform
- Inverse transform
102Reversible 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.
103R
G
B
104I
J
K
105Error Resilience
- Allows periodical resynchronization markers
Resync mark and error protection
106Error Resilience
- Data partition and reshnchronization
- Error detection and concelment
- Quality of Service based on priority
107File Format
- JP2
- Metadata
- Tone-scale or color-space
- Intellectual property rights (IPR)
- Vendor specific information
108Post Processing
- Simple, non-iterative nonlinear filtering
- Filter window
109Conclusion
- 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
110References
- 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/