IP Library › Granted Patent US 12,555,322
Granted Patent B2
US 12,555,322 · App. 18/121,821 · Granted Feb 17, 2026

Compression of mesh geometry based on 3D patch contours

Inventors: Aleksei Martemianov (Tampere, FI); Sebastian Schwarz (Unterhaching, DE); Patrice Rondao Alface (Evere, BE); Lauri Aleksi IIola (Munich, DE); Lukasz Kondrad (Munich, DE)
Assignee: Nokia Technologies Oy
G06T17/20G06T9/001H04N19/597
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,555,322
App. No.
18/121,821
Filed
Mar 15, 2023
Granted
Feb 17, 2026
Kind
B2
Art Unit
2612
USPC
345/423
Abstract

An apparatus includes one or more processors, and one or more memories storing instructions that, when executed by the one or more processors, cause the apparatus to: segment, for a frame of three-dimensional object data, a mesh of the three-dimensional object data into one or more patches; determine contours of the one or more patches, wherein the contours of the one or more patches comprise one or more vertices having one or more connected neighboring vertices belonging to another patch, or one or more vertices on a border of the mesh; generate a contour mesh of the three-dimensional object data using the contours of the one or more patches, wherein the contour mesh comprises a plurality of the one or more patches; and encode the contour mesh of the three-dimensional object data into a bitstream using a coding method.

Claims (71)

1 . 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:

segment, for a frame of three-dimensional object data, a mesh of the three-dimensional object data into at least one patch;

determine contours of the at least one patch, wherein the contours of the at least one patch comprise at least one vertex having at least one connected neighboring vertex belonging to another patch, or at least one vertex on a border of the mesh;

generate a contour mesh of the three-dimensional object data using the contours of the at least one patch, wherein the contour mesh comprises a plurality of the at least one patch;

encode the contour mesh of the three-dimensional object data into a bitstream using a coding method;

wherein the contour mesh of the three-dimensional object data is generated as a result of removing all inner vertices of the mesh of the three-dimensional object data and keeping border vertices, and adding a central point as a virtual point to the at least one patch of the contour mesh that connects to the contours of the at least one patch of the contour mesh;

signal a first attribute of the virtual point that is at a center of the at least one patch of the contour mesh, wherein the first attribute of the virtual point that is at the center of the at least one patch of the contour mesh that is signaled comprises a patch index that indicates the at least one patch the virtual point belongs to; and

signal a second attribute of the virtual point that is at the center of the at least one patch of the contour mesh, wherein the second attribute of the virtual point that is at the center of the at least one patch of the contour mesh that is signaled comprises an indication of whether the virtual point is related to an external contour of the at least one patch or an inner contour of the at least one patch.

2 . The apparatus of claim 1 , wherein the at least one memory stores instructions that, when executed by the at least one processor, cause the apparatus at least to:

generate the at least one patch with clustering faces sharing a common feature at a normal direction of the faces that maps to a common projection plane.

3 . The apparatus of claim 1 , wherein the at least one memory stores instructions that, when executed by the at least one processor, cause the apparatus at least to:

signal inner contours of the at least one patch of the contour mesh to indicate to a decoder to not reconstruct a surface inside the inner contours of the at least one patch, wherein the contours of the at least one patch of the contour mesh comprise external contours of the at least one patch of the contour mesh and the inner contours of the at least one patch of the contour mesh.

4 . The apparatus of claim 1 , wherein the at least one memory stores instructions that, when executed by the at least one processor, cause the apparatus at least to:

determine the virtual point to be within a middle position of the at least one patch.

5 . The apparatus of claim 1 , wherein:

the virtual point is determined as a projection of a center of gravity of the at least one patch using a visual volumetric video-based coding projection plane normal direction of the at least one patch, or

the virtual point is determined as a geodesic center of gravity of the at least one patch.

6 . The apparatus of claim 1 , wherein the at least one memory stores instructions that, when executed by the at least one processor, cause the apparatus at least to:

triangulate the at least one patch with connecting the contours of the at least one patch to the virtual point, to represent the at least one patch as a triangle fan around the virtual point.

