PROGRESSIVE COMPRESSION OF TRIANGULAR MESHES

Abstract: A method of compressing and reconstructing a mesh (10) representation of an object. Selected vertices (12, 16) and the associated edges (14) are removed from the mesh (10) and the resulting holes are patched with triangles. For each patch, an approximation of the removed vertex is computed and the difference between the removed vertex and its approximation is saved. In addition, the patch triangles are color-coded. This compression algorithm is iterated as needed. To reconstruct the original mesh (10) representation, for each patch, the approximation of the removed vertex is computed, the difference between the approximation and the removed vertex is computed to reconstruct the vertex (12 or 16), and the reconstructed vertex is connected to the vertices of the patch to reconstruct the removed edges (14).

Description: PROGRESSIVE COMPRESSION OF TRIANGULAR MESHES FIELD AND BACKGROUND OF THE INVENTION The present invention relates to compact representation of 3D geometric models and, more particularly, to a progressive mesh compression and reconstruction method. The most common representation of 3D geometric models is triangular meshes. Although they have had prominent representation in computer graphics for a long time, only recently has more attention been devoted to their compression. With the increasing popularity of Web-based applications, compression and streaming techniques are today more important than ever. The rich knowledge available for data compression, and in particular for images, cannot be directly applied to triangular meshes, mainly because arbitrary triangular meshes have no regular structure, as is the case in image data for example. Mesh compression algorithms are required to compress both the geometry data and the connectivity data. The geometry is represented by the set of coordinates of the mesh's vertices. To enable effective compression of the geometry, the coordinate values are first quantized to a fixed number of bits. The connectivity data is the vertex/triangle adjacency list, sometimes also referred to as the topology. In a naive representation, the connectivity data is about twice as large as the geometry data. Mesh compression algorithms are normally required to use a lossless compression of the connectivity data. Current mesh compression methods are based on the triangle-strips technique, in which the triangular mesh is traversed along sequences of triangles, which look like peeled strips. The vertices along the strips are encoded as displacement vectors from a point extrapolated from previous vertices along the strips. C. Touma and C. Gotsman, in "Triangle mesh compression", Graphics Interface '98, pp. 26-34, June 1998, and independently Jarek Rossignac, in "Edgebreaker: Compressing the incidence graph of triangle meshes", Technical Report GIT-GNU-98-17, Georgia Institute of Technology Washington, July 1998, developed methods that compress the connectivity data to less than 2 bits per vertex on average. However, a successful compression of the connectivity alone is not enough because then the compression of geometric data dominates the results. Indeed, M. Denny and C. Sohler, in "Encoding a triangulation as a permutation of its point set", Canadian Conference on Computational Geometry, pp. 39-43 (1997), have shown that the connectivity of a given graph can be encoded in zero bits by a permutation of a sufficiently large set of vertices. This is an interesting theoretical result; encoding an arbitrary permutation of coordinates is, however, too expensive for a space-efficient encoding of a mesh. Current mesh compression methods are basically "flat", or can be applied to refine one discrete level of detail to the next. They do not have the desired property of a progressive mesh, in which every prefix of the encoded data is a progressive approximation of the original 3D shape. The progressiveness property is important to compensate for low network bandwidth and transmission latency. The compression method of the present invention is based on a multiresolution decomposition, which inherently has a progressive property. However, unlike the progressive meshes, here the size of the data that is required to faithfully recover the original mesh is comparable to any known technique of mesh compression. Recently, Renato Pajarola and Jarek Rossignac ("Compressed progressive meshes", Technical Report GIT-GNU-99-05, Georgia Institute of Technology Washington, 1999) have developed a new progressive meshes technique, where a batch of vertex-split operations are encoded efficiently to yield a compressed progressive mesh representation. Multiresolution analysis and wavelets have matured as a versatile tools for representing functions and analyzing features at multiple levels of detail. In recent years they have gained attention in the computer graphics community, among various applications, also as a mechanism to analyze 3D meshes. The basic idea is to recursively filter, or decompose a given shape into a lower resolution segment and a higher resolution detailed segment (known as detail coefficients). The motivation is that the low-resolution coarser versions of the shape are a good approximation of the original shape, while the detail coefficients locally perturb the shape to contribute the small details. If the decomposition is successful, many of the detail coefficients are small and their contribution to the final shape is minor. Many image compression methods are based on a thresholding scheme that eliminates the insignificant detail coefficients. Multiresolution analysis methods for the compression of 3D meshes have been applied only in terms of the number of triangles representing the mesh at various levels of detail. However, lossless compression methods of 3D meshes, which compress in terms of the total number of bits required to represent the mesh, have not been reported. The present invention includes a multiresolution analysis for which the representation of a given mesh is compact at every level of detail, and in particular for the original mesh. Traditional wavelets are constructed over regular structures. The construction of wavelets over arbitrary meshes is currently an interesting challenge [10]. Pioneering work by Michael Lounsbery, Tony D. DeRose and Joe Warren ("Multiresolution analysis for surfaces of arbitrary topological type", ACM Transactions on Graphics, Vol. 16 No. 1 pp. 34-73, January 1997) introduced subdivision wavelets defined over arbitrary surfaces, but require the mesh to have a subdivision connectivity. To overcome this prerequisite, M. Eck et al., "Multiresolution analysis of arbitrary meshes", SIGGRAPH 95 Conference Proceedings, pp. 173-182, ACM SIGGRAPH, 1995, and recently also A. F. W. Lee et al., "Maps: multiresolution adaptive parametrization of surfaces", Computer Graphics Proceedings (SIGGRAPH 98), pp. 95-104 (1998), have developed remeshing techniques by which an arbitrary mesh can be retriangulated into a subdivision connectivity, where the refined mesh is guaranteed to converge to the original shape within a specified tolerance. Yet, this two-step technique does not provide the means to fully restore the original mesh. It should be emphasized that mesh compression techniques are required to restore the original connectivity. Indeed, most of the efforts of the mesh compression methods have been invested in a compact encoding of the unstructured connectivity of the triangulation. SUMMARY OF THE INVENTION According to the present invention there is provided a method for compressing and reconstructing a mesh representation of an object, the mesh representation including a plurality of mesh vertices connected by edges, the method including the steps of:(a) selecting at least one mesh vertex to be removed from the mesh; (b) for each selected vertex, computing an approximation of the selected vertex and a difference between the approximation and the selected vertex; (c) removing, from the mesh representation, the at least one selected vertex and the edges whereto the at least one selected vertex is connected, thereby creating, for each selected vertex, a hole in the mesh representation, the hole including a plurality of hole vertices; and (d) triangulating each at least one hole, thereby replacing each at least one hole with a corresponding patch, and thereby producing a compressed mesh. According to the present invention there is provided a method of compressing a mesh representation, of an object, that is to be transmitted from a server to a client, the mesh representation including a plurality of mesh vertices connected by edges, the method including the steps of: (a) selecting at least one mesh vertex to be removed from the mesh; (b) for each selected vertex, computing an approximation of the selected vertex and a difference between the approximation and the selected vertex; (c) removing, from the mesh representation, the at least one selected vertex and the edges whereto the at least one selected vertex is connected, thereby creating, for each selected vertex, a hole in the mesh representation, the hole including a plurality of hole vertices; and (d) triangulating each at least one hole, thereby replacing each at least one hole with a corresponding patch, and thereby producing a compressed mesh. The present invention is a lossless compression method based on a multiresolution decomposition where the detail coefficients have a compact representation and thus smaller entropy than the original mesh. Similarly to L. Kobbelt et al, "Interactive multi-resolution modeling on arbitrary meshes", SIGGRAPH 98 Conference Proceedings, pp. 105-14, ACM SIGGRAPH, July 1998, the present invention uses a hierarchical simplification scheme, which generates a multiresolution model of the given triangular mesh. By reversing the process a hierarchical progressive refinement process is defined, where a simple prediction plus a correction is used for reconstructing vertices to form a finer level. Furthermore, the connectivity of triangulation is encoded efficiently and recovered incrementally during the progressive reconstruction of the original mesh. Assume that we start with an abstract set M n of samples. The set can be partitioned into two sets M n _, and W„, which are referred to as wavelet subsets. By assembling the two subsets, the original set M n can be recovered. Using the correlation that exists in the set, one can try to predict the set W n , using an abstract predictor P, in the hope that P(M n .,) is close to W„. Then, we can define new wavelet coefficients as the difference set w n = W n -P(M n .j) Now, the original set M n is reassembled by By iterating this process the original set can be represented by the set {M Q ,w_...w n }. If the prediction is successful, the coefficients w„ have a small magnitude and the new representation has a smaller entropy than the representation of the original set M„ Such a prediction technique is used as one of the building blocks in W. Sweldens, "The lifting scheme: a new philosophy in biorthogonal wavelet constructions", Wavelet Applications in Signal and Image Processing III, pp. 68-79, Proc. SPIE 2569, 1995, as well as in multigrid methods. Assuming the original mesh has a subdivision connectivity, different subdivision schemes can be used as good prediction operators. The original mesh Mn can be decomposed into M n _j and W n by applying a decimation algorithm over its vertices, where W n consists of the set of removed vertices, and M n _, is the simplified mesh. Then by interpolating over the triangles of M n _, we create a set of points P(c), which serves as a prediction for the set W n . The displacement vectors between the removed vertices and the interpolated points are the shorter coefficients w„ The key idea is to construct a multiresolution of an arbitrary mesh with irregular connectivity. Unlike traditional wavelets, here the domain is unstructured, and therefore the refinement is not applied uniformly during the reconstruction stage. An interpolation scheme predicts a point to which we add a displacement vector to recover a vertex ?. This new vertex is inserted into the triangulation while restoring its connectivity in M l+ _. Note that recovering the original connectivity is necessary to correctly decode the data encoded over the representation of M l+ _. This is made clearer below where we show how to encode and decode a given mesh. BRIEF DESCRIPTION OF THE DRAWINGS The invention is herein described, by way of example only, with reference to the accompanying drawings, wherein: FIG. 1 illustrates the 4-color encoding scheme of the present invention; FIGs. 2 and 3 illustrate the 2-color encoding technique of the present invention; FIG. 4 illustrates the prediction of the vertex corresponding to a patch; FIG. 5 illustrates the first four steps of progressive compression of a 3D mesh; FIG. 6 illustrates four more initial 3D meshes; FIG. 7 illustrates a system to which the present invention may be applied. DESCRIPTION OF THE PREFERRED EMBODIMENTS The present invention is of a progressive compression and reconstruction method which can be used to compress and reconstruct 3D triangular meshes with no loss of information. The principles and operation of mesh compression and reconstruction according to the present invention may be better understood with reference to the drawings and the accompanying description. The series of vertex insertion operations, which reconstruct a given mesh, is found by reversing a mesh decimation procedure. Given a mesh M_ we apply a simplification algorithm that iteratively removes sets of vertices u l to yield a simplified version M___. However, at each iteration the selected set u, must be an independent set, that is, there is no edge connecting any two vertices in u_ Removing a vertex from a triangulation requires removing all the edges connected to the vertex and retriangulating the hole with a new set of triangles. Let us define the triangles that cover a given hole as a patch. Once all the holes are triangulated, patches are interpolated to predict a set of points, which serves as a base for the displacement vector to the removed vertices. The predicted points are quantized so the displacement vectors can be represented by a small number of bits, with smaller entropy than the original vertices. For each patch, one displacement vector is stored. The key idea is to encode the triangles of a patch by means of coloring them, such that the decoder can detect the patches during the reconstruction stage based on the triangle colors. Thus, adjacent patches cannot be assigned the same color, where two patches are said to be adjacent if they share an edge. The triangles of M_ are recursively traversed and each patch is assigned a color that is different from the colors assigned to its adjacent patches. Because the patches do not tessellate the entire mesh, we use a null color for the triangles that are not included in any patch. The rest of the triangles are colored in only three colors. Referring now to the drawings, Figure 1A shows a mesh 10 of vertices 12 connected by edges 14. To compress mesh 10, selected vertices 16 and the edges 14 that are attached thereto are removed, and the resulting holes are filled by triangulated patches 18, as shown in Figure IB. Three colors are not always enough, but in practice such cases are rare, and can be avoided by giving up the removal of some vertices. The coloring technique illustrated in Figure 1 requires 2 bits per triangle. Thus, the cost of encoding a vertex is the cost of coloring the triangles of the patch created by its removal. Assuming the degree of a vertex is 6, then its removal requires coloring four triangles, that is, 8 bits per vertex removal. Note that there is some overhead because some triangles are not included in any patch. To reduce this overhead, when selecting the vertices to be removed we strive to create a maximal independent set. The above coloring technique can be improved by triangulating the patches by a dependent triangulation that can be encoded with only one bit per triangle. As shown in Figures 2A and 2B, a hexagonal patch 20 (the most popular patches in common triangulation) is triangulated by the three edges 22 of the shape of the letter Z. Then the two middle triangles 24 of patch 20 are encoded with a '1' bit (shaded) and the two external triangles 26 with a '0' bit (unshaded). Pentagons are triangulated with three triangles where the middle one is encoded with a T and the others two with a '0'. Here the middle triangle T m must be selected such that the two other triangles share a vertex with the smallest angle in T m As shown in Figure 2C, for an n-gon 30 the concept is the same; the sequences of "alternating' triangles 32 are colored with 'l's and the two externals 34 with 'O's. While encoding adjacent patches we need to avoid edge- adjacent '1 '-encoded triangles. Recovery of the patches is guaranteed since the sequence of adjacent 'l's has a known shape, from which the two external 'O'-encoded triangles are uniquely recovered and, as a consequence, the boundary of the patch is also uniquely recovered. Note that with this technique, a quadrilateral cannot be encoded. However, this encoding requires only one bit per triangle. Figure 3 illustrates a 2-coloring (light gray and dark gray) of mesh 10. A sequential order of the triangles of , is defined by a breadth- first traversal of the triangles. One bit is associated with each triangle and stored in a binary vector, which represents the colors of the triangles. The length of the vector is [M_ ] the number of triangles of the mesh, M_. The vector is then compressed by some lossless compression technique. The preferred lossless compression technique is an LZ encoder. During reconstruction, for each recovered patch we remove its triangles and predict the location of the vertex that was removed when the patch was created. By adding the associated displacement vector to the predicted point, the original location of the vertex is recovered. Then we simply connect the vertices of the patch to the inserted vertex. Given a patch the prediction operator predicts the location of a new vertex based on the known vertices of the patch {v_} and their immediate neighbors. Lacking any prior knowledge, the best guess is to assume the surface to be smooth and use a prediction based upon a local polynomial interpolant with respect to a local reference plane. The basic idea is illustrated in Figure 4; let v c = —Y\" v, and let R be the n '- 1 predicted point "above" v c . If the encoded vertex v is indeed closer to c than to v c , then encoding v-R is better than v-v c . However, this is not necessarily the case. Assume the patch has a diameter h and the surface is locally smooth, \\P-v c \\=0(h ), while ||v-R|| as well as ||v-v c || is 0(h). Therefore, the prediction of the polynomial interpolant does not pay off whenever h is either small or large. Because the decompression time is an important factor, we make a simple and effective prediction by means of v c . As discussed above, the patches can be colored by using either four colors or two. The 4-color technique requires 2 bits per triangle and the 2-color technique only 1 bit per triangle. Denoting by m the number of bits used to color the triangles, the cost of encoding a d- vertex is m(d-2) bits, because the patch created by removing a d- degree vertex consists of only d-2 triangles. Using the 2-color technique, the removal of a 6-degree vertex requires 4 bits, and a 5-degree vertex only 3 bits. From the Euler formula we know that the average of the degrees is always close to six. However, the distribution of the vertex's degrees can vary. If the mesh of a given level of detail consists mainly of vertices of degree 5 and higher, the 2-color technique is very effective. However, if the mesh consists mainly of vertices of degree 4 and 3, the 4-color technique is more effective since the 2-color technique cannot be applied to low degree vertices. On the other hand, because the patches created by the removal of low degree vertices consists of one or two triangles only, the cost of 2 bits per triangle means that the cost of encoding the insertion is only 2-4 bits. Thus, roughly speaking, if the mesh consists of either 5-6 degree vertices or 3-4 degree vertices, the encoding of the connectivity requires no more than 4 bits per vertex. Because the independence set is not optimal, there are many triangles that are not included in any of the patches. Thus, in practice the cost is higher than 4 bits per vertex. In any case the stream of bits that colors the mesh is further compressed by an LZ encoder. In the preferred implementation the coloring technique is selected according to the distribution of degrees in the given level of detail. Figure 5 shows the coloring of the first four intermediate levels of the progressive compression of a mesh that defines a typical 3D object. The first two levels use a 4-coloring, because most of the vertices are of degree three or four. The second two levels use a 2-coloring. The 2-coloring encoding technique of the present invention requires only one bit per triangle. However, in terms of the number of bits per vertex the cost is at least 4 bits per vertex, or 2 bits per triangle. Note that the number of triangles in the entire hierarchy is about three times the number of triangles in the original mesh. This cost is about that reported by Gabriel Taubin et al., "Progressive forest split compression", SIGGRAPH 98 Conference Proceedings, pp. 123-132, ASM SIGGRAPH, July 1998, almost twice more than reported by C. Touma and C. Gotsman, "Triangle mesh compression", Graphics Interface '98, pp. 26-34, June 1998, and eight times better than the cost of a vertex split of the progressive mesh of Hugues Hoppe, "Progressive meshes", SIGGRAPH 96 Conference Proceedings, pp. 99-108, August 1996. Regarding the compression of geometry, the stream of the displacement preferably is encoded using Huffman encoding. We have tested the results with 12-bit precision per coordinate. The following tables compare our results with those of Touma and Gotsman's technique, which are the best published so far, for the 3D meshes illustrated in Figures 5 and 6. Table 1 : connectivity compression results Table 2: Compression results On average our results are only about 8% higher than those achieved by Touma and Gotsman. It should be emphasized that the exact compression values are dependent on the specific implementation of the Huffman encoder. However, we believe that the exact compression ratios are not crucial as the superiority of our technique is in its progressiveness. We should emphasize that with respect to the original VRML models, Touma and Gotsman's and our technique achieve an average of 3.1% and 3.4% compression ratios, respectively. Figure 7 illustrates a system in which the present invention is particularly useful. A server 50 stores representations of 3D objects as triangular meshes and transmits these representations to a client 52 over a communications line 54 that suffers from low bandwidth and/or high transmission latency. For example, the 3D objects, whose representations are stored in server 50, may be sculptures in a virtual museum. The user of client 52 wishes to perform an interactive walkthrough of the museum. This is done by changing the viewpoint of client 52. As a new sculpture comes into view, server 50 compresses the triangular mesh representation of the new sculpture, following the principles of the present invention. Server 50 then transmits the compressed representation to client 52, and client 52 reconstructs the full triangular mesh representation from the compressed representation, also following the principles of the present invention. The progressive nature of the present invention is particularly advantageous in this regard. Server 50 transmits the compressed representation of the sculpture in the order {M 0 ,w_,w 2 ,...}, i.e., in order of increasing resolution. Client 52 first receives the lowest resolution of the sculpture, set 0 , and displays a low resolution representation of the sculpture based on 0 . As successive difference sets w, arrive at client 52, client 52 adds these difference sets to its representation of the sculpture and displays the sculpture at successively higher resolutions. The lowest resolution is adequate for a realistic rendition of the sculpture when the sculpture first comes into view. By the time a more realistic rendition of the sculpture is needed, sufficient difference sets w_ have arrived at client 52 to enable client 52 to render the sculpture at the necessary level of resolution. While the invention has been described with respect to a limited number of embodiments, it will be appreciated that many variations, modifications and other applications of the invention may be made.

