IP Library Granted Patent US 11,356,116
Granted Patent B2
US 11,356,116 · App. 17/267,823 · Granted Jun 7, 2022

Methods and devices for on-the-fly coder mapping updates in point cloud coding

Inventors: Sébastien Lasserre (Thorigné-Fouillard, FR); David Flynn (Darmstadt, DE)
Assignee: BlackBerry Limited
H03M7/6035H03M7/6076
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,356,116
App. No.
17/267,823
Granted
Jun 7, 2022
Kind
B2
Abstract

Methods and systems for encoding and decoding data, such as point cloud data. The methods may include using a coder map to map a range of discrete dependency states to a smaller set of binary coders each having an associated coding probability. The selection of one of the discrete dependency states may be based on a contextual or situational factors, which may include a prediction process, for a particular symbol, such as an occupancy bit. The coder map is updated after each symbol is coded to possibly alter to which binary coder the selected discrete dependency state maps.

Claims (64)

1. A method of encoding a point cloud to generate a bitstream of compressed point cloud data, the point cloud being located within a volume recursively split into sub-volumes and containing the points of the point cloud, wherein occupancy of sub-volumes of the volume is indicated using a bit sequence with each occupancy 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, the method using a plurality of binary coders each having an associated probability, where the associated probabilities are distributed in the range (0, 1), the method comprising:

for each of the occupancy bits of the bit sequence, in turn,

determining a first dependency state for that occupancy bit, where the first dependency state is one of a range of defined dependency states;

identifying, using a coder map that maps each dependency state to a respective one of the binary coders, a first coder to be used in entropy encoding the occupancy bit based on the first dependency state;

entropy encoding the occupancy bit using the first coder;

identifying a second coder based on the first coder and a value of the occupancy bit; and

updating the coder map to map the first dependency state to the second coder.

2. The method claimed in claim 1 , wherein the coder map includes a first look-up table that maps each dependency state to a respective one of the binary coders.

3. The method claimed in claim 1 , wherein identifying a second coder includes:

determining a new probability associated with the first dependency state based on the value of the occupancy bit; and

identifying the second coder from among the plurality of binary coders on the basis that the associated probability of the second coder is closest among the associated probabilities to the new probability.

4. The method claimed in claim 3 , wherein determining a new probability includes determining a new probability based on the associated probability of the first coder, the value of the occupancy bit, and a fixed parameter.

5. The method claimed in claim 4 , wherein determining the new probability is based on the expression:

p new =( Lp i +s )/( L+ 1)

wherein p new is the new probability, p i is the associated probability of the first coder, s is the value of the occupancy bit, and L is the fixed parameter.

6. The method claimed in claim 1 , wherein identifying a second coder includes selecting a second look-up table if the occupancy bit is 0 and a third look-up table if the occupancy bit is 1, and wherein the second look-up table and the third look-up table each respectively map binary coder indices to updated binary coder indices.

7. The method claimed in claim 1 , wherein identifying a first coder includes:

identifying, using the coder map, an intermediate coder index from among M intermediate coder indices, and

identifying, based on the intermediate coder index, the first coder using a true coder map, wherein the number of binary coders is fewer than the M intermediate coder indices.

8. The method claimed in claim 1 , wherein the plurality of binary coders include a set of ε-optimal binary coders.

9. The method claimed in claim 1 , wherein the binary coders are fixed probability binary coders or are adaptive probability binary coders, and wherein the associated probability of each binary coder does not change during the encoding.

10. The method claimed in claim 1 , wherein the first dependency state is based on one or more of an intra-prediction using spatially-related point cloud data, an inter-prediction using temporally-related point cloud data, previously-coded occupancy bits of the bit sequence, and occupancy information regarding previously-coded neighbouring sub-volumes.

11. An encoder for encoding a point cloud to generate a bitstream of compressed point cloud data, the encoder comprising:

a processor;

memory; and

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

for each of the occupancy bits of the bit sequence, in turn,

determine a first dependency state for that occupancy bit, where the first dependency state is one of a range of defined dependency states;

identify, using a coder map that maps each dependency state to a respective one of the binary coders, a first coder to be used in entropy encoding the occupancy bit based on the first dependency state;

entropy encode the occupancy bit using the first coder;

identify a second coder based on the first coder and a value of the occupancy bit; and

update the coder map to map the first dependency state to the second coder.

12. A decoder for decoding a bitstream of compressed point cloud data to produce a reconstructed point cloud, the decoder comprising:

