IP Library Granted Patent US 11,900,641
Granted Patent B2
US 11,900,641 · App. 17/280,753 · Granted Feb 13, 2024

Methods and devices for binary entropy coding of point clouds

Inventor: Sébastien Lasserre (Thorigné-Fouillard, FR)
Assignee: Malikie Innovations Limited
G06T9/40G06F17/18G06T9/001G06T17/10H03M7/6005H03M7/6011H04N19/105H04N19/13H04N19/1883H04N19/46H04N19/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 11,900,641
App. No.
17/280,753
Granted
Feb 13, 2024
Kind
B2
Abstract

Methods and devices for encoding a point cloud. A bit sequence signalling an occupancy pattern for sub-volumes of a volume is coded using binary entropy coding. For a given bit in the bit sequence, a context may be based on a sub-volume neighbour configuration for the sub-volume corresponding to that bit. The sub-volume neighbour configuration depends on an occupancy pattern of a group of sub-volumes of neighbouring volumes to the volume, the group of sub-volumes neighbouring the sub-volume corresponding to the given bit. The context may be further based on a partial sequence of previously-coded bits of the bit sequence.

Claims (57)

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 geometrically represent a volumetric space recursively split into sub-volumes containing points of the point cloud, wherein occupancy of sub-volumes of a volume is indicated using a bit sequence in which each bit indicates occupancy of a respective sub-volume in a scan order within the volume, which has a plurality of neighbouring volumes, the method comprising:

determining, for a current node associated with a current volume split into first sub-volumes, a first bit sequence indicating occupancy statuses of the first sub-volumes, wherein each first sub-volume corresponds to a child node of the current node; and

for at least one bit in the first bit sequence of the current volume:

determining, based on occupancy data for second sub-volumes of at least one neighbouring volume of the current volume, a sub-volume neighbour configuration that depends on an occupancy pattern of a group of the second sub-volumes that neighbour a first sub-volume of the current volume that corresponds to the at least one bit in the first bit sequence;

selecting a probability for use in entropy encoding of the at least one bit in the first bit sequence, wherein the probability is selected based at least in part on the sub-volume neighbour configuration; and

entropy encoding the at least one bit in the first bit sequence based on the probability using a binary entropy encoder to produce encoded binarized data for the bitstream.

2. A method of decoding a bitstream of compressed point cloud data to produce a reconstructed point cloud, the reconstructed point cloud being defined in a tree structure having a plurality of nodes having parent-child relationships and that geometrically represent a volumetric space recursively split into sub-volumes containing points of the reconstructed point cloud, wherein occupancy of sub-volumes of a volume is indicated using a bit sequence in which each bit indicates occupancy of a respective sub-volume in a scan order within the volume, which has a plurality of neighbouring volumes, the method comprising:

for a current node associated with a current volume split into first sub-volumes, wherein each first sub-volume corresponds to a child node of the current node, and for at least one bit in a first bit sequence of the current volume,

determining, based on occupancy data for second sub-volumes of at least one neighbouring volume of the current volume, a sub-volume neighbour configuration that depends on an occupancy pattern of a group of second sub-volumes that neighbour a first sub-volume of the current volume that corresponds to the at least one bit in the first bit sequence;

selecting a probability for use in entropy decoding of the at least one bit in the first bit sequence, wherein the probability is selected based at least in part on the sub-volume neighbour configuration; and

entropy decoding said at least one bit based on the probability using a binary entropy decoder to produce a reconstructed bit from the bitstream.

3. The method of claim 1 , wherein determining the sub-volume neighbour configuration involves:

determining a number of the second sub-volumes that neighbour the first sub-volume of the current volume that corresponds to the bit in the bit sequence based on the occupancy data for the sub-volumes of the at least one neighbouring volume of the current volume; and

applying a threshold function to the determined number.

4. The method of claim 1 , wherein the sub-volume neighbour configuration of a given sub-volume in a given volume corresponds to a pattern of occupancy of sub-volumes in neighbouring volumes of the given volume that neighbour the given sub-volume.

5. The method of claim 1 , wherein determining the sub-volume neighbour configuration is based on occupancy data for sub-volumes of those neighbouring volumes of the current volume that have already been coded.

