+ All Categories
Home > Documents > Mesh Compression - California Institute of...

Mesh Compression - California Institute of...

Date post: 06-Mar-2018
Category:
Upload: lehuong
View: 230 times
Download: 2 times
Share this document with a friend
20
Page 1 Mesh Compression Mesh Compression CS101 - Meshing CS101b - Meshing 2 Triangle Meshes Two main parts: Connectivity: Often, triangulated graph Sometimes, polygons 3-connected graphs Geometry: Positions in space CS101b - Meshing 3 Basic Definitions (I) Vertex: node V vertices Edge: between 2 vertices - E edges Face: face between edges - F faces Euler Formula: F – E + V = 2(c-g) –b c: # of connected components g: genus b: # 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 evolution Compression allows small download times MP3, JPEG, MPEG… 70 80 90 00 sound images video geometry text CS101b - Meshing 6 Compression (De)Compression of 3D Meshes: Huge meshes Arbitrary topology Irregular connectivity Non-uniform sampling I am too fat….
Transcript
Page 1: Mesh Compression - California Institute of Technologycourses.cms.caltech.edu/cs101mesh/slides/MeshingClass11.pdf · Mesh Compression CS101 - Meshing CS101b - Meshing 2 Triangle Meshes

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: Mesh Compression - California Institute of Technologycourses.cms.caltech.edu/cs101mesh/slides/MeshingClass11.pdf · Mesh Compression CS101 - Meshing CS101b - Meshing 2 Triangle Meshes

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: Mesh Compression - California Institute of Technologycourses.cms.caltech.edu/cs101mesh/slides/MeshingClass11.pdf · Mesh Compression CS101 - Meshing CS101b - Meshing 2 Triangle Meshes

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: Mesh Compression - California Institute of Technologycourses.cms.caltech.edu/cs101mesh/slides/MeshingClass11.pdf · Mesh Compression CS101 - Meshing CS101b - Meshing 2 Triangle Meshes

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: Mesh Compression - California Institute of Technologycourses.cms.caltech.edu/cs101mesh/slides/MeshingClass11.pdf · Mesh Compression CS101 - Meshing CS101b - Meshing 2 Triangle Meshes

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: Mesh Compression - California Institute of Technologycourses.cms.caltech.edu/cs101mesh/slides/MeshingClass11.pdf · Mesh Compression CS101 - Meshing CS101b - Meshing 2 Triangle Meshes

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: Mesh Compression - California Institute of Technologycourses.cms.caltech.edu/cs101mesh/slides/MeshingClass11.pdf · Mesh Compression CS101 - Meshing CS101b - Meshing 2 Triangle Meshes

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: Mesh Compression - California Institute of Technologycourses.cms.caltech.edu/cs101mesh/slides/MeshingClass11.pdf · Mesh Compression CS101 - Meshing CS101b - Meshing 2 Triangle Meshes

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: Mesh Compression - California Institute of Technologycourses.cms.caltech.edu/cs101mesh/slides/MeshingClass11.pdf · Mesh Compression CS101 - Meshing CS101b - Meshing 2 Triangle Meshes

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: Mesh Compression - California Institute of Technologycourses.cms.caltech.edu/cs101mesh/slides/MeshingClass11.pdf · Mesh Compression CS101 - Meshing CS101b - Meshing 2 Triangle Meshes

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: Mesh Compression - California Institute of Technologycourses.cms.caltech.edu/cs101mesh/slides/MeshingClass11.pdf · Mesh Compression CS101 - Meshing CS101b - Meshing 2 Triangle Meshes

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: Mesh Compression - California Institute of Technologycourses.cms.caltech.edu/cs101mesh/slides/MeshingClass11.pdf · Mesh Compression CS101 - Meshing CS101b - Meshing 2 Triangle Meshes

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: Mesh Compression - California Institute of Technologycourses.cms.caltech.edu/cs101mesh/slides/MeshingClass11.pdf · Mesh Compression CS101 - Meshing CS101b - Meshing 2 Triangle Meshes

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: Mesh Compression - California Institute of Technologycourses.cms.caltech.edu/cs101mesh/slides/MeshingClass11.pdf · Mesh Compression CS101 - Meshing CS101b - Meshing 2 Triangle Meshes

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: Mesh Compression - California Institute of Technologycourses.cms.caltech.edu/cs101mesh/slides/MeshingClass11.pdf · Mesh Compression CS101 - Meshing CS101b - Meshing 2 Triangle Meshes

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: Mesh Compression - California Institute of Technologycourses.cms.caltech.edu/cs101mesh/slides/MeshingClass11.pdf · Mesh Compression CS101 - Meshing CS101b - Meshing 2 Triangle Meshes

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: Mesh Compression - California Institute of Technologycourses.cms.caltech.edu/cs101mesh/slides/MeshingClass11.pdf · Mesh Compression CS101 - Meshing CS101b - Meshing 2 Triangle Meshes

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: Mesh Compression - California Institute of Technologycourses.cms.caltech.edu/cs101mesh/slides/MeshingClass11.pdf · Mesh Compression CS101 - Meshing CS101b - Meshing 2 Triangle Meshes

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: Mesh Compression - California Institute of Technologycourses.cms.caltech.edu/cs101mesh/slides/MeshingClass11.pdf · Mesh Compression CS101 - Meshing CS101b - Meshing 2 Triangle Meshes

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: Mesh Compression - California Institute of Technologycourses.cms.caltech.edu/cs101mesh/slides/MeshingClass11.pdf · Mesh Compression CS101 - Meshing CS101b - Meshing 2 Triangle Meshes

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- …


Recommended