7 . The apparatus of claim 1 , wherein the at least one memory stores instructions that, when executed by the at least one processor, cause the apparatus at least to:

signal a third attribute of the virtual point that is at the center of the at least one patch of the contour mesh, wherein the third attribute of the virtual point that is at the center of the at least one patch of the contour mesh that is signaled comprises an indication of whether the virtual point a vertex at the center of the at least one patch.

8 . The apparatus of claim 1 , wherein the at least one memory stores instructions that, when executed by the at least one processor, cause the apparatus at least to:

determine another virtual point at a middle position of an inner contour of the at least one patch, when the virtual point is not within the inner contour of the at least one patch; and

triangulate the inner contour of at least one patch with connecting contours of the inner contour of the at least one patch to the another virtual point, to represent the inner contour of the at least one patch as a triangle fan around the another virtual point.

9 . The apparatus of claim 1 , wherein the at least one memory stores instructions that, when executed by the at least one processor, cause the apparatus at least to:

decimate the segmented mesh so that contour vertices of the mesh of the three-dimensional object data are preserved while generating the contour mesh, to generate triangles around the contours and triangles covering inner vertices of the at least one patch, wherein the triangles around the contours are smaller than the triangles covering the inner vertices of the at least one patch.

10 . The apparatus of claim 1 , 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 contours of the at least one patch; and

signal virtual points of the plurality of the at least one patch including the virtual point.

11 . The apparatus of claim 1 , wherein the at least one memory stores instructions that, when executed by the at least one processor, cause the apparatus at least to:

encode a geometry component and a texture component of the at least one patch within at least one padded atlas, wherein the geometry component and the texture component comprise contour vertices and inner vertices; or

encode a geometry component and a texture component of the at least one patch within at least one padded atlas, wherein the geometry component and the texture component comprise inner vertices without contour vertices.

12 . The apparatus of claim 1 , wherein the at least one memory stores instructions that, when executed by the at least one processor, cause the apparatus at least to:

encode inner geometry values as a residual between an original geometry surface and a prediction surface formed with patches of the contour mesh;

wherein the prediction surface is formed based on a triangulation of a contour, or based on a minimal surface spanned with the contour following projecting the contour on a projection plane of the at least one patch.

13 . The apparatus of claim 1 , wherein the at least one memory stores instructions that, when executed by the at least one processor, cause the apparatus at least to:

transmit the contour mesh to a decoder as a multiplexing of the contour mesh and a visual volumetric video-based coding bitstream.

14 . 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:

decode, for a frame of three-dimensional object data, a base mesh of the three-dimensional object data, wherein the base mesh has been generated using contours of at least one patch of a mesh of the three-dimensional object data;

wherein the contour mesh of the three-dimensional object data is generated as a result of removing all inner vertices of the mesh of the three-dimensional object data and keeping border vertices, and adding a central point as a virtual point to the at least one patch of the contour mesh that connects to the contours of the at least one patch of the contour mesh;

wherein the base mesh of three-dimensional object data has been encoded into a bitstream using a coding method;

decode, for the frame, the at least one patch of the mesh of the three-dimensional object data, wherein the base mesh comprises a plurality of the at least one patch;

combine patches of the plurality of the at least one patch to reconstruct the mesh of the three-dimensional object data, based on the decoded base mesh and the decoded at least one patch;

receive signaling of a first attribute of the virtual point that is at a center of the at least one patch of the contour mesh, wherein the first attribute of the virtual point that is at the center of the at least one patch of the contour mesh that is signaled comprises a patch index that indicates the at least one patch the virtual point belongs to;

receive signaling of a second attribute of the virtual point that is at the center of the at least one patch of the contour mesh, wherein the second attribute of the virtual point that is at the center of the at least one patch of the contour mesh that is signaled comprises an indication of whether the virtual point is related to an external contour of the at least one patch or an inner contour of the at least one patch;

wherein the at least one patch is decoded using the patch index that indicates the at least one patch the virtual point belongs to, and the indication of whether the virtual point is related to an external contour of the at least one patch or an inner contour of the at least one patch.

15 . The apparatus of claim 14 , wherein the at least one memory stores instructions that, when executed by the at least one processor, cause the apparatus at least to:

