IP Library › Granted Patent US 12,267,527
Granted Patent B2
US 12,267,527 · App. 17/810,106 · Granted Apr 1, 2025

Occupancy coding using inter prediction in geometry point cloud compression

Inventors: Luong Pham Van (San Diego, CA); Geert Van der Auwera (San Diego, CA); Adarsh Krishnan Ramasubramonian (Irvine, CA); Marta Karczewicz (San Diego, CA)
Assignee: QUALCOMM Incorporated
H04N19/597H04N19/105H04N19/109H04N19/13H04N19/159H04N19/167H04N19/172H04N19/196
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,267,527
App. No.
17/810,106
Granted
Apr 1, 2025
Kind
B2
Abstract

An example device for coding point cloud data includes a memory configured to store point cloud data; and one or more processors implemented in circuitry and configured to: determine whether inter prediction data is coded for a current node of an octree of the point cloud data; determine whether planar mask data is coded for the current node; when at least one of the inter prediction data or the planar mask data is coded for the current node, avoid coding a single occupancy value for the current node, the single occupancy value indicating whether only a single sub-node of the current node includes a point; and code the current node. The processors may also be configured to determine a context for entropy coding the planar mask data according to planar mask data for a collocated node in a reference frame when the planar mask data is coded.

Claims (76)

1. A device for coding point cloud data, the device comprising:

a memory configured to store point cloud data; and

a processing system comprising one or more processors implemented in circuitry, the processing system being configured to:

determine that inter prediction data is coded for point data of a current node of an octree of the point cloud data;

in response to the inter prediction data being coded for the point data of the current node, avoid coding a single occupancy value for the point data of the current node, the single occupancy value indicating whether only a single sub-node of the current node includes one or more points; and

code the point data of the current node using the inter prediction data.

2. The device of claim 1 , wherein the current node comprises a first node, the single occupancy value comprises a first single occupancy value, and wherein the processing system is further configured to:

determine that planar mask data is coded for a second node of the octree of the point cloud data;

in response to the planar mask data being coded for the second node:

avoid coding a second single occupancy value for the second node; and

code the second node using the planar mask data.

3. The device of claim 2 , wherein when the inter prediction data and the planar mask data are not coded for a third node of the octree of the point cloud data, the processing system is configured to:

code the single occupancy value for the third node; and

code the third node using the single occupancy value.

