04 MPEG-4 , 1Jarek Rossignac, CoC & GVU Center, Georgia Tech SM, June 2002
3D Compression
Jarek RossignacGVU Center and College of
Computing
Georgia Tech, Atlanta
http://www.gvu.gatech.edu/~jarek
04 MPEG-4 , 2Jarek Rossignac, CoC & GVU Center, Georgia Tech SM, June 2002
• Definition
– Compact coding of 3D representations
– Efficient compression/decompression algorithms
• Issues– Domain
– Accuracy
– Ratio
– Codec performance
What is 3D Geometry Compression?
Binary format
Binary format
Compress Decompress
04 MPEG-4 , 3Jarek Rossignac, CoC & GVU Center, Georgia Tech SM, June 2002
The compression problem
• Given the boundary of a feature (triangle mesh), encode its interior– Location (coordinates) specifying where the interior vertices are
– Triangle/vertex incidence, defining how the surface interpolates the pointsvertex locationincidenceBoundary?
3 5 1 x y z2 3 4 x y z1 2 3 x y zvertex 1
vertex 2
vertex 3
Triangle 2
Triangle 1
Triangle 3
Previously decoded for a lower-resolution model
04 MPEG-4 , 4Jarek Rossignac, CoC & GVU Center, Georgia Tech SM, June 2002
What to decode first?
geometry incidence
geometryincidence
Could estimate incidence from geometry (Delaunay, encode only edge flips)
Could estimate geometry from incidence (relaxation, encode corrective vectors)
Could estimate each vertex from previous vertices and from partial incidence
?
? ?
04 MPEG-4 , 5Jarek Rossignac, CoC & GVU Center, Georgia Tech SM, June 2002
Must decode connectivity first
Cannot use geometry to estimate connectivity, because connectivity is used to predict geometry (see vertex-data compression section).
Must develop connectivity compression methods independent of the vertex locations.
connectivity
connectivitygeometry
geometry
corrective
04 MPEG-4 , 6Jarek Rossignac, CoC & GVU Center, Georgia Tech SM, June 2002
36-to-1 compression ratio
x y z x y z x y zx y z x y z x y zx y z x y z x y z
vertex 1 vertex 2 vertex 3
Triangle 2
Triangle 1
Triangle 3
Independent triangles: 576V bits (coordinates as floats 9x32T bits) Each vertex encoded ~ 6 times
x y z x y z 7x y z 10vertex 1
vertex 2
vertex 3
Strip 2
Strip 1
L
R R
Triangle Strips: 214V bits (1.1x3x4B/T + 1B/S + 1b/T)Each vertex encoded ~ twice
V and T tablesExample: V=1000, B=10, k=0 Samples+incidence storage costs: (3B+6log2V)V = (30+60)V = 98V bits
x y z cx y z cvertex 1
vertex 2
vertex 3 x y z c
3 2 4
6 5 8
Triangle 4 7 5 6Triangle 5
1 2 3Triangle 1
4 5 2
Triangle 2
Triangle 3
Triangle 6 8 5 1
V(3B+k) bitsV(6log2V) bits
Can be compressed to: (14+2)V = 16V bits
04 MPEG-4 , 7Jarek Rossignac, CoC & GVU Center, Georgia Tech SM, June 2002
Connectivity compression: An old challenge
• Tutte: Theoretical lower bound (Tutte 62): can’t guarantee < 1.62 bits per triangle• Itai,Rodeh: Representation of graphs, Acta Informatica, 82• Turan: On the succinct representation of graphs, Discrete Applied Math, 84: 6Tb• Naor: Succinct representation of unlabeled graphs, Discrete Applied Math, 90• Keeler,Westbrook: Encoding planar graphs, Discrete Applied Math, 93: 2.3Tb• Deering: Geometry Compression, Siggraph, 95• Denny,Sohler: Encode 2D triangulation as permutation of points, CCCG, 97: 0Tb
Topological Surgery Taubin&Rossignac
Edgebreaker Rossignac&team
Valence-based Gotsman&team
Cutborder Gumhold&Strasser
Spirale Reversi Snoeyink&Isenburg
04 MPEG-4 , 8Jarek Rossignac, CoC & GVU Center, Georgia Tech SM, June 2002
A simple and elegant solution (?)
Connecting vertices into a single spiral (Hamiltonian walk) defines the left and the right boundaries (walls) of a long corridor.
Given the left and right boundaries of a triangle strip (corridor), we need T (left/right) bits to encode its triangulation. ex: LRRLLRLRR
L
R R
Store vertices in their order along the wall. (Can use former vertices to predict location of new ones.)Encode connectivity using only 1 (left/right) bit per triangle !
L L L
RRR
04 MPEG-4 , 9Jarek Rossignac, CoC & GVU Center, Georgia Tech SM, June 2002
But..but..wait a minute! It doesn’t work!
The corridor may have warts
R
?
Warts are hard to avoid
?
The spiral may bifurcate
The corridor may bifurcate
L
R
04 MPEG-4 , 10Jarek Rossignac, CoC & GVU Center, Georgia Tech SM, June 2002
3Tb encoding of VST and TST suffices
2
3
4
5
6
2
3
4 5
6
7
7
7
7
8 78
9
1
1
2
3
4
5
6
7
12
12 11
11
10
10
8
9
+
Guaranteed 3Tb connectivity
(2Tb T-tree + 2Vb V-tree)
04 MPEG-4 , 11Jarek Rossignac, CoC & GVU Center, Georgia Tech SM, June 2002
3T bit encoding details
The triangle spanning tree may be encoded using 2T bits: • has-left-child • has-right-child
100110
1101
10 01
0110
11
0000
011010
1001
11
00
11
0000
10
10
11 10
000011
00
01
A vertex spanning tree may be encoded using 2V bits (= 1T bits): • has-children • has-right-sibling
04 MPEG-4 , 12Jarek Rossignac, CoC & GVU Center, Georgia Tech SM, June 2002
6T bits (Turan 84)
Turan: On the succinct representation of graphs, Discrete Applied Math, 84
• “Succinct representation of graphs”– Discrete Applied Mathematics
• Incidence = planar graph
• Decompose graph into VST and TST
• Total cost 6T bits (12v-24) guaranteed– Compare to my 3T bit code for both trees and to 1.83T bits of Edgebreaker
04 MPEG-4 , 13Jarek Rossignac, CoC & GVU Center, Georgia Tech SM, June 2002
Topological Surgery (TS)
Taubin-Rossignac
IBM’95, VRML, MPEG-4
“Geometric compression through Topological Surgery,” G. Taubin and J. Rossignac, ACM Transactions on Graphics, vol. 17, no. 2, pp. 84–115, 1998.
“Geometry coding and VRML,” G. Taubin, W. Horn, F. Lazarus, and J. Rossignac, Proceeding of the IEEE, vol. 96, no. 6, pp. 1228–1243, June 1998.
04 MPEG-4 , 14Jarek Rossignac, CoC & GVU Center, Georgia Tech SM, June 2002
Run-length encoding of TST and VST
Most nodes have a single child. - Group them into runs - Store structure of each tree (2 bits per run) - Store left/right bit per triangle
2
5
3
45
04 MPEG-4 , 15Jarek Rossignac, CoC & GVU Center, Georgia Tech SM, June 2002
Run-length codes detail
2
10
13 1
2
+ 1 bit per run (leaf?)
+ 1 bit per triangle (Left/Right)
6
11
1
2
+ 1 bit per run (leaf?)
+ 1 bit per run (last child?)
+
04 MPEG-4 , 16Jarek Rossignac, CoC & GVU Center, Georgia Tech SM, June 2002
TS example
04 MPEG-4 , 17Jarek Rossignac, CoC & GVU Center, Georgia Tech SM, June 2002
Spiral is better than other traversal orders
04 MPEG-4 , 18Jarek Rossignac, CoC & GVU Center, Georgia Tech SM, June 2002
Topological Surgery Compression
• Cut mesh by spiraling vertex-tree– Few runs in practice
• Encode vertex tree– 1 Integer/run: Length
– 2 bits/run: structure
• Encode triangle tree– 1 Integer/run: Length
– 1 bit/run (leaf?)
– 1 bit/triangle (left?)
• Label vertices as visited in vertex tree– Need not send vertex id (saves log(v) bits)
– Encode corrections to predicted locations (discussed later)
04 MPEG-4 , 19Jarek Rossignac, CoC & GVU Center, Georgia Tech SM, June 2002
Topological Surgery decompression
1
12
11
10
2
3
4
5
6
2
3
4 5
6
7
7
7
7
8 78
9
1
12
11
10
2
3
4
5
6
7 8
9
04 MPEG-4 , 20Jarek Rossignac, CoC & GVU Center, Georgia Tech SM, June 2002
Results TS (MPEG-4) vs VRML
04 MPEG-4 , 21Jarek Rossignac, CoC & GVU Center, Georgia Tech SM, June 2002
Topological Surgery: Results and Impact
• Results: – Compresses to less than 10 bits per triangle
• Connectivity: about 2.0 T bits (increases for smaller meshes)• Geometry: 6 bits per coordinate (decreases with tessellation&quantization)
• Publications and impact of Topological Surgery:– Interfaced to VRML 2.0 offered by IBM (1995)– Core of the MPEG-4 standard for 3D Compression– Geometric compression through topological surgery, Taubin&Rossignac
• ACM Transactions on Graphics, 17(2):84-116, April 1998 (Best Paper Award)– Geometry coding and VRML, Taubin, Horn, Lazarus, & Rossignac
• Proceedings of the IEEE, 96(6):1228-1243, June 1998– Inspired several approaches
• Touma,Gotsman: Triangle Mesh Compression, GI, 98 • Gumbold,Straßer: Realtime Compression of Triangle Mesh Connectivity, Siggraph, 98• Taubin,Gueziec,Horn,Lazarus: Progressive forest split compression, Siggraph, 98
04 MPEG-4 , 22Jarek Rossignac, CoC & GVU Center, Georgia Tech SM, June 2002
TS spiral joins topological layers
04 MPEG-4 , 23Jarek Rossignac, CoC & GVU Center, Georgia Tech SM, June 2002
Inserting alternate layers (Bajaj et al.)
C. L. Bajaj, V. Pascucci, and G. Zhuang, “Single resolution compression of arbitrary triangular meshes with properties,” Computational Geometry: Theory and Applications, vol. 14, pp. 167–186, 1999.
04 MPEG-4 , 24Jarek Rossignac, CoC & GVU Center, Georgia Tech SM, June 2002
Summary
• Topological Surgery compression cuts the mesh along a spiraling VTS and encodes the VTS and its dual TST using RLE
• It encodes vertices in the VST order using entropy codes for residues over predictors that are linear combinations of ancestors in the VST
• It has been improved in various ways and forms the core of the MPEG-4 3D compression standard
• It encodes most meshes that have more than 300 vertices with less than 20 bits per vertex.
• It does not provide a guaranteed linear cost per vertex and requires between 20 and 100 bits per vertex for meshes of less than 100 vertices
• The implementation is somewhat complex but efficient