IP Library Granted Patent US 11,089,331
Granted Patent B2
US 11,089,331 · App. 17/045,815 · Granted Aug 10, 2021

Methods and devices for predictive coding of point clouds

Inventors: Sébastien Lasserre (Thorigné-Fouillard, FR); David Flynn (Darmstadt, DE)
Assignee: BlackBerry Limited
H04N19/597H04N19/00H04N19/13H04N19/152H04N19/159H04N19/50H04N19/52
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 11,089,331
App. No.
17/045,815
Granted
Aug 10, 2021
Kind
B2
Abstract

Methods and devices for encoding a point cloud. A bit sequence signaling an occupancy pattern for sub-volumes of a volume is coded. Predictive coding is used to find a set of predicted points, from which a corresponding predicted occupancy pattern may be determined. The predicted occupancy pattern may be used to determine the contexts for entropy coding the occupancy pattern. The determination may include determining for each sub-volume, whether it contains a predicted point or not and, in some cases, the count of predicted points within the sub-volume. Various threshold numbers of predicted points may cause the selection of different context sets for coding the occupancy pattern. The predictive coding may be enabled by determining that the prediction of occupancy of a parent volume to the volume met a threshold level of accuracy.

Claims (58)

1. A method of encoding a point cloud to generate a bitstream of compressed point cloud data, the point cloud being located within a volumetric space recursively split into sub-volumes and containing the points of the point cloud, each of the points having a geometric location within the volumetric space, wherein a volume contains a set of points the locations of which are to-be-coded, and wherein occupancy of sub-volumes of the volume is indicated using a bit sequence with each bit of the bit sequence indicating whether a respective sub-volume in a scan order within the volume contains at least one of the points in the set of point, the method comprising:

determining a predicted set of points for the volume based on a set of previously-coded points and a selected coding mode;

determining a predicted occupancy pattern that includes an ordered series of bits, each bit corresponding to one of the respective sub-volumes and indicating whether that respective sub-volume contains at least one of the predicted points from the predicted set of points; and

determining that the predicted occupancy pattern is not all zero and, on that basis, enabling predictive coding and, for each respective sub-volume within the volume,

determining, from a bit in the ordered series of bits corresponding to respective sub-volume, whether that respective sub-volume is predicted to be empty and, if so, selecting a first context set containing at least one first context, and, if not, selecting a second context set containing at least one second context, the at least one first context being mutually exclusive from the at least one second context, and

context-adaptively entropy coding a bit of the bit sequence corresponding to that respective sub-volume based on a context selected from the selected context set, to produce encoded data for the bitstream.

2. The method claimed in claim 1 , wherein selecting a second context set includes determining a count of predicted points located within the respective sub-volume and selecting a context from the second context set based on the count.

3. The method claimed in claim 1 , wherein selecting a second context set includes determining a count of predicted points located within the respective sub-volume and selecting the second context set from among two or more available context sets based on the count.

4. The method claimed in claim 3 , wherein the available context sets are mutually exclusive.

5. The method claimed in claim 1 , wherein selecting a second context set includes determining a count of predicted points located within the respective sub-volume and comparing the count to a threshold number, and selecting the second context set from among two or more available context sets based on whether the count is greater than the threshold number.

6. The method claimed in claim 5 , wherein comparing includes comparing the count to a first threshold number and a second higher threshold number, and wherein selecting the second context set is based on the comparisons.

7. The method claimed in claim 1 , further comprising first enabling predictive coding based on the accuracy of a parent occupancy prediction for a parent volume of which the volume is a child volume.

8. The method claimed in claim 7 , wherein the parent volume has a plurality of child volumes, including the volume, and wherein the parent occupancy prediction includes a prediction of which of the child volumes are occupied, and wherein enabling includes determining a count of how many of the child volumes' occupancy status was correctly predicted and determining that the count is less than a poor prediction threshold value.

9. The method claimed in claim 1 , wherein the context-adaptively entropy coding includes selecting the context from the selected context set, and wherein selecting the context is based, at least in part, on the occupancy status of neighbouring volumes to the volume.

10. An encoder for encoding a point cloud to generate a bitstream of compressed point cloud data, the point cloud being located within a volumetric space recursively split into sub-volumes and containing the points of the point cloud, each of the points having a geometric location within the volumetric space, wherein a volume contains a set of points the locations of which are to-be-coded, and wherein occupancy of sub-volumes of the volume is indicated using a bit sequence with each bit of the bit sequence indicating whether a respective sub-volume in a scan order within the volume contains at least one of the points in the set of point, the encoder comprising:

a processor;

