Information technology — Plenoptic image coding system (JPEG Pleno) — Part 4: Reference software

This document provides reference implementations of ISO/IEC 21794-1 and ISO/IEC 21794-2, also known as JPEG Pleno.

Technologies de l'information — Système de codage d'images plénoptiques (JPEG Pleno) — Partie 4: Titre manque

General Information

Status
Published
Publication Date
16-May-2022
Current Stage
6060 - International Standard published
Start Date
17-May-2022
Due Date
25-Aug-2021
Completion Date
17-May-2022
Ref Project

Buy Standard

Standard
ISO/IEC 21794-4:2022 - Information technology — Plenoptic image coding system (JPEG Pleno) — Part 4: Reference software Released:5/17/2022
English language
15 pages
sale 15% off
Preview
sale 15% off
Preview

Standards Content (Sample)

INTERNATIONAL ISO/IEC
STANDARD 21794-4
First edition
2022-05
Information technology — Plenoptic
image coding system (JPEG Pleno) —
Part 4:
Reference software
Reference number
ISO/IEC 21794-4:2022(E)
© ISO/IEC 2022

---------------------- Page: 1 ----------------------
ISO/IEC 21794-4:2022(E)
COPYRIGHT PROTECTED DOCUMENT
© ISO/IEC 2022
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 2022 – All rights reserved

---------------------- Page: 2 ----------------------
ISO/IEC 21794-4:2022(E)
Contents Page
Foreword .iv
Introduction .v
1 Scope . 1
2 Normative references . 1
3 Terms and definitions . 1
4 Abbreviated terms . 1
5 Conventions . 2
6 Reference software . 2
7 Examples of use .2
8 Warranty disclaimer . 3
9 General . 3
10 Building the reference software .3
Annex A (informative) Building the reference software for ISO/IEC 21794-1 and ISO/IEC
21794-2 . . 5
Annex B (informative) Baseline block-based profile usage GUI . 6
Annex C (informative) Baseline view-based profile usage guide.11
iii
© ISO/IEC 2022 – All rights reserved

---------------------- Page: 3 ----------------------
ISO/IEC 21794-4:2022(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 or
www.iec.ch/members_experts/refdocs).
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 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/IEC 21794 series can be found on the 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.
iv
  © ISO/IEC 2022 – All rights reserved

---------------------- Page: 4 ----------------------
ISO/IEC 21794-4:2022(E)
Introduction
This document is part of a series of standards for a system known as JPEG Pleno. The ISO/IEC 21794
series aims to provide a standard framework for representing new imaging modalities. It facilitates
the capture, representation, exchange and visualization of plenoptic imaging modalities. A plenoptic
image modality can be a light field, point cloud or hologram, which are sampled representations of
the plenoptic function in the form of, respectively, a vector function that represents the radiance of a
discretized set of light rays, a collection of points with position and attribute information, or a complex
wavefront. The plenoptic function describes the radiance in time and in space obtained by positioning a
pinhole camera at every viewpoint in 3D spatial coordinates, every viewing angle and every wavelength,
resulting in a 7D function.
JPEG Pleno is designed primarily to facilitate the capture, representation, exchange and visualization
of point cloud, light field, and holographic imaging approaches. It specifies tools for coding these
approaches while providing advanced functionality at the system level such as support for data and
metadata manipulation, editing, random access and interaction, protection of privacy and ownership
rights as well as other security mechanisms.
This document provides reference software implementations of ISO/IEC 21794-1 and ISO/IEC 21794-2
that demonstrate the features and capabilities of JPEG Pleno for coding light field data. Its purpose
is to act as a guideline for implementations and as a reference for conformance testing. As such, the
implementations are conforming to ISO/IEC 21794-1, i.e. it implements the structure of a JPL file
which includes the concepts of boxes. In addition, the reference software implementations also cover
ISO/IEC 21794-2, i.e. light-field coding.
This document includes the source code for reference implementations of ISO/IEC 21794-1 and
ISO/IEC 21794-2 as electronic attachments. They have been successfully compiled and tested on
®1)
Linux operating system at the time of writing.
Instructions for unpacking and building the software are found in Annexes A. Instructions for its use
are listed in Annexes B and C.
1) Linux® is the trademark of a product supplied by Linus Torvalds. This information is given for the convenience
of users of this document and does not constitute an endorsement by ISO/IEC of the product named. Equivalent
products may be used if they can be shown to lead to the same results.
v
© ISO/IEC 2022 – All rights reserved