6. The method of claim 1 , wherein selecting the probability is further based on a partial sequence of bits of the bit sequence that have already been coded and/or a neighbouring configuration of the current volume, and wherein the neighbouring configuration of the current volume corresponds to a pattern of occupancy of the neighbouring volumes of the current volume.

7. The method of claim 1 , wherein determining the sub-volume neighbour configuration involves:

determining all those sub-volumes of the at least one neighbouring volume that intersect the first sub-volume of the current volume based on the occupancy data for the sub-volumes of the at least one neighbouring volume of the current volume;

applying respective weight factors to those determined sub-volumes, wherein each weight factor depends on an intersection of the respective determined sub-volume with that sub-volume of the current volume that corresponds to the bit in the bit sequence; and

determining a weighted number of sub-volumes of the at least one neighbouring volume intersecting that sub-volume of the current volume that corresponds to the bit in the bit sequence based on the determined sub-volumes and their respective weight factors.

8. The method to claim 1 , wherein the scan order within the current volume is determined so that, from one sub-volume to a next sub-volume in the scan order, a maximum possible number of neighbouring sub-volumes in already coded neighbouring volumes of the current volume does not increase.

9. The method of claim 1 , wherein the occupancy data of the sub-volumes of a given neighbouring volume of the current volume comprises occupancy statuses for each of the sub-volumes of the given neighbouring volume.

10. The method of claim 1 , wherein the tree structure represents an octree.

11. The method of claim 2 , further comprising decoding a flag from the bitstream, the flag indicating that the probability for use in entropy decoding of at least one bit should be selected at least in part based on the sub-volume neighbour configuration.

12. 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 geometrically represent a volumetric space recursively split into sub-volumes containing points of the point cloud, wherein occupancy of sub-volumes of a volume is indicated using a bit sequence in which each bit indicates occupancy of a respective sub-volume in a scan order within the volume, which has a plurality of neighbouring volumes, the encoder comprising:

a processor;

memory; and

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

determine, for a current node associated with a current volume split into first sub-volumes, a first bit sequence indicating occupancy statuses of the first sub-volumes, wherein each first sub-volume corresponds to a child node of the current node; and

for at least one bit in the first bit sequence of the current volume:

determine, bases on occupancy data for second sub-volumes of at least one neighbouring volume of the current volume, a sub-volume neighbour configuration that depends on an occupancy pattern of a group of the second sub-volumes that neighbour a first sub-volume of the current volume that corresponds to the at least one bit in the first bit sequence;

select a probability for use in entropy encoding of the at least one bit in the first bit sequence, wherein the probability is selected based at least in part on the sub-volume neighbour configuration; and

entropy encode the at least one bit in the first bit sequence based on the probability using a binary entropy encoder to produce encoded binarized data for the bitstream.

13. A decoder for decoding a bitstream of compressed point cloud data to produce a reconstructed point cloud, the reconstructed point cloud being defined in a tree structure having a plurality of nodes having parent-child relationships and that geometrically represent a volumetric space recursively split into sub-volumes containing points of the reconstructed point cloud, wherein occupancy of sub-volumes of a volume is indicated using a bit sequence in which each bit indicates occupancy of a respective sub-volume in a scan order within the volume, which has a plurality of neighbouring volumes, the decoder comprising:

a processor;

memory; and

a decoding application containing instructions executable by the processor that, when executed, cause the processor to be configured such that for a current node associated with a current volume split into first sub-volumes, wherein each first sub-volume corresponds to a child node of the current node, and for at least one bit in a first bit sequence of the current volume, the processor:

determines, based on occupancy data for second sub-volumes of at least one neighbouring volume of the current volume, a sub-volume neighbour configuration that depends on an occupancy pattern of a group of second sub-volumes that neighbour a first sub-volume of the current volume that corresponds to the at least one bit in the first bit sequence;

selects a probability for use in entropy decoding of the at least one bit in the first bit sequence, wherein the probability is selected based at least in part on the sub-volume neighbour configuration; and

entropy decodes said at least one bit based on the probability using a binary entropy decoder to produce a reconstructed bit from the bitstream.

