ISO/IEC 19566-10:2024
(Main)Information technology — JPEG Systems — Part 10: Reference software
Information technology — JPEG Systems — Part 10: Reference software
This document specifies a reference software implementation of ISO/IEC 19566-5. The reference software is accompanied with a reference dataset which provides an extensive list of the various JUMBF data structures specified in ISO/IEC 19566-5.
Titre manque — Partie 10: Titre manque
General Information
Relations
Standards Content (Sample)
International
Standard
ISO/IEC 19566-10
First edition
Information technology — JPEG
2024-12
Systems —
Part 10:
Reference software
Reference number
© ISO/IEC 2024
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 2024 – All rights reserved
ii
Contents Page
Foreword .iv
Introduction .v
1 Scope . 1
2 Normative references . 1
3 Terms, definitions and abbreviated terms . 1
3.1 Terms and definitions .1
3.2 Abbreviated terms .1
4 Reference software . 2
4.1 Purpose .2
4.2 Examples of use .2
4.3 Warranty disclaimer .3
4.4 General .3
Annex A (informative) Validation of ISO/IEC 19566-5 (JUMBF) reference software. 4
Annex B (informative) JUMBF reference software: Java implementation. 9
Bibliography .18
© ISO/IEC 2024 – All rights reserved
iii
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 or www.iec.ch/members_experts/refdocs).
ISO and IEC draw attention to the possibility that the implementation of this document may involve the
use of (a) patent(s). ISO and IEC take no position concerning the evidence, validity or applicability of any
claimed patent rights in respect thereof. As of the date of publication of this document, ISO and IEC had not
received notice of (a) patent(s) which may be required to implement this document. However, implementers
are cautioned that this may not represent the latest information, which may be obtained from the patent
database available at www.iso.org/patents and https://patents.iec.ch. ISO and IEC shall not be held
responsible for identifying any or all such patent rights.
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 Joint Technical Committee ISO/IEC JTC 1, Information technology,
Subcommittee SC 29, Coding of audio, picture, multimedia and hypermedia information.
A list of all parts in the ISO 19566 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 2024 – All rights reserved
iv
Introduction
The JPEG Universal Metadata Box Format (JUMBF) provides a mechanism to embed and refer generic
metadata in JPEG files. Specific content types can be assigned to identify the specific type of the embedded
metadata.
This document describes a reference software implementation that handles JUMBF data according to the
Content Types specified in ISO/IEC 19566-5. Initially, the JUMBF reference dataset is presented, consisting of
standalone JUMBF files as well as JPEG-1 encoded images. In addition, the respective validation procedure is
specified which enables the validation of candidate implementations of ISO/IEC 19566-5. Finally, a detailed
analysis of the Java reference implementation of ISO/IEC 19566-5 is presented, demonstrating the software
design which is followed to support the JUMBF data model.
© ISO/IEC 2024 – All rights reserved
v
International Standard ISO/IEC 19566-10:2024(en)
Information technology — JPEG Systems —
Part 10:
Reference software
1 Scope
This document specifies a reference software implementation of ISO/IEC 19566-5. The reference software is
accompanied with a reference dataset which provides an extensive list of the various JUMBF data structures
specified in ISO/IEC 19566-5.
2 Normative references
The following documents are referred to in the text in such a way that some or all of their content constitutes
requirements of this document. For dated references, only the edition cited applies. For undated references,
the latest edition of the referenced document (including any amendments) applies.
ISO/IEC 19566-5, Information technologies — JPEG systems — Part 5: JPEG universal metadata box format (JUMBF)
3 Terms, definitions and abbreviated terms
3.1 Terms and definitions
For the purposes of this document, the following terms and definitions apply.
ISO and IEC maintain terminology databases for use in standardization at the following addresses:
— ISO Online browsing platform: available at https:// www .iso .org/ obp
— IEC Electropedia: available at https:// www .electropedia .org
3.1.1
codestream
compressed image data representation that includes all necessary data to allow a (full or approximate)
reconstruction of the sample values of a digital image
3.2 Abbreviated terms
APP11 application marker 11: JPEG XT extension marker
CBOR concise binary object representation
CLI command line interface
CSV comma separated values
GUI graphical user interface
IoC inversion of controls
ISOBMFF ISO base media file format
© ISO/IEC 2024 – All rights reserved
IV initial value
JPEG joint photographic experts group
JPEG-1 image complying to ISO/IEC 10918-1
JP2C JPEG contiguous codestream
1)
JSON JavaScript
object notation
JUMBF jpeg universal metadata box format
POJO plain old java object
UUID universally unique identifier
XML extensible markup language
4 Reference software
4.1 Purpose
The use of the reference software is not required for making an implementation of parser or generator in
conformance to any of the parts of the ISO/IEC 19566 series. Requirements established in all parts of the
ISO/IEC 19566 series take precedence over the behaviour of the reference software.
4.2 Examples of use
This subclause enumerates possible uses of the reference implementations presented in the annexes:
a) Sample parser. Users can use the reference implementations to inspect, even through visualization, the
structure and contents of the JUMBF data model as specified in ISO/IEC 19566.
b) Sample generator. Users could use the reference implementations to create JUMBF files that could
be used to facilitate the development of applications that take advantage of the benefits of JUMBF
specification.
c) Provide anchor implementations for development purposes. JUMBF data model developers could study
the reference implementations presented in the annexes in order to gain better insight on the algorithms
as well as on how JUMBF Boxes are interconnected.
d) Provide anchor implementations to test possible conformant software. This facilitates developers to
have an existing implementation act as a ground truth which will assist them assess the validity of their
own implementations.
The lack of detection of any conformance violation by any reference software implementation should not
be considered as a definite proof that the codestream under testing conforms to all constraints required
for it to be conforming to one of the parts of the ISO/IEC 19566 series. Similarly, the computation resource
characteristics in terms of program or data memory usage, execution speed, etc. of sample software
encoder or decoder implementations shall not be construed as a representative of the typical, minimal or
maximal computational resource characteristics to be exhibited by implementations of some parts of the
ISO/IEC 19566 series.
TM
1) JavaScript is the trademark of a product supplied by Oracle® Corporation. This information is given for the
convenience of users of this document and does not constitute an endorsement by ISO or IEC of the product named.
Equivalent products may be used if they can be shown to lead to the same results.
© ISO/IEC 2024 – All rights reserved
4.3 Warranty disclaimer
Regardless of any and all statements made herein or elsewhere regarding the possible uses of the reference
software, the following disclaimers of warranty apply to the provided reference software implementations:
— ITU, ISO and IEC disclaim any and all warranties, whether express, implied, or statutory, including any
implied warranties of merchantability or of fitness for a particular purpose.
— In no event shall the contributor(s) or ITU, ISO or IEC be liable for any incidental, punitive or consequential
damages of any kind whatsoever arising from the use of these programs.
— This disclaimer of warranty extends to the user of these programs and the user’s customers, employees,
agents, transferees, successors, and assignees.
— ITU, ISO and IEC do not represent or warrant that the software is free of infringements of any patents.
— Commercial applications of ITU-T Recommendations and ISO/IEC International Standards, including
shareware, may be subject to royalty fees to patent holders.
4.4 General
The rest of the document describes several reference software implementations. The reference software
for this document is available at https:// standards .iso .org/ iso -iec/ 19566/ -10/ ed -1/ en/ . Reference software
implementations do not intend to be unique. Therefore, some parts of JPEG Systems can have more than
one implementation. On the other hand, reference software implementations need to be validated, from
functionality and interoperability points of view. Hence, Annex A describes the mechanism followed for
validation of the JUMBF reference software. Annex B describes an implementation of reference software
for JUMBF (as specified in ISO/IEC 19566-5). The implementations presented in the subsequent annexes are
summarized in Table 1, including information related to the parts of the ISO/IEC 19566 series they cover, the
provided functionalities as well as the technology used.
Table 1 — Reference software implementations for the ISO/IEC 19566 series
Annex Software ISO/IEC 19566 parts Decoder Encoder Technology
a
Annex B jumbf-2.0 library ISO/IEC 19566-5 Yes Yes Java
a TM
Java is the trademark of a product supplied by Oracle® Corporation. This information is given for the convenience of users
of this document and does not constitute an endorsement by ISO or IEC of the product named. Equivalent products may be used if
they can be shown to lead to the same results.
© ISO/IEC 2024 – All rights reserved
Annex A
(informative)
Validation of ISO/IEC 19566-5 (JUMBF) reference software
A.1 General
This subclause describes the validation process that is followed in order to verify the correctness of
ISO/IEC 19566-5 reference software implementations. The validation procedure deals with parser and
generator implementations separately. Along with the validation procedure, the JPEG Systems reference
dataset is included. In principle, any reference implementation presented in this document can parse/
generate the reference files of the related part of the ISO/IEC 19566 series.
In general, the aim of the JPEG Systems reference dataset is to address all the available JUMBF Content
Types specified in the scope of the ISO/IEC 19566 series and covering cases of standalone JUMBF files, but
also embedding JUMBF Boxes in supporting image file formats. The JPEG Systems reference dataset is split
into multiple subdirectories, each of which corresponds to a specific part of the ISO/IEC 19566 series that
specifies JUMBF data structures. All the available parts of the ISO/IEC 19566 series and the respective
JUMBF Content Types that are specified in each one of them is listed in Table A.1.
Table A.1 — JUMBF Content Types as defined in the ISO/IEC 19566 series
Directory name JUMBF Content Types
Part 5 XML, JSON, JP2C, CBOR, UUID, Embedded File
Part 4 Protection, Replacement
Part 6 JPEG 360
Part 7 JLINK
Part 8 JPEG Snack
A.2 JUMBF reference dataset
The first version of the JPEG Systems reference dataset — which is attached along with this
document — consists of exactly one directory, namely the JUMBF reference dataset. This directory consists
of an exhaustive list of standalone JUMBF files covering ISO/IEC 19566-5. All these files cover plenty of
combinations for the available JUMBF Description box attributes and Content Types in ISO/IEC 19566-5. A
detailed description about the information of each of the available files is given in the reference dataset
description, a csv file which accompanies the dataset and signals the contents of the Description box and the
respective Content Boxes. The columns of the reference dataset description file for JUMBF reference dataset
are presented in Table A.2. To specify the content of a JUMBF Box (e.g., the XML payload of an XML Content
type JUMBF box), a set of input files is included in the dataset. The file name of each of the input documents
is referenced through the csv file in the respective columns. In scope of ISO/IEC 19566-5 the contents of a
JUMBF Box can be an XML serialized content, a JSON serialized content, a CBOR serialized content, a JPEG
codestream or a generic bytestream. In principle, with the reference dataset description file it is possible
to define any combination of JUMBF data. Specifically, columns A-K refer to all the various combinations
related to the Description box data model. Columns L and M specify the expected number and content (i.e.,
input file) of the Content Box for each JUMBF Box defined in ISO/IEC 19566-5. Next, columns N-O correspond
to the specific fields defined in UUID Content type JUMBF box, while columns P-R correspond to those of
Embedded File Content type JUMBF box. Finally, column S points to the file name of the generated file where
the JUMBF data is going to be stored. If a column is not applicable for a specific JUMBF structure, “NULL”
value is used. Each line of the csv defines a JUMBF Box that is stored either as a standalone file or embedded
in a host image which is encoded using one of the available JPEG encoding formats. Normally, each line
© ISO/IEC 2024 – All rights reserved
corresponds to a unique file. However, it is also possible for multiple lines to specify a common value in
column S. This means that multiple JUMBF Boxes are concatenated to a single file.
Table A.2 — Definition of the JUMBF reference dataset description csv file.
Csv column NULL value
Csv column name Csv column description
number allowed?
A Test Id Name of the specific scenario described in the No
row
B Content Type (UUID) The JUMBF Content Type of the JUMBF Box to be No
generated.
C Host JPEG Image The name of the JPEG Encoded image that will Yes
host the generated JUMBF Box. If NULL, the
resulted JUMBF Box will be stored in a separate
file (i.e., JUMBF standalone file) with the .jumbf
extension.
D LBox Value of the LBox attribute of the JUMBF Box Yes
header. Available values: 0 (i.e., Read until the
end of file), 1 (i.e., the size in bytes of the box is
expressed in the XLBox attribute of the JUMBF
Box header), NULL (The actual size in bytes of
the JUMBF Box is stored in LBox JUMBF Box
header).
E Is Requestable? Boolean value included in the Description box. It No
corresponds to the “Requestable” field as speci-
fied in ISO/IEC 19566-5.
F Label String value included in the Description box. It Yes
corresponds to the “Label” field as specified in
ISO/IEC 19566-5.
G ID Numerical value included in the Description box. Yes
It corresponds to the “Id” field as specified in
ISO/IEC 19566-5.
H SHA256HASH (file name) The name of the file pointing to the bytestream Yes
value included in the Description box. It corre-
sponds to the “SHA256Hash” field as specified in
ISO/IEC 19566-5.
I Contains multiple private fields? Boolean value that specifies whether there is a No
private field included in the requested Descrip-
tion box. If set to FALSE, it means that either
there is no Private field or there is a single ISOB-
MFF Box. If set to TRUE, it means that the Private
field consists of a ‘priv’ box.
J Private Field (JUMBF Box file The name of the JUMBF standalone file that Yes
name) contains the bytestream that corresponds to
the contents of the private field of the requested
Description box.
K Padding (Number of bytes) The number of bytes allocated for the padding No
box content. If set to 0 then no Padding box is
added.
L Number of Content Boxes The number of Content Boxes included in the No
requested JUMBF Box.
M Content Box (file name) The name of the file that corresponds to a No
Content Box of the requested JUMBF Box. For
instance, if the requested JUMBF Box is of XML
Content type, then this column could specify a
“example.xml” file, pointing to the contents of
such JUMBF Box.
© ISO/IEC 2024 – All rights reserved
TTaabbllee AA.22 ((ccoonnttiinnueuedd))
Csv column NULL value
Csv column name Csv column description
number allowed?
N UUID The 16-byte UUID field as specified in the UUID Yes
Content type in ISO/IEC 19566-5.
O Data The name of the file pointing to the bytestream Yes
included in a UUID Content type JUMBF box.
P Media Type String value included in the Embedded File De- Yes
scription box. It corresponds to the “Media Type”
field as specified in ISO/IEC 19566-5.
Q Filename String value included in the Embedded File De- Yes
scription box. It corresponds to the “FILE NAME”
field as specified in ISO/IEC 19566-5.
R Is Externally Referenced? Boolean value included in the Embedded File Yes
Description box. It corresponds to the “External
Reference” field as specified in ISO/IEC 19566-5.
S Expected file (file name) The name of the generated file that contains the No
JUMBF Box described in the Test ID of the respec-
tive entry.
Finally, apart from the reference dataset and its description file, the JUMBF reference dataset contains
another csv file which corresponds to a reference report. The reference report contains information that a
parser information can extract from a JUMBF file in the context of ISO/IEC 19566-5. The columns of this csv
file are different from the reference dataset description file and their definition is listed in Table A.3.
Table A.3 — Definition of the JUMBF reference dataset report csv file.
Csv column Csv column name Csv column description NULL value
number allowed?
A File name Name of the parsed file which contains No
JUMBF-related information
B Standalone file? Boolean value that specifies whether the parsed No
file contains JUMBF information embedded in a
(host) JPEG image or contains JUMBF data only.
C LBox Numerical value of LBox attribute in JUMBF No
header.
D XLBox Numerical value of XLBox attribute in JUMBF Yes
header.
E Content Type UUID String value specifying the UUID field included in No
the parsed Description box.
F Description box Toggle Numerical value included in the parsed Descrip- No
tion box. It corresponds to the “Toggle” field as
specified in ISO/IEC 19566-5.
G Is requestable Boolean value that specifies whether the parsed No
JUMBF Box is requestable. It corresponds to
the “Requestable” field as specified in ISO/IEC
19566-5.
H Label String value specifying the Label field included in Yes
the parsed Description box. It corresponds to the
“Label” field as specified in ISO/IEC 19566-5.
I ID Numerical value specifying the ID field included Yes
in the parsed Description box. It corresponds to
the “ID” field as specified in ISO/IEC 19566-5.
© ISO/IEC 2024 – All rights reserved
TTaabbllee AA.33 ((ccoonnttiinnueuedd))
Csv column Csv column name Csv column description NULL value
number allowed?
J SHA256 Hash String value specifying the HEX encoded SHA- Yes
256Has value of the parsed Description box. It
corresponds to the “SHA256Hash” field as speci-
fied in ISO/IEC 19566-5.
K Private field Exists? Boolean value specifying whether a private field No
is included in the parsed Description box.
L UUID box UUID field String value specifying the UUID field included in Yes
the parsed UUID box. The 16-byte UUID field is
specified in the “UUID Content type” subclause of
ISO/IEC 19566-5.
M Embedded File Description box Numerical value specifying the toggle of the Yes
Toggle parsed Embedded File Description box. It corre-
sponds to the “Toggle” field as specified in the
“Embedded File Content type” subclause of ISO/
IEC 19566-5.
N Embedded File Description box String value specifying the media type of the Yes
Media Type parsed Embedded File Description box. It corre-
sponds to the “Media Type” field as specified in
the “Embedded File Content type” subclause of
ISO/IEC 19566-5.
O Embedded File Description box String value specifying the file name of the Yes
File Name parsed Embedded File Description box. It corre-
sponds to the “File name” field as specified in the
“Embedded File Content type” subclause of ISO/
IEC 19566-5.
P Embedded File Description box Boolean value specifying whether the parsed Yes
Content Referenced Externally Embedded File Content type JUMBF box is refer-
enced externally or it is embedded in the current
box. It corresponds to the “External file” field as
specified in the “Embedded File Content type”
subclause of ISO/IEC 19566-5.
Q Content Box TBox field String value of four characters specifying the Yes
4-byte-type value of the Content Box of the
parsed JUMBF Box (e.g. ‘json’, ‘bidb’).
R Content Box Size Numerical value specifying the number of bytes Yes
of the Content Box of the parsed JUMBF Box.
S JUMBF Box Padding box Size Numerical value specifying the number of bytes No
included in the Padding box of the parsed JUMBF
Box.
A.3 Validation procedure
A.3.1 General
Given the reference dataset along with its description and report files it is possible to define a validation
procedure that parser and generator implementations could use in order to verify their conformance with
ISO/IEC 19566-5. Specifically, this section uses the dataset introduced in A.2 and defines the validation
procedures for reference implementations in scope of ISO/IEC 19566-5. The validation procedure could be
easily generalized for all parts of the ISO/IEC 19566 series mentioned in the annexes.
© ISO/IEC 2024 – All rights reserved
A.3.2 Parser validation
Figure A.1 shows the procedure of validating a candidate parser implementation. For a parser implementation
to check its conformance with ISO/IEC 19566-5, it shall be able to provide a report which describes the
contents of a JUMBF Box following the structure presented in the reference report.
Initially, the JUMBF reference dataset is provided to the candidate implementation which parses all the files
and generates a report. The generated report is first sorted by the first column (i.e., the name of the JUMBF
file) and it is compared with the JUMBF reference dataset report. Provided that the two reports are identical,
the candidate parser implementation is considered co
...








Questions, Comments and Discussion
Ask us and Technical Secretary will try to provide an answer. You can facilitate discussion about the standard in here.
Loading comments...