ISO/IEC 15444-5:2015
(Main)Information technology — JPEG 2000 image coding system: Reference software — Part 5:
Information technology — JPEG 2000 image coding system: Reference software — Part 5:
ISO/IEC 15444-5:2015 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. The reference software packages are informative only. This Recommendation | International Standard does not define any additional part of the JPEG 2000 image coding system. Each version of the reference software contains source code, which may 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 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. Although components of the reference software may find application in software intended for product development, this was not an objective of the development of this software, and prospective implementers are cautioned against making any estimations of performance or resource usage based on the reference software.
Technologies de l'information — Système de codage d'images JPEG 2000: Logiciel de référence — Partie 5:
General Information
Relations
Standards Content (Sample)
INTERNATIONAL ISO/IEC
STANDARD 15444-5
Second edition
2015-10-15
Information technology — JPEG 2000
image coding system: Reference
software
Technologies de l'information — Système de codage d'images
JPEG 2000: Logiciel de référence
Reference number
ISO/IEC 15444-5:2015(E)
©
ISO/IEC 2015
---------------------- Page: 1 ----------------------
ISO/IEC 15444-5:2015(E)
COPYRIGHT PROTECTED DOCUMENT
© ISO/IEC 2015
All rights reserved. Unless otherwise specified, no part of this publication may be reproduced or utilized in any form or by any means,
electronic or mechanical, including photocopying and microfilm, without permission in writing from either ISO at the address below or
ISO's member body in the country of the requester.
ISO copyright office
Ch. de Blandonnet 8 CP 401
CH-1214 Vernier, Geneva, Switzerland
Tel. + 41 22 749 01 11
Fax + 41 22 749 09 47
E-mail copyright@iso.org
Web www.iso.org
Published in Switzerland
ii © ISO/IEC 2015 – All rights reserved
---------------------- Page: 2 ----------------------
ISO/IEC 15444-5:2015(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. In the field of information
technology, ISO and IEC have established a joint technical committee, ISO/IEC JTC 1.
International Standards are drafted in accordance with the rules given in the ISO/IEC Directives, Part 2.
The main task of the joint technical committee is to prepare International Standards. Draft International
Standards adopted by the joint technical committee are circulated to national bodies for voting. Publication as
an International Standard requires approval by at least 75 % of the national bodies casting a vote.
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.
ISO/IEC 15444-5 was prepared by Joint Technical Committee ISO/IEC JTC 1, Information technology,
Subcommittee SC 29, Coding of audio, picture, multimedia and hypermedia information, in collaboration with
ITU-T. The identical text is published as ITU-T Rec. T.804.
This second edition cancels and replaces the first edition (ISO 15444-5:2003), which has been technically
revised. It also incorporates ISO/IEC 15444-5:2003/Amd.1:2003 and ISO/IEC 15444-5:2003/Amd.2:2015.
ISO/IEC 15444 consists of the following parts, under the general title Information technology — JPEG 2000
image coding system:
Part 1: Core coding system
Part 2: Extensions
Part 3: Motion JPEG 2000
Part 4: Conformance testing
Part 5: Reference software
Part 6: Compound image file format
Part 8: Secure JPEG 2000
Part 9: Interactivity tools, APIs and protocols
Part 10: Extensions for three-dimensional data
Part 11: Wireless
Part 12: ISO base media file format
Part 13: An entry level JPEG 2000 encode
Part 14: XML representation and reference
© ISO/IEC 2015 – All rights reserved iii
---------------------- Page: 3 ----------------------
ISO/IEC 15444-5:2015(E)
CONTENTS
Page
1 Scope . 1
2 Normative references. 1
2.1 Identical Recommendations | International Standards . 1
2.2 Additional references . 2
3 Definitions . 2
4 Abbreviations and symbols . 4
4.1 Abbreviations . 4
4.2 Symbols . 5
5 Conventions . 5
6 General description . 5
7 Copyright and licensing . 6
8 Platform requirements . 6
8.1 JasPer requirements . 6
8.2 JJ2000 requirements . 6
8.3 OpenJPEG requirements . 7
9 Reference code structure . 7
9.1 JasPer executables . 7
9.2 JJ2000 executables . 7
9.3 OpenJPEG executables . 7
10 Intellectual Property . 7
11 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. 10
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
Electronic attachment: JASPER, JJ2000, OPENJPEG reference packages
iv © ISO/IEC 2015 – All rights reserved
---------------------- Page: 4 ----------------------
ISO/IEC 15444-5:2015 (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.
The reference software packages are informative only. This Recommendation | International Standard does not define
any additional part of the JPEG 2000 image coding system.
Each version of the reference software contains source code, which may 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 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. Although components of the reference software
may find application in software intended for product development, this was not an objective of the development of this
software, and prospective implementers are cautioned against making any estimations of performance or resource usage
based on the reference software.
2 Normative references
The following Recommendations and International Standards contain provisions which, through reference in this text,
constitute provisions of the Recommendation | International Standard. At the time of publication, the editions indicated
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.
____________________
1
This Specification includes an electronic attachment containing the JASPER, JJ2000 and OPENJPEG reference packages.
Rec. ITU-T T.804 (04/2015) 1
---------------------- Page: 5 ----------------------
ISO/IEC 15444-5:2015 (E)
2.1 Identical Recommendations | International Standards
– ITU-T Recommendation T.800 (2002) | ISO/IEC 15444-1:2002, Information technology – JPEG 2000
Image Coding System: Core coding system.
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.
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.
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.
2 Rec. ITU-T T.804 (04/2015)
---------------------- Page: 6 ----------------------
ISO/IEC 15444-5:2015 (E)
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 must 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.
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.
Rec. ITU-T T.804 (04/2015) 3
---------------------- Page: 7 ----------------------
ISO/IEC 15444-5:2015 (E)
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.
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 Transformation
FDWT Forward Discrete Wavelet Transformation
IDWT Inverse Discrete Wavelet Transformation
4 Rec. ITU-T T.804 (04/2015)
---------------------- Page: 8 ----------------------
ISO/IEC 15444-5:2015 (E)
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
COC Coding style component marker
COD Coding style default marker
COM Comment marker
CRG Component registration marker
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
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 and through links on the official JPEG web site, http://www.jpeg.org.
Rec. ITU-T T.804 (04/2015) 5
---------------------- Page: 9 ----------------------
ISO/IEC 15444-5:2015 (E)
6 General description
Three 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.
– 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).
The supplied executables are described briefly in clause 8, and in more detail with some information about the supplied
source code in Annex A (JasPer), Annex B (JJ2000) and Annex C (OpenJPEG).
These three distributions have been tested as meeting the coding and decoding requirements for codestreams identified in
Rec. ITU-T T.800 | ISO/IEC 15444-1. Formal compliance is beyond the scope of this Recommendation | International
Standard.
7 Copyright and licensing
These software modules were originally developed by the parties indicated in the file COPYRIGHT or LICENSE within
each package forming a part of this Recommendation | International Standard, in the course of development of Rec. ITU-
T T.800 | ISO/IEC 15444-1. These software modules are separate and discrete implementations of Rec. ITU-T T.800 |
ISO/IE
...
Questions, Comments and Discussion
Ask us and Technical Secretary will try to provide an answer. You can facilitate discussion about the standard in here.