Title: Geometric Compression II
1Geometric Compression II
- Comp258
- Student Lecture
- Ja-Yeon Jeong
2The problem
- Polygonal mesh
- Connectivity Geometry
- Properties color, normal, and texture
- Representation
- Compact storage
- Fast transmission over the network
3Representing triangle meshes
- Two tables
- - geometry
- - connectivity
- In uncompressed form
- - T 2V
- - 6 V log (V) bits
- Connectivity dominates storage space
4Topological Surgery
- Taubin Rossignac 98
- Single resolution
- Triangular Meshes (Polyhedral Mesh)
- Part of MPEG-4 standard
- Goal Reduction of the redundancy inherent in
triangular meshes in 3D
5Topological Surgery
- Lossless manifold connectivity encoding
- faces, connected components, orientation
- Lossy geometry and property encoding
- coordinates, color, normal
- No repetition of data
6Examples of polygonal meshes
2 connected components
Non- Manifold mesh
Orientable Mesh
Mesh with Boundary
7 2 ways of Peeling an orange
Orange Simple Mesh
8Lets think for a while.
- What we need and how to encode connectivity?
- Triangle Strip Spiraling Wall
- Triangle Tree
91) Triangle Strip Spiraling Wall
- Only need to indicate left/right boundary
- Store vertices along the wall
- Encode the connectivity using 1 bit/triangle
- Does this really work?
10 Reconstruction problem with 1)
- Triangle strip may
- have warts (A)
- Spiraling Wall may
- have bifurcation(B)
- have warts(C)
112) Triangle Tree
- Given 20-gon, build a triangle spanning tree and
encode left/right and leaf/branch per triangle
- Label the vertex in traversal order
12Reconstruction problem with 2)
- No specification how to match boundary edges at
branching triangle
13Approach to connectivity encoding
- We need both Vertex Tree Triangle Tree
14Definitions
- Vertex spanning tree
- Cut edges
- Vertex runs Nodes between the branching nodes
and the leaf nodes - Branching node
- Triangle Spanning tree
- Dual graph of the mesh resulting from cutting
thru the edges of the vertex spanning tree - Marching edges
- Triangle runs
- Branching triangle
15Simple mesh - representation
16Vertex tree
- composed of runs
- traversal order of the tree
- run order
- first , last node of each run
- represent each run as a record in the table
(last bit, run length, leaf bit)
17Vertex Tree Encoding
Last run bit last run that starts at the same
branching node Run length number of edges in
the run Leaf bit the end of the run in leaf or
branching node
18Vertex Tree Decoding
- Look up table of 2V-V references to the vertex
table - Determine how to glue the boundary edges of the
resulting cut mesh
19Triangle Tree
- also composed of runs
- traversal order
- depth first traversal
- run order
- Left most braches are traversed first
- represent each run as a record in two tables
(run length, leaf bit) Marching pattern - simple polygon triangulate -gt encoding
20Triangle Tree Encoding
- Choose a leaf as the root triangle
- At regular advance
- At branch push right and opposite vertices and
set right as opposite and continue with the
triangle incident to left edge - At leaf finish if the stack is empty, continue
otherwise
21Triangle Tree Encoding
- 0 leaf
- 1 move right vertex
- 2 move left vertex
- 3 branch
- gt 2bits/triangle
22Triangle Tree Encoding
- Each run ends at either branch or leaf
- Triangle run(run length, leaf bit) Marching bit
- 121223)(5,0)01011
- 3)(1,0)
- 10)(2,1)0
- 0)(1,1)
- 1210)(3,1)010
23Compression Algorithm
- constructing vertex spanning tree
- tree construction heuristics
- Minimizing the number of runs
- encoding the vertex tree
- compressing the vertex positions
- entropy encoding using the vertex tree
- encoding the triangle tree
- computing and compressing the marching pattern
- entropy encoding
24Decompression Algorithm
- Reconstructing the table of vertex positions
- vertex tree decoding to construct the bounding
loop (lookup table pointing to the vertex
position table) determine how to stitch the
boundary edges of the simple polygon - reconstructing and linking of triangle strip
25Non-simple manifold mesh
- Boundary edge or number of holes gt 0
- Face forest
- Spanning the dual graph of the mesh
- Each tree of the face forest one connected
component - Vertex graph
- The edges not in face forest
- vertex graph contains loops (not tree anymore)
- Vertex tree
- Spanning tree in the vertex graph
- Jump edge edge that connect a leaf node with a
previously visited node - Extended vertex tree
26Torus
A torus with 9 vertices and 18 faces
27Torus
28Torus
29Vertex graph of torus
30Extended vertex tree
31Boundary loop
32Other cases
- Mesh with boundary
- Include all but one of the boundary edges in the
vertex spanning tree - Non-manifold mesh
- Convert to manifold by cutting through singular
vertices and edges - Keep the geometry
- Encode the additional stitching information
33Results
- Total 1 2 bytes per triangle
- Connectivity about 2.2 bits/triangle
- Geometry 4 16 bits/coordinate
34Performance example
35Performance example
36Progressive Forest Split Compression
- Taubin et al 98
- Low resolution polygonal model(Base mesh)
Sequence of refinement operation(forest split
operations) - Encoding/Compress base mesh
- Encode/Compress forest split operations
37PFS
- To double the size of a mesh with V vertices
- PM O(VlogV)
- PFS O(V)
- Introduce simplification algorithms to convert a
single-resolution triangular mesh to PSF format - Extension to polygonal faces, properties but not
to non-manifold and topology changing refinement
38PFS forest split operation
- Representation
- A forest
- Sequence of simple polygons
- Sequence of vertex displacement
- Operation
- Cutting the mesh thru the forest edges
- Triangulating each tree loop according to the
corresponding the simple polygon - Displacing the new vertices to their new positions
39PFS
40PFS - Example
A triangular mesh with forest edges marked in
red B resulting mesh after cutting and
splitting vertices C- simple polygons to be
stitched to the boundary loops D refined mesh
41References
- Geometric Compression Through Topological Surgery
Taubin Rossignac 1998 - 3D Geometry Compression and Progressive
Transmission Taubin 1999 - Progressive Forest Split CompressionTaubin 1998