---------------------- Page: 5 ----------------------
INTERNATIONAL STANDARD ISO/IEC 21794-4:2022(E)
Information technology — Plenoptic image coding system
(JPEG Pleno) —
Part 4:
Reference software
1 Scope
This document provides reference implementations of ISO/IEC 21794-1 and ISO/IEC 21794-2, also
known as JPEG Pleno.
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 21794-1, Information technology — Plenoptic image coding system (JPEG Pleno) — Part 1:
Framework
ISO/IEC 21794-2, Information technology — Plenoptic image coding system (JPEG Pleno) — Part 2: Light
field coding
ISO/IEC 21794-3, Information technology — Plenoptic image coding system (JPEG Pleno) — Part 3:
Conformance testing
3 Terms and definitions
For the purposes of this document the terms and definitions given in ISO/IEC 21794-1, in
ISO/IEC 21794-2, in ISO/IEC 21794-3, and the following 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
codestream
sequence of bytes that conforms to or is to be checked for conformance with the codestream syntax
specified in ISO/IEC 21794-1 and/or ISO/IEC 21794-2
3.2
JSON
data interchange format that represents data objects using attribute–value pairs and array data types
specified in ISO/IEC 21778
4 Abbreviated terms
JPLM JPEG Pleno Model
1
© ISO/IEC 2022 – All rights reserved

---------------------- Page: 6 ----------------------
ISO/IEC 21794-4:2022(E)
PPM Portable pixmap format
PSNR Peak signal-to-noise ratio
RDO Rate-distortion optimization
RGB Red, Green, Blue
5 Conventions
Monospaced text indicates program input or output as necessary to either run the software, or as
generated by the software on the console.
6 Reference software
The following reference software is provided:
— Reference decoder software capable of decoding codestreams that conform to ISO/IEC 21794-1
and/or ISO/IEC 21794-2.
— Sample encoder software capable of producing codestreams that conform to ISO/IEC 21794-1 and/
or ISO/IEC 21794-2.
The use of the reference software is not required for making an implementation of an encoder or
decoder in conformance to any of the parts of the ISO/IEC 21794 series. Requirements established in
ISO/IEC 21794-1 and ISO/IEC 21794-2 take precedence over the behaviour of the reference software.
7 Examples of use
Some examples of use for the reference decoder software implementations are as follows:
— As an illustration of how to perform the decoding processes.
— As the starting basis for the implementation of a decoder that conforms to one or multiple parts of
the ISO/IEC 21794 series.
— For (non-exhaustive) testing of the conformance of a codestream (or file) as specified in
ISO/IEC 21794-1 or ISO/IEC 21794-2.
NOTE The lack of detection of any conformance violation by any reference software implementation is not
to be considered as definitive proof that the codestream under test conforms to all constraints required for the
codestream to conform to one of the ISO/IEC 21794 series.
Some examples of use for a reference encoder software are as follows:
— As an illustration of how to implement an encoding process that produces codestreams that are,
depending on the settings of the software, conforming to one or multiple members of the software
of ISO/IEC 21794 series.
— As a starting point for an implementation of an encoder that conforms to one or multiple members
of the ISO/IEC 21794 series.
— As a means of generating codestreams conforming to one or multiple parts of the ISO/IEC 21794
series for testing purposes.
— As a means of demonstrating and evaluating examples of the quality that can be achieved by an
encoding process that conforms to multiple parts of the ISO/IEC 21794 series.
No guarantee of the quality that will be achieved by an encoder is provided by its conformance to one
or multiple parts of the ISO/IEC 21794 series as the conformance is defined only in terms of specific
2
  © ISO/IEC 2022 – All rights reserved

---------------------- Page: 7 ----------------------
ISO/IEC 21794-4:2022(E)
constraints imposed on the syntax of the generated codestream. In particular, while sample encoder
software implementations may suffice to provide some illustrative examples of which quality can be
achieved within the ISO/IEC 21794 series, they provide neither an assurance of minimum guaranteed
image encoding quality nor maximum achievable image encoding quality.
Similarly, the computation resource characteristics in terms of program or data memory usage,
execution speed, etc. of sample software encoder or decoder implementations should 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 21794 series.
8 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:
— ISO and IEC disclaim any and all warranties, whether express, implied, or statutory, including any
implied warranties of merchantability or fitness for a particular purpose.
— In no event shall the contributor(s) or 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.
— ISO and IEC do not represent or warrant that the software is free of infringements of any patents.
— Commercial applications of ISO/IEC International Standards, including shareware, may be subject
to royalty fees to patent holders.
9 General
The reference software implementations for the ISO/IEC 21794 series are available at https:// standards
.iso .org/ iso -iec/ 21794/ -4/ ed -1/ en/ .
The file "jpeg-pleno-refsw-bbbp.zip" contains a reference implementation for ISO/IEC 21794-1 and
ISO/IEC 21794-2 that currently encodes and decodes codestreams conformant to the baseline block-
based profile. Unpacking and compilation of this software is explained in Annex A, guidance on how to
use this software is given in Annex B.
The file "jpeg-pleno-refsw-bvbp.zip" contains a reference implementation for ISO/IEC 21794-1 and
ISO/IEC 21794-2 that currently encodes and decodes codestreams conformant to the baseline view-
based profile. Unpacking and compilation of this software is explained in Annex A, guidance on how to
use this software is given in Annex C.
10 Building the reference software
®2)
The whole build system is managed by CMake . The reference software has been compiled on a
machine with Internet access, configured with the following operating system and packages:
®
— Linux environment with kernel 4.15.0 or above.
— GCC 9.2.1 or above.
— CMake3.10 or above.
2) CMake® is the trademark of a product supplied by Kitware. This information is given for the convenience
of users of this document and does not constitute an endorsement by ISO/IEC of the product named. Equivalent
products may be used if they can be shown to lead to the same results.
3
© ISO/IEC 2022 – All rights reserved