memory; and

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

determine a predicted set of points for the volume based on a set of previously-coded points and a selected coding mode;

determine a predicted occupancy pattern that includes an ordered series of bits, each bit corresponding to one of the respective sub-volumes and indicating whether that respective sub-volume contains at least one of the predicted points from the predicted set of points; and

determine that the predicted occupancy pattern is not all zero and, on that basis, enable predictive coding and, for each respective sub-volume within the volume,

determine, from a bit in the ordered series of bits corresponding to respective sub-volume, whether that respective sub-volume is predicted to be empty and, if so, select a first context set containing at least one first context, and, if not, select a second context set containing at least one second context, the at least one first context being mutually exclusive from the at least one second context, and

context-adaptively entropy code a bit of the bit sequence corresponding to that respective sub-volume based on a context selected from the selected context set, to produce encoded data for the bitstream.

11. A decoder for decoding a bitstream of compressed point cloud data to produce a reconstructed point cloud, the point cloud being located within a volumetric space recursively split into sub-volumes and containing the points of the point cloud, each of the points having a geometric location within the volumetric space, wherein a volume contains a set of points the locations of which are to-be-coded, and wherein occupancy of sub-volumes of the volume is indicated using a bit sequence with each bit of the bit sequence indicating whether a respective sub-volume in a scan order within the volume contains at least one of the points in the set of point, the decoder comprising:

a processor;

memory; and

a decoding application containing instructions executable by the processor that, when executed, cause the processor to:

determine a predicted set of points for the volume based on a set of previously-coded points and a selected coding mode;

determine a predicted occupancy pattern that includes an ordered series of bits, each bit corresponding to one of the respective sub-volumes and indicating whether that respective sub-volume contains at least one of the predicted points from the predicted set of points; and

determine that the predicted occupancy pattern is not all zero and, on that basis, enable predictive coding and, for each respective sub-volume within the volume,

determine, from a bit in the ordered series of bits corresponding to respective sub-volume, whether that respective sub-volume is predicted to be empty and, if so, select a first context set containing at least one first context, and, if not, select a second context set containing at least one second context, the at least one first context being mutually exclusive from the at least one second context, and

context-adaptively entropy decode from the bitstream a bit of the bit sequence corresponding to that respective sub-volume based on a context selected from the selected context set, to produce a reconstructed bit.

12. A non-transitory processor-readable medium storing processor-executable instructions for encoding a point cloud to generate a bitstream of compressed point cloud data, the point cloud being located within a volumetric space recursively split into sub-volumes and containing the points of the point cloud, each of the points having a geometric location within the volumetric space, wherein a volume contains a set of points the locations of which are to-be-coded, and wherein occupancy of sub-volumes of the volume is indicated using a bit sequence with each bit of the bit sequence indicating whether a respective sub-volume in a scan order within the volume contains at least one of the points in the set of point, wherein the instructions, when executed by a processor, cause the processor to:

determine a predicted set of points for the volume based on a set of previously-coded points and a selected coding mode;

determine a predicted occupancy pattern that includes an ordered series of bits, each bit corresponding to one of the respective sub-volumes and indicating whether that respective sub-volume contains at least one of the predicted points from the predicted set of points; and

determine that the predicted occupancy pattern is not all zero and, on that basis, enable predictive coding and, for each respective sub-volume within the volume,

determine, from a bit in the ordered series of bits corresponding to respective sub-volume, whether that respective sub-volume is predicted to be empty and, if so, select a first context set containing at least one first context, and, if not, select a second context set containing at least one second context, the at least one first context being mutually exclusive from the at least one second context, and

context-adaptively entropy code a bit of the bit sequence corresponding to that respective sub-volume based on a context selected from the selected context set, to produce encoded data for the bitstream.

13. A method of decoding a bitstream of compressed point cloud data to produce a reconstructed point cloud, the point cloud being located within a volumetric space recursively split into sub-volumes and containing the points of the point cloud, each of the points having a geometric location within the volumetric space, wherein a volume contains a set of points the locations of which are to-be-coded, and wherein occupancy of sub-volumes of the volume is indicated using a bit sequence with each bit of the bit sequence indicating whether a respective sub-volume in a scan order within the volume contains at least one of the points in the set of point, the method comprising:

determining a predicted set of points for the volume based on a set of previously-coded points and a selected coding mode;

determining a predicted occupancy pattern that includes an ordered series of bits, each bit corresponding to one of the respective sub-volumes and indicating whether that respective sub-volume contains at least one of the predicted points from the predicted set of points; and

determining that the predicted occupancy pattern is not all zero and, on that basis, enabling predictive coding and, for each respective sub-volume within the volume,

