IP Library Granted Patent US 11,381,840
Granted Patent B2
US 11,381,840 · App. 16/909,642 · Granted Jul 5, 2022

Implicit quadtree or binary-tree geometry partition for point cloud coding

Inventors: Xiang Zhang (Sunnyvale, CA); Wen Gao (West Windsor, NJ); Sehoon Yea (Palo Alto, CA); Shan Liu (San Jose, CA)
Assignee: TENCENT AMERICA LLC
H04N19/597H04N19/174H04N19/1883
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,381,840
App. No.
16/909,642
Granted
Jul 5, 2022
Kind
B2
Abstract

A method of point cloud geometry decoding in a point cloud decoder can include receiving a bitstream including a slice of a coded point cloud frame, and reconstructing an octree representing a geometry of points in a bounding box of the slice where a current node of the octree is partitioned with a quadtree (QT) partition or a binary tree (BT) partition.

Claims (98)

1. A method of point cloud geometry decoding in a point cloud decoder, comprising:

receiving a bitstream including a slice of a coded point cloud frame; and

reconstructing an octree representing a geometry of points in a bounding box of the slice where a partition type and a partition direction are determined for a current node of the octree that is partitioned with a quadtree (QT) partition or a binary tree (BT) partition,

wherein the reconstructing the octree includes:

determining a value of a variable, denoted by partitionSkip, specifying the partition type and the partition direction of the current node of the octree.

2. The method of claim 1 , wherein the reconstructing the octree includes:

determining how to partition the current node of the octree using one of the QT partition, the BT partition, or an octree (OT) partition based on a predefined condition.

3. The method of claim 1 , wherein the reconstructing the octree includes:

determining how to partition the current node of the octree using one of the QT partition, the BT partition, or an OT partition based on one or more parameters, one of the one or more parameters being signaled in the bitstream or using a locally preconfigured value.

4. The method of claim 1 , wherein the reconstructing the octree includes:

receiving occupancy bins belonging to an 8-bins occupancy code of the current node of the octree from the bitstream,

where each occupancy bin corresponds to an occupied child node of the current node of the octree,

4 bins belonging to the 8-bins occupancy code are not signaled in the bit stream when the current node of the octree is partitioned with the QT partition, and

6 bins belonging to the 8-bins occupancy code are not signaled in the bitstream when the current node of the octree is partitioned with the BT partition.

5. The method of claim 1 , wherein the reconstructing the octree includes:

receiving one or more syntax elements indicating three-dimension (3D) sizes of the bounding box of the slice of the coded point cloud frame from the bitstream.

6. The method of claim 1 , wherein the variable partitionSkip is represented in binary form with three bits corresponding to x, y, and z directions, respectively, and each bit indicates whether a partition is performed along the respective x, y, or z direction.

7. The method of claim 1 , wherein the reconstructing the octree further includes:

updating a depth in an x, y, or z dimension for a child node of the current node of the octree based on the variable partitionSkip.

8. The method of claim 1 , wherein the reconstructing the octree further includes:

receiving a syntax element indicating the current node of the octree has a single occupied child node;

receiving 1 bin if the variable partitionSkip indicates the BT partition, or 2 bins if the variable partitionSkip indicates the QT partition; and

determining an occupancy map identifying occupied child nodes of the current node of the octree based on the received 1 or 2 bins.

9. The method of claim 1 , wherein the reconstructing the octree further includes:

during a parsing process over the bitstream to determine a syntax element of an occupancy map identifying occupied child nodes of the current node of the octree, determining a bin of the syntax element of the occupancy map is skipped based on the variable partitionSkip.

10. The method of claim 1 , wherein the reconstructing the octree further includes:

for a child node of the current node of the octree coded in a direct mode, determining a log 2 size for each of x, y, and z directions, denoted dx, dy, and dz, respectively, for the child node based on the variable partitionSkip, wherein positions of points in the child node are coded by fixed-length coding with (dx, dy, dz) bits, respectively.

11. The method of claim 1 , wherein the reconstructing the octree further includes:

receiving a syntax element from the bitstream indicating one of the following parameters:

a maximal number of implicit QT and BT partitions performed before OT partitions,

a minimal size of implicit QT and BT partitions that prevents implicit QT and BT partitions of a node when all dimensions of the node are smaller than or equal to the minimal size, or

a priority indicating which of implicit QT or BT partition is performed first when both QT and BT partitions are allowed.

12. The method of claim 1 , wherein the reconstructing the octree further includes:

in response to that an octree depth of the current node is smaller than a parameter K, or a smallest log 2 size among log 2 sizes in x, y, and z directions of the current node is equal to a parameter M, determining the partition type and the partition direction for partitioning the current node according to conditions in the following table:

Partition type

QT along x-y axes

QT along x-z axes

QT along y-z axes

and direction

Condition

d y < d x = d z

d y < d x = d z

d x < d y = d z

Partition type

BT along x axis

BT along y axis

BT along z axis

and direction

Condition

d y < d x and d z < d x

d x < d y and d z < d y

d x < d z and d y < d z ,

where:

the parameter K is an integer in a range of 0≤K≤max (d x ,d y ,d z )−min (d x ,d y , d z ), and defines maximum times of implicit QT and BT partitions that are allowed before OT partitions,

