WO2023180842A1 - Mesh patch simplification - Google Patents

Mesh patch simplification Download PDF

Info

Publication number
WO2023180842A1
WO2023180842A1 PCT/IB2023/052105 IB2023052105W WO2023180842A1 WO 2023180842 A1 WO2023180842 A1 WO 2023180842A1 IB 2023052105 W IB2023052105 W IB 2023052105W WO 2023180842 A1 WO2023180842 A1 WO 2023180842A1
Authority
WO
WIPO (PCT)
Prior art keywords
border
implementation
patch
edge collapse
triangles
Prior art date
Application number
PCT/IB2023/052105
Other languages
French (fr)
Inventor
Danillo GRAZIOSI
Alexandre ZAGHETTO
Ali Tabatabai
Original Assignee
Sony Group Corporation
Sony Corporation Of America
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US17/987,841 external-priority patent/US20230306643A1/en
Application filed by Sony Group Corporation, Sony Corporation Of America filed Critical Sony Group Corporation
Priority to CN202380013354.7A priority Critical patent/CN117940961A/en
Publication of WO2023180842A1 publication Critical patent/WO2023180842A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/001Model-based coding, e.g. wire frame
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding

Definitions

  • the present invention relates to three dimensional graphics. More specifically, the present invention relates to coding of three dimensional graphics.
  • volumetric content such as point clouds
  • V3C visual volumetric video-based compression
  • MPEG had issued a call for proposal (CfP) for compression of point clouds.
  • CfP call for proposal
  • 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.
  • 3D native coding technology based on octree and similar coding methods
  • 3D to 2D projection followed by traditional video coding.
  • TMC2 test model software
  • This method has proven to be more efficient than native 3D coding, and is able to achieve competitive bitrates at acceptable quality.
  • 3D point clouds of the projection-based method also known as the video-based method, or V-PCC
  • the standard is expected to include in future versions further 3D data, such as 3D meshes.
  • current version of the standard is only suitable for the transmission of an unconnected set of points, so there is nomechanism to send the connectivity of points, as it is required in 3D mesh compression.
  • V-PCC V-PCC
  • a mesh compression approach like TFAN or Edgebreaker.
  • the limitation of this method is that the original mesh has to be dense, so that the point cloud generated from the vertices is not sparse and can be efficiently encoded after projection.
  • the order of the vertices affect the coding of connectivity, and different method to reorganize the mesh connectivity have been proposed.
  • An alternative way to encode a sparse mesh is to use the RAW patch data to encode the vertices position in 3D.
  • RAW patches encode (x,y,z) directly
  • all the vertices are encoded as RAW data
  • the connectivity is encoded by a similar mesh compression method, as mentioned before.
  • the vertices may be sent in any preferred order, so the order generated from connectivity encoding can be used.
  • the method can encode sparse point clouds, however, RAW patches are not efficient to encode 3D data, and further data such as the attributes of the triangle faces may be missing from this approach.
  • the patches are generated considering the high-resolution mesh information.
  • the connectivity data is simplified at the patch level, while the geometry image is still preserved.
  • For the connectivity simplification only triangles inside the patch are allowed to be simplified. If the border is still preserved, the reconstruction in 3D will not suffer from artifacts, such as gaps between patches due to unmatched border vertices.
  • the high-resolution geometry image can be used to reverse the simplification and improve the connectivity at the decoder side.
  • quadric error edge collapse border distance edge collapse
  • border triangles only. The first two methods perform edge collapse but follow different criteria.
  • the quadric error metric uses a 3D metric to check the possible distortion when moving the vertices and enforce triangle normal consistency and border preservation in the 2D projected space.
  • the criteria for edge collapse is the distance to borders, where the vertices that are most distant from the borders are collapsed first.
  • the method to send only border triangles eliminates all the triangles that are not connected to borders and only sends the triangles that have at least one edge belonging to the border of the patch.
  • a method programmed in a non-transitory memory of a device comprises generating a patch and performing two dimensional patch mesh simplification to generate a new face list and a new vertex list.
  • Performing the two dimensional patch mesh simplification comprises a quadric error edge collapse implementation.
  • the quadric error edge collapse implementation includes a half-edge collapse based on a quadric error metric.
  • Performing the two dimensional patch mesh simplification comprises a border distance edge collapse implementation.
  • the border distance edge collapse implementation includes ordering a list of vertices according to a minimum distances to a border of the patch and collapsing a vertex with a neighboring vertex that is most distant to the border.
  • Performing the two dimensional patch mesh simplification comprises a border triangles only implementation.
  • the border triangles only implementation comprises rotating a triangle so a first edge of the triangle is at a border.
  • the method further comprises implementing re -meshing at a decoder which includes marching cubes using border triangles
  • an apparatus comprises a non-transitory memory for storing an application, the application for: generating a patch and performing two dimensional patch mesh simplification to generate a new face list and a new vertex list and a processor coupled to the memory, the processor configured for processing the application.
  • Performing the two dimensional patch mesh simplification comprises a quadric error edge collapse implementation.
  • the quadric error edge collapse implementation includes a half-edge collapse based on a quadric error metric.
  • Performing the two dimensional patch mesh simplification comprises a border distance edge collapse implementation.
  • the border distance edge collapse implementation includes ordering a list of vertices according to a minimum distances to a border of the patch and collapsing a vertex with a neighboring vertex that is most distant to the border.
  • Performing the two dimensional patch mesh simplification comprises a border triangles only implementation.
  • the border triangles only implementation comprises rotating a triangle so a first edge of the triangle is at a border.
  • the application is further configured for implementing re -meshing at a decoder which includes marching cubes using border triangles and a decoded geometry video.
  • a system comprises an encoder configured for: generating a patch and performing two dimensional patch mesh simplification to generate a new face list and a new vertex list and a decoder configured for: implementing re -meshing which includes marching cubes using border triangles and a decoded geometry video.
  • Performing the two dimensional patch mesh simplification comprises a quadric error edge collapse implementation.
  • the quadric error edge collapse implementation includes a half-edge collapse based on a quadric error metric.
  • Performing the two dimensional patch mesh simplification comprises a border distance edge collapse implementation.
  • the border distance edge collapse implementation includes ordering a list of vertices according to a minimum distances to a border of the patch and collapsing a vertex with a neighboring vertex that is most distant to the border.
  • Performing the two dimensional patch mesh simplification comprises a border triangles only implementation.
  • the border triangles only implementation comprises rotating a triangle so a first edge of the triangle is at a border.
  • Figure 1 illustrates a flowchart of a method of generating a new face list and a new vertex list according to some embodiments.
  • Figure 2 illustrates a diagram of quadric error collapse according to some embodiments.
  • Figure 3 illustrates an image of a mesh with only border triangles sent according to some embodiments.
  • Figure 4 illustrates a diagram of boundary distance edge collapse according to some embodiments.
  • Figure 5 illustrates a block diagram of an exemplary computing device configured to implement the mesh patch simplification method according to some embodiments.
  • the patches are generated considering the high-resolution mesh information.
  • the connectivity data is simplified at the patch level, while the geometry image is still preserved.
  • For the connectivity simplification only triangles inside the patch are allowed to be simplified. If the border is still preserved, the reconstruction in 3D will not suffer from artifacts, such as gaps between patches due to unmatched border vertices.
  • the high-resolution geometry image can be used to reverse the simplification and improve the connectivity at the decoder side.
  • quadric error edge collapse border distance edge collapse
  • border triangles only. The first two methods perform edge collapse but follow different criteria.
  • the quadric error metric uses a 3D metric to check the possible distortion when moving the vertices and enforce triangle normal consistency and border preservation in the 2D projected space.
  • the criteria for edge collapse is the distance to borders, where the vertices that are most distant from the borders are collapsed first.
  • the method to send only border triangles eliminates all the triangles that are not connected to borders and only sends the triangles that have at least one edge belonging to the border of the patch.
  • FIG. 1 illustrates a flowchart of a method of generating a new face list and a new vertex list according to some embodiments.
  • an input mesh is received or acquired.
  • the input mesh is downloaded (e.g., from a network device) or acquired/captured by a device (e.g., camera or autonomous vehicle).
  • the input mesh is segmented into patches. Any patch segmentation implementation is able to be performed.
  • the patch segmentation generates a face list (e.g., connectivity) and a vertex list, in the step 104.
  • depth generation is performed.
  • a high-resolution depth map is generated based on the depth generation.
  • patch obj enables an object to be regenerated using the face list and vertex list.
  • patch generation patch generation (or creation) is implemented.
  • patch generation includes: normal calculation, adjacency calculation, initial segmentation; refinement, patch projection, and patch rasterization.
  • Normal calculation is calculating the normals of each triangle (e.g., cross product of the triangle’s edges).
  • Adjacency calculation involves calculating each triangle’s adjacency (e.g., which triangles in the mesh neighbor or touch the current triangle or other triangles).
  • Initial segmentation includes classifying the normal according to the orientation. For example, a normal of a triangle is able to point up, down, left, right, front, or back, and is able to be classified based on the direction/orientation.
  • the triangles are color-coded based on the orientation of their normals (e.g., all of the triangles with a normal pointing up are colored green).
  • Refinement involves locating outliers (e.g., a single red triangle surrounded by blue triangles) and smoothing out the outliers (e.g., changing the single red triangle to match its neighbors which are blue).
  • the refinement is performed by analyzing the neighbors and smoothing the orientation (e.g., adjusting the orientation of the normal).
  • patch projection is performed which involves projecting the patches for a specific classification of triangles (e.g., based on orientation). With the projection, the vertices and connectivity are shown on the patches.
  • the body and face in this example are separate projections since there are triangles with different classifications separating the two.
  • V3C and V-PCC do not understand this though; rather, V3C and V-PCC understand points, so the projection is rasterized (e.g., sampling points on the surface including the distance of the points to generate a geometry image and the attributes of the surface).
  • the rasterized mesh surface is very similar to a V3C image.
  • the steps 100 through 112 are able to be performed in any standard implementation.
  • patch mesh (2D) simplification is performed on the generated patches.
  • Patch mesh (2D) simplification reduces amount of data sent (e.g., encoded). However, the data sent is enough to recover the mesh.
  • patch mesh (2D) simplification there are three different implementations for patch mesh (2D) simplification: quadric error edge collapse, border distance edge collapse, and border triangles only.
  • a new face list and a new vertex list are generated based on the patch mesh (2D) simplification, which are sent/encoded.
  • fewer or additional steps are implemented.
  • a decoder is able to be implemented to decode the patch mesh.
  • the order of the steps is modified.
  • Figure 2 illustrates a diagram of quadric error collapse according to some embodiments.
  • An original patch mesh 200 has 334 faces.
  • a quadric error metric is able to be determined.
  • the quadric error matrix of a vertex v ⁇ QM ⁇ ) is obtained in the following way: les that contain the vertex i.
  • the quadric error matrix for a triangle with vertices ( A , v B , v c ) is calculated in the following way:
  • a half-edge collapse is able to be implemented.
  • original connectivity 202 is able to be collapsed into connectivity 204 with fewer points.
  • the simplified patch 206 has 166 faces compared to the 334 faces of the original patch mesh 200.
  • the simplified patch 206 preserves the vertices around the patch (e.g., the outer edge vertices), but the triangles inside are organized differently than the original patch mesh.
  • the full original mesh 210 is also shown in comparison with the full simplified mesh 212. By having fewer faces (and due to fewer vertices), there is much less data to encode.
  • Figure 3 illustrates an image of a mesh with only border triangles sent according to some embodiments. Only triangles at a border are kept. To know which triangles are at the border, a triangle is rotated so that the first edge of the triangle is the one at the border. If more than one edge is at the border, then more than one triangle is sent. If a triangle does not have any edges at the border, then the triangle is not sent. On the decoder side, re -meshing is implemented which includes using marching cubes using the border triangles and the decoded geometry video. The geometry video indicates where the surface should be, then marching cubes are performed on the surface to regenerate the triangles. When doing marching cubes, the process begins with the border triangles that were already sent.
  • Figure 4 illustrates a diagram of boundary distance edge collapse according to some embodiments.
  • Edge collapse is able to be based on the distance to the border.
  • a list of vertices is able to be ordered according to their minimum distance to the patch’s border.
  • a vertex is collapsed with the neighbor that is the most distant to the border. This implementation is coded more efficiently, but Peak Signal-to-Noise Ratio (PSNR) is lower.
  • PSNR Peak Signal-to-Noise Ratio
  • a vertex split implementation is able to be used to improve PSNR.
  • the vertices on the border are decoded well because zippering is able to be used to restore the border.
  • the points that are in the middle of the patch might have fewer artifacts than the points on the border since the points in the middle are typically on a smoother area.
  • the initial patch mesh 400 has 334 faces, but the patch mesh using border distance edge collapse 402 has 166 faces, which has the same or a similar number of faces (e.g., 166) as the quadric error implementation 404.
  • FIG. 5 illustrates a block diagram of an exemplary computing device configured to implement the mesh patch simplification method according to some embodiments.
  • the computing device 500 is able to be used to acquire, store, compute, process, communicate and/or display information such as images and videos including 3D content.
  • the computing device 500 is able to implement any of the encoding/decoding aspects.
  • a hardware structure suitable for implementing the computing device 500 includes a network interface 502, a memory 504, a processor 506, I/O device(s) 508, a bus 510 and a storage device 512.
  • the choice of processor is not critical as long as a suitable processor with sufficient speed is chosen.
  • the memory 504 is able to be any conventional computer memory known in the art.
  • the storage device 512 is able to include a hard drive, CDROM, CDRW, DVD, DVDRW, High Definition disc/drive, ultra-HD drive, flash memory card or any other storage device.
  • the computing device 500 is able to include one or more network interfaces 502.
  • An example of a network interface includes a network card connected to an Ethernet or other type of LAN.
  • the HO device(s) 508 are able to include one or more of the following: keyboard, mouse, monitor, screen, printer, modem, touchscreen, button interface and other devices.
  • Mesh patch simplification application(s) 530 used to implement the mesh patch simplification implementation are likely to be stored in the storage device 512 and memory 504 and processed as applications are typically processed.
  • mesh patch simplification hardware 520 is included.
  • the computing device 500 in Figure 5 includes applications 530 and hardware 520 for the mesh patch simplification implementation, the mesh patch simplification method is able to be implemented on a computing device in hardware, firmware, software or any combination thereof.
  • the mesh patch simplification applications 530 are programmed in a memory and executed using a processor.
  • the mesh patch simplification hardware 520 is programmed hardware logic including gates specifically designed to implement the mesh patch simplification method.
  • the mesh patch simplification 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.
  • 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.
  • a personal computer e.g., 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 device acquires or receives 3D content (e.g., point cloud content).
  • 3D content e.g., point cloud content.
  • the mesh patch simplification method is able to be implemented with user assistance or automatically without user involvement.
  • the mesh patch simplification method enables more efficient and more accurate 3D content encoding compared to previous implementations.
  • a method programmed in a non-transitory memory of a device comprising: generating a patch; and performing two dimensional patch mesh simplification to generate a new face list and a new vertex list.
  • performing the two dimensional patch mesh simplification comprises a border distance edge collapse implementation.
  • the border distance edge collapse implementation includes ordering a list of vertices according to a minimum distances to a border of the patch and collapsing a vertex with a neighboring vertex that is most distant to the border.
  • An apparatus comprising: a non-transitory memory for storing an application, the application for: generating a patch; and performing two dimensional patch mesh simplification to generate a new face list and a new vertex list; and a processor coupled to the memory, the processor configured for processing the application.
  • quadric error edge collapse implementation includes a half-edge collapse based on a quadric error metric.
  • performing the two dimensional patch mesh simplification comprises a border distance edge collapse implementation.
  • border distance edge collapse implementation includes ordering a list of vertices according to a minimum distances to a border of the patch and collapsing a vertex with a neighboring vertex that is most distant to the border.
  • a system comprising: an encoder configured for: generating a patch; and performing two dimensional patch mesh simplification to generate a new face list and a new vertex list; and a decoder configured for: implementing re -meshing which includes marching cubes using border triangles and a decoded geometry video.
  • performing the two dimensional patch mesh simplification comprises a quadric error edge collapse implementation.
  • quadric error edge collapse implementation includes a half-edge collapse based on a quadric error metric.
  • border distance edge collapse implementation includes ordering a list of vertices according to a minimum distances to a border of the patch and collapsing a vertex with a neighboring vertex that is most distant to the border.

