IP Library Granted Patent US 10,861,196
Granted Patent B2
US 10,861,196 · App. 16/130,949 · Granted Dec 8, 2020

Point cloud compression

Inventors: Khaled Mammou (Vancouver, CA); Fabrice A. Robinet (Sunnyvale, CA)
Assignee: Apple Inc.
G06T9/40G06T3/4007G06T7/50G06T17/005H04N19/186H04N19/45H04N19/593H04N19/90H04N19/91H04N19/96G06T2207/10028
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 10,861,196
App. No.
16/130,949
Filed
Sep 13, 2018
Granted
Dec 8, 2020
Kind
B2
Examiner
BAYAT, ALI
Art Unit
2664
USPC
382/232
Abstract

A system comprises an encoder configured to compress attribute information for a point cloud and/or a decoder configured to decompress compressed attribute information for the point cloud. Attribute values for at least one starting point are included in a compressed attribute information file and attribute correction values used to correct predicted attribute values are included in the compressed attribute information file. Attribute values are predicted based, at least in part, on attribute values of neighboring points and distances between a particular point for whom an attribute value is being predicted and the neighboring points. The predicted attribute values are compared to attribute values of a point cloud prior to compression to determine attribute correction values. A decoder follows a similar prediction process as an encoder and corrects predicted values using attribute correction values included in a compressed attribute information file.

Claims (67)

1. A system comprising:

one or more sensors configured to capture a plurality of points that make up a point cloud, wherein respective ones of the points comprises spatial information for the point and attribute information for the point; and

an encoder configured to compress the attribute information for the points, wherein to compress the attribute information, the encoder is configured to:

assign an attribute value to at least one point of the point cloud based, at least in part, on the attribute information included in the captured point cloud for the point; and

for each of respective other ones of the points of the point cloud:

identify a set of neighboring points;

determine a predicted attribute value for the respective point based, at least in part, on predicted or assigned attributes values for the neighboring points and respective distances between the respective point and respective ones of the neighboring points; and

determine, based, at least in part, on comparing the predicted attribute value for the respective point to the attribute information for the point included in the captured point cloud, an attribute correction value for the point; and

encode the compressed attribute information, wherein the compressed attribute information comprises:

the assigned attribute value for the at least one point; and

data indicating, for the respective other ones of the points, the determined attribute correction values.

2. The system of claim 1 , wherein to determine, for each of the respective other ones of the points, the predicted attribute value, the encoder is further configured to:

weight attribute values of neighboring points closer to the respective point more heavily than attribute values of neighboring points that are further away from the respective point.

3. The system of claim 2 , wherein the encoder is further configured to:

determine a minimum spanning tree for the points of the point cloud,

wherein to identify the set of neighboring points, the encoder is configured to identify a set of nearest neighboring points according to the minimum spanning tree.

4. The system of claim 3 , wherein the encoder is configured to:

evaluate the respective other ones of the points of the point cloud according to an order determined based, at least in part, on the minimum spanning tree; and

encode the determined attribute correction values for the respective other ones of the points according to the order.

5. The system of claim 1 , wherein the encoder is configured to encode the data indicating, for the respective other ones of the points, the attribute correction value according to an arithmetic compression algorithm.

6. The system of claim 1 , wherein the encoder is configured to encode the data indicating, for the respective other ones of the points, the attribute correction value according to a Golomb compression algorithm.

7. The system of claim 1 , wherein the encoder stores a plurality of attribute correction value encoding contexts, wherein different ones of the attribute correction value encoding contexts are selected for encoding an attribute correction value based, at least in part, on a number of symbols included in the attribute correction value.

8. A method of compressing attribute information for a point cloud comprising:

assigning an attribute value to at least one point of the point cloud based, at least in part, on attribute information for the at least one point included in the point cloud, wherein the point cloud comprises spatial information for a plurality of points and attribute information specifying one or more attributes for respective ones of the plurality of points; and

for each of respective other ones of the points of the point cloud:

identifying a set of neighboring points;

determining a predicted attribute value for the point based, at least in part, on predicted or assigned attribute values for the neighboring points and respective distances between the point and respective ones of the neighboring points; and

determining, based, at least in part, on comparing the predicted attribute value for the point to the attribute information for the point, an attribute correction value for the point; and

encoding compressed attribute information for the point cloud comprising:

the assigned attribute value for the at least one point; and

data indicating, for the respective other ones of the points, the determined attribute correction values.

9. The method of claim 8 , wherein a number of neighboring points to identify, for the set of nearest neighboring points, is a configurable parameter, and

wherein said encoding the compressed attribute information for the compressed point cloud further comprises encoding configuration information indicating the number of nearest neighboring points to include in the set of identified nearest neighboring points.

