(tutorial notes) - georgia institute of technologyjarek/papers/eg04.pdf(tutorial notes) jarek...

16
EUROGRAPHICS 2004 Tutorial © The Eurographics Association 2004. Compressing Volumes and Animations (Tutorial Notes) Jarek Rossignac College of Computing, GVU Center, IRIS Cluster Georgia Institute of Technology, Atlanta, Georgia (USA) http://www.gvu.gatech.edu/~jarek This tutorial discusses compression techniques for reducing the storage requirements and transmission delays for triangle meshes, for their animations, for volumetric models representing a scalar field sampled at the vertices of a tetrahedral mesh, and finally for regularly sampled volumetric scalar fields that evolve with time. 1 Triangle meshes A triangle mesh is specified by a set of vertices and by a triangle-vertex incidence graph. Each vertex is usually represented by its geometry (3 coordinates) and photometry (surface normals or texture coordinates). The incidence specifies each triangle by the integer indices that identify its three vertices. For simplicity, we limit our discussion to simple meshes, which are homeomorphic to a triangulation of a sphere. Yet, most of the techniques presented here are applicable, or have been extended to, more general topologies, including meshes with borders, handles, non-manifold vertices and edges, non-triangular faces [Ross99, GBTS99, RoCa99, ToGo98, RSS01 , KRS99, BPZ99 , IsSn00, Lo&02 ]. Hence, we assume that the triangle mesh is a connected manifold surface with no boundary and no handle and that it has v vertices, e edges, and t triangles. We consider an edge to be a relatively open line segment that does not include its endpoints. Similarly, a face is the relative interior of a triangle, excluding its edges and vertices. The surface of the mesh is the union of its faces, edges, and vertices, which are assumed to be all pair-wise disjoint. To provide the reader with tools for comparing various simplification techniques, we define the following terms. A Vertex-Spanning Tree (VST) of a triangle mesh is a subset of edges whose union with all the vertices forms a tree (connected cycle-free graph). Assume that a given VST is selected. Its edges are called the cut-edges. The union of the cut-edges with all the vertices is called a cut . Because the VST is a tree, there are v–1 cut-edges. The Boolean difference between the surface and its cut is called the web. Edges that are not cut-edges are called hinge-edges. The web is the union of all the faces and of all the hinge-edges. Removing the cut, which has no loop, from the surface of a simple mesh will not disconnect it and will produce a web that is a (relatively open) triangulated two-dimensional point-set in three- space. Since a simple mesh has no hole or handle, the web is simply connected and may be represented by an acyclic graph, whose nodes correspond to faces and whose links correspond to hinge edges. Thus there are t–1 hinge edges. By picking a leaf of this graph as root and orienting the links, we can turn it into a binary tree, called the Triangle-Spanning- Tree (TST). It is a spanning tree of the dual of the graph made of the edges and vertices of the mesh. The TST defines a connected network of corridors through which one may visit all the triangles by walking across hinge-edges and never crossing a cut- edge. Because an edge is either hinge or cut, the total number of edges, e, is v–1+t–1. Each triangle uses 3 edges and each edge is used by 2 triangles. Thus the number e of edges is also equal to 3 t /2 . These two equations yield t=2v4, which indicates that there are roughly twice as many triangles as vertices. When 32-bit integers are used to represent triangle- vertex incidence references and 32-bit floats to represent vertex coordinates, an uncompressed representation of a simple mesh requires 12v bytes to store the geometry and 12t bytes (or equivalently 24v–28 bytes) to store the incidence, which amounts to a total of 144t bits. Note that the incidence information requires twice more storage than the geometry. The Corner Table [RSS01, RSS02] is a simple data structure designed to simplify the storage and processing of manifold or pseudo-manifold triangle meshes, whether they are simple or have holes and handles. The Corner table stores the geometry in the coordinate table, G, where G[v] contains the triplet of the coordinates of vertex number v, and will be denoted v.g. Note that the order in which the vertices are listed in G is arbitrary, although once chosen, it defines the integer reference number associated with each vertex.

Upload: nguyenanh

Post on 12-Apr-2018

217 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: (Tutorial Notes) - Georgia Institute of Technologyjarek/papers/EG04.pdf(Tutorial Notes) Jarek Rossignac College of Computing, GVU Center, IRIS Cluster Georgia Institute of Technology,

EUROGRAPHICS 2004 Tutorial

© The Eurographics Association 2004.

Compressing Volumes and Animations(Tutorial Notes)

Jarek Rossignac

College of Computing, GVU Center, IRIS ClusterGeorgia Institute of Technology, Atlanta, Georgia (USA)

http://www.gvu.gatech.edu/~jarek

This tutorial discusses compression techniques forreducing the storage requirements and transmissiondelays for triangle meshes, for their animations, forvolumetric models representing a scalar field sampledat the vertices of a tetrahedral mesh, and finally forregularly sampled volumetric scalar fields that evolvewith time.

1 Triangle meshesA triangle mesh is specified by a set of vertices and bya triangle-vertex incidence graph. Each vertex isusually represented by its geometry (3 coordinates) andphotometry (surface normals or texture coordinates).The incidence specifies each triangle by the integerindices that identify its three vertices.

For simplicity, we limit our discussion to simplemeshes, which are homeomorphic to a triangulation ofa sphere. Yet, most of the techniques presented here areapplicable, or have been extended to, more generaltopologies, including meshes with borders, handles,non-manifold vertices and edges, non-triangular faces[Ross99, GBTS99, RoCa99, ToGo98, RSS01, KRS99,BPZ99, IsSn00, Lo&02]. Hence, we assume that thetriangle mesh is a connected manifold surface with noboundary and no handle and that it has v vertices, eedges, and t triangles. We consider an edge to be arelatively open line segment that does not include itsendpoints. Similarly, a face is the relative interior of atriangle, excluding its edges and vertices. The surfaceof the mesh is the union of its faces, edges, and vertices,which are assumed to be all pair-wise disjoint.

To provide the reader with tools for comparing varioussimplification techniques, we define the followingterms. A Vertex-Spanning Tree (VST) of a trianglemesh is a subset of edges whose union with all thevertices forms a tree (connected cycle-free graph).Assume that a given VST is selected. Its edges arecalled the cut-edges. The union of the cut-edges withall the vertices is called a cut. Because the VST is atree, there are v–1 cut-edges. The Boolean differencebetween the surface and its cut is called the web. Edgesthat are not cut-edges are called hinge-edges. The webis the union of all the faces and of all the hinge-edges.

Removing the cut, which has no loop, from thesurface of a simple mesh will not disconnect it andwill produce a web that is a (relatively open)triangulated two-dimensional point-set in three-space. Since a simple mesh has no hole or handle,the web is simply connected and may be representedby an acyclic graph, whose nodes correspond tofaces and whose links correspond to hinge edges.Thus there are t–1 hinge edges. By picking a leaf ofthis graph as root and orienting the links, we can turnit into a binary tree, called the Triangle-Spanning-Tree (TST). It is a spanning tree of the dual of thegraph made of the edges and vertices of the mesh.The TST defines a connected network of corridorsthrough which one may visit all the triangles bywalking across hinge-edges and never crossing a cut-edge. Because an edge is either hinge or cut, thetotal number of edges, e, is v–1+t–1. Each triangleuses 3 edges and each edge is used by 2 triangles.Thus the number e of edges is also equal to 3t/2.These two equations yield t=2v–4, which indicatesthat there are roughly twice as many triangles asvertices.

When 32-bit integers are used to represent triangle-vertex incidence references and 32-bit floats torepresent vertex coordinates, an uncompressedrepresentation of a simple mesh requires 12v bytesto store the geometry and 12t bytes (or equivalently24v–28 bytes) to store the incidence, which amountsto a total of 1 4 4t bits. Note that the incidenceinformation requires twice more storage than thegeometry.

The Corner Table [RSS01, RSS02] is a simple datastructure designed to simplify the storage andprocessing of manifold or pseudo-manifold trianglemeshes, whether they are simple or have holes andhandles. The Corner table stores the geometry in thecoordinate table, G, where G[v] contains the tripletof the coordinates of vertex number v, and will bedenoted v.g. Note that the order in which the verticesare listed in G is arbitrary, although once chosen, itdefines the integer reference number associated witheach vertex.

Page 2: (Tutorial Notes) - Georgia Institute of Technologyjarek/papers/EG04.pdf(Tutorial Notes) Jarek Rossignac College of Computing, GVU Center, IRIS Cluster Georgia Institute of Technology,

Jarek Rossignac / Compressing Volumes and Animations (Tutorial Notes)

© The Eurographics Association 2004.

The Corner Table stores the 3 triangle-vertex incidencereferences as consecutive integer entries in the V table.Note that each one of these 3t entries represents acorner (association of a triangle with one of itsvertices). Let c be an integer variable representing sucha corner. Let c.t denote its triangle and c.v its vertex.Remember that c.v and c.t are integers in [0,v–1] and[0,t–1] respectively. Let c.p and c.n refer to theprevious and next corner in the cyclic order of verticesaround c.t.

FIGURE 1: Operators for accessing neighboring.

G and V suffice to specify the triangles. However, theydo not offer direct access to a neighboring triangle orvertex. To accelerate mesh traversal from one triangleto its neighbors, the Corner Table caches in the O table,for each corner c, the reference to the opposite corner,c.o. We also introduce the operators c.l and c.r, whichreturn the left and right neighbors of c (Fig. 1). We donot need to cache c.t, c.n, c.p, c.l, or c.r, because theymay be quickly evaluated: c.t is the integer division c.tDIV 3; c.n is c–2, when c MOD 3 is 2, and c+1otherwise; and c.p is c.n.n; c.l is c.n.o; and c.r is c.p.o.Thus, the storage of the connectivity is reduced to the Oand V arrays.

All triangles have been consistently oriented, so thatc.n.v=c.o.p.v for all corners c. We use the conventionthat, if a triangle c.t is visible by a viewer exterior of thesolid bounded by the triangle mesh, then the threevertices, c.p.v, c.v, and c.n.v, appear in clockwise orderto the viewer.

Many compression algorithms visit triangles in TSTorder. We use markers to track visited triangles andvertices. Assume that the Boolean c.t.m is set when thetriangle c.t has been visited. For example, the procedurevis i t (c) {I F N O T c.t.m THEN {c.t.m:=TRUE;visit(c.r); visit(c.l)}} will visit all the triangles in adepth-first order of a TST.

