IP Library Granted Patent US 10,693,492
Granted Patent B1
US 10,693,492 · App. 16/456,150 · Granted Jun 23, 2020

Context determination for planar mode in octree-based point cloud coding

Inventors: Sébastien Lasserre (Thorigne-Fouillard, FR); David Flynn (Darmstadt, DE)
Assignee: BlackBerry Limited
H03M7/3079H03M7/6005H03M7/6011H04L65/601H04L65/607H04L65/80G06T9/00
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,693,492
App. No.
16/456,150
Filed
Jun 28, 2019
Granted
Jun 23, 2020
Kind
B1
Examiner
MAI, LAM T
Art Unit
2845
USPC
341/51
Abstract

Method and devices for coding point cloud data using a planar coding mode. The planar coding mode may be signaled using in a planar mode flag to signal that a volume is planar. A planar volume has all of its occupied child nodes on one side of a plane bisecting the volume. A planar position flag may signal which side of the volume is occupied. Entropy coding may be used to code the planar mode flag and/or the planar position flag. Context determination for coding may take into account one or more of whether a parent volume containing the volume is planar in occupancy, occupancy of a neighbouring volume at a parent depth, distance between the volume and a closest already-coded occupied volume at a same depth as the volume, plane position, if any, of the closest already-coded occupied volume, and a position of the volume within the parent volume.

Claims (72)

1. A method of encoding a point cloud to generate a bitstream of compressed point cloud data representing a three-dimensional location of an object, the point cloud being located within a volumetric space recursively split into sub-volumes and containing points of the point cloud, wherein a volume is partitioned into a first set of child sub-volumes and a second set of child sub-volumes, the first set of child sub-volumes being positioned in a first plane and the second set of child sub-volumes being positioned in a second plane parallel to the first plane, and wherein an occupancy bit associated with each respective child sub-volume indicates whether that respective child sub-volume contains at least one of the points, both the first plane and the second plane being orthogonal to an axis, the method comprising:

determining whether the volume is planar based on whether all child sub-volumes containing at least one point are positioned in either the first set or the second set;

entropy encoding in the bitstream a planar mode flag to signal whether the volume is planar, wherein entropy encoding includes determining a context for coding the planar mode flag based, in part, on one or more of:

(a) whether a parent volume containing the volume is planar in occupancy,

(b) occupancy of a neighbouring volume at a parent depth, the neighbouring volume being adjacent the volume and having a face in common with the parent volume, or

(c) a distance between the volume and a closest already-coded occupied volume at a same depth as the volume and having a same position on the axis as the volume;

encoding occupancy bits for at least some of the child sub-volumes; and

outputting the bitstream of compressed point cloud data.

2. The method claimed in claim 1 , wherein the parent volume containing the volume is planar in occupancy if a parent planar mode flag indicates that the parent volume is planar.

3. The method claimed in claim 1 , wherein the distance is near or far and is based on calculating a distance metric and comparing it to a threshold.

4. The method claimed in claim 1 , wherein determining the context for coding the planar mode flag is based on a combination of (a), (b) and (c).

5. The method claimed in claim 1 , wherein determining whether the volume is planar includes determining that the volume is planar and, as a result, entropy encoding a plane position flag to signal whether the at least one point is positioned in the first set or the second set.

6. The method claimed in claim 5 , wherein entropy encoding the plane position flag includes determining a context for coding the plane position flag based, in part, on one or more of:

(a′) occupancy of the neighbouring volume at the parent depth;

(b′) the distance between the volume and the closest already-coded occupied volume;

(c′) a plane position, if any, of the closest already-coded occupied volume; or

(d′) a position of the volume within the parent volume.

7. The method claimed in claim 6 , wherein the distance is near, not too far, or far and is based on calculating a distance metric and comparing it to a first threshold and a second threshold.

8. The method claimed in claim 6 , wherein determining the context for coding the plane position flag is based on a combination of three or more of (a′), (b′), (c′), and (d′).

9. A method of decoding a bitstream of compressed point cloud data to produce a reconstructed point cloud representing a three-dimensional location of a physical object, the point cloud being located within a volumetric space recursively split into sub-volumes and containing points of the point cloud, wherein a volume is partitioned into a first set of child sub-volumes and a second set of child sub-volumes, the first set of child sub-volumes being positioned in a first plane and the second set of child sub-volumes being positioned in a second plane parallel to the first plane, and wherein an occupancy bit associated with each respective child sub-volume indicates whether that respective child sub-volume contains at least one of the points, both the first plane and the second plane being orthogonal to an axis, the method comprising:

