Angle-Analyzer: A Triangle-Quad Mesh Codec Haeyoung Lee USC Mathieu Desbrun USC Pierre Alliez INRIA
2 Introduction: 3D Compression
3 FocusFocus 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: Connectivity 3 main approaches, based on: » Triangle strips » Edge/gate traversal » Valence
5 Edge/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 [Gumhold 00] : CutBorder Machine 6 Symbols Breadth-first traversal Connectivity: ~3.55 b/v [Isenburg & Snoeyink 00] Polygon meshes Overall, 2V symbols
7 Valence-based Approaches I [Touma & Gotsman 98] Deterministic traversal by pivoting around vertices [Isenburg & Snoeyink 99] Edge collapses One valence symbol per removed vertex
8 Valence-based Approaches 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: Geometry Delta 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-Analyzer 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-Analyzer 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: Definitions Gate Front Vertices Back Face Front Face Active Gate List Gate Lists in a Stack V0 V1 front face back face front vertex gate left frontright front gate V0 V1 V0 V1 front face back face front vertex gate left frontright front gate V0 V1 Blue: visited Grey: to be visited
13 Triangle Mesh Connectivity Only 5 symbols: C, CW, CCW, S, J C (Create) CW (Mesh Clockwise) CCW (Mesh Counterclockwise) S (Skip) J (Join) V0 V1 V0 V1 V0 V1 V0 V1 V0 V1
14 Quad Mesh Connectivity 8 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 - Counterclockwise) Red: new, Grey: old Yellow: possibly new
15 Hybrid Mesh Connectivity 12 symbols, depending on the front face: C, CW, CCW, S, J, C2, CR, CL, Mesh, DCCW, DCW, JQ V0 V1 front face front vertex left frontright front V0 V1 back face
16 Adaptive Traversal - Heuristic 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 Traversal Model #V#J based on deterministic traversal #J based on [AD01] #J based on minimum angle Feline Maxplanck Horse Egea_tf Dinosaur Nefertiti_u Foot Venus Egea_u Body Nefertiti Improvements due to new heuristic:
18 Connectivity for Triangle Meshes 40% better on average model#VTG98LAD02 Feline Maxplanck Horse Egea_tf Dinosaur Nefertiti_u Foot Venus Egea_u Body Bit rates in b/v
19 Connectivity for Quad Meshes Model#VLAD02 Feline.quad Head.quad Rockerarm.quad Venus.quad David.quad Genus3.quad Body.quad Uglybox.quad Tiger.quad Nefertiti.quad
20 Angle-Analyzer: Geometry (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 (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: 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 Geometry Distortion computed with Metro Bit Rate
24 Discussion on Geometry Better visual results (i.e., distortion) for less bits! Original TG-9bit (7.32b/v) Angle–Analyzer (6.88b/v)
25 Discussion on Geometry Original TG-10bit (7.94b/v) Angle–Analyzer (6.58b/v) Better visual results (i.e., distortion) for less bits!
26 Result Overview modelOrig File(KB) Comp (KB) TG- 12bits(b/v) Angle (b/v) vs. TG- 12bits feline5, % maxplanck2, % Horse2, % Egea_tf21, % Nefertiti_u1, % Sphere1, % Egea_u % random % 20% better in overall ratios than TG98 with 12bit
27 Work Done A 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 Work Goal: 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 AcknowledgementsAcknowledgements IMSC, NSF Yiying Tong Laehyun Kim Anna Kyrikou