4. The device of claim 1 , wherein the processing system is configured to determine whether to code the single occupancy value according to numPlanarAxes <3∥(!NeighbourPattern &&(!inter_pred_Occ∥(mask_planar[0]|mask_planar[1]|mask_planar[2]))&&!numNonPlanarAxes, wherein numPlanarAxes indicates a number of planar axes for the current node, “∥” represents a bitwise or operator, “!” represents a not operator, NeighbourPattern represents whether occupancy of neighboring nodes to the current node can be used to code occupancy of the current node, “&&” represents a bitwise and operator, inter_pred_Occ indicates whether a collocated node in an inter prediction reference frame for the current node is occupied by at least one point, mask_planar represents planar mask data for the current node, and numNonPlanarAxes represents a number of non-planar axes for the current node.

5. The device of claim 2 , wherein the processing system is configured to determine a context for entropy coding the planar mask data according to planar mask data for a collocated node to the second node in a reference frame.

6. The device of claim 5 , wherein the planar mask data includes an indication of a location of a plane in a direction, and wherein the processing system is configured to calculate a context index for coding the indication according to (3*axisIdx+(RefPlane[axisIdx]+1)), wherein axisIdx indicates the direction of the plane, and RefPlane[axisIdx] indicates a location of a corresponding plane for the collocated node in the direction.

7. The device of claim 1 , wherein the processing system is configured to decode the current node.

8. The device of claim 1 , wherein the processing system is configured to encode the current node.

9. A method of coding point cloud data, the method comprising:

determining that inter prediction data is coded for point data of a current node of an octree of point cloud data;

in response to the inter prediction data being coded for the point data of the current node, avoiding coding a single occupancy value for the point data of the current node, the single occupancy value indicating whether only a single sub-node of the current node includes one or more points; and

coding the point data of the current node using the inter prediction data.

10. The method of claim 9 , wherein the current node comprises a first node and the single occupancy value comprises a first single occupancy value, the method further comprising:

determining that planar mask data is coded for a second node of the octree of the point cloud data;

in response to the planar mask data being coded for the second node:

avoiding coding a second single occupancy value for the second node; and

coding the second node using the planar mask data.

11. The method of claim 10 , wherein when the inter prediction data and the planar mask data are not coded for a third node of the octree of the point cloud data, the method includes:

coding the single occupancy value for the third node; and

coding the third node using the single occupancy value.

12. The method of claim 9 , further comprising determining whether to code the single occupancy value according to numPlanarAxes <3∥(!NeighbourPattern &&(!inter_pred_Occ∥(mask_planar[0]|mask_planar[1]|mask_planar[2]) )&&!numNonPlanarAxes, wherein numPlanarAxes indicates a number of planar axes for the current node, “∥” represents a bitwise or operator, “!” represents a not operator, NeighbourPattern represents whether occupancy of neighboring nodes to the current node can be used to code occupancy of the current node, “&&” represents a bitwise and operator, inter_pred_Occ indicates whether a collocated node in an inter prediction reference frame for the current node is occupied by at least one point, mask_planar represents planar mask data for the current node, and numNonPlanarAxes represents a number of non-planar axes for the current node.

13. The method of claim 11 , further comprising determining a context for entropy coding the planar mask data according to planar mask data for a collocated node to the second node in a reference frame.

14. The method of claim 13 , wherein the planar mask data includes an indication of a location of a plane in a direction, the method further comprising calculating a context index for coding the indication according to (3*axisIdx+(RefPlane[axisIdx]+1)), wherein axisIdx indicates the direction of the plane, and RefPlane[axisIdx] indicates a location of a corresponding plane for the collocated node in the direction.

15. The method of claim 9 , wherein coding the current node comprises decoding the current node.

16. The method of claim 9 , wherein coding the current node comprises encoding the current node.

17. A computer-readable storage medium having stored thereon instructions that, when executed, cause a processor to:

determine that inter prediction data is coded for point data of a current node of an octree of point cloud data;

in response to the inter prediction data being coded for the point data of the current node, avoid coding a single occupancy value for the point data of the current node, the single occupancy value indicating whether only a single sub-node of the current node includes one or more points; and

code the current node using the inter prediction data.

18. The computer-readable storage medium of claim 17 , wherein the current node comprises a first node, the single occupancy value comprises a first single occupancy value, further comprising instructions that cause the processor to:

determine that planar mask data is coded for a second node of the octree of the point cloud data;

in response to the planar mask data being coded for the second node:

avoid coding a second single occupancy value for the second node; and

code the second node using the planar mask data.

19. The computer-readable storage medium of claim 18 , further comprising instructions that cause the processor to, when the inter prediction data and the planar mask data are not coded for a third node of the octree of the point cloud data:

code the single occupancy value for the third node; and

code the third node using the single occupancy value.

20. The computer-readable storage medium of claim 17 , further comprising instructions that cause the processor to determine whether to code the single occupancy value according to numPlanarAxes numPlanarAxes <3∥(!NeighbourPattern &&(!inter_pred_Occ∥(mask_planar[0]|mask_planar[1]|mask_planar[2]))&&!numNonPlanarAxes, wherein numPlanarAxes indicates a number of planar axes for the current node, “∥” represents a bitwise or operator, “!” represents a not operator, NeighbourPattern represents whether occupancy of neighboring nodes to the current node can be used to code occupancy of the current node, “&&” represents a bitwise and operator, inter_pred_Occ indicates whether a collocated node in an inter prediction reference frame for the current node is occupied by at least one point, mask_planar represents planar mask data for the current node, and numNonPlanarAxes represents a number of non-planar axes for the current node.

21. The computer-readable storage medium of claim 18 , further comprising instructions that cause the processor to determine a context for entropy coding the planar mask data according to planar mask data for a collocated node to the second node in a reference frame.

22. The computer-readable storage medium of claim 21 , wherein the planar mask data includes an indication of a location of a plane in a direction, further comprising instructions that cause the processor to calculate a context index for coding the indication according to (3*axisIdx+(RefPlane[axisIdx]+1)), wherein axisIdx indicates the direction of the plane, and RefPlane[axisIdx] indicates a location of a corresponding plane for the collocated node in the direction.

23. A device for coding point cloud data, the device comprising:

means for determining that inter prediction data is coded for point data of a current node of an octree of point cloud data;

means for avoiding coding a single occupancy value for the point data of the current node, the single occupancy value indicating whether only a single sub-node of the current node includes one or more points, in response to the inter prediction data being coded for the point data of the current node; and

means for coding the point data of the current node using the inter prediction data.

24. The device of claim 23 , further comprising:

means for coding the single occupancy value for a second node when the inter prediction data and planar mask data are not coded for the second node; and

means for coding the second node using the single occupancy value when the inter prediction data and the planar mask data are not coded for the second node.

25. The device of claim 23 , further comprising means for determining whether to code the single occupancy value according to numPlanarAxes <3∥(!NeighbourPattern &&(!inter_pred_Occ∥(mask_planar[0]|mask_planar[1]|mask_planar[2]) )&&!numNonPlanarAxes, wherein numPlanarAxes indicates a number of planar axes for the current node, “∥” represents a bitwise or operator, “!” represents a not operator, NeighbourPattern represents whether occupancy of neighboring nodes to the current node can be used to code occupancy of the current node, “&&” represents a bitwise and operator, inter_pred_Occ indicates whether a collocated node in an inter prediction reference frame for the current node is occupied by at least one point, mask_planar represents planar mask data for the current node, and numNonPlanarAxes represents a number of non-planar axes for the current node.

26. The device of claim 24 , further comprising means for determining a context for entropy coding the planar mask data according to planar mask data for a collocated node to the second node in a reference frame.

27. The device of claim 26 , wherein the planar mask data includes an indication of a location of a plane in a direction, further comprising means for calculating a context index for coding the indication according to (3*axisIdx+(RefPlane[axisIdx]+1)), wherein axisIdx indicates the direction of the plane, and RefPlane[axisIdx] indicates a location of a corresponding plane for the collocated node in the direction.

28. The device of claim 1 , wherein the current node comprises a first node of the octree of the point cloud data, wherein the single occupancy value comprises a first single occupancy value, and wherein the processing circuitry is further configured to:

determine that inter prediction data is not coded for a second node of the point cloud data;

determine not to generate planar mask data for the second node;

in response to the inter prediction data not being coded and the determination not to generate the planar mask data for the second node, code a second single occupancy value for the second node, the second single occupancy value indicating whether only a single sub-node of the second node includes one or more points; and

code the second node using the second single occupancy value.

29. The method of claim 9 , wherein the current node comprises a first node of the octree of the point cloud data, wherein the single occupancy value comprises a first single occupancy value, the method further comprising:

determining that inter prediction data is not coded for a second node of the point cloud data;

determining not to generate planar mask data for the second node;

in response to the inter prediction data not being coded and the determination not to generate the planar mask data for the second node, coding a second single occupancy value for the second node, the second single occupancy value indicating whether only a single sub-node of the second node includes one or more points; and

coding the second node using the second single occupancy value.

30. The computer-readable storage medium of claim 17 , wherein the current node comprises a first node of the octree of the point cloud data, wherein the single occupancy value comprises a first single occupancy value, further comprising instructions that cause the processor to:

determine that inter prediction data is not coded for a second node of the point cloud data;

determine not to generate planar mask data for the second node;

in response to the inter prediction data not being coded and the determination not to generate the planar mask data for the second node, code a second single occupancy value for the second node, the second single occupancy value indicating whether only a single sub-node of the second node includes one or more points; and

code the second node using the second single occupancy value.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 9, 2023
From: PHAM VAN, LUONG; VAN DER AUWERA, GEERT; RAMASUBRAMONIAN, ADARSH KRISHNAN; KARCZEWICZ, MARTA
To: QUALCOMM INCORPORATED
Reel/Frame 063583/0471 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 18, 2022
From: PHAM VAN, LUONG; VAN DER AUWERA, GEERT; RAMASUBRAMONIAN, ADARSH KRISHNAN; KARCZEWICZ, MARTA
To: QUALCOMM INCORPORATED
Reel/Frame 060840/0871 →
Continuity (2)
Provisional Application 63217648 · Jul 1, 2021
Related Publication 20230018907A1 · Jan 19, 2023
References Cited (16)
US 20200242811A1 · Wang · 2020 [cited by examiner]
US 20200288161A1 · Wang · 2020 [cited by examiner]
US 20210084333A1 · Zhang · 2021 [cited by examiner]
US 20210211734A1 · Ray · 2021 [cited by examiner]
US 20220343556A1 · Iguchi · 2022 [cited by examiner]
US 20230118907A1 · Iguchi · 2023 [cited by examiner]
US 20230239501A1 · Oh · 2023 [cited by examiner]
US 20230316581A1 · Lee · 2023 [cited by examiner]
ISO/IEC 23090-9:2020(E): “Geometry-Based Point Cloud Compression”, CH, 1214 Vernier, Geneva, © ISO/IEC 2020 (Year: 2020). [cited by examiner]
Shishir Subramanyam (hereinafter Subramanyam); “Inter frame compression for 3D dynamic point clouds”, Oct. 2017 (Year: 2017). [cited by examiner]
“G-PCC Future Enhancements”, 130. MPEG Meeting, Apr. 20, 2020-Apr. 24, 2020, Alpbach, Motion Picture Expert Group or ISO/IEC JTC1/SC29/WG11, No. n19328, Jul. 21, 2020, XP030289575. [cited by applicant]
International Search Report and Written Opinion—PCT/US2022/073349—ISA/EPO—Oct. 17, 2022, 13 Pages. [cited by applicant]
ISO/IEC 23090-9:2020(E): “Information Technology—MPEG-1, Coded Representation of Immersive Media—Part 9: Geometry-based Point Cloud Compression”, 132, MPEG Meeting, Oct. 12, 2020-Oct. 16, 2020, Motion Picture Expert Gro… [cited by applicant]
ITU-T H.265: “Series H: Audiovisual and Multimedia Systems Infrastructure of Audiovisual Services—Coding of Moving Video”, High Efficiency Video Coding, The International Telecommunication Union, Jun. 2019, 696 Pages. [cited by applicant]
Van L. P., et al., “[G-PCC] [EE13.2 Test 1]: InterEM with Planar Mode Enabled”, 135. MPEG Meeting, Jul. 12, 2021-Jul. 16, 2021, Online, Motion Picture Expert Group or ISO/IEC JTC1/SC29/WG11, No. m57286, Jul. 3, 2021, 8 … [cited by applicant]
Van L. P., et al., “Improved global motion estimation for G-PCC”, 133. MPEG Meeting, Jan. 11, 2021-Jan. 15, 2021, Online, Motion Picture Expert Group or ISO/IEC JTC1/SC29/WG11, No. m56113, Jan. 12, 2021, 12 Pages, XP030… [cited by applicant]