IP Library › Granted Patent US 7,098,916
Granted Patent B1
US 7,098,916 · App. 10/252,019 · Granted Aug 29, 2006

Connectivity encoding and decoding of polygon meshes

Assignee: California Institute of Technology
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 7,098,916
App. No.
10/252,019
Granted
Aug 29, 2006
Kind
B1
Abstract

Methods of connectivity encoding polygonal mesh representations of objects are described, along with methods of decoding encoded connectivity information for polygonal mesh representations of objects. In the encoding process, an active vertex queue is initialized with one or more vertices incident to a seed face. A vertex is selected from the queue, and the ring of the vertex traversed. If an unprocessed face is encountered during the traversal, the degree of the face, and the valences of any unprocessed vertices incident to the face are output. Any such unprocessed vertices are also entered into the queue. The method iterates until no more vertices remain on the active queue. In one implementation, an encoded data stream is output, which comprises two logical streams, one for face-degree information and the other for vertex-valence information. In the decoding process, the encoded data stream is received, and the connectivity of the mesh regenerated.

Claims (42)

1. A method of connectivity encoding a polygonal mesh representation of an object comprising the steps of:

initializing a queue with one or more unprocessed vertices from the polygonal mesh representation;

selecting a vertex from the queue, the vertex having a ring;

traversing the ring of the vertex;

for each unprocessed face encountered in the traversing step, the face having a degree, outputting the degree of the face and the valence of any unprocessed vertex incident to the face;

placing each unprocessed vertex encountered in the previous step in the queue;

removing the selected vertex from the queue when the traversal has been completed; and

performing one or more additional iterations of the method beginning with the selecting step if any vertices remain on the queue,

wherein the initializing step further comprises selecting a seed face, and outputting the degree of the seed face, followed by the valences of vertices incident to the face.

2. A computer program product tangibly embodied on a computer-readable medium embodying the method of claim 1 .

3. A system comprising a processor and the computer program product of claim 2 , wherein the processor is configured to access and execute the computer program product.

4. The method of claim 1 further comprising outputting two logical streams comprising a face degree stream and a vertex valence stream.

5. The method of claim 4 , wherein each stream is entropy encoded with different contexts.

6. The method of claim 5 wherein each stream is entropy encoded with multiple, different contexts.

7. A method of decoding encoded connectivity information for a polygonal mesh representation of an object comprising the steps of:

reading input data representative of the connectivity of one or more vertices of the mesh representation, and initializing a queue with the one or more vertices;

selecting a vertex from the queue, the vertex having a ring;

reading input data representative of the connectivity of any unprocessed faces incident to the vertex, and any unprocessed vertices incident to the faces, and regenerating the connectivity of the ring of the vertex from this data;

removing the selected vertex from the queue when the ring has been regenerated; and

performing one or more additional iterations of the method beginning with the selecting step if any vertices remain on the queue,

wherein the initializing step further comprises reading data representative of the connectivity of a seed face and the vertices incident thereto, and regenerating there-from the connectivity of the seed face and its incident vertices.

8. The method of claim 7 , wherein the input data comprises multiple, logical streams.

9. The method of claim 8 , wherein each stream is decoded with different contexts.

10. The method of claim 9 wherein each stream is decoded with multiple, different contexts.

11. A computer program product tangibly embodied on a computer-readable medium embodying the method of claim 7 .

12. A system comprising a processor and the computer program product of claim 11 , wherein the processor is configured to access and execute the computer program product.

13. A method of connectivity encoding a polygonal mesh representation of an object comprising the steps of:

a step for initializing a queue with one or more unprocessed vertices from the polygonal mesh representation;

a step for selecting a vertex from the queue, the vertex having a ring;

a step for traversing the ring of the vertex;

a step for outputting the degree of the face and the valence of any unprocessed vertex incident to the face for each unprocessed face encountered in the traversing step;

a step for placing each unprocessed vertex encountered in the previous step in the queue;

a step for removing the selected vertex from the queue when the traversal has been completed; and

a step for performing one or more additional iterations of the method beginning with the selecting step if any vertices remain on the queue,

wherein the step for initializing a queue further comprises selecting a seed face, and outputting the degree of the seed face, followed by the valences of vertices incident to the face.

14. A method of decoding encoded connectivity information for a polygonal mesh representation of an object comprising the steps of:

a step for reading input data representative of the connectivity of one or more vertices of the mesh representation, and initializing a queue with the one or more vertices;

a step for selecting a vertex from the queue, the vertex having a ring;

a step for reading input data representative of the connectivity of any unprocessed faces incident to the vertex, and any unprocessed vertices incident to the faces, and regenerating the connectivity of the ring of the vertex from this data;

a step for removing the selected vertex from the queue when the ring has been regenerated; and

a step for performing one or more additional iterations of the method a step for beginning with the selecting step if any vertices remain on the queue,

wherein the initializing step further comprises reading data representative of the connectivity of a seed face and the vertices incident thereto, and regenerating there-from the connectivity of the seed face and its incident vertices.

Assignments (3)
LICENSE Recorded Jan 19, 2009
From: CALIFORNIA INSTITUTE OF TECHNOLOGY
To: INTELLECTUAL VENTURES HOLDING 59 LLC
Reel/Frame 022117/0805 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 26, 2002
From: SCHROEDER, PETER
To: CALIFORNIA INSTITUTE OF TECHNOLOGY
Reel/Frame 013607/0548 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 26, 2002
From: KHODAKOVSKY, ANDREI
To: CALIFORNIA INSTITUTE OF TECHNOLOGY
Reel/Frame 013607/0796 →
Continuity (1)
Provisional Application 6032369100 · Sep 20, 2001