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
Due Date
06-Jul-2022
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
ii
 © 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
1
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.
____________________
1
 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
1
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.