IP Library › Granted Patent US 12,299,941
Granted Patent B2
US 12,299,941 · App. 17/903,505 · Granted May 13, 2025

Vertex reordering for mesh compression

Inventors: Chao Huang (Palo Alto, CA); Xiang Zhang (Sunnyvale, CA); Jun Tian (Belle Mead, NJ); Xiaozhong Xu (State College, PA); Shan Liu (San Jose, CA)
Assignee: TENCENT AMERICA LLC
G06T9/001G06T17/20
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,299,941
App. No.
17/903,505
Granted
May 13, 2025
Kind
B2
Abstract

Aspects of the disclosure provide methods and apparatuses for mesh coding (e.g., compression and decompression). In some examples, an apparatus for mesh coding includes processing circuitry. The processing circuitry decodes an array of attributes from a bitstream carrying a three dimensional (3D) mesh frame that includes a plurality of patches. The array of attributes corresponds to vertices of the 3D mesh frame. The vertices of the 3D mesh frame are ordered into subsets respectively belonging to the plurality of patches. The processing circuitry determines a first portion of the array of attributes corresponding to a first subset of the vertices of the 3D mesh frame. The first subset belongs to a first patch in the plurality of patches. The processing circuitry determines first connectivity information of the first subset of the vertices, and reconstructs the first patch of the 3D mesh frame based on the first portion of the array of attributes and the first connectivity information.

Claims (65)

1. A method for mesh decompression, comprising:

decoding an array of attributes from a bitstream carrying a three dimensional (3D) mesh frame that includes a plurality of patches, the array of attributes corresponding to vertices of the 3D mesh frame, the vertices of the 3D mesh frame being ordered into subsets respectively belonging to the plurality of patches;

selecting a first portion of the array of attributes corresponding to a first subset of the vertices of the 3D mesh frame based on a first value decoded from the bitstream that is indicative of a total number of vertices in the first subset of the vertices of the 3D mesh frame, the first subset belonging to a first patch;

selecting attributes of boundary vertices in the first subset from the first portion of the array of attributes based on a second value, the second value being decoded from the bitstream and indicative of a total number of the boundary vertices in the first subset, the attributes of the boundary vertices being ordered before attributes of other vertices in the first subset;

determining first connectivity information of the first subset of the vertices; and

reconstructing the first patch of the 3D mesh frame based on the first portion of the array of attributes and the first connectivity information.

2. The method of claim 1 , wherein the decoding the array of attributes further comprises at least one of:

decoding a 2 dimensional (2D) image corresponding to an array of 3 dimensional coordinates of the vertices;

decoding a 2D image corresponding to an array of uv coordinates of the vertices; and/or

decoding a first 2D image and a second 2D image respectively corresponding to a first array of u coordinates of the vertices and a second array of v coordinates of the vertices.

3. The method of claim 1 , wherein the attributes of the boundary vertices comprise coordinates of the boundary vertices, and the method further comprises:

decoding boundary coordinate residuals for the boundary vertices; and

combining the coordinates of the boundary vertices with the boundary coordinate residuals of the boundary vertices to obtain recovered coordinates of the boundary vertices.

4. The method of claim 3 , wherein the coordinates of the boundary vertices comprises at least one of 3 dimensional (3D) coordinates of the boundary vertices and/or uv coordinates of the boundary vertices, and the boundary coordinate residuals for the boundary vertices comprises at least one of boundary 3D coordinates residuals and/or boundary uv coordinates residuals.

5. The method of claim 3 , further comprising:

detecting that a first vertex and a second vertex have identical coordinates; and

removing one of the first vertex and the second vertex from the reconstructing.

6. The method of claim 3 , further comprising:

detecting that a non-boundary vertex of the first patch is outside a boundary formed by the boundary vertices of the first patch; and

reconstructing the first patch of the 3D mesh frame without the non-boundary vertex.

7. The method of claim 1 , wherein the determining the first connectivity information of the first subset of the vertices further comprises:

inferring the first connectivity information of the first subset of the vertices.

8. The method of claim 1 , wherein the determining the first connectivity information of the first subset of the vertices further comprises:

decoding, from the bitstream, the first connectivity information of the first subset of the vertices.

9. A method for mesh encoding, comprising:

encoding an array of attributes of a three-dimensional (3D) mesh frame that includes a plurality of patches, the array of attributes corresponding to vertices of the 3D mesh frame, the vertices of the 3D mesh frame being ordered into subsets respectively belonging to the plurality of patches;

selecting a first portion of the array of attributes corresponding to a first subset of the vertices of the 3D mesh frame based on a first value that is indicative of a total number of vertices in the first subset, the first subset belonging to a first patch;

selecting attributes of boundary vertices in the first subset from the first portion of the array of attributes based on a second value indicative of a total number of the boundary vertices in the first subset, the attributes of the boundary vertices being ordered before attributes of other vertices in the first subset;

determining first connectivity information of the first subset of the vertices; and

encoding the first patch of the 3D mesh frame based on the first portion of the array of attributes and the first connectivity information.

10. The method of claim 9 , wherein the encoding the array of attributes further comprises at least one of:

encoding a 2-dimensional (2D) image corresponding to an array of 3 dimensional coordinates of the vertices;

encoding a 2D image corresponding to an array of uv coordinates of the vertices; and/or

encoding a first 2D image and a second 2D image respectively corresponding to a first array of u coordinates of the vertices and a second array of v coordinates of the vertices.

11. The method of claim 9 , further comprising:

encoding the first value that is indicative of the total number of vertices in the first subset of the vertices of the 3D mesh frame.

12. The method of claim 9 , further comprising: encoding the second value indicative of the total number of the boundary vertices in the first subset.

13. The method of claim 9 , wherein the attributes of the boundary vertices include coordinates of the boundary vertices, and the method further comprises:

encoding boundary coordinate residuals for the boundary vertices.

14. The method of claim 13 , wherein the coordinates of the boundary vertices comprises at least one of 3 dimensional (3D) coordinates of the boundary vertices and/or uv coordinates of the boundary vertices, and the boundary coordinate residuals for the boundary vertices comprises at least one of boundary 3D coordinates residuals and/or boundary uv coordinates residuals.

15. The method of claim 13 , further comprising:

detecting that a first vertex and a second vertex have identical coordinates; and

removing one of the first vertex and the second vertex from the first patch of the 3D mesh frame to be encoded.

16. The method of claim 13 , further comprising:

detecting that a non-boundary vertex of the first patch is outside a boundary formed by the boundary vertices of the first patch; and

encoding the first patch of the 3D mesh frame without the non-boundary vertex.

17. The method of claim 9 , wherein the determining the first connectivity information of the first subset of the vertices further comprises:

inferring the first connectivity information of the first subset of the vertices.

18. A method of processing mesh data, the method comprising:

processing a bitstream that includes the mesh data according to a format rule, wherein:

the bitstream includes an array of attributes carrying a three-dimensional (3D) mesh frame that includes a plurality of patches, the array of attributes corresponding to 3D mesh frame, the vertices of the 3D mesh frame being ordered into subsets respectively belonging to the plurality of patches; and

the format rule specifies that:

a first portion of the array of attributes corresponding to a first subset of the vertices of the 3D mesh frame is selected based on a first value decoded from the bitstream that is indicative of a total number of vertices in the first subset of the vertices of the 3D mesh frame, the first subset belonging to a first patch,

attributes of boundary vertices in the first subset are selected from the first portion of the array of attributes based on a second value, the second value being decoded from the bitstream and indicative of a total number of the boundary vertices in the first subset, the attributes of the boundary vertices being ordered before attributes of other vertices in the first subset,

first connectivity information of the first subset of the vertices is determined, and

the first patch of the 3D mesh frame is processed based on the first portion of the array of attributes and the first connectivity information.

19. The method of claim 18 , wherein the format rule specifies that:

a 2 dimensional ( 2 D) image corresponding to an array of 3 dimensional coordinates of the vertices is decoded;

a 2D image corresponding to an array of uv coordinates of the vertices is decoded; and/or

a first 2D image corresponding to a first array of u coordinates of the vertices and a second 2D image corresponding to a second array of v coordinates of the vertices are decoded respectively.

20. The method of claim 18 , wherein:

the attributes of the boundary vertices include coordinates of the boundary vertices; and

the format rule specifies that:

boundary coordinate residuals are decoded for the boundary vertices; and

the coordinates of the boundary vertices are combined with the boundary coordinate residuals of the boundary vertices to obtain recovered coordinates of the boundary vertices.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 6, 2022
From: HUANG, CHAO; ZHANG, XIANG; TIAN, JUN; XU, XIAOZHONG; LIU, SHAN
To: TENCENT AMERICA LLC
Reel/Frame 060998/0027 →
Continuity (3)
Provisional Application 63241876 · Sep 8, 2021
Provisional Application 63241883 · Sep 8, 2021
Related Publication 20230074762A1 · Mar 9, 2023
References Cited (25)
US 6047088A · Van Beek et al. · 2000 [cited by applicant]
US 20180253867A1 · Laroche · 2018 [cited by examiner]
US 20200279403A1 · Vosoughi · 2020 [cited by examiner]
US 20200286261A1 · Faramarzi · 2020 [cited by examiner]
US 20200351484A1 · Aflaki · 2020 [cited by examiner]
US 20210090301A1 · Mammou · 2021 [cited by examiner]
US 20210209806A1 · Oh et al. · 2021 [cited by applicant]
US 20220108483A1 · Graziosi · 2022 [cited by examiner]
US 20220164994A1 · Joshi · 2022 [cited by examiner]
US 20230068178A1 · Schwarz · 2023 [cited by examiner]
JP WO2022269944 · 2021 [cited by examiner]
WO 2020180161A1 · 2020 [cited by applicant]
WO 2021116838A1 · 2021 [cited by applicant]
J. Rossignac, “Edgebreaker: connectivity compression for triangle meshes,” in IEEE Transactions on Visualization and Computer Graphics, vol. 5, No. 1, pp. 47-61, Jan.-Mar. 1999. [cited by applicant]
Shewchuk, Jonathan Richard. “Delaunay refinement algorithms for triangular mesh generation.” Computational geometry, vol. 22, Issues 1-3, pp. 21-74, May 2002. [cited by applicant]
“G-PCC codec description”, WG 7, MPEG 3D Graphics Coding, 133. MPEG Meeting, Motion Picture Expert Group, ISO/IEC JTC 1/SC 29/WG 7 N0057, v10, No. n20028, XP030295805, 2021, 150 pages. [cited by applicant]
“White paper on Three-Dimensional Graphics Compression (3DGC)”, 117. MPEG Meeting, Geneva, Motion Picture Expert Group or ISO/IEC JTC1/SC29/WG11), No. n16662, XP030023330, Jan. 23, 2017. [cited by applicant]
Balagondar A., “Mesh compression: Theory & practice”, University of Windsor, 2005, 106 pages. [cited by applicant]
Extended European Search Report and Search Opinion received for European Application No. 22868279.5, mailed on Jul. 6, 2023, 12 pages. [cited by applicant]
Graziosi D.B., “Video-Based Dynamic Mesh Coding”, 2021 IEEE International conference on Image processing, ( ICIP 2021), IEEE, XP034123318, Sep. 19, 2021, pp. 3133-3137. [cited by applicant]
Graziosi et al., “[VPCC] [EE2.6-related] Mesh Geometry Smoothing Filter”, 132. MPEG Meeting, Motion Picture Expert Group or ISO/IEC JTC1/SC29/WG11, No. m55374, XP030291886, 2020, 6 pages. [cited by applicant]
Office Action received for Japanese Patent Application No. 2023-534146, mailed on May 7, 2024, 19 pages (9 pages of English Translation and 10 pages of Original Document). [cited by applicant]
Office Action received for Korean Patent Application No. 10-2023-7016037, mailed on Jul. 21, 2024, 11 pages (6 pages of English Translation and 5 pages of Original Document). [cited by applicant]
Villescas M.R., “3D Face Reconstruction using Structured Light on a Hand-held Device”, Eindhoven University of Technology, 2020, 88 pages. [cited by applicant]
Zhang et al., “[V-CG] Tencent's Dynamic Mesh Coding CfP Response”, 138. MPEG Meeting, Motion Picture Expert Group or ISO/IEC JTC1/SC29/WG11), No. m59295, XP030301455, Apr. 16, 2022. [cited by applicant]