slides

courses.cms.caltech.edu

slides

Mesh CompressionCS101 - MeshingTriangle MeshesTwo main parts:Connectivity:• Often, triangulated graph• Sometimes, polygons‣ 3-connected graphsGeometry:• Positions in spaceCS101b - Meshing2Basic Definitions (I)Basic Definitions (II)Vertex: nodeV verticesEdge: between 2 vertices - E edgesFace: face between edges - F facesValence of a vertex:number of emanating edgesEuler Formula: F – E + V = 2(c-g) –bc: # of connected componentsg: genusb: # of boundary edgesDegree of a face:number of edges aroundCS101b - Meshing3CS101b - Meshing4History of MultimediaCompressionSuccess of Digital Signal Processing (DSP)• Sounds, images, videos• Technology followed scientific evolution• Compression allows small download times‣ MP3, JPEG, MPEG…(De)Compression of 3D Meshes:• Huge meshes• Arbitrary topology• Irregular connectivity• Non-uniform samplingtext70 80 90 00sound images video geometryI am toofat….CS101b - Meshing5CS101b - Meshing6Page 1


A Common Format: VRMLGeometry - Naïve EncodingV R M LVertices Faces(geometry) (connectivity)v1 (x1;y1;z1) f1 (v1;v3;v2)v2 (x2;y2;z2) f2 (v4;v3;v1)v3 (x3;y3;z3) f3 (v4;v1;v5)v4 (x4;y4;z4) f4 (v1;v6;v5)v5 (x5;y5;z5) f5 (v6;v1;v7)v6 (x6;y6;z6) f6 (v2;v7;v1)v7 (x7;y7;z7) f7 (…)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 32 = 96b/vDirect (quantization):3*10bits = 30b/vCS101b - MeshingValence n: n redundancies→ average 67CS101b - Meshing8Connectivity -Naïve EncodingFaces(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 (…)Naïve:3*int 32 = 96 bit/face≈192 b/vDirect:3*log 2 (V) bit/face≈50 b/f for 100k vertices≈100 b/vAnd Yet… Far from OptimalFrom a census of planar maps [Tutte ’64],( )#triangulation(V) = 2 4V+ 1 !( 3V+ 2) !( V + 1)!For large V (>1000),⎛ 256V ⎞log V⎛ 256 ⎞273.24V#triangulation(V) ≈2⎜2 ⎜ ⎟⎝ ⎠⎟ = 2⎝ 27 ⎠Theoretical connectivity bound: 3.24b/vCS101b - Meshing9CS101b - Meshing10A Look at Data CompressionLossless EncodingData compression:Storing data in a format that requiresless space than usual = packing dataImproves:•StorageBig file•Transmission•RetrievalSmall fileDataencoding01100100100010001…=decodingWell suited for text, files, medical data, …Goal: Remove all redundancyDataCS101b - Meshing11CS101b - Meshing12Page 2


Lossy EncodingThe Notion of EntropyData011001001001…DataFirst, decompose a data set into a sequence of events.encoding!=decodingWell suited for sound, images, videos, etc…Entropy:Smallest possible expected numbers of bits needed toencode a sequence of events.Goal: Remove unnoticeable features,then all redundancyp i = probability of occurrence of event iCS101b - Meshing13CS101b - Meshing14Entropy EncodingRun-Length EncodingThe game:Run: consecutive valuesFind bit-rate closest to entropyExample:The idea:Give shortest codewords to most probable events.Sequence:R T A A A A A A S D E E E E ETwo problems:1. How to turn this notion into an algorithm?2. How to benefit from statistical modeling?Replaced by:R T *6A S D *5ECS101b - Meshing15CS101b - Meshing16Dictionary methodsHuffman EncodingThe idea: many data types contain repeatingpatterns → find an earlier occurrence in the inputdata, and only output a pointer/length.Generate codes with variable length- Higher probabilities → shorter code words- Lower probabilities → longer code wordsExtensions:- combined with Huffman, etc.[Lempel-Ziv 77]lha, arc, arj, zipSymbol Code wordA 0B 10C 110D 111Cons:- Integer code length- Must transmit probabilitiesExtensions:- Adaptive (non stationary data)- Extended (groups of symbols)CS101b - Meshing17CS101b - Meshing18Page 3


Arithmetic EncodingPros:- Non-integer code length- Optimal for large #symbols -> (entropy + ε) b/symbolCons:- Must transmit probabilitiesExtensions:- adaptive (avoid transmission of probabilities)- order-n: inter-symbol probability- stack-run: coupled with detection of runsCS101b - Meshing19Statistical ModelingMassaging the data can pay off-Delta-encoding-Prediction-TransformPrior knowledge on the data helpsCS101b - Meshing20Example of Lossy encodingTypically:1) TransformDCTWaveletsBloc sorting, Distance coding, etc.2) QuantizationScalarVector3) [Detection of runs]4) Entropy encodingNeeds 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 successiverefinements.Coarse-to-fine style.CS101b - Meshing21CS101b - Meshing22Needs in 3D Encoding (I)Order of transmission:Single-rateProgressiveCS101b - MeshingT r a n s m i s s i o n23Needs 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…CS101b - Meshing24Page 4


Needs in 3D Encoding (III)Part IAdditional features:Resilience: robust to packet lossEfficiency: fast, or low memoryrequirementsGuaranteed bounds: ensuring max bit rateScalability: max speed vs min bit rateEtc…Single-Rate CodecsCS101b - Meshing25CS101b - Meshing26Redundancy and VRMLNaïve EncodingCS101b - MeshingVertices(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)Valence n ~ redundancy-> average 6V R M LFaces(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 (…)27ConnectivityGeometryv1 (x1;y1;z1) f1 (v1;v3;v2)v2 (x2;y2;z2) f2 (v4;v3;v1)v3 (x3;y3;z3) f3 (v4;v1;v5)v4 (x4;y4;z4) f4 (v1;v6;v5)v5 (x5;y5;z5) f5 (v6;v1;v7)v6 (x6;y6;z6) f6 (v2;v7;v1)v7 (x7;y7;z7)f7 (…)-> 3V float -> 3F log 2(V) ~ 6V log 2 (V)96 b/vCS101b - Meshing~ 100 b/vto give an order of magnitudeV = 50k28Single-Rate EncodingLink to Other Fields‣ Review: 3 main approaches based on:− Triangle strips− Edge/gate traversal− Valence‣ Recent developments− Improvement− Hint of optimalityIn 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]CS101b - Meshing29CS101b - Meshing30Page 5


Triangle StripsDeering 95 (I)Connectivity:- Generalized triangle strips- Vertex buffer (size: 16)Idea: use stack operations to reuse vertices.→ reduce random access to verticesGeometry:- Quantization, Delta coding and HuffmanCS101b - Meshing31CS101b - Meshing32Deering 95 (II)Deering 95 (III)Features:-Fast-Local → well suited for hardware- 8-11 b/v for connectivity- Geometry: highly variableRedundancy ~ 2One symbol per face → 2V symbols- Integrated in JAVA 3DCS101b - Meshing33CS101b - Meshing34Taubin & Rossignac 98 (I)Taubin & Rossignac 98 (II)The idea:Cut a mesh byusing 2 interlocked trees:- a spanning tree of vertices,- a spanning tree of triangles.Geometry:-Prediction frommultiple ancestorsof the vertex treeConnectivity:- Spanning trees- Marching pattern → zigzag walkingCS101b - Meshing35Features:- average: 4 b/v for connectivityCS101b - Meshingvertex tree36Page 6


Gumhold & Straβer 98 (I)The idea: use an active boundary with a current gate,and encode the adjacent face insertion using 8 distinctsymbols.Gumhold & Straβer 98 (II)Connectivity:-"Cut-border" machineOne symbol per processed edge, i.e. perconquered face → F symbols ~ 2VFeatures:- average ~ 4.36 b/v for connectivity- Focus on speed (especially decompression)CS101b - Meshing37CS101b - Meshing38Rossignac 99 (I) -EdgeBreakerRossignac 99 (II) - EdgeBreakerThe idea:Use an active boundary with acurrent gate, and encode theadjacent face insertion using 5distinct symbols.→ F symbols ~ 2VConnectivity:- Spanning tree- Gate traversalFeatures:-4 b/v guaranteed for connectivityOverall 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 - Meshing39CS101b - Meshing40ImprovementsRossignac & Szymczak 99Wrap&Zip: Linear decompression of triangle meshesKing & Rossignac 99Guaranteed 3.67V Bit Encoding of Planar Triangle GraphsSzymczak, King & Rossignac 00An Edgebreaker-based Efficient Compression Scheme forRegular MeshesIsenburg & Snoeyink 00Spirale Reversi: Reverse Decoding of EdgeBreakerEncodingGumhold 00New Bounds on the Encoding of Planar Triangulations.(3.55 b/v for EdgeBreaker)CS101b - Meshing41Valence-based ApproachesTouma & Gotsman 98One valence code per vertexSuccessive pivot verticesIsenburg & Snoeyink 99Edge collapsesOne valence code per removed vertexCompression ratios equivalent toAlliez & Desbrun 01Improvements uponTheoretical studyImprovementsCS101b - Meshing42Page 7


Valence Distribution (I)Valence Distribution (II)8000900007000800007000060006000050005000040004000030003000020002000010001000000 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1700 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17Calls for entropy encodingCS101b - Meshing43CS101b - Meshing44Valence Distribution (III)Touma & Gotsman 98 (I)18000The idea:16000140001200010000Deterministic edge conqueringfrom successive pivot verticesalong an active edge list.Atomic edge conquest -> valence symbol80006000Connectivity:4000200001 2 3 4 5 6 7 8 9 10- Output one valence symbol pervertex, + ε- Huffman encoding of valencesFull pivot vertex -> no code, hence V codesCS101b - Meshing45CS101b - MeshingSplit(offset) code (of rare occurrence)46Touma & Gotsman 98 (II)Touma & Gotsman 98 (III)Geometry:decoded area- Global quantization andparallelogram prediction- Entropy encodingFeatures:free areacurrent pivot- average: 2 b/v for connectivity- benefits from mesh regularityCS101b - Meshingconquered areaconquest list47- bit-rate vanishes to zero when regular- not seriously challenged since 98CS101b - MeshingParallelogram rule48Page 8


Isenburg & Snoeyink 99 (I)Isenburg & Snoeyink 99 (II)The idea:Sequence of reversible edgecontractions, recordable throughvalence codes for simple digons,and start/end for complex/trivial.Features:- Two faces conquered per valence, hence V codes- Connectivity: slightly more than TG98 [1-4] b/vConnectivity:- Also benefits from mesh regularity- Successive edge collapses- Output one valence code/v, + ε- Entropy encoding of valencesValenceEndValenceStart→ No split codes, but start/endCS101b - Meshing49CS101b - Meshing50Alliez & Desbrun 01(Eurographics 01)The Split CaseConnectivity:-Derived from TG98- Output one valence code per vertex, + ε- Arithmetic encoding of valencesSplit(3)Idea: adaptive edge conquering from successivepivot vertices along an active edge list.Features:- Minimize # split codes- Theoretical study: Hint of optimalityCS101b - Meshing51CS101b - MeshingSplit(offset)52Intuition behind Split CodesTowards Adaptive ConquestCS101b - Meshing53One remaining degree of freedom in TG→ choice in the pivot→ valence min / average valence minCS101b - Meshing54Page 9


Adaptive ConquestResultsTG 98[5,5,6,6,split(2)]AD 01[3,6,6]CS101b - Meshing55CS101b - Meshing56DiscussionTG98 not really challenged since 98→ valence approach “seems” optimalBut how to prove it?Valence as Entropy (I)We want to maximize: e = ∑ p ilog 2(1/ p i)iwith the constraints:‣ p i = v i /V, so: ∑ p i= 1i‣ F – E + V = 12E = 3F ⇒ 2E ≈ 6V, so:∑iip i= 6Solution: Lagrange MultipliersCS101b - Meshing57CS101b - Meshing58Valence as Entropy (II)Worst-case distribution p i is such as:⎛ ⎞ ⎛ ⎞Max ∑ pilog 2(1/ pi) + λ ⎜∑pi−1⎟ + μ ⎜∑ipi− 6⎟i⎝ i ⎠ ⎝ i ⎠Necessary condition: log 2( p i) = λ −1/ln(2)+ μiCS101b - MeshingWe find:p i=1627⎛⎜⎝4 ⎞⎟3 ⎠−i59Valence as Entropy (III)Now: e = ∑ p ilog2 (1/ p i) = log2(256 / 27)iWorst-case entropy: log 2 (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 asymptoticalCS101b - Meshing60Page 10


Some connectivity resultsMain advantages of Valence1.98bit/vertex1.02 0.024 2.20Coding 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.5bpv2.71 2.27 1.88CS101b - Meshing61CS101b - Meshing62MethodNoteConnectivity(b/v)Quad/Polygon/TetrahedronDeering 95 Triangle strips Redundancy ~ 2 8-11Taubin & Rossignac 98 Spanning trees~ 4Gumhold & Straβer 98 Cut-border2V codes~ 4.36Touma & Gotsman 98ValenceV codes ~ 2 (~0 when regular)Rossignac 992V codes, upper bound4 guaranteedKing & Rossignac 99 Gate traversal Better upper bound 3.67 grntd.Gumhold 00Even better upper bound3.55 grntd.Isenburg & Snoeyink 99 ValenceV codes~ TG98Valence +Alliez & Desbrun 01adaptive conquestProof of optimality? Tutte 62QuadsKing, Rossignac & Szymczak 99 (~EdgeBreaker)PolygonsIsenburg & Snoeyink 00 (Face Fixer, edge-based)Kronrod& Gotsman00(Face-based)Khodakovsky et al’ 03 (Face and vertex based)TetrahedraGumhold, Guthe & Straβer 99 -> ~2 b/tet.CS101b - Meshing63CS101b - Meshing64Part IIProgressive Mesh EncodingDefinition:Progressive CodecsProduces a “multi-resolution” format→ Coarse model + refinementsConcept:Creates a bit stream with decreasinglyimportant details.CS101b - Meshing65CS101b - Meshing66Page 11


An Ideal Progressive EncoderReviewDistortionworsebetterFor each bit-rate, max ratio:perceptual qualitytransmitted informationBit-rate− Progressive Meshes 96− Progressive Forest Split 98− Compressed Progressive Meshes 99− Cohen-Or et al. 99− Geometry-based triangulation 00− Spectral Compression 00− Complete Remeshing 00− Valence-centered centered 01− Plus recent developmentsBits must be sent in decreasing order of innovationCS101b - Meshing67CS101b - Meshing68Common ideaEncoding a mesh refinement consists in:1. Localization→ "where"2. Action→ "how to refine"Exemple:localisationHoppe 961. Localizationeach vertex to split~ log 2 (V) bits to localize2. ActionConnectivity:2edgestosplitlog 2 (Cv)16 b/vGeometry:delta encoding~20 b/vEncoding (decimation)Decoding (refinement)CS101b - Meshingaction69CS101b - Meshing70Taubin et al. 98 – Prog. Forest SplitRemeshing holes‣ Localization :~ forest of vertices to split (1 b/edge)~ edge collapses grouped in batches‣ Action :- remeshing holes~ 3.5 b/v- prediction and pre/post smoothingfor geometryAtomic operator: edge collapseForest edgesCut→ by triangulating tree loopsEncoding using a variation of[TR98] (single-rate)Connectivity: : 10 b/vGeometry: : 20 b/vTriangulate tree loopsRefinement doneCS101b - Meshing71CS101b - Meshing72Page 12


Pajarola and Rossignac 99 (CPM)Metrics in CPM‣ Localization :- 2-coloring of vertices to groupvertex splits into batches→ amortized cost: 3 b/v‣ Action :- Indicates two edges amongthe valence of each vertex to split- "Butterfly" prediction forgeometryAtomic operator:edge collapseBatches of edgecollapses- Metrics: modified QEM (GarlandHeckbert97(GarlandHeckbert97)Idea:select a subset of the less expensive edgesthat do not violate independent constraints→ greedy edge selection by increasingapproximation error (instead of priorityqueue used by GH97).Connectivity: : 7.2 b/vGeometry: : 15.4 b/vCS101b - Meshing73CS101b - Meshing74Cohen-Or et al. 992-coloring‣ Localization :Atomic operator: vertex removal~ 2 or 4 face coloring (build an independent set)2 coloring: 2 b/v (many degree 5 and >)4 coloring: 4 b/v (degree 4 or 3)LZ encoding of face labels‣ Action :- deterministic retriangulation (inside-Z)- barycentric prediction for geometry4- coloringCodingDecodingConnectivity: : 6 b/vGeometry: : 15.4 b/v2- coloringCS101b - Meshing75CS101b Deterministic - Meshing inside-z triangulation / 2-coloring76DiscussionAlliez & Desbrun 01 (SIGGRAPH 01)4 coloring 4-coloring‣ We seek:− Per-vertex granularity− One valence code per vertex, ideally− Detection of uniformity/regularity− Good rate/distortion tradeoff‣ We need:− Mesh simplification2-coloringCS101b - MeshingLong thin triangles…77CS101b - Meshing» atomic decimation/refinement operator» error metric− No extra “how to refine” data78Page 13


Core ideas‣ Localization :~ at no cost → gate-based conquest‣ Action :− valence of inserted vertex,− adaptive remeshing table, at no cost.Valence-centered Approach?We showed (Eurographics ’01) that valenceleads to optimal connectivity encodingOccurrences8000700060005000400030002000100001 2 3 4 5 6 7 8 9 101112 1314ValenceCS101b - Meshing79CS101b - Meshing80Main IdeasConnectivity: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]Our Method at a GlanceDecimation Strategy• Passes of vertex removals• Automatic re-triangulationEntropy Encoding• Compression of the list of symbols(essentially valences)CS101b - Meshing81CS101b - Meshing82Basic PrimitivesGate(oriented edge)CS101b - MeshingOrdinary patch1 input gateN-1 output gates1 vertex removalNull patch1 input gate2 output gates0 vertex removal83Decimation StrategyGate-based deterministic conquest• Vertex removal• Fifo of gates• Eliminate localization costTargeting special vertices• Low valences to respect balance (Denny - Sohler 97)• Cosmetic decisionsAutomatic re-triangulation- Favor regular remeshing• Look-up tableCS101b - Meshing84Page 14


Example of ConquestConquest - Step 2CodesFifoCodesFifoCS101b - Meshing5g1g2g3g4g585CS101b - Meshing65g2g3g4g5g6…86Conquest - Step 3Conquest - Step 4CodesFifoCodesFifoCS101b - Meshing665g3g4g5g6g7…87CS101b - Meshing6665g4g5g6g7g8…88Conquest - Step 5Conquest - EndCodesFifoCodesFifoCS101b - Meshing66665g5g6g7g8g9…89CS101b - Meshing65645…90Page 15


Decimation StrategyGate-based deterministic conquest• Vertex removal• Fifo of gates• Eliminate localization costTargeting special vertices• Low valences to respect balance [Denny - Sohler 97]• Cosmetic decisionsAutomatic re-triangulation- Favor regular remeshing• Look-up tableCS101b - Meshing91beforeafterValence DispersionBefore : V = ∑(valences, central vertex s excluded)After : V' = ∑(valences) → remove only valences [3-6]V' = V + (valence(s)-6) → [3-4] on boundariesCS101b - Meshing92Vertex SelectionNull patch if:• Valence > 6• Already visited• Metric-related decisionValence > 6AlreadyvisitedDecimation StrategyGate-based deterministic conquest• Vertex removal• Fifo of gates• Eliminate localization costTargeting special vertices• Low valences to respect balance (Denny - Sohler 97)• Cosmetic decisionsAutomatic re-triangulation- Favor regular remeshing• Look-up tableCS101b - Meshing93CS101b - Meshing94Remeshing strategyRemeshing strategyCS101b - Meshing95CS101b - Meshing96Page 16


Remeshing strategyRemeshing strategyCS101b - Meshing97CS101b - Meshing98Remeshing strategyRemeshing strategyCS101b - Meshing99CS101b - Meshing10Retriangulation Look-up TableRegular DecimationTargeting valences[3-6]√3[Kobbelt 00]Targeting valences[3]CS101b - Meshing10CS101b - MeshingSubstitution: 3->610Page 17


Irregular DecimationEntropy EncodingTargeting valences[3-6][3-6;N] [6;N] [3-6;N] [6;N]Targeting valences[3]Adaptive arithmetic encoding [Schindler 99]CS101b - MeshingSubstitution: 3->610CS101b - Meshing10Geometry encodingNormal / tangential separationLocalFrenet frameBarycentric predictionCS101b - MeshingCS101b - Meshing~ [Khodakovsky et al. 00]1010ResultsResultsCS101b - Meshing10Decimation 19851 -> 4 vertices Decimation 36450 -> 24 verticesQuantization 12 bitsQuantization 10 bitsConnectivity 4.61 b/vConnectivity 0.39 b/vGeometry 16.24 b/vGeometry 3.58 b/v20.87 b/v 3.97 b/vCS101b - Meshing10Page 18


Rate / DistortionDiscussionDistortion (%Bounding Box Mean square error)620 11 217 vertices5432100 20000 40000 60000 80000 100000 120000 140000 160000 180000‣ Optimality ?- One unique valence code per vertex- Does decimation hide entropy ?→ non-optimal optimal tiling, valence > 6 ormetric decision lead to null patch codes(unused by refinement).CS101b - Meshingrate (#bits)CS101b - Meshing1011PerspectivesDevillers & Gandoin 00 (I)‣ Entropy-drivenremeshing process,minimizing occurency of nullpatches (seek optimal tiling).‣ Prediction on metric decision(regular sharp edges, corners)‣ Inverse Loop in the regular case ?‣ Localization :~ implicitly transmitted by the order onthe data, via a space subdivision.~ progressive quantization‣ Action :- transmit only occurences- use geometric triangulationi.e. Delaunay/Crust/NaturalNeighbors…Drop the order upon the verticesCS101b - Meshing11CS101b - Meshing-> > well suited to terrains11Devillers & Gandoin 00 (II)SubdivisionCS101b - MeshingTransmissionTheoretical analysis:Vertex precision: Q bitsDirect encoding: VQOccurrence-based approach: V(Q-log2 V+2.402) -> worst case, i.e. uniformity11Karni & Gotsman 00 - Spectral CompressionThe idea:Apply ~ Signal Processing theorySimilar in spirit to lossy JPEG→ requires mesh partitionning (MeTiS)Then each submesh is turned into a compactlinear combination of orthogonal basisfunctionsBasis functions: eigenvectors of thetopological Laplacian of a submesh-> > Recently improved by fixed spectral basesCS101b - Meshing11Page 19


Khodakovsky, Schröder & Sweldens 00Wavelet TransformProgressive Geometry Compression• We are not interested in the connectivity• Let’s remesh the object!‣ Coarse mesh‣ Then subdivision connectivity (regular)Effect of wavelet transform• Changes distribution of coefficients‣ Almost all coefficients close to zero• Bottom-up: loop-based wavelet decomposition• Top-to-bottom: Zero tree to locate efficientlythe details0.27 0.34 0.41 0.49 0.56 0.0 0.8 1.7 2.5 3.3Vertex coordinatesWavelet coefficientsCS101b - MeshingCS101b - Meshing1111Zero-TreeResults (I)Need tree structure for coefficients• wavelets live on edges1369B3411B8517B21046B21KTest whole tree for significance‣ split tree isolating significant coefs701B1358B2784B6K6063BCS101b - MeshingCS101b - Meshing1111Results (II)Next Challenges?956B 2004B 4806B 26191B4 b/v1253B 2804B 6482B 14844B2.5 b/v- Progressive polygon meshes- Progressive topology encoding- Progressive animated geometry- Multi-connected components- What is entropy of geometry ?- Resilient encoding-…CS101b - MeshingCS101b - Meshing1112Page 20

More magazines by this user
Similar magazines