---------------------- Page: 8 ----------------------
ISO/IEC 21794-4:2022(E)
— Doxygen 1.8.13 or above (optional to build binaries but required to build documentation).
— TeX Live (optional).
Internet access is required to build the reference software because CMake downloads packages to
resolve library dependencies.
4
  © ISO/IEC 2022 – All rights reserved

---------------------- Page: 9 ----------------------
ISO/IEC 21794-4:2022(E)
Annex A
(informative)

Building the reference software for ISO/IEC 21794-1 and
ISO/IEC 21794-2
A.1 Building baseline block-based profile reference software
Unpacking a ZIP file is operating system specific. Under POSIX compliant operating systems, open a
command line window and enter
  ~$ unzip jpeg-pleno-refsw-bbbp.zip
This will extract the source-code into the jpeg-pleno-refsw-bbbp directory.
To compile the software, please follow these steps:
  ~$ cd jpeg-pleno-refsw-bbbp
  ~/jpeg-pleno-refsw-bbbp$ mkdir; cd build
  ~/jpeg-pleno-refsw-bbbp/build$ cmake -DVISUALIZATION_TOOL=OFF .
  ~/jpeg-pleno-refsw-bbbp/build$ make
After performing the above commands, the build can be verified via the following command:
  ~/jpeg-pleno-refsw-bbbp/build$ ctest --verbose
The built binaries will be stored in ~/jpeg-pleno-refsw-bbbp/bin.
A.2 Building baseline view-based profile reference software
Unpacking a ZIP file is operating system specific. Under POSIX compliant operating systems, open a
command line window and enter
  ~$ unzip jpeg-pleno-refsw-bvbp.zip
This will extract the source-code into the jpeg-plm-4dpm directory.
To compile the software, please follow these steps:
  ~$ cd jpeg-pleno-refsw-bvbp
  ~/jpeg-pleno-refsw-bvbp$ mkdir; cd build
  ~/jpeg-pleno-refsw-bvbp/build$ cmake .
  ~/jpeg-pleno-refsw-bvbp/build$ make -j
After performing the above commands, the build can be verified via the following command:
  ~/jpeg-pleno-refsw-bvbp/build$ make test
The built binaries will be stored in ~/jpeg-pleno-refsw-bvbp/build/bin.
5
© ISO/IEC 2022 – All rights reserved

---------------------- Page: 10 ----------------------
ISO/IEC 21794-4:2022(E)
Annex B
(informative)

Baseline block-based profile usage GUI
B.1 General
This Annex describes the usage of the software contained in the file "jpeg-pleno-refsw-bbbp.zip”
available at https:// standards .iso .org/ iso -iec/ 21794/ -4/ ed -1/ en/ and prepared and compiled with the
instructions given in Annex A. After the building steps, the bin directory is created. The bin directory
has the following structure:
|— jpl-decoder-bin
|— jpl-encoder-bin
|— tests
|  |— *_tests
|_ utils
  |— compute_lightfield_quality_metrics
  |— compute_psnr
  |— convert_pgx_to_ppm
  |— convert_ppm_to_pgx
  |— lenslet_13x13_shifter
  |_ lightfield_coordinate_shift
The main executable files are
jpl-encoder-bin, Encoder used to compress light fields into JPL files.
jpl-decoder-bin, Decoder used to decompress JPL files into light fields.
The executable files in tests directory have the suffix _tests and correspond to the unit tests generated
with purposes of building validation.
The utils directory contains six useful tools. These tools are not required for the encoding and
decoding processes but convenient for these tasks. The utils files are
compute_lightfield_quality_metrics, Compute several quality metrics for all views of an assessed
light field and generate a brief report.
compute_psnr, Compute the PSNR for a single PPM image.
convert_pgx_to_ppm, Convert a single image from PGX to PPM format.
convert_ppm_to_pgx, Convert a single image from PPM to PGX format.
lenslet_13x13_shifter, Adjust dark views at corners of Lenslet datasets.
lightfield_coordinate_shift, Batch filename rename of light field views.
The usage instructions for these tools can be seen by calling any util app with parameter --help.
B.2 Using the encoder for baseline block-based profile
The encoder requires one light field input. The input light field is represented as a directory containing a
set of sub-directories, one for each colour component. The name of each colour directory is the numeric
index of the colour channel, starting at 0. Each of those sub-directories contains uncompressed images
in PGX format. These PGX images shall be named following the “xxx_yyy.pgx” format, where “xxx” and
“yyy” indicate the vertical and horizontal position of a given view in the light field. The light field shall
begin at position 000_000. Furthermore, a sequence of views in a given direction shall be contiguous,
6
  © IS
...

Questions, Comments and Discussion

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