remove central points and triangles from the base mesh; and

keep contours of the mesh, and for a contour, keep a list of patches the contour belongs to.

16 . The apparatus of claim 14 , wherein the at least one memory stores instructions that, when executed by the at least one processor, cause the apparatus at least to:

predict a surface of the at least one patch based on received signaling;

wherein the at least one patch of the three-dimensional object data is decoded using the predicted surface.

17 . The apparatus of claim 14 , wherein patches of the plurality of the at least one patch are combined with fusing a position of a patch pixel at a boundary of the decoded patch with a closest three-dimensional point of the base mesh.

18 . The apparatus of claim 14 , wherein the at least one memory stores instructions that, when executed by the at least one processor, cause the apparatus at least to:

demultiplex the base mesh of the three-dimensional object data and a visual volumetric video-based coding bitstream.

19 . 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:

signal within a bitstream a flag indicating the presence of a multiplexed contour mesh of three-dimensional object data;

signal within the bitstream whether the contour mesh has been predictively encoded;

signal within the bitstream a predictive function, in response to the contour mesh having been predictively encoded;

signal within the bitstream a flag indicating whether delta values have been encoded for geometry data of the contour mesh;

signal contour points used to combine patch borders of the contour mesh;

wherein the contour mesh of the three-dimensional object data is generated as a result of removing all inner vertices of the mesh of the three-dimensional object data and keeping border vertices, and adding a central point as a virtual point to the at least one patch of the contour mesh that connects to the contours of the at least one patch of the contour mesh;

signal a first attribute of the virtual point that is at a center of the at least one patch of the contour mesh, wherein the first attribute of the virtual point that is at the center of the at least one patch of the contour mesh that is signaled comprises a patch index that indicates the at least one patch the virtual point belongs to; and

signal a second attribute of the virtual point that is at the center of the at least one patch of the contour mesh, wherein the second attribute of the virtual point that is at the center of the at least one patch of the contour mesh that is signaled comprises an indication of whether the virtual point is related to an external contour of the at least one patch or an inner contour of the at least one patch.

20 . The apparatus of claim 19 , wherein the bitstream comprises a visual volumetric video-based coding bitstream.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 23, 2025
From: MARTEMIANOV, ALEKSEI
To: NOKIA TECHNOLOGIES OY
Reel/Frame 070925/0939 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 23, 2025
From: ALFACE, PATRICE RONDAO
To: NOKIA BELL NV
Reel/Frame 070926/0064 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 23, 2025
From: SCHWARZ, SEBASTIAN; ILOLA, LAURI ALEKSI; KONDRAD, LUKASZ
To: NOKIA SOLUTIONS AND NETWORKS GMBH & CO. KG
Reel/Frame 070926/0103 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 23, 2025
From: NOKIA BELL NV
To: NOKIA TECHNOLOGIES OY
Reel/Frame 070926/0156 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 23, 2025
From: NOKIA SOLUTIONS AND NETWORKS GMBH & CO. KG
To: NOKIA TECHNOLOGIES OY
Reel/Frame 070926/0160 →
Continuity (2)
Provisional Application 63323322 · Mar 24, 2022
Related Publication 20230326138A1 · Oct 12, 2023
References Cited (8)
US 6587104B1 · Hoppe · 2003 [cited by examiner]
US 11948338B1 · Mammou · 2024 [cited by examiner]
US 20120262444A1 · Stefanoski · 2012 [cited by examiner]
US 20210090301A1 · Mammou · 2021 [cited by examiner]
US 20220108483A1 · Graziosi · 2022 [cited by examiner]
ISO/IEC JTC 1/SC 29/WG 11 “ISO/IEC FDIS 23090-5 Visual Volumetric Video-Based Coding and Video-based Point Cloud Compression” Sep. 21, 2020. [cited by applicant]
Wikipedia “Polygon Mesh” https://en.wikipedia.org/wiki/Polygon_mesh retrieved Jun. 15, 2023. [cited by applicant]
Draco “3D Data Compression” https://google.github.io/draco retrieved Jun. 28, 2023. [cited by applicant]