IP Library Granted Patent US 10,643,352
Granted Patent B2
US 10,643,352 · App. 15/951,969 · Granted May 5, 2020

Vertex split connectivity prediction for improved progressive mesh compression

Inventors: Michael Hemmer (San Francisco, CA); Pierre Alliez (Sophia-Antipolis, FR); Cedric Portaneri (Sophia-Antipolis, FR)
Assignee: GOOGLE 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 10,643,352
App. No.
15/951,969
Granted
May 5, 2020
Kind
B2
Abstract

An encoder includes a processor and a memory. The encoder may perform a method of progressive compression. In one example implementation, the method may include identifying a pair of partitioning vertices to be connected to a split vertex associated with a collapse of an edge, creating the split vertex by collapsing the edge, encoding partitioning vertex information associated with the pair of partitioning vertices, the encoding of the partitioning vertex information based on an ordering of vertices of an umbrella of the split vertex, and the ordering of vertices of the umbrella determined based on a geometric shape and connectivity of the umbrella, and generating vertex split information that includes the partitioning vertex information. In another example implementation, the method may include entropy encoding the vertex split information prior to being transmitted.

Claims (50)

1. A computer-implemented method of progressive mesh compression, comprising:

identifying, by an encoder, a pair of partitioning vertices to be connected to a split vertex associated with a collapse of an edge;

creating, by the encoder, the split vertex by collapsing the edge;

encoding, by the encoder, partitioning vertex information associated with the pair of partitioning vertices, the encoding of the partitioning vertex information based on an ordering of vertices of an umbrella of the split vertex, and the ordering of vertices of the umbrella determined based on a distance between the vertices of the umbrella and a perpendicular bisector of a diameter of the umbrella; and

generating, by the encoder, vertex split information that includes the partitioning vertex information.

2. The method of claim 1 , further comprising:

entropy encoding of the vertex split information.

3. The method of claim 1 , further comprising:

transmitting, from the encoder, the vertex split information to a decoder in response to a message received from the decoder.

4. The method of claim 1 , wherein the ordering of vertices of the umbrella further comprises:

determining the diameter of the umbrella, the diameter being determined based on a maximum possible distance between a pair of the vertices of the umbrella;

determining the distance between each of the vertices of the umbrella and the perpendicular bisector of the diameter; and

sorting the vertices of the umbrella in an increasing order of the determined distance.

5. The method of claim 4 , wherein the perpendicular bisector is perpendicular to the diameter and splits the diameter into two equal halves, and wherein the pair of partitioning vertices are on opposite sides of the diameter of the umbrella.

6. The method of claim 1 , further comprising:

encoding each partitioning vertex of the pair of partitioning vertices with a first value;

encoding each non-partitioning vertex of the vertices of the umbrella with a second value, and wherein the first value is different from the second value; and

terminating the encoding in response to encoding the two partitioning vertices.

7. The method of claim 1 , wherein the split vertex is created by collapsing the edge based on a full-edge or a half-edge collapse operation.

8. An encoder, comprising:

a processor; and

a memory, the memory including instructions configured to cause the processor to:

identify a pair of partitioning vertices to be connected to a split vertex associated with a collapse of an edge;

create the split vertex by collapsing the edge;

encode partitioning vertex information associated with the pair of partitioning vertices, the encoding of the partitioning vertex information based on an ordering of vertices of an umbrella of the split vertex, and the ordering of vertices of the umbrella determined based on a distance between the vertices of the umbrella and a perpendicular bisector of a diameter of the umbrella; and

generate vertex split information that includes the partitioning vertex information.

9. The encoder of claim 8 , further comprising instructions to cause the processor to: entropy encode of the vertex split information.

10. The encoder of claim 8 , further comprising instructions to cause the processor to:

transmit the vertex split information to a decoder in response to a message received from the decoder.

11. The encoder of claim 8 , further comprising instructions to cause the processor to:

determine the diameter of the umbrella, the diameter being determined based on a maximum possible distance between a pair of the vertices of the umbrella;

determine the distance between each of the vertices of the umbrella and the perpendicular bisector of the diameter; and

sort the vertices of the umbrella in an increasing order of the determined distance.

12. A non-transitory computer-readable storage medium having stored thereon computer executable program code which, when executed on a computer system, causes the computer system to perform a method of progressive mesh compression, comprising:

identifying, by an encoder, a pair of partitioning vertices to be connected to a split vertex associated with a collapse of an edge;

creating, by the encoder, the split vertex by collapsing the edge;

encoding, by the encoder, partitioning vertex information associated with the pair of partitioning vertices, the encoding of the partitioning vertex information based on an ordering of vertices of an umbrella of the split vertex, and the ordering of vertices of the umbrella determined based on a distance between the vertices of the umbrella and a perpendicular bisector of a diameter of the umbrella; and

generating, by the encoder, vertex split information that includes the partitioning vertex information.

13. The computer-readable storage medium of claim 12 , further comprising code for: entropy encoding of the vertex split information.

14. The computer-readable storage medium of claim 12 , further comprising code for: transmitting, from the encoder, the vertex split information to a decoder in response to a message received from the decoder.

15. The computer-readable storage medium of claim 12 , wherein the ordering of vertices of the umbrella further comprises code for:

determining the diameter of the umbrella, the diameter being determined based on a maximum possible distance between a pair of the vertices of the umbrella;

determining the distance between each of the vertices of the umbrella and the perpendicular bisector of the diameter; and

sorting the vertices of the umbrella in an increasing order of the determined distance.

16. The computer-readable storage medium of claim 15 , wherein the perpendicular bisector is perpendicular to the diameter and splits the diameter into two equal halves, and wherein the pair of partitioning vertices are on opposite sides of the diameter of the umbrella.

17. The computer-readable storage medium of claim 12 , further comprising code for:

encoding each partitioning vertex of the pair of partitioning vertices with a first value;

encoding each non-partitioning vertex of the vertices of the umbrella with a second value, and wherein the first value is different from the second value; and

terminating the encoding in response to encoding the two partitioning vertices.

18. The computer-readable storage medium of claim 12 , wherein the split vertex is created by collapsing the edge based on a full-edge or a half-edge collapse operation.

Assignments (2)
CONFIRMATORY ASSIGNMENT Recorded Mar 10, 2023
From: INRIA CENTRE AT UNIVERSITÉ CÔTE D'AZUR
To: GOOGLE LLC
Reel/Frame 063026/0073 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 14, 2018
From: HEMMER, MICHAEL; ALLIEZ, PIERRE; PORTANERI, CEDRIC
To: GOOGLE LLC
Reel/Frame 046082/0700 →
Continuity (1)
Related Publication 20190318508A1 · Oct 17, 2019
Cited By (1)
US 12,718,418