Mesh Compression Mesh Compression Connectivity: Often, - - PDF document

mesh compression mesh compression
SMART_READER_LITE
LIVE PREVIEW

Mesh Compression Mesh Compression Connectivity: Often, - - PDF document

Triangle Meshes Two main parts: Mesh Compression Mesh Compression Connectivity: Often, triangulated graph CS101 - Meshing Sometimes, polygons 3-connected graphs Geometry: Positions in space CS101b - Meshing 2 Basic


slide-1
SLIDE 1

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

slide-2
SLIDE 2

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 * float 3 2 = 9 6 b/ v Direct ( quantization) : 3 * 1 0 bits = 3 0 b/ v

CS101b - Meshing

9

Naïve: 3 * int 3 2 = 9 6 bit/ face ≈1 9 2 b/ v Direct: 3 * log2( V) bit/ face ≈5 0 b/ f for 1 0 0 k vertices ≈1 0 0 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 Optimal

From a census of planar maps [Tutte ’64], #triangulation(V) = For large V (>1000), #triangulation(V) ≈ Theoretical connectivity bound: 3.24b/v ( ) ( ) ( )!

1 ! 2 3 ! 1 4 2 + + + V V V V ⎟ ⎠ ⎞ ⎜ ⎝ ⎛ 27 256

V V 24 . 3 27 256 log

2 2

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 data less 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

Data Data Data Data

encoding encoding decoding decoding

0 1 1 00 1 0 01 0 00 1 00 0 1 0 1 1 00 1 0 01 0 00 1 00 0 1 … …

= =

slide-3
SLIDE 3

Page 3

CS101b - Meshing

13

Lossy Encoding

Well suited for sound, images, videos, etc…

Goal: Remove unnoticeable features, then all redundancy

Data Data Data Data

encoding encoding decoding decoding

0 1 1 00 1 0 01 0 01 0 1 1 00 1 0 01 0 01 … …

!= !=

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 Encoding

Generate codes with variable length

  • Higher probabilities → shorter code words
  • Lower probabilities → longer code words

Symbol Code word A B 10 C 110 D 111

Cons:

  • Integer code length
  • Must transmit probabilities

Extensions:

  • Adaptive (non stationary data)
  • Extended (groups of symbols)
slide-4
SLIDE 4

Page 4

CS101b - Meshing

19

Arithmetic Encoding

Pros:

  • 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 runs

CS101b - Meshing

20

Statistical Modeling

Massaging the data can pay off

  • Delta-encoding
  • Prediction
  • Transform

Prior knowledge on the data helps

CS101b - Meshing

21

Example of Lossy encoding

Typically: 1) Transform DCT Wavelets Bloc sorting, Distance coding, etc. 2) Quantization Scalar Vector 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/distortion

For: geometry over the internet, e-commerce…

slide-5
SLIDE 5

Page 5

CS101b - Meshing

25

Needs in 3D Encoding (III)

Additional features:

Resilience: robust to packet loss Efficiency: fast, or low memory requirements Guaranteed bounds: ensuring max bit rate Scalability: max speed vs min bit rate Etc…

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 Encoding

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

Geom etry 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)

~ 1 00 b/ v 9 6 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 strips Triangle strips − − Edge/gate traversal Edge/gate traversal − − Valence Valence

  • Recent developments

Recent developments

− − Improvement Improvement − − Hint of optimality Hint of optimality

CS101b - Meshing

30

Link to Other Fields

In Graph Theory, some previous work

Graphs can be huge, so encoding is good But mainly designed to compress (nearly)

complete graphs

Far away from our 3-connected graphs Different approaches using Lipton-Tarjan for instance [DL98]

slide-6
SLIDE 6

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 ~ 2 One 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 by using 2 interlocked trees:

  • a spanning tree of vertices,
  • a spanning tree of triangles.

Connectivity:

  • Spanning trees
  • Marching pattern → zigzag walking

CS101b - Meshing

36

Taubin & Rossignac 98 (II)

Geometry:

  • Prediction from

multiple ancestors

  • f the vertex tree

Features:

  • average: 4 b/v for connectivity

vertex tree

slide-7
SLIDE 7

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

Improvements

Rossignac & Szym czak 9 9 Wrap&Zip: Linear decompression of triangle meshes King & Rossignac 9 9 Guaranteed 3 .6 7 V Bit Encoding of Planar Triangle Graphs Szym czak, King & Rossignac 00 An Edgebreaker-based Efficient Compression Scheme for Regular Meshes I senburg & Snoeyink 0 0 Spirale Reversi: Reverse Decoding of EdgeBreaker Encoding Gum hold 00 New Bounds on the Encoding of Planar Triangulations. (3 .55 b/ v for EdgeBreaker)

