ISO/IEC 23090-18:2024/Amd 1:2024
(Amendment)Information technology — Coded representation of immersive media — Part 18: Carriage of geometry-based point cloud compression data — Amendment 1: Support for temporal scalability
Information technology — Coded representation of immersive media — Part 18: Carriage of geometry-based point cloud compression data — Amendment 1: Support for temporal scalability
Technologies de l'information — Représentation codée de média immersifs — Partie 18: Transport des données de compression des nuages de points basée sur la géométrie — Amendement 1: Prise en charge de l'échelonnabilité temporelle
General Information
Relations
Standards Content (Sample)
International
Standard
ISO/IEC 23090-18
First edition
Information technology — Coded
2024-01
representation of immersive media —
AMENDMENT 1
Part 18:
2024-09
Carriage of geometry-based point
cloud compression data
AMENDMENT 1: Support for temporal
scalability
Technologies de l'information — Représentation codée de média
immersifs —
Partie 18: Transport des données de compression des nuages de
points basée sur la géométrie
AMENDEMENT 1: Prise en charge de l'échelonnabilité temporelle
Reference number
ISO/IEC 23090-18:2024/Amd. 1:2024(en) © ISO/IEC 2024
ISO/IEC 23090-18:2024/Amd. 1:2024(en)
© 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
ISO/IEC 23090-18:2024/Amd. 1:2024(en)
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 documents 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/IEC 23090 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
iii
ISO/IEC 23090-18:2024/Amd. 1:2024(en)
Information technology — Coded representation of
immersive media —
Part 18:
Carriage of geometry-based point cloud compression data
AMENDMENT 1: Support for temporal scalability
Clause 3
Add the following terms:
3.12
temporal level track
volumetric visual track which carries a subset of point cloud frames in the G-PCC bitstream that constitute a
temporal sub-sequence of the actual G-PCC bitstream
3.13
temporal level tile track
volumetric visual track which carries one or more G-PCC tiles of a subset of point cloud frames in the G-PCC
bitstream that constitute a temporal sub-sequence of the actual G-PCC bitstream
7.2.1.2
Replace the content of the subclause with the following:
aligned(8) class GPCCDecoderConfigurationRecord {
unsigned int(8) configurationVersion = 1;
unsigned int(2) reserved = 0;
unsigned int(1) simple_profile_compliant;
unsigned int(1) dense_profile_compliant;
unsigned int(1) predictive_profile_compliant;
unsigned int(1) main_profile_compliant;
unsigned int(18) reserved_profile_18bits
unsigned int(8) level_idc;
unsigned int(7) num_setup_unit_arrays;
unsigned int(1) array_completeness;
for (i=0; i
unsigned int(8) setup_unit_type;
unsigned int(8) num_setup_units;
for (j=0; j
tlv_encapsulation setup_unit; //as defined in ISO/IEC 23090-9, Annex B
}
}
// additional fields
}
7.2.1.3
Replace
— numOfSetupUnits specifies the number of following setupUnit present in the decoder configuration record.
— setupUnit contains one data unit carrying one of SPS, GPS, and APS as defined in ISO/IEC 23090-9.
© ISO/IEC 2024 – All rights reserved
ISO/IEC 23090-18:2024/Amd. 1:2024(en)
with
— num_setup_unit_arrays indicates the number of arrays of setup units of the given type(s).
— array_completeness when equal to 1 indicates all parameter sets of all types are in the following array
and none are in the stream; when equal to 0 indicates that parameter set(s) of one or more types may
be in the stream; the default and permitted values are constrained by the sample entry type. When the
sample entry type of the track is 'gpe1' or 'gpc1', the value of array_completeness shall be equal to 1.
— setup_unit_type indicates the type of G-PCC setup units as defined in Annex B of ISO/IEC 23090-9.
— num_setup_units specifies the number of following setup_unit present in the decoder configuration record.
— setup_unit contains one data unit carrying one of SPS, GPS, and APS as defined in ISO/IEC 23090-9.
7.2.5, 7.26 and 7.2.7
Add the following subclauses after 7.2.4.
7.2.5 G-PCC parameter set sample group
7.2.5.1 Definition
'gpsg'
Group Types:
Container: Sample Group Description Box ('sgpd')
Mandatory: No
Quantity: Zero or more
A G-PCC parameter set sample group entry contains the parameter set information for samples that mapped
to it from SampleToGroupBox. Multiple SampleToGroupBox with grouping_type equal to ‘gpsg’ but with a
different grouping_type_parameter may be present. When multiple instances of the SampleToGroupBox with
grouping_type equal to 'gpsg' are present, the version of all the SampleToGroupBox boxes shall be set to 1.
A G-PCC parameter set sample group may be present in G-PCC tracks with track type 'gpcg’, 'gpeg’,
'gpcb’ and 'gpeb’. A G-PCC parameter set sample group shall not be present in G-PCC tracks with track
type 'gpc1’, 'gpe1’and 'gpt1’.
A SampleToGroupBox with grouping_type equal to ‘gpsg’ with a particular grouping_type_parameter
provides the mapping between samples with G-PCC parameter set sample group entries that contains all
parameter sets of that particular type.
NOTE When a particular G-PCC parameter set sample group entry is referred to / mapped to a sample in a
SampleToGroupBox with grouping_type equal to ‘gpsg’ with a particular grouping_type_parameter, the G-PCC
parameter set sample group entry contains all the parameter sets of that particular type for decoding the sample
while it can also contain other parameter sets as well.
Within a SampleToGroupBox with grouping_type equal to ‘gpsg’ with a particular grouping_type_parameter,
a sample shall be mapped to group_description_index value 0 when one of the following case is satisfied:
— The sample contains parameter set of that particular type.
— The sample does not contain the parameter set of that type but other parameter sets are present in the
sample entry.
For tracks with types 'gpeg’, 'gpcb’ and 'gpeb’, if only one SampleToGroupBox with grouping_type equal
to ‘gpsg’ is present in the track then grouping_type_parameter shall be set to zero. When a sample is
mapped to a G-PCC parameter set sample group entry in a SampleToGroupBox with grouping_type equal to
© ISO/IEC 2024 – All rights reserved
ISO/IEC 23090-18:2024/Amd. 1:2024(en)
‘gpsg’ and grouping_type_parameter equal to zero, the G-PCC parameter set sample group entry contains
the information to all the required parameter sets for the sample.
Annex L describes how the file player supports the random access.
7.2.5.2 Syntax
aligned(8) class GPCCParameterSetInfoEntry()
extends VolumetricVisualSampleGroupEntry ('gpsg') {
unsigned int(1) gpcc_unit_offset_flag;
unsigned int(7) num_parameter_sets_minus1;
for(int i = 0; i <= num_parameter_sets_minus1; i++) {
unsigned int(4) parameter_set_type;
unsigned int(4) parameter_set_id;
unsigned int(16)sample_offset;
if(gpcc_unit_offset_flag)
unsigned int(8) gpcc_unit_offset;
}
}
7.2.5.3 Semantics
gpcc_unit_offset_flag indicates whether the gpcc_unit offset information is present in the sample
description entry or not.
num_parameter_sets_minus1 plus one indicates the number of parameter sets described in the sample
description entry.
parameter_set_type indicates the type of the i-th parameter set as indicated in Table B.1 of ISO/IEC 23090-9.
parameter_set_id indicates the identifier of parameter set carried in the indicated sample. In case of
geometry parameter set, this value is equal to gps_geom_parameter_set_id present in the GPS. In case
of attribute parameter set, this field value is equal to aps_attr_parameter_set_id present in the APS. In
case of sequence parameter set, this field value is equal to sps_seq_parameter_set_id present in the SPS.
sample_offset specifies the sample offset from the immediately preceding sync sample where the indicated
parameter set is contained. The value of sample_offset shall be equal to or greater than 0.
NOTE When sample_offset is equal to 0, the sample that contains the parameter set is the immediately
preceding sync sample.
gpcc_unit_offset specifies that the i-th parameter set is the (gpcc_unit_offset + 1)-th GPCC unit in the
sample that contains the parameter set. The value of gpcc_unit_offset shall be equal to or greater than 0.
NOTE When gpcc_unit_offset is equal to 0, the parameter set is the 1st GPCC unit in the sample that
contains the parameter set.
7.2.6 Sub-frame timing sample group
7.2.6.1 Definition
This sample group provides sub-frame timing information which indicates a time offset to the composition
time of the G-PCC sample containing the sub-frame. When the track containing this sample group has no
CompositionOffsetBox, the composition time of the G-PCC sample corresponds to the decoding time of
this sample. The composition times for G-PCC sub-frames contained in a G-PCC sample is derived after the
composition time of the containing G-PCC sample is resolved.
— When the difference between sub-frame time offsets is constant (constant_time_offset_delta equals
1) for a group of G-PCC samples, the time offset of the i-th G-PCC sub-frame in a sample is equal to
subframe_time_offset_delta * i and the composition timestamp of the i-th G-PCC sub-frame in a sample
is computed as CTS[i] = CT + subframe_time_offset_delta * i, where CT is the composition time of
the sample containing the G-PCC sub-frame and i is varying from 0 to subframe_count – 1, included.
© ISO/IEC 2024 – All rights reserved
ISO/IEC 23090-18:2024/Amd. 1:2024(en)
— When the difference between sub-frame time offsets is not constant (constant_time_offset_delta
equals 0) for a group of G-PCC samples, the time offset of the i-th G-PCC sub-frame in a sample is equal
to subframe_time_offset[i] and the composition timestamp of the i-th G-PCC sub-frame in a sample is
computed as CTS[i] = CT + subframe_time_offset[i], where CT is the composition time of the sample
containing the sub-frame and i is varying from 0 to subframe_count – 1, included.
The loop on subframe_time_offset[i] is implicitly ordered in the order of sub-frames present in the samples
mapped to this entry with increasing frame index or frame number attribute values.
When a G-PCC bitstream contains sub-frames, i.e. frame number or frame index attribute, the following
constraints are applied:
— For single track encapsulation, when the G-PCC bitstream is carried using G-PCC tracks with ‘gpe1’ or
‘gpeg’ sample entry type, the subframe timing sample group may be present in the G-PCC track.
— For multi-track encapsulation, when the G-PCC bitstream is carried in multiple G-PCC tracks with 'gpc1'
or 'gpcg' sample entry type, the subframe timing sample group may be present only in the G-PCC
attribute track carrying the frame number or frame index attribute data units. The subframe timing
sample group shall not be present in G-PCC geometry track or G-PCC attribute track which does not carry
the frame number or frame index attribute data units.
— For encapsulation with G-PCC tile tracks, the sub-frame timing sample group may be present only in the
G-PCC tile track ('gpt1') carrying all components or in G-PCC attribute tile track carrying the frame
number or frame index attribute data units. The subframe timing sample group shall not be present in a
tile base track. The subframe timing sample group shall not be present in the following G-PCC tile tracks:
— G-PCC tile track carrying all components which are not comprised of the frame number or frame
index attribute data units;
— G-PCC geometry tile track;
— G-PCC attribute tile track which are not comprised of frame number or frame index attribute data units.
— The sub-frame timing sample group may be present in temporal level tracks or temporal level tile tracks
with the same constraints as for single track or multi-track encapsulations described in this clause.
NOTE The sub-frame timing sample group, when present, allows file readers to access to precise timing
information (e.g. corresponding to a capture time by a 3D sensor). When the G-PCC bitstream contains the frame
number attribute data units potentially leading to sub-frame reordering across samples, the subframe timing
sample group can be present in the appropriate G-PCC tracks to help file readers in reordering the sub-frames.
7.2.6.2 Syntax
aligned(8) class SubFrameTimingGroupEntry()
extends VolumetricVisualSampleGroupEntry (‘sfcf’) {
unsigned int (1) constant_time_offset_delta;
unsigned int (7) reserved = 0;
unsigned int(32) subframe_count;
if (constant_time_offset_delta == 1) {
unsigned int(32) subframe_time_offset_delta;
}
else {
for (int i=0; i < subframe_count; i++) {
signed int(32) subframe_time_offset[i];
}
}
}
7.2.6.3 Semantics
constant_time_offset_delta indicates whether all G-PCC sub-frames contained in the G-PCC samples
mapped to this entry have a constant time offset delta with the previous G-PCC sub-frame in the
increasing order of their frame index or frame number attribute values. Value 1 indicates that the time
offset delta is constant.
© ISO/IEC 2024 – All rights reserved
ISO/IEC 23090-18:2024/Amd. 1:2024(en)
subframe_count is an unsigned integer that counts the number of G-PCC sub-frames in the G-PCC samples
mapped to this entry. The value 0 is reserved.
subframe_time_offset_delta is an unsigned integer that gives the difference, in the timescale of the media,
between composition timestamps of two successive G-PCC sub-frames present in a G-PCC sample
mapped to this entry.
subframe_time_offset[i] is a signed integer that indicates the time offset of the i-th G-PCC sub-frame
present in the G-PCC samples mapped to this entry, in the timescale of the media. This time offset is
relative to the composition timestamp of the sample containing the sub-frame.
7.2.7 TLV sample group
7.2.7.1 Definition
'tlvs'
Group Types:
Container: Sample Group Description Box ('sgpd')
Mandatory: No
Quantity: Zero or more
The use of 'tlvs' for the grouping_type in sample grouping indicates the number of slices and the number
of TLVs per slice of the samples associated with this sample group. When a SampleGroupDescriptionBox
with grouping_type equal to ‘tlvs’ is present, an accompanying SampleToGroupBox with the same grouping
type may be present (when default sample grouping cannot apply). The grouping_type_parameter in this
SampleToGroupBox is undefined.
The 'tlvs' sample group may be present in 'gpc1' or 'gpcg' or 'gpt1' geometry tracks referenced by a
'gpcb' tile base track. The 'tlvs' sample group shall not be present in 'gpc1' or 'gpcg' attribute tracks,
'gpe1', 'gpeg', 'gpeb', 'gpcb', or 'gpt1' track carrying DUs of all components.
Annex M describes how a G-PCC frame is reconstructed from multiple tracks. The reconstruction process is
applied to the following cases containing more than one slice:
— one geometry track and its associated attribute tracks;
— each set of geometry tile track and its associated attribute tile tracks;
— when temporal scalability is in use:
— each set of geometry temporal level track and its associated attribute temporal level tracks;
— each set of geometry temporal tile track and its associated attribute temporal tile tracks.
7.2.7.2 Syntax
aligned(8) class GPCC_TLVToSliceGroupEntry() extends
VolumetricVisualSampleGroupEntry (‘tlvs’)
{
unsigned int nb_referenced_tracks;
unsigned int (16) num_slices;
for (int I = 0; i < num_slices; i++){
unsigned int (8) num_tlvs[1 + nb_referenced_tracks]
}
}
7.2.7.3 Semantics
© ISO/IEC 2024 – All rights reserved
ISO/IEC 23090-18:2024/Amd. 1:2024(en)
nb_referenced_tracks is equal to the number of tracks referenced by the ‘gpca’ track references from the
geometry track containing this sample group to attribute tracks.
num_slices indicates the number of slices present in the samples associated with this sample group.
num_tlvs is an array of integers providing the number of consecutive TLV units of the geometry track
containing this sample group and the referenced tracks of a given slice in the samples associated with this
sample group. The array is ordered starting by the number of TLV units for the geometry track containing
this sample group, followed by the number of TLV units for each attribute track referenced by the ‘gpca’
track reference, in the order of tracks within the track reference.
7.6
Add the following subclause after 7.5.
7.6 Sync sample box
SyncSampleBox may be present in the following tracks:
— Track with sample entry type ‘gpeg’
— Track with sample entry type ‘gpcg’
— Track with sample entry type ‘gpeb’ or‘gpcb’
NOTE SyncSampleBox is not present in track with sample entry type ‘gpe1’ and in track with sample entry
type ‘gpc1’ since all samples have intra coded frame and all parameter sets are carried in the sample entry.
NOTE SyncSampleBox is not present in the tile base track when all parameter sets that are needed to decode
any samples in the associated tile tracks are carried in the tile base track sample entry.
A sync sample with sample entry type ‘gpcg’ and ‘gpcg’ shall satisfy all the following conditions:
— It shall be independently decodable.
— None of the samples that come after the sync sample (in decoding order) have any decoding dependency
on any sample prior to the sync sample.
— All samples that come after the sync sample (in decoding order) and until the next sync samples are
successfully decodable.
— The parameter set(s) required to decode the sample shall be included either in the sample itself or in the
sample entry.
When it is present in the track with sample entry type ‘gpcg’, SyncSampleBox shall be present in the geometry
track and the associated attribute tracks. The sync samples in the geometry track and its associated attribute
tracks that are indicated in SyncSampleBox shall be aligned.
When it is present in the track with sample entry type ‘gpeb’ or ‘gpcb’, the following applies:
a) If the sample is a sync sample, all parameter sets needed for decoding the associated G-PCC tile track
samples shall be included either in the sample entry or in the sample itself.
b) Otherwise (the sample is not a sync sample), all parameter sets needed for decoding the associated
G-PCC tile track samples shall be included either in the sample entry or in any of the samples since the
previous sync sample to the sample itself, inclusive.
When both SyncSampleBox and G-PCC parameter sets sample group are not present in a track with sample
entry type ‘gpeg’, gpcg’, ‘gpeb’ or‘gpcb’, the method to perform random access playback is not specified.
When temporal scalability is supported and the G-PCC bitstream is stored in multiple temporal level tracks,
SyncSampleBox may be present in all the tracks.
© ISO/IEC 2024 – All rights reserved
ISO/IEC 23090-18:2024/Amd. 1:2024(en)
9.2.3.1
Replace the last paragraph with:
Static viewport information is signalled in GPCCViewportInfoConfigutationBox present in the sample entry
of one of G-PCC bitstream track, G-PCC geometry track, or G-PCC tile base track. GPCCViewportInfoConfigut
ationBox shall not be present in any G-PCC attribute tracks and G-PCC tile tracks.
When GPCCViewportInfoConfigutationBox present in the sample entry of one of G-PCC bitstream track,
G-PCC geometry track, or G-PCC tile base track, both of dynamic_int_camera_flag and dynamic_ext_camera_
flag shall be set to 0.
9.2.4.2
Add the following:
Both of dynamic_int_camera_flag and dynamic_ext_camera_flag in GPCCViewportInfoConfigutationBox
shall not be set to 0.
9.2.4.3.3
Replace the content of the subclause with:
— num_viewports indicate the number of viewports signalled in the sample.
— viewport_id is an identifier that is used to identify the viewport.
— When viewport_cancel_flag is equals to 1, it indicates that the viewport with the viewport_id is
cancelled. When viewport_cancel_flag is equals to 0, it indicates that either camera extrinsic information
structure or camera intrinsic information structure shall be present in the current sample.
— When camera_ext_flag is equal to 1, it indicates that the extrinsic camera information structure of this
viewport is present in the current sample. It shall be equal to 0 when dynamic_ext_camera_flag in the
sample entry is equal to 0.
— When camera_int_flag equal to 1 indicates that the intrinsic camera information structure of this
viewport is present in the current sample. It shall be equal to 0 when dynamic_int_camera_flag in the
sample entry is equal to 0.
Clause 12
Add the following new clause after Clause 11.
12 Temporal scalability support
12.1 General
A G-PCC temporal level is a subset of the point cloud frames that constitute a temporal sub-sequence of the
actual G-PCC bitstream. Each point cloud frame may be associated with a particular temporal level. Each
temporal level is identified by a unique temporal level identifier with the first temporal level having the id 0.
A G-PCC bitstream may be carried/stored in one or more temporal level tracks. Necessary information to
describe the temporal level tracks and the mapping between a sample and its temporal level may be available
in the file. A G-PCC sample belonging to a certain temporal level shall not have any decoding dependency
© ISO/IEC 2024 – All rights reserved
ISO/IEC 23090-18:2024/Amd. 1:2024(en)
on any G-PCC samples present in higher temporal levels. Prior to decoding process, necessary samples are
extracted from the temporal level track(s) and combined into a single conforming G-PCC bitstream. When
extracting a G-PCC bitstream for a target temporal level with an id greater than 0 and target tile ids, data
from all lower temporal level samples are also included in the resulting output bitstream, and the required
G-PCC tracks are selected accordingly during the extraction process.
Figure 4 shows an example of enabling the playback of a G-PCC bitstream at 30 fps, 45 fps, and 60 fps when
the G-PCC bitstream are encapsulated into three temporal levels; temporal level 0 represents a 30 fps
subsequence, and temporal levels 1 and 2 represent a 15 fps subsequence, respectively. A combination of
temporal level 0 and temporal level 1 enables the playback of G-PCC bitstream as a 45 fps in average and the
combination of all three temporal levels enables the playback of G-PCC bitstream as 60 fps in average.
Key
The presentation time difference between two consecutive frames
A temporal level 2
B temporal level 1
C temporal level 0
a
Frame 4.
b
Frame 8.
c
Frame 12.
d
Frame 2.
e
Frame 6.
f
Frame 10.
g
Frame 1.
h
Frame 3.
i
Frame 5.
j
Frame 7.
k
Frame 9.
l
Frame 11.
Figure 4 — Temporal levels in a G-PCC sequence
When the temporal scalability is used, either any alternatives of same G-PCC content or any alternatives of
same point cloud bitstream shall not be carried in a same file.
© ISO/IEC 2024 – All rights reserved
ISO/IEC 23090-18:2024/Amd. 1:2024(en)
12.2 Common data structures
12.2.1 Temporal level sample group
The temporal level sample grouping (‘tele’) defined in ISO/IEC 14496-12 provides a codec-independent sample
grouping that can be used to group G-PCC samples in a G-PCC track (and potential track fragments) according
to temporal level, where samples of one temporal level have no coding dependencies on samples of higher
temporal levels. This sample group may be present in temporal level tracks or in temporal level tile tracks.
When present in a G-PCC track, temporal level sample group provides mechanism to indicate the temporal
level identifier value for each sample in that track.
Annex J contains examples of how temporal level sample group is indicated according to different track
encapsulations.
12.2.2 Temporal level sample group in temporal level track
When the G-PCC bitstream is carried using multiple temporal level tracks, the ‘tele’ sample group shall
only be present in a temporal level track that contains geometry component when the number of temporal
levels in the track is greater than one. When the ‘tele’ sample group is present in a temporal level track,
the samples belonging to a temporal level identifier shall be mapped to the sample group description
index equal to temporal level identifier plus 1. The list of temporal level identifier is available in the
GPCCScalabilityInfoBox that is present in the sample entry of the track.
When sample group description box with grouping_type equal to ‘tele’ is present in temporal level track,
the value of entry_count shall be equal to the highest temporal level identifier value contained in the
track plus one. The highest temporal level identifier value is the highest value in the list of temporal level
identifiers present in the GPCCScalabilityInfoBox of that temporal level track.
When each temporal level track carries a single component data, the temporal level of a sample in a track
containing attribute component is identical to the temporal level of the corresponding sample, i.e. the sample
with the same composition time stamp, in the associated track containing geometry component.
12.2.3 Temporal level sample group in temporal level tile track
When the G-PCC bitstream is carried using multiple temporal level tile tracks, the ‘tele’ sample group
shall only be present in a temporal level tile track that contains geometry component when the number
of temporal levels in the track is greater than one. When the ‘tele’ sample group is present in a temporal
level tile track, the samples belonging to a temporal level identifier shall be mapped to the sample group
description index equal to temporal level identifier plus 1. The list of temporal level identifier is available in
the GPCCTileScalabilityInfoBox if it is present in the sample entry of the temporal level tile track or in the
GPCCScalabilityInfoBox that is present in the sample entry of the associated tile base track.
When sample group description box with grouping_type equal to ‘tele’ is present in a temporal level tile
track, the value of entry_count shall be equal to the highest temporal level identifier value contained in
the track plus one. The highest temporal level identifier value contained in the temporal level tile track is
derived as follows:
— If GPCCTileScalabilityInfoBox is present in the temporal level tile track, the highest temporal
level identifier is the highest value in the list of temporal level identifiers present in that track’s
GPCCTileScalabilityInfoBox box.
— Otherwise (i.e., GPCCTileScalabilityInfoBox is not present in the temporal level tile track), the highest
temporal level identifier is the highest value in the list of temporal level identifiers present in the
GPCCScalabilityInfoBox in the associated tile base track of that temporal level tile track.
© ISO/IEC 2024 – All rights reserved
ISO/IEC 23090-18:2024/Amd. 1:2024(en)
When each temporal level tile track carries a single component data, the temporal level of a sample in a tile
track containing attribute component is identical to the temporal level of the corresponding sample, i.e. the
sample with the same composition time stamp, in the associated tile track containing geometry component.
12.3 Temporal level track
12.3.1 General
A G-PCC track containing GPCCScalabilityInfoBox in the sample entry is referred as temporal level track
carrying a temporal subset of the G-PCC bitstream. When the G-PCC bitstream is carried in multiple temporal
level tracks, all temporal level tracks carrying a subset of same G-PCC bitstream shall use the same sample
entry type.
In each sample entry, the value of simple_profile_compatibility_flag, dense_profile_compatibility_
flag, predictive_profile_compatibility_flag, and main_profile_compatibility_flag shall indicate a
profile to conform to samples in temporal level tracks with current and lower temporal level ids. The value
of level_idc shall indicate a level of capability equal to or greater than the highest level required for samples
in temporal level tracks with current and lower temporal level ids.
Temporal level tracks with temporal level id greater than 0 shall have their track_in_movie flags set to 0.
12.3.2 G-PCC scalability information box
12.3.2.1 Definition
‘gsci’
Box Types:
Container: GPCCSampleEntry (‘gpe1’, ‘gpeg’, ‘gpc1’, ‘gpcg’, ‘gpcb’, or ‘gpeb’)
Mandatory: No
Quantity: Zero or one
This box signals scalability information for a G-PCC track. When this box is present in a G-PCC track with
sample entries of type ‘gpe1’, ‘gpeg’, ‘gpc1’, ‘gpcg’, ‘gpcb’, or ‘gpeb’, it indicates that temporal
scalability is supported and provides information about the temporal levels present in this G-PCC track. This
box shall not be present in a G-PCC track when the temporal scalability is not used.
This box shall not be present in G-PCC tile track with a sample entry of type ‘gpt1’.
For tracks with sample entry type ‘gpc1’ or ‘gpcg’, the GPCCScalabilityInfoBox may be present only in the
tracks that carry G-PCC geometry component. For the tracks with sample entry type ‘gpc1’ or ‘gpcg’ which
carry attribute component, the GPCCScalabilityInfoBox shall not be present but should be inferred from
the GPCCScalabilityInfoBox in the sample entry of the corresponding G-PCC geometry track.
12.3.2.2 Syntax
aligned(8) class GPCCScalabilityInfoBox
extends FullBox(‘gsci’, version = 0, 0) {
unsigned int(1) multiple_temporal_level_tracks_flag;
unsigned int(1) frame_rate_present_flag;
bit(3) reserved = 0;
unsigned int(3) num_temporal_levels;
for(i=0; i < num_temporal_levels; i++){
bit(5) reserved;
unsigned int(3) temporal_level_id;
© ISO/IEC 2024 – All rights reserved
ISO/IEC 23090-18:2024/Amd. 1:2024(en)
if (frame_rate_present_flag){
unsigned int(16) frame_rate;
}
}
}
12.3.2.3 Semantics
multiple_temporal_level_tracks_flag indicates the presence of multiple temporal level tracks in the file.
When the sample entry type is ‘gpe1’, ‘gpeg’, ‘gpc1’, or ‘gpcg’, the following applies:
— If the value of multiple_temporal_level_tracks_flag is equal to 0, it specifies that there is no other
temporal level track for the G-PCC bitstream.
— Otherwise, it specifies that there may be other temporal level track(s) for the G-PCC bitstream.
When one of the following applies, the value of multiple_temporal_level_tracks_flag shall be equal to 1:
— There are more than one temporal level tracks with sample entry type ‘gpe1’ or ‘gpeg’.
— There are more than one temporal level tracks with sample entry type ‘gpc1’ or ‘gpcg’ containing the
same component type.
When the sample entry type is ‘gpcb’ or ‘gpeb’, the following applies:
— If the value of multiple_temporal_level_tracks_flag is equal to 0, it specifies that each tile track
referred to by the tile base track contains samples from all temporal levels for the G-PCC bitstream.
— Otherwise, it specifies that there may be one or more temporal tile tracks that do not contain samples
from all temporal levels for the G-PCC bitstream.
When one of the following applies, the value of multiple_temporal_level_tracks_flag shall be equal to 1:
— The track is a tile base track with sample entry type ‘gpeb’ and it refers to tile tracks in which there
are more than one temporal level tile tracks of the same tile(s).
— The track is a tile base track with sample entry type ‘gpcb’ and it refers to tile tracks in which there
are more than one temporal level tile tracks of the same tile(s) of the same component type.
How the value of multiple_temporal_level_tracks_flag is handled is described in Annex K.
frame_rate_present_flag indicates the presence of average frame rate information. Value 1 indicates the
average frame rate information is present. Value 0 indicates the average frame rate information is not
present.
num_temporal_levels indicate the number of temporal levels present in the samples of the respective track.
For ‘gpcb’or ‘gpeb’ G-PCC track, this field value indicates the maximum number of temporal levels
present in the samples of this G-PCC track. The minimum value of num_temporal_levels shall be 1.
temporal_level_id indicates temporal level identifier of a G-PCC sample in the respective track. The
following applies to the value of temporal_level_id:
— The value of temporal_level_id shall be in increment of 1. For a temporal level with temporal id x,
the immediate next temporal level shall have temporal id equal to x + 1.
— When a TrackB is said to be the next temporal level track of another TrackA, TrackB shall contain
samples with temporal id equal to the highest temporal id in TrackA plus 1.
frame_rate gives the average frame rate of a temporal level in units of frames / (256 seconds). Value 0
indicates an unspecified average frame rate.
12.3.3 Temporal level track samples
© ISO/IEC 2024 – All rights reserved
ISO/IEC 23090-18:2024/Amd. 1:2024(en)
12.3.3.1 General
The smallest composition time difference between two consecutive samples in a temporal level track with
a maximum temporal_level_id Y shall be equal to or greater than the smallest composition time difference
between two consecutive samples in a temporal level track with a maximum temporal_level_id X when Y is
greater than X.
The presentation time of samples present in different temporal level tracks belonging to the same point
cloud component shall be different. For example, the presentation time of geometry component samples
present in temporal level 0 and temporal level 1 geometry component tracks shall be different.
The syntax and semantics of samples in a temporal level track carrying more than one G-PCC component
as defined in 7.3.3, shall be applied. The syntax and semantics of samples in a temporal level track carrying
only one G-PCC component as defined in 7.4.3, shall be applied.
12.3.3.2 sub-sample
The syntax and semantics of the sub-sample as defined in 7.3.3.4, is applied.
For temporal level track carrying multiple G-PCC components, when sub-samples are present, the
SubSampleInformationBox with flags equal to 0 in SampleTableBox, or in the TrackFragmentBox of each of its
MovieFragmentBoxes shall be present.
For temporal level track carrying only one G-PCC component, when sub-samples are present,
SubSampleInformationBox with flags equal to 1 in SampleTableBox, or in the TrackFragmentBox of each of its
MovieFragmentBoxes shall be present.
12.3.4 Temporal scalability track grouping
12.3.4.1 Definition
The temporal level tracks carrying the G-PCC geometry component may be grouped into a G-PCC temporal
scalability track group.
A GPCCTemporalScalabilityGroupBox may be present in a track with sample entry type ‘gpe1’, ‘gpeg’,
‘gpc1’, or ‘gpcg’. When GPCCTemporalScalabilityGroupBox is present, to get a bitstream with more
temporal levels, only the tracks with the same track_group_id of a GPCCTemporalScalabilityGroupBox shall
be combined. A GPCCTemporalScalabilityGroupBox may be present in a track that contains the geometry
component. A GPCCTemporalScalabilityGroupBox shall not be present in a track with sample entry type
'gpc1' or 'gpcg' that contains the attribute component. When GPCCTemporalScalabilityGroupBox is
present in tracks with sample entry 'gpc1' or 'gpcg', the combination of G-PCC geometry tracks within
the same temporal scalability track group implies the combination of G-PCC attribute tracks which are
referenced by the G-PCC geometry tracks.
12.3.4.2 Syntax
aligned(8) class GPCCTemporalScalabilityGroupBox
extends TrackGroupTypeBox('gtsg') {
// track_group_id is inherited from TrackGroupTypeBox;
}
12.4 Temporal level tile track
12.4.1 General
A G-PCC tile track containing GPCCTileScalabilityInfoBox in its sample entry is referred as G-PCC temporal
level tile track and it carries one or more G-PCC tiles of a temporal subset of the G-PCC bitstream. When the
© ISO/IEC 2024 – All rights reserved
ISO/IEC 23090-18:2024/Amd. 1:2024(en)
G-PCC bitstream is carried in multiple temporal level tile tracks, all temporal level tile tracks shall use the
sample entry type ‘gpt1’.
12.4.2 G-PCC tile track scalability information box
12.4.2.1 Definition
'gtsi'
Box Types:
Container: SampleEntry ('gpt1')
Mandatory: No
Quantity: Zero or one
This box contains the scalability information for a G-PCC tile track with sample entry type ‘gpt1’. This box
may only be present in a tile track when the sample entry of the associated G-PCC tile base track contains a
GPCCScalabilityInfoBox. When GPCCTileScalabilityInfoBox presents, it shall only be present in a G-PCC
temporal level tile track that contains geometry component.
When temporal scalability is not supported, this box shall not be present in any of G-PCC tile tracks. This box
shall not be present in the G-PCC tile track when the GPCCScalabilityInfoBox is not present in the sample
entry of the associated G-PCC tile base track.
The following applies:
— If this box is present in the sample entry of a G-PCC tile track, it indicates that temporal scalability is
supported and the number of temporal levels in the G-PCC tile track is less than the number of temporal
levels signalled in GPCCScalabilityInfoBox present in the associated G-PCC tile base track.
— Otherwise, if this box is not present in the sample entry of a G-PCC tile track and GPCCScalabilityInfoBox
is present in the associated G-PCC tile base track, the temporal scalability is supported and the temporal
scalability information for the G-PCC tile track is derived from the GPCCScalabilityInfoBox in the
associated G-PCC tile base track. The number of temporal levels and temporal level identifiers for the
G-PCC tile track are inferred to be equal to the number of temporal levels and temporal level identifiers
signalled in GPCCScalabilityInfoBox,respectively.
— Otherwise (this box is not present in a G-PCC tile track and GPCCScalabilityInfoBox is not present in the
associated G-PCC tile base track), temporal scalability is not supported.
This box may only be present in the G-PCC temporal level tile tracks carrying geometry component and
shall not be present in the G-PCC temporal level tile tracks carrying attribute component only, but the
temporal level information is inferred from the GPCCTileScalabilityInfoBox present in the sample
entry of the corresponding G-PCC temporal level tile track carrying the geometry component or from the
GPCCScalabilityInfoBox present in the sample entry of the associated G-PCC tile base track.
12.4.2.2 Syntax
aligned(8) class GPCCTileScalabilityInfoBox
extends FullBox('gtsi', version = 0, 0) {
bit(5) reserved;
unsigned int(3) num_temporal_levels;
for(i=0; i < num_temporal_levels; i++){
bit(5) reserved;
unsigned int(3) temporal_level_id;
}
}
© ISO/IEC 2024 – All rights reserved
ISO/IEC 23090-18:2024/Amd. 1:2024(en)
12.4.2.3 Semantics
num_temporal_levels indicates the number of temporal levels present in the samples of the respective tile track.
temporal_level_id indicates a temporal level identifier of the samples signalled in the respective tile track.
12.4.3 Temporal level tile track samples
12.4.3.1 General
The syntax and semantics of samples in a temporal level tile track as defined in 7.5.3.2, shall be applied.
12.4.3.2 sub-sample
The syntax and semantics of the sub-sample as defined in 7.5.3.2.2, shall be applied.
12.5 Player behavior with temporal scalability support
For handling G-PCC bitstream stored in an ISOBMFF file with temporal level tracks, the G-PCC player is
provided with a target temporal level and optionally target tile ids, if the file contains G-PCC tile tracks.
When extracting a G-PCC bitstream for a target temporal level with an id greater than 0 and target tile ids,
data from all lower temporal level samples are also included in the resulting bitstream, and the required
tracks are selected accordingly during the extraction process. The extracted G-PCC samples are used to
form the output bitstream. The extracted G-PCC samples in the output bitstream are in increasing order of
the decoding time.
The extraction process may extract samples from one or more temporal level tracks, and it combines the
extracted samples into one single output bitstream. Encoder may split a single G-PCC bitstream and store
it into multiple temporal level tracks or multiple temporal level tile tracks and transmits the file over the
network. Prior to decoding process, G-PCC player extracts samples from the temporal level tracks, combines
them into an output bitstream, and feeds it to a single G-PCC decoder.
NOTE The player feeds the output bitstream to a single decoder as there is no scalability concept in G-PCC codec.
However, implement
...








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...