Compressing Polygon Mesh Connectivity with Degree Duality Prediction Martin Isenburg University of North Carolina at Chapel Hill.
Download ReportTranscript Compressing Polygon Mesh Connectivity with Degree Duality Prediction Martin Isenburg University of North Carolina at Chapel Hill.
Compressing Polygon Mesh Connectivity with Degree Duality Prediction Martin Isenburg University of North Carolina at Chapel Hill Overview • • • • • • • Background Connectivity Compression Coding with Degrees Duality Prediction Adaptive Traversal Example Run Conclusion Background Polygon Meshes • connectivity face1 1 2 3 4 face2 3 4 3 k v log2 (v) face3 5 2 1 3 facef :k ~ 4 :k ~ 6 • geometry vertex1 ( x, y, z ) vertex2 ( x, y, z ) 24 ~ 96 v vertex3 ( x, y, z ) vertexv 4 5 Mesh Compression • Geometry Compression [Deering, 95] – Fast Rendering – Progressive Transmission – Maximum MaximumCompression Compression • Geometry • Connectivity Connectivity – Triangle Meshes – Polygon PolygonMeshes Meshes Not Triangles … Polygons! Face Fixer [Isenburg & Snoeyink, 00] Results model triceratops galleon cessna … tommygun cow teapot bits per vertex (bpv) Face Fixer Degree Duality 2.115 2.595 2.841 … 2.611 2.213 1.669 1.189 2.093 2.543 … 2.258 1.781 1.127 gain 44 % 19 % 11 % ... 14 % 20 % 33 % min / max / average gain [%] = 11 / 55 / 26 Connectivity Compression Connectivity Compression assumption • order of vertices does not matter advantage • no need to “preserve” indices approach • code only the “connectivity graph” • re-order vertices appropriately Connectivity Graphs • connectivity of simple meshes is homeomorphic to planar graph enumeration asymptotic bounds [William Tutte 62 / 63] number of planar triangulations with v vertices 3.24 bpv << 6 log (v) bpv 2 Spanning Tree • Succinct Representations of Graphs [Turan, 84] • Short encodings of planar graphs and maps [Keeler & Westbrook, 95] • Geometric Compression through Topological Surgery [Taubin & Rossignac, 98] extends to meshes of non-zero genus Region Growing • Triangle Mesh Compression [Touma & Gotsman, 98] • Cut-Border Machine [Gumhold & Strasser, 98] • Edgebreaker [Rossignac, 99] • Simple Sequential Encoding [de Floriani et al., 99] • Dual Graph Approach [Lee & Kuo, 99] • Face Fixer [Isenburg & Snoeyink, 00] Classification • code symbols are associated with edges, faces, or vertices: boundary processed region boundary boundary unprocessed region focus focus edge-based face-based focus vertex-based Edge-Based Compression Schemes Edge-Based • Dual Graph Approach, [Lee & Kuo, 99] • Face Fixer, [Isenburg & Snoeyink, 00] processed region unprocessed region focus ... F F R Edge-Based • Dual Graph Approach, [Lee & Kuo, 99] • Face Fixer, [Isenburg & Snoeyink, 00] processed region unprocessed region ... F F R F F Edge-Based • Dual Graph Approach, [Lee & Kuo, 99] • Face Fixer, [Isenburg & Snoeyink, 00] processed region unprocessed region ... F F R F F F F Edge-Based • Dual Graph Approach, [Lee & Kuo, 99] • Face Fixer, [Isenburg & Snoeyink, 00] processed region R unprocessed region ... F F R F F R F F Edge-Based • Dual Graph Approach, [Lee & Kuo, 99] • Face Fixer, [Isenburg & Snoeyink, 00] processed region F R unprocessed region ... F F R F F R F F F Edge-Based • Dual Graph Approach, [Lee & Kuo, 99] • Face Fixer, [Isenburg & Snoeyink, 00] processed region R F R unprocessed region ... F F R F F R F R F F Edge-Based ? ? ? ? • Dual Graph Approach, [Lee & Kuo, 99] • Face Fixer, [Isenburg & Snoeyink, 00] processed region R F F R unprocessed region F F ... F F R F F R F R F ... ... 5 4 3 6 4 ... ? Face-Based Compression Schemes Face-Based • Cut-Border Machine, [Gumhold & Strasser, 98] • Edgebreaker, [Rossignac, 99] processed region unprocessed region focus ... C R Face-Based • Cut-Border Machine, [Gumhold & Strasser, 98] • Edgebreaker, [Rossignac, 99] processed region unprocessed region ... C R C C Face-Based • Cut-Border Machine, [Gumhold & Strasser, 98] • Edgebreaker, [Rossignac, 99] processed region R unprocessed region ... C R C R C Face-Based • Cut-Border Machine, [Gumhold & Strasser, 98] • Edgebreaker, [Rossignac, 99] processed region R R unprocessed region ... C R C R R C Face-Based ? ? ? ? ? • Cut-Border Machine, [Gumhold & Strasser, 98] • Edgebreaker, [Rossignac, 99] processed region C unprocessed region ... C R C R R C ... ... 5 4 3 6 4 ... R R C Vertex-Based Compression Schemes Vertex-based • Triangle Mesh Compression, [Touma & Gotsman, 98] processed region unprocessed region focus ... 6 Vertex-based • Triangle Mesh Compression, [Touma & Gotsman, 98] processed region 5 unprocessed region ... 6 5 Vertex-based • Triangle Mesh Compression, [Touma & Gotsman, 98] processed region 5 unprocessed region ... 6 5 Vertex-based • Triangle Mesh Compression, [Touma & Gotsman, 98] processed region 5 unprocessed region ... 6 5 Vertex-based ? ? ? ? ? • Triangle Mesh Compression, [Touma & Gotsman, 98] processed region 6 unprocessed region ... 6 ... 5 6 5 4 3 6 ... 4 ... 5 Coding with Vertex and Face Degrees Coding with Degrees while ( unprocessed faces ) move focus to a face face degree for ( free vertices ) case switch ( case ) “add”: vertex degree “split”: offset “merge”: index, offset Example Traversal “add” free vertex boundary focus processed region exit focus end slotregion unprocessed 3 free vertices 5focus (widened) 4 boundary slots start slot ... 4 ... 5 5 3 4 4 4 3 5 4 3 free vertex “splits” boundary unprocessed region S split offset processed region ... 4 ... 5 5 3 4 4 4 3 focus free vertex “merges” boundary boundary in stack unprocessed region stack focus processed region M merge offset ... 4 ... 5 processed region 5 3 4 4 4 3 Resulting Code • two symbol sequences –vertex degrees (+ “split” / “merge”) ... 4 3 S 4 4 4 M 6 5 4 4 ... –face degrees ... 4 3 4 4 5 4 4 4 6 4 4 4 ... • compress with arithmetic coder converges to entropy Entropy for a symbol sequence of t types t Entropy = i =1 1 pi • log2( ) bits pi pi = 0.2 bits 1.3 bits # of type t # total 2.0 bits Average Distributions add 4 4 3 split merge case 3 2 5 6 7 8 9+ vertex degrees 5 6 7 8 9+ face degrees Adaptation to Regularity 6 ... 3 ... vertex degrees ... 3 ... face degrees ... 6 ... vertex degrees ... 4 ... face degrees ... 4 ... vertex degrees ... ... face degrees “Worst-case” Distribution 3 3 pi = 1 i =3 4 i • pi = 6 5 6 [Alliez & Desbrun, 01] 3.241… bpv [Tutte, 62] i =3 7 8 9 …… … vertex degrees face degrees Compressing with Duality Prediction Degree Correlation • high-degree faces are “likely” to be surrounded by low-degree vertices • and vice-versa mutual degree prediction Face Degree Prediction fdc 3.3 3 focus (widened) 4 3 average degree of focus vertices 3.3 fdc 4.3 4.3 fdc 4.9 3+4+3 fdc = = 3.333 3 “face degree context” 4.9 fdc Vertex Degree Prediction 6 vdc = 3 vdc = 44 degree of focus face vdc = 55 vdc = 6 “vertex degree context” vdc 66 Compression Gain model without bits per vertex with bits per vertex triceratops galleon cessna … tommygun cow teapot 1.192 2.371 2.811 … 2.917 1.781 1.632 1.189 2.093 2.543 … 2.258 1.781 1.127 min / max / average gain [%] = 0 / 31 / 17 Reducing the Number of Splits Occurance of “splits” Occurance of “splits” Occurance of “splits” Occurance of “splits” Occurance of “splits” unprocessed region processed region Occurance of “splits” unprocessed region processed region Occurance of “splits” unprocessed region processed region Occurance of “splits” unprocessed region processed region Occurance of “splits” unprocessed region split processed region Adaptive Traversal • Valence-driven connectivity encoding for 3D meshes [Alliez & Desbrun, 01] avoid creation of cavities exit focus focus Compression Gain model triceratops galleon cessna … tommygun cow teapot without splits bpv 53 78 172 … 131 154 10 1.311 2.309 2.882 … 2.449 2.313 1.167 with splits bpv 25 18 28 … 32 13 3 1.189 2.093 2.543 … 2.258 1.781 1.127 min / max / average gain [%] = 4 / 23 / 10 Example Decoding Run Example Decoding Run 4 6 6 3 3 5 4 4 3 4 4 3 5 4 6 5 5 ... 4 4 2 4 4 ... Example Decoding Run 4 4 6 6 3 3 5 4 4 3 4 4 3 5 4 6 5 5 ... 4 4 2 4 4 ... Example Decoding Run focus 6 4 6 6 3 3 5 4 4 3 4 4 3 5 4 6 5 5 ... 4 4 2 4 4 ... Example Decoding Run 3 free vertex 4 6 6 3 3 5 4 4 3 4 4 3 5 4 6 5 5 ... 4 4 2 4 4 ... Example Decoding Run exit focus 6 4 6 6 3 3 5 4 4 3 4 4 3 5 4 6 5 5 ... 4 4 2 4 4 ... Example Decoding Run free vertices 5 4 6 6 3 3 5 4 4 3 4 4 3 5 4 6 5 5 ... 4 4 2 4 4 ... Example Decoding Run 3 4 6 6 3 3 5 4 4 3 4 5 4 3 5 4 6 5 5 ... 4 4 2 4 4 ... Example Decoding Run 3 5 4 6 6 3 3 5 4 4 3 4 4 3 5 4 6 5 5 ... 4 4 2 4 4 ... Example Decoding Run exit focus 4 4 6 6 3 3 5 4 4 3 4 4 3 5 4 6 5 5 ... 4 4 2 4 4 ... Example Decoding Run 4 4 6 6 3 3 5 4 4 3 4 4 3 5 4 6 5 5 ... 4 4 2 4 4 ... Example Decoding Run 5 4 4 6 6 3 3 5 4 4 3 4 4 3 5 4 6 5 5 ... 4 4 2 4 4 ... Example Decoding Run 4 exit focus 4 6 6 3 3 5 4 4 3 4 4 3 5 4 6 5 5 ... 4 4 2 4 4 ... Example Decoding Run 5 end slot focus (widened) 3 3 start slot 4 6 6 3 3 5 4 4 3 4 4 3 5 4 6 5 5 ... 4 4 2 4 4 ... Example Decoding Run 4 4 6 6 3 3 5 4 4 3 4 4 3 5 4 6 5 5 ... 4 4 2 4 4 ... Example Decoding Run exit focus 4 5 4 6 6 3 3 5 4 4 3 4 4 3 5 4 6 5 5 ... 4 4 2 4 4 ... Example Decoding Run focus (widened) 4 6 6 3 3 5 4 4 3 4 4 3 5 4 6 5 5 ... 4 4 2 4 4 ... Example Decoding Run 4 4 6 6 3 3 5 4 4 3 4 4 3 5 4 6 5 5 ... 4 4 2 4 4 ... Example Decoding Run exit focus focus 4 4 6 6 3 3 5 4 4 3 4 4 3 5 4 6 5 5 ... 4 4 2 4 4 ... Example Decoding Run 3 4 6 6 3 3 5 4 4 3 4 4 3 5 4 6 5 5 ... 4 4 2 4 4 ... Example Decoding Run 4 4 6 6 3 3 5 4 4 3 4 4 3 5 4 6 exit focus 5 4 4 5 ... 2 4 4 ... Example Decoding Run focus (widened) 4 6 6 3 3 5 4 4 3 4 4 3 5 4 6 5 5 ... 4 4 2 4 4 ... Example Decoding Run 6 4 6 6 3 3 5 4 4 3 4 4 3 5 4 6 5 5 ... 4 4 2 4 4 ... Example Decoding Run 2 6 4 6 6 3 3 5 4 4 3 4 4 3 5 4 6 5 5 ... 4 4 2 4 4 ... Example Decoding Run 4 6 4 6 6 3 3 5 4 4 3 4 4 3 5 4 6 5 5 ... 4 4 2 4 4 ... Example Decoding Run 4 exit focus 4 6 6 3 3 5 4 4 3 4 4 3 5 4 6 5 5 ... 4 4 2 4 4 ... Example Decoding Run focus (widened) 4 6 6 3 3 5 4 4 3 4 4 3 5 4 6 5 5 ... 4 4 2 4 4 ... Example Decoding Run ...... 5 4 6 6 3 3 5 4 4 3 4 4 3 5 4 6 5 5 ... 4 4 2 4 4 ... Conclusion Summary • degree coding for polygonal connectivity • duality prediction • adaptive traversal • proof-of-concept implementation using Shout3D http://www.cs.unc.edu/~isenburg/degreedualitycoder/ Similar Result • Near-Optimal Connectivity Coding of 2-manifold polygon meshes [Khodakovsky, Alliez, Desbrun, Schröder] analysis of worst-case face degree and vertex degree distribution entropy Tutte’s bounds Martin France Current Work (w. Pierre Alliez) • use polygons for better predictive geometry coding “fairly planar & convex” • extend degree coding to volume mesh connectivity “edge degrees” Thank You!