520 likes | 707 Views
JPEG 2000 Part I Final Committee Draft Version 1.0 (N1646R). SOURCE: ISO/IEC JTC1/SC29/WG1 PROJECT: 1.29.15444 DATE: 16 March 2000. 王隆仁. JPEG -2000 encoding. DC level shifting. C1. R. Color Transfor -mation. Color Image. DC level shifting. JPEG -2000 encoding.
E N D
JPEG 2000 Part I Final Committee Draft Version 1.0 (N1646R) SOURCE: ISO/IEC JTC1/SC29/WG1 PROJECT: 1.29.15444 DATE: 16 March 2000 王隆仁
JPEG -2000 encoding DC level shifting C1 R Color Transfor -mation Color Image DC level shifting JPEG -2000 encoding Compressed Image Data C2 G JPEG -2000 encoding DC level shifting C3 B Structure of the JPEG200 multiple-component encoder
Forward Wavelet Transform Coefficient bit modeling Source Image Data Arithmetic encoding Compressed Image Data Quantization (a) encoder Coefficient bit modeling Inverse Wavelet Transform Compressed Image Data Arithmetic decoding De- Quantization Reconstructed Image Data (b) decoder Block diagram of the JPEG2000
Tiling Wavelet transform on each tile Image Component DC level shifting Tiling, DC level shifting and DWT of each image tile component
DC Level Shifting & Component Transformations • DC level shifting with component transform: • DC level shifting without component transform:
Reversible component transformation (RCT) - with 5-3 reversible wavelet transform - Forward RCT : - Inverse RCT :
Irreversible component transformation (ICT) - with 9-7 irreversible wavelet transform - Forward ICT : RGB YCbCr - Inverse ICT :
1) Image Division into Tiles & Tile-components • Reference grid diagram
(Xtosiz,Ytosiz) (Xsiz) (YOsiz) (XOsiz) (Ysiz) (Ytsiz) 297 (Xtsiz) • Example of the mapping of components to the reference grid - Reference grid example (image 16:9, tile 4:3)
Discrete Wavelet Transformation of tile components • Forward discrete wavelet transformation (FDWT) - transforms DC-level shifted tile component samples I(x,y) into a set of sub-bands with coefficients - NL : number of decomposition levels
- FDWT (NL =2) - FDWT procedure
- Inputs and outputs of the 2D_SD procedure - One-level decomposition into four sub-bands
- 2D_SD procedure (1) : 2D_SD performs a two-dimensional decomposition. VER_SD performs a vertical sub-band decomposition.
- 2D_SD procedure (2) : HOR_SD performs a horizontal sub-band decomposition.
- 2D_SD procedure (3) : 2D_DEINTERLEAVE deinterleaves the coefficients into 4 sub-bands.
- 1D_SD procedure (1) : 1D_SD performs a one-dimensional decomposition. For i0=i1-1, Y(i0) = X(i0). For i0 < i1-1 :
1D_EXTD - 1D_SD procedure (2) : 1D_EXTD extends an input signal by periodic symmetric extension.
- 1D_SD procedure (3) : 1D_FILTD uses one reversible 1D_FILTDR or irreversible 1D_FILTDI transformation of image tile component. Both the reversible and irreversible transformations are used lifting-base filtering. Lifting-based filtering consists of a sequence of very simple filtering operation, odd sample values are modified with a weighted sum of even sample values, even sample values are modified with a weighted sum of odd sample values.
- 1D_SD procedure (4) : Reversible 1D filtering (lifting-based, 5/3 filter)
- 1D_SD procedure (5) : Irreversible 1D filtering (lifting-based, 9/7 filter)
Scalar coefficient quantization • After FWT, each coefficient ab(u,v) of subband b is quantized to qb(u,v) : where
- Reversible compression : quantization step size to be 1 - Irreversible compression : For example, b = 2LH
Coefficient bit modeling Coefficient bit modeling with EBCOT • Division of the sub-bands into code-blocks • EBCOT : Embedded Block Coding with Optimized Truncation • Each subband is partitioned into a set of blocks (each so-called code-block) • All blocks within a subband have the same size (possible exception for the blocks at the image boundaries) • Blocks are encoded independently • Post-processing operation determines the extent to which each block’s bitstream should be truncated • Final bitstream is composed of a collection of “layers” 24 JPEG2000
Division of the sub-bands into code-blocks 25 JPEG2000
Coefficient bit modeling EBCOT: layered bitstream formation • Division of the sub-bands into code-blocks • Each bitstream is organized as a succession of layers • Each layer contains additional contributions from each block (some contributions might be empty) • Block truncation points associated with each layer are optimal in the rate distortion sense • Rate distortion optimization can be performed but it does not need to be standardized 26 JPEG2000
Division of the sub-bands into code-blocks 27 JPEG2000
Division of the sub-bands into code-blocks 28 JPEG2000
Division of the sub-bands into code-blocks 29 JPEG2000
Division of the sub-bands into code-blocks 30 JPEG2000
Division of the sub-bands into code-blocks 31 JPEG2000
Code-block scan pattern within code-blocks Each bit-plane of a code-block is scanned in a particular order mentioned as below.
Example : 10 = +1010 1 = +0001 3 = +0011 -7 = -0111
Coefficient bit modeling Arithmetic entropy coding • Division of the sub-bands into code-blocks • Arithmetic encoder inputs and outputs The decision (D) and context (CX) pairs are processed together to produce compressed data (CD) output. Both D and CX are provided by the model unit. CX selects the probability estimate to use during the coding of D. In this International Standard, CX is a label for a context. 37 JPEG2000
Recursive interval subdivision With each binary decision the current probability interval is subdivided into two sub-intervals, the sub-interval for the more probable symbol (MPS) is ordered above the sub-interval for the less probable symbol (LPS). -- Sub-interval for the MPS = A - (Qe * A) ≒ A - Qe -- Sub-interval for the LPS = Qe * A ≒ Qe Whenever the MPS is coded, the value of Qe is added to the code register and the interval is reduced to A - Qe. ( C = C + Qe, A = A – Qe ) Whenever the LPS is coded, the code register is left unchanged and the interval is reduced to Qe. ( C is unchanged, A = Qe ) Coefficient bit modeling • Division of the sub-bands into code-blocks 38 JPEG2000
Encoder for the MQ-coder Coefficient bit modeling • Division of the sub-bands into code-blocks 39 JPEG2000
-- CODELPS procedure with conditional MPS/LPS exchange Coefficient bit modeling • Division of the sub-bands into code-blocks 40 JPEG2000
-- CODEMPS procedure with conditional MPS/LPS exchange Coefficient bit modeling • Division of the sub-bands into code-blocks 41 JPEG2000
-- Encoder renormalisation procedure Coefficient bit modeling • Division of the sub-bands into code-blocks 42 JPEG2000
-- BYTEOUT for encoder Coefficient bit modeling • Division of the sub-bands into code-blocks 43 JPEG2000
-- Initialisation of the encoder -- Setting final bits in C register Coefficient bit modeling • Division of the sub-bands into code-blocks 44 JPEG2000
-- FLUSH procedure Coefficient bit modeling • Division of the sub-bands into code-blocks 45 JPEG2000
Arithmetic decoder inputs and outputs The compressed data CD and a context CX from the decoder's model unit are input to the arithmetic decoder. The decoder's output is the decision D. The encoder and decoder model units need to supply exactly the same context CX for each given decision. Coefficient bit modeling • Division of the sub-bands into code-blocks 46 JPEG2000
-- Decoder for the MQ-coder Coefficient bit modeling • Division of the sub-bands into code-blocks 47 JPEG2000
-- Decoding an MPS or an LPS Coefficient bit modeling • Division of the sub-bands into code-blocks 48 JPEG2000
-- Decoder MPS path conditional exchange procedure Coefficient bit modeling • Division of the sub-bands into code-blocks 49 JPEG2000
-- Decoder LPS path conditional exchange procedure Coefficient bit modeling • Division of the sub-bands into code-blocks 50 JPEG2000