Claims: WHAT IS CLAIMED IS: 1. A method for compressing and reconstructing a mesh representation of an object, the mesh representation including a plurality of mesh vertices connected by edges, the method comprising the steps of: (a) selecting at least one mesh vertex to be removed from the mesh; (b) for each said selected vertex, computing an approximation of said each selected vertex and a difference between said approximation and said each selected vertex; (c) removing, from the mesh representation, said at least one selected vertex and the edges whereto said at least one selected vertex is connected, thereby creating, for each said selected vertex, a hole in the mesh representation, said hole including a plurality of hole vertices; and (d) triangulating each said at least one hole, thereby replacing each said at least one hole with a corresponding patch, and thereby producing a compressed mesh. 2. The method of claim 1, wherein a plurality of mesh vertices are selected for removal, and wherein said selected vertices are mutually independent. 3. The method of claim 1, wherein each said patch includes a plurality of patch triangles, the method further comprising the step of: (e) labeling each said patch triangle with a respective color. 4. The method of claim 3, wherein each said respective color is represented by at most two bits. 5. The method of claim 4, wherein each said respective color is represented by a single bit. 6. The method of claim 1, wherein said selecting, said computing, said removing and said triangulating are iterated at least twice. 7. The method of claim 1, further comprising the step of: (e) reconstructing the mesh representation from said compressed mesh by: (i) for each said patch: (A) computing said approximation of said corresponding selected vertex; and (B) adding said difference to said approximation to recover said corresponding selected vertex. 8. The method of claim 7, further comprising the step of: (ii) for each said patch, connecting said corresponding selected vertex to corresponding said hole vertices, thereby recovering said edges whereto said corresponding selected vertex is connected. 9. The method of claim 1, wherein, for each said selected vertex, said approximation is an average of corresponding said hole vertices. 10. A method of compressing a mesh representation, of an object, that is to be transmitted from a server to a client, the mesh representation including a plurality of mesh vertices connected by edges, the method comprising the steps of: (a) selecting at least one mesh vertex to be removed from the mesh; (b) for each said selected vertex, computing an approximation of said each selected vertex and a difference between said approximation and said each selected vertex; (c) removing, from the mesh representation, said at least one selected vertex and the edges whereto said at least one selected vertex is connected, thereby creating, for each said selected vertex, a hole in the mesh representation, said hole including a plurality of hole vertices; and (d) triangulating each said at least one hole, thereby replacing each said at least one hole with a corresponding patch, and thereby producing a compressed mesh.

Inventors: COHEN-OR DANIEL, REMEZ OFFIR, COHEN-OR, DANIEL, REMEZ, OFFIR
Applicants: COHEN OR DANIEL, REMEZ OFFIR, UNIV RAMOT, COHEN-OR, DANIEL, RAMOT UNIVERSITY AUTHORITY FOR APPLIED RESEARCH AND INDUSTRIAL DEVELOPMENT LTD., REMEZ, OFFIR
Application year: 2000
Main classification: G06F
IPC codes: G06T9, G06T17, H04N7