Information technology — JPEG 2000 image coding system — Part 5: Reference software

Rec. ITU-T T.800 | ISO/IEC 15444-1 defines a set of lossless and lossy compression methods for coding continuous-tone, bi-level, greyscale or colour digital still images. This Recommendation | International Standard provides three independently created software reference implementations of Rec. ITU-T T.800 | ISO/IEC 15444-1, in order to assist implementers of Rec. ITU-T T.800 | ISO/IEC 15444-1 in testing and understanding its content. The packages are JASPER, JJ2000 and OPENJPEG. This Recommendation | International Standard also provides an independently created software reference implementation of Rec. ITU-T T.814 | ISO/IEC 15444-15, which specifies a high-throughput (HT) block coding algorithm that can be used in place of the block coding algorithm of Rec. ITU-T T.800 | ISO/IEC 15444-1, in order to assist implementers of Rec. ITU-T T.814 | ISO/IEC 15444-15 in testing and understanding its content. The package is TT. This Recommendation | International Standard additionally provides an independently created software reference implementation for parsing of a JP2 file format specified in Rec. ITU-T T.800 | ISO/IEC 15444-1 and a JPH file format specified in Rec. ITU-T T.814 | ISO/IEC 15444-15, The package is Codestream-parser. This Recommendation | International Standard does not define any additional part of the JPEG 2000 image coding system. Each version of the J2K reference software contains source code, which can be compiled to provide the following functionality: – Transcoding from selected, widely available image formats into a JPEG 2000 codestream. – Transcoding from selected, widely available image formats into the JP2 file format. – Selection of a wide range of JPEG 2000 encoding options (as documented in each reference software). – Decoding from a JPEG 2000 codestream to a range of selected widely available image formats. – Processing of a JP2 file to extract a JPEG 2000 codestream for decoding and conversion to a range of selected widely available image formats. – The ability to extract metadata from a JP2 file, including the contents of the Image Header box and the colour space. – The decoding of JP2 files that use the three-component matrix-based form of the restricted ICC method for the specification of colour space and the conversion of the decoded image data to the sRGB colour space for display, including limited upsampling of all decoded components to the same resolution. – The decoding of JP2 files that use the monochrome form of the restricted ICC method for the specification of colour space and the conversion of the decoded image data to the sRGB based greyscale space as defined within the JP2 file format. – The decoding of JP2 files that use the sYCC colour space and the conversion of the decoded image data to the sRGB colour space for display, including upsampling of all decoded components to the same resolution. – Some additional tools to help with evaluation and testing. The TT HTJ2K reference software contains source code, which can be compiled to provide the following functionality: – Decoding from a HTJ2K codestream to a range of selected widely available image formats. The codestream-parser reference software contains source code, which can provide the following functionality: – Parsing of JP2 file format; – Parsing of JPH file format. The reference software is intended for use as a testing and validation tool for other implementations of JPEG 2000, and to help in the understanding of Rec. ITU-T T.800 | ISO/IEC 15444-1 and Rec. ITU-T T.814 | ISO/IEC 15444-15.

Technologies de l'information — Système de codage d'images JPEG 2000 — Partie 5: Logiciel de référence

General Information

Status
Published
Publication Date
28-Oct-2021
Current Stage
6060 - International Standard published
Start Date
29-Oct-2021
Completion Date
29-Oct-2021
Ref Project

RELATIONS

Buy Standard

Standard
ISO/IEC 15444-5:2021 - Information technology -- JPEG 2000 image coding system
English language
25 pages
sale 15% off
Preview
sale 15% off
Preview
Draft
ISO/IEC FDIS 15444-5:Version 12-okt-2020 - Information technology -- JPEG 2000 image coding system
English language
25 pages
sale 15% off
Preview
sale 15% off
Preview

Standards Content (sample)

INTERNATIONAL ISO/IEC
STANDARD 15444-5
Third edition
2021-10
Information technology — JPEG 2000
image coding system —
Part 5:
Reference software
Technologies de l'information — Système de codage d'images JPEG
2000 —
Partie 5: Logiciel de référence
Reference number
ISO/IEC 15444-5:2021(E)
© ISO/IEC 2021
---------------------- Page: 1 ----------------------
ISO/IEC 15444-5:2021(E)
COPYRIGHT PROTECTED DOCUMENT
© ISO/IEC 2021

All rights reserved. Unless otherwise specified, or required in the context of its implementation, no part of this publication may

be reproduced or utilized otherwise in any form or by any means, electronic or mechanical, including photocopying, or posting on

the internet or an intranet, without prior written permission. Permission can be requested from either ISO at the address below

or ISO’s member body in the country of the requester.
ISO copyright office
CP 401 • Ch. de Blandonnet 8
CH-1214 Vernier, Geneva
Phone: +41 22 749 01 11
Email: copyright@iso.org
Website: www.iso.org
Published in Switzerland
© ISO/IEC 2021 – All rights reserved
---------------------- Page: 2 ----------------------
ISO/IEC 15444-5:2021(E)
Foreword

ISO (the International Organization for Standardization) and IEC (the International Electrotechnical

Commission) form the specialized system for worldwide standardization. National bodies that are

members of ISO or IEC participate in the development of International Standards through technical

committees established by the respective organization to deal with particular fields of technical activity.

ISO and IEC technical committees collaborate in fields of mutual interest. Other international

organizations, governmental and non-governmental, in liaison with ISO and IEC, also take part in the

work.

The procedures used to develop this document and those intended for its further maintenance are

described in the ISO/IEC Directives, Part 1. In particular, the different approval criteria needed for the

different types of document should be noted.

Attention is drawn to the possibility that some of the elements of this document may be the subject of

patent rights. ISO and IEC shall not be held responsible for identifying any or all such patent rights. Details

of any patent rights identified during the development of the document will be in the Introduction and/or

on the ISO list of patent declarations received (see www.iso.org/patents) or the IEC list of patent