the parameter M is an integer in a range of 0≤M≤min (d x ,d y ,d z ), defines a minimal size of implicit QT and BT partitions, and prevents implicit QT and BT partitions of a node when all dimensions of the node are smaller than or equal to M, and

d x , d y , and d z are the log 2 sizes of the current node in x, y, and z directions, respectively.

13. The method of claim 1 , wherein the reconstructing the octree further includes:

in response to that an octree depth of the current node is smaller than a parameter K, or a smallest log 2 size among log 2 sizes in x, y, and z directions of the current node is equal to a parameter M, determining a variable partitionSkip as follows,

if (dx <MaxNodeDimLog2),

 partitionSkip |= 4;

if (dy <MaxNodeDimLog2),

 partitionSkip |= 2;

if (dz <MaxNodeDimLog2),

 partitionSkip |= 1

where:

the variable partitionSkip is represented in binary form with three bits, and specifies the partition type and the partition direction of the current node of the octree,

the parameter K is an integer in a range of 0≤K≤max (d x ,d y ,d z )−min (d x ,d y ,d z ) and defines maximum times of implicit QT and BT partitions that are allowed before OT partitions,

the parameter M is an integer in a range of 0≤M≤min (d x ,d y ,d z ), defines a minimal size of implicit QT and BT partitions, and prevents implicit QT and BT partitions of a node when all dimensions of the node are smaller than or equal to M,

dx, dy, and dz are log 2 sizes of the current node in x, y, and z directions, respectively,

MaxNodeDimLog2 represents the maximum log 2 size among dx, dy, and dz, and

the operator |= represents a compound bitwise OR operation.

14. The method of claim 1 , wherein the reconstructing the octree further includes:

receiving from the bitstream a flag indicating whether implicit geometry partition is enabled for a sequence of point cloud frames or the slice of the coded point cloud frame.

15. The method of claim 1 , wherein the reconstructing the octree includes:

determining a planar mode is ineligible at an x, y, or z direction where a partition is not performed for the current node.

16. The method of claim 1 , wherein the reconstructing the octree includes:

performing a geometry octree occupancy parsing process, where for a bin having an index of binIdx in an occupancy code, a variable binIsInferred is set according to the following:

if either of the following conditions are true, binIsInferred is set equal to 1:

(1) a variable NeighbourPattern is equal to 0 and a number of previously decoded 1-valued bins is less than or equal to (binIdx+minOccupied−maxOccupied), or

(2) the variable NeighbourPattern is not equal to 0, binIdx is equal to maxOccupied−1 and values of all previous decoded bins are zero,

where minOccupied=2, and maxOccupied=8 if an OT partition is applied, maxOccupied=4 if the QT partition is applied, maxOccupied=2 if the BT partition is applied, and

otherwise, if neither of the above conditions are true, binIsInferred is set equal to 0.

17. The method of claim 1 , wherein the reconstructing the octree further includes:

updating a parameter K indicating a maximal number of implicit QT and BT partitions before OT partitions, and a parameter M indicating a minimal size of implicit QT and BT partitions that prevents implicit QT and BT partitions of a node when all dimensions of the node are smaller than or equal to the minimal size according to:

if K is greater than a difference between a maximum root node log 2 dimension and a minimum root node log 2 dimension of the slice, K is changed to a difference between the maximum root node log 2 dimension and the minimum root node log 2 dimension of the slice;

if M is greater than the minimum root node log 2 dimension of the slice, M is changed to the minimum root node log 2 dimension of the slice;

if the maximum root node log 2 dimension and the minimum root node log 2 dimension of the slice are equal, M is changed to 0; and

if a trisoup mode is enabled, K is changed to the difference between the maximum root node log 2 dimension and the minimum root node log 2 dimension of the slice, and M is changed to the minimum root node log 2 dimension of the slice.

18. An apparatus of point cloud geometry decoding, comprising circuitry configured to:

receive a bitstream including a slice of a coded point cloud frame; and

reconstruct an octree representing a geometry of points in a bounding box of the slice where a partition type and a partition direction are determined for a current node of the octree that is partitioned with a quadtree (QT) partition, or a binary tree (BT) partition,

wherein the reconstructing the octree includes:

determining a value of a variable, denoted by partitionSkip, specifying the partition type and the partition direction of the current node of the octree.

19. A non-transitory computer-readable medium storing instructions that, when executed by a processor, cause the processor to perform a method of point cloud geometry decoding, the method comprising:

receiving a bitstream including a slice of a coded point cloud frame; and

reconstructing an octree representing a geometry of points in a bounding box of the slice a partition type and a partition direction are determined for a current node of the octree that is partitioned with a quadtree (QT) partition or a binary tree (BT) partition,

wherein the reconstructing the octree includes:

determining a value of a variable, denoted by partitionSkip, specifying the partition type and the partition direction of the current node of the octree.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 23, 2020
From: ZHANG, XIANG; GAO, WEN; YEA, SEHOON; LIU, SHAN
To: TENCENT AMERICA LLC
Reel/Frame 053017/0054 →
Continuity (4)
Provisional Application 62910387 · Oct 3, 2019
Provisional Application 62904384 · Sep 23, 2019
Provisional Application 62867063 · Jun 26, 2019
Related Publication 20200413096A1 · Dec 31, 2020
Cited By (2)
US 12,277,739 US 12,423,871