Rec. ITU-T T.800 (06/2019) - Information technology – JPEG 2000 image coding system: Core coding system
Summary
History
FOREWORD
CONTENTS
1 Scope
2 References
     2.1 Identical Recommendations | International Standards
     2.2 Additional references
3 Definitions
4 Abbreviations and symbols
     4.1 Abbreviations
     4.2 Symbols
5 General description
     5.1 Purpose
     5.2 Codestream
     5.3 Coding principles
6 Encoder requirements
7 Decoder requirements
     7.1 Codestream syntax requirements
     7.2 Optional file format requirements
8 Implementation requirements
     A.1 Markers, marker segments and headers
          A.1.1 Types of markers and marker segments
          A.1.2 Syntax similarity with Rec. ITU-T T.81 | ISO/IEC 10918-1
          A.1.3 Marker and marker segment and codestream rules
          A.1.4 Key to graphical descriptions (informative)
     A.2 Information in the marker segments
     A.3 Construction of the codestream
     A.4 Delimiting markers and marker segments
          A.4.1 Start of codestream (SOC)
          A.4.2 Start of tile-part (SOT)
          A.4.3 Start of data (SOD)
          A.4.4 End of codestream (EOC)
     A.5 Fixed information marker segment
          A.5.1 Image and tile size (SIZ)
          A.5.2 Extended Capabilities (CAP)
          A.5.3 Profile (PRF)
     A.6 Functional marker segments
          A.6.1 Coding style default (COD)
          A.6.2 Coding style component (COC)
          A.6.3 Region of interest (RGN)
          A.6.4 Quantization default (QCD)
          A.6.5 Quantization component (QCC)
          A.6.6 Progression order change (POC)
     A.7 Pointer marker segments
          A.7.1 Tile-part lengths (TLM)
          A.7.2 Packet length, main header (PLM)
          A.7.3 Packet length, tile-part header (PLT)
          A.7.4 Packed packet headers, main header (PPM)
          A.7.5 Packed packet headers, tile-part header (PPT)
     A.8 In-bit-stream marker and marker segments
          A.8.1 Start of packet (SOP)
          A.8.2 End of packet header (EPH)
     A.9 Informational marker segments
          A.9.1 Component registration (CRG)
          A.9.2 Comment (COM)
     A.10 Codestream restrictions conforming to this Recommendation | International Standard
          A.10.1 Codestream restrictions for digital cinema applications including archiving
     B.1 Introduction to image data structure concepts
     B.2 Component mapping to the reference grid
     B.3 Image area division into tiles and tile-components
     B.4 Example of the mapping of components to the reference grid (informative)
     B.5 Transformed tile-component division into resolution levels and sub-bands
     B.6 Division of resolution levels into precincts
     B.7 Division of the sub-bands into code-blocks
     B.8 Layers
     B.9 Packets
     B.10 Packet header information coding
          B.10.1 Bit-stuffing routine
          B.10.2 Tag trees
          B.10.3 Zero length packet
          B.10.4 Code-block inclusion
          B.10.5 Zero bit-plane information
          B.10.6 Number of coding passes
          B.10.7 Length of the compressed image data from a given code-block
               B.10.7.1 Single codeword segment
               B.10.7.2 Multiple codeword segments
          B.10.8 Order of information within packet header
     B.11 Tile and tile-parts
     B.12 Progression order
          B.12.1 Progression order determination
               B.12.1.1 Layer-resolution level-component-position progression
               B.12.1.2 Resolution level-layer-component-position progression
               B.12.1.3 Resolution level-position-component-layer progression
               B.12.1.4 Position-component-resolution level-layer progression
               B.12.1.5 Component-position-resolution level-layer progression
          B.12.2 Progression order volumes
          B.12.3 Progression order change signalling
     C.1 Binary encoding (informative)
          C.1.1 Recursive interval subdivision (informative)
          C.1.2 Coding conventions and approximations (informative)
     C.2 Description of the arithmetic encoder (informative)
          C.2.1 Encoder code register conventions (informative)
          C.2.2 Encoding a decision (ENCODE) (informative)
          C.2.3 Encoding a 1 or a 0 (CODE1 and CODE0) (informative)
          C.2.4 Encoding an MPS or LPS (CODEMPS and CODELPS) (informative)
          C.2.5 Probability estimation
          C.2.6 Renormalization in the encoder (RENORME) (informative)
          C.2.7 Compressed image data output (BYTEOUT) (informative)
          C.2.8 Initialization of the encoder (INITENC) (informative)
          C.2.9 Termination of coding (FLUSH) (informative)
     C.3 Arithmetic decoding procedure
          C.3.1 Decoder code register conventions
          C.3.2 Decoding a decision (DECODE)
          C.3.3 Renormalization in the decoder (RENORMD)
          C.3.4 Compressed image data input (BYTEIN)
          C.3.5 Initialization of the decoder (INITDEC)
          C.3.6 Resetting arithmetic coding statistics
          C.3.7 Saving arithmetic coding statistics
     D.1 Code-block scan pattern within code-blocks
     D.2 Coefficient bits and significance
          D.2.1 General case notations
          D.2.2 Notation in the case with ROI
     D.3 Decoding passes over the bit-planes
          D.3.1 Significance propagation decoding pass
          D.3.2 Sign bit decoding
          D.3.3 Magnitude refinement pass
          D.3.4 Cleanup pass
          D.3.5 Example of coding passes and significance propagation (informative)
     D.4 Initializing and terminating
          D.4.1 Expected codestream termination
          D.4.2 Arithmetic coder termination
          D.4.3 Length computation (informative)
     D.5 Error resilience segmentation symbol
     D.6 Selective arithmetic coding bypass
     D.7 Vertically causal context formation
     D.8 Flow diagram of the code-block coding
     E.1 Inverse quantization procedure
          E.1.1 Irreversible transformation
               E.1.1.1 Determination of the quantization step size
               E.1.1.2 Reconstruction of the transform coefficient
          E.1.2 Reversible transformation
               E.1.2.1 Determination of the quantization step size
               E.1.2.2 Reconstruction of the transform coefficient
     E.2 Scalar coefficient quantization (informative)
     F.1 Tile-component parameters
     F.2 Discrete wavelet transformations
          F.2.1 Low-pass and high-pass filtering (informative)
          F.2.2 Decomposition levels
          F.2.3 Discrete wavelet filters (informative)
     F.3 Inverse discrete wavelet transformation
          F.3.1 The IDWT procedure
          F.3.2 The 2D_SR procedure
          F.3.3 The 2D_INTERLEAVE procedure
          F.3.4 The HOR_SR procedure
          F.3.5 The VER_SR procedure
          F.3.6 The 1D_SR procedure
          F.3.7 The 1D_EXTR procedure
          F.3.8 The 1D_FILTR procedure
               F.3.8.1 The 1D_FILTR5-3R procedure
               F.3.8.2 The 1D_FILTR9-7I procedure
                    F.3.8.2.1 Filtering parameters for the 1D_FILTR9-7I procedure
     F.4 Forward transformation (informative)
          F.4.1 The FDWT procedure (informative)
          F.4.2 The 2D_SD procedure (informative)
          F.4.3 The VER_SD procedure (informative)
          F.4.4 The HOR_SD procedure (informative)
          F.4.5 The 2D_DEINTERLEAVE procedure (informative)
          F.4.6 The 1D_SD procedure (informative)
          F.4.7 The 1D_EXTD procedure (informative)
          F.4.8 The 1D_FILTD procedure (informative)
               F.4.8.1 The 1D_FILTD5-3R procedure (informative)
               F.4.8.2 The 1D_FILTD9-7I procedure (informative)
     G.1 DC level shifting of tile-components
          G.1.1 DC level shifting of tile-components (informative)
          G.1.2 Inverse DC level shifting of tile-components
     G.2 Reversible multiple component transformation (RCT)
          G.2.1 Forward RCT (informative)
          G.2.2 Inverse RCT
     G.3 Irreversible multiple component transformation (ICT)
          G.3.1 Forward ICT (informative)
          G.3.2 Inverse ICT
     G.4 Chrominance component sub-sampling and the reference grid
     H.1 Decoding of ROI
     H.2 Description of the Maxshift method
          H.2.1 Encoding of ROI (informative)
          H.2.2 Selection of scaling value, s, at encoder side (informative)
     H.3 Remarks on region of interest coding (informative)
          H.3.1 Region of interest mask generation (informative)
               H.3.1.1 Region of interest mask generation using the 5-3 reversible filter (informative)
               H.3.1.2 Region of interest mask generation using the 9-7 irreversible filter (informative)
          H.3.2 Multi-component remark (informative)
          H.3.3 Disjoint regions remark (informative)
          H.3.4 Implementation precision remark (informative)
          H.3.5 An example of the usage of the Maxshift method (informative)
     I.1 File format scope
     I.2 Introduction to the JP2 file format
          I.2.1 File identification
          I.2.2 File organization
          I.2.3 Greyscale, colour, palette, multi-component specification
          I.2.4 Inclusion of opacity channels
          I.2.5 Metadata
          I.2.6 Conformance with the file format
     I.3 Greyscale/Colour/Palettized/multi-component specification architecture
          I.3.1 Enumerated method
          I.3.2 Restricted ICC profile method
          I.3.3 Using multiple methods
          I.3.4 Palettized images
          I.3.5 Interactions with the decorrelating multiple component transform
          I.3.6 Key to graphical descriptions (informative)
     I.4 Box definition
     I.5 Defined boxes
          I.5.1 JPEG 2000 Signature box
          I.5.2 File Type box
          I.5.3 JP2 Header box (superbox)
               I.5.3.1 Image Header box
               I.5.3.1.1 Default image dimensions
               I.5.3.2 Bits Per Component box
               I.5.3.3 Colour Specification box
               I.5.3.4 Palette box
               I.5.3.5 Component Mapping box
               I.5.3.6 Channel Definition box
               I.5.3.7 Resolution box (superbox)
                    I.5.3.7.1 Capture Resolution box
                    I.5.3.7.2 Default Display Resolution box
          I.5.4 Contiguous Codestream box
     I.6 Adding intellectual property rights information in JP2
     I.7 Adding vendor-specific information to the JP2 file format
          I.7.1 XML boxes
          I.7.2 UUID boxes
          I.7.3 UUID Info boxes (superbox)
               I.7.3.1 UUID List box
               I.7.3.2 Data Entry URL box
     I.8 Dealing with unknown boxes
     J.1 Software conventions adaptive entropy decoder
     J.2 Selection of quantization step sizes for irreversible transformations
     J.3 Filter impulse responses corresponding to lifting-based irreversible filtering procedures
     J.4 Example of discrete wavelet transformation
          J.4.1 Example of 9-7 irreversible wavelet transformation
          J.4.2 Example of 5-3 reversible wavelet transformation
     J.5 Row-based wavelet transform
          J.5.1 The FDWT_ROW procedure
               J.5.1.1 The GET_ROW procedure
          J.5.2 The INIT procedure
          J.5.3 The START_VERT procedure
               J.5.3.1 The RB_VERT_1 procedure
               J.5.3.2 The RB_VERT_2 procedure
               J.5.3.3 The END_1 procedure
               J.5.3.4 The END_2 procedure
          J.5.4 OUTPUT_ROW procedure
     J.6 Scan-based coding
     J.7 Error resilience
     J.8 Implementing the Restricted ICC method outside of a full ICC colour management engine
          J.8.1 Extracting the colour transformation from an ICC profile
               J.8.1.1 ICC profile format
               J.8.1.2 Interpolation tables
               J.8.1.3 Matrix
               J.8.1.4 Combining source and destination profiles
          J.8.2 Colour processing equations for three-component RGB images
          J.8.3 Converting images to sRGB
          J.8.4 Converting images to other colourspaces
          J.8.5 Input and output ranges and quantization
          J.8.6 Taking advantage of multiple colourspace specifications
     J.9 An example of the interpretation of multiple components
     J.10 An example of decoding showing intermediate steps
          J.10.1 Main header
          J.10.2 Tile-part header
          J.10.3 Packet headers
          J.10.4 Arithmetic-coded compressed data
          J.10.5 Wavelet and level shift
     J.11 Visual frequency weighting
          J.11.1 Modify quantization step size
          J.11.2 Modify the embedded coding order
          J.11.3 Visual progressive coding (VIP)
          J.11.4 Recommended frequency weighting tables
     J.12 Encoder sub-sampling of components
     J.13 Rate control
          J.13.1 Introduction to key concepts for rate control
          J.13.2 Layered bit-stream abstraction
          J.13.3 Rate-distortion optimization
          J.13.4 Efficient distortion estimation for R-D optimal truncation
               J.13.4.1 Considerations for non-reversible transformations
               J.13.4.2 Considerations for reversible transformations
     J.14 Guidelines on handling YCC codestream
          J.14.1 Use of multiple component transformation
          J.14.2 Using the JP2 format
          J.14.3 Chrominance offset
     J.15 Guidelines for digital cinema applications
          J.15.1 Reliable multicast transmission of JPEG 2000 codestreams
               J.15.1.1 Introduction
               J.15.1.2 Distribution model
               J.15.1.3 Multicast protocol overview
               J.15.1.4 Packetization strategy
                    J.15.1.4.1 J2K codestream preparation
                         J.15.1.4.1.1  "Layer-Resolution" attribute numbering
                         J.15.1.4.1.2  "Resolution-Layer" attribute numbering
                    J.15.1.4.2 Network packet and attribute number
                    J.15.1.4.3 Multicast protocol header format
               J.15.1.5 Intermediate distributor function
          J.15.2 Implementation guidelines for digital cinema distribution
               J.15.2.1 Experimental conditions
               J.15.2.2 Quantization steps for 2K visually lossless compression
               J.15.2.3 Visual frequency weighting in digital cinema environment
                    J.15.2.3.1 Recommended frequency weighting tables for digital cinema distribution
          J.15.3 Implementation guidelines for the use of JPEG 2000 in film archive applications
               J.15.3.1 Introduction
               J.15.3.2 Digital cinema archives
                    J.15.3.2.1 Ingesting into cinematic archives
                         J.15.3.2.1.1 Ingesting uncompressed digitally produced material
                         J.15.3.2.1.2 Ingesting compressed digital cinema packages (DCPs)
                         J.15.3.2.1.3 Ingesting scanned film material
                    J.15.3.2.2 Disseminating cinematic archives
                    J.15.3.2.3 Exchange of content between cinematic archives
                    J.15.3.2.4 Use of the SMPTE material exchange format for motion picture preservation and access
                         J.15.3.2.4.1 Application specification for the motion picture preservation format
                         J.15.3.2.4.2 Application specification for the motion picture access format
                    J.15.3.2.5 General procedures and archive management
     K.1 General
     K.2 Quantization and entropy coding
     K.3 Wavelet transformation
     K.4 Region of interest coding
     K.5 Visual frequency weighting
     K.6 Error resilience
     K.7 Scan-based coding
     K.8 Colour
     K.9 Guidelines for digital cinema applications
     M.1 Introduction
     M.2 Definitions
     M.3 Access unit construction
     M.4 Elementary stream marker box (superbox)
          M.4.1 Frame Rate Coding box (required)
          M.4.2 Maximum Bit Rate box (required)
          M.4.3 Field Coding box (optional)
          M.4.4 Time Code box (required)
          M.4.5 Broadcast Colour Specification box (required)
          M.4.6 Mastering Display Metadata Box (required)