Abstract

Ways to simplify connectivity data for patches are described herein. The patches are generated considering the high-resolution mesh information. The connectivity data is simplified at the patch level, while the geometry image is still preserved. For the connectivity simplification, only triangles inside the patch are simplified. If the border is still preserved, the reconstruction in 3D will not suffer from artifacts. The high-resolution geometry image can be used to reverse the simplification and improve the connectivity at the decoder side. Three embodiments of patch mesh simplification are described: quadric error edge collapse, border distance edge collapse, and border triangles only.

Description

MESH PATCH SIMPLIFICATION
CROSS-REFERENCE TO RELATED APPLICATION(S)
This application claims priority under 35 U.S.C. § 119(e) of the U.S. Provisional Patent Application Ser. No. 63/269,909, filed March 25, 2022 and titled, “MESH PATCH SIMPLIFICATION,” which is hereby incorporated by reference in its entirety for all purposes.
FIELD OF THE INVENTION
The present invention relates to three dimensional graphics. More specifically, the present invention relates to coding of three dimensional graphics.
BACKGROUND OF THE INVENTION
Recently, a novel method to compress volumetric content, such as point clouds, based on projection from 3D to 2D is being standardized. The method, also known as V3C (visual volumetric video-based compression), maps the 3D volumetric data into several 2D patches, and then further arranges the patches into an atlas image, which is subsequently encoded with a video encoder. The atlas images correspond to the geometry of the points, the respective texture, and an occupancy map that indicates which of the positions are to be considered for the point cloud reconstruction.
In 2017, MPEG had issued a call for proposal (CfP) for compression of point clouds. After evaluation of several proposals, currently 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. This method has proven to be more efficient than native 3D coding, and is able to achieve competitive bitrates at acceptable quality. Due to the success for coding 3D point clouds of the projection-based method (also known as the video-based method, or V-PCC), the standard is expected to include in future versions further 3D data, such as 3D meshes. However, current version of the standard is only suitable for the transmission of an unconnected set of points, so there is nomechanism to send the connectivity of points, as it is required in 3D mesh compression.
Methods have been proposed to extend the functionality of V-PCC to meshes as well. One possible way is to encode the vertices using V-PCC, and then the connectivity using a mesh compression approach, like TFAN or Edgebreaker. The limitation of this method is that the original mesh has to be dense, so that the point cloud generated from the vertices is not sparse and can be efficiently encoded after projection. Moreover, the order of the vertices affect the coding of connectivity, and different method to reorganize the mesh connectivity have been proposed. An alternative way to encode a sparse mesh is to use the RAW patch data to encode the vertices position in 3D. Since RAW patches encode (x,y,z) directly, in this method all the vertices are encoded as RAW data, while the connectivity is encoded by a similar mesh compression method, as mentioned before. Notice that in the RAW patch, the vertices may be sent in any preferred order, so the order generated from connectivity encoding can be used. The method can encode sparse point clouds, however, RAW patches are not efficient to encode 3D data, and further data such as the attributes of the triangle faces may be missing from this approach.
SUMMARY OF THE INVENTION
Ways to simplify connectivity data for patches are described herein. At first, the patches are generated considering the high-resolution mesh information. The connectivity data is simplified at the patch level, while the geometry image is still preserved. For the connectivity simplification, only triangles inside the patch are allowed to be simplified. If the border is still preserved, the reconstruction in 3D will not suffer from artifacts, such as gaps between patches due to unmatched border vertices. The high-resolution geometry image can be used to reverse the simplification and improve the connectivity at the decoder side. Three embodiments of patch mesh simplification are described: quadric error edge collapse, border distance edge collapse, and border triangles only. The first two methods perform edge collapse but follow different criteria. The quadric error metric uses a 3D metric to check the possible distortion when moving the vertices and enforce triangle normal consistency and border preservation in the 2D projected space. For border distance, the criteria for edge collapse is the distance to borders, where the vertices that are most distant from the borders are collapsed first. Finally, the method to send only border triangles eliminates all the triangles that are not connected to borders and only sends the triangles that have at least one edge belonging to the border of the patch.
In one aspect, a method programmed in a non-transitory memory of a device comprises generating a patch and performing two dimensional patch mesh simplification to generate a new face list and a new vertex list. Performing the two dimensional patch mesh simplification comprises a quadric error edge collapse implementation. The quadric error edge collapse implementation includes a half-edge collapse based on a quadric error metric. Performing the two dimensional patch mesh simplification comprises a border distance edge collapse implementation. The border distance edge collapse implementation includes ordering a list of vertices according to a minimum distances to a border of the patch and collapsing a vertex with a neighboring vertex that is most distant to the border. Performing the two dimensional patch mesh simplification comprises a border triangles only implementation. The border triangles only implementation comprises rotating a triangle so a first edge of the triangle is at a border. The method further comprises implementing re -meshing at a decoder which includes marching cubes using border triangles and a decoded geometry video.
In another aspect, an apparatus comprises a non-transitory memory for storing an application, the application for: generating a patch and performing two dimensional patch mesh simplification to generate a new face list and a new vertex list and a processor coupled to the memory, the processor configured for processing the application. Performing the two dimensional patch mesh simplification comprises a quadric error edge collapse implementation. The quadric error edge collapse implementation includes a half-edge collapse based on a quadric error metric. Performing the two dimensional patch mesh simplification comprises a border distance edge collapse implementation. The border distance edge collapse implementation includes ordering a list of vertices according to a minimum distances to a border of the patch and collapsing a vertex with a neighboring vertex that is most distant to the border. Performing the two dimensional patch mesh simplification comprises a border triangles only implementation. The border triangles only implementation comprises rotating a triangle so a first edge of the triangle is at a border. The application is further configured for implementing re -meshing at a decoder which includes marching cubes using border triangles and a decoded geometry video.
In another aspect, a system comprises an encoder configured for: generating a patch and performing two dimensional patch mesh simplification to generate a new face list and a new vertex list and a decoder configured for: implementing re -meshing which includes marching cubes using border triangles and a decoded geometry video. Performing the two dimensional patch mesh simplification comprises a quadric error edge collapse implementation. The quadric error edge collapse implementation includes a half-edge collapse based on a quadric error metric. Performing the two dimensional patch mesh simplification comprises a border distance edge collapse implementation. The border distance edge collapse implementation includes ordering a list of vertices according to a minimum distances to a border of the patch and collapsing a vertex with a neighboring vertex that is most distant to the border. Performing the two dimensional patch mesh simplification comprises a border triangles only implementation. The border triangles only implementation comprises rotating a triangle so a first edge of the triangle is at a border.
BRIEF DESCRIPTION OF THE DRAWINGS
Figure 1 illustrates a flowchart of a method of generating a new face list and a new vertex list according to some embodiments.
Figure 2 illustrates a diagram of quadric error collapse according to some embodiments. Figure 3 illustrates an image of a mesh with only border triangles sent according to some embodiments.
Figure 4 illustrates a diagram of boundary distance edge collapse according to some embodiments.
Figure 5 illustrates a block diagram of an exemplary computing device configured to implement the mesh patch simplification method according to some embodiments.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT
Ways to simplify connectivity data for patches are described herein. At first, the patches are generated considering the high-resolution mesh information. The connectivity data is simplified at the patch level, while the geometry image is still preserved. For the connectivity simplification, only triangles inside the patch are allowed to be simplified. If the border is still preserved, the reconstruction in 3D will not suffer from artifacts, such as gaps between patches due to unmatched border vertices. The high-resolution geometry image can be used to reverse the simplification and improve the connectivity at the decoder side. Three embodiments of patch mesh simplification are described: quadric error edge collapse, border distance edge collapse, and border triangles only. The first two methods perform edge collapse but follow different criteria. The quadric error metric uses a 3D metric to check the possible distortion when moving the vertices and enforce triangle normal consistency and border preservation in the 2D projected space. For border distance, the criteria for edge collapse is the distance to borders, where the vertices that are most distant from the borders are collapsed first. Finally, the method to send only border triangles eliminates all the triangles that are not connected to borders and only sends the triangles that have at least one edge belonging to the border of the patch.
Figure 1 illustrates a flowchart of a method of generating a new face list and a new vertex list according to some embodiments. In the step 100, an input mesh is received or acquired. For example, the input mesh is downloaded (e.g., from a network device) or acquired/captured by a device (e.g., camera or autonomous vehicle). In the step 102, the input mesh is segmented into patches. Any patch segmentation implementation is able to be performed. The patch segmentation generates a face list (e.g., connectivity) and a vertex list, in the step 104. In the step 106, depth generation is performed. In the step 108, a high-resolution depth map is generated based on the depth generation. In the step 110, patch obj enables an object to be regenerated using the face list and vertex list.
In the step 112, patch generation patch generation (or creation) is implemented. In some embodiments, patch generation includes: normal calculation, adjacency calculation, initial segmentation; refinement, patch projection, and patch rasterization. Normal calculation is calculating the normals of each triangle (e.g., cross product of the triangle’s edges). Adjacency calculation involves calculating each triangle’s adjacency (e.g., which triangles in the mesh neighbor or touch the current triangle or other triangles). Initial segmentation includes classifying the normal according to the orientation. For example, a normal of a triangle is able to point up, down, left, right, front, or back, and is able to be classified based on the direction/orientation. In some embodiments, the triangles are color-coded based on the orientation of their normals (e.g., all of the triangles with a normal pointing up are colored green). Refinement involves locating outliers (e.g., a single red triangle surrounded by blue triangles) and smoothing out the outliers (e.g., changing the single red triangle to match its neighbors which are blue). The refinement is performed by analyzing the neighbors and smoothing the orientation (e.g., adjusting the orientation of the normal). Once there is a smooth surface, then patch projection is performed which involves projecting the patches for a specific classification of triangles (e.g., based on orientation). With the projection, the vertices and connectivity are shown on the patches. For example, the body and face in this example are separate projections since there are triangles with different classifications separating the two. V3C and V-PCC do not understand this though; rather, V3C and V-PCC understand points, so the projection is rasterized (e.g., sampling points on the surface including the distance of the points to generate a geometry image and the attributes of the surface). The rasterized mesh surface is very similar to a V3C image. The steps 100 through 112 are able to be performed in any standard implementation.
In the step 114, patch mesh (2D) simplification is performed on the generated patches. Patch mesh (2D) simplification reduces amount of data sent (e.g., encoded). However, the data sent is enough to recover the mesh. As described herein, there are three different implementations for patch mesh (2D) simplification: quadric error edge collapse, border distance edge collapse, and border triangles only. In the step 116, a new face list and a new vertex list are generated based on the patch mesh (2D) simplification, which are sent/encoded. In some embodiments, fewer or additional steps are implemented. For example, a decoder is able to be implemented to decode the patch mesh. In some embodiments, the order of the steps is modified.
Figure 2 illustrates a diagram of quadric error collapse according to some embodiments. An original patch mesh 200 has 334 faces. Using a quadric error calculation, a quadric error metric is able to be determined. The quadric error matrix of a vertex v^QM^) is obtained in the following way:
Figure imgf000009_0001
les that contain the vertex i. The quadric error matrix for a triangle with vertices ( A, vB, vc) is calculated in the following way:
AB = vB - v A
AC ^ VC - VA
N = AB AC
Figure imgf000010_0001
A = Nx NT
B = -2 *d * N c = d* d
QMt. = (A,B,c)
Then, the cost of moving a vertex v; to a position v, is given by the formula: cost
Figure imgf000010_0002
Based on the quadric error metric, a half-edge collapse is able to be implemented. As shown, original connectivity 202 is able to be collapsed into connectivity 204 with fewer points. The simplified patch 206 has 166 faces compared to the 334 faces of the original patch mesh 200. The simplified patch 206 preserves the vertices around the patch (e.g., the outer edge vertices), but the triangles inside are organized differently than the original patch mesh. The full original mesh 210 is also shown in comparison with the full simplified mesh 212. By having fewer faces (and due to fewer vertices), there is much less data to encode. Figure 3 illustrates an image of a mesh with only border triangles sent according to some embodiments. Only triangles at a border are kept. To know which triangles are at the border, a triangle is rotated so that the first edge of the triangle is the one at the border. If more than one edge is at the border, then more than one triangle is sent. If a triangle does not have any edges at the border, then the triangle is not sent. On the decoder side, re -meshing is implemented which includes using marching cubes using the border triangles and the decoded geometry video. The geometry video indicates where the surface should be, then marching cubes are performed on the surface to regenerate the triangles. When doing marching cubes, the process begins with the border triangles that were already sent.
Figure 4 illustrates a diagram of boundary distance edge collapse according to some embodiments. Edge collapse is able to be based on the distance to the border. A list of vertices is able to be ordered according to their minimum distance to the patch’s border. A vertex is collapsed with the neighbor that is the most distant to the border. This implementation is coded more efficiently, but Peak Signal-to-Noise Ratio (PSNR) is lower. A vertex split implementation is able to be used to improve PSNR.
The vertices on the border are decoded well because zippering is able to be used to restore the border. In terms of video compression, the points that are in the middle of the patch might have fewer artifacts than the points on the border since the points in the middle are typically on a smoother area.
As shown, the initial patch mesh 400 has 334 faces, but the patch mesh using border distance edge collapse 402 has 166 faces, which has the same or a similar number of faces (e.g., 166) as the quadric error implementation 404.
Figure 5 illustrates a block diagram of an exemplary computing device configured to implement the mesh patch simplification method according to some embodiments. The computing device 500 is able to be used to acquire, store, compute, process, communicate and/or display information such as images and videos including 3D content. The computing device 500 is able to implement any of the encoding/decoding aspects. In general, a hardware structure suitable for implementing the computing device 500 includes a network interface 502, a memory 504, a processor 506, I/O device(s) 508, a bus 510 and a storage device 512. The choice of processor is not critical as long as a suitable processor with sufficient speed is chosen. The memory 504 is able to be any conventional computer memory known in the art. The storage device 512 is able to include a hard drive, CDROM, CDRW, DVD, DVDRW, High Definition disc/drive, ultra-HD drive, flash memory card or any other storage device. The computing device 500 is able to include one or more network interfaces 502. An example of a network interface includes a network card connected to an Ethernet or other type of LAN. The HO device(s) 508 are able to include one or more of the following: keyboard, mouse, monitor, screen, printer, modem, touchscreen, button interface and other devices. Mesh patch simplification application(s) 530 used to implement the mesh patch simplification implementation are likely to be stored in the storage device 512 and memory 504 and processed as applications are typically processed. More or fewer components shown in Figure 5 are able to be included in the computing device 500. In some embodiments, mesh patch simplification hardware 520 is included. Although the computing device 500 in Figure 5 includes applications 530 and hardware 520 for the mesh patch simplification implementation, the mesh patch simplification method is able to be implemented on a computing device in hardware, firmware, software or any combination thereof. For example, in some embodiments, the mesh patch simplification applications 530 are programmed in a memory and executed using a processor. In another example, in some embodiments, the mesh patch simplification hardware 520 is programmed hardware logic including gates specifically designed to implement the mesh patch simplification method.
In some embodiments, the mesh patch simplification 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 mesh patch simplification method, a device acquires or receives 3D content (e.g., point cloud content). The mesh patch simplification method is able to be implemented with user assistance or automatically without user involvement.
In operation, the mesh patch simplification method enables more efficient and more accurate 3D content encoding compared to previous implementations.
SOME EMBODIMENTS OF MESH PATCH SIMPLIFICATION
1. A method programmed in a non-transitory memory of a device comprising: generating a patch; and performing two dimensional patch mesh simplification to generate a new face list and a new vertex list.
2. The method of clause 1 wherein performing the two dimensional patch mesh simplification comprises a quadric error edge collapse implementation.
3. The method of clause 2 wherein the quadric error edge collapse implementation includes a half-edge collapse based on a quadric error metric.
4. The method of clause 1 wherein performing the two dimensional patch mesh simplification comprises a border distance edge collapse implementation. 5. The method of clause 4 wherein the border distance edge collapse implementation includes ordering a list of vertices according to a minimum distances to a border of the patch and collapsing a vertex with a neighboring vertex that is most distant to the border.
6. The method of clause 1 wherein performing the two dimensional patch mesh simplification comprises a border triangles only implementation.
7. The method of clause 6 wherein the border triangles only implementation comprises rotating a triangle so a first edge of the triangle is at a border.
8. The method of clause 6 further comprising implementing re-meshing at a decoder which includes marching cubes using border triangles and a decoded geometry video.
9. An apparatus comprising: a non-transitory memory for storing an application, the application for: generating a patch; and performing two dimensional patch mesh simplification to generate a new face list and a new vertex list; and a processor coupled to the memory, the processor configured for processing the application.
10. The apparatus of clause 9 wherein performing the two dimensional patch mesh simplification comprises a quadric error edge collapse implementation.
11. The apparatus of clause 10 wherein the quadric error edge collapse implementation includes a half-edge collapse based on a quadric error metric. 12. The apparatus of clause 9 wherein performing the two dimensional patch mesh simplification comprises a border distance edge collapse implementation.
13. The apparatus of clause 12 wherein the border distance edge collapse implementation includes ordering a list of vertices according to a minimum distances to a border of the patch and collapsing a vertex with a neighboring vertex that is most distant to the border.
14. The apparatus of clause 9 wherein performing the two dimensional patch mesh simplification comprises a border triangles only implementation.
15. The apparatus of clause 14 wherein the border triangles only implementation comprises rotating a triangle so a first edge of the triangle is at a border.
16. The apparatus of clause 14 wherein the application is further configured for implementing re-meshing at a decoder which includes marching cubes using border triangles and a decoded geometry video.
17. A system comprising: an encoder configured for: generating a patch; and performing two dimensional patch mesh simplification to generate a new face list and a new vertex list; and a decoder configured for: implementing re -meshing which includes marching cubes using border triangles and a decoded geometry video. 18. The system of clause 17 wherein performing the two dimensional patch mesh simplification comprises a quadric error edge collapse implementation.
19. The system of clause 18 wherein the quadric error edge collapse implementation includes a half-edge collapse based on a quadric error metric.
20. The system of clause 17 wherein performing the two dimensional patch mesh simplification comprises a border distance edge collapse implementation.
21. The system of clause 20 wherein the border distance edge collapse implementation includes ordering a list of vertices according to a minimum distances to a border of the patch and collapsing a vertex with a neighboring vertex that is most distant to the border.
22. The system of clause 17 wherein performing the two dimensional patch mesh simplification comprises a border triangles only implementation.
23. The system of clause 22 wherein the border triangles only implementation comprises rotating a triangle so a first edge of the triangle is at a border.
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