14. The method of claim 2 , wherein determining the sub-volume neighbour configuration involves:

determining a number of second sub-volumes in the group of second sub-volumes based on the occupancy data for the second sub-volumes of the at least one neighbouring volume of the current volume; and

applying a threshold function to the determined number.

15. The method of claim 2 , wherein the sub-volume neighbour configuration of a given sub-volume in a given volume corresponds to a pattern of occupancy of sub-volumes in neighbouring volumes of the given volume that neighbour the given sub-volume.

16. The method of claim 2 , wherein determining the sub-volume neighbour configuration is based on occupancy data for sub-volumes of those neighbouring volumes of the current volume that have already been coded.

17. The method of claim 2 , wherein selecting the probability is further based on a partial sequence of bits of the bit sequence that have already been coded and/or a neighbouring configuration of the current volume, and wherein the neighbouring configuration of the current volume corresponds to a pattern of occupancy of the neighbouring volumes of the current volume.

18. The method of claim 2 , wherein determining the sub-volume neighbour configuration involves:

determining all those sub-volumes of the at least one neighbouring volume that intersect that sub-volume of the current volume that corresponds to the bit in the bit sequence based on the occupancy data for the sub-volumes of the at least one neighbouring volume of the current volume;

applying respective weight factors to the determined sub-volumes, wherein each weight factor depends on an intersection of the respective determined sub-volume with that sub-volume of the current volume that corresponds to the bit in the bit sequence; and

determining a weighted number of sub-volumes of the at least one neighbouring volume intersecting that sub-volume of the current volume that corresponds to the bit in the bit sequence based on the determined sub-volumes and their respective weight factors.

19. The method of claim 2 , wherein the scan order within the current volume is determined so that, from one sub-volume to a next sub-volume in the scan order, a maximum possible number of neighbouring sub-volumes in already coded neighbouring volumes of the current volume does not increase.

20. The method of claim 2 , wherein the occupancy data of the sub-volumes of a given neighbouring volume of the current volume comprises occupancy statuses for each of the sub-volumes of the given neighbouring volume.

21. The method of claim 2 , wherein the tree structure represents an octree.

22. The method of claim 1 , wherein entropy encoding the at least one bit in the first bit sequence comprises using a cascade of binary entropy encoders to produce the encoded binarized data.

23. The method of claim 22 , wherein the cascade of binary entropy encoders includes one binary entropy encoder for each bit in the first bit sequence.

24. The method of claim 1 , wherein the binary entropy encoder employs context-adaptive binary arithmetic coding (CABAC) to encode the at least one bit in the first bit sequence.

Assignments (7)
CORRECTIVE ASSIGNMENT TO CORRECT 12817157 APPLICATION NUMBER PREVIOUSLY RECORDED AT REEL: 064015 FRAME: 0001. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Sep 5, 2023
From: OT PATENT ESCROW, LLC
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064807/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE COVER SHEET AT PAGE 50 TO REMOVE 12817157 PREVIOUSLY RECORDED ON REEL 063471 FRAME 0474. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Sep 5, 2023
From: BLACKBERRY LIMITED
To: OT PATENT ESCROW, LLC
Reel/Frame 064806/0669 →
NUNC PRO TUNC ASSIGNMENT Recorded Jun 16, 2023
From: OT PATENT ESCROW, LLC
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064015/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 27, 2023
From: BLACKBERRY LIMITED
To: OT PATENT ESCROW, LLC
Reel/Frame 063471/0474 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 15, 2021
From: LASSERRE, SÉBASTIEN
To: BLACKBERRY FRANCE S.A.S.
Reel/Frame 056545/0107 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 15, 2021
From: BLACKBERRY UK LIMITED
To: BLACKBERRY LIMITED
Reel/Frame 056545/0196 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 15, 2021
From: BLACKBERRY FRANCE S.A.S.
To: BLACKBERRY UK LIMITED
Reel/Frame 056545/0157 →
Priority Claims (1)
EP 18290113 · Oct 2, 2018 · regional
Continuity (1)
Related Publication 20210350583A1 · Nov 11, 2021
Cited By (2)
US 12,327,386 US 12,718,414