mesh compression - california institute of...
TRANSCRIPT
Page 1
Mesh CompressionMesh Compression
CS101 - Meshing
CS101b - Meshing
2
Triangle Meshes Two main parts:
Connectivity:Often, triangulated graphSometimes, polygons
3-connected graphs
Geometry:Positions in space
CS101b - Meshing
3
Basic Definitions (I)
Vertex: node V verticesEdge: between 2 vertices - E edgesFace: face between edges - F faces
Euler Formula: F – E + V = 2(c-g) –bc: # of connected components
g: genusb: # of boundary edges
CS101b - Meshing
4
Basic Definitions (II)
Valence of a vertex:number of emanating edges
Degree of a face:number of edges around
CS101b - Meshing
5
History of Multimedia
Success of Digital Signal Processing (DSP)Sounds, images, videos Technology followed scientific evolutionCompression allows small download times
MP3, JPEG, MPEG…
70 80 90 00sound images video geometrytext
CS101b - Meshing
6
Compression(De)Compression of 3D Meshes:
Huge meshesArbitrary topologyIrregular connectivityNon-uniform sampling
I am too fat….
Page 2
CS101b - Meshing
7
A Common Format: VRML
Vertices(geometry)
v1 (x1;y1;z1)
v2 (x2;y2;z2)
v3 (x3;y3;z3)
v4 (x4;y4;z4)
v5 (x5;y5;z5)
v6 (x6;y6;z6)
v7 (x7;y7;z7)
Faces(connectivity)
f1 (v1;v3;v2)
f2 (v4;v3;v1)
f3 (v4;v1;v5)
f4 (v1;v6;v5)
f5 (v6;v1;v7)
f6 (v2;v7;v1)
f7 (…)
V R M L
Valence n: n redundancies→ average 6
CS101b - Meshing
8
Geometry - Naïve Encoding
Vertices(geometry)
v1 (x1;y1;z1)
v2 (x2;y2;z2)
v3 (x3;y3;z3)
v4 (x4;y4;z4)
v5 (x5;y5;z5)
v6 (x6;y6;z6)
v7 (x7;y7;z7)
Naïve:3*float32 = 96b/v
Direct (quantization):3*10bits = 30b/v
CS101b - Meshing
9
Naïve:3*int32 = 96 bit/face≈192 b/v
Direct:3*log2(V) bit/face≈50 b/f for 100k vertices≈100 b/v
Faces(connectivity)
f1 (v1;v3;v2)
f2 (v4;v3;v1)
f3 (v4;v1;v5)
f4 (v1;v6;v5)
f5 (v6;v1;v7)
f6 (v2;v7;v1)
f7 (…)
Connectivity -Naïve Encoding
CS101b - Meshing
10
And Yet… Far from OptimalFrom a census of planar maps [Tutte ’64],
#triangulation(V) =
For large V (>1000), #triangulation(V) ≈
Theoretical connectivity bound: 3.24b/v
( )( ) ( )!1!23
!142++
+VV
V
V⎟⎠⎞
⎜⎝⎛
27256 V
V24.327
256log22
2
=⎟⎠⎞
⎜⎝⎛
CS101b - Meshing
11
A Look at Data Compression
Data compression:Data compression:Storing data in a format that requires Storing data in a format that requires less space than usual = packing dataless space than usual = packing data
Improves:Improves:•Storage
•Transmission
•Retrieval
Big file
Small file
CS101b - Meshing
12
Lossless Encoding
Well suited for text, files, medical data, …
Goal: Remove all redundancy
DataData DataData
encodingencoding decodingdecoding
0110010010001000101100100100010001……
==
Page 3
CS101b - Meshing
13
Lossy Encoding
Well suited for sound, images, videos, etc…
Goal: Remove unnoticeable features, then all redundancy
DataData DataData
encodingencoding decodingdecoding
011001001001011001001001……
!=!=
CS101b - Meshing
14
The Notion of Entropy
First, decompose a data set into a sequence of events.
Entropy:Smallest possible expected numbers of bits needed to
encode a sequence of events.
pi = probability of occurrence of event i
CS101b - Meshing
15
Entropy Encoding
The game:Find bit-rate closest to entropy
The idea: Give shortest codewords to most probable events.
Two problems:1. How to turn this notion into an algorithm? 2. How to benefit from statistical modeling?
CS101b - Meshing
16
Run-Length Encoding
Run: consecutive values
Example:
Sequence: R T A A A A A A S D E E E E E
Replaced by: R T *6A S D *5E
CS101b - Meshing
17
Dictionary methods
The idea: many data types contain repeating patterns → find an earlier occurrence in the input data, and only output a pointer/length.
Extensions:
- combined with Huffman, etc.
[Lempel[Lempel--Ziv 77]Ziv 77]
lha, arc, arj, zip
CS101b - Meshing
18
Huffman EncodingGenerate codes with variable length- Higher probabilities → shorter code words - Lower probabilities → longer code words
Symbol Code word
A 0
B 10
C 110
D 111
Cons:
- Integer code length
- Must transmit probabilities
Extensions:
- Adaptive (non stationary data)
- Extended (groups of symbols)
Page 4
CS101b - Meshing
19
Arithmetic EncodingPros:
- Non-integer code length
- Optimal for large #symbols -> (entropy + ε) b/symbol
Cons:
- Must transmit probabilities
Extensions:
- adaptive (avoid transmission of probabilities)
- order-n: inter-symbol probability
- stack-run: coupled with detection of runsCS101b - Meshing
20
Statistical Modeling
Massaging the data can pay off- Delta-encoding- Prediction- TransformPrior knowledge on the data helps
CS101b - Meshing
21
Example of Lossy encodingTypically:1) Transform
DCTWaveletsBloc sorting, Distance coding, etc.
2) QuantizationScalarVector
3) [Detection of runs]4) Entropy encoding
CS101b - Meshing
22
Needs in 3D Encoding (I)
Order of transmission:Single-rate coders:
Encode a mesh in one single bitstream. Also called single-resolution coders.
Progressive coders:Encode a mesh as successive refinements.Coarse-to-fine style.
CS101b - Meshing
23
Needs in 3D Encoding (I)
Order of transmission:Single-rate
Progressive
T r a n s m i s s i o n
CS101b - Meshing
24
Needs in 3D Encoding (II)
Integrity of encoding:Lossless coders:Preserve connectivity and/or geometry.
For: collaborative design, games, medical data…
Lossy coders:Optimize the ratio rate/distortionFor: geometry over the internet, e-commerce…
Page 5
CS101b - Meshing
25
Needs in 3D Encoding (III)
Additional features:Resilience: robust to packet lossEfficiency: fast, or low memory
requirementsGuaranteed bounds: ensuring max bit rateScalability: max speed vs min bit rateEtc…
CS101b - Meshing
26
Part I
Single-Rate Codecs
CS101b - Meshing
27
Redundancy and VRML
Vertices(geometry)
v1 (x1;y1;z1)
v2 (x2;y2;z2)
v3 (x3;y3;z3)
v4 (x4;y4;z4)
v5 (x5;y5;z5)
v6 (x6;y6;z6)
v7 (x7;y7;z7)
Faces(connectivity)
f1 (v1;v3;v2)
f2 (v4;v3;v1)
f3 (v4;v1;v5)
f4 (v1;v6;v5)
f5 (v6;v1;v7)
f6 (v2;v7;v1)
f7 (…)
V R M L
Valence n ~ redundancy-> average 6
CS101b - Meshing
28
Naïve EncodingConnectivity
f1 (v1;v3;v2)
f2 (v4;v3;v1)
f3 (v4;v1;v5)
f4 (v1;v6;v5)
f5 (v6;v1;v7)
f6 (v2;v7;v1)
f7 (…)
Geometry
v1 (x1;y1;z1)
v2 (x2;y2;z2)
v3 (x3;y3;z3)
v4 (x4;y4;z4)
v5 (x5;y5;z5)
v6 (x6;y6;z6)
v7 (x7;y7;z7)
-> 3V float -> 3F log2(V) ~ 6V log2(V)
~ 100 b/v96 b/v
V = 50k
to give an order of magnitude
CS101b - Meshing
29
Single-Rate Encoding
Review: Review: 3 main approaches based on:3 main approaches based on:
−− Triangle stripsTriangle strips−− Edge/gate traversalEdge/gate traversal−− ValenceValence
Recent developmentsRecent developments−− ImprovementImprovement−− Hint of optimalityHint of optimality
CS101b - Meshing
30
Link to Other FieldsIn Graph Theory, some previous work
Graphs can be huge, so encoding is goodBut mainly designed to compress (nearly) complete graphs
Far away from our 3-connected graphs
Different approachesusing Lipton-Tarjan for instance [DL98]
Page 6
CS101b - Meshing
31
Triangle Strips
CS101b - Meshing
32
Deering 95 (I)
Connectivity:
- Generalized triangle strips
- Vertex buffer (size: 16)
Idea: use stack operations to reuse vertices.
→ reduce random access to vertices
Geometry:
- Quantization, Delta coding and Huffman
CS101b - Meshing
33
Deering 95 (II)
Redundancy ~ 2One symbol per face → 2V symbols
CS101b - Meshing
34
Deering 95 (III)
Features:
- Fast
- Local → well suited for hardware
- 8-11 b/v for connectivity
- Geometry: highly variable
- Integrated in JAVA 3D
CS101b - Meshing
35
Taubin & Rossignac 98 (I)The idea:
Cut a mesh byusing 2 interlocked trees:
- a spanning tree of vertices,
- a spanning tree of triangles.
Connectivity:
- Spanning trees
- Marching pattern → zigzag walkingCS101b - Meshing
36
Taubin & Rossignac 98 (II)
Geometry:
- Prediction from multiple ancestors of the vertex tree
Features:
- average: 4 b/v for connectivityvertex tree
Page 7
CS101b - Meshing
37
Gumhold & Straβer 98 (I)The idea: use an active boundary with a current gate, and encode the adjacent face insertion using 8 distinct symbols.
CS101b - Meshing
38
Gumhold & Straβer 98 (II)
Connectivity:
- "Cut-border" machine
One symbol per processed edge, i.e. per conquered face → F symbols ~ 2V
Features:
- average ~ 4.36 b/v for connectivity
- Focus on speed (especially decompression)
CS101b - Meshing
39
Rossignac 99 (I) - EdgeBreaker
The idea: Use an active boundary with a current gate, and encode the adjacent face insertion using 5 distinct symbols.
→ F symbols ~ 2V
Connectivity:
- Spanning tree
- Gate traversal
CS101b - Meshing
40
Rossignac 99 (II) - EdgeBreaker
Features:
- 4 b/v guaranteed for connectivity
Overall 2V symbols (one symbol per face)
V "C" symbols (creates one vertex) → 1 bit (0)
V other symbols among [RLSE] → 3 bits (1..)
Later improved…
CS101b - Meshing
41
ImprovementsRossignac & Szymczak 99
Wrap&Zip: Linear decompression of triangle meshes
King & Rossignac 99
Guaranteed 3.67V Bit Encoding of Planar Triangle Graphs
Szymczak, King & Rossignac 00
An Edgebreaker-based Efficient Compression Scheme for Regular Meshes
Isenburg & Snoeyink 00
Spirale Reversi: Reverse Decoding of EdgeBreakerEncoding
Gumhold 00
New Bounds on the Encoding of Planar Triangulations.
(3.55 b/v for EdgeBreaker)
CS101b - Meshing
42
Valence-based ApproachesTouma & Gotsman 98
One valence code per vertexSuccessive pivot vertices
Isenburg & Snoeyink 99Edge collapses
One valence code per removed vertexCompression ratios equivalent to
Alliez & Desbrun 01Improvements uponTheoretical studyImprovements
Page 8
CS101b - Meshing
43
Valence Distribution (I)
0
1000
2000
3000
4000
5000
6000
7000
8000
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
Calls for entropy encoding
CS101b - Meshing
44
Valence Distribution (II)
0
10000
20000
30000
40000
50000
60000
70000
80000
90000
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
CS101b - Meshing
45
Valence Distribution (III)
0
2000
4000
6000
8000
10000
12000
14000
16000
18000
1 2 3 4 5 6 7 8 9 10
CS101b - Meshing
46
The idea: Deterministic edge conquering from successive pivot vertices along an active edge list.
Connectivity:
- Output one valence symbol per vertex, + ε
- Huffman encoding of valences
Atomic edge conquest -> valence symbol
Full pivot vertex -> no code, hence V codes
Split(offset) code (of rare occurrence)
Touma & Gotsman 98 (I)
CS101b - Meshing
47
current pivot
conquest list
conquered area
free area
Touma & Gotsman 98 (II)
CS101b - Meshing
48
Geometry:
- Global quantization and parallelogram prediction
- Entropy encoding
Features:
- average: 2 b/v for connectivity
- benefits from mesh regularity
- bit-rate vanishes to zero when regular
- not seriously challenged since 98
Parallelogram rule
decoded area
Touma & Gotsman 98 (III)
Page 9
CS101b - Meshing
49
Isenburg & Snoeyink 99 (I)
The idea: Sequence of reversible edge contractions, recordable through valence codes for simple digons, and start/end for complex/trivial.
Connectivity:- Successive edge collapses
- Output one valence code/v, + ε
- Entropy encoding of valencesValence Valence End Start
CS101b - Meshing
50
Isenburg & Snoeyink 99 (II)
Features:
- Two faces conquered per valence, hence V codes
- Connectivity: slightly more than TG98 [1-4] b/v
- Also benefits from mesh regularity
→ No split codes, but start/end
CS101b - Meshing
51
Alliez & Desbrun 01
Connectivity:
- Derived from TG98- Output one valence code per vertex, + ε- Arithmetic encoding of valences
Idea: adaptive edge conquering from successive pivot vertices along an active edge list.
Features:- Minimize # split codes- Theoretical study: Hint of optimality
(Eurographics 01)
CS101b - Meshing
52
The Split Case
Split(offset)
Split(3)
CS101b - Meshing
53
Intuition behind Split Codes
CS101b - Meshing
54
Towards Adaptive Conquest
One remaining degree of freedom in TG→ choice in the pivot
→ valence min / average valence min
Page 10
CS101b - Meshing
55
Adaptive Conquest[5,5,6,6,split(2)]
[3,6,6]
TG 98
AD 01
CS101b - Meshing
56
Results
CS101b - Meshing
57
DiscussionTG98 not really challenged since 98
→ valence approach “seems” optimal
But how to prove it?
CS101b - Meshing
58
Valence as Entropy (I)We want to maximize:
with the constraints: pi = vi/V, so:
F – E + V = 1
2E = 3F ⇒ 2E ≈ 6V, so:
Solution: Lagrange Multipliers
∑=i
ii ppe )/1(log2
1=∑i
ip
6=∑i
ipi
CS101b - Meshing
59
Valence as Entropy (II)Worst-case distribution pi is such as:
Necessary condition:
We find:
⎟⎠
⎞⎜⎝
⎛−+⎟
⎠
⎞⎜⎝
⎛−+ ∑∑∑
ii
ii
iii pipppMax 61)/1(log2 μλ
ipi μλ +−= )2ln(/1)(log2
i
ip−
⎟⎠⎞
⎜⎝⎛=
34
2716
CS101b - Meshing
60
Valence as Entropy (III)Now: Worst-case entropy: log2(256/27)=3.24…
→ Matches Tutte’s census!
Did we reach optimality? Well, maybeSplits are a pain (best solution: Kälberer ‘05)
Expected behavior is sublinear, though
Only asymptotical
)27/256(log)/1(log 22 ==∑i
ii ppe
Page 11
CS101b - Meshing
61
Some connectivity results
1.98 bit/vertex
1.02 0.024 2.20
2.71 2.27 1.88
CS101b - Meshing
62
Main advantages of Valence
Coding valences guarantees:• Optimality in the regular case (6…….6)
Typically, less than 0.01 bit per vertex
• (Near) Optimality in the irregular casesNever more than 3.5bpv
CS101b - Meshing
63
Deering 95 8-11Redundancy ~ 2
Connectivity(b/v)
Triangle strips
NoteMethod
Taubin & Rossignac 98
Gumhold & Straβer 98
Touma & Gotsman 98
Rossignac 99King & Rossignac 99Gumhold 00
Isenburg & Snoeyink 99
Alliez & Desbrun 01
~ 4Spanning trees
~ 4.362V codesCut-border
~ 2 (~0 when regular)V codesValence
4 guaranteed
3.67 grntd.3.55 grntd.
2V codes, upper bound
Better upper boundEven better upper bound
Gate traversal
~ TG98V codesValence
Tutte 62Proof of optimality?Valence +
adaptive conquest
CS101b - Meshing
64
Quad/Polygon/Tetrahedron
QuadsKing, Rossignac & Szymczak 99 (~EdgeBreaker)
PolygonsIsenburg & Snoeyink 00 (Face Fixer, edge-based)Kronrod & Gotsman 00 (Face-based)Khodakovsky et al’ 03 (Face and vertex based)
TetrahedraGumhold, Guthe & Straβer 99 -> ~2 b/tet.
CS101b - Meshing
65
Part II
Progressive Codecs
CS101b - Meshing
66
Progressive Mesh Encoding
Definition:Definition:
Produces a Produces a ““multimulti--resolutionresolution”” formatformat→→ Coarse model + refinementsCoarse model + refinements
Concept:Concept:
Creates a bit stream with decreasingly Creates a bit stream with decreasingly important details. important details.
Page 12
CS101b - Meshing
67
An Ideal Progressive Encoder
BitBit--raterate
DistortionDistortion
betterbetter
worseworse
Bits must be sent in decreasing order of Bits must be sent in decreasing order of innovationinnovation
For each bitFor each bit--rate, max ratio:rate, max ratio:
perceptual qualityperceptual qualitytransmitted informationtransmitted information
CS101b - Meshing
68
Review−− Progressive Meshes 96 Progressive Meshes 96 −− Progressive Forest Split 98Progressive Forest Split 98−− Compressed Progressive Meshes 99Compressed Progressive Meshes 99−− CohenCohen--Or et al. 99Or et al. 99−− GeometryGeometry--based triangulation 00based triangulation 00−− Spectral Compression 00Spectral Compression 00−− Complete Complete RemeshingRemeshing 0000−− ValenceValence--centered 01centered 01−− Plus recent developmentsPlus recent developments
CS101b - Meshing
69
Common idea
Encoding a mesh refinement consists in:Encoding a mesh refinement consists in:
1.1. LocalizationLocalization
→→ "where""where"2.2. ActionAction
→→ "how to refine""how to refine"localisation
action
Exemple:
CS101b - Meshing
70
Hoppe 96
Enco
ding
(dec
imat
ion)
Dec
odin
g(r
efin
emen
t)
1. Localizationeach vertex to split~ log2(V) bits to localize
2. ActionConnectivity:2 edges to splitlog2(Cv)16 b/vGeometry:delta encoding~20 b/v
CS101b - Meshing
71
Taubin et al. 98 – Prog. Forest Split
Localization : Localization : ~ forest of vertices to split (1 b/edge)~ forest of vertices to split (1 b/edge)
~ edge collapses grouped in batches~ edge collapses grouped in batches
Action :Action :-- remeshingremeshing holesholes
~ 3.5 b/v~ 3.5 b/v
-- prediction and pre/post smoothing prediction and pre/post smoothing
for geometryfor geometry
Atomic operator: edge collapseAtomic operator: edge collapse
Forest edges Cut
Triangulate tree loops Refinement done
CS101b - Meshing
72
→→ by triangulating tree loopsby triangulating tree loops
Encoding using a variation of Encoding using a variation of [TR98][TR98] (single(single--rate)rate)
RemeshingRemeshing holesholes
ConnectivityConnectivity: 10 b/v : 10 b/v
GeometryGeometry: 20 b/v: 20 b/v
Page 13
CS101b - Meshing
73
Pajarola and Rossignac 99 (CPM)
Localization : Localization : -- 22--coloring of vertices to group coloring of vertices to group
vertex splits into batchesvertex splits into batches
→→ amortized cost: 3 b/vamortized cost: 3 b/v
Action :Action :-- Indicates two edges among Indicates two edges among
the valence of each vertex to splitthe valence of each vertex to split
-- "Butterfly" prediction for "Butterfly" prediction for geometrygeometry
Atomic operator: Atomic operator: edge collapseedge collapse
Batches of edge Batches of edge collapsescollapses
CS101b - Meshing
74
Metrics in CPM-- Metrics: modified QEM (Metrics: modified QEM (GarlandHeckbert97GarlandHeckbert97))
Idea:Idea:
select a subset of the less expensive edges select a subset of the less expensive edges that do not violate independent constraints that do not violate independent constraints
→→ greedy edge selection by increasing greedy edge selection by increasing approximation error (instead of priority approximation error (instead of priority queue used by queue used by GH97GH97).).
ConnectivityConnectivity: 7.2 b/v : 7.2 b/v
GeometryGeometry: 15.4 b/v: 15.4 b/v
CS101b - Meshing
75
Cohen-Or et al. 99
Localization : Localization : ~ 2 or 4 face coloring ~ 2 or 4 face coloring (build an independent set)(build an independent set)
2 coloring: 2 b/v (many degree 5 and >)2 coloring: 2 b/v (many degree 5 and >)
4 coloring: 4 b/v (degree 4 or 3)4 coloring: 4 b/v (degree 4 or 3)
LZ encoding of face labelsLZ encoding of face labels
Action :Action :-- deterministic deterministic retriangulationretriangulation (inside(inside--Z)Z)-- barycentric prediction for geometrybarycentric prediction for geometry
ConnectivityConnectivity: 6 b/v : 6 b/v GeometryGeometry: 15.4 b/v: 15.4 b/v
Atomic operator: vertex removalAtomic operator: vertex removal
4- coloring
2- coloring
CS101b - Meshing
76
2-coloring
Deterministic inside-z triangulation / 2-coloring
Cod
ing
Decoding
CS101b - Meshing
77
Discussion
Long thin triangles…
4 coloring 4-coloring
2-coloring
CS101b - Meshing
78
Alliez & Desbrun 01 ((SIGGRAPH 01SIGGRAPH 01))
We seek:We seek:−− PerPer--vertex granularityvertex granularity−− One valence code per vertex, ideallyOne valence code per vertex, ideally−− Detection of uniformity/regularityDetection of uniformity/regularity−− Good rate/distortion tradeoffGood rate/distortion tradeoff
We need:We need:−− Mesh simplificationMesh simplification
»» atomic decimation/refinement operatoratomic decimation/refinement operator»» error metricerror metric
−− No extra No extra ““how to refinehow to refine”” datadata
Page 14
CS101b - Meshing
79
Core ideas
Localization :Localization :~ at no cost ~ at no cost →→ gategate--based conquestbased conquest
Action :Action :−− valence of inserted vertex,valence of inserted vertex,−− adaptive adaptive remeshingremeshing table, at no cost.table, at no cost.
CS101b - Meshing
80
Valence-centered Approach?We showed (Eurographics ’01) that valenceleads to optimal connectivity encoding
0
1000
2000
3000
4000
5000
6000
7000
8000
1 2 3 4 5 6 7 8 9 1011121314Valence
Occ
urr
en
ces
CS101b - Meshing
81
Main Ideas
Connectivity:Only one valence per vertex
• Sufficient for both localization and action• Close to optimal compression [AD 01]
Geometry:Normal/tangential separation
• Separate geometry/parameterization [KSS 00]
CS101b - Meshing
82
Our Method at a Glance
Decimation StrategyPasses of vertex removalsAutomatic re-triangulation
Entropy EncodingCompression of the list of symbols(essentially valences)
CS101b - Meshing
83
Basic Primitives
Ordinary patch
1 input gateN-1 output gates1 vertex removal
Null patchGate(oriented edge)
1 input gate2 output gates0 vertex removal
CS101b - Meshing
84
Decimation StrategyGate-based deterministic conquest
Vertex removal
Fifo of gates
Eliminate localization cost
Targeting special verticesLow valences to respect balance (Denny - Sohler 97)
Cosmetic decisions
Automatic re-triangulation- Favor regular remeshing
Look-up table
Page 15
CS101b - Meshing
85
Example of Conquest
Codes
5Fifo
g1g2 g3 g4 g5
CS101b - Meshing
86
Conquest - Step 2
65
g2g3 g4 g5g6…
Codes Fifo
CS101b - Meshing
87
Conquest - Step 3
665
g3g4 g5 g6g7…
Codes Fifo
CS101b - Meshing
88
Conquest - Step 4
6665
g4g5 g6 g7g8…
Codes Fifo
CS101b - Meshing
89
Conquest - Step 5
66665
g5g6 g7 g8g9…
Codes Fifo
CS101b - Meshing
90
Conquest - End
65645…
Codes Fifo
Page 16
CS101b - Meshing
91
Decimation StrategyGate-based deterministic conquest
Vertex removal
Fifo of gates
Eliminate localization cost
Targeting special verticesLow valences to respect balance [Denny - Sohler 97]
Cosmetic decisions
Automatic re-triangulation- Favor regular remeshing
Look-up table
CS101b - Meshing
92
Valence Dispersion
→ remove only valences [3-6]→ [3-4] on boundaries
Before : V = ∑(valences, central vertex s excluded) After : V' = ∑(valences)
V' = V + (valence(s)-6)
before
after
CS101b - Meshing
93
Vertex Selection
Valence > 6
Already visited
Null patch if:• Valence > 6• Already visited• Metric-related decision
CS101b - Meshing
94
Decimation StrategyGate-based deterministic conquest
Vertex removal
Fifo of gates
Eliminate localization cost
Targeting special verticesLow valences to respect balance (Denny - Sohler 97)
Cosmetic decisions
Automatic re-triangulation- Favor regular remeshing
Look-up table
CS101b - Meshing
95
Remeshing strategy
CS101b - Meshing
96
Remeshing strategy
Page 17
CS101b - Meshing
97
Remeshing strategy
CS101b - Meshing
98
Remeshing strategy
CS101b - Meshing
99
Remeshing strategy
CS101b - Meshing
10
Remeshing strategy
CS101b - Meshing
10
Retriangulation Look-up Table
CS101b - Meshing
10
Regular Decimation
[Kobbelt 00]
Targeting valences [3-6]
√3
Targeting valences [3]
Substitution: 3->6
Page 18
CS101b - Meshing
10
Irregular Decimation
Targeting valences [3-6]
Targeting valences [3]
Substitution: 3->6 CS101b - Meshing
10
Entropy Encoding
[3-6;N] [6;N] [3-6;N] [6;N]
Adaptive arithmetic encoding [Schindler 99]
CS101b - Meshing
10
Geometry encoding
Barycentric prediction
CS101b - Meshing
10
Normal / tangential separation
~ [Khodakovsky et al. 00]
LocalFrenet frame
CS101b - Meshing
10
Results
CS101b - Meshing
10
Decimation 19851 -> 4 vertices
Quantization 12 bits
Connectivity 4.61 b/v
Geometry 16.24 b/v
Decimation 36450 -> 24 vertices
Quantization 10 bits
Connectivity 0.39 b/v
Geometry 3.58 b/v
Results
20.87 b/v 3.97 b/v
Page 19
CS101b - Meshing
10
Rate / Distortion
0
1
2
3
4
5
6
0 20000 40000 60000 80000 100000 120000 140000 160000 180000
rate (#bits)
Dis
tort
ion
(%Bou
ndin
gBox
Mea
nsq
uare
erro
r)
20 11 217 vertices
CS101b - Meshing
11
Discussion
Optimality ?Optimality ?-- One unique valence code per vertexOne unique valence code per vertex-- Does decimation hide entropy ?Does decimation hide entropy ?
→→ nonnon--optimal tiling, valence > 6 or optimal tiling, valence > 6 or metric decision lead to null patch codes metric decision lead to null patch codes (unused by refinement).(unused by refinement).
CS101b - Meshing
11
Perspectives
EntropyEntropy--driven driven remeshingremeshing process, process, minimizing minimizing occurencyoccurency of null of null patches (seek optimal tiling).patches (seek optimal tiling).
Prediction on metric decision Prediction on metric decision (regular sharp edges, corners)(regular sharp edges, corners)
Inverse Loop in the regular case ?Inverse Loop in the regular case ?
CS101b - Meshing
11
Devillers & Gandoin 00 (I)
Localization : Localization : ~ implicitly transmitted by the order on ~ implicitly transmitted by the order on
the data, via a space subdivision.the data, via a space subdivision.
~ progressive quantization~ progressive quantization
Action :Action :-- transmit only transmit only occurencesoccurences-- use geometric triangulationuse geometric triangulation
i.e. Delaunay/Crust/Natural i.e. Delaunay/Crust/Natural NeighborsNeighbors……
--> well suited to terrains> well suited to terrains
Drop the order upon the vertices
CS101b - Meshing
11
Devillers & Gandoin 00 (II)
TransmissionSubdivision
Theoretical analysis:Theoretical analysis:
Vertex precision: Q bitsVertex precision: Q bits
Direct encoding: VQDirect encoding: VQ
OccurrenceOccurrence--based approach: V(Qbased approach: V(Q--loglog22V+2.402) V+2.402) --> > worst case, i.e. uniformityworst case, i.e. uniformity
CS101b - Meshing
11
Karni & Gotsman 00 - Spectral Compression
The idea:The idea:Apply ~ Signal Processing theoryApply ~ Signal Processing theorySimilar in spirit to Similar in spirit to lossylossy JPEGJPEG→→ requires mesh requires mesh partitionningpartitionning ((MeTiSMeTiS))Then each Then each submeshsubmesh is turned into a compact is turned into a compact
linear combination of orthogonal basis linear combination of orthogonal basis functionsfunctions
Basis functionsBasis functions:: eigenvectors of theeigenvectors of thetopological topological LaplacianLaplacian of a of a submeshsubmesh
--> Recently improved by fixed spectral bases> Recently improved by fixed spectral bases
Page 20
CS101b - Meshing
11
Khodakovsky, Schröder & Sweldens 00
Progressive Geometry CompressionWe are not interested in the connectivityLet’s remesh the object!
Coarse meshThen subdivision connectivity (regular)
Bottom-up: loop-based wavelet decompositionTop-to-bottom: Zero tree to locate efficiently the details
CS101b - Meshing
11
Wavelet Transform
Effect of wavelet transformChanges distribution of coefficients
Almost all coefficients close to zero
0.27 0.34 0.41 0.49 0.56 0.0 0.8 1.7 2.5 3.3
Vertex coordinates Wavelet coefficients
CS101b - Meshing
11
Zero-TreeNeed tree structure for coefficients
wavelets live on edges
Test whole tree for significancesplit tree isolating significant coefs
CS101b - Meshing
11
Results (I)21046B8517B3411B1369B
1358B 2784B701B 6063B
21K
6K
CS101b - Meshing
11
Results (II)
956B 2004B 4806B 26191B
1253B 2804B 6482B 14844B
4 b/v
2.5 b/v
CS101b - Meshing
12
Next Challenges?
- Progressive polygon meshes- Progressive topology encoding- Progressive animated geometry- Multi-connected components- What is entropy of geometry ?- Resilient encoding- …