Patch creation and signaling for V3C dynamic mesh compression
A method includes receiving a parameterized mesh, the mesh defining a shape and attributes of an object in three-dimensional space; compressing the mesh to generate a two-dimensional patch of the mesh; and signaling at least one of: projection plane changes within the patch to support patches wrapping around a three-dimensional model; separation of attribute and geometry patch level of detail scaling to support at least one high resolution attribute patch alongside at least one lower resolution geometry patch, reflecting at least one feature of at least one lower vertex count mesh; or separation of attribute and geometry patch orientation for image packing.
1 . A method comprising:
receiving a parameterized mesh, the mesh defining a shape and attributes of an object in three-dimensional space;
compressing the mesh to generate a two-dimensional patch of the mesh;
wherein the compressing of the mesh to generate the two-dimensional patch of the mesh comprises: generating a texture patch from a texture map and face information within the mesh, to determine texture coordinates of vertices on the texture map, and generating a geometry patch using the texture coordinates, to determine a subsampling factor for a geometry map;
signaling separation of attribute and geometry patch level of detail scaling to support at least one high resolution attribute patch alongside at least one lower resolution geometry patch, reflecting at least one feature of at least one lower vertex count mesh; and
signaling at least one of:
projection plane changes within the patch to support patches wrapping around a three-dimensional model, or
separation of attribute and geometry patch orientation for image packing.
2 . The method of claim 1 , wherein the geometry map subsampling factor is determined based on at least one of:
a patch size in x-direction or y-direction;
a number of vertices in a patch;
an overall patch resolution; or
a content of a patch.
3 . The method of claim 1 , wherein the compressing of the mesh to generate the two-dimensional patch of the mesh comprises:
reprojecting a texture patch after generating a geometry patch so that coordinate texture coordinates of a texture map correspond with the geometry patch.
4 . The method of claim 1 , further comprising signaling changes in dominant projection direction within a patch.
5 . The method of claim 1 , further comprising disallowing changes in dominant projection direction within a patch, such that changes in the dominant projection direction lead to creation of a new patch.
6 . A method comprising:
receiving a compressed parameterized mesh, the mesh defining a shape and attributes of an object in three-dimensional space;
decompressing the mesh from a two-dimensional patch of the mesh;
wherein the two-dimensional patch of the mesh has been generated by generating a texture patch from a texture map and face information within the mesh, to determine texture coordinates of vertices on the texture map, and generating a geometry patch using the texture coordinates, to determine a subsampling factor for a geometry map;
receiving signaling of separation of attribute and geometry patch level of detail scaling to support at least one high resolution attribute patch alongside at least one lower resolution geometry patch, reflecting at least one feature of at least one lower vertex count mesh; and
receiving signaling of at least one of:
projection plane changes within the patch to support patches wrapping around a three-dimensional model, or
separation of attribute and geometry patch orientation for image packing.
7 . An apparatus comprising:
at least one processor; and
at least one memory storing instructions that, when executed by the at least one processor, cause the apparatus at least to:
receive a parameterized mesh, the mesh defining a shape and attributes of an object in three-dimensional space;
compress the mesh to generate a two-dimensional patch of the mesh;
wherein the compressing of the mesh to generate the two-dimensional patch of the mesh comprises: generating a texture patch from a texture map and face information within the mesh, to determine texture coordinates of vertices on the texture map, and generating a geometry patch using the texture coordinates, to determine a subsampling factor for a geometry map;
signal separation of attribute and geometry patch level of detail scaling to support at least one high resolution attribute patch alongside at least one lower resolution geometry patch, reflecting at least one feature of at least one lower vertex count mesh; and
signal at least one of:
projection plane changes within the patch to support patches wrapping around a three-dimensional model, or
separation of attribute and geometry patch orientation for image packing.
8 . The apparatus of claim 7 , wherein the geometry map subsampling factor is determined based on at least one of:
a patch size in x-direction or y-direction;
a number of vertices in a patch;
an overall patch resolution; or
a content of a patch.
9 . The apparatus of claim 7 , wherein the compressing of the mesh to generate the two-dimensional patch of the mesh comprises:
reprojecting a texture patch after generating a geometry patch so that coordinate texture coordinates of a texture map correspond with the geometry patch.
10 . The apparatus of claim 7 , wherein the at least one memory stores instructions that, when executed by the at least one processor, cause the apparatus at least to:
signal changes in dominant projection direction within a patch.
11 . The apparatus of claim 7 , wherein the at least one memory stores instructions that, when executed by the at least one processor, cause the apparatus at least to:
disallow changes in dominant projection direction within a patch, such that changes in the dominant projection direction lead to creation of a new patch.
12 . The apparatus of claim 7 , wherein the at least one memory stores instructions that, when executed by the at least one processor, cause the apparatus at least to:
allow changes in dominant projection direction within a patch.
13 . The apparatus of claim 12 , wherein the at least one memory stores instructions that, when executed by the at least one processor, cause the apparatus at least to:
signal the changes in the dominant projection direction.
14 . The apparatus of claim 12 , wherein the at least one memory stores instructions that, when executed by the at least one processor, cause the apparatus at least to:
determine whether to split the patch.
15 . The apparatus of claim 14 , wherein determining whether to split the patch is based on at least one criterion comprising at least one of:
a bitrate for signaling;
a complexity of the changes in the dominant projection direction;
a number of possible new patches created; or
a total number of patches.
16 . The apparatus of claim 7 , wherein the signaling of the projection plane changes within the patch to support patches wrapping around the three-dimensional model comprises at least one of:
signaling dominant projection direction changes in steps, after a number of geometry values and following an orientation and direction;
signaling dominant projection direction changes explicitly, after a number of geometry values and following an orientation and direction; or
signaling dominant projection direction changes and patch three-dimensional metadata explicitly, after a number of geometry values and following an orientation and direction.
17 . The apparatus of claim 7 , wherein the signaling of the separation of attribute and geometry patch level of detail scaling to support the at least one high resolution attribute patch alongside the at least one lower resolution geometry patch, reflecting the at least one feature of at least one lower vertex count mesh comprises at least one of:
per patch signaling;
a flag that specifies whether separated level of detail parameters are present for a current patch of a current atlas tile;
a level of detail scaling factor to be applied to a local x-coordinate of a point in an attribute patch with an index of the current atlas tile; or
a level of detail scaling factor to be applied to a local y-coordinate of the point in the attribute patch with the index of the current atlas tile.
18 . An apparatus comprising:
at least one processor; and
at least one memory storing instructions that, when executed by the at least one processor, cause the apparatus at least to:
receive a compressed parameterized mesh, the mesh defining a shape and attributes of an object in three-dimensional space;
decompress the mesh from a two-dimensional patch of the mesh;
wherein the two-dimensional patch of the mesh has been generated by generating a texture patch from a texture map and face information within the mesh, to determine texture coordinates of vertices on the texture map, and generating a geometry patch using the texture coordinates, to determine a subsampling factor for a geometry map;
receive signaling of separation of attribute and geometry patch level of detail scaling to support at least one high resolution attribute patch alongside at least one lower resolution geometry patch, reflecting at least one feature of at least one lower vertex count mesh; and
receive signaling of at least one of:
projection plane changes within the patch to support patches wrapping around a three-dimensional model, or
separation of attribute and geometry patch orientation for image packing.