IP Library › Granted Patent US 11,122,279
Granted Patent B2
US 11,122,279 · App. 16/588,728 · Granted Sep 14, 2021

Point cloud compression using continuous surface codes

Inventors: Rajan Laxman Joshi (San Diego, CA); Neha Dawar (Plano, TX); Madhukar Budagavi (Plano, TX)
Assignee: Samsung Electronics Co., Ltd.
H04N19/20H04N19/167H04N19/182H04N19/184H04N19/44H04N19/597
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,122,279
App. No.
16/588,728
Granted
Sep 14, 2021
Kind
B2
Abstract

A decoding device, an encoding device and a method for point cloud decoding is disclosed. The method includes receiving a bitstream. The method also includes decoding, from the compressed bitstream, a first frame, a second frame, and an occupancy map frame. The first and the second frame include pixels representing points of a 3D point cloud at different depths. The occupancy map frame indicates whether the pixels included in the first frame and the second frame at that position in the occupancy map frame are valid pixels and whether points of the 3D point cloud are positioned between the first frame and the second frame at that position in the occupancy map frame. The method further includes generating the 3D point cloud using the first frame, the second frame, and the occupancy map frame.

Claims (74)

1. A decoding device for point cloud decoding, the decoding device comprising:

a communication interface configured to receive a compressed bitstream; and

a processor operably coupled to the communication interface, the processor configured to:

decode, from the compressed bitstream, a first frame and a second frame that include pixels representing points of a 3D point cloud at different depths;

decode, from the compressed bitstream, an occupancy map frame indicating whether the pixels included in the first frame and the second frame at that position in the occupancy map frame are valid pixels and whether points of the 3D point cloud are positioned between the first frame and the second frame at that position in the occupancy map frame; and

generate the 3D point cloud using the first frame, the second frame, and the occupancy map frame.

2. The decoding device of claim 1 , wherein:

the first frame, the second frame, and the occupancy map frame are a first size;

a pixel at a location in the occupancy map frame indicates whether a pixel at the same location in the first frame is valid; and

to indicate that points of the 3D point cloud are positioned between the first frame and the second frame, the processor is configured to identify whether depth values between the first frame and the second frame are occupied at the location of the pixel in the first frame.

3. The decoding device of claim 1 , wherein a depth value of a pixel included in the second frame is between a corresponding depth value of a pixel included in the first frame and a maximum surface thickness.

4. The decoding device of claim 1 , wherein the processor is configured to:

identify a value at a first coordinate position on the occupancy map frame, and a first pixel at a second coordinate position on the first frame, wherein the first coordinate position and the second coordinate position are the same;

determine, based on the value, whether the first pixel is valid or invalid, wherein the first pixel represents a first point of the 3D point cloud when the first pixel is valid;

when the value is valid, determine whether a difference between the first pixel in the first frame, at the second coordinate position, and a second pixel in the second frame, at a third coordinate position, is greater than one, wherein the second coordinate position and the third coordinate position are the same;

when the difference is greater one, determine whether the value indicates whether any points of the 3D point cloud are positioned between the first point and a second point, the second point represented by the second pixel;

when the value indicates that no points of the 3D point cloud are positioned between the first point and the second point, determine that that no points of the 3D point cloud are positioned between the first point and the second point; and

when the value indicates that at least one point of the 3D point cloud is positioned between the first point and the second point, identify, based on the value, a quantity of points of the at least one point and corresponding positions of the at least one point positioned between the first point and the second point.

5. The decoding device of claim 4 , wherein the processor is further configured to:

derive a distance between the first pixel and the second pixel; and

identify a numerical integer based on the value and the distance between the first pixel and the second pixel,

wherein the numerical integer when expressed as a binary code represents the quantity of points that are positioned between the first point and the second point and the corresponding positions of the at least one point between the first point and the second point.

6. The decoding device of claim 5 , wherein a length of the binary code is based on the distance between the first point and the second point.

7. The decoding device of claim 5 , wherein the value is inversely proportional to the quantity of points that are positioned between the first point and the second point.

8. An encoding device for point cloud encoding, the encoding device comprising:

a processor configured to:

generate, for a three-dimensional (3D) point cloud, a first frame and a second frame that include pixels representing points in the 3D point cloud at different depths;

generate an occupancy map frame indicating whether the pixels included in the first frame and the second frame at that position in the occupancy map frame are valid pixels and whether points of the 3D point cloud are positioned between the first frame and the second frame at that position in the occupancy map frame; and

encode the first frame, the second frame and the occupancy map frame to generate a compressed bitstream; and

a communication interface operably coupled to the processor, the communication interface configured to transmit the compressed bitstream.

9. The encoding device of claim 8 , wherein:

the first frame, the second frame, and the occupancy map frame are a first size; and

a pixel at a location in the occupancy map frame indicates whether a pixel at the same location in the first frame is valid.

10. The encoding device of claim 8 , wherein:

the processor is further configured to identify a maximum surface thickness representing a maximum distance between the first frame and the second frame, and

