Martin Isenburg Jack Snoeyink University of North Carolina at Chapel Hill Reverse Decoding of the Edgebreaker Encoding S PIRALE R EVERSI
Introduction Mesh compression is hip Edgebreaker encodes mesh connectivity Original decoding algorithm –worst case time complexity: O(n 2 ) Wrap & Zip decoding algorithm –worst case time complexity: O(n) Spirale Reversi decoding algorithm
Overview Connectivity Compression Edgebreaker Four Examples –Edgebreaker Encoding –Edgebreaker Decoding –Wrap & Zip Decoding –Spirale Reversi Decoding Holes and Handles
Connectivity Compression
vertex 1 (x,y,z) vertex 2 (x,y,z) vertex 3 (x,y,z) vertex n Standard Representation triangle triangle triangle triangle m connectivity n = 10, KB60 KB n = 100, KB600 KB n = 1,000, MB6 MB geometry
Compression Schemes Geometry Compression, Deering, 1995 Short Encodings of Planar Graphs and Maps, Keeler and Westbrook, 1995 Geometric Compression through Topological Surgery, Taubin and Rossignac, 1996 Good orders for incremental (re)construction, Snoeyink and vanKrefeld, 1997 Encoding a triangulation as a permutation of its point set, Denny and Sohler, 1997 Triangle Mesh Compression, Touma and Gotsman, 1998 Real time compression of triangle mesh connectivity, Gumhold and Strasser, 1998 Mesh Connectivity Coding by Dual Graph Approach, Li and Kuo, 1998 Edgebreaker: Connectivity Compression for Triangle Meshes, Rossignac, 1998 Mesh Collapse Compression, Isenburg and Snoeyink, 1999 Single Resolution Compression of Arbitrary Triangular Meshes with Properties, Bajaj, Pascucci, and Zhuang, 1999 Triangle Strip Compression, Isenburg, 2000 Face Fixer: Compressing Polygon Meshes with Properties, Isenburg and Snoeyink, 2000 Efficient Coding of non-triangular Meshes, Kronrod and Gotsman
esh Connec esh Collaps time Edgebreaker Compression Schemes Geometry Compression, Deering, 1995 Short Encodings of Planar Westbrook, 1995 Geometric Compression ubin and Rossignac, 1996 Good orders for increm nd vanKrefeld, 1997 Encoding a triangulation y and Sohler, 1997 Triangle Mesh Compre Real time compression d and Strasser, 1998 Mesh Connectivity Co o, 1998 Edgebreaker: Connectivity ossignac, 1998 Mesh Collapse Compressi Single Resolution Compres hes with Properties, Bajaj, Pascucci, and Zhuang, 1999 Triangle Strip Compression, Isenburg, 2000 Face Fixer: Compressing Polygon Meshes with Properties, Isenburg and Snoeyink, 2000 Efficient Coding of non-triangular Meshes, Kronrod and Gotsman
Edgebreaker
Encoding Encodes mesh connectivity as a sequence of labels Best worst case bound for mesh connectivity Less than 4 bits per vertex for meshes without holes and handles
Decoding Original decoding replays encoding traversal –but O(n 2 ) worst case time complexity Wrap & Zip decoding “sort of” replays encoding traveral –only O(n) time complexity –but multiple traversals of labels (triangles) for mesh with boundary (handles) –“zipping” is un-necessary overhead
Edgebreaker Encoding
C
R C
R C R
R C RR
L R C RR
L S R C RR
L S R C R L R
L S R C R E LR
L S R C R C ELR
L S R C R C ELR R
L S R C R C ELRR R
L S R C R C ELRRR E
L S RE C R C ELRRR
Edgebreaker Decoding
Changes in boundary length Computing initial boundary length L S RE C R C ELRRR 0
Changes in boundary length Computing initial boundary length L S RE C R C ELRRR C +1 0
Changes in boundary length Computing initial boundary length L S RE C R C ELRRR R
Changes in boundary length Computing initial boundary length L S RE C R C ELRRR R
C Changes in boundary length Computing initial boundary length L S RER C ELRRR R
C Changes in boundary length Computing initial boundary length L S RER C ELRRR L
C Changes in boundary length Computing initial boundary length L S RER C ELRRR S
C Changes in boundary length Computing initial boundary length Computing offset for label L S RER C ELRRR S
C Changes in boundary length Computing initial boundary length Computing offset for label L S RER C ELRRR S L
C Changes in boundary length Computing initial boundary length Computing offset for label L S RER C ELRRR S E
Changes in boundary length Computing initial boundary length Computing offset for label L S RER C ELRRR C S C
C Changes in boundary length Computing initial boundary length Computing offset for label L S RER C ELRRR S R
C Changes in boundary length Computing initial boundary length Computing offset for label L S RER C ELRRR S R
C Changes in boundary length Computing initial boundary length Computing offset for label L S RER C ELRRR S E
L S RER C ELRRR C
L S RE C R C ELRRR C C
L S RE C R C ELRRR R R
L S RE C R C ELRRR R R
L S RE C R C ELRRRR R
L S RE C R C ELRRR L L
use pre-computed offset L S RE C R C ELRRR S S
L S RE C R C ELRRR L L
L S RE C R C ELRRR E E
L S RE C R C ELRRR C C
L S RE C R C ELRRR R R
L S RE C R C ELRRR R R
L S RE C R C ELRRR E E
L S RE C R C ELRRR
Wrap & Zip Decoding
L S RE C R C ELRRR
L S RE C R C ELRRR C C
L S RE C R C ELRRR R R
L S RE C R C ELRRR R R
L S RE C R C ELRRRR R
L S RE C R C ELRRR L L
zip... L S RE C R C ELRRR
L S RE C R C ELRRR S S
L S RE C R C ELRRR L L
L S RE C R C ELRRR E E
L S RE C R C ELRRR C C
L S RE C R C ELRRR R R
L S RE C R C ELRRR R R
L S RE C R C ELRRR E E
L S RE C R C ELRRR
L S RE C R C ELRRR
L S RE C R C ELRRR
L S RE C R C ELRRR
L S RE C R C ELRRR
L S RE C R C ELRRR
Spirale Reversi Decoding
L S RE C R C ELRRR E E
L S RE C R C ELRRR R R
L S RE C R C ELRRR R R
L S RE C R C ELRRR C C
L S RE C R C ELRRR E E
L S RE C R C ELRRR L L
L S RE C R C ELRRR S S
L S RE C R C ELRRR S
L S RE C R C ELRRR S
L S RE C R C ELRRR S
L S RE C R C ELRRR S
L S RE C R C ELRRR S
L S RE C R C ELRRR L L
L S RE C R C ELRRRR R
L S RE C R C ELRRR R R
L S RE C R C ELRRR R R
L S RE C R C ELRRR C C
L S RE C R C ELRRR
Holes and Handles
Encoding a hole M
Encoding a handle M
Yeez … this bunny again!
Acknowledgements Davis King for details on Edgebreaker during our “pool session” at SCG 99 Jarek Rossignac for suggesting the name “Spirale Reversi”