IP Library › Granted Patent US 12,143,646
Granted Patent B2
US 12,143,646 · App. 18/145,908 · Granted Nov 12, 2024

Methods and devices using direct coding in point cloud compression

Inventors: David Flynn (Darmstadt, DE); Sébastien Lasserre (Thorigné-Fouillard, FR)
Assignee: BlackBerry Limited
H04N19/91G06T9/001G06T9/40H03M7/405H03M7/6094H04N19/96
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 12,143,646
App. No.
18/145,908
Granted
Nov 12, 2024
Kind
B2
Abstract

Methods and devices for coding point clouds using direct coding mode to code coordinates of a point within a sub-volume associated with a current node instead of a pattern of occupancy for child nodes. Eligibility for use of direct coding is based on occupancy data from another node. If eligible, then a flag is represented in the bitstream to signal whether direct coding is applied to points in the sub-volume or not.

Claims (42)

1. A method of encoding a point cloud to generate a bitstream of compressed point cloud data, the point cloud being defined in a tree structure having a plurality of nodes having parent-child relationships and that represent the geometry of a volumetric space recursively split into sub-volumes and containing the points of the point cloud, the method comprising:

traversing the tree to entropy encode patterns of occupancy for sets of child nodes, wherein a pattern of occupancy indicates which of the sub-volumes associated with the respective child nodes contain at least one point, and wherein the traversing includes:

for a current node associated with a sub-volume,

determining that points within the sub-volume associated with the current node are eligible for direct coding based on an occupancy pattern for a parent node to the current node;

inserting a flag in the bitstream indicating the direct coding is to be used to encode the current node; and

entropy encoding positional coordinate data for at least one of the points within the sub-volume.

2. The method claimed in claim 1 , wherein the occupancy pattern for the parent node includes whether sibling nodes to the current node are occupied.

3. The method claimed in claim 2 , wherein the sibling nodes are nodes that are associated with respective sub-volumes of the parent node.

4. The method claimed in claim 3 , wherein the respective sub-volumes of the parent node share at least one vertex with the sub-volume associated with the current node.

5. The method claimed in claim 2 , wherein determining eligibility based on the occupancy pattern for the parent node to the current node includes determining that none of the sibling nodes are occupied.

6. The method claimed in claim 1 , further comprising, for a second node that is associated with a second sub-volume,

determining that points within the second sub-volume associated with the second node are not eligible for direct coding based on a parent occupancy pattern for a parent to the second node; and

entropy encoding occupancy data for the second sub-volume without direct coding.

7. An encoder for encoding a point cloud to generate a bitstream of compressed point cloud data, the point cloud being defined in a tree structure having a plurality of nodes having parent-child relationships and that represent the geometry of a volumetric space recursively split into sub-volumes and containing the points of the point cloud, the encoder comprising:

a processor;

memory; and

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

traverse the tree to entropy encode patterns of occupancy for sets of child nodes, wherein a pattern of occupancy indicates which of the sub-volumes associated with the respective child nodes contain at least one point, and wherein the traversing includes:

for a current node associated with a sub-volume, the processor is to:

determine that points within the sub-volume associated with the current node are eligible for direct coding based on an occupancy pattern for a parent node to the current node;

insert a flag in the bitstream indicating the direct coding is to be used to encode the current node; and

entropy encode positional coordinate data for at least one of the points within the sub-volume.

8. The encoder claimed in claim 7 , wherein the occupancy pattern for the parent node includes whether sibling nodes to the current node are occupied.

9. The encoder claimed in claim 8 , wherein the sibling nodes are nodes that are associated with respective sub-volumes of the parent node.

10. The encoder claimed in claim 9 , wherein the respective sub-volumes of the parent node share at least one vertex with the sub-volume associated with the current node.

11. The encoder claimed in claim 8 , wherein the instructions, when executed, are to cause the processor to determine eligibility based on the occupancy pattern for the parent node to the current node by determining that none of the sibling nodes are occupied.

12. The encoder claimed in claim 7 , wherein the instructions, when executed, are to further cause the processor to, for a second node that is associated with a second sub-volume,

determine that points within the second sub-volume associated with the second node are not eligible for direct coding based on a parent occupancy pattern for a parent to the second node; and

entropy encode occupancy data for the second sub-volume without direct coding.

13. A non-transitory computer readable medium storing processor-readable instructions for encoding a point cloud to generate a bitstream of compressed point cloud data, the point cloud being defined in a tree structure having a plurality of nodes having parent-child relationships and that represent the geometry of a volumetric space recursively split into sub-volumes and containing the points of the point cloud, wherein the instructions, when executed, are to cause a processor to:

traverse the tree to entropy encode patterns of occupancy for sets of child nodes, wherein a pattern of occupancy indicates which of the sub-volumes associated with the respective child nodes contain at least one point, and wherein the traversing includes:

for a current node associated with a sub-volume, the processor is to:

determine that points within the sub-volume associated with the current node are eligible for direct coding based on an occupancy pattern for a parent node to the current node;

insert a flag in the bitstream indicating the direct coding is to be used to encode the current node; and

entropy encode positional coordinate data for at least one of the points within the sub-volume.

14. The non-transitory computer readable medium claimed in claim 13 , wherein the occupancy pattern for the parent node includes whether sibling nodes to the current node are occupied.

15. The non-transitory computer readable medium claimed in claim 14 , wherein the sibling nodes are nodes that are associated with respective sub-volumes of the parent node.

16. The non-transitory computer readable medium claimed in claim 15 , wherein the respective sub-volumes of the parent node share at least one vertex with the sub-volume associated with the current node.

17. The non-transitory computer readable medium claimed in claim 14 , wherein the instructions, when executed, are to cause the processor to determine eligibility based on the occupancy pattern for the parent node to the current node by determining that none of the sibling nodes are occupied.

18. The non-transitory computer readable medium claimed in claim 13 , wherein the instructions, when executed, are to further cause the processor to, for a second node that is associated with a second sub-volume,

determine that points within the second sub-volume associated with the second node are not eligible for direct coding based on a parent occupancy pattern for a parent to the second node; and

entropy encode occupancy data for the second sub-volume without direct coding.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 23, 2022
From: FLYNN, DAVID
To: QNX SOFTWARE SYSTEMS GMBH
Reel/Frame 062193/0629 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 23, 2022
From: LASSERRE, SÉBASTIEN
To: BLACKBERRY FRANCE S.A.S.
Reel/Frame 062193/0703 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 23, 2022
From: QNX SOFTWARE SYSTEMS GMBH
To: 2236008 ONTARIO INC.
Reel/Frame 062193/0839 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 23, 2022
From: BLACKBERRY FRANCE S.A.S.
To: BLACKBERRY LIMITED
Reel/Frame 062193/0936 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 23, 2022
From: 2236008 ONTARIO INC.
To: BLACKBERRY LIMITED
Reel/Frame 062211/0448 →
Priority Claims (1)
EP 18305038 · Jan 18, 2018 · regional
Continuity (2)
Continuation 16955279
Related Publication 20230126256A1 · Apr 27, 2023