declarations received (see https://patents.iec.ch).

Any trade name used in this document is information given for the convenience of users and does not

constitute an endorsement.

For an explanation of the voluntary nature of standards, the meaning of ISO specific terms and

expressions related to conformity assessment, as well as information about ISO's adherence to the World

Trade Organization (WTO) principles in the Technical Barriers to Trade (TBT)

see www.iso.org/iso/foreword.html. In the IEC, see www.iec.ch/understanding-standards.

This document was prepared by ITU-T (as ITU-T REC. T.803) and drafted in accordance with its editorial

rules, in collaboration with Joint Technical Committee ISO/IEC JTC 1, Information technology,

Subcommittee SC 29, Coding of audio, picture, multimedia and hypermedia information.

This third edition cancels and replaces the second edition (ISO/IEC 15444-5:2015), which has been

technically revised.
The main changes are as follows:

— addition of a software reference implementation of a High Throughput (HT) block coding algorithm

specified in Rec. ITU-T T.814 | ISO/IEC 15444-15; and

— addition of a software reference implementation of a JPH file format specified in Rec. ITU-T T.814 |

ISO/IEC 15444-15.

A list of all parts in the ISO/IEC 15444 series can be found on the ISO and IEC websites.

Any feedback or questions on this document should be directed to the user’s national standards body. A

complete listing of these bodies can be found at www.iso.org/members.html and www.iec.ch/national-

committees.
© ISO/IEC 2021 – All rights reserved iii
---------------------- Page: 3 ----------------------
ISO/IEC 15444-5:2021(E)
TABLE OF CONTENTS
Page

1 Scope .............................................................................................................................................................. 1

2 Normative references ..................................................................................................................................... 2

2.1 Identical Recommendations | International Standards ........................................................................ 2

2.2 Additional references .......................................................................................................................... 2

3 Definitions ...................................................................................................................................................... 2

4 Abbreviations and symbols ............................................................................................................................ 5

4.1 Abbreviations ...................................................................................................................................... 5

4.2 Symbols .............................................................................................................................................. 5

5 Conventions .................................................................................................................................................... 6

6 General description ........................................................................................................................................ 6

7 Copyright and licensing ................................................................................................................................. 6

8 Platform requirements .................................................................................................................................... 7

9 Reference code structure ................................................................................................................................ 7

9.1 JasPer executables ............................................................................................................................... 7

9.2 JJ2000 executables .............................................................................................................................. 7

9.3 OpenJPEG executables ....................................................................................................................... 8

9.4 TT executable ...................................................................................................................................... 8

9.5 Codestream-parser executable ............................................................................................................ 8

10 Software availability and updates ................................................................................................................... 8

Annex A – JASPER – C reference software – software description ......................................................................... 9

A.1 Introduction ......................................................................................................................................... 9

A.2 Software updates ................................................................................................................................. 9

A.3 Version numbering .............................................................................................................................. 9

A.4 Software overview .............................................................................................................................. 9

A.5 JasPer library ....................................................................................................................................... 10

A.6 JasPer demo application programs ...................................................................................................... 10

A.7 Software requirements ........................................................................................................................ 11

A.8 Building the software .......................................................................................................................... 11

A.9 Using the software .............................................................................................................................. 11

Annex B – JJ2000 – Java reference software – software description ........................................................................ 12

B.1 Introduction ......................................................................................................................................... 12

B.2 Software updates ................................................................................................................................. 12

B.3 Software architecture .......................................................................................................................... 12

B.4 Installing and running the software ..................................................................................................... 13

Annex C – OpenJPEG – C reference software - software description ...................................................................... 14

C.1 Introduction ......................................................................................................................................... 14

C.2 Getting and updating the software ...................................................................................................... 14

C.3 Building and using the software .......................................................................................................... 14

C.4 Testing the software ............................................................................................................................ 14

Annex D – TT – C++ reference software – software description .............................................................................. 15

D.1 General ................................................................................................................................................ 15

D.2 Getting the software ............................................................................................................................ 15

D.3 Building and using the software .......................................................................................................... 15

D.4 Source files .......................................................................................................................................... 15

D.5 Testing the software ............................................................................................................................ 16

Annex E – Codestream-parser – Python reference software – software description ................................................. 17

E.1 General ................................................................................................................................................ 17

E.2 Getting the software ............................................................................................................................ 17

E.3 Using the software .............................................................................................................................. 17

E.4 Source files .......................................................................................................................................... 17

Rec. ITU-T T.804 (06/2021) v
© ISO/IEC 2021 – All rights reserved
---------------------- Page: 4 ----------------------
ISO/IEC 15444-5:2021(E)
Page

E.5 Testing the software ............................................................................................................................ 17

Bibliography .............................................................................................................................................................. 18

Electronic attachment: JASPER, JJ2000, OPENJPEG, TT, Codestream-parser reference packages.

vi Rec. ITU-T T.804 (06/2021) © ISO/IEC 2021 – All rights reserved
---------------------- Page: 5 ----------------------
ISO/IEC 15444-5:2021 (E)
INTERNATIONAL STANDARD
ITU-T RECOMMENDATION
Information technology –
JPEG 2000 image coding system: Reference software
1 Scope

Rec. ITU-T T.800 | ISO/IEC 15444-1 defines a set of lossless and lossy compression methods for coding continuous-

tone, bi-level, greyscale or colour digital still images. This Recommendation | International Standard provides three

independently created software reference implementations of Rec. ITU-T T.800 | ISO/IEC 15444-1, in order to assist

implementers of Rec. ITU-T T.800 | ISO/IEC 15444-1 in testing and understanding its content. The packages are JASPER,

JJ2000 and OPENJPEG.

This Recommendation | International Standard also provides an independently created software reference implementation

of Rec. ITU-T T.814 | ISO/IEC 15444-15, which specifies a high-throughput (HT) block coding algorithm that can be

used in place of the block coding algorithm of Rec. ITU-T T.800 | ISO/IEC 15444-1, in order to assist implementers of

Rec. ITU-T T.814 | ISO/IEC 15444-15 in testing and understanding its content. The package is TT.

This Recommendation | International Standard additionally provides an independently created software reference

implementation for parsing of a JP2 file format specified in Rec. ITU-T T.800 | ISO/IEC 15444-1 and a JPH file format

specified in Rec. ITU-T T.814 | ISO/IEC 15444-15, The package is Codestream-parser.

This Recommendation | International Standard does not define any additional part of the JPEG 2000 image coding system.

Each version of the J2K reference software contains source code, which can be compiled to provide the following

functionality:

– Transcoding from selected, widely available image formats into a JPEG 2000 codestream.

– Transcoding from selected, widely available image formats into the JP2 file format.

– Selection of a wide range of JPEG 2000 encoding options (as documented in each reference software).

– Decoding from a JPEG 2000 codestream to a range of selected widely available image formats.

– Processing of a JP2 file to extract a JPEG 2000 codestream for decoding and conversion to a range of

selected widely available image formats.

– The ability to extract metadata from a JP2 file, including the contents of the Image Header box and the

colour space.

– The decoding of JP2 files that use the three-component matrix-based form of the restricted ICC method

for the specification of colour space and the conversion of the decoded image data to the sRGB colour

space for display, including limited upsampling of all decoded components to the same resolution.

– The decoding of JP2 files that use the monochrome form of the restricted ICC method for the specification

of colour space and the conversion of the decoded image data to the sRGB based greyscale space as defined

within the JP2 file format.

– The decoding of JP2 files that use the sYCC colour space and the conversion of the decoded image data to

the sRGB colour space for display, including upsampling of all decoded components to the same

resolution.
– Some additional tools to help with evaluation and testing.

The TT HTJ2K reference software contains source code, which can be compiled to provide the following functionality:

– Decoding from a HTJ2K codestream to a range of selected widely available image formats.

The codestream-parser reference software contains source code, which can provide the following functionality:

– Parsing of JP2 file format;
– Parsing of JPH file format.

The reference software is intended for use as a testing and validation tool for other implementations of JPEG 2000, and

to help in the understanding of Rec. ITU-T T.800 | ISO/IEC 15444-1 and Rec. ITU-T T.814 | ISO/IEC 15444-15.

____________________

This Specification includes an electronic attachment containing the JASPER, JJ2000, OPENJPEG, TT, Codestream-parser

reference packages.
Rec. ITU-T T.804 (06/2021) 1
© ISO/IEC 2021 – All rights reserved
---------------------- Page: 6 ----------------------
ISO/IEC 15444-5:2021 (E)
2 Normative references

The following Recommendations and International Standards contain provisions which, through reference in this text,

constitute provisions of this Recommendation | International Standard. For dated references, only the edition cited applies.

For undated references, the latest edition of the referenced document (including any amendments) applies. At the time of

publication, the editions indicated in dated references were valid. All Recommendations and Standards are subject to

revision, and parties to agreements based on this Recommendation | International Standard are encouraged to investigate

the possibility of applying the most recent edition of the Recommendations and Standards listed below. Members of IEC

and ISO maintain registers of currently valid International Standards. The Telecommunication Standardization Bureau of

the ITU maintains a list of currently valid ITU-T Recommendations.
2.1 Identical Recommendations | International Standards

– Recommendation ITU-T T.800 | ISO/IEC 15444-1, Information technology – JPEG 2000 Image Coding

System: Core coding system.

– Recommendation ITU-T T.814 | ISO/IEC 15444-15, Information technology – JPEG 2000 image coding

system – Part 15: High Throughput JPEG 2000.
2.2 Additional references
– ISO/IEC 9899:1999, Programming languages – C.

– ISO/IEC 9945-1:1996, Information technology – Portable Operating System Interface (POSIX) – Part 1:

System Application Program Interface (API) (C language).

– ISO/IEC 9945-2:1993, Information technology – Portable Operating System Interface (POSIX) – Part 2:

Shell and utilities.
– ISO/IEC 14882:2011, Programming languages – C++.
3 Definitions

For the purposes of this Recommendation | International Standard, the following definitions apply:

3.1 big endian: The bits of a value representation occur in order from most significant to least significant.

3.2 bit: A contraction of the term "binary digit"; a unit of information represented by a zero or a one.

3.3 bit-plane: A two-dimensional array of bits. In this Recommendation | International Standard, a bit-plane refers

to all the bits of the same magnitude in all coefficients or samples. This could refer to a bit-plane in a component, tile-

component, code-block, region of interest, or other.

3.4 bit stream: The actual sequence of bits resulting from the coding of a sequence of symbols. It does not include

the markers or marker segments in the main and tile-part headers or the EOC marker. It does include any packet headers

and in stream markers and marker segments not found within the main or tile-part headers.

3.5 box: A portion of the file format defined by a length and unique box type. Boxes of some types may contain

other boxes.

3.6 box contents: Refers to the data wrapped within the box structure. The contents of a particular box are stored

within the DBox field within the Box data structure.
3.7 byte: Eight bits.

3.8 channel: One logical component of the image. A channel may be a direct representation of one component from

the codestream, or may be generated by the application of a palette to a component from the codestream.

3.9 code-block: A rectangular grouping of coefficients from the same subband of a tile-component.

3.10 coder: An embodiment of either an encoding or decoding process.

3.11 codestream: A collection of one or more bit streams and the main header, tile-part headers, and the EOC

required for their decoding and expansion into image data. This is the image data in a compressed form with all of the

signalling needed to decode.
3.12 coefficient: The values that are the result of a transformation.

3.13 component: A two-dimensional array of samples. An image typically consists of several components, for

instance representing red, green and blue.
2 Rec. ITU-T T.804 (06/2021)
© ISO/IEC 2021 – All rights reserved
---------------------- Page: 7 ----------------------
ISO/IEC 15444-5:2021 (E)

3.14 compressed image data: Part or all of a bit stream. Can also refer to a collection of bit streams in part or all of

a codestream.

3.15 decoder: An embodiment of a decoding process, and optionally a colour transformation process.

3.16 decoding process: A process which takes as its input all or part of a codestream and outputs all or part of a

reconstructed image.

3.17 discrete wavelet transformation (DWT): A transformation that iteratively transforms one signal into two or

more filtered and decimated signals corresponding to different frequency bands. This transformation operates on spatially

discrete samples.
3.18 encoder: An embodiment of an encoding process.

3.19 encoding process: A process that takes as its input all or part of a source image data and outputs a codestream.

3.20 file format: A codestream and additional support data and information not explicitly required for the decoding

of codestream. Examples of such support data include text fields providing titling, security and historical information,

data to support placement of multiple codestreams within a given data file, and data to support exchange between

platforms or conversion to other file formats.

3.21 header: Either a part of the codestream that contains only markers and marker segments (main header and tile-

part header) or the signalling part of a packet (packet header).
3.22 image: The set of all components.

3.23 image area: A rectangular part of the reference grid, registered by offsets from the origin and the extent of the

reference grid.

3.24 image area offset: The number of reference grid points down and to the right of the reference grid origin where

the origin of the image area can be found.

3.25 image data: The components and component samples making up an image. Image data can refer to either the

source image data or the reconstructed image data.

3.26 irreversible: A transformation, progression, system, quantization, or other process that, due to systemic or

quantization error, disallows lossless recovery. An irreversible process can only lead to lossy compression.

3.27 JP2: The name of the file format defined by Rec. ITU-T T.800 | ISO/IEC 15444-1.

3.28 JPEG: Used to refer globally to the encoding and decoding process of the following Recommendations |

International Standards:

– Recommendation ITU-T T.81 (1992) | ISO/IEC 10918-1:1994, Information technology – Digital

compression and coding of continuous-tone still images: Requirements and guidelines.

– Recommendation ITU-T T.83 (1994) | ISO/IEC 10918-2:1995, Information technology – Digital

compression and coding of continuous-tone still images: Compliance testing.

– Recommendation ITU-T T.84 (1996) | ISO/IEC 10918-3:1997, Information technology – Digital

compression and coding of continuous-tone still images: Extensions.

– Recommendation ITU-T T.84 (1996)/Amd. 1 (1999), Information technology – Digital compression and

coding of continuous-tone still images: Extensions – Amendment 1: Provisions to allow registration of

new compression types and versions in the SPIFF header.

– Recommendation ITU-T T.86 (1998) | ISO/IEC 10918-4, Information technology – Digital compression

and coding of continuous-tone still images: Registration of JPEG Profiles, SPIFF Profiles, SPIFF Tags,

SPIFF colour Spaces, APPn Markers, SPIFF Compression types and Registration authorities (REGAUT).

3.29 JPEG 2000: Used to refer globally to the encoding and decoding processes in this Recommendation |

International Standard and their embodiment in applications.

3.30 layer: A collection of compressed image data from coding passes of one, or more, code-blocks of a tile-

component. Layers have an order for encoding and decoding that is required to be preserved.

3.31 lossless: A descriptive term for the effect of the overall encoding and decoding processes in which the output

of the decoding process is identical to the input to the encoding process. Distortion free restoration can be assured. All of

the coding processes or steps used for encoding and decoding are reversible.

3.32 lossy: A descriptive term for the effect of the overall encoding and decoding processes in which the output of

the decoding process is not identical to the input to the encoding process. There is distortion (measured mathematically).

At least one of the coding processes or steps used for encoding and decoding is irreversible.

Rec. ITU-T T.804 (06/2021) 3
© ISO/IEC 2021 – All rights reserved
---------------------- Page: 8 ----------------------
ISO/IEC 15444-5:2021 (E)

3.33 marker: A two-byte code in which the first byte is hexadecimal FF (0xFF) and the second byte is a value

between 1 (0x01) and hexadecimal FE (0xFE).
3.34 marker segment: A marker and associated (not empty) set of parameters.

3.35 packet: A part of the bit stream comprising a packet header and the compressed image data from one layer of

one precinct of one resolution level of one tile-component.

3.36 packet header: Portion of the packet that contains signalling necessary for decoding that packet.

3.37 precinct: A one rectangular region of a transformed tile-component, within each resolution level, used for

limiting the size of packets.

3.38 precision: Number of bits allocated to a particular sample, coefficient, or other binary numerical representation.

3.39 progression: The order of a codestream where the decoding of each successive bit contributes to a "better"

reconstruction of the image. What metrics make the reconstruction "better" is a function of the application. Some

examples of progression are increasing resolution or improved sample fidelity.

3.40 quantization: A method of reducing the precision of the individual coefficients to reduce the number of bits

used to entropy code them. This is equivalent to division while compressing and multiplying while decompressing.

Quantization can be achieved by an explicit operation with a given quantization value or by dropping (truncating) coding

passes from the codestream.

3.41 raster order: A particular sequential order of data of any type within an array. The raster order starts with the

top left data point and moves to the immediate right data point, and so on, to the end of the row. After the end of the row

is reached, the next data point in the sequence is the left-most data point immediately below the current row. This order

is continued to the end of the array.
3.42 reconstructed image: An image that is the output of a decoder.

3.43 reconstructed sample: A sample reconstructed by the decoder. This always equals the original sample value

in lossless coding but may differ from the original sample value in lossy coding.

3.44 reference grid: A regular rectangular array of points used as a reference for other rectangular arrays of data.

Examples include components and tiles.

3.45 reference tile: A rectangular sub-grid of any size associated with the reference grid.

3.46 region of interest (ROI): A collection of coefficients that are considered of particular relevance by some user

defined measure.

3.47 resolution level: Equivalent to decomposition level with one exception: the LL subband is also a separate

resolution level.

3.48 reversible: A transformation, progression, system, or other process that does not suffer systemic or quantization

error and, therefore, allows lossless signal recovery.

3.49 sample: One element in the two-dimensional array that comprises a component.

3.50 source image: An image used as input to an encoder.

3.51 subband: A group of transform coefficients resulting from the same sequence of low-pass and high-pass

filtering operations, both vertically and horizontally.
3.52 subband coefficient: A transform coefficient within a given subband.

3.53 tile: A rectangular array of points on the reference grid, registered with and offset from the reference grid origin

and defined by a width and height. The tiles which overlap are used to define tile-components.

3.54 tile-component: All the samples of a given component in a tile.

3.55 tile index: The index of the current tile ranging from zero to the number of tiles minus one.

3.56 transformation: A mathematical mapping from one signal space to another.

3.57 J2K: Used to refer to the encoding and decoding processes in Rec. ITU-T T.800 | ISO/IEC 15444-1.

3.58 HTJ2K: Used to refer to the encoding and decoding processes in Rec. ITU-T T.814 | ISO/IEC 15444-15.

3.59 JPH: The name of the file format defined by Rec. ITU-T T.814 | ISO/IEC 15444-15.

4 Rec. ITU-T T.804 (06/2021)
© ISO/IEC 2021 – All rights reserved
---------------------- Page: 9 ----------------------
ISO/IEC 15444-5:2021 (E)
4 Abbreviations and symbols
4.1 Abbreviations

For the purposes of this Recommendation | International Standard, the following abbreviations apply:

ICC International Colour Consortium
ICT Irreversible Colour transformation

JPEG Joint Photographic Experts Group – The joint ISO/ITU committee responsible for developing

standards for continuous-tone still picture coding. It also refers to the standards produced by this

committee: Rec. ITU-T T.81 | ISO/IEC 10918-1, Rec. ITU-T T.83 | ISO/IEC 10918-2,
Rec. ITU-T T.84 | ISO/IEC 10918-3 and Rec. ITU-T T.87 | ISO/IEC 14495-1
JURA JPEG Utilities Registration Authority
1D-DWT One-dimensional Discrete Wavelet Transfor
...

FINAL
INTERNATIONAL ISO/IEC
DRAFT
STANDARD FDIS
15444-5
ISO/IEC JTC 1/SC 29
Information technology — JPEG 2000
Secretariat: JISC
image coding system —
Voting begins on:
2020-10-20
Part 5:
Voting terminates on:
Reference software
2020-12-15
Technologies de l'information — Système de codage d'images JPEG
2000 —
Partie 5: Logiciel de référence
RECIPIENTS OF THIS DRAFT ARE INVITED TO
SUBMIT, WITH THEIR COMMENTS, NOTIFICATION
OF ANY RELEVANT PATENT RIGHTS OF WHICH
THEY ARE AWARE AND TO PROVIDE SUPPOR TING
DOCUMENTATION.
IN ADDITION TO THEIR EVALUATION AS
Reference number
BEING ACCEPTABLE FOR INDUSTRIAL, TECHNO-
ISO/IEC FDIS 15444-5:2020(E)
LOGICAL, COMMERCIAL AND USER PURPOSES,
DRAFT INTERNATIONAL STANDARDS MAY ON
OCCASION HAVE TO BE CONSIDERED IN THE
LIGHT OF THEIR POTENTIAL TO BECOME STAN-
DARDS TO WHICH REFERENCE MAY BE MADE IN
NATIONAL REGULATIONS. ISO/IEC 2020
---------------------- Page: 1 ----------------------
ISO/IEC FDIS 15444-5:2020(E)
COPYRIGHT PROTECTED DOCUMENT
© ISO/IEC 2020

All rights reserved. Unless otherwise specified, or required in the context of its implementation, no part of this publication may

be reproduced or utilized otherwise in any form or by any means, electronic or mechanical, including photocopying, or posting

on the internet or an intranet, without prior written permission. Permission can be requested from either ISO at the address

below or ISO’s member body in the country of the requester.
ISO copyright office
CP 401 • Ch. de Blandonnet 8
CH-1214 Vernier, Geneva
Phone: +41 22 749 01 11
Email: copyright@iso.org
Website: www.iso.org
Published in Switzerland
ii © ISO/IEC 2020 – All rights reserved
---------------------- Page: 2 ----------------------
ISO/IEC FDIS 15444-5:2020(E)
Contents Page

Foreword ......................................................................................................................................................................... iv

1 Scope ..................................................................................................................................................................... 1

2 Normative references ..................................................................................................................................... 2

3 Definitions .......................................................................................................................................................... 3

4 Abbreviations and symbols .......................................................................................................................... 8

4.1 Abbreviations .................................................................................................................................................... 8

4.2 Symbols ............................................................................................................................................................... 9

5 Conventions .................................................................................................................................................... 10

6 General description...................................................................................................................................... 10

7 Copyright and licensing .............................................................................................................................. 11

8 Platform requirements ............................................................................................................................... 12

9 Reference code structure ........................................................................................................................... 12

9.1 JasPer executables ........................................................................................................................................ 12

9.2 JJ2000 executables ....................................................................................................................................... 12

9.3 OpenJPEG executables................................................................................................................................. 13

9.4 TT executable ................................................................................................................................................. 13

9.5 Codestream-parser executable ................................................................................................................ 13

10 Software availability and updates .......................................................................................................... 13

Annex A (informative) JASPER – C reference software – software description ................................... 14

Annex B (informative) JJ2000 – Java reference software – software description .............................. 18

Annex C (informative) OpenJPEG – C reference software - software description .............................. 20

Annex D (informative) TT – C++ reference software - software description ....................................... 21

Annex E (informative) Codestream-parser – Python reference software - software

description ...................................................................................................................................................... 24

Bibliography ................................................................................................................................................................. 25

© ISO/IEC 2020 – All rights reserved iii
---------------------- Page: 3 ----------------------
ISO/IEC FDIS 15444-5:2020(E)
Foreword

ISO (the International Organization for Standardization) and IEC (the International Electrotechnical

Commission) form the specialized system for worldwide standardization. National bodies that are

members of ISO or IEC participate in the development of International Standards through technical

committees established by the respective organization to deal with particular fields of technical activity.

ISO and IEC technical committees collaborate in fields of mutual interest. Other international

organizations, governmental and non-governmental, in liaison with ISO and IEC, also take part in the

work.

The procedures used to develop this document and those intended for its further maintenance are

described in the ISO/IEC Directives, Part 1. In particular, the different approval criteria needed for the

different types of document should be noted. This document was drafted in accordance with the editorial

rules of the ISO/IEC Directives, Part 2 (see www.iso.org/directives).

Attention is drawn to the possibility that some of the elements of this document may be the subject of

patent rights. ISO and IEC shall not be held responsible for identifying any or all such patent rights. Details

of any patent rights identified during the development of the document will be in the Introduction and/or

on the ISO list of patent declarations received (see www.iso.org/patents) or the IEC list of patent

declarations received (see http://patents.iec.ch).

Any trade name used in this document is information given for the convenience of users and does not

constitute an endorsement.

For an explanation of the voluntary nature of standards, the meaning of ISO specific terms and

expressions related to conformity assessment, as well as information about ISO's adherence to the World

Trade Organization (WTO) principles in the Technical Barriers to Trade (TBT),
see www.iso.org/iso/foreword.html.

This document was prepared by ITU-T (as Recommendation ITU-T T.804) and drafted in accordance

with its editorial rules. It was adopted by Joint Technical Committee ISO/IEC JTC 1, Information

technology, Subcommittee SC 29, Coding of audio, picture, multimedia and hypermedia information.

This third edition cancels and replaces the second edition (ISO/IEC 15444-5:2015) which has

been technically revised. The main changes compared to the previous edition are as follows:

— addition of a software reference implementation of a High Throughput (HT) block coding

algorithm
specified in Rec. ITU-T T.814 | ISO/IEC 15444-15; and

— addition of a software reference implementation of a JPH file format specified in Rec. ITU-T T.814 |

ISO/IEC 15444-15.
A list of all parts in the ISO/IEC 15444 series can be found on the ISO website.

Any feedback or questions on this document should be directed to the user’s national standards body.

A complete listing of these bodies can be found at www.iso.org/members.html.
iv © ISO/IEC 2020 – All rights reserved
---------------------- Page: 4 ----------------------
FINAL DRAFT INTERNATIONAL STANDARD ISO/IEC FDIS 15444-5:2020(E)
Information technology — JPEG 2000 image coding
system —
Part 5:
Reference Software
1 Scope

Rec. ITU-T T.800 | ISO/IEC 15444-1 defines a set of lossless and lossy compression methods for coding

continuous-tone, bi-level, greyscale or colour digital still images. This Recommendation | International

Standard provides three independently created software reference implementations of Rec. ITU-T T.800

| ISO/IEC 15444-1, in order to assist implementers of Rec. ITU-T T.800 | ISO/IEC 15444-1 in testing and

understanding its content. The packages are JASPER, JJ2000 and OPENJPEG.

This Recommendation | International Standard also provides an independently created software

reference implementation of Rec. ITU-T T.814 | ISO/IEC 15444-15, which specifies a high-throughput

(HT) block coding algorithm that can be used in place of the block coding algorithm of Rec. ITU-T T.800 |

ISO/IEC 15444-1, in order to assist implementers of Rec. ITU-T T.814 | ISO/IEC 15444-15 in testing and

understanding its content. The package is TT.

This Recommendation | International Standard additionally provides an independently created software

reference implementation for parsing of a JP2 file format specified in Rec. ITU-T T.800 | ISO/IEC 15444-

1 and a JPH file format specified in Rec. ITU-T T.814 | ISO/IEC 15444-15, The package is codestream-

parser.

This Recommendation | International Standard does not define any additional part of the JPEG 2000

image coding system.

Each version of the J2K reference software contains source code, which can be compiled to provide the

following functionality:

— Transcoding from selected, widely available image formats into a JPEG 2000 codestream.

— Transcoding from selected, widely available image formats into the JP2 file format.

— Selection of a wide range of JPEG 2000 encoding options (as documented in each reference

software).

— Decoding from a JPEG 2000 codestream to a range of selected widely available image

formats.

— Processing of a JP2 file to extract a JPEG 2000 codestream for decoding and conversion to a

range of selected widely available image formats.

— The ability to extract metadata from a JP2 file, including the contents of the Image Header

box and the colour space.
© ISO/IEC 2020 – All rights reserved 1
---------------------- Page: 5 ----------------------
ISO/IEC FDIS 15444-5:2020(E)

— The decoding of JP2 files that use the three-component matrix-based form of the restricted

ICC method for the specification of colour space and the conversion of the decoded image

data to the sRGB colour space for display, including limited upsampling of all decoded

components to the same resolution.

— The decoding of JP2 files that use the monochrome form of the restricted ICC method for the

specification of colour space and the conversion of the decoded image data to the sRGB based

greyscale space as defined within the JP2 file format.

— The decoding of JP2 files that use the sYCC colour space and the conversion of the decoded

image data to the sRGB colour space for display, including upsampling of all decoded

components to the same resolution.
— Some additional tools to help with evaluation and testing.

The TT HTJ2K reference software contains source code, which can be compiled to provide the following

functionality:

— Decoding from a HTJ2K codestream to a range of selected widely available image formats.

The codestream-parser reference software contains source code, which can provide the following

functionality:
— Parsing of JP2 file format;
— Parsing of JPH file format.

The reference software is intended for use as a testing and validation tool for other implementations of

JPEG 2000, and to help in the understanding of Rec. ITU-T T.800 | ISO/IEC 15444-1 and Rec. ITU-T T.814

| ISO/IEC 15444-15.
2 Normative references

The following Recommendations and International Standards contain provisions which, through

reference in this text, constitute provisions of this Recommendation | International Standard. For dated

references, only the edition cited applies. For undated references, the latest edition of the referenced

document (including any amendments) applies. At the time of publication, the editions indicated in dated

references were valid. All Recommendations and Standards are subject to revision, and parties to

agreements based on this Recommendation | International Standard are encouraged to investigate the

possibility of applying the most recent edition of the Recommendations and Standards listed below.

Members of IEC and ISO maintain registers of currently valid International Standards. The

Telecommunication Standardization Bureau of the ITU maintains a list of currently valid ITU-T

Recommendations.

Recommendation ITU-T T.800 | ISO/IEC 15444-1 Information technology – JPEG 2000 Image Coding

System: Core coding system.

Recommendation ITU-T T.814 | ISO/IEC 15444-15, Information technology – JPEG 2000 image coding

system – Part 15: High Throughput JPEG 2000
2 © ISO/IEC 2020 – All rights reserved
---------------------- Page: 6 ----------------------
ISO/IEC FDIS 15444-5:2020(E)
3 Definitions

For the purposes of this Recommendation | International Standard, the following definitions apply:

3.1
big endian

The bits of a value representation occur in order from most significant to least significant.

3.2
bit

A contraction of the term "binary digit"; a unit of information represented by a zero or a one.

3.3
bit-plane

A two-dimensional array of bits. In this Recommendation | International Standard, a bit-plane refers to

all the bits of the same magnitude in all coefficients or samples. This could refer to a bit-plane in a

component, tile-component, code-block, region of interest, or other.
3.4
bit stream

The actual sequence of bits resulting from the coding of a sequence of symbols. It does not include the

markers or marker segments in the main and tile-part headers or the EOC marker. It does include any

packet headers and in stream markers and marker segments not found within the main or tile-part

headers.
3.5
box

A portion of the file format defined by a length and unique box type. Boxes of some types may contain

other boxes.
3.6
box contents

Refers to the data wrapped within the box structure. The contents of a particular box are stored within

the DBox field within the Box data structure.
3.7
byte
Eight bits.
3.8
channel

One logical component of the image. A channel may be a direct representation of one component from

the codestream, or may be generated by the application of a palette to a component from the codestream.

3.9
code-block

A rectangular grouping of coefficients from the same subband of a tile-component.

3.10
coder
An embodiment of either an encoding or decoding process.
© ISO/IEC 2020 – All rights reserved 3
---------------------- Page: 7 ----------------------
ISO/IEC FDIS 15444-5:2020(E)
3.11
codestream

A collection of one or more bit streams and the main header, tile-part headers, and the EOC required for

their decoding and expansion into image data. This is the image data in a compressed form with all of the

signalling needed to decode.
3.12
coefficient
The values that are the result of a transformation.
3.13
component

A two-dimensional array of samples. An image typically consists of several components, for instance

representing red, green and blue.
3.14
compressed image data

Part or all of a bit stream. Can also refer to a collection of bit streams in part or all of a codestream.

3.15
decoder

An embodiment of a decoding process, and optionally a colour transformation process.

3.16
decoding process

A process which takes as its input all or part of a codestream and outputs all or part of a reconstructed

image.
3.17
discrete wavelet transformation (DWT)

A transformation that iteratively transforms one signal into two or more filtered and decimated signals

corresponding to different frequency bands. This transformation operates on spatially discrete samples.

3.18
encoder
An embodiment of an encoding process.
3.19
encoding process

A process that takes as its input all or part of a source image data and outputs a codestream.

3.20
file format

A codestream and additional support data and information not explicitly required for the decoding of

codestream. Examples of such support data include text fields providing titling, security and historical

information, data to support placement of multiple codestreams within a given data file, and data to

support exchange between platforms or conversion to other file formats.
3.21
header

Either a part of the codestream that contains only markers and marker segments (main header and tile-

part header) or the signalling part of a packet (packet header).
4 © ISO/IEC 2020 – All rights reserved
---------------------- Page: 8 ----------------------
ISO/IEC FDIS 15444-5:2020(E)
3.22
image
The set of all components.
3.23
image area

A rectangular part of the reference grid, registered by offsets from the origin and the extent of the

reference grid.
3.24
image area offset

The number of reference grid points down and to the right of the reference grid origin where the origin

of the image area can be found.
3.25
image data

The components and component samples making up an image. Image data can refer to either the source

image data or the reconstructed image data.
3.26
irreversible

A transformation, progression, system, quantization, or other process that, due to systemic or

quantization error, disallows lossless recovery. An irreversible process can only lead to lossy

compression.
3.27
JP2
The name of the file format defined by Rec. ITU-T T.800 | ISO/IEC 15444-1.
3.28
JPEG

Used to refer globally to the encoding and decoding process of the following Recommendations |

International Standards:

– Recommendation ITU-T T.81 (1992) | ISO/IEC 10918-1:1994, Information technology –

Digital compression and coding of continuous-tone still images: Requirements and
guidelines.

– Recommendation ITU-T T.83 (1994) | ISO/IEC 10918-2:1995, Information technology –

Digital compression and coding of continuous-tone still images: Compliance testing.

– Recommendation ITU-T T.84 (1996) | ISO/IEC 10918-3:1997, Information technology –

Digital compression and coding of continuous-tone still images: Extensions.

– Recommendation ITU-T T.84 (1996)/Amd. 1 (1999), Information technology – Digital

compression and coding of continuous-tone still images: Extensions – Amendment 1:

Provisions to allow registration of new compression types and versions in the SPIFF header.

– Recommendation ITU-T T.86 (1998) | ISO/IEC 10918-4, Information technology – Digital

compression and coding of continuous-tone still images: Registration of JPEG Profiles, SPIFF

Profiles, SPIFF Tags, SPIFF colour Spaces, APPn Markers, SPIFF Compression types and

Registration authorities (REGAUT).
© ISO/IEC 2020 – All rights reserved 5
---------------------- Page: 9 ----------------------
ISO/IEC FDIS 15444-5:2020(E)
3.29
JPEG 2000

Used to refer globally to the encoding and decoding processes in this Recommendation | International

Standard and their embodiment in applications.
3.30
layer

A collection of compressed image data from coding passes of one, or more, code-blocks of a tile-

component. Layers have an order for encoding and decoding that is preserved.
3.31
lossless

A descriptive term for the effect of the overall encoding and decoding processes in which the output of

the decoding process is identical to the input to the encoding process. Distortion free restoration can be

assured. All of the coding processes or steps used for encoding and decoding are reversible.

3.32
lossy

A descriptive term for the effect of the overall encoding and decoding processes in which the output of

the decoding process is not identical to the input to the encoding process. There is distortion (measured

mathematically). At least one of the coding processes or steps used for encoding and decoding is

irreversible.
3.33
marker

A two-byte code in which the first byte is hexadecimal FF (0xFF) and the second byte is a value between

1 (0x01) and hexadecimal FE (0xFE).
3.34
marker segment
A marker and associated (not empty) set of parameters.
3.35
packet

A part of the bit stream comprising a packet header and the compressed image data from one layer of one

precinct of one resolution level of one tile-component.
3.36
packet header

Portion of the packet that contains signalling necessary for decoding that packet.

3.37
precinct

A one rectangular region of a transformed tile-component, within each resolution level, used for limiting

the size of packets.
3.38
precision

Number of bits allocated to a particular sample, coefficient, or other binary numerical representation.

3.39
progression

The order of a codestream where the decoding of each successive bit contributes to a "better"

reconstruction of the image. What metrics make the reconstruction "better" is a function of the

application. Some examples of progression are increasing resolution or improved sample fidelity.

6 © ISO/IEC 2020 – All rights reserved
---------------------- Page: 10 ----------------------
ISO/IEC FDIS 15444-5:2020(E)
3.40
quantization

A method of reducing the precision of the individual coefficients to reduce the number of bits used to

entropy code them. This is equivalent to division while compressing and multiplying while

decompressing. Quantization can be achieved by an explicit operation with a given quantization value or

by dropping (truncating) coding passes from the codestream.
3.41
raster order

A particular sequential order of data of any type within an array. The raster order starts with the top left

data point and moves to the immediate right data point, and so on, to the end of the row. After the end of

the row is reached, the next data point in the sequence is the left-most data point immediately below the

current row. This order is continued to the end of the array.
3.42
reconstructed image
An image that is the output of a decoder.
3.43
reconstructed sample

A sample reconstructed by the decoder. This always equals the original sample value in lossless coding

but may differ from the original sample value in lossy coding.
3.44
reference grid

A regular rectangular array of points used as a reference for other rectangular arrays of data. Examples

include components and tiles.
3.45
reference tile
A rectangular sub-grid of any size associated with the reference grid.
3.46
region of interest (ROI)

A collection of coefficients that are considered of particular relevance by some user defined measure.

3.47
resolution level
Equivalent to decomposition level with one exception
the LL subband is also a separate resolution level.
3.48
reversible

A transformation, progression, system, or other process that does not suffer systemic or quantization

error and, therefore, allows lossless signal recovery.
3.49
sample
One element in the two-dimensional array that comprises a component.
3.50
source image
An image used as input to an encoder.
© ISO/IEC 2020 – All rights reserved 7
---------------------- Page: 11 ----------------------
ISO/IEC FDIS 15444-5:2020(E)
3.51
subband

A group of transform coefficients resulting from the same sequence of low-pass and high-pass filtering

operations, both vertically and horizontally.
3.52
subband coefficient
A transform coefficient within a given subband.
3.53
tile

A rectangular array of points on the reference grid, registered with and offset from the reference grid

origin and defined by a width and height. The tiles which overlap are used to define tile-components.

3.54
tile-component
All the samples of a given component in a tile.
3.55
tile index

The index of the current tile ranging from zero to the number of tiles minus one.

3.56
transformation
A mathematical mapping from one signal space to another.
3.57
J2K

Used to refer to the encoding and decoding processes in Rec. ITU-T T.800 | ISO/IEC 15444-1.

3.58
HTJ2K

Used to refer to the encoding and decoding processes in Rec. ITU-T T.814 | ISO/IEC 15444-15.

3.59
JPH
The name of the file format defined by Rec. ITU-T T.814 | ISO/IEC 15444-15.
4 Abbreviations and symbols
4.1 Abbreviations

For the purposes of this Recommendation | International Standard, the following abbreviations apply.

ICC International Colour Consortium
ICT Irreversible Colour transformation

JPEG Joint Photographic Experts Group – The joint ISO/ITU committee responsible for

developing standards for continuous-tone still picture coding. It also refers to the

standards produced by this committee: Rec. ITU-T T.81 | ISO/IEC 10918-1, Rec. ITU-

T T.83 | ISO/IEC 10918-2, Rec. ITU-T T.84 | ISO/IEC 10918-3 and Rec. ITU-T T.87 |

ISO/IEC 14495-1.
8 © ISO/IEC 2020 – All rights reserved
---------------------- Page: 12 ----------------------
ISO/IEC FDIS 15444-5:2020(E)
JURA JPEG Utilities Registration Authority
1D-DWT One-dimensional Discrete Wavelet Transformation
FDWT Forward Discrete Wavelet Transformation
IDWT Inverse Discrete Wavelet Transformation
LSB Least Significant Bit
MSB Most Significant Bit
PCS Profile Connection Space
RCT Reversible Colour Transformation
ROI Region of Interest
SNR Signal to Noise Ratio
UCS Universal Character Set
URI Uniform Resource Identifier
URL Uniform Resource Locator
UTF-8 UCS Transformation Format 8
UUID Universal Unique Identifier
XML Extensible Markup Language
W3C World-Wide Web Consortium
4.2 Symbols

For the purposes of this Recommendation | International Standard, the following symbols apply.

0x---- denotes a hexadecimal number

\nnn a three-digit number preceded by a backslash indicates the value of a single byte within

a character string, where the three digits specify the octal value of that byte
CAP extended capabilities marker
COC coding style component marker
COD coding style default marker
COM comment marker
CRG component registration marker
CPF corresponding profile marker
© ISO/IEC 2020 – All rights reserved 9
---------------------- Page: 13 ----------------------
ISO/IEC FDIS 15444-5:2020(E)
EPH end of packet header marker
EOC end of codestream marker
PLM packet length, main header marker
PLT packet length, tile-part header marker
POC progression order change marker
PRF profile marker
PPM packed packet headers, main header marker
PPT packed packet headers, tile-part header marker
QCC quantization component marker
QCD quantization default marker
RGN region of interest marker
SIZ image and tile size marker
SOC start of codestream marker
SOP start of packet marker
SOD start of data marker
SOT start of tile-part marker
TLM tile-part lengths marker
5 Conventions

The source files provided are supplied in the form of an individual zip file for each source tree. File

locations given in this Recommendation | International Standard are expressed relative to the top level

of the corresponding source tree. A Unix style file structure and delimiters are assumed.

Basic instructions are provided within the reference software for the installation and compilation of the

sources under a variety of operating systems and platforms. No support can be provided by ISO | ITU-T

beyond that offered in this Recommendation | International Standard.
6 General description
Five independent and separate software source trees are provided. These are:

— JASPER.ZIP, provided as indicated in the file COPYRIGHT, contained within the zip file. This is written

in the C programming language, and should compile and run on any platform with a C language

implementation conforming to ISO/IEC 9899:1999, and supporting a subset of the POSIX C API,

ISO/IEC 9945-1:1996.
10 © ISO/IEC 2020 – All rights reserved
---------------------- Page: 14 ----------------------
ISO/IEC FDIS 15444-5:2020(E)

— JJ2000.ZIP, provided as indicated in the file COPYRIGHT, contained within the zip file. This is written

in the Java™ programming language, and executes under versions of the Java Virtual Machine (JVM)

from version 1.1.1 onwards.

— OPENJPEG.ZIP, provided as indicated in the file LICENSE, contained within the zip file. This is written

in the C programming language, and compiles and runs on any platform with a C language

implementation conforming to ISO/IEC 9899:1999 (a.k.a. C99).

— TT.ZIP, provided as indicated in the file LICENSE, contained within the zip file. This is written in the

C++ programming language, and compiles and runs on any platform with a C++ language

implementation conforming to ISO/IEC 14882:2011 (a.k.a. C++11).

— Codestream-parser.ZIP, provided as indicated in the file LICENSE, contained within the zip file. This

is written in the Python programming language, and executes on platforms that support Python

version 2.7.

The supplied executables are described briefly in Clause 8, and in more detail with some information

about the supplied source code in Annex A (
...

Questions, Comments and Discussion

Ask us and Technical Secretary will try to provide an answer. You can facilitate discussion about the standard in here.