a processor;

memory; and

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

for each of the occupancy bits of the bit sequence, in turn,

determine a first dependency state for that occupancy bit, where the first dependency state is one of a range of defined dependency states;

identify, using a coder map that maps each dependency state to a respective one of the binary coders, a first coder to be used in entropy decoding the occupancy bit based on the first dependency state;

entropy decode the occupancy bit from the bitstream using the first coder;

identify a second coder based on the first coder and a value of the decoded occupancy bit; and

update the coder map to map the first dependency state to the second coder.

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 volume recursively split into sub-volumes and containing the points of the point cloud, wherein occupancy of sub-volumes of the volume is indicated using a bit sequence with each occupancy 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, the method using a plurality of binary coders each having an associated probability, where the associated probabilities are distributed in the range (0, 1), the method comprising:

for each of the occupancy bits of the bit sequence, in turn,

determining a first dependency state for that occupancy bit, where the first dependency state is one of a range of defined dependency states;

identifying, using a coder map that maps each dependency state to a respective one of the binary coders, a first coder to be used in entropy decoding the occupancy bit based on the first dependency state;

entropy decoding the occupancy bit from the bitstream using the first coder;

identifying a second coder based on the first coder and a value of the decoded occupancy bit; and

updating the coder map to map the first dependency state to the second coder.

14. The method claimed in claim 13 , wherein the coder map includes a first look-up table that maps each dependency state to a respective one of the binary coders.

15. The method claimed in claim 13 , wherein identifying a second coder includes:

determining a new probability associated with the first dependency state based on the value of the occupancy bit; and

identifying the second coder from among the plurality of binary coders on the basis that the associated probability of the second coder is closest among the associated probabilities to the new probability.

16. The method claimed in claim 15 , wherein determining a new probability includes determining a new probability based on the associated probability of the first coder, the value of the occupancy bit, and a fixed parameter.

17. The method claimed in claim 16 , wherein determining the new probability is based on the expression:

p new =( Lp i +s )/( L+ 1)

wherein p new is the new probability, p i is the associated probability of the first coder, s is the value of the occupancy bit, and L is the fixed parameter.

18. The method claimed in claim 13 , wherein identifying a second coder includes selecting a second look-up table if the occupancy bit is 0 and a third look-up table if the occupancy bit is 1, and wherein the second look-up table and the third look-up table each respectively map binary coder indices to updated binary coder indices.

19. The method claimed in claim 13 , wherein identifying a first coder includes:

identifying, using the coder map, an intermediate coder index from among M intermediate coder indices, and

identifying, based on the intermediate coder index, the first coder using a true coder map, wherein the number of binary coders is fewer than the M intermediate coder indices.

20. The method claimed in claim 13 , wherein the plurality of binary coders include a set of ε-optimal binary coders.

21. The method claimed in claim 13 , wherein the binary coders are fixed probability binary coders or are adaptive probability binary coders, and wherein the associated probability of each binary coder does not change during the encoding.

22. The method claimed in claim 13 , wherein the first dependency state is based on one or more of an intra-prediction using spatially-related point cloud data, an inter-prediction using temporally-related point cloud data, previously-coded occupancy bits of the bit sequence, and occupancy information regarding previously-coded neighbouring sub-volumes.

Assignments (6)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 12, 2021
From: BLACKBERRY UK LIMITED; BLACKBERRY FRANCE S.A.S.
To: BLACKBERRY LIMITED
Reel/Frame 055244/0537 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 11, 2021
From: FLYNN, DAVID
To: QNX SOFTWARE SYSTEMS GMBH
Reel/Frame 055223/0525 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 11, 2021
From: BLACKBERRY LIMITED
To: BLACKBERRY UK LIMITED
Reel/Frame 055223/0603 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 11, 2021
From: QNX SOFTWARE SYSTEMS GMBH
To: 2236008 ONTARIO INC.
Reel/Frame 055223/0657 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 11, 2021
From: LASSERRE, SÉBASTIEN
To: BLACKBERRY FRANCE S.A.S.
Reel/Frame 055223/0674 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 11, 2021
From: 2236008 ONTARIO INC.
To: BLACKBERRY LIMITED
Reel/Frame 055279/0016 →
Priority Claims (1)
EP 18306304 · Oct 3, 2018 · regional
Continuity (1)
Related Publication 20210167795A1 · Jun 3, 2021