IP Library › Granted Patent US 12,620,138
Granted Patent B2
US 12,620,138 · App. 18/431,521 · Granted May 5, 2026

Method and apparatus to quantize in multiple sub-meshes

Inventors: Thuong Nguyen Canh (San Bruno, CA); Xiaozhong Xu (Palo Alto, CA); Fang-Yi Chao (Palo Alto, CA); Shan Liu (Palo Alto, CA)
Assignee: TENCENT AMERICA LLC
G06T9/001G06T7/50G06T7/75G06T17/205G06T2210/12
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,620,138
App. No.
18/431,521
Granted
May 5, 2026
Kind
B2
Abstract

A method comprises receiving an input mesh comprising a plurality of sub-meshes; determining, for a respective sub-mesh in the plurality of sub-meshes, a sub-mesh bounding box that encloses the respective sub-mesh; determining, for the respective sub-mesh, a coordinate in the respective sub-mesh, wherein the coordinate is a minimum coordinate that has a smallest value in the respective sub-mesh; determining, for the respective sub-mesh, a first bitdepth based on the coordinate and the sub-mesh bounding box, wherein the first bitdepth is an adaptive bitdepth that varies according to an area of the respective sub-mesh; determining a second bitdepth that is a maximum of the first bitdepth for the respective sub-mesh and a first bit depth determined for each of the remaining sub-meshes from the plurality of sub-meshes; quantizing the respective sub-mesh based on the second bitdepth to generate a respective quantized sub-mesh; and encoding the respective quantized sub-mesh.

Claims (57)

1 . A method performed by at least one processor of an encoder, comprising:

receiving an input mesh comprising a plurality of sub-meshes;

determining, for a respective sub-mesh in the plurality of sub-meshes, a sub-mesh bounding box that encloses the respective sub-mesh;

determining, for the respective sub-mesh, a coordinate in the respective sub-mesh, wherein the determined coordinate is a minimum coordinate that has a smallest value in the respective sub-mesh;

determining, for the respective sub-mesh, a first bitdepth based on the determined coordinate and the determined sub-mesh bounding box, wherein the first bitdepth is an adaptive bitdepth that varies according to an area of the respective sub-mesh;

determining a second bitdepth that is a maximum of the first bitdepth for the respective sub-mesh and a first bit depth determined for each of the remaining sub-meshes from the plurality of sub-meshes;

quantizing the respective sub-mesh based on the second bitdepth to generate a respective quantized sub-mesh; and

encoding the respective quantized sub-mesh.

2 . The method according to claim 1 , wherein the first bitdepth for the respective sub-mesh is determined based on a summation of each face of the respective sub-mesh.

3 . The method according to claim 1 , wherein the first bitdepth of the respective sub-mesh is limited to a bitdepth range comprising a predetermined minimum bitdepth and a predetermined maximum bitdepth.

4 . The method according to claim 3 , wherein the bitdepth range is determined based on a difference in size of the sub-mesh bounding box determined for the respective sub-mesh and a sub-mesh bounding box determined for each remaining sub-mesh from the plurality of sub-meshes.

5 . The method according to claim 1 , wherein the plurality of sub-meshes include a first sub-mesh that is connected to a second sub-mesh, and

wherein the method further comprises:

separating the first sub-mesh from the second sub-mesh, and

adding at least one vertex that is included in both the first sub-mesh and the second sub-mesh.

6 . The method according to claim 5 ,

reducing a first bitdepth of the first sub-mesh based a difference between the second bitdepth and the first bitdepth of the first sub-mesh, the first bitdepth of the first sub-mesh determined according to an area of the first sub-mesh; and

performing quantization on the first sub-mesh based on the reduced first bitdepth.

7 . The method according to claim 6 ,

reducing a third bitdepth of the second sub-mesh based on a difference between the second bitdepth and the third bitdepth, the third bitdepth of the second sub-mesh determined according to an area of the second sub-mesh; and

performing quantization on the second sub-mesh based on the reduced third bitdepth.

8 . The method according to claim 1 , wherein the coordinate is a vertex coordinate.

9 . The method according to claim 1 , wherein the coordinate is a texture coordinate.

10 . An encoder comprising:

at least one memory configured to store program code; and

at least one processor configured to read the program code and operate as instructed by the program code, the program code comprising:

receiving code configured to cause the at least one processor to receive an input mesh comprising a plurality of sub-meshes,

first determining code configured to cause the at least one processor to determine, for a respective sub-mesh from the plurality of sub-meshes, a sub-mesh bounding box that encloses the respective sub-mesh,

second determining code configured to cause the at least one processor to determine, for the respective sub-mesh, a coordinate in the respective sub-mesh, wherein the determined coordinate is a minimum coordinate that has a smallest value in the respective sub-mesh,

third determining code configured to cause the at least one processor to determine a first bitdepth based on the determined coordinate and the determined sub-mesh bounding box, wherein the first bitdepth is an adaptive bitdepth that varies according to an area of the respective sub-mesh,

fourth determining code configured to cause the at least one processor to determine a second bitdepth that is a maximum of the first bitdepth for the respective sub-mesh and a first bit depth determined for each of the remaining sub-meshes from the plurality of sub-meshes,

first quantizing code configured to cause the at least one processor to quantize the respective sub-mesh based on the second bitdepth, and

encoding code configured to cause the at least one processor to encode the respective quantized sub-mesh.