C L A I M S What is claimed is:
1. A method programmed in a non-transitory memory of a device comprising: generating a patch; and performing two dimensional patch mesh simplification to generate a new face list and a new vertex list.
2. The method of claim 1 wherein performing the two dimensional patch mesh simplification comprises a quadric error edge collapse implementation.
3. The method of claim 2 wherein the quadric error edge collapse implementation includes a half-edge collapse based on a quadric error metric.
4. The method of claim 1 wherein performing the two dimensional patch mesh simplification comprises a border distance edge collapse implementation.
5. The method of claim 4 wherein the border distance edge collapse implementation includes ordering a list of vertices according to a minimum distances to a border of the patch and collapsing a vertex with a neighboring vertex that is most distant to the border.
6. The method of claim 1 wherein performing the two dimensional patch mesh simplification comprises a border triangles only implementation.
7. The method of claim 6 wherein the border triangles only implementation comprises rotating a triangle so a first edge of the triangle is at a border.
8. The method of claim 6 further comprising implementing re -meshing at a decoder which includes marching cubes using border triangles and a decoded geometry video.
9. An apparatus comprising: a non-transitory memory for storing an application, the application for: generating a patch; and performing two dimensional patch mesh simplification to generate a new face list and a new vertex list; and a processor coupled to the memory, the processor configured for processing the application.
10. The apparatus of claim 9 wherein performing the two dimensional patch mesh simplification comprises a quadric error edge collapse implementation.
11. The apparatus of claim 10 wherein the quadric error edge collapse implementation includes a half-edge collapse based on a quadric error metric.
12. The apparatus of claim 9 wherein performing the two dimensional patch mesh simplification comprises a border distance edge collapse implementation.
13. The apparatus of claim 12 wherein the border distance edge collapse implementation includes ordering a list of vertices according to a minimum distances to a border of the patch and collapsing a vertex with a neighboring vertex that is most distant to the border.
14. The apparatus of claim 9 wherein performing the two dimensional patch mesh simplification comprises a border triangles only implementation.
15. The apparatus of claim 14 wherein the border triangles only implementation comprises rotating a triangle so a first edge of the triangle is at a border.
16. The apparatus of claim 14 wherein the application is further configured for implementing re-meshing at a decoder which includes marching cubes using border triangles and a decoded geometry video.
17. A system comprising: an encoder configured for: generating a patch; and performing two dimensional patch mesh simplification to generate a new face list and a new vertex list; and a decoder configured for: implementing re -meshing which includes marching cubes using border triangles and a decoded geometry video.
18. The system of claim 17 wherein performing the two dimensional patch mesh simplification comprises a quadric error edge collapse implementation.
19. The system of claim 18 wherein the quadric error edge collapse implementation includes a half-edge collapse based on a quadric error metric.
20. The system of claim 17 wherein performing the two dimensional patch mesh simplification comprises a border distance edge collapse implementation.
21. The system of claim 20 wherein the border distance edge collapse implementation includes ordering a list of vertices according to a minimum distances to a border of the patch and collapsing a vertex with a neighboring vertex that is most distant to the border.
22. The system of claim 17 wherein performing the two dimensional patch mesh simplification comprises a border triangles only implementation.
23. The system of claim 22 wherein the border triangles only implementation comprises rotating a triangle so a first edge of the triangle is at a border.
PCT/IB2023/052105 2022-03-25 2023-03-06 Mesh patch simplification WO2023180842A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202380013354.7A CN117940961A (en) 2022-03-25 2023-03-06 Mesh bin simplification

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202263269909P 2022-03-25 2022-03-25
US63/269,909 2022-03-25
US17/987,841 US20230306643A1 (en) 2022-03-25 2022-11-15 Mesh patch simplification
US17/987,841 2022-11-15

