Compressing Hexahedral Volume Meshes Martin Isenburg UNC Chapel Hill Pierre Alliez INRIA Sophia-Antipolis
Overview Volume Meshes Related Work Compressing Connectivity –Coding with Edge Degrees –Boundary Propagation –Adaptive Traversal Compressing Geometry –Parallelogram Prediction Demo
Take this home: “The connectivity of a hexahedral mesh can be coded through a sequence of its edge degrees.” “This encoding naturally exploits the regularity commonly found in such data sets.”
Volume Meshes
scientific & industrial applications – thermodynamics – structural mechanics – … visualization & simulation unstructured / irregular ( not on a grid ) tetrahedral, hexahedral, polyhedral
Hexahedral Volume Meshes have “numerical advantages in finite element computations” challenging to generate their internal structure looks “nice” compared to tetrahedral meshes
Ingredients geometry : positions of vertices connectivity : which vertices form a hexahedron properties: attached to vertices density, pressure, heat,...
Standard Representation connectivity geometry vtx 1 ( x, y, z ) vtx 2 ( x, y, z ) vtx 3 ( x, y, z ) vtx v hex hex hex 3 75… hex h 8h * 32 bits 3v * 32 bits hexahedra vertices log 2 ( v ) 16 size: 3.23 MB 1.69 less than 84 KB
Related Work
Surface Mesh Compression –Geometry Compression, [ Deering, 95 ] –Topological Surgery, [ Taubin & Rossignac, 98 ] –Cut-Border Machine, [ Gumhold & Strasser, 98 ] –Triangle Mesh Compression, [ Touma & Gotsman, 98 ] –Edgebreaker, [ Rossignac, 99 ] –Spectral Compression of Geometry, [ Karni & Gotsman, 00 ] –Face Fixer, [ Isenburg & Snoeyink, 00 ] –Valence-driven Connectivity Coding, [ Alliez & Desbrun, 01 ] –Near-Optimal Coding, [ Khodakovsky, Alliez, Desbrun & –Degree Duality Coder, [ Isenburg, 02 ] –Polygonal Parallelogram Prediction, [ Isenburg & Alliez, 02 ] Schröder, 02 ]
Volume Mesh Compression –Grow & Fold, [ Szymczak & Rossignac, 99 ] –Cut-Border Machine, [ Gumhold, Guthe & Strasser, 99 ] !! only for tetrahedral meshes !! –Rendering of compressed volume data, [ Yang et al., 01] Simplification: –Simplification of tetrahedral meshes, [ Trotts et al., 98 ] –Progressive Tetrahedralizations, [ Staadt & Gross, 98 ] Progressive Compression: –Implant Sprays, [ Pajarola, Rossignac & Szymczak, 99 ]
Surface / Volume Connectivity a mesh with v vertices has maximal surfaces: 2v-2triangles ~ 6v indices v-1quadrilaterals ~ 4v indices connectivity dominates geometry even more for volume meshes volumes: O ( v 2 ) tetrahedra ~ 12v indices O ( v 2 )hexahedra ~ 8v indices
Degree Coding for Connectivity Triangle Mesh Compression, [ Touma & Gotsman, 98 ] Valence-driven Connectivity Coding, [ Alliez, Desbrun, 01 ] Degree Duality Coder, [ Isenburg, 02 ] Near-Optimal Connectivity Coding, [ Khodakovsky, Alliez, Desbrun, Schröder, 02 ] compressed with arithmetic coder converges to entropy
Entropy for a symbol sequence of t types # of type t pi =pi = i = 1 t Entropy = p i log 2 ( ) bits pipi 1 # total 2.0 bits 1.3 bits 0.2 bits
Average Distribution vertex degrees face degrees [ over a set of 11 polygonal meshes ]
“Worst-case” Distribution … vertex degrees … … [ Alliez & Desbrun, 01 ] 3.241… bpv [ Tutte, 62 ]
Adaptation to Regularity 6 vertex degrees face degrees vertex degrees face degrees vertex degrees face degrees 4...
Degree Coding for Volumes ? tri tetquad hex vertex degrees edge degrees
Regular Volume Meshes? elements for regular 2D tiling – regular triangle – regular quadrilateral – regular hexagon elements for regular 3D tiling – regular tetrahedron – regular hexahedron
Compressing Connectivity
Space Growing similar in spirit to “region growing”: algorithm maintains hull enclosing processed hexahedra pick incomplete face on hull process adjacent hexahedra record degrees of its free edges 1.initialize hull with a border face 2.iterate until done
Coding with Edge Degrees focus face
Coding with Edge Degrees focus face
Coding with Edge Degrees focus face slots
Coding with Edge Degrees
border faces incomplete faces
Coding with Edge Degrees
edges on hull maintain slot count
Coding with Edge Degrees edges with a slot count of zero are “zero slots” zero slots
Coding with Edge Degrees
Resulting Symbols – border edge degrees – interior edge degrees Y NNNNNNNNNNNNN – border ?... Y NNNNNNNNNNNNN – join ?
Average Distributions border degrees interior degreesborder? 2 join? no yes no yes
Possible Configurations
hut step bridge roof pit den tunnel gapcorner
Configuration: “hut” “hut” hut zero-slots:0 free faces5 free edges8 free vertices4 not a zero slot free edge free vertex free face
Configuration: “step” “step” 0 this is a zero slot step zero-slots:1 free faces4 free edges5 free vertices2
Configuration: “bridge” “bridge” 0 0 bridge zero-slots:2 free faces3 free edges2 free vertices--
“hut” or “roof” for the free face of “hut” that potentially forms a roof: “join?” / Y N hut roof ? “roof” “join” operation
other “join” operations free vertex already on hull free edge already on hull hutstep for every free vertex / edge: “join?” / Y N
Adaptive traversal to avoid “join”operations
Reason for “join” operations hull
Reason for “join” operations hull
Reason for “join” operations hull
Reason for “join” operations hull
Reason for “join” operations processed region unprocessed region hull
Reason for “join” operations processed region unprocessed region hull
Reason for “join” operations processed region unprocessed region hull
Reason for “join” operations processed region unprocessed region hull
Reason for “join” operations processed region unprocessed region join hull
Adaptive Traversal Valence-driven connectivity encoding for 3D meshes [ Alliez & Desbrun, 01 ] avoid creation of cavities focus face pick face with largest # of zero slots
Propagating the border information
Explaining Example border face border face & slot count = 1
Explaining Example border face border edges
Explaining Example interior edges incomplete faces
Explaining Example for everything else: “border?” / Y N remaining elements
hanger ra bump … warped hutch c … Results ( Connectivity ) raw bits per hexahedron ( bph ) model compressed … : 14 1 : 28 1 : : : : 226 ratio average compression ratio = 1 : 163
hanger ra bump … warped hutch c … Results ( Connectivity ) raw bits per hexahedron ( bph ) model compressed … : 14 1 : 28 1 : : : : 226 ratio average compression ratio = 1 : 163
Compressing Geometry
Predictive Compression 1.quantize positions with b bits ( , , ) ( 1008, 67, 718 ) floating point integer
Predictive Compression 1.quantize positions with b bits 2.traverse positions ( , , ) ( 1008, 67, 718 ) floating point integer
Predictive Compression 1.quantize positions with b bits 2.traverse positions 3.predict position from neighbors ( , , ) ( 1008, 67, 718 ) floating point integer ( 1004, 71, 723 ) prediction
Predictive Compression 1.quantize positions with b bits 2.traverse positions 3.predict position from neighbors 4.store corrective vector ( , , ) ( 1008, 67, 718 ) floating point integer ( 4, -3, -5 ) corrector ( 1004, 71, 723 ) prediction
Parallelogram Rule across “non-convex” triangles across “non-planar” triangles within “planar” & “convex” quadrilateral Triangle Mesh Compression, [ Touma & Gotsman, 98 ]
8 Position Predictions init hut v 0 0 v 1 v 0 v 2 v 1 v 3 v 0 - v 1 + v 2 v 4 2v 0 – v 8 (or v 0 ) v 5 v 1 – v 0 + v 4 v 6 v 2 – v 1 + v 5 v 7 v 3 – v 2 + v 6 vertex prediction rule
hanger ra bump … warped hutch c … Results ( Geometry ) raw bits per vertex ( bpv ) model compressed 48.0 … : : : : : : 8.1 ratio average compression ratio = 1 : 3.7
Demo
Summary degree coding for volume mesh connectivity – edge degrees – boundary propagation – adaptive traversal parallelogram prediction for volume mesh geometry – “within” predictions
Current / Future Work Mixed Volume Meshes – hex + tet + prism + pyramid cells Universal Connectivity Coder – face, vertex, and edge degrees – tri / quad / poly surfaces – tet / hex / poly volumes – surface mesh = cell of volume mesh – bit-rate like specialized coder
Acknowledgements data sets Alla Sheffer Steven Owen Scott Mitchell Claudio Silva financial support ARC TéléGéo grant from INRIA
Thank You!
Old Beijing & Duck Whoever had expressed interest in going to eat duck in the ancient-style “hutong” area: meet me minutes after end of PG in front of hotel bring : map address card of your hotel ~100 yuan (smaller bills for subway / bus)
Configurations: “roof” “roof” zero-slots:0 adjacent faces:1 free faces4 free edges4 free vertices-- roof
Configurations: “tunnel” tunnel “tunnel” zero-slots:2 adjacent faces:4 free faces2 free edges-- free vertices
corner Configuration: “corner” “corner” zero-slots:2 adjacent faces:3 free faces3 free edges3 free vertices
gap Configuration: “gap” “gap” zero-slots:3 adjacent faces:4 free faces2 free edges1 free vertices
Configurations: “pit” pit zero-slots:4 adjacent faces:5 free faces1 free edges-- free vertices-- “pit”
den Configurations: “den” zero-slots:4 adjacent faces:6 free faces-- free edges-- free vertices-- “den”