From a V table, the entries in O may be computed by:FOR c:=0 TO 3t–2 DO FOR b:=c+1 TO 3t–1 DO IF(c.n.v==b.p.v)&&(c.p.v==b.n.v) T H E N {c.o:=b;

b.o:=c}. A more efficient approach sorts the triplets{min(c.n.v,c.p.v), max(c.n.v,c.p.v), c} into bins,using their first record: min(c.n.v,c.p.v), an integer in[0,v–1]. There are usually less than 20 entries in abin. Then, we sort the entries in each bin by thesecond record: max(c.n.v,c.p.v). Now, pairs ofentries in a bin with identical second record areconsecutive and correspond to opposite corners,which are identified by the third record in eachtriplet. Thus, if a sorted bin contains consecutiveentries (a,b,c) and (a,b,d), we set c.o:=d and d.o:= c.

Because it can be easily recreated, the O table needsnot be transmitted. Furthermore, the 31–log2vleading zeros of each entry in the V table need not betransmitted. Thus, assuming that Floats are used forthe coordinates, a compact, but uncompressedrepresentation of a triangle mesh requires 48t bits forthe coordinates and 3tlog2v bits for the V table.

2 Geometry CompressionGeometry compression combines: quantization,prediction, and statistical coding of the residues.

Quantization truncates the vertex coordinates to adesired accuracy and maps them into integers thatcan be represented with a limited number of bits. Todo this, we first compute a tight (min-max), axis-aligned bounding box around each object. Theminima and maxima of the x, y, and z coordinates,which define the box, will be encoded andtransmitted with the compressed representation ofeach object. Then, given a desired accuracy, e, wetransform each x coordinate into an integer i whichranges between 0 and 2B–1. B is the maximumnumber of bits needed to represent the quantizedcoordinate i. The y and z coordinates are quantizedsimilarly. Using 12 bit integers for each coordinateensures a sufficient geometric fidelity for mostapplications and most models. Thus, this lossyquantization step reduces the storage cost ofgeometry from 96v to less than 36v bits.

The most crucial geometry compression stepinvolves a vertex predictor. Both the encoder andthe decoder use the same predictor. Thus, only theresidues between the predicted and the correctcoordinates need to be transmitted. The coherencebetween neighboring vertices in meshes of finelytiled smooth surfaces and in volumetric modelsreduces the magnitude of the residues. Similarly,space-time coherence may be exploited to furtherreduce the residues for animations and time-varyingvolumes.

Edge-adjacent vertices are often relatively close toeach other and the differences between the

c.n

cc.t

c.vc.l c.r

c.o

c.p

Page 3: (Tutorial Notes) - Georgia Institute of Technologyjarek/papers/EG04.pdf(Tutorial Notes) Jarek Rossignac College of Computing, GVU Center, IRIS Cluster Georgia Institute of Technology,

EUROGRAPHICS 2004 Tutorial

© The Eurographics Association 2004.

coordinates are small. As a result, each new vertex maybe predicted with reasonable accuracy from the locationof a previously transmitted neighbor [Deer95]. Insteadof using a single neighbor, when vertices aretransmitted in VST top-down order, a l i n e a rcombination of the 4 ancestors in the VST may beused [TaRo98]. The 4 coefficients of this combinationare computed to minimize the magnitude of the residuesover the entire mesh and transmitted as part of thecompressed stream. The most popular predictor forsingle-rate compression is based on the parallelogramconstruction [ToGo98]. Assume that the vertices of c.thave been decoded. We predict c.o.v.g asc.n.v.g+c.p.v.g–c.v.g. The parallelogram predictionmay be improved by predicting the angle between c.tand c.o.t from the angles of previously encounteredtriangles or from the statistics of the mesh.

Some of the residues may be large. For example, if thecoordinates have been quantized to B-bit integers, thecoord ina tes of the cor rec t ive vec tor ,c.o.v.g–c.n.v.g–c.p.v.g+c.v.g may require up to B+2bits. Thus, prediction could in principle expand storagerather than compress it. However, the distribution of theresidues is usually biased towards zero, which makesthem suitable for statistical compression [Salo00].

For instance, a Huffman code may use short symbols totransmit the most frequent corrective coordinates anduse longer symbols for infrequent coordinates. The

combination of these three steps compresses vertexlocation data to about 7t bits, where t is the numberof triangles in the mesh.

3 Connectivity of triangle meshesEdgebreaker [Ross99] compresses connectivity from3tlog2v to bt bits, where b is guaranteed never toexceed 1.80, and is usually close to 1.0. Hence,meshes may be encoded with about 8t bits (7t bitsfor geometry, as discussed above, and 1t bit forconnectivity). Furthermore, the Edgebreakerdecompression restores the Corner Table directlyfrom the compressed stream, avoiding the need to re-compute O. Instead of retracing the chronologicalevolution of the research in the field of single-rateincidence compression, we describe Edgebreaker[Ross99], which is arguably the simplest and one ofthe most effective single-rate compressionapproaches. The source code for Edgebreaker ispublicly available [SaRo02]. We then review severalvariants and alternatives.

The Edgebreaker compression outputs the clersstring, which contains one label per triangle. Thelabels indicate to the decompression how the meshcan be rebuilt by attaching new triangles topreviously reconstructed ones (Fig. 2). The Pseudo-code is shown below.

RECURSIVE PROCEDURE Compress (c) { # compresses a simple t-meshesREPEAT { # traverses TST, stopped by RETURN

set(c.t.m); # mark triangle as visitedIF !c.v.m # test whether tip vertex was visited

THEN { encode(c.v.g); # store location of tipWRITE(clers, ‘C’); # append C to clers stringset(c.v.m); # mark tip vertex as visitedc:= c.r} # continue with the right neighbor

ELSE IF c.r.t.u # test whether right triangle was visitedTHEN IF c.l.t.u # test whether left triangle was visited

THEN {WRITE(clers, ‘E’); RETURN } # append code for E and pop or stopELSE {WRITE(clers, ‘R’); c:= c.l } # append code for R, move to left triangle

ELSE IF c.l.t.u # test whether left triangle was visitedTHEN {WRITE(clers, ‘L’); c:= c.r } # append code for L, move to right triangleELSE {WRITE(clers, ‘S’); # append code for S

Compress(c.r); c:= c.l }} } # recurse right, then continue left

The explanations below contain, in parentheses, theexcerpts of the pseudo-code they reference.Edgebreaker works off the Corner Table without anyadditional data structure, except a bit per vertex and abit per triangle to mark the visited ones. It visits thetriangles in depth-first order of a TST using iteration(REPEAT) and occasionally recursion (Compress). Itmarks visited vertices (set(c.v.m)) and triangles(set(c.t.m)). The current triangle is identified by itstip corner (c). It has been reached though the gateedge joining c.n.v with c.p.v. By testing the marks of

the tip vertex of the current triangle and of neighboringtriangles, Edgebreker selects the label and appends it tothe clers string. If the tip vertex (c.v) has not beenvisited (!c.v.m), its location is encoded (encode(c.v.g))using the parallelogram prediction and geometrycompression, as explained in the next section. The labelC is appended to the clers string (WRITE(clers, C)) andthe iteration moves to the right neighbor (c:=c.r). Notethat the vertices are encoded in the order in which theyare encountered by C-triangles during this traversal.This order does not usually reflect the order in which

Page 4: (Tutorial Notes) - Georgia Institute of Technologyjarek/papers/EG04.pdf(Tutorial Notes) Jarek Rossignac College of Computing, GVU Center, IRIS Cluster Georgia Institute of Technology,

Jarek Rossignac / Compressing Volumes and Animations (Tutorial Notes)

© The Eurographics Association 2004.

the vertices were listed in the original mesh.Similarly, the triangles are reordered duringtransmission. A dictionary mapping the original orderon the server to the new order on the client may bekept on the server to reconcile vertex or triangleselections between one location and the other insubsequent processing. The dictionary needs not betransmitted.

When the tip of the current triangle has beenpreviously visited, we distinguish four cases (Fig. 2).

FIGURE 2: Edgebreaker distinguishes 5 cases: C, L, E, R,and S. On the left, we show the before and after states foreach case. Previously visited triangles and vertices aredarker. An x marks the triangle through which we reachedthe current triangle, marked with a “?”. At an S case, wego right via a recursive call and then left. At an E case, wereturn from recursion. The right column shows howdecompression attaches a new triangle to the gate andinterprets the clers symbols to locate its tip, v, and the newgate (red edge). The offset, o, for the S case needs not betransmitted.

case L: The left neighbor has been visited, but not theright one. We append L to the clers stringand iterate on the right neighbor (c:= c.r).

case R: The triangle on the right has been visited, butnot the one on the left. We append R to theclers string and iterate on the left neighbor(c:= c.l).

case S: Both neighbors have not-visited status. Weappend S to clers, start a recursive processon the right neighbor (Compress(c.r)), andthen iterate on the left neighbor (c:= c.l).

case E: When both neighbors have been visited, weappend E to the clers string, and return fromrecursion or from the compression process(RETURN).

The connectivity of the first triangle is implicit. Theinitialization, detailed in the insert below, sets thevisited tags (.m) to zero (not shown here). Then itencodes the first 3 vertices and marks them and their

triangle. It calls the compression on one of the cornersof that triangle (Compress (c.o)).

PROCEDURE initCompression (c){ encode(c.p.v.g); encode(c.v.g); encode(c.n.v.g); set(c.v.m, c.p.v.m, c.n.v.m, c.t.m); Compress (c.o); }

A typical execution of the compression process isillustrated in Fig. 3.

FIGURE 3: Edgebreaker starts with the darker triangle (left)and spirals out clockwise, filling the beginning of the clersstring with CCCCRCCRCRC. It appends the tip of each Ctriangle to the vertex list. A typical situation whereEdgebreaker finishes compression or closes a hole is shown(center). It spirals counterclockwise, appending the labelsequence CRSRLECRRRLE to the clers string and adding thevertices (a) and (b) to the vertex list. The triangles in therabbit (right) have been shaded according to theirEdgebreaker labels. Notice that half of the triangles are C(white) and about a third are R (red).

Except for the first two vertices, there is a one-to-onemapping between C triangles and vertices. Hence, thenumber of C triangles is v–2. Consequently, the numberof non-C triangles in a simple mesh is t–(v–2), which isalso v–2. Thus, exactly half of the triangles are oftype C and Edgebreaker guarantees that a compressedrepresentation of the connectivity of a simple trianglemesh will never exceed 2t bits [Ross99] if we use thefollowing simple binary encoding of the labels (C=0,L=110, E=111, R=101, S=100).

Given that the subsequences CE and CL are impossible,a slightly more complex code [KiRo99] may be used toguarantee that the compressed file will never exceed1.84t bits. This code uses (C=0, S=10, and R=11) forsymbols that follow a C and one of the following 3codes for symbols that do not follow a C:- Code 1: C=0, S=100, R=101, L=110, E=111- Code 2: C=00, S=111, R=10, L=110, E=01- Code 3: C=00, S=010, R=011, L=10, E=11

One of these 3 codes always takes less than 11t/6 bits[KiRo99]. A 2-bit switch header is used to identifywhich code is used for each model.

