IP Library › Granted Patent US 11,869,223
Granted Patent B2
US 11,869,223 · App. 17/791,692 · Granted Jan 9, 2024

In-tree geometry quantization of point clouds

Inventors: David Flynn (Cupertino, CA); Khaled Mammou (Cupertino, CA); Fabrice A. Robinet (Cupertino, CA)
Assignee: Apple Inc.
G06T9/40G06T17/005G06T2210/56
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,869,223
App. No.
17/791,692
Granted
Jan 9, 2024
Kind
B2
Abstract

An example method includes receiving ( 502 ) a plurality of points that represent a point cloud; representing a position of the point in each dimension of a three-dimensional space as a sequence of bits ( 504 ), where the position of the point is encoded according to a tree data structure; partitioning ( 506 ) at least one of the sequences of bits into a first portion of bits and a second portion of bits; quantizing ( 508 ) each of the second portions of bits according to a quantization step size, where the quantization step size is determined according to an exponential function having a quantization parameter value as an input and the quantization step size as an output; and generating ( 510 ) a data structure representing the point cloud and including the quantized second portions of bits.

Claims (44)

1. A method comprising:

receiving, by a computer system, a data structure representing a plurality of points in a point cloud in three-dimensional space;

decoding, by the computer system, the data structure to determine one or more sequences of bits, wherein each of the sequences of bits represents a position of one of the points in one of the dimensions of the three-dimensional space, and wherein the data structure is decoded according to a tree data structure;

partitioning, by the computer system, at least one of the sequences of bits into a first portion of bits and a second portion of bits;

scaling, by the computer system, each of the second portions of bits according to a quantization step size, wherein the quantization step size is determined according to an exponential function having a quantization parameter value as an input and the quantization step size as an output;

generating, by the computer system, a reconstructed point position of a first point of the plurality of points by combining, for the first point, the first portion of bits and the scaled second portion of bits corresponding to the first point; and

outputting, by the computer system, the reconstructed point position of the first point.

2. The method of claim 1 , wherein the tree data structure is an octree.

3. The method of claim 1 , wherein partitioning at least one of the sequences of bits comprises:

partitioning at least one of the sequences of bits such that each of the first portions of bits includes the first ci bits from a corresponding one of the sequences of bits, wherein d is a scaling depth of the tree data structure, and

partitioning at least one of the sequences of bits such that each of the second portions of bits includes a remainder of bits from the corresponding one of the sequences of bits.

4. The method of claim 1 , wherein scaling each of the second portions of bits comprises multiplying a numerical value indicated by each of the second portions of bits by the quantization step size.

5. The method of claim 1 , wherein at least one of the quantization step size or the quantization parameter value is indicated in the data structure.

6. The method of claim 1 , wherein the exponential function is selected such that, for positive integer quantization parameter values, a majority of the quantization step sizes outputted by the exponential function are integers.

7. The method of claim 1 , wherein the exponential function is selected such that, for positive integer quantization parameter values, N of the quantization step sizes outputted by the exponential function are non-integers, wherein N=(p×log 2 p)−p+1, and wherein p is the number of quantization parameters per doubling of the quantization step size.

8. The method of claim 1 , wherein the exponential function is QS=(1+0.125×mod [QP,8])×2 └QP/8┘ , wherein QS is the quantization step size, and QP is the quantization parameter value.

9. The method of claim 1 , further comprising rendering three-dimensional content based on the reconstructed point position of the first point, wherein the three-dimensional content is at least one of virtual reality content or augmented reality content.

10. A device comprising:

one or more processors; and

memory storing instructions that when executed by the one or more processors, cause the one or more processors to perform operations comprising:

receiving a data structure representing a plurality of points in a point cloud in three-dimensional space;

decoding the data structure to determine one or more sequences of bits, wherein each of the sequences of bits represents a position of one of the points in one of the dimensions of the three-dimensional space, and wherein the data structure is decoded according to a tree data structure;

partitioning at least one of the sequences of bits into a first portion of bits and a second portion of bits;

scaling each of the second portions of bits according to a quantization step size, wherein the quantization step size is determined according to an exponential function having a quantization parameter value as an input and the quantization step size as an output;

generating a reconstructed point position of a first point of the plurality of points by combining, for the first point, the first portion of bits and the scaled second portion of bits corresponding to the first point; and

outputting the reconstructed point position of the first point.

11. The device of claim 10 , wherein the tree data structure is an octree.

12. The device of claim 10 , wherein partitioning at least one of the sequences of bits comprises:

partitioning at least one of the sequences of bits such that each of the first portions of bits includes the first d bits from a corresponding one of the sequences of bits, wherein d is a scaling depth of the tree data structure, and

partitioning at least one of the sequences of bits such that each of the second portions of bits includes a remainder of bits from the corresponding one of the sequences of bits.

13. The device of claim 10 , wherein scaling each of the second portions of bits comprises multiplying a numerical value indicated by each of the second portions of bits by the quantization step size.

14. The device of claim 10 , wherein at least one of the quantization step size or the quantization parameter value is indicated in the data structure.

15. The device of claim 10 , wherein the exponential function is selected such that, for positive integer quantization parameter values, a majority of the quantization step sizes outputted by the exponential function are integers.

16. The device of claim 10 , wherein the exponential function is selected such that, for positive integer quantization parameter values, N of the quantization step sizes outputted by the exponential function are non-integers, wherein N−(p×log 2 p)−p+1, and wherein p is the number of quantization parameters per doubling of the quantization step size.

17. The device of claim 10 , wherein the exponential function is QS=(1+0.125×mod [QP,8])×2 └QP/8┘ , wherein QS is the quantization step size, and QP is the quantization parameter value.

18. The device of claim 10 , the operations further comprising rendering three-dimensional content based on the reconstructed point position of the first point, wherein the three-dimensional content is at least one of virtual reality content or augmented reality content.

19. A non-transitory, computer-readable storage medium having instructions stored thereon, that when executed by one or more processors, cause the one or more processors to perform operations comprising:

receiving a data structure representing a plurality of points in a point cloud in three-dimensional space;

decoding the data structure to determine one or more sequences of bits, wherein each of the sequences of bits represents a position of one of the points in one of the dimensions of the three-dimensional space, and wherein the data structure is decoded according to a tree data structure;

partitioning at least one of the sequences of bits into a first portion of bits and a second portion of bits;

scaling each of the second portions of bits according to a quantization step size, wherein the quantization step size is determined according to an exponential function having a quantization parameter value as an input and the quantization step size as an output;

generating a reconstructed point position of a first point of the plurality of points by combining, for the first point, the first portion of bits and the scaled second portion of bits corresponding to the first point; and

outputting the reconstructed point position of the first point.

20. The non-transitory, computer-readable storage medium of claim 19 , wherein the tree data structure is an octree.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 26, 2022
From: FLYNN, DAVID; MAMMOU, KHALED; ROBINET, FABRICE A.
To: APPLE INC.
Reel/Frame 060623/0484 →
Continuity (3)
Provisional Application 62958689 · Jan 8, 2020
Provisional Application 62958688 · Jan 8, 2020
Related Publication 20230053544A1 · Feb 23, 2023
Cited By (2)
US 12,266,141 US 12,335,521