with parallelogram prediction compressing polygon mesh geometry martin isenburg unc chapel hill...
Post on 20-Dec-2015
223 views
TRANSCRIPT
withParallelogram
Prediction
CompressingPolygon Mesh Geometry
Martin IsenburgUNC
Chapel Hill
Pierre AlliezINRIA
Sophia-Antipolis
Take this home:
“Non-triangular faces inthe mesh can be exploited for
more efficientpredictive compression
of vertex positions.”
“Non-triangular faces tend tobe planar and convex.”
Overview
• Background
• Previous Work
• Linear Prediction Schemes
• “within” versus “across”
• Example Run
• Can we do better ?
• Conclusion
Background
Polygon Meshes
• connectivity
• geometry
vertex1 ( x, y, z )vertex2 ( x, y, z )vertex3 ( x, y, z )
vertexv
face1 1 2 3 4face2 3 4 3face3 5 2 1 3
facef
~ 4v 32 bits
3v * 32 bits
size: 79296 bytes
297365647
12
log2(v)
2832 vertices
• Geometry Compression [Deering, 95]– Fast Rendering
– Progressive Transmission
– Maximum Compression
Geometry Compression [Deering, 95]
Mesh Compression
Maximum Compression
• Geometry Compression [Deering, 95]– Fast Rendering
– Progressive Transmission
– Maximum Compression
• Connectivity
• Geometry
Geometry Compression [Deering, 95]
Mesh Compression
Maximum Compression
Geometry
• Geometry Compression [Deering, 95]– Fast Rendering
– Progressive Transmission
– Maximum Compression
• Connectivity
• Geometry
– Triangle Meshes
– Polygon Meshes
Geometry Compression [Deering, 95]
Mesh Compression
Polygon Meshes
Maximum Compression
Geometry
Triangle Mesh Compression
• Connectivity Coder– stores the connectivity as sequence
of vertex degrees
Triangle Mesh Compression[Touma & Gotsman, Graphics Interface 98]
• Geometry Coder– stores the geometry as sequence of
vectors; each corrects the prediction of a vertex position
Not Triangles … Polygons!
Face Fixer [Isenburg & Snoeyink, 00]
• Connectivity Coder
Generalization of TG coder
Compressing Polygon Connectivity withDegree Duality Prediction, [Isenburg, 02]
Near-optimal connectivity coding ofPolygon meshes, [Khodakovsky, Alliez,
Desbrun & Schroeder, 02]
this paper [Isenburg & Alliez, 02]
• Geometry Coder
triceratopsgalleoncessna
…tommygun
cowteapot
14.818.412.5
…12.520.616.1
Results
TGbits per vertex
model IA20.024.119.1
…19.620.421.0
min / max / average [%] = 9 / 41 / 23
26 %26 %35 % ...36 %-1 %24 %
gain
Previous Work
Previous 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]
Java3D
MPEG - 4
Virtue3D
Previous Work
• Classic approaches [95 – 98]:– linear prediction
• Recent approaches [00 – 02]:– spectral
– re-meshing
– space-dividing
– vector-quantization
– feature discovery
– angle-based
Previous 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]
expensive numericalcomputations
Previous 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]
modifies mesh priorto compression
Previous 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]
poly-soups; complexgeometric algorithms
Previous 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]
local coord-system +vector-quantization
Previous Work
• Classic approaches [95 – 98]:– linear prediction
• Recent approaches [00 – 02]:– spectral
– re-meshing
– space-dividing
– vector-quantization
– feature discovery
– angle-based
certain 3D models +expensive matching
Compression of engineeringmodels by repeated feature
[Shikhare et al., 01]discovery
Previous 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]
dihedral + internal =heavy trigonometry
Linear Prediction Schemes
Linear Prediction Schemes
1. quantize positions with b bits
2. traverse positions
3. linear prediction from neighbors
4. store corrective vector
(1.2045, -0.2045, 0.7045) (1008, 68, 718)floating point integer
Linear Prediction Schemes
1. quantize positions with b bits
2. traverse positions
3. linear prediction from neighbors
4. store corrective vector
use traversal order implied bythe connectivity coder
Linear Prediction Schemes
1. quantize positions with b bits
2. traverse positions
3. linear prediction from neighbors
4. store corrective vector
(1004, 71, 723)apply prediction rule prediction
Linear Prediction Schemes
1. quantize positions with b bits
2. traverse positions
3. linear prediction from neighbors
4. store corrective vector0
10
20
30
40
50
60
70
position distribution
0
500
1000
1500
2000
2500
3000
3500
corrector distribution
(1004, 71, 723)(1008, 68, 718)position
(4, -3, -5)correctorprediction
Deering, 95
Prediction: Delta-Coding
A
processed regionunprocessed region
P
P = A
Taubin & Rossignac, 98
Prediction: Spanning Tree
A
BC D
E
processed regionunprocessed region
P
P = αA + βB + γC + δD + εE + …
Touma & Gotsman, 98
Prediction: Parallelogram Rule
processed regionunprocessed region
P
P = A – B + C
A
BC
Parallelogram Rule
“good”prediction
“bad”prediction
“non-convex”
“bad”prediction
“non-planar”
More “good” Predictions
• average multiple predictions
Multi-way geometry encoding. [Cohen-Or, Cohen & Irony, 02]
Optimized compression of triangle mesh geometryusing prediction trees. [Kronrod & Gotsman, 02]
• search for best prediction• direct the traversal (prediction tree)
average gain of 11 %
average gain of 8 % (smooth) & 42 % (CAD)
Polygon Meshes … ?
TG coder
• triangulate
• compress resulting triangle mesh
IA coder
• do NOT triangulate
• use polygons for better predictions
• within versus across
“within” versus “across”
Non-triangular Faces
Question: Why would a mesh have
a non-triangular face?
Non-triangular Faces
Question: Why would a mesh have
a non-triangular face?Answer: Because there was noreason to triangulate it!
This face was “convex”and “planar”.
use this info for “good” predictions
within-predictions often find existing parallelograms ( quadrilaterals)
“within” versus “across”
within-predictions avoid creases
within-predictionacross-prediction
triceratopsgalleoncessna
…tommygun
cowteapot
20.526.819.8
…19.520.622.7
Bitrates: “within” vs. “across”
withinbits per vertex
model across
14.116.911.1
…10.9
-14.9
min / max / average [%] = 13 / 47 / 32
31 %37 %45 % ...44 %
-
34 %
diff
Maximizing the number of within-predictions
Greedy 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
we’re lucky:
process vertices in order dictated by our connectivity coder
Traversal Order
Compressing Polygon Connectivity withDegree Duality Prediction [Isenburg, 02]
Valence-driven Connectivity Encodingfor 3D meshes [Alliez & Desbrun, 01]
avoid “splits” by adaptive traversal
“splits”
“splits”
“splits”
“splits”
“splits”
processed region
“splits”
processed region
“splits”
processed region
“splits”
processed region
“splits”
processed region
“splits”
processed region
split
Adaptive Traversal
Adaptive Traversal
Adaptive Traversal
% of within-predictions
triceratopsgalleoncessna
…tommygun
cowteapot
within
prediction type:model
min / max / average [%] = 74 / 91 / 84
across
2557 257 2 1
2007 324 24 123091 621 22 11 … … … …3376 678 78 39
0 2701 2 11016 170 2 1
last center
90 %85 %83 % …81 %0 %
85 %
within% of
Example Decoding Run
Example Decoding Run
center-prediction:• no parallelogram rule possible• predict this position as center of
the bounding box
center
Example Decoding Run
0last
last-prediction:• no parallelogram rule possible• predict this position as the last
position
Example Decoding Run
1
0
last
last-prediction:• no parallelogram rule possible• predict this position as the last
position
Example Decoding Run
across-prediction:• parallelogram rule possible• predict across two polygons
across
1
0
2
Example Decoding Run
within-prediction:• use parallelogram rule• predict within a polygon
within
1
0
2
3
Example Decoding Run
1
0within
4
3
2
Example Decoding Run
3
1
2
across5
4
0
Example Decoding Run
3
1
0
2
within6
45
Example Decoding Run
7
5
1
0
2
within6
4
3
Example Decoding Run
7
6
5
1
0
4
within
7
2
3
Can we do better ?(and keep it simple)
Keep it simple
Constraints:
• single linear prediction
• use connectivity traversal order
Possibilities:
• floating point coefficients
• use more than three vertices
better within-predictions
perfect systematic error
deg = 4
assuming ideal ( regular) polygons
P = A – B + C
P = αA + βB + γCα = 1, β = -1, γ = 1
deg = 6
A
B C
deg = 8
B C
A
CB
A
deg = 5
A
CB
Switch “within” Coefficients
if (deg == 4) {α = 1.000; β = -1.000; γ = 1.000;
} else if (deg == 5) {α = 1.024; β = -0.527; γ = 0.503;
} else if (deg == 6) {α = 1.066; β = -0.315; γ = 0.249;
} else …
How did we pick these numbers?
Finding the Coefficients
• no obvious “scientific” way• use Matlab
– for each degree separately– sum all possible prediction errors as
function of α and β
– optimize α and β for minimal error
Err = len (N – αA + βB + γC)with 1 = α + β + γ B
A
C
N
Switch “within” Coefficients
if (deg == 4) {α = 1.000; β = -1.000; γ = 1.000;
} else if (deg == 5) {α = 1.024; β = -0.527; γ = 0.503;
} else if (deg == 6) {α = 1.066; β = -0.315; γ = 0.249;
} else …
on average 70 % of predictions
parallelogram prediction within a quadrilateral is optimal
assuming equal edge length
better across-predictions
33 34 35 36 38
43 44 45 46 48
adjacentpolygons
arecoplanar
assuming equal edge length
better across-predictions
33 34 35 36 38
43 44 45 46 48
adjacentpolygonsare not
coplanar
creaseangle:
60°
Switch “across” Coefficientsif (deg == 33) {
α = 0.917; β = - 0.833; γ = 0.916;} else if (deg == 34) {
α = 0.621; β = - 0.504; γ = 0.883;} else if (deg == 35) {
α = 0.557; β = - 0.334; γ = 0.777;} else … …
} else if (deg == 43) {α = 1.153; β = - 0.354; γ = 0.201;
} else if (deg == 44) {α = 1.001; β = - 0.648; γ = 0.647;
} else … …
Conclusion
Summary (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
Summary (2)
• proof-of-conceptimplementationin form of a Webjava-applet
• compression software will soon be made available
http://www.cs.unc.edu/~isenburg/pmc/
Future Work
• a scientific way to find numbers for this “coefficient switching”
• polygonification:– turn triangle meshes into polygon
meshes for better compression
Acknowledgments
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
Thank You!
http://www.cs.unc.edu/~isenburg/pmc/