IP Library Granted Patent US 11,647,226
Granted Patent B2
US 11,647,226 · App. 17/319,019 · Granted May 9, 2023

Bit stream structure for compressed point cloud data

Inventors: Jungsun Kim (San Jose, CA); Alexandros Tourapis (Los Gatos, CA); Khaled Mammou (Vancouver, CA); Fabrice A. Robinet (Sunnyvale, CA); Yeping Su (Cupertino, CA); David W. Singer (San Francisco, CA)
Assignee: Apple Inc.
H04N19/597H04N19/17G06T9/00
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,647,226
App. No.
17/319,019
Filed
May 12, 2021
Granted
May 9, 2023
Kind
B2
Examiner
REN, ZHUBING
Art Unit
2483
USPC
375/240.12
Abstract

A system comprises an encoder configured to compress attribute information and/or spatial information for a point cloud and/or a decoder configured to decompress compressed attribute and/or spatial information for the point cloud. To compress the attribute and/or spatial information, the encoder is configured to convert a point cloud into an image based representation. Also, the decoder is configured to generate a decompressed point cloud based on an image based representation of a point cloud. In some embodiments, a bit stream structure may be used to communicate compressed point cloud data. The bit stream structure may include point cloud compression network abstraction layer (PCCNAL) units that enable use of groups of frames (GOFs), frame, and sub-frame signaling of patch information. Such a bit stream structure may permit low delay streaming and random access reconstruction of point clouds amongst other applications.

Claims (74)

1. A non-transitory computer-readable medium storing program instructions that, when executed using one or more processors, cause the one or more processors to:

receive an encoded bit stream comprising:

video encoded image frames comprising patch images packed into respective ones of the video encoded image frames and occupancy information for the packed patch images; and

one or more coding units indicating an order count or an index for the video encoded image frames;

identify one or more of the coding units in the bit stream;

determine an order in which to video decode at least some of the patch images packed into the video encoded image frames and one or more corresponding portions of the occupancy information based on the order count or the index indicated in the one or more coding units; and

video decode a set of video encoded image frames comprising the at least some patch images and one or more corresponding portions of occupancy information according to the order determined based on the order count or the index indicated in the one or more coding units.

2. The non-transitory computer-readable medium of claim 1 , wherein the picture order count or the index indicated in the one or more coding units comprise information indicating respective patch images included in different ones of the video encoded image frames that correspond to a same patch,

wherein the determined order orders the different ones of the video encoded image frames that correspond to the same patch to be video decoded adjacent to each other in the determined order.

3. The non-transitory computer-readable medium of claim 1 , wherein the program instructions, when executed using the one or more processors, further cause the one or more processors to:

receive a request to reconstruct content at a particular point in time, wherein the video encoded image frames included in the bit stream comprises patch images for representations of the content at multiple points in time; and

identify a set of video encoded image frames to video decode to reconstruct the content at the particular point in time based on temporal information indicated in the one or more coding units in the bit stream.

4. The non-transitory computer-readable medium of claim 1 , wherein to determine the order in which to decode the at least some of the patch images, the program instructions, when executed using the one or more processors, further cause the one or more processors to:

parse respective ones of the coding units associated with respective ones of the video encoded image frames;

identify, for respective ones of a plurality of patches, based on the parsed coding units, video encoded image frames that comprise a geometry patch image, an attribute patch image, and an occupancy image for the respective ones of the patches; and

order the video encoded image frames such that, for the respective ones of the patches, the video encoded image frames comprising the geometry patch images, the attribute patch images, and the occupancy images for the respective ones of the patches are decoded in parallel.

5. The non-transitory computer readable medium of claim 4 , wherein the video encoded image frames comprising the geometry patch image, the attribute patch image, and the occupancy image for the respective ones of the patches are interleaved in the bit stream.

6. The non-transitory computer readable medium of claim 4 , wherein the video encoded image frames comprising the geometry patch image, the attribute patch image, and the occupancy image for the respective ones of the patches are respectively grouped together in the bit stream as a group of geometry image frames, a group of attribute image frames, and a group of occupancy image frames.

7. The non-transitory computer-readable medium of claim 1 , wherein at least one of the coding units indicates a relationship between a patch image in a first one of the video encoded image frames of the bit stream and another patch image in another one of the video encoded image frames of the bit stream, and

wherein to determine the order in which to decode the at least some of the patch images, the program instructions, when executed using the one or more processors, further cause the one or more processors to:

determine the order based, at least in part on the relationship indicated in the coding unit between the patch image in the first video encoded image frame and the other patch image in the other video encoded image frame.

8. The non-transitory computer-readable medium of claim 7 , wherein the relationship indicated by the coding unit is that the patch image in the first image frame and the other patch image in the other image frame comprise an attribute patch image and a geometry patch image for a same patch.

9. The non-transitory computer-readable medium of claim 1 , wherein the one or more coding units included in the bit stream comprise:

a first coding unit that indicates a relationship between patch images in a first set of the video encoded image frames;

a second coding unit that indicates a relationship between patch images in a second set of the video encoded image frames; and

a third coding unit that indicates a relationship between the first coding unit and the second coding unit.

10. The non-transitory computer-readable medium of claim 9 , wherein:

the first coding unit indicates a coding parameter for the patch images of first set of the video encoded image frames; and