determining, from a bit in the ordered series of bits corresponding to respective sub-volume, whether that respective sub-volume is predicted to be empty and, if so, selecting a first context set containing at least one first context, and, if not, selecting a second context set containing at least one second context, the at least one first context being mutually exclusive from the at least one second context, and

context-adaptively entropy decoding from the bitstream a bit of the bit sequence corresponding to that respective sub-volume based on a context selected from the selected context set, to produce a reconstructed bit.

14. The method claimed in claim 13 , wherein selecting a second context set includes determining a count of predicted points located within the respective sub-volume and selecting a context from the second context set based on the count.

15. The method claimed in claim 13 , wherein selecting a second context set includes determining a count of predicted points located within the respective sub-volume and selecting the second context set from among two or more available context sets based on the count.

16. The method claimed in claim 15 , wherein the available context sets are mutually exclusive.

17. The method claimed in claim 13 , wherein selecting a second context set includes determining a count of predicted points located within the respective sub-volume and comparing the count to a threshold number, and selecting the second context set from among two or more available context sets based on whether the count is greater than the threshold number.

18. The method claimed in claim 17 , wherein comparing includes comparing the count to a first threshold number and a second higher threshold number, and wherein selecting the second context set is based on the comparisons.

19. The method claimed in claim 13 , further comprising first enabling predictive coding based on the accuracy of a parent occupancy prediction for a parent volume of which the volume is a child volume.

20. The method claimed in claim 19 , wherein the parent volume has a plurality of child volumes, including the volume, and wherein the parent occupancy prediction includes a prediction of which of the child volumes are occupied, and wherein enabling includes determining a count of how many of the child volumes' occupancy status was correctly predicted and determining that the count is less than a poor prediction threshold value.

21. The method claimed in claim 13 , wherein the context-adaptively entropy coding includes selecting the context from the selected context set, and wherein selecting the context is based, at least in part, on the occupancy status of neighbouring volumes to the volume.

22. A non-transitory processor-readable medium storing processor-executable instructions for decoding a bitstream of compressed point cloud data to produce a reconstructed point cloud, the point cloud being located within a volumetric space recursively split into sub-volumes and containing the points of the point cloud, each of the points having a geometric location within the volumetric space, wherein a volume contains a set of points the locations of which are to-be-coded, and wherein occupancy of sub-volumes of the volume is indicated using a bit sequence with each bit of the bit sequence indicating whether a respective sub-volume in a scan order within the volume contains at least one of the points in the set of point, wherein the instructions, when executed by a processor, are to cause the processor to:

determine a predicted set of points for the volume based on a set of previously-coded points and a selected coding mode;

determine a predicted occupancy pattern that includes an ordered series of bits, each bit corresponding to one of the respective sub-volumes and indicating whether that respective sub-volume contains at least one of the predicted points from the predicted set of points; and

determine that the predicted occupancy pattern is not all zero and, on that basis, enable predictive coding and, for each respective sub-volume within the volume,

determine, from a bit in the ordered series of bits corresponding to respective sub-volume, whether that respective sub-volume is predicted to be empty and, if so, select a first context set containing at least one first context, and, if not, select a second context set containing at least one second context, the at least one first context being mutually exclusive from the at least one second context, and

context-adaptively entropy decode from the bitstream a bit of the bit sequence corresponding to that respective sub-volume based on a context selected from the selected context set, to produce a reconstructed bit.

Assignments (6)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 21, 2025
From: BLACKBERRY LIMITED
To: DISCORD INC.
Reel/Frame 069941/0995 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 7, 2020
From: BLACKBERRY UK LIMITED; BLACKBERRY FRANCE S.A.S.
To: BLACKBERRY LIMITED
Reel/Frame 053995/0647 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 7, 2020
From: QNX SOFTWARE SYSTEMS GMBH
To: 2236008 ONTARIO INC.
Reel/Frame 053995/0665 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 7, 2020
From: FLYNN, DAVID
To: QNX SOFTWARE SYSTEMS GMBH
Reel/Frame 053995/0730 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 7, 2020
From: LASSERRE, SÉBASTIEN
To: BLACKBERRY FRANCE S.A.S.
Reel/Frame 053995/0762 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 7, 2020
From: 2236008 ONTARIO INC.
To: BLACKBERRY LIMITED
Reel/Frame 054060/0096 →
Priority Claims (1)
EP 8305417 · Apr 9, 2018 · regional
Continuity (1)
Related Publication 20210144403A1 · May 13, 2021
Cited By (1)
US 12,190,552