reconstructing the points of the point cloud by reconstructing the occupancy bits by

entropy decoding from the bitstream a planar mode flag that indicates whether the volume is planar, wherein the volume is planar if all child sub-volumes containing at least one point are positioned in either the first set or the second set, wherein entropy decoding includes determining a context for decoding the planar mode flag based, in part, on one or more of:

(a) whether a parent volume containing the volume is planar in occupancy,

(b) occupancy of a neighbouring volume at a parent depth, the neighbouring volume being adjacent the volume and having a face in common with the parent volume, or

(c) a distance between the volume and a closest already-coded occupied volume at a same depth as the volume and having a same position on the axis as the volume; and

reconstructing occupancy bits for the child sub-volumes.

10. The method claimed in claim 9 , wherein the parent volume containing the volume is planar in occupancy if a parent planar mode flag indicates that the parent volume is planar.

11. The method claimed in claim 9 , wherein the distance is near or far and is based on calculating a distance metric and comparing it to a threshold.

12. The method claimed in claim 9 , wherein determining the context for coding the planar mode flag is based on a combination of (a), (b) and (c).

13. The method claimed in claim 9 , wherein determining whether the volume is planar includes determining that the volume is planar and, as a result, entropy encoding a plane position flag to signal whether the at least one point is positioned in the first set or the second set.

14. The method claimed in claim 13 , wherein entropy encoding the plane position flag includes determining a context for coding the plane position flag based, in part, on one or more of:

(a′) occupancy of the neighbouring volume at the parent depth;

(b′) the distance between the volume and the closest already-coded occupied volume;

(c′) a plane position, if any, of the closest already-coded occupied volume; or

(d′) a position of the volume within the parent volume.

15. The method claimed in claim 14 , wherein the distance is near, not too far, or far and is based on calculating a distance metric and comparing it to a first threshold and a second threshold.

16. The method claimed in claim 14 , wherein determining the context for coding the plane position flag is based on a combination of three or more of (a′), (b′), (c′), and (d′).

17. An encoder for encoding a point cloud to generate a bitstream of compressed point cloud data representing a three-dimensional location of an object, the point cloud being located within a volumetric space recursively split into sub-volumes and containing points of the point cloud, wherein a volume is partitioned into a first set of child sub-volumes and a second set of child sub-volumes, the first set of child sub-volumes being positioned in a first plane and the second set of child sub-volumes being positioned in a second plane parallel to the first plane, and wherein an occupancy bit associated with each respective child sub-volume indicates whether that respective child sub-volume contains at least one of the points, both the first plane and the second plane being orthogonal to an axis, the encoder comprising:

a processor;

memory; and

an encoding application containing instructions executable by the processor that, when executed, cause the processor to:

determine whether the volume is planar based on whether all child sub-volumes containing at least one point are positioned in either the first set or the second set;

entropy encode in the bitstream a planar mode flag to signal whether the volume is planar, wherein entropy encoding includes determining a context for coding the planar mode flag based, in part, on one or more of:

(a) whether a parent volume containing the volume is planar in occupancy,

(b) occupancy of a neighbouring volume at a parent depth, the neighbouring volume being adjacent the volume and having a face in common with the parent volume, or

(c) a distance between the volume and a closest already-coded occupied volume at a same depth as the volume and having a same position on the axis as the volume;

encode occupancy bits for at least some of the child sub-volumes; and

output the bitstream of compressed point cloud data.

18. A decoder for decoding a bitstream of compressed point cloud data to produce a reconstructed point cloud representing a three-dimensional location of a physical object, the point cloud being located within a volumetric space recursively split into sub-volumes and containing points of the point cloud, wherein a volume is partitioned into a first set of child sub-volumes and a second set of child sub-volumes, the first set of child sub-volumes being positioned in a first plane and the second set of child sub-volumes being positioned in a second plane parallel to the first plane, and wherein an occupancy bit associated with each respective child sub-volume indicates whether that respective child sub-volume contains at least one of the points, both the first plane and the second plane being orthogonal to an axis, the decoder comprising:

a processor;

memory; and

a decoding application containing instructions executable by the processor that, when executed, cause the processor to reconstruct the points of the point cloud by reconstructing the occupancy bits by:

entropy decoding from the bitstream a planar mode flag that indicates whether the volume is planar, wherein the volume is planar if all child sub-volumes containing at least one point are positioned in either the first set or the second set, wherein entropy decoding includes determining a context for decoding the planar mode flag based, in part, on one or more of:

(a) whether a parent volume containing the volume is planar in occupancy,

(b) occupancy of a neighbouring volume at a parent depth, the neighbouring volume being adjacent the volume and having a face in common with the parent volume, or

(c) a distance between the volume and a closest already-coded occupied volume at a same depth as the volume and having a same position on the axis as the volume; and

reconstructing occupancy bits for the child sub-volumes.

19. A non-transitory processor-readable medium storing processor-executable instructions to encode a point cloud to generate a bitstream of compressed point cloud data representing a three-dimensional location of an object, the point cloud being located within a volumetric space recursively split into sub-volumes and containing points of the point cloud, wherein a volume is partitioned into a first set of child sub-volumes and a second set of child sub-volumes, the first set of child sub-volumes being positioned in a first plane and the second set of child sub-volumes being positioned in a second plane parallel to the first plane, and wherein an occupancy bit associated with each respective child sub-volume indicates whether that respective child sub-volume contains at least one of the points, both the first plane and the second plane being orthogonal to an axis, wherein the processor-executable instructions, when executed by a processor, are to cause the processor to:

determine whether the volume is planar based on whether all child sub-volumes containing at least one point are positioned in either the first set or the second set;

entropy encode in the bitstream a planar mode flag to signal whether the volume is planar, wherein entropy encoding includes determining a context for coding the planar mode flag based, in part, on one or more of:

(a) whether a parent volume containing the volume is planar in occupancy,

(b) occupancy of a neighbouring volume at a parent depth, the neighbouring volume being adjacent the volume and having a face in common with the parent volume, or

(c) a distance between the volume and a closest already-coded occupied volume at a same depth as the volume and having a same position on the axis as the volume;

encode occupancy bits for at least some of the child sub-volumes; and

output the bitstream of compressed point cloud data.

20. A non-transitory processor-readable medium storing processor-executable instructions to decode a bitstream of compressed point cloud data to produce a reconstructed point cloud representing a three-dimensional location of a physical object, the point cloud being located within a volumetric space recursively split into sub-volumes and containing points of the point cloud, wherein a volume is partitioned into a first set of child sub-volumes and a second set of child sub-volumes, the first set of child sub-volumes being positioned in a first plane and the second set of child sub-volumes being positioned in a second plane parallel to the first plane, and wherein an occupancy bit associated with each respective child sub-volume indicates whether that respective child sub-volume contains at least one of the points, both the first plane and the second plane being orthogonal to an axis, wherein the processor-executable instructions, when executed by a processor, cause the processor to:

reconstruct the points of the point cloud by reconstructing the occupancy bits by:

entropy decoding from the bitstream a planar mode flag that indicates whether the volume is planar, wherein the volume is planar if all child sub-volumes containing at least one point are positioned in either the first set or the second set, wherein entropy decoding includes determining a context for decoding the planar mode flag based, in part, on one or more of:

(a) whether a parent volume containing the volume is planar in occupancy,

(b) occupancy of a neighbouring volume at a parent depth, the neighbouring volume being adjacent the volume and having a face in common with the parent volume, or

(c) a distance between the volume and a closest already-coded occupied volume at a same depth as the volume and having a same position on the axis as the volume; and

reconstructing occupancy bits for the child sub-volumes.

Assignments (6)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 16, 2020
From: 2236008 ONTARIO INC.
To: BLACKBERRY LIMITED
Reel/Frame 052413/0686 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 1, 2019
From: FLYNN, DAVID
To: QNX SOFTWARE SYSTEMS LIMITED
Reel/Frame 049929/0442 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 1, 2019
From: LASSERRE, SÉBASTIEN
To: BLACKBERRY FRANCE S.A.S.
Reel/Frame 049929/0533 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 29, 2019
From: QNX SOFTWARE SYSTEMS GMBH
To: 2236008 ONTARIO INC.
Reel/Frame 049886/0619 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 29, 2019
From: BLACKBERRY FRANCE S.A.S.
To: BLACKBERRY UK LIMITED
Reel/Frame 049886/0660 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 29, 2019
From: BLACKBERRY UK LIMITED
To: BLACKBERRY LIMITED
Reel/Frame 049886/0694 →
Cited By (11)
US 12,230,004 US 12,272,108 US 12,283,074 US 12,354,315 US 12,373,993 US 12,400,374 US 12,477,156 US 12,511,792 US 12,524,923 US 12,657,778 US 12,739,432