CS101b - Meshing

42

Valence-based Approaches

Touma & Gotsman 98

One valence code per vertex Successive pivot vertices

Isenburg & Snoeyink 99

Edge collapses One valence code per removed vertex Compression ratios equivalent to

Alliez & Desbrun 01

Improvements upon Theoretical study Improvements

slide-8
SLIDE 8

Page 8

CS101b - Meshing

43

Valence Distribution (I)

1000 2000 3000 4000 5000 6000 7000 8000 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)

10000 20000 30000 40000 50000 60000 70000 80000 90000 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

CS101b - Meshing

45

Valence Distribution (III)

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)

slide-9
SLIDE 9

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 valences

Valence 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

slide-10
SLIDE 10

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

Discussion

TG98 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 i i

p p e ) / 1 ( log2 1 =

i i

p 6 =

i i

p i

CS101b - Meshing

59

Valence as Entropy (II)

Worst-case distribution pi is such as: Necessary condition: We find:

⎟ ⎠ ⎞ ⎜ ⎝ ⎛ − + ⎟ ⎠ ⎞ ⎜ ⎝ ⎛ − +

∑ ∑ ∑

i i i i i i i

p i p p p Max 6 1 ) / 1 ( log2 μ λ

i pi μ λ + − = ) 2 ln( / 1 ) ( log

2

i i

p

⎟ ⎠ ⎞ ⎜ ⎝ ⎛ = 3 4 27 16

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, maybe

Splits are a pain (best solution: Kälberer ‘05) Expected behavior is sublinear, though Only asymptotical

) 27 / 256 ( log ) / 1 ( log

2 2

= =∑

i i i

p p e

slide-11
SLIDE 11

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 cases

Never more than 3.5bpv

CS101b - Meshing

63

Deering 95

8-11

Redundancy ~ 2 Connectivity (b/v) Triangle strips Note

Method

Taubin & Rossignac 98 Gumhold & Straβer 98 Touma & Gotsman 98 Rossignac 99 King & Rossignac 99 Gumhold 00 Isenburg & Snoeyink 99 Alliez & Desbrun 01 ~ 4 Spanning trees ~ 4.36 2V codes Cut-border ~ 2 (~0 when regular) V codes Valence

4 guaranteed

3.67 grntd. 3.55 grntd.

2V codes, upper bound

Better upper bound Even better upper bound

Gate traversal ~ TG98 V codes Valence

Tutte 62

Proof of optimality? Valence + adaptive conquest CS101b - Meshing

64

Quad/Polygon/Tetrahedron

Quads

King, Rossignac & Szymczak 99 (~EdgeBreaker)

Polygons

Isenburg & Snoeyink 00 (Face Fixer, edge-based) Kronrod & Gotsman 00 (Face-based) Khodakovsky et al’ 03 (Face and vertex based)

Tetrahedra

Gumhold, 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 “ “multi multi-

  • resolution

resolution” ” format format → → Coarse model + refinements Coarse model + refinements Concept: Concept: Creates a bit stream with decreasingly Creates a bit stream with decreasingly important details. important details.

slide-12
SLIDE 12

Page 12

CS101b - Meshing

67

An Ideal Progressive Encoder

Bit Bit -

  • rate

rate Distortion Distortion better better worse worse

Bits must be sent in decreasing order of Bits must be sent in decreasing order of innovation innovation

For each bit For each bit-

  • rate, max ratio:

rate, max ratio: perceptual quality perceptual quality transmitted information transmitted information CS101b - Meshing

68

Review

− − Progressive Meshes 96 Progressive Meshes 96 − − Progressive Forest Split 98 Progressive Forest Split 98 − − Compressed Progressive Meshes 99 Compressed Progressive Meshes 99 − − Cohen Cohen-

  • Or et al. 99

Or et al. 99 − − Geometry Geometry-

  • based triangulation 00

based triangulation 00 − − Spectral Compression 00 Spectral Compression 00 − − Complete Complete Remeshing Remeshing 00 00 − − Valence Valence-

  • centered 01

centered 01 − − Plus recent developments Plus recent developments

CS101b - Meshing

69

Common idea

Encoding a mesh refinement consists in: Encoding a mesh refinement consists in: 1.

  • 1. Localization

Localization → → "where" "where" 2.

  • 2. Action

Action → → "how to refine" "how to refine"

localisation action Exem ple:

CS101b - Meshing

70

Hoppe 96

Encoding (decimation) Decoding (refinement)

  • 1. Localization

each vertex to split ~ log2(V) bits to localize

  • 2. Action

Connectivity: 2 edges to split log2(C

v)

16 b/ v Geometry: 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 :

  • remeshing

remeshing holes holes ~ 3.5 b/v ~ 3.5 b/v

  • prediction and pre/post smoothing

prediction and pre/post smoothing for geometry for geometry

Atomic operator: edge collapse Atomic operator: edge collapse

Forest edges Cut Triangulate tree loops Refinement done

CS101b - Meshing

72

→ → by triangulating tree loops

by triangulating tree loops Encoding using a variation of Encoding using a variation of [TR98] [TR98] (single (single-

  • rate)

rate)

Remeshing Remeshing holes holes

Connectivity Connectivity: 10 b/v : 10 b/v Geometry Geometry: 20 b/v : 20 b/v

slide-13
SLIDE 13

Page 13

CS101b - Meshing

73

Pajarola and Rossignac 99 (CPM)

  • Localization :

Localization :

  • 2

2-

  • coloring of vertices to group

coloring of vertices to group vertex splits into batches vertex splits into batches → → amortized cost: 3 b/v amortized cost: 3 b/v

  • Action :

Action :

  • Indicates two edges among

Indicates two edges among the valence of each vertex to split the valence of each vertex to split

  • "Butterfly" prediction for

"Butterfly" prediction for geometry geometry

Atomic operator: Atomic operator: edge collapse edge collapse Batches of edge Batches of edge collapses collapses

CS101b - Meshing

74

Metrics in CPM

  • Metrics: modified QEM (

Metrics: modified QEM (GarlandHeckbert97 GarlandHeckbert97) ) 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 GH97 GH97). ). Connectivity Connectivity: 7.2 b/v : 7.2 b/v Geometry Geometry: 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 labels LZ encoding of face labels

  • Action :