the second coding unit indicates a coding parameter for the patch images of the second set of the video encoded image frames,

wherein the first coding parameter and the second coding parameters are different parameters.

11. The non-transitory computer-readable medium of claim 10 , wherein:

the third coding unit indicates a coding parameter for the patch images of the first and second set of the video encoded image frames;

the coding parameters indicated in the first coding unit supplement or override the coding parameters indicated by the third coding unit for the patch images of the first set of the video encoded image frames; and

the coding parameters indicated in the second coding unit supplement or override the coding parameters indicated by the third coding unit for the patch images of the second set of the video encoded image frames.

12. The non-transitory computer-readable medium of claim 11 , wherein the coding parameters of the first, second or, third coding unit comprise one or more of:

a frame height or frame width for a portion of a video frame that corresponds to respective image frames of the first or second set of the video encoded image frames;

a resizing parameter that indicates a re-sizing between a video frame size and an image frame size of respective image frames of the first or second set of the video encoded image frames;

a number of image frames included in a respective set of the video encoded image frames corresponding to a respective coding unit;

a color format to be used for decoding a respective set of the video encoded image frames corresponding to a respective coding unit;

a video bit-depth of geometry values or attribute values encoded for patch images of a respective set of the video encoded image frames corresponding to a respective coding unit and a corresponding reconstructed bit-depth for the geometry values or attribute values of a reconstructed version of content, reconstructed from the patch images of the respective set of the video encoded image frames; or

an internal bit-depth used to determine reconstructed attribute values or reconstructed geometry values for a reconstructed version of the content based on attribute values or geometry values included in one or more patch images of a respective set of image frames corresponding to a respective coding unit.

13. The non-transitory computer-readable medium of claim 1 , wherein the one or more coding units are formatted as network abstraction layer (NAL) units in the bit stream.

14. A device, comprising:

a memory storing program instructions; and

one or more processors, wherein the program instructions, when executed using the one or more processors, cause the one or more processors to:

receive an encoded bit stream comprising:

video encoded image frames comprising patch images packed into respective ones of the video encoded image frames and occupancy information for the packed patch images; and

one or more coding units indicating an order count or an index for the video encoded image frames;

identify one or more of the coding units in the bit stream;

determine an order in which to video decode at least some of the patch images packed into the video encoded image frames and one or more corresponding portions of the occupancy information based on the order count or the index indicated in the one or more coding units; and

video decode a set of video encoded image frames comprising the at least some patch images and one or more corresponding portions of occupancy information according to the order determined based on the order count or the index indicated in the one or more coding units.

15. The device of claim 14 , further comprising:

a display;

wherein the program instructions, when executed using the one or more processors, further cause the one or more processors to:

render a reconstructed version of content on the display of the device using the patch images included in the video decoded set of image frames.

16. The device of claim 14 , wherein the information indicated in the one or more coding units comprises information indicating respective patch images included in different ones of the video encoded image frames that correspond to a same patch,

wherein the determined order orders the different ones of the video encoded image frames that correspond to the same patch to be video decoded adjacent to each other in the determined order.

17. The device of claim 14 , wherein the program instructions, when executed using the one or more processors, further cause the one or more processors to:

receive a request to reconstruct content indicated in the bit stream at a particular point in time, wherein the bit stream comprises encoded video image frames representing representations of the content at multiple points in time; and

identifying a set of video encoded image frames to video decode to reconstruct the content at the particular point in time based on temporal information indicated in the one or more coding units in the bit stream.

18. The device of claim 14 , wherein to determine the order in which to decode the at least some of the patch images, the program instructions, when executed using the one or more processors, further cause the one or more processors to:

parse respective ones of the coding units associated with respective ones of the video encoded image frames;

identify, for respective ones of a plurality of patches, based on the parsed coding units, video encoded image frames that comprise a geometry patch image, an attribute patch image, and an occupancy image for the respective ones of the patches; and

order the video encoded image frames such that, for the respective ones of the patches, the video encoded image frames comprising the geometry patch images, the attribute patch images, and the occupancy images for the respective ones of the patches are decoded in parallel.

19. The device of claim 14 , wherein the one or more coding units are formatted as network abstraction layer (NAL) units in the bit stream.

20. A non-transitory computer-readable medium storing program instructions that, when executed using one or more processors, cause the one or more processors to:

determine, for content to be compressed, a plurality of patches each corresponding to portions of the content;

generate, for respective ones of the patches, a first patch image indicating attribute information and a second patch image indicating geometry information for the respective patch;

pack the generated patch images for the determined patches into a plurality of image frames;

generate additional image frames comprising occupancy information for the plurality of image frames; and

encode the image frames and the additional image frames into a bit stream comprising coding units,

wherein at least one of the coding units comprises an order count definition or an index for image frames included in other ones of the coding units; and

wherein the other ones of the coding units comprise:

respective pieces of identification information in accordance with the order count or index that enable a decoder to synchronize respective ones of the image frames such that respective ones of the image frames comprising patch images and occupancy information corresponding to a same patch can be coordinated at the decoder without requiring the image frames to be placed in the bit stream in a fixed order.

Continuity (3)
Continuation 16510706 · Jul 12, 2019
Provisional Application 62697369 · Jul 12, 2018
Related Publication 20210266597A1 · Aug 26, 2021