A more elaborate code was developed [Gumh00],which guarantees 1.778t bits when using a forwarddecoding [RoSz99] and 1.776t bits when using areverse decoding scheme [I sSn01]. It exploitsconstraints. For example, CCRE is impossible, becauseCCR increments the length of the loop. This guaranteelies within 10% of the proven 1.62t theoretical lower

Page 5: (Tutorial Notes) - Georgia Institute of Technologyjarek/papers/EG04.pdf(Tutorial Notes) Jarek Rossignac College of Computing, GVU Center, IRIS Cluster Georgia Institute of Technology,

EUROGRAPHICS 2004 Tutorial

© The Eurographics Association 2004.

bound for encoding planar triangular graphs, asestablished by [Tutt62], who proved that an optimalencoding uses at least vlog2(256/7) ≈3.245v bits, for asufficiently large v.

For large and fairly regular meshes, bettercompression ratios may often be obtained. Forexample, one may encode CC, CS, and CR pairs assingle symbols. Each odd C symbol will be pairedwith the next symbol. After an even number of Csymbols, we use the following codes: CR=01,CC=00, CS=1101, R=10, S=1111, L=1110, E=1100.This encoding guaranteed 2.0t bits, but usually yieldsbetween 1.3t and 1.6t bits [RoSz99]. Furthermore, byarranging symbols into words that each start with asequence of consecutive Cs and by using a Huffmancode [Salo00], we often reduce storage to less than1.0t bits. For example, 0.85t bits suffice for theHuffman codes of the Stanford Bunny. Including thecost of transmitting the associated 173 wordsdictionary brings the total cost to 0.91t bits. A gzipcompression of the resulting bit stream reduces it byonly 2%.

As shown earlier, the location of the next vertex maybe predicted using previously decoded geometry andconnectivity. Coors and Rossignac [CoRo02] haveproposed to also predict the connectivity of the nexttriangle using the same information. In their Delphisystem, compression and decompression perform thesame geometric prediction of the location of the tip-vertex of the next triangle. Then they estimate thetriangle connectivity, and thus its symbol in the clersstring, by snapping the tip-vertex to the nearestvertex in the active loop, if one lies sufficiently close.If no bounding vertex lies nearby, the next clerssymbol is estimated to be a C. If the guess is correct,a single confirmation bit is sufficient. Otherwise, anentropy-based code is received and used to select thecorrect CLERS symbol from the other four possibleones (or the correct tip of an S triangle). Reportedexperiments indicate that, depending on the model,up to 97% of Delphi's guesses are correct,compressing the connectivity down to 0.19t bits.When the probability of a wrong guess exceeds 40%,the Delphi encoding stops being advantageous.

Several approaches were proposed to decompressthe clers string. All repeat attaching a triangle to thegate. The next symbol in the clers string defineswhere the tip of the new triangle is (Fig. 2). SymbolC indicates that is a new vertex. Note that the 3vertices of the adjacent triangle have been decodedand may be used in a parallelogram prediction of thenew vertex. Symbol L indicates that the tip vertex isimmediately to the left of the gate along the border ofthe portion of the mesh decoded so far. R indicatesthat the tip lies immediately the right of the gate. E

indicates that the new triangle closes a hole, which musthave exactly 3 vertices. S indicates that the tip of thenew triangle is elsewhere on the boundary of thepreviously decoded portion of the mesh.

Consider the edge-connected components of the not-yetdecoded portion of the mesh. Let M be the componentincident upon the gate. Because for simple meshes Mhas no handle, an S triangle will always split it in twoparts. Through a recursive call, Edgebreaker will firstreconstruct the portion of M that is incident upon theright edge of S, as seen when entering the trianglethrough the gate. Then, upon return from the recursivecall, the reconstruction of the rest of M will resume.After the new triangle is attached, the gate is moved tothe right edge of the new triangle for cases C and L. Itis moved to the left edge for case R. When an S triangleis attached, the gate is first moved to the right edge ofthe S triangle and the right hole is filled through arecursive call to decompression. Then the gate is movedto the left edge and the process resumes as if the Striangle had been an R triangle. The only challenge inthe Edgebreaker decompression lies in the location ofthe tips of the S triangles. Several approaches have beenproposed and are briefly discussed below.

The integer reference number of the tip of each Striangle could be encoded using log2k bits, where k isthe number of previously decoded vertices. A moreeconomical approach encodes an offset, o, indicatingthe number of vertices that separate the gate from thetip in the current loop (Fig. 2). Because the current loopmay include a large fraction of the vertices, one maystill need up to log2k bits to encode the offset. Althoughthe total cost of encoding the offsets is linear in thenumber of triangles [Gumh99], the encoding of theoffsets constitutes a significant fraction of the total sizeof the compressed connectivity. Hence, several authorsstrived to minimize the number of offsets [AlDe01b] byusing heuristics for selecting gates with a lowprobability of being the base of an S triangle.

The breakthrough of Edgebreaker lies in the discoverythat offsets need not be transmitted at all, becausethey can be recomputed by the decompressionalgorithm from the clers string itself. The initialsolution [Ross99] is based on the observation that theattachment of a triangle of each type changes thenumber of edges in the current loop by specificamounts (Fig. 2). C increments the edge-count. R and Ldecrement it. E removes a loop of three edges and thusdecreases the edge-count by 3. S splits the current loopin two parts, but if we count the edges in both parts, itincrements the total edge count. Each S label starts arecursive call that will fill in the hole bounded by theright loop and will terminate with the corresponding Elabel. Thus S and E labels work as pairs ofparentheses . Based on these observation, we can

Page 6: (Tutorial Notes) - Georgia Institute of Technologyjarek/papers/EG04.pdf(Tutorial Notes) Jarek Rossignac College of Computing, GVU Center, IRIS Cluster Georgia Institute of Technology,

Jarek Rossignac / Compressing Volumes and Animations (Tutorial Notes)

© The Eurographics Association 2004.

compute the offset by identifying the portion of theclers string between an S and the corresponding E,and by summing the edge-count changes for eachlabel in that sub-string. To avoid the multipletraversals of the clers string, all offsets may be pre-computed by reading the clers string once and using astack for locating the S of each E.

The elegant, “Spirale Reversi” approach [IsSn01]for decompressing clers strings that have beencreated by the Edgebreaker compression avoids thispreprocessing by reading the clers string backwardsand building the triangle mesh in reverse order. Itassigns a reference number to a vertex, not at itscreation, but only when a C triangle incident upon itis created. The order in which vertices are assignedreference numbers by the Spirale Reversidecompression is reversed from the order in whichthey are first encountered by the Edgebreakercompression. Note that the vertices of new trianglesare initially unlabeled, and remain so, until thecorresponding C triangles are created.

A third approach, “Wrap&Zip” [RoSz99], builds aCorner Table directly. For each symbol, as a newtriangle is attached to the gate, Wrap&Zip fills in c.ofor the tip corner, c, of the new triangle and for itsopposite, c.o. It assigns vertex reference numbers tothe tips of C triangles as they are created, by simplyincrementing a vertex counter. It defers assigning thereference numbers to other vertices until a Zipprocess matches them with vertices that already havea reference number. Thus, it produces a web. Theborder edges of the web must be matched intopairs. The correct matching could be specified byencoding the structure of the cut [Tura84] [TaRo98].However, the information may be trivially extractedfrom the clers string by orienting the border edgesof the web as shown in Fig. 4. Note that these borderorientations are consistent with an upwardorientation of the cut-edges toward the root of theVST. The zipping part matches pairs of adjacentborder edges that are oriented away from their sharedvertex. Only the creation of L and E triangles opensnew zipping opportunities. Zipping the borders of anE triangle may start a chain of zipping operations(Fig. 5). The cost of the zipping process is linear,since there are as many zipping operations as edgesin the VST and the number of failed zipping testsequals the number of E or L triangles.

The pseudo-code for the Wrap&Zip (below) wasextended to meshes with handles [Lo&02].

Several connectivity compression approaches arerelated to Edgebreaker.

FIGURE 4: The borders of the web are oriented clockwise,except for the seed and the C triangles.

FIGURE 5: The part of the mesh not shown has beendecoded into a web with oriented borders (exterior arrows).Building the TST (shown by the labeled triangles) for thesub-string CRSRLECRRRLE produces a web, whose freeborders are oriented clockwise for all non-C triangles andcounterclockwise for C triangles (left). When Wrap&Zipfinds a pair of edges oriented away from their commonvertex, it matches them. The result of the first Zip operation(center) enables another zip. Repeating the process zips allthe borders and restores the desired connectivity (right).

The cut-border machine [GuSt98] was designed tosupport manifold meshes with boundaries. Is nearlyidentical to Edgebreaker, but slightly less effective,since it requires the explicit encoding of the offset of Striangles. Reported connectivity compression resultsrange from 1.7t to 2.5t bits. A context-based arithmeticcoder further improves them to 0.95t bits [Gumh99]. Avariable length scheme [Gumh00] may be used toguarantee less than 0.94t bits for encoding the offsets,thus proving that the cut-border machine has linearcomplexity.

Turan [Tura84] first noted that the connectivity of aplanar triangle graph can be recovered from its VSTand TST, which he proposed to encode using a total ofroughly 12v bits. Rossignac [Ross99c] reduced thistotal to 6v bits by combining two observations: (1) TheTST may be encoded with 2t bits, using 2 bits pertriangle to indicate whether it has a left and/or a rightchild. (2) The corresponding VST may be encoded with1 t bits, using a bit per vertex to indicate whether thenode is a leaf and another bit to indicate whether it isthe last child of its parent. This scheme does not imposeany restriction on the TST. Note that for less than the 2tbits budget needed for encoding the TST alone,Edgebreaker encodes the clers string, which not onlydescribes how to reconstruct the TST, but also how toorient the borders of the resulting web, so as to definethe VST, and hence the complete incidence. Thissurprising efficiency seems linked to the restriction ofusing a spiraling TST.

Taubin and Rossignac have noticed that a spiralingVST has relatively few branches. Furthermore, thecorresponding dual TST, which happens to be identicalto the TST produced by Edgebreaker, has also in

Page 7: (Tutorial Notes) - Georgia Institute of Technologyjarek/papers/EG04.pdf(Tutorial Notes) Jarek Rossignac College of Computing, GVU Center, IRIS Cluster Georgia Institute of Technology,

EUROGRAPHICS 2004 Tutorial

© The Eurographics Association 2004.

