Field
[0001] The present application generally relates to point cloud compression. Preferably,
the present application relates to a method of encoding and decoding as well as an
encoder and decoder for improved entropy coding of point clouds.
Background
[0002] As an alternative to 3D meshes, 3D point clouds have recently emerged as a popular
representation of 3D media information. Use cases associated with point cloud data
are very diverse and include:
- 3D assets in movie production,
- 3D assets for real-time 3D immersive telepresence or VR applications,
- 3D free viewpoint video (for instance for sports viewing),
- Geographical Information Systems (cartography),
- Culture heritage (storage of fragile assets in digital form),
- Autonomous driving (large scale 3D mapping of environment) ...
A point cloud is a set of points in a 3D space, each with associated attributes, e.g.
color, material properties, etc. Point clouds can be used to reconstruct an object
or a scene as a composition of such points. They can be captured using multiple cameras
and depth sensors in various setups and may be made up of thousands up to billions
of points in order to realistically represent reconstructed scenes.
[0003] For each points of a point cloud, its position (usually an X, Y, Z information coded
as a floating point with 32 or 64 bits) and its attributes (usually at least an RGB
color coded in 24 bits) need to be stored. With sometimes billions of points in a
point cloud, one can easily understand that the raw data of a point cloud can be several
Gigabytes of data: hence, there is a strong need for compression technologies so as
to reduce the amount of data required to represent a point cloud.
[0004] Two different approaches were developed for point cloud compression:
First, in the Video based Point Cloud Compression (VPCC) approach, a point cloud is
compressed by performing multiple projections of it on the 3 different axis X, Y,
Z and on different depths so that all points are present in one projected image. Then
the projected images are processed into patches (to eliminate redundancy) and re-arranged
into a final picture where additional metadata is used to translate pixels positions
into point positions in space. The compression is then performed using traditional
image/video MPEG encoders. The advantage of this approach is that it reuses existing
coders and it naturally supports dynamic point clouds (using video coders) but this
is hardly usable for scarce point clouds and it is expected that the compression gain
would be higher with point clouds dedicated methods.
[0005] Second, in the Geometry based Point Cloud Compression (GPCC) approach, points positions
(usually referred to as the geometry) and points attributes (color, transparency...)
are coded separately. In order to code the geometry, an octree structure is used.
The whole point cloud is fitted into a cube which is continuously split into eight
sub-cubes until each of the sub-cubes contains only a single point. The position of
the points is therefore replaced by a tree of occupancy information at every node.
Since each cube has only 8 sub-cubes, 3 bits are enough to code the occupancy and
therefore for a tree of depth D, 3
D bits are needed to code the position of a point. While this transformation alone
is not enough to provide significant compression gain, it should be noted that since
it is a tree, many points share the same node values and thanks to the use of entropy
coders, the amount of information can be significantly reduced.
[0006] Understanding that many point clouds include surfaces, in the current design of GPCC,
a planar coding mode was introduced to code such eligible nodes of the octree more
efficiently.
[0007] Thus, a flag isPlanar is introduced, which indicates whether or not the occupied
child nodes belong to a same horizontal plane. If isPlanar is true, then an extra
bit planePosition is signaled to indicate whether the plane is the lower plane or
the upper plane.
[0008] The isPlanar flag is coded by using a binary arithmetic coder with the 8 (2x2x2)
bit context information as planar context information. Further, if the node is planar,
the plane position information is coded by using a binary arithmetic coder with 24
(=2x3x2x2) bit context information as plane position context information.
[0009] Additionally, an angular coding mode was introduced to enhance planar coding mode
using angular context for sparse point cloud data, where neighbor occupancy tends
to be zero (i.e., empty) in most cases. More specifically, angular coding mode replaces
the context information when coding planePosition with a reduced context information
and the isPlanar flag is still arithmetically coded using the same context model as
in planar coding mode.
[0010] However, in the current methods for encoding and decoding of point clouds, information
of the neighboring nodes is not considered.
[0011] Thus, it is an object of the present invention to provide an encoding and decoding
method as well as an encoder and decoder enabling improved quick and accurate data
compression of point clouds.
Summary
[0012] In an aspect of the present invention, a method for encoding a point cloud is provided
to generate a bitstream of compressed point cloud data, wherein the point cloud's
geometry is represented by an octree-based structure with a plurality of nodes having
parent-child relationships by recursively splitting a volumetric space containing
the point cloud into sub-volumes each associated with a node of the octree-based structure,
comprising the steps:
Determining a coding mode, wherein the coding mode includes planar coding mode and
angular coding mode;
Obtaining coding context information for a present child node, wherein if the coding
mode is the planar coding mode, coding context information includes planar context
information, wherein planar context information of the present child node is determined
according to the occupancy pattern of the present parent node and the occupancy pattern
of at least one neighboring parent node positioned directly next to the present parent
node;
if the coding mode is the angular coding mode, the coding context information of a
present child node includes planar information of the present parent node and the
occupancy of the vertical parent neighbor adjacent to the present parent node; and
Entropy encoding the occupancy of the present child node based on the determined coding
context information to produce encoded data for the bitstream.
Thus, initially the coding mode is determined. Depending on the coding mode, the context
information is determined resulting in two different context information for efficient
entropy encoding.
Therein, for the planar coding mode, the present parent and the neighboring parent
node are on the same depth D of the tree. Due to their position, the present parent
node and the neighboring parent node share a common surface. For the current child
node, being a direct child of the present parent node at depth D+1 of the tree, the
planar context information is determined in dependence on the occupancy pattern of
the present parent node and the at least one neighboring parent node. Therein, the
occupancy pattern includes the distribution of occupied child nodes within the respective
parent node. Therein, the planar context information includes information about a
possible plane or surface represented by the point cloud going through the current
child node. Thus, information about the occupancy pattern of at least one direct neighbor
of the present parent node is considered as context information for the entropy encoding.
For the angular coding mode, a more efficient planar context mode is implemented instead.
Compared to the planar context information of the planar coding mode, only that information
is considered which is accessible in sparsely populated cloud data.
As a consequence, more reliable predictions about occupancy of the current child node
can be made which can be used for increased data reduction by the entropy encoder.
In this manner, the complete tree is traversed to determine an occupancy for each
node and provides sufficient context information for the entropy encoder.
[0013] Preferably, the neighboring parent node is the node directly next to the present
child node, sharing one surface with the present child node.
[0014] Preferably, for the planar coding mode, coding context information includes planar
context information, wherein the only planar context information of the present child
node is determined according to the occupancy pattern of the present parent node and
the occupancy pattern of at least one neighboring parent node positioned directly
next to the present parent node.
[0015] Preferably, for the angular coding mode, the coding context information of a present
child node consist of planar information of the present parent node and the occupancy
of the vertical parent neighbor adjacent to the present parent node.
[0016] Preferably, if the coding mode is the planar coding mode, the coding context information
includes plane position context information, wherein the plane position context information
includes one or more of:
The distance d from the closest already coded node at the same coordinate in the respective
parent node and the same depth D in the octree-based structure;
The plane position of the closest already coded node at the same coordinate in the
respective parent node and the same depth D in the octree-based structure; and
The plane position of the present child node according to the occupancy pattern of
at least one neighboring parent node positioned next to the present parent node.
Therein, in particular, the distance d is discretized into the values "near", "not
too far" and "far". If the already coded node at the same coordinate and depth D exists
at all, then also the plane position, i.e. "high" or "low", may be included to the
plane position context information. Therein, the coordinate of the child node is the
relative position within the respective parent node. Further, the plane position may
be included into the plane position context information according to the occupancy
pattern of at least one neighboring parent node positioned next to the present parent
node. In particular, the plane position context information includes more than one
or all of the above-mentioned information. In particular, in the planar coding mode,
the plane position context information may consist of the above-mentioned information.
[0017] Preferably, if the closest already coded node at the same coordinate in the respective
parent node and the same depth D in the octree-based structure is non-existent, then
the plane position context information only includes the plane position of the present
child node according to the occupancy pattern of at least one neighboring parent node
positioned directly next to the present parent node. Thus, the plane position context
information is determined in this case alone from the information gathered from the
neighboring nodes. No further information is accessible and therefore used. But due
to including the information from the neighboring nodes, efficient compression is
feasible even in this case. In particular, the axisIdx-statement identifying the axis
normal to the plane for coding planePosition proposed in the present GPCC specification
is replaced by the context information determined from the occupancy of the neighboring
nodes.
[0018] Preferably, if the coding mode is the angular coding mode and the present child node
is not eligible for angular coding mode, the coding context information includes plane
position context information, wherein the plane position context information includes
one or more of:
The distance d from the closest already node at the same coordinate in the respective
parent node and the same depth D in the octree-based structure;
The plane position of the closest already coded node at the same coordinate in the
respective parent node and the same depth d in the octree-based structure; and
The plane position of the present child node according to the occupancy pattern of
at least one neighboring parent node positioned directly next to the present parent
node. Thus, in this case, the plane position context information can be identical
to the plane position information in the planar coding mode. In particular, the plane
position context information includes more than one or all of the above-mentioned
information. In particular, in the angular coding mode, if the present child node
is not eligible for the angular coding mode, the plane position context information
may consist of the above-mentioned information.
[0019] Preferably, for determining the planar context information and the plane position
context information according to the occupancy pattern of at least one neighboring
node, a present plane position of the present child node relative to the present parent
node is determined, wherein the present plane position includes high plane position
and low plane position. Therein, for a certain geometrical axis under consideration,
going along the axis through the parent node, if there is first a plane of child nodes
in the present parent node perpendicular to the axis including the present child node,
then the present plane position is low plane position. If there is first a plane of
child nodes in the present parent node perpendicular to the axis without the present
child node, the present plane position is high plane position. Thus, the present plane
position is determined for the planar context information in the planar coding mode,
as well as part of the plane position context information in the plana coding mode
and the angular coding mode.
[0020] Preferably, if the present plane position is low plane position, the planar context
information and plane position context information is determined according to an occupancy
of a first group of four child nodes of the neighboring parent node that are directly
next to the present parent node and the occupancy of a second group of four child
nodes of the present parent node directly opposite the first group. In other words,
the four child nodes of the first group of the neighboring parent node are directly
adjacent to the common surface of the present parent node and the neighboring parent
node and the second group is within the present parent node arranged directly adjacent
to the opposite side of the present parent node. Each of the groups preferably define
a plane by the four child nodes, wherein each of the planes is perpendicular to the
considered geometrical axis and directly adjacent to the present child node to be
evaluated. Thus, sufficient information can be acquired to provide a reliable prediction
about the likelihood of a plane in the present child node and the likelihood of its
position.
[0021] Preferably, for the present plane position being at low plane position, if at least
one child node of the first group is occupied and the second group is not occupied,
the planar context information includes the likelihood of a plane and the plane position
context information includes the likelihood of a low plane position.
[0022] Preferably, for the present plane position being at low plane position, if the first
group is not occupied and at least one child node of the second group is occupied,
the planar context information includes the likelihood of a plane and the plane position
context information includes the likelihood of a high plane position.
[0023] Preferably, for the present plane position being at low plane position, if the first
group is not occupied and the second group is not occupied, the planar context information
includes the likelihood of a plane, wherein the plane position context information
includes the likelihood of a low plane, if at least one or more child nodes in the
neighboring parent node are occupied which do not belong to the first group and "UNKNOWN"
otherwise.
[0024] Preferably, for the present plane position being at low plane position, if at least
one child node of the first group is occupied and at least one child node of the second
group is occupied and #FirstGroup>#SecondGroup+1, the planar context information includes
the likelihood of a plane and the plane position context information includes the
likelihood of a low plane position, wherein #FirstGroup indicates the number of occupied
nodes in the first group and #SecondGroup indicates the number of occupied nodes in
the second group.
[0025] Preferably, for the present plane position being at low plane position, if at least
one child node of the first group is occupied and at least one child node of the second
group is occupied and #FirstGroup<#SecondGroup+1, the planar context information includes
the likelihood of a plane and the plane position context information includes the
likelihood of a high plane position, wherein #FirstGroup indicates the number of occupied
nodes in the first group and #SecondGroup indicates the number of occupied nodes in
the second group.
[0026] Preferably, if the present plane position is high, the planar context information
and plane position context information is determined according to an occupancy pattern
of the neighboring parent node that is along the axis under consideration directly
after the present parent node, and the occupancy of a group of four child nodes of
the present parent node in a plane directly perpendicular to the axis under consideration
and next to the present child node. In other words, the occupancy of the child nodes
of the neighboring parent node directly adjacent to (i.e after) the common surface
of the present parent node are unknown due to the decoding order. Thus, the occupancy
of the neighboring parent node itself, sharing a common surface with the present child
node is used together with a group within the present parent node arranged directly
adjacent to the opposite side of the present child node, i.e. opposite to the neighboring
parent node (i.e before in the coding/decoding order). Thus, the group of child nodes
does not include the present child node to be coded. Therein, the group preferably
defines a plane by the four child nodes, wherein the plane is perpendicular to the
considered geometrical axis and directly adjacent to the present child node to be
evaluated within the present parent node. Thus, sufficient information can be acquired
to provide a reliable prediction about the likelihood of a plane in the present child
node and the likelihood of its position.
[0027] Preferably, for the present plane position being at high plane position, if at least
one child node of the group is occupied and the neighboring parent node is not occupied,
the planar context information includes the likelihood of a plane and the plane position
context information includes the likelihood of a low plane position.
[0028] Preferably, for the present plane position being at high plane position, if the group
is not occupied and the neighboring parent node is occupied, the planar context information
includes the likelihood of a plane and the plane position context information includes
the likelihood of a high plane position.
[0029] Preferably, for the present plane position being at high plane position, if the group
is not occupied and the neighboring parent node is not occupied, the planar context
information includes the likelihood of a plane, wherein the plane position context
information includes the likelihood of a low plane, if at least one or more child
nodes are occupied in a neighboring parent node along the axis under consideration
directly before the present parent node and "UNKNOWN" otherwise.
[0030] Preferably, for the present plane position being at high plane position, if at least
one child node of the group is occupied and the neighboring parent node is occupied
and #Group>2, the planar context information includes the likelihood of a plane and
the plane position context information includes the likelihood of a low plane position,
wherein #Group indicates the number of occupied nodes in the group. Therein, it is
assumed that statistically one child node in the neighboring parent node is occupied.
[0031] Preferably, for the present plane position being at high plane position, if at least
one child node of the group is occupied and the neighboring parent node is occupied
and #Group<2, the planar context information includes the likelihood of a plane and
the plane position context information includes the likelihood of a high plane position,
wherein #Group indicates the number of occupied nodes in the group.
[0032] Preferably, for the present plane position being at high plane position, if at least
one child node of the group is occupied and the neighboring parent node is occupied
and #Group=2, the planar context information includes the likelihood of the absence
of a plane and the plane position is inferred to be unknown, wherein #Group indicates
the number of occupied nodes in the group.
[0033] Preferably, the neighboring parent node is arranged along one of the geometrical
axes. If planar context information is evaluated along one of the geometrical axes
- X, Y, Z - then the neighboring parent node is arranged along this specific axis
directly before or directly after the present parent node.
[0034] Preferably, the planar context information is determined along all three geometrical
axes. Thus, planes or surfaces represented by the points of the point cloud are evaluated
along each axis.
[0035] Preferably, the present parent node is arranged relatively to the neighboring parent
node in order of decoding. During decoding, the nodes of the octree-based structure
are successively evaluated. Thus, information about occupancy patterns in the order
of decoding before the present parent node is already accessible and thus can be used
for determining the planar context information for decoding. In particular, the order
of decoding is exactly inverse to the order of encoding. However, during encoding,
the exact position of each point in the point cloud is already known.
[0036] In an aspect of the present invention, a method for decoding a bitstream of compressed
point cloud data to generate a reconstructed point cloud, wherein the point cloud's
geometry is represented by an octree-based structure with a plurality of nodes having
parent-child relationships by recursively splitting a volumetric space containing
the point cloud into sub-volumes each associated with a node of the octree-bases structure,
comprising the steps:
Determining a coding mode, wherein the coding mode includes Planar Coding Mode and
Angular Coding Mode;
Obtaining coding context information for a present child node, wherein
if the coding mode is the Planar Coding Mode, the coding context information includes
planar context information, wherein planar context information of the present child
node is determined according to the occupancy pattern of the present parent node and
the occupancy pattern of at least one neighboring parent node positioned directly
next to the present parent node;
if the coding mode is the Angular Coding Mode, the coding context information of a
present child node includes planar information of the present parent node and the
occupancy of the vertical parent neighbor adjacent to the present parent node; and
Entropy decoding the bitstream based on the context information of the present child
node to reconstruct the point cloud.
Therein, for the planar coding mode, the present parent and the neighboring parent
node are on the same depth D of the tree. Due to their position, the present parent
node and the neighboring parent node share a common surface. For the current child
node, being a direct child of the present parent node at depth D+1 of the tree, the
planar context information is determined in dependence on the occupancy pattern of
the present parent node and the at least one neighboring parent node. Therein, the
planar context information includes information about a possible plane or surface
represented by the point cloud going through the current child node. Thus, information
about the occupancy of at least one direct neighbor of the present parent node is
considered as context information for the entropy encoding.
[0037] For the angular coding mode, a more efficient planar context mode is implemented
instead. Compared to the planar context information of the plana coding mode, only
that information is considered which is accessible in sparsely populated cloud data.
[0038] As a consequence, more reliable predictions about occupancy of the current child
node can be made which can be used for increased data reduction by the entropy encoder.
In this manner, the complete tree is traversed to determine an occupancy for each
node and provides sufficient context information for the entropy encoder.
[0039] Preferably, the method of decoding is further built according to the features described
above with respect to the method for encoding. These features can be freely combined
with the method of decoding.
[0040] In an aspect of the present invention, an encoder is provided for encoding a point
cloud to generate a bitstream of compressed point cloud data, wherein the point cloud's
geometry is represented by an octree-based structure with a plurality of nodes having
parent-child relationships by recursively splitting a volumetric space containing
the point cloud into sub-volumes each associated with a node of the octree-based structure,
the encoder comprising:
a processor and
a memory storage device, wherein in the memory storage device instructions executable
by the processor are stored that, when executed, cause the processor to perform the
method according to the above-described methods for encoding and decoding.
[0041] In an aspect of the present invention, a decoder is provided for decoding a bitstream
of compressed point cloud data to generate a reconstructed point cloud, wherein the
point cloud's geometry is represented by an octree-based structure with a plurality
of nodes having parent-child relationships by recursively splitting a volumetric space
containing the point cloud into sub-volumes each associated with a node of the octree-bases
structure, the decoder comprising:
a processor and
a memory storage device, wherein in the memory storage device instructions executable
by the processor are stored that, when executed, cause the processor to perform the
above-described method of decoding.
[0042] In an aspect of the present invention a non-transitory computer-readable storage
medium is provided storing processor-executed instructions that, when executed by
a processor, cause the processor to perform the above-described method of encoding
and/or decoding.
Brief description of the drawings
[0043] Reference will now be made, by way of example, to the accompanying drawings which
show example embodiments of the present application, and in which the Figures show:
Fig. 1 a block diagram showing a general view of the point cloud encoder,
Fig. 2 a block diagram showing a general view of the point cloud decoder,
Fig. 3 a schematic illustration of an octree data structure,
Fig. 4 numbering of the eight sub-nodes in each node,
Fig. 5 neighbors of a node with known occupancy information,
Fig. 6 illustration of the context information,
Fig. 7 detailed embodiment of the present invention,
Fig. 8 detailed embodiment of the present invention,
Fig. 9 detailed embodiment of the present invention,
Fig. 10 flow charts illustrating the steps of a first and a second embodiment of the
present invention,
Fig. 11 a schematic illustration of an encoder device, and
Fig. 12 a schematic illustration of a decoder device.
Detailed description of the drawings
[0044] The present application describes methods of encoding and decoding point clouds,
and encoders and decoders for encoding and decoding point clouds. A present parent
node associated with a sub-volume is split into further sub-volumes, each further
sub-volume corresponding to a child node of the present parent node, and, at the encoder,
an occupancy pattern is determined for the present parent node based on occupancy
status of the child nodes. A planar context information is determined from the occupancy
pattern of the present parent node and an occupancy pattern of a neighboring parent
node positioned directly next to the present parent node. The entropy encoder encodes
the occupancy pattern based on the determined planar context information to produce
encoded data for the bitstream. The decoder determines the same planar context information
and entropy decodes the bitstream to reconstruct the occupancy pattern.
[0045] Other aspects and features of the present application will be understood by those
of ordinary skill in the art from a review of the following description of examples
in conjunction with the accompanying figures.
[0046] At times in the description below, the terms "node" and "sub-volume" may be used
interchangeably. It will be appreciated that a node is associated with a sub-volume.
The node is a particular point on the tree that may be an internal node or a leaf
node. The sub-volume is the bounded physical space that the node represents. The term
"volume" may be used to refer to the largest bounded space defined for containing
the point cloud. The volume is recursively divided into sub-volumes for the purpose
of building out a tree-structure of interconnected nodes for coding the point cloud
data.
[0047] A point cloud is a set of points in a three-dimensional coordinate system. The points
are often intended to represent the external surface of one or more objects. Each
point has a location (position) in the three-dimensional coordinate system. The position
may be represented by three coordinates (X, Y, Z), which can be Cartesian or any other
coordinate system. The points may have other associated attributes, such as color,
which may also be a three-component value in some cases, such as R, G, B or Y, Cb,
Cr. Other associated attributes may include transparency, reflectance, a normal vector,
etc., depending on the desired application for the point cloud data.
[0048] Point clouds can be static or dynamic. For example, a detailed scan or mapping of
an object or topography may be static point cloud data. The LiDAR-based scanning of
an environment for machine-vision purposes may be dynamic in that the point cloud
(at least potentially) changes over time, e.g. with each successive scan of a volume.
The dynamic point cloud is therefore a time-ordered sequence of point clouds.
[0049] Point cloud data may be used in a number of applications, including conservation
(scanning of historical or cultural objects), mapping, machine vision (such as autonomous
or semi-autonomous cars), and virtual reality systems, to give some examples. Dynamic
point cloud data for applications like machine vision can be quite different from
static point cloud data like that for conservation purposes. Automotive vision, for
example, typically involves relatively small resolution, non-coloured and highly dynamic
point clouds obtained through LiDAR (or similar) sensors with a high frequency of
capture. The objective of such point clouds is not for human consumption or viewing
but rather for machine object detection/classification in a decision process. As an
example, typical LiDAR frames contain on the order of tens of thousands of points,
whereas high quality virtual reality applications require several millions of points.
It may be expected that there will be a demand for higher resolution data over time
as computational speed increases and new applications are found.
[0050] While point cloud data is useful, a lack of effective and efficient compression,
i.e. encoding and decoding processes, may hamper adoption and deployment.
[0051] One of the more common mechanisms for coding point cloud data is through using tree-based
structures. In a tree-based structure, the bounding three-dimensional volume for the
point cloud is recursively divided into sub-volumes. Nodes of the tree correspond
to sub-volumes. The decision of whether or not to further divide a sub-volume may
be based on the resolution of the tree and/or whether there are any points contained
in the sub-volume. A leaf node may have an occupancy flag that indicates whether its
associated sub-volume contains a point or not. Splitting flags may signal whether
a node has child nodes (i.e. whether a current volume has been further split into
sub-volumes). These flags may be entropy coded in some cases and in some cases predictive
coding may be used.
[0052] A commonly-used tree structure is an octree. In this structure, the volumes/sub-volumes
are all cubes and each split of a sub-volume results in eight further sub-volumes/sub-cubes.
An example for such a tree-structure is shown in Fig. 3 having a node 30 that might
represent the volume containing the complete point cloud. This volume is split into
eight sub-volumes 32, each associated with a node in the octree of Fig. 3. Points
in the nodes indicate occupied nodes 34 containing at least one point 35 of the point
cloud, while empty nodes 36 are representing sub-volumes with no points of the point
clouds. As depicted in Fig. 3, occupied nodes might by further split into eight sub-volumes
associated with child nodes 38 of a particular parent node 40 in order to determine
the occupancy pattern of the parent node 40. As shown in Fig. 3, the occupancy pattern
of the exemplified parent node 40 might be represented as "00100000" in a binary form,
indicating an occupied third child node 38. In some realizations this occupancy pattern
is encoded by a binary entropy encoder to generate a bitstream of the point cloud
data.
[0053] Reference is now made to Figure 1, which shows a simplified block diagram of a point
cloud encoder 10 in accordance with aspects of the present application. The point
cloud encoder 10 receives the point cloud data and might include a tree building module
for producing an octree representing the geometry of the volumetric space containing
point cloud and indicating the location or position of points from the point cloud
in that geometry.
[0054] The basic process for creating an octree to code a point cloud may include:
- 1. Start with a bounding volume (cube) containing the point cloud in a coordinate
system;
- 2. Split the volume into 8 sub-volumes (eight sub-cubes);
- 3. For each sub-volume, mark the sub-volume with 0 if the sub-volume is empty, or
with 1 if there is at least one point in it;
- 4. For all sub-volumes marked with 1, repeat (2) to split those sub-volumes, until
a maximum depth of splitting is reached; and
- 5. For all leaf sub-volumes (sub-cubes) of maximum depth, mark the leaf cube with
1 if it is non-empty, 0 otherwise.
[0055] The tree may be traversed in a pre-defined order (breadth-first or depth-first, and
in accordance with a scan pattern/order within each divided sub-volume) to produce
a sequence of bits representing the occupancy pattern of each node.
[0056] This sequence of bits may then be encoded using an entropy encoder 16 to produce
a compressed bitstream 14. The entropy encoder 16 may encode the sequence of bits
using a context model 18 that specifies probabilities for coding bits based on a context
determination by the entropy encoder 16. The context model 18 may be adaptively updated
after coding of each bit or defined set of bits.
[0057] Like with video or image coding, point cloud coding can include predictive operations
in which efforts are made to predict the pattern for a sub-volume, and the residual
from the prediction is coded instead of the pattern itself. Predictions may be spatial
(dependent on previously coded sub-volumes in the same point cloud) or temporal (dependent
on previously coded point clouds in a time-ordered sequence of point clouds).
[0058] A block diagram of an example point cloud decoder 20 that corresponds to the encoder
10 is shown in Figure 2. The point cloud decoder 20 includes an entropy decoder 22
using the same context model 24 used by the encoder 10. The entropy decoder 22 receives
the input bitstream 26 of compressed data and entropy decodes the data to produce
an output sequence of decompressed bits. The sequence is then converted into reconstructed
point cloud data by a tree reconstructor. The tree reconstructor rebuilds the tree
structure 28 from the decompressed data and knowledge of the scanning order in which
the tree data was binarized. The tree reconstructor is thus able to reconstruct the
location of the points from the point cloud.
[0059] Referring to Figure 4, showing a parent node 112 split into its eight child nodes
110 being 2x2x2 cubes with each having the same size and with an edge length being
half the edge length of the cube associated with the parent node 112. Further, Fig.
4 indicates the used numbering of the child nodes 110 within a parent node 112. The
numbering system shown in Figure 4 will be used in the further explanation. Therein,
Fig. 4 also indicates the spatial orientation of the shown parent node 112 in the
three-dimensional space indicated by the geometrical axis X, Y, Z.
[0060] Therein, the occupancy pattern might include planar information about the probability
whether a certain node is occupied since the point in this node belongs to a surface.
Usually, the real world is dominated by closed surfaces. This is in particular true
for indoor rooms but also for urban outdoor scenes. This fact is used by the entropy
encoder and decoder. If a surface represented by the point cloud can be detected,
predictions about the distribution of point on this surface can be made and thus a
probability for the occupancy of a certain node belonging to this surface can be made.
This might be done by defining context information used for encoded and decoding the
bitstream using an
isPlanar-flag. Therein, planar context information is usually a binary value wherein a set
isPlanar-flag (
isPlanar = 1) for a certain node is interpreted that there is a prevailing likelihood that
this node belongs to a certain surface. In addition to the mere fact of the presence
of a surface in a node, further planar information might be considered such as plane
position information implemented by a
planePosition-flag indicating the position of the plane within the present child node.
planePosition-flag might also be a binary value, having the values "high" and "low" referring to
the respective position. This planar information is used for encoded to the bitstream
by usage of the planar context information by the entropy encoder/decoder thereby
reducing the data of the bitstream.
[0061] Further, additional coding modes exist which are applied to different types of point
clouds, using also different context information. Thus, planar coding mode and angular
coding mode are defined. Therein, angular coding mode is preferably applied to sparsely
populated point clouds, wherein it is the intention to provide angular context information
to the entropy encoder/decoder. Therein, the coding mode might be indicated in the
metadata of the bitstream.
[0062] Thus, in accordance to the present disclosure, in the case of the planar coding mode,
the context information includes planar context information and plane position context
information as indicated above. Therein, the planar context information is determined
according to the occupancy pattern of a present parent node of a present child node
to be coded and the occupancy pattern of at least one of the neighboring nodes, as
described in greater detail below. Additionally, the plane position context information
is depicted in Fig. 6. The plane position context information includes the information
of:
- a) The distance d from the closest already coded node 121 at same coordinate and depth
D in the octree structure; d being discretized into three values: "near" or "not too
far" or "far";
- b) The plane position (if any) of the closest already coded node 121 at same coordinate
and depth (low or high)
- c) The plane position of present child node according to the occupancy pattern of
at least one neighboring parent node as described in greater detail below.
Therein, the planar context information is 1 bit (plane or no plane), and the plane
position context information is 3x2x2 bit information.
[0063] Further, in accordance to the present disclosure, in the case of the angular coding
mode, the context information includes planar context information and plane position
context information as indicated above. Therein, the planar context information includes:
- a) isPlanar-flag of the present parent node, i.e. whether a plane is present in the
present parent node; and
- b) the occupancy of the vertical neighboring parent node 124 adjacent to the present
parent node.
Additionally, the plane position context information for the angular coding mode includes
the information of:
- a) planePosition of already available nodes that are identified with regards to an
angle between them and the current child node.
[0064] Now referring to Figure 5 showing a present parent node 100 with two child nodes
102, 103 exemplified as occupied nodes, i.e. the sub-volumes of the two child nodes
contain each at least one point of the point cloud. Further, indicated in Figure 5
are neighboring parent nodes 104, 106, 108, each comprising at least one occupied
child node itself. Therein, prior to predicting the planar context information of
the child nodes 102, 103 at a certain octree-level, occupation information of the
three adjacent neighboring parent nodes 104, 106, 108 at the same level D in the octree
as the present parent node 100 is known at the decoder side. Due to the given decoding
order, upon evaluating the child nodes 102, 103 of the present parent node 100 information
about the neighboring parent nodes 104, 108, 106 are already known at the decoder
side and can be used to determine the context information. Since these three neighboring
parent nodes 104, 106, 108 are adjacent to the present child nodes 102, 103, there
exists a correlation between the occupancy pattern of these neighboring parent nodes
104, 106, 108 and the present child nodes 102, 103 to be coded. Therein, the occupancy
pattern refers to the occupancy of the child node of the respective parent node. This
information is easy to obtain but currently not used in existing encoding and decoding
methods. For example, if evaluating the context information of the present child node
102 along the X-axis, the directly adjacent neighboring parent node 104 along the
X-axis might be considered. Further, as explained above, the directly adjacent parent
node is considered which is in the order of decoding prior to the present parent node.
Thus, during decoding the occupancy pattern of the prior nodes are known by the decoder
and can be used to determine context information. If the context information is evaluated
along the Y-axis, the neighboring parent node 106 along the Y-axis next to the present
parent node 100 might be considered. This information is also known to the decoder
and can be easily used to acquire reliable planar context information for the present
child node 102.
[0065] However, when considering the correlation between the occupancy of the present child
node and the occupancy pattern of the at least one neighboring parent node also the
position of the present child node to be coded must be taken into account. Thus, the
present plane position is determined for the present child node. Therein, the present
plane position indicates a plane of the present child node within the present parent
node along the axis under consideration and a plane perpendicular to this geometrical
axis. Along the X-axis for example, a first low plane is defined by the child nodes
0-3, while a high plane is defined by the child nodes 4-7. Along the Y-axis, the low
plane is defined by the child nodes 0,1,4,5 and a high plane by the child nodes 2,3,6,7.
Along the Z-axis, a low plane is defined by the child nodes 0,2,4,6 and a high plane
by the child nodes 1,3,5,7. Thus, in the example of Fig. 5, the child node 102 along
the X-axis has a present plane position of a low plane position and the child node
103 along the X-axis has a present plane position of a high plane position.
[0066] Now referring to Figure 7 showing the configuration of how to determine planar context
and plane position context information from the occupancy of the neighboring nodes
of the present child node which then can be used in the entropy encoding in order
to compress the point cloud data. In this regard, it is an object of the present invention
to consider the occupancy pattern of the parent neighbors to the present child node
120 and to incorporate such information in the context information when coding the
planar information. Therein, Fig. 7 refers to the situation that the present child
to be coded is in the low position of the present parent node.
[0067] Figure 7 (a) shows the determination of the planar context information along the
X-axis. The planar context information of the present child node 120 shall be evaluated.
Therefore, the occupancy pattern of the present parent node 122 as well as the neighboring
parent node 123 directly adjacent to the present parent node 122 is evaluated. Therein,
the neighboring parent node 124 is arranged along the X-axis which is to be evaluated.
Further, the neighboring parent node 124 is arranged prior to the present parent node
122 in order of decoding. Thus, upon decoding the present parent node 122, all information
about the neighboring parent node 124 is already available. In addition, also during
coding the information of the present child node 120 occupancy information about the
neighboring parent node 124 is also known, since positions and thus occupancy pattern
of the point cloud is completely known to the encoder.
[0068] In particular, in order to determine the context information of the present child
node 120, a first group 126 of child nodes, being child nodes of the neighboring parent
node 124, and a second group 128, being child nodes of the present parent node 122
are considered. Therein, the four child nodes of the first group 126 of the neighboring
parent node 124 are directly next and adjacent to the present parent node 122. Thus,
the child nodes of the first group 126 each share a common surface with the present
parent node 122. The second group 128 of the four child nodes of the present parent
node 122 is directly opposite the first group. Thus, by the four child nodes of the
second group 128, a side face of the present parent node 122 is formed which is directly
opposite to the side face which is the common surface between the neighboring parent
node 124 and the present parent node 122. In other words, by the first group 126 and
the second group 128 planes are defined which are on both sides of the present child
node 120 and which are perpendicular to the axis under consideration. Thus, by these
two planes a reliable determination of the context information can be provided. A
surface in the point cloud going through the present child node 120 is also highly
likely going through one of the planes defined by the first group 126 or the second
group 128 and thus the context information of the present child node 120 strongly
depends on the occupancy of the first group 126 and/or the occupancy of the second
group 128.
[0069] Generally speaking for the case of the present plane position being low, if at least
one child node of the first group is occupied and the second group is not occupied,
the planar context information includes the likelihood of a plane and the plane position
context information includes the likelihood of a low plane position. If the first
group is not occupied and at least one child node of the second group is occupied,
the planar context information includes the likelihood of a plane and the plane position
context information includes the likelihood of a high plane position. If the first
group is not occupied and the second group is not occupied, the planar context information
includes the likelihood of a plane, wherein the plane position context information
includes the likelihood of a low plane, if at least one or more child nodes in the
neighboring parent node are occupied which do not belong to the first group and "UNKNOWN"
otherwise. If at least one child node of the first group is occupied and at least
one child node of the second group is occupied and #FirstGroup>#SecondGroup+1, the
planar context information includes the likelihood of a plane and the plane position
context information includes the likelihood of a low plane position. If at least one
child node of the first group is occupied and at least one child node of the second
group is occupied and #FirstGroup<#SecondGroup+1, the planar context information includes
the likelihood of a plane and the plane position context information includes the
likelihood of a high plane position. Therein #FirstGroup indicates the number of occupied
nodes in the first group and #SecondGroup indicates the number of occupied nodes in
the second group.
[0070] More specifically speaking, for the evaluation along the X-axis together with the
numbering system shown in Figure 4:
- If at least one of the child nodes 4 to 7 of the first group is occupied and the child
nodes 4 to 7 of the second group are not occupied, the planar context information
includes the likelihood of a plane and the plane position context information includes
the likelihood of a low plane position.
- If the child nodes 4 to 7 of the first group are not occupied and at least one of
the child nodes 4 to 7 of the second group is occupied, the planar context information
includes the likelihood of a plane and the plane position context information includes
the likelihood of a high plane position.
- If the child nodes 4 to 7 of the first group are not occupied and the child nodes
4 to 7 of the second group are not occupied, the planar context information includes
the likelihood of a plane, wherein the plane position context information includes
the likelihood of a low plane, if at least one or more child nodes 0 to 3 in the neighboring
parent node are occupied and "UNKNOWN" otherwise.
- If at least one of the child nodes 4 to 7 of the first group is occupied and at least
one of the child nodes 4 to 7 of the second group is occupied and #FirstGroup>#SecondGroup+1,
the planar context information includes the likelihood of a plane and the plane position
context information includes the likelihood of a low plane position.
- If at least one of the child nodes 4 to 7 of the first group is occupied and at least
one of the child nodes 4 to 7 of the second group is occupied and #FirstGroup<#SecondGroup+1,
the planar context information includes the likelihood of a plane and the plane position
context information includes the likelihood of a high plane position.
Thus, for the coding the probability of a presence or an absence of a plane perpendicular
to the X-axis in the present child node is considered as context information when
performing entropy coding for a present plane position being low position. Therein,
the information might be used as planar context information in the planar coding mode
and the angular coding mode and might be included as plane position context information
in the planar coding mode.
[0071] For evaluating along Y-axis in accordance to Figure 6 (b) in order to determine the
planar context information of the present child node 120 it is set the following:
- If at least one of the child nodes 2,3,6,7 of the first group is occupied and the
child nodes 2,3,6,7 of the second group are not occupied, the planar context information
includes the likelihood of a plane and the plane position context information includes
the likelihood of a low plane position.
- If the child nodes 2,3,6,7 of the first group are not occupied and at least one of
the child nodes 2,3,6,7 of the second group is occupied, the planar context information
includes the likelihood of a plane and the plane position context information includes
the likelihood of a high plane position.
- If the child nodes 2,3,6,7 of the first group are not occupied and the child nodes
2,3,6,7 of the second group are not occupied, the planar context information includes
the likelihood of a plane, wherein the plane position context information includes
the likelihood of a low plane, if at least one or more child nodes 0,1,4,5 in the
neighboring parent node are occupied and "UNKNOWN" otherwise.
- If at least one of the child nodes 2,3,6,7 of the first group is occupied and at least
one of the child nodes 2,3,6,7 of the second group is occupied and #FirstGroup>#SecondGroup+1,
the planar context information includes the likelihood of a plane and the plane position
context information includes the likelihood of a low plane position.
- If at least one of the child nodes 2,3,6,7 of the first group is occupied and at least
one of the child nodes 2,3,6,7 of the second group is occupied and #FirstGroup<#SecondGroup+1,
the planar context information includes the likelihood of a plane and the plane position
context information includes the likelihood of a high plane position.
Thus, for the coding the probability of a presence or an absence of a plane perpendicular
to the Y-axis in the present child node is considered as context information when
performing entropy coding for a present plane position being low position. Therein,
the information might be used as planar context information in the planar coding mode
and the angular coding mode and might be included as plane position context information
in the planar coding mode.
[0072] For evaluating along the Z-axis in accordance to Figure 6 (c) in order to determine
the planar context information of the present child node 120 it is set the following:
- If at least one of the child nodes 1,3,5,7 of the first group is occupied and the
child nodes 1,3,5,7 of the second group are not occupied, the planar context information
includes the likelihood of a plane and the plane position context information includes
the likelihood of a low plane position.
- If the child nodes 1,3,5,7 of the first group are not occupied and at least one of
the child nodes 1,3,5,7 of the second group is occupied, the planar context information
includes the likelihood of a plane and the plane position context information includes
the likelihood of a high plane position.
- If the child nodes 1,3,5,7 of the first group are not occupied and the child nodes
1,3,5,7 of the second group are not occupied, the planar context information includes
the likelihood of a plane, wherein the plane position context information includes
the likelihood of a low plane, if at least one or more child nodes 0,2,4,6 in the
neighboring parent node are occupied and "UNKNOWN" otherwise.
- If at least one of the child nodes 1,3,5,7 of the first group is occupied and at least
one of the child nodes 1,3,5,7 of the second group is occupied and #FirstGroup>#SecondGroup+1,
the planar context information includes the likelihood of a plane and the plane position
context information includes the likelihood of a low plane position.
- If at least one of the child nodes 1,3,5,7 of the first group is occupied and at least
one of the child nodes 1,3,5,7 of the second group is occupied and #FirstGroup<#SecondGroup+1,
the planar context information includes the likelihood of a plane and the plane position
context information includes the likelihood of a high plane position.
Thus, for the coding the probability of a presence or an absence of a plane perpendicular
to the Z-axis in the present child node is considered as context information when
performing entropy coding for a present plane position being low position. Therein,
the information might be used as planar context information in the planar coding mode
and the angular coding mode and might be included as plane position context information
in the planar coding mode.
[0073] As indicated above, the situation is different, if the present plane position for
the present child node to be coded is high plane position. Then, the present child
node is next to the neighboring parent following the present parent in the order of
coding. In this case, the occupancy of the child nodes of the neighboring parent is
unknown and only the occupancy of the neighboring parent node itself can be used in
order to determine the context information.
[0074] In particular, if the present plane position is high, the planar context information
and plane position context information is determined according to an occupancy of
the neighboring parent node that is along the axis under consideration directly after
the present parent node, and the occupancy of a group of four child nodes of the present
parent node in a plane directly perpendicular to the axis under consideration and
next to the present child node. In other words, the occupancy of the child nodes of
the neighboring parent node directly adjacent to the common surface of the present
parent node are usually unknown due to the decoding order. Thus, the occupancy of
the neighboring parent node itself, sharing a common surface with the present child
node is used together with a group 132 within the present parent node 122 arranged
directly adjacent to the opposite side of the present parent node 122, i.e. opposite
to the neighboring parent node 130. Therein, the group 132 preferably defines a plane
by the four child nodes, wherein the plane is perpendicular to the considered geometrical
axis and directly adjacent to the present child node to be evaluated within the present
parent node.
[0075] Generally speaking for the case of the present plane position being low, if at least
one child node of the group 132 is occupied and the neighboring parent node 130 is
not occupied, the planar context information includes the likelihood of a plane and
the plane position context information includes the likelihood of a low plane position.
If the group 132 is not occupied and the neighboring parent node 130 is occupied,
the planar context information includes the likelihood of a plane and the plane position
context information includes the likelihood of a high plane position. If the group
130 is not occupied and the neighboring parent node 130 is not occupied, the planar
context information includes the likelihood of a plane, wherein the plane position
context information includes the likelihood of a low plane, if at least one or more
child nodes 136 in a neighboring parent node 134 along the axis under consideration
directly before the present parent node 122 are occupied and "UNKNOWN" otherwise.
If at least one child node of the group 132 is occupied and the neighboring parent
node 130 is occupied and #Group>2, the planar context information includes the likelihood
of a plane and the plane position context information includes the likelihood of a
low plane position. If at least one child node of the group 132 is occupied and the
neighboring parent node 130 is occupied and #Group<2, the planar context information
includes the likelihood of a plane and the plane position context information includes
the likelihood of a high plane position. If at least one child node of the group 132
is occupied and the neighboring parent node 130 is occupied and #Group=2, the planar
context information includes the likelihood that there is no plane and consequently
the plane position is unknown. Therein, #Group indicates the number of occupied child
nodes in the group 130.
[0076] More specifically speaking, for the evaluation along the X-axis with reference to
Figure 8(a):
- If at least one of the child nodes 0 to 3 of the group 132 is occupied and the neighboring
parent node 130 is not occupied, the planar context information includes the likelihood
of a plane and the plane position context information includes the likelihood of a
low plane position.
- If the child nodes 0 to 3 of the group 132 are not occupied and the neighboring parent
node 130 is occupied, the planar context information includes the likelihood of a
plane and the plane position context information includes the likelihood of a high
plane position.
- If the child nodes 0 to 3 of the group 132 are not occupied and the neighboring parent
node 130 is not occupied, the planar context information includes the likelihood of
a plane, wherein the plane position context information includes the likelihood of
a low plane, if at least one or more child nodes 4 to 7 in a neighboring parent node
134 along the axis under consideration directly before the present parent node 122
as depicted in Fig. 9(a) are occupied and "UNKNOWN" otherwise.
- If at least one of the child nodes 0 to 3 of the group 132 is occupied and the neighboring
parent node 130 is occupied and #Group>2, the planar context information includes
the likelihood of a plane and the plane position context information includes the
likelihood of a low plane position.
- If at least one of the child nodes 0 to 3 of the group 132 is occupied and the neighboring
parent node 130 is occupied and #Group<2, the planar context information includes
the likelihood of a plane and the plane position context information includes the
likelihood of a high plane position.
- If at least one of the child nodes 0 to 3 of the group 132 is occupied and the neighboring
parent node 130 is occupied and #Group=2, the planar context information includes
the likelihood of the absence of a plane and the plane position is inferred to be
unknown. Therein, #Group indicates the number of occupied nodes in the group.
[0077] Thus, for the coding the probability of a presence or an absence of a plane perpendicular
to the X-axis in the present child node 120 is considered as context information when
performing entropy coding for a present plane position being low position. Therein,
the information might be used as planar context information in the planar coding mode
and the angular coding mode and might be included as plane position context information
in the planar coding mode.
[0078] For evaluating along the Y-axis in accordance to Figure 8 (b) in order to determine
the planar context information of the present child node 120 it is set the following:
- If at least one of the child nodes 0,1,4,5 of the group 132 is occupied and the neighboring
parent node 130 is not occupied, the planar context information includes the likelihood
of a plane and the plane position context information includes the likelihood of a
low plane position.
- If the child nodes 0,1,4,5 of the group 132 are not occupied and the neighboring parent
node 130 is occupied, the planar context information includes the likelihood of a
plane and the plane position context information includes the likelihood of a high
plane position.
- If the child nodes 0,1,4,5 of the group 132 are not occupied and the neighboring parent
node 130 is not occupied, the planar context information includes the likelihood of
a plane, wherein the plane position context information includes the likelihood of
a low plane, if at least one or more child nodes 2,3,6,7 in a neighboring parent node
134 along the axis under consideration directly before the present parent node 122
as depicted in Fig. 9(b) are occupied and "UNKNOWN" otherwise.
- If at least one of the child nodes 0,1,4,5 of the group 132 is occupied and the neighboring
parent node 130 is occupied and #Group>2, the planar context information includes
the likelihood of a plane and the plane position context information includes the
likelihood of a low plane position.
- If at least one of the child nodes 0,1,4,5 of the group 132 is occupied and the neighboring
parent node 130 is occupied and #Group<2, the planar context information includes
the likelihood of a plane and the plane position context information includes the
likelihood of a high plane position.
- If at least one of the child nodes 0,1,4,5 of the group 132 is occupied and the neighboring
parent node 130 is occupied and #Group=2, the planar context information includes
the likelihood of the absence of a plane and the plane position is inferred to be
unknown. Therein, #Group indicates the number of occupied nodes in the group.
Thus, for the coding the probability of a presence or an absence of a plane perpendicular
to the Y-axis in the present child node 120 is considered as context information when
performing entropy coding for a present plane position being low position. Therein,
the information might be used as planar context information in the planar coding mode
and the angular coding mode and might be included as plane position context information
in the planar coding mode.
[0079] For evaluating along the Z-axis in accordance to Figure 8 (c) in order to determine
the planar context information of the present child node 120 it is set the following:
- If at least one of the child nodes 0,2,4,6 of the group 132 is occupied and the neighboring
parent node 130 is not occupied, the planar context information includes the likelihood
of a plane and the plane position context information includes the likelihood of a
low plane position.
- If the child nodes 0,2,4,6 of the group 132 are not occupied and the neighboring parent
node 130 is occupied, the planar context information includes the likelihood of a
plane and the plane position context information includes the likelihood of a high
plane position.
- If the child nodes 0,2,4,6 of the group 132 are not occupied and the neighboring parent
node 130 is not occupied, the planar context information includes the likelihood of
a plane, wherein the plane position context information includes the likelihood of
a low plane, if at least one or more child nodes 1,3,5,7 in a neighboring parent node
134 along the axis under consideration directly before the present parent node 122
as depicted in Fig. 9(c) are occupied and "UNKNOWN" otherwise.
- If at least one of the child nodes 0,2,4,6 of the group 132 is occupied and the neighboring
parent node 130 is occupied and #Group>2, the planar context information includes
the likelihood of a plane and the plane position context information includes the
likelihood of a low plane position.
- If at least one of the child nodes 0,2,4,6 of the group 132 is occupied and the neighboring
parent node 130 is occupied and #Group<2, the planar context information includes
the likelihood of a plane and the plane position context information includes the
likelihood of a high plane position.
- If at least one of the child nodes 0,2,4,6 of the group 132 is occupied and the neighboring
parent node 130 is occupied and #Group=2, the planar context information includes
the likelihood of the absence of a plane and the plane position is inferred to be
unknown. Therein, #Group indicates the number of occupied nodes in the group 132.
Thus, for the coding the probability of a presence or an absence of a plane perpendicular
to the Y-axis in the present child node is considered as context information when
performing entropy coding for a present plane position being low position. Therein,
the information might be used as planar context information in the planar coding mode
and the angular coding mode and might be included as plane position context information
in the planar coding mode.
[0080] As a summary, in all cases, a reliable planar context information model is established
which can be used for the entropic encoding in order to consider the occurrence of
a surface or plane in the respective nodes and use this knowledge to validly predict
occupancy of nodes for data compression by the entropy encoder/decoder.
[0081] Under some circumstances it is not possible or not useful to implement the set of
context information as mentioned above. Thus, for the plane position context information
in the planar coding mode, the present GPCC specification proposes to use a specific
context model using an axisIdx statement (values = 0, 1, or 2) identifying the axis
normal to the plane of coding the planePosition, if the closest already coded node
at the same coordinate and the same depth is not planar or non-existent. However,
this approach neglects information provided by the occupancy of the neighboring nodes.
According to the present invention, still inferences can be made from the occupancy
of the neighboring child nodes within the same parent node and same plane perpendicular
to the axis under consideration as the present child node. If for example, the X-axis
is considered and the present child node is at the coordinate 2, then the information
of the child nodes 0 and 1 in the present parent node and in the same vertical plane
perpendicular to the X-axis is known and can be used to determine plane position context
information, for example by using the plane position context information of one of
these nodes or the majority of these nodes as plane position context information of
the present child node to be coded. If for example, the X-axis is considered and the
present child node is at the coordinate 7, then the information of the child nodes
4 to 6 in the present parent node and in the same vertical plane perpendicular to
the X-axis is known and can be used to determine plane position context information.
Thus, the plane position context information may replace the proposed axisIdx-statement
to provide improved context information for more efficient entropy coding if the closest
already coded node at the same coordinate and the same depth D is non-existent. Thus,
the above proposed context model for the plane position context information in the
planar coding mode is replaced by
- a) The plane position of present child node according to the occupancy of at least
one neighboring node.
[0082] Further, for the angular coding mode, even if a point cloud is indicated to be coded
by the angular coding mode, one or more nodes of the point could might not be eligible
for this coding mode. In this case the plane position context information of the angular
coding mode is replaced by the plane position context information according to the
planar mode as described in greater detail above.
[0083] Referring now to Figure 7 (a) showing a method for encoding a point cloud including
the steps of determining a coding mode, wherein the coding mode includes Planar Coding
Mode and Angular Coding Mode (S10);
Obtaining coding context information for a present child node (S11), wherein
if the coding mode is the planar coding mode, coding context information includes
planar context information, wherein planar context information of the present child
node is determined according to the occupancy of the present parent and the occupancy
of at least one neighboring parent node positioned directly next to the present parent
node (Sill);
if the coding mode is the Angular Coding Mode, the coding context information of a
present child node includes planar information of the present parent node and the
occupancy of the vertical parent neighbor adjacent to the present parent node (S112);
and
Entropy encoding the present child node based on the determined coding context information
to produce encoded data for the bitstream (S12).
[0084] Referring now to Figure 7 (b) showing a method for decoding a point cloud including
the steps of Determining a coding mode, wherein the coding mode includes Planar Coding
Mode and Angular Coding Mode (S20);
Obtaining coding context information for a present child node (S21), wherein
if the coding mode is the planar coding mode, coding context information includes
planar context information, wherein planar context information of the present child
node is determined according to the occupancy of the present parent node and the occupancy
of at least one neighboring parent node positioned directly next to the present parent
node (S211);
if the coding mode is the angular coding mode, the coding context information of a
present child node includes planar information of the present parent node and the
occupancy of the vertical parent neighbor adjacent to the present parent node (S212);
and
Entropy decoding the bitstream based on the context information of the present child
node to reconstruct the point cloud (S22).
[0085] Thus, in accordance to the present invention, information about the neighboring nodes
are used and evaluated in order to acquire a context information model more reliably
predicting the occurrence of a surface within the present child node. This information
can be used in order to reduce the amount of data of the compressed point cloud data,
wherein the same context information model is also used for the decoder in order to
be able to reliably decode the provide bitstream with high efficiency and accuracy.
Thereby, significant data reduction of at least 1% can be achieved with respect to
prior encoding methods and current GPCC specification. However, this value is dependent
on the density of the points wherein in particular for indoor point clouds, such as
LiDAR point clouds it is assumed that they can be considered as a dense point cloud.
[0086] In embodiments of the encoding or decoding method, if the coding mode is the planar
coding mode, the coding context information includes planar context information including:
Existence of a plane according to the occupancy pattern of the present parent node
and the occupancy pattern of at least one neighboring parent node positioned directly
next to the present parent node.
[0087] In embodiments of the encoding or decoding method, if the coding mode is the planar
coding mode, the coding context information includes plane position context information,
wherein the plane position context information includes one or more of:
The distance d from the closest already node at the same coordinate in the respective
parent node and the same depth D in the octree-based structure;
The plane position of the closest already coded node at the same coordinate in the
respective parent node and the same depth D in the octree-based structure; and
The plane position of the present child node according to the occupancy pattern of
at least one neighboring parent node positioned next to the present parent node.
[0088] In embodiments of the encoding or decoding method, if the closest already coded node
at the same coordinate in the respective parent node and the same depth D in the octree-based
structure is non-existent then the plane position context information only includes
the plane position of the present child node according to the occupancy pattern of
at least one neighboring parent node positioned directly next to the present parent
node.
[0089] In embodiments of the encoding or decoding method, if the coding mode is the angular
coding mode, the coding context information includes planar context information, wherein
the planar context information includes one or more of:
The isPlanar flag of the present parent node; and
The occupancy of the vertical neighboring parent node directly next to the present,
i.e. perpendicular to the axis under consideration directly before the present parent
node in the order of decoding.
[0090] In embodiments of the encoding or decoding method, if the coding mode is the angular
coding mode and the present child node is not eligible for angular coding mode, the
coding context information includes plane position context information, wherein the
plane position context information includes one or more of:
The distance d from the closest already node at the same coordinate in the respective
parent node and the same depth D in the octree-based structure;
The plane position of the closest already coded node at the same coordinate in the
respective parent node and the same depth D in the octree-based structure; and
The plane position of the present child node according to the occupancy of at least
one neighboring parent node positioned directly next to the present parent node.
[0091] In embodiments of the encoding or decoding method, for determining the planar context
information and the plane position context information according to the occupancy
pattern of at least one neighboring parent node, a present plane position of the present
child node relative to the present parent node is determined, wherein the present
plane position includes high plane position and low plane position.
[0092] In embodiments of the encoding or decoding method, if the present plane position
is low plane position, the planar context information and plane position context information
is determined according to an occupancy of a first group of four child nodes of the
neighboring parent node that are directly next to the present parent node and the
occupancy of a second group of four child nodes of the present parent node directly
opposite the first group.
[0093] In embodiments of the encoding or decoding method, for the present plane position
being at low plane position, if at least one child node of the first group is occupied
and the second group is not occupied, the planar context information includes the
likelihood of a plane and the plane position context information includes the likelihood
of a low plane position.
[0094] In embodiments of the encoding or decoding method, for the present plane position
being at low plane position, if the first group is not occupied and at least one child
node of the second group is occupied, the planar context information includes the
likelihood of a plane and the plane position context information includes the likelihood
of a high plane position.
[0095] In embodiments of the encoding or decoding method, for the present plane position
being at low plane position, if the first group is not occupied and the second group
is not occupied, the planar context information includes the likelihood of a plane,
wherein the plane position context information includes the likelihood of a low plane,
if at least one or more child nodes in the neighboring parent node are occupied which
do not belong to the first group and "UNKNOWN" otherwise.
[0096] In embodiments of the encoding or decoding method, for the present plane position
being at low plane position, if at least one child node of the first group is occupied
and at least one child node of the second group is occupied and #FirstGroup>#SecondGroup+1,
the planar context information includes the likelihood of a plane and the plane position
context information includes the likelihood of a low plane position, wherein #FirstGroup
indicates the number of occupied nodes in the first group and #SecondGroup indicates
the number of occupied nodes in the second group.
[0097] In embodiments of the encoding or decoding method, for the present plane position
being at low plane position, if at least one child node of the first group is occupied
and at least one child node of the second group is occupied and #FirstGroup<#SecondGroup+1,
the planar context information includes the likelihood of a plane and the plane position
context information includes the likelihood of a high plane position, wherein #FirstGroup
indicates the number of occupied nodes in the first group and #SecondGroup indicates
the number of occupied nodes in the second group.
[0098] In embodiments of the encoding or decoding method, if the present plane position
is high, the planar context information and plane position context information is
determined according to an occupancy of the neighboring parent node that is along
the axis under consideration directly after the present parent node, and the occupancy
of a group of four child nodes of the present parent node in a plane directly perpendicular
to the axis under consideration and next to the present child node.
[0099] In embodiments of the encoding or decoding method, for the present plane position
being at high plane position, if at least one child node of the group is occupied
and the neighboring parent node is not occupied, the planar context information includes
the likelihood of a plane and the plane position context information includes the
likelihood of a low plane position.
[0100] In embodiments of the encoding or decoding method, for the present plane position
being at high plane position, if the group is not occupied and the neighboring parent
node is occupied, the planar context information includes the likelihood of a plane
and the plane position context information includes the likelihood of a high plane
position.
[0101] In embodiments of the encoding or decoding method, for the present plane position
being at high plane position, if the group is not occupied and the neighboring parent
node is not occupied, the planar context information includes the likelihood of a
plane, wherein the plane position context information includes the likelihood of a
low plane, if at least one or more child nodes in a neighboring parent node along
the axis under consideration directly before the present parent node are occupied
and "UNKNOWN" otherwise.
[0102] In embodiments of the encoding or decoding method, for the present plane position
being at high plane position, if at least one child node of the group is occupied
and the neighboring parent node is occupied and #Group>2, the planar context information
includes the likelihood of a plane and the plane position context information includes
the likelihood of a low plane position, wherein #Group indicates the number of occupied
nodes in the group.
[0103] In embodiments of the encoding or decoding method, for the present plane position
being at high plane position, if at least one child node of the group is occupied
and the neighboring parent node is occupied and #Group<2, the planar context information
includes the likelihood of a plane and the plane position context information includes
the likelihood of a high plane position, wherein #Group indicates the number of occupied
nodes in the group.
[0104] In embodiments of the encoding or decoding method, for the present plane position
being at high plane position, if at least one child node of the group is occupied
and the neighboring parent node is occupied and #Group=2, the planar context information
includes the likelihood of the absence of a plane and the plane position is inferred
to be unknown, wherein #Group indicates the number of occupied nodes in the group.
In embodiments of the encoding or decoding method, the neighboring parent node is
arranged along one of the geometrical axes.
[0105] In embodiments of the encoding or decoding method, the planar context information
is determined along all three geometrical axes.
[0106] In embodiments of the encoding or decoding method, the present parent node is arranged
relatively to the neighboring parent node in order of decoding.
[0107] In a preferred embodiment the method for encoding/decoding_a point cloud to generate
a bitstream of compressed point cloud data is implemented in a LIDAR (Light detection
and ranging) device. The LIDAR device comprises a light transmitting module and a
sensor module. Therein, the light transmitting module is configured to scan the environment
with laser light and an echo of the laser light reflected by objects in the environment
is measured with a sensor of the sensor module. Further, the LIDAR device comprises
an evaluation module configured to determine a 3D representation of the environment
in a point cloud preferably by differences in laser return times and/or wavelengths
of the reflected laser light. Thereby, the echo may include up to millions of points
of position information of the objects or environment resulting in large point clouds
increasing the demands on computational devices to further process or evaluating this
point clouds. In certain applications such as autonomous driving, processing of the
LIDAR point cloud must be almost in real-time due to safety requirements. Thus, efficient
and accurate compression of the point could data is necessary. Therefore, the LIDAR
device may comprise an encoder including a processor and a memory storage device.
The memory storage device may store a computer program or application containing instructions
that, when executed, cause the processor to perform operations such as those described
herein. For example, the instructions may encode and output bitstreams encoded in
accordance with the methods described herein. Additionally, or alternatively, the
LIDAR device may comprise a decoder including a processor and a memory storage device.
The memory storage device may include a computer program or application containing
instructions that, when executed, cause the processor to perform operations such as
those described herein. Thus, by the encoder/decoder efficient and accurate compression
of the point cloud data is enabled, providing the possibility to handle the acquired
point cloud data more efficiently and preferably in real-time. Preferably, the processor
of the encoder and the processor of the decoder are the same. Preferably, the memory
storage device of the encoder and the memory storage device of the decoder are the
same. Preferably the processor of the encoder and/or decoder are further configured
to further process or evaluate the point cloud even more preferably in real-time.
In particular, for the example of autonomous driving, evaluation of the point cloud
could include determination of obstacles in the direction of driving._
[0108] Reference is now made to Figure 8, which shows a simplified block diagram of an example
embodiment of an encoder 1100. The encoder 1100 includes a processor 1102 and a memory
storage device 1104. The memory storage device 1104 may store a computer program or
application containing instructions that, when executed, cause the processor 1102
to perform operations such as those described herein. For example, the instructions
may encode and output bitstreams encoded in accordance with the methods described
herein. It will be understood that the instructions may be stored on a non-transitory
computer-readable medium, such as a compact disc, flash memory device, random access
memory, hard drive, etc. When the instructions are executed, the processor 1102 carries
out the operations and functions specified in the instructions so as to operate as
a special-purpose processor that implements the described process(es). Such a processor
may be referred to as a "processor circuit" or "processor circuitry" in some examples.
[0109] Reference is now also made to Fig. 9, which shows a simplified block diagram of an
example embodiment of a decoder 1200. The decoder 1200 includes a processor 1202 and
a memory storage device 1204. The memory storage device 1204 may include a computer
program or application containing instructions that, when executed, cause the processor
1202 to perform operations such as those described herein. It will be understood that
the instructions may be stored on a computer-readable medium, such as a compact disc,
flash memory device, random access memory, hard drive, etc. When the instructions
are executed, the processor 1202 carries out the operations and functions specified
in the instructions so as to operate as a special-purpose processor that implements
the described process(es) and methods. Such a processor may be referred to as a "processor
circuit" or "processor circuitry" in some examples.
[0110] It will be appreciated that the decoder and/or encoder according to the present application
may be implemented in a number of computing devices, including, without limitation,
servers, suitably programmed general purpose computers, machine vision systems, and
mobile devices. The decoder or encoder may be implemented by way of software containing
instructions for configuring a processor or processors to carry out the functions
described herein. The software instructions may be stored on any suitable non-transitory
computer-readable memory, including CDs, RAM, ROM, Flash memory, etc.
[0111] It will be understood that the decoder and/or encoder described herein and the module,
routine, process, thread, or other software component implementing the described method/process
for configuring the encoder or decoder may be realized using standard computer programming
techniques and languages. The present application is not limited to particular processors,
computer languages, computer programming conventions, data structures, other such
implementation details. Those skilled in the art will recognize that the described
processes may be implemented as a part of computer-executable code stored in volatile
or non-volatile memory, as part of an application-specific integrated chip (ASIC),
etc.
[0112] The present application also provides for a computer-readable signal encoding the
data produced through application of an encoding process in accordance with the present
application.
[0113] In an aspect of the present invention, a method for encoding a point cloud is provided
to generate a bitstream of compressed point cloud data, wherein the point cloud's
geometry is represented by an octree-based structure with a plurality of nodes having
parent-child relationships by recursively splitting a volumetric space containing
the point cloud into sub-volumes each associated with a node of the octree-based structure,
comprising the steps:
Determining a coding mode;
Obtaining coding context information for a present child node; and
Entropy encoding the occupancy of the present child node based on the determined coding
context information to produce encoded data for the bitstream.
[0114] Preferably, the coding mode includes Planar Coding Mode and/or Angular Coding Mode.
Preferably, wherein if the coding mode is the planar coding mode, coding context information
includes planar context information.
Preferably, wherein planar context information of the present child node is determined
according to the occupancy pattern of the present parent node and the occupancy pattern
of at least one neighboring parent node positioned directly next to the present parent
node
Preferably, wherein if the coding mode is the angular coding mode, the coding context
information of a present child node includes planar information of the present parent
node and the occupancy of the vertical parent neighbor adjacent to the present parent
node.
[0115] In an aspect of the present invention, a method for decoding a bitstream of compressed
point cloud data to generate a reconstructed point cloud, wherein the point cloud's
geometry is represented by an octree-based structure with a plurality of nodes having
parent-child relationships by recursively splitting a volumetric space containing
the point cloud into sub-volumes each associated with a node of the octree-bases structure,
comprising the steps:
Determining a coding mode;
Obtaining coding context information for a present child node; and
Entropy decoding the bitstream based on the context information of the present child
node to reconstruct the point cloud.
Preferably, the coding mode includes Planar Coding Mode and/or Angular Coding Mode.
Preferably, wherein if the coding mode is the planar coding mode, coding context information
includes planar context information.
Preferably, wherein planar context information of the present child node is determined
according to the occupancy pattern of the present parent node and the occupancy pattern
of at least one neighboring parent node positioned directly next to the present parent
node
Preferably, wherein if the coding mode is the angular coding mode, the coding context
information of a present child node includes planar information of the present parent
node and the occupancy of the vertical parent neighbor adjacent to the present parent
node.
[0116] Certain adaptations and modifications of the described embodiments can be made. Therefore,
the above discussed embodiments are considered to be illustrative and not restrictive.
In particular, embodiments can be freely combined with each other.
1. A method for encoding a point cloud to generate a bitstream of compressed point cloud
data, wherein the point cloud's geometry is represented by an octree-based structure
with a plurality of nodes having parent-child relationships by recursively splitting
a volumetric space containing the point cloud into sub-volumes each associated with
a node of the octree-based structure, comprising the steps:
Determining (S10) a coding mode, wherein the coding mode includes planar coding mode
and angular coding mode;
Obtaining (S11) coding context information for a present child node (120), wherein
if the coding mode is the planar coding mode (Sill), coding context information includes
planar context information, wherein planar context information of the present child
node (120) is determined according to the occupancy pattern of the present parent
node (122) and the occupancy pattern of at least one neighboring parent node (124,
130, 134) positioned directly next to the present parent node (122) ;
if the coding mode is the angular coding mode (S112), the coding context information
of a present child node (120) includes planar information of the present parent node
(122) and the occupancy of the vertical neighboring parent node (124, 130, 134) adjacent
to the present parent node (122); and
Entropy encoding (S12) the present child node (120) based on the determined coding
context information to produce encoded data for the bitstream.
2. A method for decoding a bitstream of compressed point cloud data to generate a reconstructed
point cloud, wherein the point cloud's geometry is represented by an octree-based
structure with a plurality of nodes having parent-child relationships by recursively
splitting a volumetric space containing the point cloud into sub-volumes each associated
with a node of the octree-bases structure, comprising the steps:
Determining (S20) a coding mode, wherein the coding mode includes planar coding mode
and angular coding mode;
Obtaining (S21) coding context information for a present child node (120), wherein
if the coding mode is the planar coding mode (S211), coding context information includes
planar context information, wherein planar context information of the present child
node (120) is determined according to the occupancy pattern of the present parent
node (122) and the occupancy pattern of at least one neighboring parent node (124,
130, 134) positioned directly next to the present parent node;
if the coding mode is the angular coding mode (S212), the coding context information
of a present child node (120) includes planar information of the present parent node
(122) and the occupancy of the vertical neighboring parent node (124, 130, 134) adjacent
to the present parent node (122); and
Entropy decoding (S22) the bitstream based on the context information of the present
child node to reconstruct the point cloud.
3. Method according to claims 1 or 2,
characterized in that, if the coding mode is the planar coding mode, the coding context information includes
plane position context information, wherein the plane position context information
includes one or more of:
The distance d from the closest already coded node at the same coordinate in the respective
parent node and the same depth D in the octree-based structure;
The plane position of the closest already coded node at the same coordinate in the
respective parent node and the same depth D in the octree-based structure; and
The plane position of the present child node (120) according to the occupancy pattern
of at least one neighboring parent node positioned next to the present parent node
(122).
4. Method according to claim 3, characterized in that, if the closest already coded node at the same coordinate in the respective parent
node and the same depth D in the octree-based structure is non-existent then the plane
position context information only includes the plane position of the present child
node (120) according to the occupancy pattern of at least one neighboring parent node
positioned directly next to the present parent node (122).
5. Method according to claims 3 and 4,
characterized in that, if the coding mode is the angular coding mode and the present child node (120) is
not eligible for angular coding mode, the coding context information includes plane
position context information, wherein the plane position context information includes
one or more of:
The distance d from the closest already coded node at the same coordinate in the respective
parent node and the same depth D in the octree-based structure;
The plane position of the closest already coded node at the same coordinate in the
respective parent node and the same depth D in the octree-based structure; and
The plane position of the present child node (120) according to the occupancy pattern
of at least one neighboring parent node positioned directly next to the present parent
node (122).
6. Method according to any of claims 1 to 5, characterized in that for determining the planar context information and the plane position context information
according to the occupancy pattern of at least one neighboring parent node, a present
plane position of the present child node (120) relative to the present parent node
(122) is determined, wherein the present plane position includes high plane position
and low plane position.
7. The method according to claim 6, characterized in that, if the present plane position is low plane position, the planar context information
and plane position context information is determined according to an occupancy of
a first group (126) of four child nodes of the neighboring parent node (124) that
are directly next to the present parent node (122) and the occupancy of a second group
(128) of four child nodes of the present parent node (122) directly opposite the first
group (126).
8. The method according to claim 7, characterized in that
If at least one child node of the first group (126) is occupied and the second group
(128) is not occupied, the planar context information includes the likelihood of a
plane and the plane position context information includes the likelihood of a low
plane position; or
If the first group (126) is not occupied and at least one child node of the second
group (128) is occupied, the planar context information includes the likelihood of
a plane and the plane position context information includes the likelihood of a high
plane position; or
If the first group (126) is not occupied and the second group (128) is not occupied,
the planar context information includes the likelihood of a plane, wherein the plane
position context information includes the likelihood of a low plane, if at least one
or more child nodes in the neighboring parent node (124) are occupied which do not
belong to the first group (126); or
If at least one child node of the first group (126) is occupied and at least one child
node of the second group (128) is occupied and #FirstGroup>#SecondGroup+1, the planar
context information includes the likelihood of a plane and the plane position context
information includes the likelihood of a low plane position; or
If at least one child node of the first group (126) is occupied and at least one child
node of the second group (128) is occupied and #FirstGroup<#SecondGroup+1, the planar
context information includes the likelihood of a plane and the plane position context
information includes the likelihood of a high plane position; and
Wherein #FirstGroup indicates the number of occupied child nodes in the first group
(126) and #SecondGroup indicates the number of occupied child nodes in the second
group (128).
9. The method according to claim 6, characterized in that, if the present plane position is high, the planar context information and plane
position context information is determined according to an occupancy of the neighboring
parent node (130) that is along the axis under consideration directly after the present
parent node (122), and the occupancy of a group (132) of four child nodes of the present
parent node (122) in a plane directly perpendicular to the axis under consideration
and next to the present child node (120).
10. The method according to claim 9, characterized in that
If at least one child node of the group (132) is occupied and the neighboring parent
node (130) is not occupied, the planar context information includes the likelihood
of a plane and the plane position context information includes the likelihood of a
low plane position; or
If the group (132) is not occupied and the neighboring parent node (130) is occupied,
the planar context information includes the likelihood of a plane and the plane position
context information includes the likelihood of a high plane position; or
If the group (132) is not occupied and the neighboring parent node (130) is not occupied,
the planar context information includes the likelihood of a plane, wherein the plane
position context information includes the likelihood of a low plane, if at least one
or more child nodes (136) in a neighboring parent node (134) along the axis under
consideration directly before the present parent node (122) are occupied; or
If at least one child node of the group (132) is occupied and the neighboring parent
node (130) is occupied and #Group>2, the planar context information includes the likelihood
of a plane and the plane position context information includes the likelihood of a
low plane position; or
If at least one child node of the group (132) is occupied and the neighboring parent
node (130) is occupied and #Group<2, the planar context information includes the likelihood
of a plane and the plane position context information includes the likelihood of a
high plane position;
If at least one child node of the group (130) is occupied and the neighboring parent
node (130) is occupied and #Group=2, the planar context information includes the likelihood
of the absence of a plane and the plane position is inferred to be unknown; and
Wherein #Group indicates the number of occupied nodes in the group (132).
11. Method according to any of claims 1 to 10, characterized in that the neighboring parent node (124, 130, 134) is arranged along one of the geometrical
axes under consideration.
12. Method according to any of claims 1 to 11, characterized in that the context information is determined along all three geometrical axes.
13. An encoder for encoding a point cloud to generate a bitstream of compressed point
cloud data, wherein the point cloud's geometry is represented by an octree-based structure
with a plurality of nodes having parent-child relationships by recursively splitting
a volumetric space containing the point cloud into sub-volumes each associated with
a node of the octree-based structure, the encoder (1100) comprising:
a processor (1102) and
a memory storage device (1104), wherein in the memory storage device instructions
executable by the processor are stored that, when executed, cause the processor to
perform the method according to any of claims 1 and 3 to 12 when dependent on claim
1.
14. A decoder for decoding a bitstream of compressed point cloud data to generate a reconstructed
point cloud, wherein the point cloud's geometry is represented by an octree-based
structure with a plurality of nodes having parent-child relationships by recursively
splitting a volumetric space containing the point cloud into sub-volumes each associated
with a node of the octree-bases structure, the decoder (1200) comprising:
a processor (1202) and
a memory storage device (1204), wherein in the memory storage device instructions
executable by the processor are stored that, when executed, cause the processor to
perform the method according to any of claims 2 to 12.
15. A non-transitory computer-readable storage medium storing processor-executed instructions
that, when executed by a processor, cause the processor to perform the method according
to any one of claims 1 to 12.