a depth value of a pixel included in the second frame is between a corresponding depth value of a pixel included in the first frame and the maximum surface thickness.

11. The encoding device of claim 8 , wherein:

to generate the first frame and the second frame, the processor is further configured to:

store a first pixel representing a first point of the 3D point cloud to a first location in the first frame, and

when a second point of the 3D point cloud is positioned within a distance from the first point, store a second pixel representing the second point of the 3D point cloud to the first location in the second frame;

to generate the occupancy map frame, the processor is further configured to:

determine whether a difference between the first pixel in the first frame, and the second pixel in the second frame, is greater than one;

when the difference is greater one, identify whether any points of the 3D point cloud are positioned between the first point and the second point;

when no points of the 3D point cloud are positioned between the first point and the second point, generate a first value indicating no points are positioned between the first point and the second point;

when at least one point of the 3D point cloud is positioned between the first point and the second point, generate a second value indicating a position and a quantity of points, of the at least one point, that are positioned between the first point and the second point, and

store the first value or the second value in the first location of the occupancy map frame; and

the first location on the first frame, the first location on the second frame, and the first location of the occupancy map frame, correspond to the same coordinate positions.

12. The encoding device of claim 11 , wherein:

the second value and indicates that the at least one point is positioned between the first point and the second point, and

when the first point is adjacent to the second point, the processor is further configured to store a third value in the first location of the occupancy map frame.

13. The encoding device of claim 11 , wherein to generate the first value and the second value, the processor is further configured to:

derive the distance between the first pixel and the second pixel;

identify a numerical integer that when expressed as a binary code represents the quantity of points that are positioned between the first point and the second point and the position of the at least one point between the first point and the second point; and

combine the distance and the numerical integer to generate the first value and the second value.

14. The encoding device of claim 13 , wherein a length of the binary code is based on the distance between the first point and the second point.

15. The encoding device of claim 13 , wherein the first value and the second value is inversely proportional to the quantity of points that are positioned between the first point and the second point.

16. A method for point cloud decoding comprising:

receiving a compressed bitstream;

decoding, from the compressed bitstream, a first frame and a second frame that include pixels representing points of a 3D point cloud at different depths;

decoding, from the compressed bitstream, an occupancy map frame indicating whether the pixels included in the first frame and the second frame at that position in the occupancy map frame are valid pixels and whether points of the 3D point cloud are positioned between the first frame and the second frame at that position in the occupancy map frame; and

generating the 3D point cloud using the first frame, the second frame, and the occupancy map frame.

17. The method of claim 16 , further comprising:

identifying a value at a first coordinate position on the occupancy map frame, and a first pixel at a second coordinate position on the first frame, wherein the first coordinate position and the second coordinate position are the same;

determining, based on the value, whether the first pixel is valid or invalid, wherein the first pixel represents a first point of the 3D point cloud when the first pixel is valid;

when the value is valid, determine whether a difference between the first pixel in the first frame, at the second coordinate position, and a second pixel in the second frame, at a third coordinate position, is greater than one, wherein the second coordinate position and the third coordinate position are the same;

when the difference is greater than one, determining whether the value indicates whether any points of the 3D point cloud are positioned between the first point and a second point, the second point represented by the second pixel;

when the value indicates that no points of the 3D point cloud are positioned between the first point and the second point, determine that that no points of the 3D point cloud are positioned between the first point and the second point; and

when the value indicates that at least one point of the 3D point cloud is positioned between the first point and the second point, identifying, based on the value, a quantity of points of the at least one point and corresponding positions of the at least one point positioned between the first point and the second point.

18. The method of claim 17 , further comprising:

deriving a distance between the first pixel and the second pixel; and

identifying a numerical integer based on the value and the distance between the first pixel and the second pixel,

wherein the numerical integer when expressed as a binary code represents the quantity of points that are positioned between the first point and the second point and the corresponding positions of the at least one point between the first point and the second point.

19. The method of claim 18 , wherein a length of the binary code is based on the distance between the first point and the second point.

20. The method of claim 18 , wherein the value is inversely proportional to the quantity of points that are positioned between the first point and the second point.

Assignments (2)
CORRECTIVE ASSIGNMENT TO CORRECT THE OMISSION OF THE THIRD INVENTOR PREVIOUSLY RECORDED AT REEL: 050592 FRAME: 0379. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jul 26, 2021
From: JOSHI, RAJAN LAXMAN; DAWAR, NEHA; BUDAGAVI, MADHUKAR
To: SAMSUNG ELECTRONICS CO., LTD.
Reel/Frame 056981/0929 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 30, 2019
From: JOSHI, RAJAN LAXMAN; DAWAR, NEHA
To: SAMSUNG ELECTRONICS CO., LTD
Reel/Frame 050592/0379 →
Continuity (5)
Provisional Application 62740133 · Oct 2, 2018
Provisional Application 62780487 · Dec 17, 2018
Provisional Application 62803890 · Feb 11, 2019
Provisional Application 62820929 · Mar 20, 2019
Related Publication 20200107033A1 · Apr 2, 2020
Cited By (2)
US 12,513,316 US 12,641,263