Title: Compressing Polygon Mesh Geometry
1CompressingPolygon Mesh Geometry
withParallelogramPrediction
Martin Isenburg UNCChapel Hill
Pierre Alliez INRIASophia-Antipolis
2Take this home
- Non-triangular faces inthe mesh can be
exploited for more efficientpredictive
compressionof vertex positions. - Non-triangular faces tend tobe planar and
convex.
3Overview
- Background
- Previous Work
- Linear Prediction Schemes
- within versus across
- Example Run
- Can we do better ?
- Conclusion
4Background
5Polygon Meshes
face1 1 2 3 4 face2 3 4 3 face3 5
2 1 3 facef
2832 vertices
vertex1 ( x, y, z ) vertex2 ( x, y, z
) vertex3 ( x, y, z ) vertexv
5647
? size 79296 bytes
6Mesh Compression
- Geometry Compression Deering, 95
- Fast Rendering
- Progressive Transmission
- Maximum Compression
Geometry Compression Deering, 95
Maximum Compression
7Mesh Compression
- Geometry Compression Deering, 95
- Fast Rendering
- Progressive Transmission
- Maximum Compression
- Connectivity
- Geometry
Geometry Compression Deering, 95
Maximum Compression
Geometry
8Mesh Compression
- Geometry Compression Deering, 95
- Fast Rendering
- Progressive Transmission
- Maximum Compression
- Connectivity
- Geometry
- Triangle Meshes
- Polygon Meshes
Geometry Compression Deering, 95
Maximum Compression
Geometry
Polygon Meshes
9Triangle Mesh Compression
Triangle Mesh Compression Touma Gotsman,
Graphics Interface 98
- Connectivity Coder
- stores the connectivity as sequence of vertex
degrees
- Geometry Coder
- stores the geometry as sequence of vectors
each corrects the prediction of a vertex position
10Not Triangles Polygons!
Face Fixer Isenburg Snoeyink, 00
11Generalization of TG coder
12Results
bits per vertex
model
TG
IA
triceratops galleon cessna tommygun
cow teapot
14.8 18.4 12.5 12.5 20.6 16.1
20.0 24.1 19.1 19.6 20.4 21.0
min / max / average 9 / 41 / 23
13Previous Work
14Previous Work
- Classic approaches 95 98
- linear prediction
Geometry Compression Deering, 95
Geometric Compression through topological
surgery Taubin Rossignac, 98
Triangle Mesh Compression Touma Gotsman, 98
15Previous Work
- Classic approaches 95 98
- linear prediction
- Recent approaches 00 02
- spectral
- re-meshing
- space-dividing
- vector-quantization
- feature discovery
- angle-based
16Previous Work
- Classic approaches 95 98
- linear prediction
- Recent approaches 00 02
- spectral
- re-meshing
- space-dividing
- vector-quantization
- feature discovery
- angle-based
Spectral Compressionof Mesh Geometry Karni
Gotsman, 00
17Previous Work
- Classic approaches 95 98
- linear prediction
- Recent approaches 00 02
- spectral
- re-meshing
- space-dividing
- vector-quantization
- feature discovery
- angle-based
Progressive GeometryCompression Khodakovsky et
al., 00
18Previous Work
- Classic approaches 95 98
- linear prediction
- Recent approaches 00 02
- spectral
- re-meshing
- space-dividing
- vector-quantization
- feature discovery
- angle-based
Geometric Compressionfor interactive
transmission Devillers Gandoin, 00
19Previous Work
- Classic approaches 95 98
- linear prediction
- Recent approaches 00 02
- spectral
- re-meshing
- space-dividing
- vector-quantization
- feature discovery
- angle-based
Vertex data compressionfor triangle meshes Lee
Ko, 00
20Previous Work
- Classic approaches 95 98
- linear prediction
- Recent approaches 00 02
- spectral
- re-meshing
- space-dividing
- vector-quantization
- feature discovery
- angle-based
21Previous Work
- Classic approaches 95 98
- linear prediction
- Recent approaches 00 02
- spectral
- re-meshing
- space-dividing
- vector-quantization
- feature discovery
- angle-based
Angle-Analyzer A triangle-quad mesh
codec Lee, Alliez Desbrun, 02
22Linear Prediction Schemes
23Linear Prediction Schemes
- quantize positions with b bits
- traverse positions
- linear prediction from neighbors
- store corrective vector
24Linear Prediction Schemes
- quantize positions with b bits
- traverse positions
- linear prediction from neighbors
- store corrective vector
25Linear Prediction Schemes
- quantize positions with b bits
- traverse positions
- linear prediction from neighbors
- store corrective vector
26Linear Prediction Schemes
- quantize positions with b bits
- traverse positions
- linear prediction from neighbors
- store corrective vector
27Deering, 95
processed region
unprocessed region
28Taubin Rossignac, 98
processed region
unprocessed region
29Touma Gotsman, 98
- Prediction Parallelogram Rule
processed region
unprocessed region
30Parallelogram Rule
good prediction
badprediction
badprediction
non-convex
non-planar
31More good Predictions
Multi-way geometry encoding. Cohen-Or, Cohen
Irony, 02
- average multiple predictions
Optimized compression of triangle mesh
geometryusing prediction trees. Kronrod
Gotsman, 02
- search for best prediction
- direct the traversal (prediction tree)
32Polygon Meshes ?
- TG coder
- triangulate
- compress resulting triangle mesh
- IA coder
- do NOT triangulate
- use polygons for better predictions
- within versus across
33within versus across
34Non-triangular Faces
- Question Why would a mesh have a
non-triangular face?
35Non-triangular Faces
- Question Why would a mesh have a
non-triangular face?
Answer Because there was no reason to
triangulate it! This face was
convex and planar.
? use this info for good predictions
36within versus across
across-prediction
within-prediction
- ? within-predictions avoid creases
? within-predictions often find existing
parallelograms (? quadrilaterals)
37Bitrates within vs. across
bits per vertex
model
triceratops galleon cessna tommygun
cow teapot
within
across
20.5 26.8 19.8 19.5 20.6 22.7
14.1 16.9 11.1 10.9 - 14.9
min / max / average 13 / 47 / 32
38Maximizing the number of within-predictions
39Greedy Strategy
- always try to
- (A) pick a vertex whose position can be
within-predicted - otherwise
- (B) do an across-prediction, but pick a vertex
that creates (A)for the next iteration
40Traversal Order
- were lucky
- ? process vertices in order dictated by our
connectivity coder
Compressing Polygon Connectivity withDegree
Duality Prediction Isenburg, 02
- ? avoid splits by adaptive traversal
Valence-driven Connectivity Encodingfor 3D
meshes Alliez Desbrun, 01
41splits
42splits
43splits
44splits
45splits
processed region
46splits
processed region
47splits
processed region
48splits
processed region
49splits
processed region
50splits
processed region
51Adaptive Traversal
52Adaptive Traversal
53Adaptive Traversal
54 of within-predictions
prediction type
model
triceratops galleon cessna tommygun
cow teapot
within
across
last
center
2557 257 2 1 2007 324 24 12 3091 621 22 11
3376 678 78 39 0 2701 2 1 1016 170 2 1
min / max / average 74 / 91 / 84
55Example Decoding Run
56Example Decoding Run
- center-prediction
- no parallelogram rule possible
- predict this position as center ofthe bounding
box
57Example Decoding Run
- last-prediction
- no parallelogram rule possible
- predict this position as the lastposition
0
58Example Decoding Run
- last-prediction
- no parallelogram rule possible
- predict this position as the lastposition
0
1
59Example Decoding Run
- across-prediction
- parallelogram rule possible
- predict across two polygons
0
2
1
60Example Decoding Run
- within-prediction
- use parallelogram rule
- predict within a polygon
3
0
2
1
61Example Decoding Run
4
3
0
2
1
62Example Decoding Run
4
5
3
0
2
1
63Example Decoding Run
6
4
5
3
0
2
1
64Example Decoding Run
6
7
4
5
3
0
2
1
65Example Decoding Run
6
7
4
5
7
3
0
2
1
66Can we do better ?(and keep it simple)
67Keep it simple
- Constraints
- single linear prediction
- use connectivity traversal order
- Possibilities
- floating point coefficients
- use more than three vertices
68better within-predictions
assuming ideal (? regular) polygons
deg 4
A
B
C
perfect
P A B C
a 1, ß -1, ? 1
P aA ßB ?C
69Switch within Coefficients
if (deg 4) a 1.000 ß -1.000 ?
1.000 else if (deg 5) a 1.024 ß
-0.527 ? 0.503 else if (deg 6) a
1.066 ß -0.315 ? 0.249 else
How did we pick these numbers?
70Finding the Coefficients
- no obvious scientific way
- use Matlab ?
- for each degree separately
- sum all possible prediction errors as function
of a and ß - optimize a and ß for minimal error
N
A
C
B
71Switch within Coefficients
if (deg 4) a 1.000 ß -1.000 ?
1.000 else if (deg 5) a 1.024 ß
-0.527 ? 0.503 else if (deg 6) a
1.066 ß -0.315 ? 0.249 else
72better across-predictions
- assuming equal edge length
adjacent polygonsare coplanar
3?3
3?4
3?5
3?6
3?8
4?3
4?4
4?5
4?6
4?8
73better across-predictions
- assuming equal edge length
adjacent polygonsare not coplanar
3?3
3?4
3?5
3?6
3?8
creaseangle 60
4?3
4?4
4?5
4?6
4?8
74Switch across Coefficients
if (deg 3?3) a 0.917 ß - 0.833 ?
0.916 else if (deg 3?4) a 0.621 ß -
0.504 ? 0.883 else if (deg 3?5) a
0.557 ß - 0.334 ? 0.777 else
else if (deg 4?3) a 1.153 ß - 0.354 ?
0.201 else if (deg 4?4) a 1.001 ß
- 0.648 ? 0.647 else
75Conclusion
76Summary (1)
- polygon information can improve predictive
geometry compression - using parallelogram rule within rather than
across polygons - average improvement of 23 over TG coder
- has simple and straight-forward implementation
77Summary (2)
- proof-of-conceptimplementationin form of a
Webjava-applet - compression software will soon be made available
http//www.cs.unc.edu/isenburg/pmc/
78Future Work
- a scientific way to find numbers for this
coefficient switching
- polygonification
- turn triangle meshes into polygon meshes for
better compression
79Acknowledgments
- funding
- ARC Télégéo grant of INRIA at Sophia-Antipolis
- logistics
- Jack Snoeyink
- Olivier Devillers
- Agnès Clément Bessière
- Jean-Daniel Boissonnat
80http//www.cs.unc.edu/isenburg/pmc/