11 . The encoder according to claim 10 , wherein the first bitdepth for the respective sub-mesh is determined based on a summation of each face of the respective.

12 . The encoder according to claim 10 , wherein the first bitdepth of the respective sub-mesh is limited to a bitdepth range comprising a predetermined minimum bitdepth and a predetermined maximum bitdepth.

13 . The encoder according to claim 12 , wherein the bitdepth range is determined based on a difference in size of the sub-mesh bounding box determined for the respective sub-mesh and a sub-mesh bounding box determined for each remaining sub-mesh from the plurality of sub-meshes.

14 . The encoder according to claim 10 , wherein the plurality of sub-meshes include a first sub-mesh that is connected to a second sub-mesh, and

wherein the program code further includes:

separating code configured to cause the at least one processor to separate the first sub-mesh from the second sub-mesh, and

first adding code configured to cause the at least one processor to add at least one vertex that is included in both the first sub-mesh and the second sub-mesh.

15 . The encoder according to claim 14 , wherein the program code further includes:

first reducing code configured to cause the at least one processor to reduce a first bitdepth of the first sub-mesh based a difference between the second bitdepth and the first bitdepth of the first sub-mesh, the first bitdepth of the first sub-mesh determined according to an area of the first sub-mesh, and

second quantizing code configured to cause the at least one processor to configured to perform quantization on the first sub-mesh based on the reduced first bitdepth.

16 . The encoder according to claim 15 , wherein the program code further includes:

second reducing code configured to cause the at least one processor to reduce a third bitdepth of the second sub-mesh based on a difference between the second bitdepth and the third bitdepth, the third bitdepth of the second sub-mesh determined according to an area of the second sub-mesh, and

third quantizing code configured to cause the at least one processor to perform quantization on the second sub-mesh based on the reduced third bitdepth.

17 . The encoder according to claim 10 , wherein the coordinate is a vertex coordinate.

18 . The encoder according to claim 10 , wherein the coordinate is a texture coordinate.

19 . A non-transitory computer readable medium having instructions stored therein, which when executed method performed by at least one processor of an encoder cause the encoder to execute a method comprising:

receiving an input mesh comprising a plurality of sub-meshes;

determining, for a respective sub-mesh from the plurality of sub-meshes, a sub-mesh bounding box that encloses the respective sub-mesh;

determining, for the respective sub-mesh, a coordinate in the respective sub-mesh, wherein the determined coordinate is a minimum coordinate that has a smallest value in the respective sub-mesh;

determining, for each sub-mesh, a first bitdepth based on the determined coordinate and the determined sub-mesh bounding box, wherein the first bitdepth is an adaptive bitdepth that varies according to an area of the respective sub-mesh;

determining a second bitdepth that is a maximum of the first bitdepth for the respective sub-mesh and a first bit depth determined for each of the remaining sub-meshes from the plurality of sub-meshes;

quantizing the respective sub-mesh based on the second bitdepth; and

encoding the respective quantized sub-mesh.

20 . The non-transitory computer readable medium according to claim 19 , wherein the first bitdepth for each sub-mesh is determined based on an area of a respective sub-mesh.

Continuity (2)
Provisional Application 63443666 · Feb 6, 2023
Related Publication 20240265584A1 · Aug 8, 2024
References Cited (28)
US 11568602B2 · Nakagami · 2023 [cited by examiner]
US 11893692B1 · Baize · 2024 [cited by examiner]
US 12033282B2 · Nadro · 2024 [cited by examiner]
US 12256098B1 · Mammou · 2025 [cited by examiner]
US 12293467B2 · Mason · 2025 [cited by examiner]
US 20090213131A1 · DeRose · 2009 [cited by examiner]
US 20180232912A1 · Nevraev · 2018 [cited by examiner]
US 20190147649A1 · Brochu · 2019 [cited by examiner]
US 20190206100A1 · Batra · 2019 [cited by examiner]
US 20190236809A1 · Graziosi · 2019 [cited by examiner]
US 20200111237A1 · Tourapis et al. · 2020 [cited by applicant]
US 20210217202A1 · Zakharchenko et al. · 2021 [cited by applicant]
US 20210304443A1 · Zhang · 2021 [cited by examiner]
US 20210343082A1 · Kim · 2021 [cited by examiner]
US 20220019852A1 · Eyjolfsdottir · 2022 [cited by examiner]
US 20220139038A1 · Lieutier · 2022 [cited by examiner]
US 20220301348A1 · Bradley · 2022 [cited by examiner]
US 20230149813A1 · Kohler · 2023 [cited by examiner]
US 20230237705A1 · Wan · 2023 [cited by examiner]
US 20230281925A1 · Aigerman · 2023 [cited by examiner]
US 20230298271A1 · Chen · 2023 [cited by examiner]
US 20240029392A1 · Fan · 2024 [cited by examiner]
US 20240233194A1 · Chen · 2024 [cited by examiner]
US 20250022181A1 · Tian · 2025 [cited by examiner]
US 20250259335A1 · Rondao Alface · 2025 [cited by examiner]
GB 2552510A · 2018 [cited by applicant]
International Search Report dated May 17, 2024, issued in International Application No. PCT/US 24/14417. [cited by applicant]
Written Opinion dated May 17, 2024, issued in International Application No. PCT/US 24/14417. [cited by applicant]