POINT CLOUD GEOMETRY PADDING
A method of point cloud geometry padding is described herein. The method searches for a reconstruction point in a compressed occupancy map to perform the geometry padding instead of using an uncompressed occupancy map.
This application claims priority under 35 U.S.C. § 119(e) of the U.S. Provisional Patent Application Ser. No. 62/820,723, filed Mar. 19, 2019 and titled, “POINT CLOUD GEOMETRY PADDING,” which is hereby incorporated by reference in its entirety for all purposes.
FIELD OF THE INVENTIONThe present invention relates to three dimensional graphics. More specifically, the present invention relates to coding of three dimensional graphics.
BACKGROUND OF THE INVENTIONPoint clouds have been considered as a candidate format for transmission of 3D data, either captured by 3D scanners, LIDAR sensors, or used in popular applications such as Virtual Reality/Augmented Reality (VR/AR). Point Clouds are a set of points in 3D space. Besides the spatial position (X,Y,Z), each point usually has associated attributes, such as color (R,G,B) or even reflectance and temporal timestamps (e.g., in LIDAR images). In order to obtain a high fidelity representation of the target 3D objects, devices capture point clouds in the order of thousands or even millions of points. Moreover, for dynamic 3D scenes used in VR/AR application, every single frame often has a unique dense point cloud, which results in the transmission of several millions of point clouds per second. For a viable transmission of such a large amount of data, compression is often applied.
In 2017, MPEG issued a call for proposal (CfP) for compression of point clouds. After evaluation of several proposals, MPEG is considering two different technologies for point cloud compression: 3D native coding technology (based on octree and similar coding methods), or 3D to 2D projection, followed by traditional video coding. In the case of dynamic 3D scenes, MPEG is using a test model software (TMC2) based on patch surface modeling, projection of patches from 3D to 2D image, and coding the 2D image with video encoders such as HEVC. The method has proven to be more efficient than native 3D coding and is able to achieve competitive bitrates at acceptable quality.
When coding point clouds, TMC2 encodes auxiliary information related to the patch projection, such as patch position in the 2D canvas image and bounding box size. For temporal coding of auxiliary information, patch matching between patches from current point cloud and patches from the immediately decoded point cloud is used for prediction. The procedure is limited to the immediate neighbor and includes performing delta coding for all the frames in the sequence.
The state-of-the-art in point cloud compression using video encoders represent point clouds as 3D patches and encode a 2D image formed by the projection of geometry and attributes into a 2D canvas. Additionally, the 2D image has many empty spaces that are filled with an image padding process. The empty spaces are identified by the occupancy map. Currently, the image padding process is performing a 2D dilation, which smoothly extends the boundaries of the blocks into the empty positions. This process is considering only 2D information. Since the occupancy map is coded as well, some of the empty positions will be incorporated into the reconstructed point cloud, due to changes in the occupancy map. Therefore, positions that were previously filled with the padding algorithm may be incorporated into the reconstructed point cloud, which could cause some geometric distortions, since the padding algorithm only considers the 2D structure of the image.
SUMMARY OF THE INVENTIONA method of point cloud geometry padding is described herein. The method searches for a reconstruction point in a compressed occupancy map to perform the geometry padding instead of using an uncompressed occupancy map.
In one aspect, a method programmed in a non-transitory memory of a device comprises generating geometry images from a point cloud, placing the geometry images on a 2D canvas and filling empty spaces on the 2D canvas with a padding method which considers a 3D position of newly added points due to lossy compression of an occupancy map. The padding method comprises a search in a 3D space for a value that, when reconstructed, is as close as possible to the point cloud. The method further comprises adding new values to a reconstructed point cloud due to the lossy compression of the occupancy map. The method further comprises performing a search in a 3D space by searching a limited range of values centered around a representative value of local points in the 2D canvas. Performing the search in the 3D space comprises starting with an average of three neighboring points. Performing the search in the 3D space comprises adding or subtracting values sequentially and repetitively comparing values to determine a replacement point. Performing the search in the 3D space comprises only searching for points within a specified range. The method further comprises generating a compressed geometry image. The method further comprises generating a compressed bitstream for the point cloud.
In another aspect, an apparatus comprises a non-transitory memory for storing an application, the application for: generating geometry images from a point cloud, placing the geometry images on a 2D canvas and filling empty spaces on the 2D canvas with a padding method which considers a 3D position of newly added points due to lossy compression of an occupancy map and a processor coupled to the memory, the processor configured for processing the application. The padding method comprises a search in a 3D space for a value that, when reconstructed, is as close as possible to the point cloud. The application is further configured for adding new values to a reconstructed point cloud due to the lossy compression of the occupancy map. The application is further configured for performing a search in a 3D space by searching a limited range of values centered around a representative value of local points in the 2D canvas. Performing the search in the 3D space comprises starting with an average of three neighboring points. Performing the search in the 3D space comprises adding or subtracting values sequentially and repetitively comparing values to determine a replacement point. Performing the search in the 3D space comprises only searching for points within a specified range. The application is further configured for generating a compressed geometry image. The application is further configured for generating a compressed bitstream for the point cloud.
In another aspect, a system comprises one or more cameras for acquiring three dimensional content and an encoder for encoding the three dimensional content by: generating geometry images from the three dimensional content, placing the geometry images on a 2D canvas and filling empty spaces on the 2D canvas with a padding method which considers a 3D position of newly added points due to lossy compression of an occupancy map. The padding method comprises a search in a 3D space for a value that, when reconstructed, is as close as possible to the point cloud. The encoder is further configured for adding new values to a reconstructed point cloud due to the lossy compression of the occupancy map. The encoder is further configured for performing a search in a 3D space by searching a limited range of values centered around a representative value of local points in the 2D canvas. Performing the search in the 3D space comprises starting with an average of three neighboring points. Performing the search in the 3D space comprises adding or subtracting values sequentially and repetitively comparing values to determine a replacement point. Performing the search in the 3D space comprises only searching for points within a specified range. The encoder is further configured for generating a compressed geometry image. The encoder is further configured for generating a compressed bitstream for the point cloud.
A novel method of padding geometry images generated from mapping 3D point cloud data into 2D surfaces is described herein. 3D surface patches are used to represent point clouds, perform flexible mapping of 3D patch surface data into 2D canvas images, and fill in empty positions of the geometry image (geometry image padding) by considering 3D information.
Patches representing geometry are placed in a 2D canvas image, then the empty positions are filled (image padding) for efficient compression. However, due to the coding process, some of the empty positions will be incorporated into the reconstructed point cloud. Those positions are able to be identified, and a padding principle is able to be used based on 3D information to fill in those positions.
The utilization of 3D information to perform 2D image padding is described herein. Past image padding (or also image inpainting) algorithms utilized the 2D structure of the image. Image padding is performed using the 3D space.
I(i) is an indicator function, that is 0 if the neighboring position is not available, or 1 if the neighboring position is available. As discussed herein, different starting values are able to be used such as a median value, for example. This is just the starting point for the search range. The criteria for choosing the most appropriate value is determined in the 3D space; the reconstructed value is calculated; and the distance between the value and the original point cloud will determine the choice for the 2D value.
With the geometry padding described herein, the distance between the reconstructed point cloud and the original point cloud is reduced, specifically, between the patches.
In some embodiments, the point cloud geometry padding application(s) 530 include several applications and/or modules. In some embodiments, modules include one or more sub-modules as well. In some embodiments, fewer or additional modules are able to be included.
Examples of suitable computing devices include a personal computer, a laptop computer, a computer workstation, a server, a mainframe computer, a handheld computer, a personal digital assistant, a cellular/mobile telephone, a smart appliance, a gaming console, a digital camera, a digital camcorder, a camera phone, a smart phone, a portable music player, a tablet computer, a mobile device, a video player, a video disc writer/player (e.g., DVD writer/player, high definition disc writer/player, ultra high definition disc writer/player), a television, a home entertainment system, an augmented reality device, a virtual reality device, smart jewelry (e.g., smart watch), a vehicle (e.g., a self-driving vehicle) or any other suitable computing device.
To utilize the point cloud geometry padding method, a device acquires or receives 3D content and processes and/or sends the content in an optimized manner to enable proper, efficient display of the 3D content. The point cloud geometry padding is able to be implemented with user assistance or automatically without user involvement.
In operation, the point cloud geometry padding is more efficient in terms of encoding.
Some Embodiments of Point Cloud Geometry Padding
- 1. A method programmed in a non-transitory memory of a device comprising:
generating geometry images from a point cloud;
placing the geometry images on a 2D canvas; and
filling empty spaces on the 2D canvas with a padding method which considers a 3D position of newly added points due to lossy compression of an occupancy map.
- 2. The method of clause 1 wherein the padding method comprises a search in a 3D space for a value that, when reconstructed, is as close as possible to the point cloud.
- 3. The method of clause 1 further comprising adding new values to a reconstructed point cloud due to the lossy compression of the occupancy map.
- 4. The method of clause 1 further comprising performing a search in a 3D space by searching a limited range of values centered around a representative value of local points in the 2D canvas.
- 5. The method of clause 1 wherein performing the search in the 3D space comprises starting with an average of three neighboring points.
- 6. The method of clause 1 wherein performing the search in the 3D space comprises adding or subtracting values sequentially and repetitively comparing values to determine a replacement point.
- 7. The method of clause 1 wherein performing the search in the 3D space comprises only searching for points within a specified range.
- 8. The method of clause 1 further comprising generating a compressed geometry image.
- 9. The method of clause 1 further comprising generating a compressed bitstream for the point cloud.
- 10. An apparatus comprising:
a non-transitory memory for storing an application, the application for:
-
- generating geometry images from a point cloud;
- placing the geometry images on a 2D canvas; and
- filling empty spaces on the 2D canvas with a padding method which considers a 3D position of newly added points due to lossy compression of an occupancy map; and
a processor coupled to the memory, the processor configured for processing the application.
- 11. The apparatus of clause 10 wherein the padding method comprises a search in a 3D space for a value that, when reconstructed, is as close as possible to the point cloud.
- 12. The apparatus of clause 10 wherein the application is further configured for adding new values to a reconstructed point cloud due to the lossy compression of the occupancy map.
- 13. The apparatus of clause 10 wherein the application is further configured for performing a search in a 3D space by searching a limited range of values centered around a representative value of local points in the 2D canvas.
- 14. The apparatus of clause 10 wherein performing the search in the 3D space comprises starting with an average of three neighboring points.
- 15. The apparatus of clause 10 wherein performing the search in the 3D space comprises adding or subtracting values sequentially and repetitively comparing values to determine a replacement point.
- 16. The apparatus of clause 10 wherein performing the search in the 3D space comprises only searching for points within a specified range.
- 17. The apparatus of clause 10 wherein the application is further configured for generating a compressed geometry image.
- 18. The apparatus of clause 10 wherein the application is further configured for generating a compressed bitstream for the point cloud.
- 19. A system comprising:
one or more cameras for acquiring three dimensional content; and
an encoder for encoding the three dimensional content by:
-
- generating geometry images from the three dimensional content;
- placing the geometry images on a 2D canvas; and
- filling empty spaces on the 2D canvas with a padding method which considers a 3D position of newly added points due to lossy compression of an occupancy map.
- 20. The system of clause 19 wherein the padding method comprises a search in a 3D space for a value that, when reconstructed, is as close as possible to the point cloud.
- 21. The system of clause 19 wherein the encoder is further configured for adding new values to a reconstructed point cloud due to the lossy compression of the occupancy map.
- 22. The system of clause 19 wherein the encoder is further configured for performing a search in a 3D space by searching a limited range of values centered around a representative value of local points in the 2D canvas.
- 23. The system of clause 19 wherein performing the search in the 3D space comprises starting with an average of three neighboring points.
- 24. The system of clause 19 wherein performing the search in the 3D space comprises adding or subtracting values sequentially and repetitively comparing values to determine a replacement point.
- 25. The system of clause 19 wherein performing the search in the 3D space comprises only searching for points within a specified range.
- 26. The system of clause 19 wherein the encoder is further configured for generating a compressed geometry image.
- 27. The system of clause 19 wherein the encoder is further configured for generating a compressed bitstream for the point cloud.
The present invention has been described in terms of specific embodiments incorporating details to facilitate the understanding of principles of construction and operation of the invention. Such reference herein to specific embodiments and details thereof is not intended to limit the scope of the claims appended hereto. It will be readily apparent to one skilled in the art that other various modifications may be made in the embodiment chosen for illustration without departing from the spirit and scope of the invention as defined by the claims.
Claims
1. A method programmed in a non-transitory memory of a device comprising:
- generating geometry images from a point cloud;
- placing the geometry images on a 2D canvas; and
- filling empty spaces on the 2D canvas with a padding method which considers a 3D position of newly added points due to lossy compression of an occupancy map.
2. The method of claim 1 wherein the padding method comprises a search in a 3D space for a value that, when reconstructed, is as close as possible to the point cloud.
3. The method of claim 1 further comprising adding new values to a reconstructed point cloud due to the lossy compression of the occupancy map.
4. The method of claim 1 further comprising performing a search in a 3D space by searching a limited range of values centered around a representative value of local points in the 2D canvas.
5. The method of claim 1 wherein performing the search in the 3D space comprises starting with an average of three neighboring points.
6. The method of claim 1 wherein performing the search in the 3D space comprises adding or subtracting values sequentially and repetitively comparing values to determine a replacement point.
7. The method of claim 1 wherein performing the search in the 3D space comprises only searching for points within a specified range.
8. The method of claim 1 further comprising generating a compressed geometry image.
9. The method of claim 1 further comprising generating a compressed bitstream for the point cloud.
10. An apparatus comprising:
- a non-transitory memory for storing an application, the application for: generating geometry images from a point cloud; placing the geometry images on a 2D canvas; and filling empty spaces on the 2D canvas with a padding method which considers a 3D position of newly added points due to lossy compression of an occupancy map; and
- a processor coupled to the memory, the processor configured for processing the application.
11. The apparatus of claim 10 wherein the padding method comprises a search in a 3D space for a value that, when reconstructed, is as close as possible to the point cloud.
12. The apparatus of claim 10 wherein the application is further configured for adding new values to a reconstructed point cloud due to the lossy compression of the occupancy map.
13. The apparatus of claim 10 wherein the application is further configured for performing a search in a 3D space by searching a limited range of values centered around a representative value of local points in the 2D canvas.
14. The apparatus of claim 10 wherein performing the search in the 3D space comprises starting with an average of three neighboring points.
15. The apparatus of claim 10 wherein performing the search in the 3D space comprises adding or subtracting values sequentially and repetitively comparing values to determine a replacement point.
16. The apparatus of claim 10 wherein performing the search in the 3D space comprises only searching for points within a specified range.
17. The apparatus of claim 10 wherein the application is further configured for generating a compressed geometry image.
18. The apparatus of claim 10 wherein the application is further configured for generating a compressed bitstream for the point cloud.
19. A system comprising:
- one or more cameras for acquiring three dimensional content; and
- an encoder for encoding the three dimensional content by: generating geometry images from the three dimensional content; placing the geometry images on a 2D canvas; and filling empty spaces on the 2D canvas with a padding method which considers a 3D position of newly added points due to lossy compression of an occupancy map.
20. The system of claim 19 wherein the padding method comprises a search in a 3D space for a value that, when reconstructed, is as close as possible to the point cloud.
21. The system of claim 19 wherein the encoder is further configured for adding new values to a reconstructed point cloud due to the lossy compression of the occupancy map.
22. The system of claim 19 wherein the encoder is further configured for performing a search in a 3D space by searching a limited range of values centered around a representative value of local points in the 2D canvas.
23. The system of claim 19 wherein performing the search in the 3D space comprises starting with an average of three neighboring points.
24. The system of claim 19 wherein performing the search in the 3D space comprises adding or subtracting values sequentially and repetitively comparing values to determine a replacement point.
25. The system of claim 19 wherein performing the search in the 3D space comprises only searching for points within a specified range.
26. The system of claim 19 wherein the encoder is further configured for generating a compressed geometry image.
27. The system of claim 19 wherein the encoder is further configured for generating a compressed bitstream for the point cloud.
Type: Application
Filed: Oct 17, 2019
Publication Date: Sep 24, 2020
Patent Grant number: 11334969
Inventor: Danillo Graziosi (San Jose, CA)
Application Number: 16/655,685