Publications (1)

Publication Number Publication Date
WO2023180842A1 true WO2023180842A1 (en) 2023-09-28

Family

ID=85724849

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/IB2023/052105 WO2023180842A1 (en) 2022-03-25 2023-03-06 Mesh patch simplification

Country Status (1)

Country Link
WO (1) WO2023180842A1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160371891A1 (en) * 2015-06-17 2016-12-22 Adobe Systems Incorporated Hybrid surfaces for mesh repair

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160371891A1 (en) * 2015-06-17 2016-12-22 Adobe Systems Incorporated Hybrid surfaces for mesh repair

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
DANILLO B GRAZIOSI (SONY) ET AL: "[V-CG] Sony's Dynamic Mesh Coding Call for Proposal Response", no. m59284, 24 April 2022 (2022-04-24), XP030301436, Retrieved from the Internet <URL:https://dms.mpeg.expert/doc_end_user/documents/138_OnLine/wg11/m59284-v2-m59284_Sony_Dynamic_Mesh_CfP_Response.zip m59284_Sony_Dynamic_Mesh_CfP_Response.docx> [retrieved on 20220424] *
GARLAND M ET AL: "Simplifying surfaces with color and texture using quadric error metrics", VISUALIZATION '98. PROCEEDINGS RESEARCH TRIANGLE PARK, NC, USA 18-23 OCT. 1998, PISCATAWAY, NJ, USA,IEEE, US, 18 October 1998 (1998-10-18), pages 263 - 269, 542, XP010321063, ISBN: 978-0-8186-9176-8, DOI: 10.1109/VISUAL.1998.745312 *
LILI WANG ET AL: "Simplification for texture mapping models with mesh segmentation", VIRTUAL SYSTEMS AND MULTIMEDIA (VSMM), 2010 16TH INTERNATIONAL CONFERENCE ON, IEEE, PISCATAWAY, NJ, USA, 20 October 2010 (2010-10-20), pages 197 - 203, XP031833932, ISBN: 978-1-4244-9027-1 *
WILLIAM J SCHROEDER ET AL: "Decimation of triangle meshes", COMPUTER GRAPHICS AND INTERACTIVE TECHNIQUES, ACM, 1 July 1992 (1992-07-01), pages 65 - 70, XP058086453, ISBN: 978-0-89791-479-6, DOI: 10.1145/133994.134010 *