general few branches (Fig 6). They have exploitedthis regularity by using a Run Length Encoding(RLE) for the TST and VST. Each run is formed byconsecutive nodes that have a single child. Theresulting Topological Surgery 3D compressiontechnique [TaRo96, TaRo98] encodes the length ofeach run, the structure of the two trees of runs, and amarching pattern, which encodes each triangle run asa generalized triangle strip [ESV96] using one bitper triangle to indicate whether the next triangle ofthe run is attached to the right or to the left edge ofthe previous one. An implementation of theTopological Surgery for the V R M L standard[THLR98] provided a 50-to-1 compression over theoriginal VRML format [VRML97]. Subsequently, theTopological Surgery approach has been selected asthe core of Three Dimensional Mesh Coding (3DMC)algorithm in MPEG-4 [MPEG01], an ISO/IECmultimedia standard developed by the MovingPicture Experts Group.

With a focus on hardware decompression, Deering[Deer95] encodes generalized triangle strips using abuffer of 16 vertices. A bit is encoded to indicatewhether the next triangle is attached to the left or theright border edge of the previous triangle. Another bitindicates whether the tip of the new triangle isencoded in the stream or is still in the buffer and canhence be identified with only 4 bits. Additional bitsare used to manage the buffer and to indicate when anew triangle strips must be started. This compressedformat is supported by the Java 3D’s CompressedObject node [Java99]. Chow [Chow97] has provided

an algorithm for compressing a mesh into Deering’sformat by extending the border of the previously visitedpart of the mesh by a fan of not-yet-visited trianglesaround a border vertex. When the tip of the newtriangle is a previously decoded vertex no longer in thecache, its coordinates, or an absolute or relativereference to them, must be included in the vertexstream, significantly increasing the overall transmissioncost. Therefore, the optimal encoding traverses a TSTthat is different from the spiraling TST of Edgebreaker,attempting to reduce cache misses.

FIGURE 6: The Topological Surgery approach mergesconcentric circles of triangles into a single TST (left). TheTST and its dual VST have relatively few runs (right).There are twice as many triangles as vertices and 3corners per triangle. Therefore there are roughly sixtimes as many corners as vertices. Thus, the averagevalence, i.e., the number of triangles incident upon avertex, is 6. Indeed, in most models, the valencedistribution is highly concentrated around 6. To exploit

