Efficient coding of attributes in polygon mesh compression
Abstract
A bitstream that includes attribute information of a plurality of UV vertices corresponding to a mesh is received. A seam vertex queue that includes one or more UV vertices of the plurality of UV vertices is generated. Each of the one or more UV vertices in the seam vertex queue belongs to a respective UV vertex group of a plurality of seam UV vertex groups. Each of the plurality of seam UV vertex groups corresponds to a same three-dimensional (3D) vertex of the mesh in a 3D space. An initial UV vertex of the mesh is determined based on whether one of the one or more UV vertices in the seam vertex queue includes an unvisited UV vertex. UV coordinates of the mesh are reconstructed based on the initial UV vertex.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1 . A method of mesh decoding, comprising:
receiving a bitstream that includes attribute information of a plurality of UV vertices corresponding to a mesh; generating a seam vertex queue that includes one or more UV vertices of the plurality of UV vertices, each of the one or more UV vertices in the seam vertex queue belonging to a respective UV vertex group of a plurality of seam UV vertex groups, each of the plurality of seam UV vertex groups corresponding to a same three-dimensional (3D) vertex of the mesh in a 3D space; determining an initial UV vertex of the mesh based on whether one of the one or more UV vertices in the seam vertex queue includes an unvisited UV vertex; and reconstructing UV coordinates of the mesh based on the initial UV vertex.
2 . The method of claim 1 , wherein the determining the initial UV vertex of the mesh further comprises:
when a top UV vertex of the seam vertex queue has the unvisited UV vertex in the seam UV vertex group of the top UV vertex, determining a first unvisited UV vertex of the seam UV vertex group of the top UV vertex as the initial UV vertex; and determining a visited UV vertex immediately before the initial UV vertex in the seam UV vertex group of the top UV vertex as a reference UV vertex of the initial UV vertex.
3 . The method of claim 1 , wherein the determining the initial UV vertex of the mesh further comprises:
when a top UV vertex of the seam vertex queue has no unvisited UV vertices that are in the seam UV vertex group of the top UV vertex, determining whether a UV vertex subsequent to the top UV vertex in the seam vertex queue has one or more unvisited UV vertices that are in the seam UV vertex group of the subsequent UV vertex; and determining a first unvisited UV vertex of the one or more unvisited vertices in the seam UV vertex group of the subsequent vertex as the initial UV vertex when the subsequent UV vertex in the seam vertex queue has the one or more unvisited UV vertices.
4 . The method of claim 1 , wherein the determining the initial UV vertex of the mesh further comprises:
when the seam vertex queue is empty, determining whether another seam vertex queue of the mesh includes one or more unvisited UV vertices; when the other seam vertex queue of the mesh includes the one or more unvisited UV vertices, determining one of the one or more unvisited UV vertices in the other seam vertex queue as the initial vertex; and determining a visited UV vertex immediately before the initial UV vertex as a reference UV vertex of the initial UV vertex.
5 . The method of claim 2 , wherein the reconstructing further comprises:
reconstructing UV coordinates of the initial UV vertex based on UV coordinates of the reference UV vertex of the initial UV vertex.
6 . The method of claim 1 , wherein the reconstructing further comprises:
determining an initial face based on the initial UV vertex, the initial face being incident to the initial UV vertex and including a subset of the plurality of UV vertices of the mesh; and reconstructing UV coordinates of a second UV vertex of the initial face based on UV coordinates of the initial UV vertex.
7 . The method of claim 2 , wherein the reconstructing further comprises:
determining an initial face based on the initial UV vertex, the initial face being incident to the initial UV vertex and including a subset of the plurality of UV vertices of the mesh; determining a reference face that is incident to the reference UV vertex; and reconstructing UV coordinates of a second UV vertex of the initial face based on UV coordinates of a UV vertex in the reference face that is prior to the reference UV vertex.
8 . The method of claim 1 , wherein the reconstructing further comprises:
determining an initial face based on the initial UV vertex, the initial face being incident to the initial UV vertex and including a subset of the plurality of UV vertices of the mesh; reconstructing UV coordinates of a third UV vertex of the initial face based on a stretch prediction; and reconstructing UV coordinates of a UV vertex of the initial face that is different from the initial UV vertex, a second UV vertex, and the third UV vertex based on a within-parallelogram prediction.
9 . The method of claim 1 , further comprising:
determining a current UV vertex in a same seam UV vertex group as the initial UV vertex, the current UV vertex being unvisited; and reconstructing UV vertices of a current face that is incident to the current UV vertex.
10 . The method of claim 9 , wherein the reconstructing the UV vertices of the current face further comprises:
reconstructing UV coordinates of the current UV vertex of the current face based on UV coordinates of a preceding visited UV vertex in the same seam UV vertex group; reconstructing UV coordinates of a second UV vertex of the current face based on UV coordinates of a UV vertex prior to a preceding UV vertex of the second UV vertex in a preceding face that is incident to the preceding UV vertex when (i) UV coordinates of the current UV vertex is same as UV coordinates of the preceding visited UV vertex or (ii) a distance between the UV coordinates of the current UV vertex and the UV coordinates of the preceding visited UV vertex is smaller than a predefined threshold; and reconstructing the UV coordinates of the second UV vertex of the current face based on the reconstructed UV coordinates of the current UV vertex when the UV coordinates of the current UV vertex and the UV coordinates of the preceding visited UV vertex are different.
11 . The method of claim 1 , further comprising:
reconstructing a first component n 1 of a first normal n of the mesh and a second component n 2 of the first normal n based on the attribute information of the mesh in the bitstream; reconstructing a third component n 3 of the first normal n as a square root of (1−n 1 2 −n 2 2 ) when the third component n 3 is equal to or larger than zero; and reconstructing the third component n 3 of the first normal n as a negative square root of (1−n 1 2 −n 2 2 ) when the third component n 3 is less than zero.
12 . A method of mesh encoding, comprising:
generating a seam vertex queue that includes one or more UV vertices of a plurality of UV vertices of a mesh, each of the one or more UV vertices in the seam vertex queue belonging to a respective UV vertex group of a plurality of seam UV vertex groups, each of the plurality of seam UV vertex groups corresponding to a same three-dimensional (3D) vertex of the mesh in a 3D space; determining an initial UV vertex of the mesh based on whether one of the one or more UV vertices in the seam vertex queue includes an unvisited UV vertex; and encoding UV coordinates of the mesh based on the initial UV vertex.
13 . The method of claim 12 , wherein the determining the initial UV vertex of the mesh further comprises:
when a top UV vertex of the seam vertex queue has the unvisited UV vertex in the seam UV vertex group of the top UV vertex, determining a first unvisited UV vertex of the seam UV vertex group of the top UV vertex as the initial UV vertex; and determining a visited UV vertex immediately before the initial UV vertex in the seam UV vertex group of the top UV vertex as a reference UV vertex of the initial UV vertex.
14 . The method of claim 12 , wherein the determining the initial UV vertex of the mesh further comprises:
when a top UV vertex of the seam vertex queue has no unvisited UV vertices that are in the seam UV vertex group of the top UV vertex, determining whether a UV vertex subsequent to the top UV vertex in the seam vertex queue has one or more unvisited UV vertices that are in the seam UV vertex group of the subsequent UV vertex; and determining a first unvisited UV vertex of the one or more unvisited vertices in the seam UV vertex group of the subsequent vertex as the initial UV vertex when the subsequent UV vertex in the seam vertex queue has the one or more unvisited UV vertices.
15 . The method of claim 12 , wherein the determining the initial UV vertex of the mesh further comprises:
when the seam vertex queue is empty, determining whether another seam vertex queue of the mesh includes one or more unvisited UV vertices; when the other seam vertex queue of the mesh includes the one or more unvisited UV vertices, determining one of the one or more unvisited UV vertices in the other seam vertex queue as the initial vertex; and determining a visited UV vertex immediately before the initial UV vertex as a reference UV vertex of the initial UV vertex.
16 . The method of claim 13 , wherein the encoding further comprises:
encoding UV coordinates of the initial UV vertex based on UV coordinates of the reference UV vertex of the initial UV vertex.
17 . The method of claim 12 , wherein the encoding further comprises:
determining an initial face based on the initial UV vertex, the initial face being incident to the initial UV vertex and including a subset of the plurality of UV vertices of the mesh; and encoding UV coordinates of a second UV vertex of the initial face based on UV coordinates of the initial UV vertex.
18 . The method of claim 13 , wherein the encoding further comprises:
determining an initial face based on the initial UV vertex, the initial face being incident to the initial UV vertex and including a subset of the plurality of UV vertices of the mesh; determining a reference face that is incident to the reference UV vertex; and encoding UV coordinates of a second UV vertex of the initial face based on UV coordinates of a UV vertex in the reference face that is prior to the reference UV vertex.
19 . The method of claim 12 , wherein the encoding further comprises:
determining an initial face based on the initial UV vertex, the initial face being incident to the initial UV vertex and including a subset of the plurality of UV vertices of the mesh; encoding UV coordinates of a third UV vertex of the initial face based on a stretch prediction; and encoding UV coordinates of a UV vertex of the initial face that is different from the initial UV vertex, a second UV vertex, and the third UV vertex based on a within-parallelogram prediction.
20 . A method of processing mesh data, the method comprising:
processing a bitstream of the mesh data according to a format rule, wherein:
the bitstream includes attribute information of a plurality of UV vertices corresponding to a mesh; and
the format rule specifies that:
a seam vertex queue that includes one or more UV vertices of the plurality of UV vertices is generated, each of the one or more UV vertices in the seam vertex queue belonging to a respective UV vertex group of a plurality of seam UV vertex groups, each of the plurality of seam UV vertex groups corresponding to a same three-dimensional (3D) vertex of the mesh in a 3D space;
an initial UV vertex of the mesh is determined based on whether one of the one or more UV vertices in the seam vertex queue includes an unvisited UV vertex; and
UV coordinates of the mesh are processed based on the initial UV vertex.Join the waitlist — get patent alerts
Track US2025157083A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.