angle-analyzer: a triangle-quad mesh codec haeyoung lee usc mathieu desbrun usc pierre alliez inria
TRANSCRIPT
Angle-Analyzer:Angle-Analyzer:A Triangle-Quad Mesh CodecA Triangle-Quad Mesh Codec
Angle-Analyzer:Angle-Analyzer:A Triangle-Quad Mesh CodecA Triangle-Quad Mesh Codec
Haeyoung LeeHaeyoung LeeUSCUSC
Mathieu Mathieu DesbrunDesbrunUSCUSC
Pierre Pierre AlliezAlliezINRIAINRIA
2
Introduction: 3D Introduction: 3D CompressionCompressionIntroduction: 3D Introduction: 3D CompressionCompression
3
FocusFocusFocusFocus
A Single-rate, Lossy Compression
Single-rate vs progressive compression
Lossy vs. lossless compression
Contribution: Better Bitrates 40% better in connectivity, 20% better in geometry
Improves transmission time, storage space, …
4
Previous Work: Previous Work: ConnectivityConnectivityPrevious Work: Previous Work: ConnectivityConnectivity
3 main approaches, based on:
» Triangle strips
» Edge/gate traversal» Valence
5
Edge/Gate Traversal IEdge/Gate Traversal IEdge/Gate Traversal IEdge/Gate Traversal I[Rossignac 99] & follow-ups: EdgeBreaker 5 symbols (+2 for arbitrary genus)
Spiraling depth-first spanning tree traversal
Connectivity: ~4 b/v
6
Edge/Gate Traversal II Edge/Gate Traversal II Edge/Gate Traversal II Edge/Gate Traversal II [Gumhold 00] : CutBorder Machine 6 Symbols
Breadth-first traversal
Connectivity: ~3.55 b/v
[Isenburg & Snoeyink 00]
Polygon meshes
Overall, 2V symbols
7
0
1000
2000
3000
4000
5000
6000
7000
8000
1 2 3 4 5 6 7 8 9 101112 1314
Valence
Occu
rre
nce
s
Valence-based Valence-based Approaches IApproaches IValence-based Valence-based Approaches IApproaches I[Touma & Gotsman 98]
Deterministic traversal by pivoting around vertices
[Isenburg & Snoeyink 99] Edge collapses
One valence symbol per removed vertex
8
0
1000
2000
3000
4000
5000
6000
7000
8000
1 2 3 4 5 6 7 8 9 101112 1314
Valence
Occu
rre
nce
s
Valence-based Valence-based Approaches IIApproaches IIValence-based Valence-based Approaches IIApproaches II[Alliez & Desbrun 01]
Improvements upon [TG98]: Adaptive traversal Worst case: 3.24b/v
[Li & Kuo 98] &
[Khodakovsky, Alliez, Desbrun, Schröder 02]
Polygon meshes using duality
Overall, only V symbols
9
Previous Work: GeometryPrevious Work: GeometryPrevious Work: GeometryPrevious Work: GeometryDelta Encoding [Deering 95]
Predictions [Taubin & Rossignac 98]
Global Quantization [Touma & Gotsman 98]
Vector Quantization [Lee & Ko 00]
Occurrence [Devillers & Gandoin 00, 02]
Wavelet-based compression [KWS 00]
10
Our Algorithm: Angle-Our Algorithm: Angle-AnalyzerAnalyzerOur Algorithm: Angle-Our Algorithm: Angle-AnalyzerAnalyzer
Our Goal:Triangle, Quad, and Hybrid Meshes
(most common!)
+ Easiness of implementation Mix edge/gate traversal & valence approach!
Our Contribution: 20% better than [TG98]
40% better in connectivity
19% better in geometry
11
Our Algorithm: Angle-Our Algorithm: Angle-AnalyzerAnalyzerOur Algorithm: Angle-Our Algorithm: Angle-AnalyzerAnalyzer
Our Connectivity Encoder: Small number of fixed symbols, easy to
code Adaptive traversal & low-entropy
sequence
Our Geometry Encoder: Local coordinate system Intrinsic & extrinsic angles Entropy-driven quantization
12
Angle-Analyzer: Angle-Analyzer: DefinitionsDefinitionsAngle-Analyzer: Angle-Analyzer: DefinitionsDefinitions
Gate Front Vertices Back Face Front Face
Active Gate List Gate Lists in a Stack
V0V1
front face
back face
front vertex
gate
left front right front
gateV0V1V0V1
front face
back face
front vertex
gate
left front right front
gate
V0V1
Blue: visitedGrey: to be visited
13
Triangle Mesh Triangle Mesh ConnectivityConnectivityTriangle Mesh Triangle Mesh ConnectivityConnectivityOnly 5 symbols: C, CW, CCW, S, J
C (Create) CW (Mesh Clockwise) CCW (Mesh Counterclockwise)
S (Skip) J (Join)
V0V1
V0
V1
V0
V1
V0V1
V0
V1
14
Quad Mesh ConnectivityQuad Mesh ConnectivityQuad Mesh ConnectivityQuad Mesh Connectivity8 symbols: C2, CR, CL, Mesh, DCCW, DCW, S, JQ
C2(Create 2)
CR (Create Right Front)
CL (Create Left Front)
JQ (Join for Quad)
Mesh (just mesh)
DCW (Double -
Clockwise)
DCCW (Double -Counterclockwis
e)
Red: new, Grey: old
Yellow: possibly new
15
Hybrid Mesh ConnectivityHybrid Mesh ConnectivityHybrid Mesh ConnectivityHybrid Mesh Connectivity12 symbols, depending on the front face:
C, CW, CCW, S, J,
C2, CR, CL, Mesh, DCCW, DCW, JQ
V0V1
front face
front vertex left front right front
V0V1
back face
16
Adaptive Traversal - Adaptive Traversal - HeuristicHeuristicAdaptive Traversal - Adaptive Traversal - HeuristicHeuristic
Minimize #J(JQ) by choosing best gate: min angle between two successive gates
Geometry-driven adaptive traversal
J
CW
with [AD01]:
with new heuristic:
17
Geometry-Driven Geometry-Driven TraversalTraversalGeometry-Driven Geometry-Driven TraversalTraversal
Model #V #J based on deterministic
traversal
#J based
on [AD01]
#J based on minimum
angle
Feline 49864 8700 1951 106
Maxplanck 25445 4373 808 13
Horse 19851 3460 694 20
Egea_tf2 14169 2181 106 18
Dinosaur 14070 2536 571 59
Nefertiti_u 10413 1497 1 0
Foot 10016 1761 301 14
Venus 8268 1479 727 149
Egea_u 5315 782 4 0
Body 711 114 11 4
Nefertiti 299 31 7 0
Improvements due to new heuristic:
18
Connectivity for Triangle Connectivity for Triangle MeshesMeshesConnectivity for Triangle Connectivity for Triangle MeshesMeshes
40% better on average
model #V TG98
LAD02
Feline 49864
2.38 1.50
Maxplanck
25445
2.31 1.45
Horse 19851
2.34 1.35
Egea_tf2 14169
1.62 0.82
Dinosaur 14070
2.39 1.69
Nefertiti_u 10413
1.59 0.65
Foot 10016
2.33 1.56
Venus 8268 2.82 1.95
Egea_u 5315 1.73 0.82
Body 711 2.62 1.96
Bit rates in b/v
19
Connectivity for Quad Connectivity for Quad MeshesMeshesConnectivity for Quad Connectivity for Quad MeshesMeshes
Model #V LAD02
Feline.quad 205210
0.65
Head.quad 48099 0.36
Rockerarm.quad 41312 0.74
Venus.quad 34104 0.89
David.quad 24599 1.08
Genus3.quad 6796 0.44
Body.quad 2891 0.64
Uglybox.quad 1432 1.36
Tiger.quad 1254 0.94
Nefertiti.quad 1191 0.81
20
Angle-Analyzer: Geometry Angle-Analyzer: Geometry (1)(1)Angle-Analyzer: Geometry Angle-Analyzer: Geometry (1)(1)
Local Coordinate Based Geometry
2-pass algorithm:
Range search
Transform global to Local Coordinate system then Quantize
(x,y,z)Front vertex
V0
V1
X-axis
Z-axis
Y-axis
Front face
21
Angle-Analyzer: Geometry Angle-Analyzer: Geometry (2)(2)Angle-Analyzer: Geometry Angle-Analyzer: Geometry (2)(2)
Angle-based Geometry
Single-pass algorithm:
Just quantize angles!
Predefined ranges for angles:
(0, ) for
(-) for
Front vertex
Front face
V0
V1
22
Angle-Analyzer: Angle-Analyzer: Geometry(3)Geometry(3)Angle-Analyzer: Angle-Analyzer: Geometry(3)Geometry(3)
Entropy-Driven Geometry Encoding
Choose one among 8 candidates on a cube with lowest local entropy
Easy to extend: pick whatever vertex is the cheapest for an equivalent geometric error…
Front vertex
V1
Front face
V0
23
Discussion on GeometryDiscussion on GeometryDiscussion on GeometryDiscussion on Geometry
Distortion computed with Metro
Bit Rate
24
Discussion on GeometryDiscussion on GeometryDiscussion on GeometryDiscussion on GeometryBetter visual results (i.e., distortion) for less bits!
Original TG-9bit (7.32b/v)
Angle–Analyzer (6.88b/v)
25
Discussion on GeometryDiscussion on GeometryDiscussion on GeometryDiscussion on Geometry
Original TG-10bit (7.94b/v)
Angle–Analyzer (6.58b/v)
Better visual results (i.e., distortion) for less bits!
26
Result OverviewResult OverviewResult OverviewResult Overviewmodel Orig
File(KB)
Comp (KB)
TG-12bits(b/v)
Angle (b/v)
vs. TG-12bits
feline 5,127 90 16.55 14.68 -11%
maxplanck
2,699 44 18.74 14.17 -24%
Horse 2,091 34 17.51 14.25 -19%
Egea_tf2 1,202 26 16.53 15.19 -8%
Nefertiti_u
1,056 12 15.02 10.21 -32%
Sphere 1,061 7 6.98 5.14 -26%
Egea_u 541 10 18.23 16.26 -11%
random 445 7 16.07 11.77 -27%20% better in overall ratios than TG98 with 12bit
27
Work DoneWork DoneWork DoneWork DoneA single-rate compression algorithm
for 3D triangle-quad meshes
Contribution to connectivity Fixed number of Symbols (smaller than previous) New geometry-driven adaptive traversal (40% better)
Contribution to geometry New intrinsic and extrinsic angle encoding New local coordinate frame New entropy-driven quantization (19% better)
Competitive compression ratios (20%better)
28
Future WorkFuture WorkFuture WorkFuture WorkGoal:
• Extending Angle-Analyzer to handle polygonal meshes and non-manifold meshes
• Reducing bit rate further on geometry
Why:
• Many non-manifold meshes in practice
• Comparatively little work on non-manifold mesh compression (Devillers & Gandouin)
• Seems like geometry compression is not optimal…
29
AcknowledgementsAcknowledgementsAcknowledgementsAcknowledgements• IMSC, NSF
• Yiying Tong
• Laehyun Kim
• Anna Kyrikou