Similar Documents

Publication Publication Date Title
US11348285B2 (en) Mesh compression via point cloud representation
US11373339B2 (en) Projection-based mesh compression
US11836953B2 (en) Video based mesh compression
US11190803B2 (en) Point cloud coding using homography transform
US11908169B2 (en) Dense mesh compression
US20230306643A1 (en) Mesh patch simplification
WO2023180842A1 (en) Mesh patch simplification
US20230306683A1 (en) Mesh patch sub-division
US20230306684A1 (en) Patch generation for dynamic mesh coding
US20230306687A1 (en) Mesh zippering
WO2023180841A1 (en) Mesh patch sub-division
WO2023180843A1 (en) Patch generation for dynamic mesh coding
US20240127537A1 (en) Orthoatlas: texture map generation for dynamic meshes using orthographic projections
US20230306642A1 (en) Patch mesh connectivity coding
WO2023180844A1 (en) Mesh zippering
US20230306641A1 (en) Mesh geometry coding
WO2024074962A1 (en) Efficient mapping coordinate creation and transmission
CN117897731A (en) Grid zipper fastener
WO2023180840A1 (en) Patch mesh connectivity coding
WO2023180839A1 (en) Mesh geometry coding
WO2023285996A1 (en) Task-driven machine learning-based representation and compression of point cloud geometry

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 23712605

Country of ref document: EP

Kind code of ref document: A1