PROCEDURE initDecompression {GLOBAL V[] = { 0,1,2,0,0,0,0,0,…}; # table of vertex Ids for each cornerGLOBAL O[] = {–1,–3,–1, –3, –3, –3…}; # table of opposite corner Ids for each cornerGLOBAL T = 0; # id of the last triangle decompressed so farGLOBAL N = 2; # id of the last vertex encounteredDecompressConnectivity(1); # starts connectivity decompression

RECURSIVE PROCEDURE DecompressConnectivity(c) {REPEAT { # Loop builds triangle tree and zips it up

T++; # new triangleO[c] = 3T; O[3T] = c; # attach new triangle, link opposite cornersV[3T+1] = c.p.v; V[3T+2] = c.n.v; # enter vertex Ids for shared verticesc = c.o.n; # move corner to new triangleSwitch decode(READ(clers)) { # select operation based on next symbol

Case C: {O[c.n] = –1; V[3T] = ++N;} # C: left edge is free, store ref to new vertexCase L: { O[c.n] = –2; zip(c.n); } # L: orient free edge, try to zip onceCase R: { O[c] = –2; c = c.n } # R: orient free edge, go leftCase S: { DecompressConnectivity(c); c = c.n } # S: recursion going right, then go leftCase E: { O[c] = –2; O[c.n] = –2; zip(c.n); RETURN }}}} # E: zip, try more, pop

RECURSIVE PROCEDURE Zip(c) { # tries to zip free edges opposite cb = c.n; WHILE b.o>=0 DO b=b.o.n; # search clockwise for free edgeIF b.o != –1 THEN RETURN; # pop if no zip possibleO[c]=b; O[b]=c; # link opposite cornersa = c.p; V[a.p] = b.p.v; # assign co-incident cornersWHILE a.o>=0 && b!=a DO {a=a.o.p; V[a.p]=b.p.v};c = c.p; WHILE c.o >= 0 && c!= b DO c = c.o.p; # find corner of next free edge on rightIF c.o == –2 THEN Zip(c) } # try to zip again

Page 8: (Tutorial Notes) - Georgia Institute of Technologyjarek/papers/EG04.pdf(Tutorial Notes) Jarek Rossignac College of Computing, GVU Center, IRIS Cluster Georgia Institute of Technology,

Jarek Rossignac / Compressing Volumes and Animations (Tutorial Notes)

© The Eurographics Association 2004.

this statistics, Touma and Gotsman [ToGo98] havedeveloped a valance-based encoding of theconnectivity, which visits the triangles in the sameorder as Edgebreaker. As in Edgebreaker, theyencode the distinction between the C and the Striangles. However, instead of encoding the symbolsfor L, R, and E, they encode the valence of eachvertex and the offset for each S triangle. When thenumber of incident triangles around a vertex is oneless than its valence, the missing L, R, or E trianglemay be completed automatically. For this scheme towork, the offset must not only encode the number ofvertices separating the gate from the tip of the newtriangle along the border (Fig. 2), but also the numberof triangles incident on the tip of the S triangle thatare part of the right hole. To better appreciate thepower of this approach, consider the statistics of atypical case. Only one bit is needed to distinguish a Cfrom an S. Given that 50% of the triangles are of typeC and about 5% of the triangles are of type S, theamortized entropy cost of that bit is around 0.22t bits.About 80% of the encoding cost lies in the valence,which has a low entropy for regular and finelytessellated meshes and in the encoding of the offsets.For example, when 80% of the vertices have valence6, a bit used to distinguish them from the othervertices has entropy 0.72 and hence the sequence ofthese bits may be encoded using close to 0.36t bits.The amortized cost of encoding the valence of theother 20% vertices with 2 bits each is 0.40t bits.Thus, the valence of all vertices in a reasonablyregular meshes may be encoded with 0.76t bits. If 5%of the triangles are of type S and each offset isencoded with an average of 5 bits, the amortized costof the offsets reaches 0.25t bits. Note that the offsetsadd about 25% to the cost of encoding the C/S bitsand the valence, yielding a total of 1.23t bits. Thiscost drops down significantly for meshes with amuch higher proportion of valence-6 vertices.

Although attempts to combine the Edgebreakersolution that avoids sending the offsets and thevalence-based encoding of the connectivity havefailed, Alliez and Desbrun [AlDe01b] managed tosignificantly reduce the total cost of encoding theoffsets, by reducing the number of S triangles. Theyuse a heuristic that selects as gate a border edgeincident upon a border vertex with the maximalnumber of incident triangles. To further compressthe offsets, they sort the border vertices in the activeloop according to their Euclidean distances from thegate and encode the offset values using an arithmeticrange encoder [Schi98]. They also show that if onecould eliminate the S triangles, the valence-basedapproach would guarantee to compress the mesh

with less than 1.62t bits, which happens to be Tutte’slower bound [Tutt62].

An improved Edgebreaker compression approach wasproposed [SKR00, SKR00b] for sufficiently large andregular meshes. It is based on a specially designedcontext-based coding of the clers string and uses theSpirale Reversi decompression. For a sufficiently largeratio of degree six vertices and a sufficiently large t,this approach is proven to guarantee a worst-casestorage of 0.81t bits.

4 Retiling for better compressionWhen there is no need to preserve the connectivity andthe original vertex locations, a better compression maybe achieving by producing a more regular sampling ofthe original surface, especially if the samples arepositioned so as to improve the accuracy of vertexprediction and to reduce the cost of encoding theresidues.

An early retiling technique [Turk92] first places newsamples on the surface and distributes them evenlyusing repulsive forces estimated from geodesicdistances [PoSc99] between samples. Then it insertsthese samples as new vertices in the mesh. Finally, theold vertices are removed through edge-collapseoperations that preserve topology.

The MAPS algorithm [Le&98] was used [KSS00] tocompute a crude simplified model, which can becompressed using any of the single-rate compressionschemes discussed above. Once received and restoredby the decompression module, the crude model is usedas the coarse mesh of a subdivision process. Eachsubdivision stage splits each triangle into four by theinsertion of a new vertex in each edge. Vertex positionmay be computed using the Loop subdivision[Loop94], which splits edge (c.n.v,c.p.v) by insertingpoint (c.v.g+c.o.v.g+3c.n.v.g+3c.o.v.g)/8 and thendisplaces the old vertices towards the average of theirold neighbors. After each subdivision stage, the clientdownloads a displacement field of corrective vectorsand uses them to adjust the vertices, so as to bring thecurrent level subdivision surface closer to the desiredsurface. The distribution of the coefficients of thecorrective vectors is concentrated around zero and theirmagnitude diminishes as subdivision progresses. Theyare encoded using a wavelet transform and compressedusing a modified version of the SPIHT algorithm[SaPe96] originally developed for image compression.

Instead of encoding corrective 3D vectors, the NormalMesh approach [GVSS00] restrict each offset vector tobe parallel to the surface normal estimated at the vertex.Only one corrective displacement value is encoded pervertex. A Butterfly subdivision [DLG90] is used. Itpreserves the old vertices and, for each pair of opposite

Page 9: (Tutorial Notes) - Georgia Institute of Technologyjarek/papers/EG04.pdf(Tutorial Notes) Jarek Rossignac College of Computing, GVU Center, IRIS Cluster Georgia Institute of Technology,

EUROGRAPHICS 2004 Tutorial

© The Eurographics Association 2004.

corners c and c.o, splits edge (c.n.v,c.p.v) by insertingpoint(8c.n.v.g+8c.p.v.g+2c.v.g+2c.o.v.g+c.l.v.g+c.r.v.g+c.o.l.v.g+c.o.r.v.g)/16. The corrective displacement ofnew vertices are compressed using the un-liftedversion of the Butterfly wavelet transform [DLG90,ZSS96]. Further subdivision stages generate asmoother mesh that interpolates these displacedvertices. The difficulty of this approach lies in thegeneration of a good starting crude model and inhandling situations where no suitable displacementfor a new vertex exists along the estimated surfacenormal. The connectivity of the crude mesh and theconstraint imposed by the regular subdivision processlimit the way in which the retiling can adapt to thelocal shape characteristics, and thus may result insuboptimal compression ratios. For example, regularmeshes may lead to sub-optimal triangulations forsurfaces with high curvature regions and saddlepoints, where vertices of valence different than 6would be more appropriate.

In the Piecewise Regular Mesh (PRM) approach[SRK02], the surface is algorithmically decomposedinto 6 reliefs, each one comprising triangles whosenormals are closest to one of the six principaldirections (Fig. 8 left). Each relief is sampled along aregular grid of parallel rays (Fig. 7 right). Trianglesare formed between samples on adjacent rays and, toensure the proper connectivity, at the junction ofadjacent reliefs. When the sampling rate (i.e. thedensity of the rays) is chosen so that the resultingPRM has roughly the same number of vertices as theoriginal mesh, the PRM approximates the originalmesh with the mean square error of less than 0.02%of the diameter of the bounding box. Because of theregularity of the sampling in each relief, the PRMmay be compressed down to a total about 2t bits,which accounts for both connectivity and geometry.PRM uses Edgebreaker compression [Ross99] andthe Spirale Reversi decompression [IsSn01].Edgebreaker produces the CLERS string, which isthen turned into a binary string using the context-based range coder, which reduces the uncertaintyabout the next symbol for a highly regular mesh. Thegeometry of the reliefs is compressed using aniterated two-dimensional variant of the differentialcoding. The regular retiling causes the entropy of theparallelogram rule residues to decrease by about 40%when compared to the entropy for the originalmodels, because, on reliefs, two out of threecoordinates of the residual vectors become zero.Since this approach does not require globalparameterization, it may be used for models withcomplex topologies. It is faster than the combinationof the MAPS algorithm [Le&98] and the wavelet

mesh compression algorithm of [GVSS00, KSS00],while offering comparable compression rates.

FIGURE 7: The reliefs produced by the PRM approach (left)are resampled (right) into a nearly regular triangle mesh.

SwingWrapper [Atte01] partitions the surface of anoriginal mesh M into simply connected regions, calledtriangloids. From these, it generates a new mesh M’.Each triangle of M’ is a linear approximation of atriangloid of M (Fig. 8). By construction, theconnectivity of M’ is regular (96% of the triangles areof type C or R, 82% of the vertices have valence 6) andcan be compressed to less than a bit per triangloid usingEdgebreaker. The locations of the vertices of M’ areencoded with about 6 bits per vertex of M’, thanks to aprediction technique, which uses a single correctionparameter per vertex. Instead of using displacementsalong the normal or heights on a grid of parallel rays,SwingWrapper requires that the left and right edges ofall C triangles have a prescribed length L, so that thecorrection to the predicted location of their tip may beencoded using the angle of the hinge edge. For a varietyof popular models, it is easy to create an M’ with 10times fewer triangles than M. the appropriate choice ofL yields a total file size of 0.4t bits and a mean squareerror with respect to the original of about 0.01% of thebounding box diagonal.

FIGURE 8: The original model (left, courtesy of Cyberware)contains t=134,074 triangles. A dense partitioning of itssurface into triangloids (second), was produced bySwingWrapper. The corresponding retiled mesh (third) wasgenerated by flattening the triangloids. Its L2 error is about0.007% of the bounding box diagonal and its 13642 triangleswere encoded with a total of 3.5 bits per triangloid, for boththe connectivity and geometry, yielding a compressed file0.36t bits. A coarser partitioning (fourth) decomposes theoriginal surface into 1505 triangloids. The distortion of thecorresponding retiled mesh (last) is about 0.15%, the total filesize is 0.06t bits.

Page 10: (Tutorial Notes) - Georgia Institute of Technologyjarek/papers/EG04.pdf(Tutorial Notes) Jarek Rossignac College of Computing, GVU Center, IRIS Cluster Georgia Institute of Technology,

Jarek Rossignac / Compressing Volumes and Animations (Tutorial Notes)

© The Eurographics Association 2004.

5 AnimationsCommunication technologies have recently evolvedfrom print and images, to video, multimedia,interaction, and 3D. The next important evolutionstep will focus on interactive animation. It will openopportunities to show how things work or changewith time. The possibility of accessing 3D animationsover the Internet or wireless connections forinteractive viewing will impact many areas, includingphysics, engineering, education, entertainment,commerce, medicine, sports, and weather.Contemporary acquisition, simulation, and authoringtechniques produce increasing amounts of complex3D animation data, which, to be useful, must beaccessible instantaneously to a large number ofviewers with Internet, phone lines, or wirelessconnections. Therefore, we must develop streamingtechniques for the real-time access and local displayof remotely stored, animated 3D models.An animation may be replayed by accessing asequence of 3D models, called key-frames, whichrepresent the states of the animated model at a denseset of time samples, and by displaying them one afterthe other. Unfortunately, current representations ofthese key-frames are too voluminous to be quicklyretrieved through network or wireless connections. Attypical key-frame model may contain hundreds orthousands of details, each being represented bythousands of faces and vertices. Even when the sceneis restricted to rigid-body models whose shapes needonly be transmitted once, the precise trajectories andorientations of these objects, when sampled at 30frames per second, may need to be compressed forrealtime access, especially when the scene contains alarge number of moving parts.

The 3D mesh compression techniques discussedabove significantly reduce the storage and thus thebandwidth requirements for the transmission of static3D models. Graphics boards with built-in hardwaredecompression are emerging [Deer99]. Still, severalorders of magnitude increase in bandwidth arerequired to support the interactive viewing ofcomplex animations over network or wirelessconnections. The situation is not likely to improvesignificantly in the future, because the rapid increaseof bandwidth will be matched, and even surpassed,by the increase in the accuracy, and thus in thecomplexity of the animations available for Internetapplications.

The focus of the research community on animationcompression is recent [Leng99] [VOH01]. Pioneeringcontributions [Leng99, AlMu00] focus on thetransmission of a series of 3D key-frames of constantconnectivity, because many deformations may be

represented in terms of the motions of the vertices orcontrol points of the mesh [QiTe95], while theconnectivity of the mesh remains constant. Given thatthe fixed connectivity can be compressed usingEdgebreaker or another compression schemes, theobjective is to encode how each vertex evolves withtime.

The trajectory of each vertex may be viewed as a curvein 4D or as a time-parameterized curve in 3D. Onecould envision encoding each trajectory independently,attempting to exploit its time-coherence, by usingtechniques for the compression of 3D curves. Most 3Dcurve compression approaches fall into one of thefollowing three categories: extrapolation,approximation, refinement.

Extrapolation methods predict the position of the nextvertex, as we did for triangle meshes, from previouslydecoded vertices. Hence, only the residue (correctionvector) must be transmitted. When the prediction isgood, the residues have small quantized coordinates,which require few bits to encode. Furthermore, if theprediction statistics are biased towards zero, entropy orarithmetic codes may be used to exploit this bias andfurther reduce bandwidth requirements. The predictionis typically based on previous positions of the movingvertex, which are used to estimate its velocity and itsderivatives. Our experience indicates that quadraticpredictors are often more effective than linear or higherorder ones.

Approximation methods attempt to construct a curvethat can be represented compactly and is a goodapproximation of the original curve or trajectory.Piecewise-Circular Curves (PCCs) [RoRe97] have beenused to approximate 3D surface/surface intersectionsand to represent the trajectories of balls that roll onpairs of curved surfaces do sweep out blending surfaces[RoRe84] and boundaries of 3D offset models[RoRe86]. More recently, PCCs have proven effectivefor constructing and compressing approximations ofarbitrary 3D curves. For example, consider theCompressed Piecewise-Circular Approximationtechnique [SaRo02b], which improves upon previouslyreported schemes for 3D curve compression [YaDu96],[EuTo94], [SaDa99]. Consider a polygonal curve Pwhose n vertices have been generated through adaptive(and nearly minimal) sampling, so that P approximatessome original 3D curve O within tolerance E0. We cancompute a continuous 3D curve C that approximates Pwithin tolerance E1 and is composed of a chain of mcircular arcs whose end-points coincide with a subset ofthe vertices of P. We represent C using 5m+3 scalars,which we compress within a carefully selectedquantization error E2. Our approximation uses a total ofless than 7.5n bits, when O is a typical surface/surface

Page 11: (Tutorial Notes) - Georgia Institute of Technologyjarek/papers/EG04.pdf(Tutorial Notes) Jarek Rossignac College of Computing, GVU Center, IRIS Cluster Georgia Institute of Technology,

EUROGRAPHICS 2004 Tutorial

© The Eurographics Association 2004.

intersection and when the error bound E1+E2 is lessthan 0.02% of the radius of a minimal sphere aroundO. For less accurate approximations, the storage sizedrops further, reaching for instance a total of n bitswhen E1+E2 is increased to 3%. Our representation ofC is always more compact than a compact encodingof a polygonal curve [Ba&98], [DoPu73] thatapproximates O with the same accuracy. Toguarantee a correct fit, we introduce a new errormetric for E1, which prevents discrepancies betweenP and C that are not detected by previously proposedHausdorff or mean square error estimates.

Finally, refinement methods transmit a crudeapproximation first, then predict the location ofintermediate vertices and transmit the residues forthese predictions, which are of course used to correctthem and to refine the curve progressively. Alexaand Müller [AlMu00] normalize the animation bytranslating all frames so that the origin lies at thecenter of mass of the model. Then they apply anaffine transformation to minimize the sum of thesquare of the displacement for each vertex withrespect to the initial frame. Then, they combine thenormalized vertex positions into a large matrix,whose columns represent the consecutive frames.Each column contains the list the three coordinatesfor each vertex. Using a Principal ComponentAnalysis (PCA), they compute the eigen-values ofthe product of that matrix with its transpose. Theseeigen-values define eigen-vectors and a coordinatesystem, whose axes are aligned with the principalcomponents of the deformation. Thus thedeformation is represented by this change ofcoordinate systems and by its coefficients in the newcoordinate system. By setting to zero most of thesecoefficient, except the largest ones, they produce anapproximating animation, which may be encodedwith fewer bits. By sending more coefficients, theyprogressively refine the animation.

Approximation and refinement methods are lessappealing than extrapolation methods for thetransmission of animations, because they involve afair amount of preprocessing and because they makeit difficult to stream the animation one frame at atime, and require instead that whole curve segmentsor low-resolution models of the whole animation betransmitted ahead of time.Compressing the trajectory of each vertexindependently of its neighbors fails to exploit thespatial coherence, which is tapped by theparallelogram predictor discussed earlier for thecompression of static triangle meshes. The Dynapakcompression of 3D animations [IbRo03] focuses onextrapolating predictions and combines the spatialcoherence and temporal coherence into the Extended

Lorenzo Predictor (ELP), which was adapted from theLorenzo Predictor [ILRS03] further discussed later inthis tutorial. ELP uses the parallelogram predictor topredict the velocity of each vertex from the velocities ofthree of its previously decoded neighbors. It yieldszero-residues in areas of the mesh that are animated bya pure translation. The Replica predictor [IbRo03] isslightly more expensive to compute than ELP, but is aperfect predictor for arbitrary combinations oftranslations, rotations, and uniform scaling. It expressesthe position of a vertex v in frame f through its 3coefficients relative to a local coordinate systemdefined using the vertices in frame f of an adjacenttriangle that is the parent of the current triangle in theTST. To estimate the position of v in frame f+1, itestablishes the local coordinate system of the parenttriangle using the positions of its vertices in frame f+1and the uses the 3 coefficients from frame f to computethe estimated position of v. For the typical 3Danimations, the corrections between the actual andpredicted value of the vertex coordinates may becompressed using entropy coding down to an averageranging between 1:37 and 2:91 bits, when thequantization used ranges between 7 and 13 bits. Incomparison, space-only compression, based on theparallelogram predictor for each frame independently ofthe previous ones, yields a range of 1:90 to 7:19 bits percoordinate. Time-only compressions (where thetrajectory of each vertex is encoded independently ofother vertices using an extrapolating predictor) yields arange of 1:77 to 6:91 bits per coordinate. Theimplementation of the Dynapack compression anddecompression is extremely simple; its executionextremely fast. Furthermore, Dynapack performs asweep through the animation, only accessing twoconsecutive frames at a time. Therefore, it isparticularly well suited for realtime and out-of-corecompression, and for streaming decompression.

To compress the evolution of a surface, one canpartition the surface into regions whose motion ishomogeneous over a given time interval [Leng99].Tracking these regions on the deforming surface andcomputing the associated motion can be addressedusing a variant of the Iterative Closest Point (ICP)registration algorithm [EFF98], which would restrictthe motion to be an affine transformation. However,affine transformations may be too limiting [Hasl01].Given the initial and the final poses (positions andorientations) of an object, there is an infinite family ofcontinuous rigid-body motions that can interpolatethem. Most of these produce motions that not onlydepend on the two poses of the object, but also on thechoice of a coordinate system. The screw-motion is theonly interpolating motion that does not depend on thecoordinate system. Furthermore, it is uniquely defined

Page 12: (Tutorial Notes) - Georgia Institute of Technologyjarek/papers/EG04.pdf(Tutorial Notes) Jarek Rossignac College of Computing, GVU Center, IRIS Cluster Georgia Institute of Technology,

Jarek Rossignac / Compressing Volumes and Animations (Tutorial Notes)

© The Eurographics Association 2004.

by the two poses (except when they correspond to apure 180 degree rotation) and yields a combination ofa minimum length translation with a minimum anglerotation around a fixed axis that is parallel to thetranslation vector. The screw motion may be triviallycomputed from the two poses [RoKi01] and offersadvantages for computing the boundaries of sweptregions [RoKi01] and collisions [KiRo02] [KiRo04].A screw motion may be compactly represented by anaxis (which requires four parameters) and twovariables defining the total displacement along thisaxis and the angle of total rotation around it. In theabsence of any a priori knowledge of the nature ofthe motion or of any constraint, we propose to usesuch screws as a representation of the object motionbetween consecutive key-frames. If, however, weknow that the object follows natural physicalbehaviors, simple dynamic formulations may be moreappropriate.

Computing a partitioning that minimizes the numberof regions and the resulting error may prove difficult.Therefore, an adaptive greedy approach, such asthose used to achieve guaranteed frame rates [ZSP01][DeDe01], may be easier, although non-optimal.

Finally, note that sometimes the connectivity andtopology of the mesh changes over time. Forexample, a shape may break into disconnectedcomponents and new handles, cavities, or cracks mayappear [OBHo99]. A general framework for a multi-resolution transmission and streaming of animationshas been proposed [AARM02], but research onefficient techniques for compressing and streaminganimations of triangle meshes that evolve with timeis still in its early stages.

6 3D and 4D scalar fieldsA static 3D scalar field may be represented by itsvalues at the nodes of a dense and regular 3D lattice.When the field evolves over time, it may berepresented using samples on the nodes of a 4Dlattice.

The Lorenzo predictor [ILRS03] can be used tocompress and stream such 4D data sets and hasadvantages over wavelet encodings and other multi-dimensional schemes. It is a simple extrapolatingpredictor used to estimate a value at a node from itsimmediate lattice-neighbors that have beenpreviously decoded.

The Lorenzo predictor estimates the scalar value of asample on the corner of an n-dimensional cube fromthe scalar values of its 2n–1 neighbors. Although theformula for the predictor is very simple, its predictivepower is significant for higher-dimensional data. Forexample, in 4D, the Lorenzo predictor can recover

exactly any scalar field that corresponds to an implicitcubic polynomial.

During compression and decompression we only needto access the immediate neighbors. Hence, the proposedapproach is particularly well suited for out-of-coreimplementations, where the total size of the data setsignificantly exceeds what can be stored in corememory.

The Lorenzo predictor predicts the scalar value atvertex v=(1,1, ... ,1) of an n-dimensional cube from theother scalar values at all of the other vertices of thecube using the following formula:

(−1)n+1 * f (x)∑ : where n is the number of the vertexcoordinates that are zero and f(x) its valueNote that, as shown in Fig. 10, in this formulation, theimmediate neighbors of the predicted vertex haveweight 1. Second degree neighbors (i.e., those whichcan be reached by traversing two edges from v) haveweight –1, and so on.

? b

c a

a

a

b b

b

c

?

a

FIGURE 8: In the 2D case (left), the new value at vertex ‘?’is predicted from its neighbors using the parallelogram rule(Prediction(v)=b+c-a). In the 3D case, we add the value atthe ‘a’ vertices, subtract the ‘b’ vertices and add the c vertex.It shows that the closest neighbors are added, the secondclosest are subtracted, and so on.

7 ConclusionsThe connectivity of triangle meshes homeomorphic to asphere may always be encoded with less than 1.8t bitsand usually requires less than 1.0t bits. Their quantizedgeometry may be compressed to about 7.0t bits.Compression and decompression algorithms areextremely simple and efficient. When the originalconnectivity needs not be preserved, retiling the surfaceof the mesh to enhance regularity often reduces thestorage cost to 0.5t bits with a mean square error of lessthan 1/10000 of the size of the model. These statisticsremain valid for meshes with relatively few holes andhandles. Animated meshes with constant connectivityand static and time-evolving scalar fields sampled on aregular lattice may be compressed by using variationsof the simple n-dimensional Lorenzo Predictor, whichextends the parallelogram predictor to animations andhigher-dimensional regular lattices. The prediction isexact for an important class of motions and scalarfields.

Page 13: (Tutorial Notes) - Georgia Institute of Technologyjarek/papers/EG04.pdf(Tutorial Notes) Jarek Rossignac College of Computing, GVU Center, IRIS Cluster Georgia Institute of Technology,

EUROGRAPHICS 2004 Tutorial

© The Eurographics Association 2004.

8 References[AAR02] Ghassan Al-Regib, Yucel Altunbasak, and Jarek

Rossignac, “A joint source and channel codingapproach for progressively compressed 3-D meshtransmission,” Proceedings of the IEEE Int. Conf. inImage Processing, 2(161–164), 2002.

[AARM02] Ghassan Al-Regib, Yucel Altunbasak, JarekRossignac, and Russell Mersereau, “Protocol forstreaming compressed 3-D animations over lossychannels,” Proc. of the IEEE Int. Conf. On Multimediaand Expo, August 2002, vol. 1, pp. 353–356.

[AFSR03] Marco Attene, Bianca Falcidieno, MichelaSpagnuolo, and Jarek Rossignac, “OptimizedEdgebreaker encoding for large and regular trianglemeshes,” ACM Transactions in Graphics, vol. 22, no.4, October 2003.

[AlDe01] P. Alliez and M. Desbrun, “Progressive encodingfor lossless transmission of 3D meshes,” in ACMSIGGRAPH Conference Proceedings, 2001.

[AlDe01b] P. Alliez and M. Desbrun, “Valence-drivenconnectivity encoding for 3D meshes,” Eurographics,vol. 20, no. 3, 2001.

[AlMu00] M. Alexa and W. Müller, “Representinganimations by principal components”. Proc.Eurographics, 411-418. 2000.

[AlSc96] M. E. Algorri and F. Schmitt, “Meshsimplification,” in Proc. of Eurographics 96, 1996,vol. 15(3), pp. 78–86.

[Atte01] M. Attene, B. Falcidieno, M. Spagnuolo, J.Rossignac, “SwingWrapper: Retiling Triangle Meshesfor Better EdgeBreaker Compression”, Genova CNR-IMA Tech. Rep. No. 14/2001. ACM Transactions onGraphics. Volume 22, No. 4, October 2003.

[Ba&98] G. Barequet, D.Z. Chen, O. Daescu, M.T.Goodrich, and J. Snoeyink, “Efficiently approximatingpolygonal paths in three and higher dimensions,” inProceedings of the Fourteenth Annual Symposium onComputational Geometry, 1998, pp. 317–326.

[BPZ99] C. Bajaj, V. Pascucci, and G. Zhuang,“Progressive compression and transmission ofarbitrary triangular meshes,” IEEE Transactions onVisualization and Computer Graphics, October 1999.

[Chow97] M. Chow, “Optimized geometry compression forreal-time rendering,” in Proceedings of the Conferenceon Visualization ’97, pp. 347–354, 1997.

[CLR99] D. Cohen-Or, D. Levin, and O. Remez,“Progressive compression of arbitrary triangularmeshes,” IEEE Transactions on VisualizationandComputer Graphics, October 1999.

[Co&96] J. Cohen, A. Varshney, D. Manocha, G. Turk, H.Weber, P. Agrawal, F. Brooks, and W. Wright,“Simplification envelopes,” in Proc. SIGGRAPH 96,August 1996, pp. 119–128.

[CoRo02] V. Coors and J. Rossignac, “Guess Connectivity:Delphi Encoding in Edgebreaker”, GVU TechnicalReport, 2002. To appear in The Visual Computer.

[CRS98] P. Cignoni, C. Rocchini and R. Scopigno, “Metro:measuring error on simplified surfaces”, Proc.Eurographics, vol. 17(2), pp 167-174, June 1998.

[DeDe01] G. Debunne, M. Desbrun, A. H. Barr, and M.-P.Cani, “Dynamic real-time deformations using space andtime adaptive sampling,” in In ACM SIGGRAPHConference Proceedings, 2001, pp. 31–36.

[Deer95] M. Deering, “Geometry compression,” in Proc.SIGGRAPH 95, August 1995, pp. 13–20.

[Deer99] M. Deering, “Compressed geometry,” in ACMSiggraph Course Notes 22, J. Rossignac and G. Taubin,Eds, 1999, pp. 55–92.

[DLG90] N. Dyn, D. Levin, and J. A. Gregory, “A butterflysubdivision scheme for surface interpolation with tensioncontrol,” ACM Transactions on Graphics, vol. 9, no. 2,pp. 160–169, 1990.

[DLK00] W. Dong, J. Li, and C.-C. J. Kuo, “Fast meshsimplification for progressive transmission,” in IEEEInternational conference on Multimedia and Expo(ICME2000), New York, July 2000.

[DLK00b] W. Dong, J. Li, and C.-C. J. Kuo, “Progressivecompression and streaming for triangular meshes withquality control,” in SPIE’s 45th Annual meeting, theInternational Symposium on Optical Science andTechnology, San Diego, California, August 2000.

[DoPu73] D.H. Douglas and T.K. Peucker, “Algorithms forthe reduction of the number of points required torepresent a digitized line or its caricature,” CanadianCartographer, vol. 10, no. 2, 1973.

[EFF98] D. Eggert, A. W. Fitzgibbon, and R. B. Fisher,“Simultaneous registration of multiple range views foruse in reverse engineering of CAD models,” ComputerVision, Image Understanding, vol. 69, no. 3, pp.253–272, March 1998.

[ESV96] F. Evans, S. S. Skiena, and A. Varshney,“Optimizing triangle strips for fast rendering,” in IEEEVisualization ’96, 1996, pp. 319–326.

[EuTo94] D. Eu and G.T. Toussaint, “On approximation ofpolygonal curves in two and three dimensions,” CVGIP:Graphical Models and Image Processing, vol. 56, no. 3,pp. 231–246, 1994.

[FuSe93] T. Funkhouser and C. Sequin, “Adaptive displayalgorithm for interactive frame rates during visualizationof complex virtual environments,” in Computer Graphics(SIGGRAPH ’93 Proceedings), August 1993, vol. 27,pp. 247–254.

[GaHe97] M. Garland and P. Heckbert, “Surfacesimplification using quadric error metrics”, Proc. ACMSIGGRAPH'97. pp. 209-216. 1997.

[GaHe97] M. Garland and P. Heckbert, “Surfacesimplification using quadric error metrics,” inProceedings ACM SIGGRAPH, 1997, pp. 209–216.

[GaHe98] M. Garland and P. Heckbert, “Simplifying Surfaceswith Color and Texture using Quadratic Error Metric”.Proceedings of IEEE Visualization, pp. 287-295, 1998.

[Garl98] M. Garland. “Quadric-based Polygonal SurfaceSimplification”. PhD Thesis, Carnegie MellonUniversity, 1998.

[Garl99] M. Garland, “QSlim 2.0” [Computer Software].University of Illinois at Urbana-Champaign, UIUCComputer Graphics Lab, 1999.

Page 14: (Tutorial Notes) - Georgia Institute of Technologyjarek/papers/EG04.pdf(Tutorial Notes) Jarek Rossignac College of Computing, GVU Center, IRIS Cluster Georgia Institute of Technology,

Jarek Rossignac / Compressing Volumes and Animations (Tutorial Notes)

© The Eurographics Association 2004.

[GBTS99] A. Gueziec, F. Bossen, G. Taubin, and C. Silva,“Efficient Compression of Non-manifold PolygonalMeshes”. In IEEE Visualization, pp. 73–80, 1999.]

[Guez99] A. Gueziec, “Locally toleranced surfacesimplification,” IEEE Transactions on Visualizationand Computer Graphics, vol. 5, no. 2, pp. 168–189,April-June 1999.

[Gumh00] S. Gumhold, “Towards optimal coding andongoing research”, in 3D Geometry Compression,Course Notes, SIGGRAPH 2000.

[Gumh99] S. Gumhold, “Improved cut-border machine fortriangle mesh compression,” in Erlangen Workshop’99 on Vision, Modeling and Visualization. IEEESignal Processing Society, Nov. 1999.

[GuSt98] S. Gumhold and W. Straßer, “Real timecompression of triangle mesh connectivity,” inProceedings of the 25th Annual Conference onComputer Graphics, 1998, pp. 133–140.

[GuSt98] S. Gumhold and W. Straßer, “Tetrahedral meshcompression with the cut-border machine”. IEEEVisualization 1999.

[GVSS00] I. Guskov, K. Vidimce, W. Sweldens, and P.Schroeder, “Normal meshes,” in Siggraph’2000Conference Proceedings, July 2000, pp. 95–102.

[Hasl01] A. F. Hasler, “Tracking non-rigid motion and 3Dstructure of hurricanes from satellite image sequenceswithout correspondences,” IEEE Transactions onPattern Analysis and Machine Intelligence, vol. 23,no. 11, pp. 1330–1336, 2001.

[HeGa97] Paul Heckbert and Michael Garland. “Survey ofpolygonal simplification algorithms”. In Multi-resolution Surface Modeling Course. ACMSIGGRAPH Course Notes, 1997.

[HiHa93] P. Hinker and C. Hansen, “Geometricoptimization,” in Proceedings IEEE Visualization ’93,October 1993, vol. 15(3), pp. 189–195.

[Ho&93] H. Hoppe, T. DeRose, T. Duchamp, J. McDonald,and W. Stuetzle, “Mesh optimization,” in ComputerGraphics: Siggraph ’93 Proceedings, 1993, pp. 19–25.

[Hopp96] H. Hoppe, “Progressive meshes,” in ProceedingsACM SIGGRAPH’96, August 1996, pp. 99–108.

[Hopp97] H. Hoppe, “View dependent refinement ofprogressive meshes,” in Proc. SIGGRAPH 97, August1997.

[Hopp98] H. Hoppe, “Efficient implementation ofprogressive meshes,” Computers and Graphics, vol.22, no. 1, pp. 27–36, 1998.

[Hopp99] H. Hoppe, “New quadric metric for simplifyingmeshes with appearance attributes,” Proc. IEEEVisualization, 1999, pp. 59–66.

[HVW96] T. He, A. Varshney, , and S. Wang, “Controlledtopology simplification,” IEEE Transactions onVisualization and Computer Graphics, 1996.

[86 IbRo03] L. Ibarria and J. Rossignac. “Dynapack:Space-Time compression of the 3D animations oftriangle meshes with fixed connectivity”. A C MSympos. Computer Animation (SCA), 2003.

[ILRS03] L. Ibarria, P. Lindstrom, J. Rossignac and A.

Szymczak, “Out-of-core compression & decompressionof large n-dimensional scalar fields”. P r o c .Eurographics, 2003.

[IsSn00] M. Isenburg and J. Snoeylink, “Face fixer:Compressing polygon meshes with properties,” inSiggraph 2000, Computer Graphics Proceedings, 2000,pp. 263–270.

[IsSn01] M. Isenburg and J. Snoeyink, “Spirale Reversi:Reverse decoding of the Edgebreaker encoding”,Computational Geometry, vol. 20, no. 1, pp. 39-52,October 2001.

[Java99] Sun Microsystems. “Java3d API Specification”.http://java.sun.com/products/java-media/3D, June 1999.

[KaTa96] A.D. Kalvin and R.H. Taylor, “Superfaces:Polygonal mesh simplification with bounded error”.IEEE Computer Graphics and Applications, 16(3), pp.64-67, 1996.

[KiRo03] J. Kim and J. Rossignac, “Collision prediction forpolyhedra under screw motions,” ACM Symposium inSolid Modeling and Applications, pp. 4-10, June 2003.

[KiRo04] ", B.M. Kim and J. Rossignac, “CollisionPrediction”. To appear in the ASME Journal ofComputing and Information Science in Engineering(JCISE).

[KiRo99] D. King and J. Rossignac, “Guaranteed 3.67V bitencoding of planar triangle graphs”, 11th CanadianConference on Computational Geometry (CCCG'’99),pp. 146-149, Vancouver, CA, August 15-18, 1999.

[KiRo99b] D. King and J. Rossignac, “Optimal bit allocationin compressed 3D models,” Journal of ComputationalGeometry, Theory andApplications, vol. 14, no. 1-3, pp.91–118, November 1999.

[KMRS01] L. Kettner, A. Mascarenhas, J. Rossignac, and J.Snoeyink, “A prototype system for visualizing time-dependent volume data”. 17th European Workshop onComputational Geometry, pp. 13-16, 2001.

[KRS99] D. King, J. Rossignac, and A. Szymczak,“Connectivity compression for irregular quadrilateralmeshes,” Technical Report TR–99–36, GVU, GeorgiaTech, 1999.

[KRS01] L. Kettner, J. Rossignac and J. Snoeyink, “Thesafari interface for visualizing time-dependent volumedata using isosurfaces and a control plane”.Computational Geometry: Theory and Applications,2001.

[KSS00] A. Khodakovsky, P. Schroeder, and W. Sweldens,“Progressive geometry compression,” in SIGGRAPH2000, Computer Graphics Proceedings, 2000, pp.271–278.

[Le&98] A. W. F. Lee, W. Sweldens, P. Schroeder, L.Cowsar, and D. Dobkin, “MAPS: Multiresolutionadaptive parametrization of surfaces,” in SIGGRAPH’98Conference Proceedings, 1998, pp. 95–104.

[Leng99] J. Lengyel, “Compression of time dependentgeometry,” in Symposium on Interactive 3D Graphics,1999, pp. 89–95.

[Li&96] P. Lindstrom, D. Koller, W. Ribarsky, L. Hodges,and N. Faust G. Turner, “Real-time, continuous level of

Page 15: (Tutorial Notes) - Georgia Institute of Technologyjarek/papers/EG04.pdf(Tutorial Notes) Jarek Rossignac College of Computing, GVU Center, IRIS Cluster Georgia Institute of Technology,

EUROGRAPHICS 2004 Tutorial

© The Eurographics Association 2004.

detail rendering of height fields,” in Proc. SIGGRAPH96, August 1995, pp. 109–118.

[LiKu98] J. Li and C.C Kuo, “Progressive coding of 3Dgraphic models,” in Proceedings of the IEEE, June1998, pp. 1052–1063.

[Lind00] P. Lindstrom, “Out-of-core simplification ofLarge Polygonal Models”. Proc. ACM SIGGRAPH,pp. 259-262, 2000.

[LiTu98] P. Lindstrom and G. Turk, “Fast and memoryefficient polygonal simplification,” in Proceedings ofIEEE Visualization’98, 1998, pp. 27–9–286.

[Lo&02] H. Lopes, J. Rossignac, A. Safanova, A.Szymczak and G. Tavares. “A Simple CompressionAlgorithm for Surfaces with Handles”, ACMSymposium on Solid Modeling, Saarbrucken. June2002.

[Loop94] C. Loop, “Smooth Spline Surfaces over IrregularMeshes” , Computer Graphics, Vol. 28, NumberAnnual Conference Series, pp. 303-310, July 1994.

[LoTa97] K-L. Low and T.S. Tan, “Model Simplificationusing vertex clustering”, Proc. Symp. Interactive 3DGraphics, ACM Press, NY, pp. 75-82, 1997.

[Lu&02] D. Luebke, M Reddy, J. Cohen, A. Varshney, B.Watson, R. Hubner, “Levels of Detail for 3DGraphics”, Morgan Kaufnamm, 2002.

[Lueb98] D. P. Luebke, “View-dependent simplification ofarbitrary polygonal environments”, DoctoralDissertation, University of North Carolina at ChapelH i l l , 1 9 9 8 .http://www.cs.virginia.edu/~luebke/simplification.html.

[LuEr97] D. Luebke and C. Erikson, “View-dependentsimplification of arbitrary polygonal environments,” inProceedings ACM Siggraph, Los Angeles, 1997, pp.199–208.

[MPEG01] ISO/IEC 14496-2, “Coding of Audio-VisualObjects: Visual”, July 2001.

[OBHo99] J. O'Brien and J. Hodgins, “Graphical modelingand animation of brittle fracture”. Proc. ACMSIGGRAPH, pp. 137-146. 1999.

[PaRo00] R. Pajarola and J. Rossignac, “Compressedprogressive meshes,” IEEE Transactions onVisualization and Computer Graphics, vol. 6, no. 1,pp. 79–93, 2000.

[PaRo00b] R. Pajarola and J. Rossignac, “Squeeze: Fastand progressive decompression of triangle meshes,” inProceedings of Computer Graphics InternationalConference, 2000, pp. 173–182.

[PoHo97] J. Popovic and H. Hoppe, “Progressive simplicialcomplexes,” Computer Graphics, vol. 31, pp.217–224, 1997.

[PoSc99] K. Polthier, M. Schmies, “Geodesic Flow onPolyhedral Surfaces”, Procs. of EurographicsWorkshop on Scientific Visualization, Vienna 1999.

[PRS99] R. Pajarola, J. Rossignac, and A. Szymczak,“Implant Sprays: Compression of ProgressiveTetrahedral Mesh Connectivity”, IEEE Visualization1999, San Francisco, October 24-29, 1999.

[PuSc97] E. Puppo and R. Scopigno, “Simplification, LODand multiresolution: Principles and applications”,Tutorial at the Eurographics’97 conference, Budapest,Hungary, September 1997.

[QiTe95] H. Qin and D. Terzopoulos. “Dynamic manipulationof triangular B-splines”. Proc. of the Third Symposiumon Solid Modeling and Applications, 351-360. 1995.

[RoBo93] J. Rossignac and P. Borrel, “Multi-resolution 3Dapproximations for rendering complex scenes”,Geometric Modeling in Computer Graphics, SpringerVerlag, Berlin, pp. 445-465, 1993.

[RoCa99] J. Rossignac and D. Cardoze, “Matchmaker:Manifold Breps for non-manifold r-sets”, Proceedings ofthe ACM Symposium on Solid Modeling, pp. 31-41,June 1999.

[RoKi01] J. Rossignac and J. Kim, “Computing andvisualizing pose-interpolating 3-D motions,” Computer-Aided Design, vol. 33, no. 4, pp. 279–291, April 2001.

[RoRe84] J. Rossignac and A. Requicha, “Constant-radiusblending in solid modeling,” ASME Computers InMechanical Engineering (CIME), vol. 3, pp. 65–73,1984.

[RoRe86] J. Rossignac and A. Requicha, “Offsettingoperations in solid modelling,” Computer-AidedGeometric Design, vol. 3, pp. 129–148, 1986.

[RoRe97] J. Rossignac and A. Requicha, “Piecewise-circularcurves for geometric modeling,” IBM Journal ofResearch and Development , vol. 13, pp. 296–313, 1987.

[RoRo96] R. Ronfard and J. Rossignac, “Full rangeapproximation of triangulated polyhedra”, Proc.Eurographics 96, 15(3), pp. 67-76, 1996.

[Ross00] J. Rossignac, “3D compression and progressivetransmission,” in Lecture at the ACM SIGGRAPHconference, July 2-28 2000, pp. 123–132.

[Ross99] J. Rossignac, “Edgebreaker: Connectivitycompression for triangle meshes,” IEEE Transactions onVisualization and Computer Graphics, vol. 5, no. 1, pp.47–61, 1999.

[RoSz99] J. Rossignac and A. Szymczak, "Wrap&Zipdecompression of the connectivity of triangle meshescompressed with Edgebreaker", ComputationalGeometry, Theory and Applications, 14(1/3), 119-135,November 1999.

[RSS01] J. Rossignac, A. Safonova, and A. Syzmczak, "3DCompression Made Simple: Edgebreaker on a Corner-Table", Invited lecture at the Shape ModelingInternational Conference, Genoa, Italy, May 2001.

[RSS02] J. Rossignac, A. Safonova, A. Szymczak“Edgebreaker on a Corner Table: A simple technique forrepresenting and compressing triangulated surfaces”, inHierarchical and Geometrical Methods in ScientificVisualization, Farin, G., Hagen, H. and Hamann, B., eds.Springer-Verlag, Heidelberg, Germany, 2002.

[SaDa99] E. Saux and M. Daniel, “Data reduction ofpolygonal curves using B-splines,” Computer AidedDesign, vol. 31, no. 8, pp. 507–515, 1999.

[Salo00] D. Salomon, “Data Compression: The CompleteReference”. Second Edition, Springer Verlag BerlinHeidelberg. 2000.

Page 16: (Tutorial Notes) - Georgia Institute of Technologyjarek/papers/EG04.pdf(Tutorial Notes) Jarek Rossignac College of Computing, GVU Center, IRIS Cluster Georgia Institute of Technology,

Jarek Rossignac / Compressing Volumes and Animations (Tutorial Notes)

© The Eurographics Association 2004.

[SaPe96] A. Said and W. A. Pearlman, “A new, fast, andeffcient image codec based on set partitioning inhierarchical trees,” IEEE Trans. Circuits Syst. VideoTechnol., vol. 6, no. 3, pp. 243–250, June 1996.

[SaRo02] A. Safonova and J. Rossignac, Source code foran implementation of the Edgebreaker compressiona n d d e c o m p r e s s i o nwww.gvu.gatech.edu/~jarek/edgebreaker/eb

[SaRo02b] A. Safonova and J. Rossignac, “Compressedpiecewise circular approximation of 3D curves,”Computer-Aided Geometric Design (to appear), 2002.

[Schi98] M. Schindler, “A fast renormalization forarithmetic coding,” in Proceedings of IEEE DataCompression Conference, 1998, p. 572.

[Schr97] W. Schroeder, “Atopology modifying progressivedecimation algorithm,” in Multiresolution SurfaceModeling Course, ACM Siggraph Course notes 25,Los Angeles, 1997.

[SKR00] A. Szymczak, D. King, and J. Rossignac, “AnEdgebreaker-based efficient compression scheme forregular meshes,” in Proceedings of 12th CanadianConference on Computational Geometry, 2000, pp.257–264.

[SKR00b] A. Szymczak, D. King, J. Rossignac, “AnEdgebreaker-based Efficient Compression Scheme forConnectivity of Regular Meshes”, Journal ofComputational Geometry: Theory and Applications,2000.]

[SRK02] A. Szymczak, J. Rossignac, and D. King.“Piecewise Regular Meshes: Construction andCompression.” To appear in Graphics Models, SpecialIssue on Processing of Large Polygonal Meshes, 2002.

[SzRo00] A. Szymczak and J. Rossignac. "Grow&Fold:Compressing the connectivity of tetrahedral meshes",Computer-Aided Design. 32(8/9), 527-538,July/August, 2000.

[SzRo99] A. Szymczak and J. Rossignac. "Grow&Fold:Compression of Tetrahedral Meshes", Proc. ACMSymposium on Solid Modeling, June 1999, pp. 54-64.

[Szym02] A. Szymczak, “Optimized edgebreaker encodingfor large and regular meshes,” in Proc. DataCompression Conference, 2002, p. 472.

[TaRo96] G. Taubin and J. Rossignac, “GeometricCompression through Topological Surgery”. IBMResearch Report RC-20340. January 1996.(http://www.watson.ibm.com:8080/PS/7990.ps.gz).

[TaRo98] G. Taubin and J. Rossignac, “Geometriccompression through topological surgery,” ACMTransactions on Graphics, vol. 17, no. 2, pp. 84–115,1998.

[TGHL97] G. Taubin, A. Gueziec, W. Horn, and F.Lazarus, “Progressive forest split compression,” inProc. SIGGRAPH 98, July 1997, pp. 123–132.

[THLR98] G. Taubin, W. Horn, F. Lazarus, and J. Rossignac,“Geometry coding and VRML,” Proceeding of the IEEE,vol. 96, no. 6, pp. 1228–1243, June 1998.

[ToGo98] C. Touma and C. Gotsman, “Triangle meshcompression,” in Graphics Interface, 1998, pp. 26–34.

[Tura84] G. Turan, “On the succinct representations ofgraphs,” Discrete Applied Mathematics, vol. 8, pp.289–294, 1984.

[Turk92] G. Turk, “Retiling polygonal surfaces”, Proc. ACMSIGGRAPH 92, pp. 55-64, July 1992.

[Tutt62] W. Tutte, “A census of planar triangulations”,Canadian Journal of Mathematics, pp.21-38, 1962.

[Va&03] S. Valette, J. Rossignac, R. Prost. “An efficientsubdivision inversion for Wavemesh-based progressivecompression of 3d triangle meshes”, Submitted forpublication. 2003.

[Vale02] S. Valette “Modeles de maillage deformables 2D etmultiresolution surfacique 3D sur une based’ondelettes”. Doctoral Dissertation. January 2002.INSA Lyon.

[VaPr02] S. Valette and R. Prost, “A Wavelet-basedProgressive Compression Scheme for Triangle Meshes:Wavemesh”, submitted for publication, September,2002.

[VOH01] S. Varakliotis, J. Ostermann, and V. Hardman,“Coding of animated 3-D wireframe models for internetstreaming applications,” in International Conference onMultimedia and Expo 2001, 2001, pp. 353–356.

[VRML97] ISO/IEC 14772-1, The Virtual Reality ModelingLanguage (VRML), 1997.

[XiVa96] J. Xia and A. Varshney, “Dynamic view-dependentsimplification for polygonal models,” in Proceedings ofIEEE Visualization’96, 1996, pp. 327–334.

[YaDu96] S.N. Yang and W.C. Du, “Numerical methods forapproximating digitized curves by piecewise circulararcs,” Journal of Computational andAppliedMathematics , vol. 66, pp. 557–569, 1996.

[YKK01] Z. Yan, S. Kumar, and C.-C. J. Kuo, “Error resilientcoding of 3-D graphic models via adaptive meshsegmentation,” IEEE transactions on circuits andsystemsfor video technology, vol. 11, no. 7, July 2001.

[ZSL92] J. Zarge W. Schroeder and W.E. Lorensen,“Decimation of triangle meshes,” in Proc. ACMSIGGRAPH 92, July 1992, pp. 65–70.

[ZSP01] Y. Zhang, E. Sung, and E. C. Prakash, “Adaptivesimulation of facial expressions,” in InternationalConference on Multimedia and Expo 2001, 2001, pp.1072–1075.

[ZSS96] D. Zorin, P. Schroeder, and W. Sweldens,“Interpolating subdivision for meshes with arbitrarytopology,” Computer Graphics, vol. 30, pp. 189–192,1996.