Action :

  • deterministic

deterministic retriangulation retriangulation (inside (inside-

  • Z)

Z)

  • barycentric prediction for geometry

barycentric prediction for geometry

Connectivity Connectivity: 6 b/v : 6 b/v Geometry Geometry: 15.4 b/v : 15.4 b/v

Atomic operator: vertex removal Atomic operator: vertex removal

4- coloring 2- coloring

CS101b - Meshing

76

2-coloring

Determ inistic inside- z triangulation / 2- coloring

Coding Decoding

CS101b - Meshing

77

Discussion

Long thin triangles… 4 coloring 4-coloring 2-coloring

CS101b - Meshing

78

Alliez & Desbrun 01

( (SIGGRAPH 01

SIGGRAPH 01)

)

  • We seek:

We seek:

− − Per Per-

  • vertex granularity

vertex granularity − − One valence code per vertex, ideally One valence code per vertex, ideally − − Detection of uniformity/regularity Detection of uniformity/regularity − − Good rate/distortion tradeoff Good rate/distortion tradeoff

  • We need:

We need:

− − Mesh simplification Mesh simplification

» » atomic decimation/refinement operator atomic decimation/refinement operator » » error metric error metric

− − No extra No extra “ “how to refine how to refine” ” data data

slide-14
SLIDE 14

Page 14

CS101b - Meshing

79

Core ideas

  • Localization :

Localization :

~ at no cost ~ at no cost →

→ gate

gate-

  • based conquest

based conquest

  • Action :

Action :

− − valence of inserted vertex, valence of inserted vertex, − − adaptive adaptive remeshing remeshing table, at no cost. table, at no cost.

CS101b - Meshing

80

Valence-centered Approach?

We showed (Eurographics ’01) that valence leads to optimal connectivity encoding

1000 2000 3000 4000 5000 6000 7000 8000

1 2 3 4 5 6 7 8 9 10 11 12 13 14

V alence Occurrences

CS101b - Meshing

81

Main Ideas

Connectivity: Only one valence per vertex

  • S

ufficient for both localization and action

  • Close to optimal compression [AD 01]

Geometry: Normal/tangential separation

  • S

eparate geometry/ parameterization [KSS 00]

CS101b - Meshing

82

Our Method at a Glance

Decimation Strategy

Passes of vertex removals Automatic re-triangulation

Entropy Encoding

Compression of the list of symbols

(essentially valences)

CS101b - Meshing

83

Basic Primitives

Ordinary patch

1 input gate N-1 output gates 1 vertex removal

Null patch Gate