10. The method of claim 9 , wherein said determining the predicted attribute value for the point comprises:

determining respective distances between the point and respective ones of the neighboring points of the set of nearest neighboring points,

wherein the attribute value for the point is determined based, at least in part, on an inverse distance interpolation method, wherein attribute values of neighboring points closer to the point are weighted more heavily than attribute values of neighboring points that are further away from the point.

11. The method of claim 10 , further comprising:

determining a minimum spanning tree for the points of the point cloud,

wherein said identifying the set of neighboring points comprises identifying a set of nearest neighboring points according to the minimum spanning tree.

12. The method of claim 11 , wherein for the respective other ones of the points of the point cloud, the respective points are evaluated according to a processing order determined based, at least in part, on the minimum spanning tree, wherein the minimum spanning tree is traversed according to minimum distances between successive points being evaluated.

13. The method of claim 11 , further comprising:

encoding a K-D tree to compress spatial information of the point cloud.

14. The method of claim 13 , wherein at least some of the points of the point cloud comprise attribute information specifying more than one attribute, wherein encoding the compressed attribute information further comprises:

encoding data indicating an attribute correction value for a first attribute of the point according to an encoding context selected based, at least in part, on a number of symbols included in the attribute correction value for the first attribute; and

encoding data indicating one or more additional attributes of the point according to the selected encoding context.

15. The method of claim 8 , wherein said encoding compressed attribute information comprises:

encoding positive values as either even or odd numbers; and

encoding negative values as either even or odd numbers,

wherein positive and negative values are not both encoded as even values or odd values.

16. A non-transitory computer-readable medium storing program instructions that, when executed by one or more processors, cause the one or more processors to implement an encoder configured to:

assign an attribute value to at least one point of the point cloud based, at least in part, on attribute information for the at least one point included in the point cloud, wherein the point cloud comprises spatial information for a plurality of points and attribute information specifying one or more attributes for respective ones of the plurality of points; and

for each of respective other ones of the points of the point cloud:

identify a set of neighboring points;

determine a predicted attribute value for the point based, at least in part, on predicted or assigned attribute values for the neighboring points and respective distances between the point and respective ones of the neighboring points; and

determine, based, at least in part, on comparing the predicted attribute value for the point to the attribute information for the point, an attribute correction value for the point; and

encode compressed attribute information for the point cloud comprising:

the assigned attribute value for the at least one point; and

data indicating, for the respective other ones of the points, the determined attribute correction values.

17. The non-transitory computer-readable medium of claim 16 , wherein a number of neighboring points to identify, for the set of nearest neighboring points, is a configurable parameter, and

wherein said encode the compressed attribute information for the compressed point cloud further comprises encode configuration information indicating the number of nearest neighboring points to include in the set of identified nearest neighboring points.

18. The non-transitory computer-readable medium of claim 17 , wherein said determine the predicted attribute value for the point comprises:

determine respective distances between the point and respective ones of the neighboring points of the set of nearest neighboring points,

wherein the attribute value for the point is determined based, at least in part, on an inverse distance interpolation method, wherein attribute values of neighboring points closer to the point are weighted more heavily than attribute values of neighboring points that are further away from the point.

19. The non-transitory computer-readable medium of claim 18 , wherein the encoder is further configured to:

determine a minimum spanning tree for the points of the point cloud,

wherein said identify the set of neighboring points comprises identifying a set of nearest neighboring points according to the minimum spanning tree.

20. The non-transitory computer-readable medium of claim 19 , wherein for the respective other ones of the points of the point cloud, the respective points are evaluated according to a processing order determined based, at least in part, on the minimum spanning tree, wherein the minimum spanning tree is traversed according to minimum distances between successive points being evaluated.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 13, 2018
From: MAMMOU, KHALED; ROBINET, FABRICE A.
To: APPLE INC.
Reel/Frame 046872/0858 →
Continuity (9)
Provisional Application 62558795 · Sep 14, 2017
Provisional Application 62560164 · Sep 18, 2017
Provisional Application 62569602 · Oct 8, 2017
Provisional Application 62655759 · Apr 10, 2018
Provisional Application 62655764 · Apr 10, 2018
Provisional Application 62655768 · Apr 10, 2018
Provisional Application 62696295 · Jul 10, 2018
Provisional Application 62689021 · Jun 22, 2018
Related Publication 20190080483A1 · Mar 14, 2019
Cited By (15)
US 12,191,887 US 12,219,141 US 12,225,197 US 12,262,013 US 12,289,450 US 12,335,537 US 12,363,343 US 12,401,822 US 12,439,083 US 12,456,230 US 12,511,791 US 12,632,993 US 12,684,126 US 12,688,619 US 12,718,414