350 likes | 523 Views
Topological Surgery Progressive Forest Split. Papers by Gabriel Taubin et al Presented by João Comba. Motivation. Geometric Compression for transmission. Mesh Compression Solutions. Single: [Topological Surgery] Multi-Res: [Progressive Forest Split]. Polyhedral Compression.
E N D
Topological Surgery Progressive Forest Split Papers by Gabriel Taubin et al Presented by João Comba
Motivation • Geometric Compression for transmission
Mesh Compression Solutions • Single: [Topological Surgery] • Multi-Res: [Progressive Forest Split]
Polyhedral Compression • Compression of position and properties 1. Enclose input points in a bounding box v0 p2 v1 v2 2. Round vertex positions to b bits v4 v3 3. Create prediction function: Ex. pi = prediction(vi-1, vi-2) v5 v6 4. Run length encode difference between prediction and correct position [RLE( (pi-vi) (pi+1-vi+1) (pi+2-vi+2) …]
Polyhedral Compression • Connectivity Encoding • Mesh info: V vertices and T triangles • Assumption: • Vertex coordinates available for random acess and listed in suitable order • Vertex organized by proximity: • Improve compression of position and properties
Topological Surgery • Vertex and Triangle spanning trees
Vertex Spanning Tree (VTREE) • Vertex quantization uses ancestors in the tree in the prediction function • Mesh is cut through cut edges • Branching nodes connected by vertex runs
Triangle Spanning Tree (TTREE) • Dual graph is composed of triangle runs • Branching triangles connects 3 runs • Bounding Loop
Triangle Spanning Tree (TTREE) • Y-vertices: 3rd vertex of branching triangle • Marching edges connect triangles within a run or bound branching triangles • Marching Pattern: order in which marching edges are visited during decompression
Data Structures • VTREE: vertex tree structure • <run length, branching bit, leaf bit> • VCOR: compressed vertex positions
Data Structures • TTREE: triangle tree structure • <run length, leaf bit> • MARCH: triangle tree marching pattern • bit stream of left-right moves
Decompression Algorithm • [D1]Reconstruct table of vertex positions • [D2]Contruct bounding loop • [D3]Compute relative index of Y-vertices • [D4]Reconstruct and link triangle strips
[D1] Reconstruct table of vertex positions • Derive number of vertices • Sum of lengths of runs + 1 • Create array of vertex positions that corresponds to pre-order visit of tree • Entropy decode vertex corrections • Compute vertex positions • vn = (vn) + P(, vn-1, …, vn-K)
[D2] Contruct bounding loop • Constructed during VTREE traversal • Represented by a table of 2V-2 references to the vertex table
[D3] Compute relative index of Y-vertices • Y-vertices have own lookup table • Compute Y-vertices offsets during VTREE traversal
Compression Algorithm • [C1]Construct the vertex spanning tree • [C2]Encode the vertex tree • [C3]Compress vertex positions • [C4]Encode the triangle tree
[C2] Encode the vertex tree • Choose a leaf as root and perform a pre-order traversal • Order branching nodes consistently with • Ex.<3,0,0><2,1,1><2,1,1><2,1,1><2,0,1> • <run length, branching bit, leaf bit>
[C3] Compress vertex positions • Predictor equation: • P(, vn-1, …, vn-K) = i=1..K (i vn-1) • Choice of iresulting from least square minimization of corrections
Results Source 12 bits 10 bits 8 bits
Results Source 12 bits 10 bits 8 bits
Progressive Forest Split • Transmission in progressive fashion • No popping with geomorph (smooth transition between levels in the LOD) • Forest Split Operation (refinement step)
Forest Split Compression • [C1] Encoding forest edges • [C2] Encoding simple polygons • [C3] Encoding of vertex displacements
Compression of PFS format • Clustered multi-resolution models • Forest collapse operation • Permutations of vertex and triangle indices • Edge-collapse simplification algorithms