(oriented edge)

1 input gate 2 output gates 0 vertex removal

CS101b - Meshing

84

Decimation Strategy

Gate-based deterministic conquest

Vertex removal Fifo of gates Eliminate localization cost

Targeting special vertices

Low valences to respect balance (Denny - Sohler 97) Cosmetic decisions

Automatic re-triangulation

  • Favor regular remeshing

Look-up table

slide-15
SLIDE 15

Page 15

CS101b - Meshing

85

Example of Conquest

Codes

5

Fifo

g1 g2 g3 g4 g5

CS101b - Meshing

86

Conquest - Step 2

6 5 g2 g3 g4 g5 g6 …

Codes Fifo

CS101b - Meshing

87

Conquest - Step 3

6 6 5 g3 g4 g5 g6 g7 …

Codes Fifo

CS101b - Meshing

88

Conquest - Step 4

6 6 6 5 g4 g5 g6 g7 g8 …

Codes Fifo

CS101b - Meshing

89

Conquest - Step 5

6 6 6 6 5 g5 g6 g7 g8 g9 …

Codes Fifo

CS101b - Meshing

90

Conquest - End

6 5 6 4 5 …

Codes Fifo

slide-16
SLIDE 16

Page 16

CS101b - Meshing

91

Decimation Strategy

Gate-based deterministic conquest

Vertex removal Fifo of gates Eliminate localization cost

Targeting special vertices

Low 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 Strategy

Gate-based deterministic conquest

Vertex removal Fifo of gates Eliminate localization cost

Targeting special vertices

Low 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

slide-17
SLIDE 17

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

slide-18
SLIDE 18

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]

Local Frenet 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

slide-19
SLIDE 19

Page 19

CS101b - Meshing

10

Rate / Distortion

1 2 3 4 5 6

20000 40000 60000 80000 100000 120000 140000 160000 180000

rate (# bits) Distortion (% Bounding Box Mean square error)

20 11 217 vertices

CS101b - Meshing

11

Discussion

  • Optimality ?

Optimality ?

  • One unique valence code per vertex

One unique valence code per vertex

  • Does decimation hide entropy ?

Does decimation hide entropy ? → → non non-

  • optimal tiling, valence > 6 or
  • ptimal 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

  • Entropy

Entropy-

  • driven

driven remeshing remeshing process, process, minimizing minimizing occurency

  • ccurency of null
  • f 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 occurences

  • ccurences
  • use geometric triangulation

use geometric triangulation i.e. Delaunay/Crust/Natural i.e. Delaunay/Crust/Natural Neighbors Neighbors… …

  • > well suited to terrains

> well suited to terrains

Drop the order upon the vertices CS101b - Meshing 11

Devillers & Gandoin 00 (II)

Transmission Subdivision

Theoretical analysis: Theoretical analysis: Vertex precision: Q bits Vertex precision: Q bits Direct encoding: VQ Direct encoding: VQ Occurrence Occurrence-

  • based approach: V(Q

based approach: V(Q-

  • log

log2

2V+2.402)

V+2.402) -

  • >

> worst case, i.e. uniformity

worst case, i.e. uniformity CS101b - Meshing

11

Karni & Gotsman 00 - Spectral Compression

The idea: The idea: Apply ~ Signal Processing theory Apply ~ Signal Processing theory Similar in spirit to Similar in spirit to lossy lossy JPEG JPEG → → requires mesh requires mesh partitionning partitionning ( (MeTiS MeTiS) ) Then each Then each submesh submesh is turned into a compact is turned into a compact linear combination of orthogonal basis linear combination of orthogonal basis functions functions Basis functions Basis functions: : eigenvectors of the eigenvectors of the topological topological Laplacian Laplacian of a

  • f a submesh

submesh

  • > Recently improved by fixed spectral bases

> Recently improved by fixed spectral bases

slide-20
SLIDE 20

Page 20

CS101b - Meshing

11

Khodakovsky, Schröder & Sweldens 00 Progressive Geometry Compression

We are not interested in the connectivity Let’s remesh the object! Coarse mesh Then subdivision connectivity (regular) Bottom-up: loop-based wavelet decomposition Top-to-bottom: Zero tree to locate efficiently

the details

CS101b - Meshing

11

Wavelet Transform

Effect of wavelet transform

Changes 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-Tree

Need tree structure for coefficients

wavelets live on edges

Test whole tree for significance

split tree isolating significant coefs

CS101b - Meshing

11

Results (I)

21046B 8517B 3411B 1369B 1358B 2784B 701B 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