WO2004040517A1 - Method and system of encoding the connectivity of a triangle mesh - Google Patents

Method and system of encoding the connectivity of a triangle mesh Download PDF

Info

Publication number
WO2004040517A1
WO2004040517A1 PCT/EP2003/003070 EP0303070W WO2004040517A1 WO 2004040517 A1 WO2004040517 A1 WO 2004040517A1 EP 0303070 W EP0303070 W EP 0303070W WO 2004040517 A1 WO2004040517 A1 WO 2004040517A1
Authority
WO
WIPO (PCT)
Prior art keywords
connectivity
triangle
vertex
triangles
predicted
Prior art date
Application number
PCT/EP2003/003070
Other languages
French (fr)
Inventor
Volker Coors
Jarek Rossignac
Original Assignee
Fraunhofer Gesellschaft zur Förderung der angewandten Forschung e.V.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fraunhofer Gesellschaft zur Förderung der angewandten Forschung e.V. filed Critical Fraunhofer Gesellschaft zur Förderung der angewandten Forschung e.V.
Priority to AU2003223984A priority Critical patent/AU2003223984A1/en
Priority to DE10393630T priority patent/DE10393630B4/en
Publication of WO2004040517A1 publication Critical patent/WO2004040517A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/001Model-based coding, e.g. wire frame

Definitions

  • the present invention relates to a method and system of encoding the connectivity of a triangle mesh used for viewing, transmitting or storing of graphical 3D models, wherein all triangles of the mesh are traversed one at a time by walking from a previously visited triangle to one of its not yet visited neighbours as the next triangle through their common edge while determining the connectivity of said next traversed triangle.
  • 3D graphics plays an increasingly important role in applications where 3D models are accessed through the internet. Due to improved design and model acquisition tools, to the wider acceptance of this technology, and to the need for higher accuracy, the number and complexity of these models are growing faster than network bandwidth. Consequently, it is imperative to continue increasing the terseness of 3D data transmission formats.
  • a triangle mesh may be represented by its vertex data and by its connectivity. It may be used directly as a polyhedral surface or as a coarse mesh controlling a subdivision surface.
  • Most compression techniques separate the encoding of the connectivity information (triangle/vertex incidence) from the geometry information (vertex coordinates, and possibly their color or normal attributes) .
  • connectivity information triangle/vertex incidence
  • geometry information vertex coordinates, and possibly their color or normal attributes
  • lossless connectivity encoding has received over the last few years a significant amount of attention because of its practical importance for the transmission of 3D models.
  • the reduction of the number of bits per triangle remains the primary objective in this field.
  • single-resolution encoding retains its strategic importance, because in most situations we know ahead of time that either the full resolution model or the coarse starting point of a progressive model must be transmitted and because they can be more effectively encoded as single-resolution models than as progressive ones.
  • the connectivity of a "simple" mesh - defined as a connected, zero-genus, manifold triangle mesh - may be stored as a sequence of t triangle descriptors, each triangle been represented by 3 integer labels . Each label identifies one amongst the v vertices and requires log 2 (v) bits.
  • Organizing triangles into strips F. Evans, S. Skiena and A. Varshney, Optimizing Triangle Strips for Fast Rendering, Proceedings, IEEE Vizualization '96, pp. 319-326, 1996) , where each new triangle shares an edge with the previous one, reduces the above storage by half in practice.
  • the use of a buffer to cache a small number of labels may further reduce the expected cost.
  • Rossignac 's Edgebreaker compression scheme J. Rossignac, "Edgebreaker: Connectivity compression for triangle meshes", IEEE Transactions on Visualization and Computer Graphics, 5(1), 47-61, Jan-Mar 1999 proposes both a rigorous theoretical analysis and an outstanding worst-case bound of the connectivity compression bit rate.
  • the original method used at most 4 bit per vertex and was improved to 3.6 bit per vertex (D. King and J. Rossignac, "Guaranteed 3.67V bit encoding of planar triangle graphs", 11th Canadian Conference on Computational Geometry (CCCG'99), pp. 146-149, Vancouver, CA, August 15-18, 1999).
  • Edgebreaker In the method of Edgebreaker all the triangles of a mesh are visited one at a time, walking from a previously visited triangle to one of its not-yet visited neighbors as the next triangle through their common edge, called the "gate". For manifold meshes, the tip of the new triangle is either a "new" vertex (case C) that has not yet been encountered or an "old" vertex of the boundary separating the previously visited portion of the mesh from the rest. Edgebreaker distinguishes four types of "old” vertices, depending on whether they appear in that boundary before the gate (case L) , after the gate (case R) , both (case E) , or neither (case S) .
  • the succession of case types produced by this traversal are encoded as a succession of symbols from the set (C,L,E,R,S), called the clers string or clers-sequence.
  • the clers string is sufficient to represent the complete connectivity.
  • Figure 1(a) The arrow indicates the direction to the next triangle. Previously visited triangles are not shown. Note that in the case S, Edgebreaker moves to the right, using a recursive call, and then to the left.
  • Figure 1(b) gives an example of the clers-sequence of a small region of a simple mesh.
  • half of the triangles correspond to case C in a manifold mesh, they can be encoded using a single bit (0) , while the remaining four cases may be unambiguously encoded using 3 bits each (110 for L, 101 for R, 111 for E and 100 for S) .
  • This simple code guarantees a 2 bits per triangle encoding.
  • More complex codes guarantee to compress the Edgebreaker-generated clers string encoding of any zero-genus mesh to less than 1.8 bits per triangle .
  • the clers strings of meshes encountered in practice may be compressed even further, sometimes to less than 0.9 bits per triangle, using variable-length entropy codes.
  • the clers string can provably be compressed down to 0.81 bits per triangle (see e.g. A. Szymczak, D. King, J. Rossignac, "An Edgebreaker-based Efficient Compression Scheme for Connectivity of Regular Meshes", Special issue of Journal of Computational Geometry: Theory and Applications, Vol. 20, No. 2, Oct 2001) .
  • a more efficient decompression algorithm for the clers sequence, called Wrap&Zip interprets the clers-string to build a simply connected triangulated polygon, which represents the triangle-spanning tree (J. Rossignac and A.
  • Touma and Gotsman also encode the vertices along the vertex-spanning tree (C. Touma and C. Gotsman,
  • Triangle Mesh Compression Proceedings Graphics Interface 98, pp. 26-34, 1998) . They distinguish only two cases, which correspond to the Edgebreaker ' s cases S and C. Other cases are not encoded. Instead, Touma and Gotsman also encode the degree of each vertex, i.e. the number of incident edges, and use it to automatically identify the other cases. During decompression they keep track of the number of already decoded triangles that are incident upon each vertex and are thus capable of identifying the R, L, and E triangles automatically. For highly tessellated regular models, where the degree of the vertices follows almost regular patterns, they report compression results of less than a bit per triangle using Huffman encoding. However, for smaller or less regular meshes, the required storage may easily exceed 2 bits per triangle.
  • each C-case triangle is used to access its neighbors and to estimate the location of the tip-vertex. Then a corrective vector is transmitted to compensate for the error between the correct location and its estimation.
  • the corrective vectors are usually very short and their coordinates may be encoded with a few bits each.
  • the object is achieved with the method according to claim 1 and with the system according to claim 15.
  • all triangles of the mesh are traversed one at a time by walking from a previously visited triangle to one of its not yet visited neighbours as the next triangle through their common edge while determining the connectivity of said next traversed triangle.
  • the method is characterized in that when traversing the triangles the connectivity of the next triangle is not only determined but also predicted by a prediction algorithm and the predicted connectivity is compared with the determined connectivity. If the predicted connectivity matches the determined connectivity a single confirmation bit is used for encoding. If the predicted connectivity does not match the determined connectivity one bit indicating the wrong prediction followed by none, one or more bits leading to the correct connectivity are used for encoding.
  • the proposed new encoding technique and system for single-resolution lossless compression of triangle mesh connectivity is preferably based on the Edgebreaker compression, but may also be based on other compression or encoding schemes determining the connectivity of triangle meshes. Both compression and decompression perform the same geometric prediction of the location of the tip-vertex of the next triangle.
  • the present method has the capability of further reducing the required storage or amount of data for storing or transmitting graphical 3D models based on triangle meshes. Only a single confirmation bit needs to be transmitted for each triangle connectivity if the performed prediction is correct. The degree of reduction of storage is dependent on the prediction algorithm used.
  • the triangle connectivity is predicted by snapping the tip-vertex to the nearest boundary vertex, if one lies sufficiently close. It could be shown that up to 97% of the predictions using this simple prediction algorithm are correct, so that connectivity information is often compressed to a fraction of a bit per triangle with the present method.
  • the present system comprises means for carrying out the proposed method according to at least one of claims 1 to 14.
  • Fig. 2 an example for a prediction of connectivity using the parallelogram rule
  • Fig. 3 an example for guessed clers symbols based on geometry prediction
  • Fig. 4 an example for wrongly guessed C triangles
  • Fig. 5 an example for wrongly guessed non-C triangles
  • Fig. 6 an example for the Apollo sequence of the triangle mesh of figure 1
  • Fig. 7 an example for a 3D model represented by a triangle mesh
  • Fig. 8 a further example for a prediction of the tip-vertex of the next triangle.
  • the proposed method in the following also named as Delphi-compression, is applied for encoding the clers string produced by the Edgebreaker mesh traversal.
  • Delphi-compression does not encode the clers-sequence directly. Instead, it tries to guess each clers-symbol and encodes the confirmation and the corrections to these guesses . The guess is based on the geometry and connectivity of the previously visited triangles.
  • the decompression performs the same guesses and decodes a confirmation bit that either confirms that the guess is right or indicates that it is not, in which case a corrective string of subsequent bits will indicate the correct code.
  • a confirmation bit that either confirms that the guess is right or indicates that it is not, in which case a corrective string of subsequent bits will indicate the correct code.
  • the mesh In contrast to the clers-sequence decompression, the mesh has to be zipped immediately while decoding the Apollo-sequence. Otherwise, it is not always possible to perform the same guesses as during compression because the neighborhood of a triangle is not completely built. Consequently, when a S-case is encountered that is not correctly identified, the identity of the old vertex has to be encoded that will serve as the tip-vertex of the S-triangle.
  • a corner c is the association of a triangle c.t with one of its bounding vertices c.v.
  • the next corner around a triangle in counterclockwise direction is denoted c.n, the previous corner c.p, and the opposite corner c.o.
  • G Length
  • g(c) c.n.v.g + c.p.v.g - c.o.v.g.
  • B denote the set of all vertices in the decoded mesh which are not interior to the mesh. As we have assumed that the mesh is simply connected, the vertices of B form one or several cyclic chains (c.p.v, Vr, V2 , ...VI, c.n.v), called hereafter loops, along the oriented border. One of these loops contains the gate G. We will call it the active loop 1. For zero-genus meshes, we know that c.v is part of the active loop. Let B' be the set of vertices of the active loop excluding the gate vertices c.n.v and c.p.v. Let X be the vertex of B' that is the closest to g(c).
  • d exceeds a threshold
  • a threshold c.v.g - g(c) of the prediction g(c) and the vertex location c.v.g
  • X will be our guess and if that guess is correct, we will have one of the four cases L, E, R, or S, depending on whether X is VI, or Vr, or both, or neither.
  • the threshold is based on the length of the gate G.
  • T is of type E.
  • T is of type R. If X is VI, then we guess that T is of type L. Otherwise, we guess that T is of type S.
  • Such a parameter could be the area of the predicted triangle, i. e. the triangle formed by the gate and the predicted tip-vertex.
  • a single bit in the transmission stream suffices to indicate whether the guess is correct. If so, we not only know the code of T (i.e., we have decoded its Edgebreaker symbol using one bit) , but we also know which vertex it is and can thus zip the border immediately during decompression, avoiding zip delays and not requiring the transmission of offsets that are associated with S triangles to identify the tip-vertices of S triangle.
  • the guess can be wrong. In this case some information is required in order to rectify the guess. Note that a false guess does not necessarily indicate a wrong symbol.
  • Figure 5 shows wrongly guessed non-C triangles.
  • the dark grey triangle shows the actual situation.
  • the light grey triangle visualizes the parallelogram • prediction.
  • This sequence is called the Apollo sequence, because it is used to interpret the connectivity guess.
  • the Apollo sequence is equivalent to the Edgebreaker clers sequence.
  • Figure 6 shows the Apollo sequence of the above introduced example of figure 1.
  • the first triangle has been guessed correctly as type C.
  • the right triangle shown in gray color in the first picture, is of type R.
  • the prediction scheme is performed for all triangle in Edgebreaker sequence and leads to the following Apollo sequence: ( (t) , (f R) , (t) , (t) , (t) , (t) , (t) , (t) , (t) , (t) , (t) , (t) , (t) , (t) , (t) , (t) , (t) ,
  • the first order entropy of these layers is a lower bound for the compression ratio of the Apollo sequence.
  • a guaranteed upper bound is fundamental for a number of applications where compression will be performed at runtime.
  • the upper bound on the number of bits per vertex is needed here to estimate the maximum expected time for transmission.
  • the upper bound of the Apollo sequence mainly depends on the quality of the prediction. If the prediction is often wrong, a lot of rectification information is necessary and the code will become inefficient. In that case, the original clers string should be used instead. Because both encode the same mesh traversal, the clers string can be directly derived from the Apollo sequence. For that reason, the worst case upper bound of 3.6 bits per triangle from Edgebreaker is also valid for Delphi compression.
  • the Apollo sequence contains t-1 symbols m. ⁇ (t,f) in the guess layer M G .
  • a trivial code will use 1 bit for each symbol in that layer.
  • p(t) be the probability of a correct guess.
  • the tip of that type S triangle has to be encoded in order to zip it immediately.
  • that tip is a vertex on the active loop and can be encoded by the topological distance s to Vr on the active loop.
  • s is 1 or 2 in most cases.
  • ) are needed to encode the tip of that S triangle.
  • the guess layer needs less than one bit per triangle. In addition, for each wrong guess, less than 2 bit are needed to rectify the guess.
  • Delphi compression is more efficient than Edgebreaker, if more than 65% of the predictions are true.
  • Experimental results lead to 80% to 95% of correct guesses for regular meshes.
  • the estimated upper bound is between 1.34 to 1.1 bits per triangle for these meshes.
  • the compression bit rate was between 0.8 and 0.2 bits per triangle or 1.6 and 0.4 bits per vertex in these cases .
  • Figure 8 shows an alternative approach to predict the location of the tip vertex g(c) of the next triangle in the mesh traversal .

Abstract

The present invention relates to a method and system of encoding the connectivity of a triangle mesh used for viewing, transmitting or storing of graphical 3D models, wherein all triangles of the mesh are traversed one at a time by walking from a previously visited triangle to one of its not yet visited neighbours as the next triangle through their common edge while determining the connectivity of said next traversed triangle. When traversing the triangles the connectivity of the next triangle is not only determined but also predicted by a prediction algorithm, the predicted connectivity is compared with the determined connectivity and if the predicted connectivity matches the determined connectivity a single confirmation bit is used for encoding, and if the predicted connectivity does not match the determined connectivity one bit indicating the wrong prediction followed by none, one or more bits indicating the correct connectivity are used for encoding. This new encoding technique for lossless compression of triangle mesh connectivity is capable of further reducing the amount of storage required.

Description

Method and system of encoding the connectivity of a triangle mesh
The present invention relates to a method and system of encoding the connectivity of a triangle mesh used for viewing, transmitting or storing of graphical 3D models, wherein all triangles of the mesh are traversed one at a time by walking from a previously visited triangle to one of its not yet visited neighbours as the next triangle through their common edge while determining the connectivity of said next traversed triangle.
3D graphics plays an increasingly important role in applications where 3D models are accessed through the internet. Due to improved design and model acquisition tools, to the wider acceptance of this technology, and to the need for higher accuracy, the number and complexity of these models are growing faster than network bandwidth. Consequently, it is imperative to continue increasing the terseness of 3D data transmission formats.
Although many representations have been proposed for 3D models, polygon and triangle meshes remain the de facto standard for exchanging and viewing 3D models. A triangle mesh may be represented by its vertex data and by its connectivity. It may be used directly as a polyhedral surface or as a coarse mesh controlling a subdivision surface. Most compression techniques separate the encoding of the connectivity information (triangle/vertex incidence) from the geometry information (vertex coordinates, and possibly their color or normal attributes) . Already of theoretical interest forty years ago, lossless connectivity encoding has received over the last few years a significant amount of attention because of its practical importance for the transmission of 3D models. Although several recent schemes are focused on progressive transmission or on computational simplicity, the reduction of the number of bits per triangle remains the primary objective in this field. Furthermore, single-resolution encoding retains its strategic importance, because in most situations we know ahead of time that either the full resolution model or the coarse starting point of a progressive model must be transmitted and because they can be more effectively encoded as single-resolution models than as progressive ones.
Several techniques are known for the loss-less compression of the connectivity of triangle meshes . The connectivity of a "simple" mesh - defined as a connected, zero-genus, manifold triangle mesh - may be stored as a sequence of t triangle descriptors, each triangle been represented by 3 integer labels . Each label identifies one amongst the v vertices and requires log2(v) bits. Organizing triangles into strips (F. Evans, S. Skiena and A. Varshney, Optimizing Triangle Strips for Fast Rendering, Proceedings, IEEE Vizualization '96, pp. 319-326, 1996) , where each new triangle shares an edge with the previous one, reduces the above storage by half in practice. The use of a buffer to cache a small number of labels may further reduce the expected cost.
The Topological Surgery method of Taubin and Rossignac (Taubin, G. , Gueziec, A., Horn, W. and Lazarus, F., Progressive Forest Split Compression, Siggraph 98
Conference Proceedings, pp 123-132, 1998) compress both a triangle-spanning tree and its dual vertex-spanning tree by encoding the lengths of consecutive single-child nodes. Both trees suffice to decode the connectivity of the simple mesh. For complex and reasonably regular meshes, the expected cost of encoding both trees may amount to about two bits per triangle. However, the overhead of the run length encoding may result in a significantly higher average cost for irregular or small meshes.
Rossignac 's Edgebreaker compression scheme (J. Rossignac, "Edgebreaker: Connectivity compression for triangle meshes", IEEE Transactions on Visualization and Computer Graphics, 5(1), 47-61, Jan-Mar 1999) proposes both a rigorous theoretical analysis and an outstanding worst-case bound of the connectivity compression bit rate. The original method used at most 4 bit per vertex and was improved to 3.6 bit per vertex (D. King and J. Rossignac, "Guaranteed 3.67V bit encoding of planar triangle graphs", 11th Canadian Conference on Computational Geometry (CCCG'99), pp. 146-149, Vancouver, CA, August 15-18, 1999). This upper-bound on storage does not rely on statistic-based entropy or arithmetic coding schemes, which in general perform poorly on small or irregular meshes . Consequently, Edgebreaker is particularly attractive for compressing large catalogs of small models. For large meshes, entropy codes further reduce the storage to less than 2 bit per vertex (J. Rossignac and A. Szymczak, "Wrap&Zip decompression of the connectivity of triangle meshes compressed with Edgebreaker", Computational Geometry, Theory and Applications, 14(1/3), pp. 119-135, November 1999).
In the method of Edgebreaker all the triangles of a mesh are visited one at a time, walking from a previously visited triangle to one of its not-yet visited neighbors as the next triangle through their common edge, called the "gate". For manifold meshes, the tip of the new triangle is either a "new" vertex (case C) that has not yet been encountered or an "old" vertex of the boundary separating the previously visited portion of the mesh from the rest. Edgebreaker distinguishes four types of "old" vertices, depending on whether they appear in that boundary before the gate (case L) , after the gate (case R) , both (case E) , or neither (case S) . The succession of case types produced by this traversal are encoded as a succession of symbols from the set (C,L,E,R,S), called the clers string or clers-sequence. For zero-genus meshes, the clers string is sufficient to represent the complete connectivity. These situations and the associated clers symbols are shown in Figure 1(a) . The arrow indicates the direction to the next triangle. Previously visited triangles are not shown. Note that in the case S, Edgebreaker moves to the right, using a recursive call, and then to the left. Figure 1(b) gives an example of the clers-sequence of a small region of a simple mesh. A detailed description of the Edgebreaker compression and decompression and some extensions to non-manifold meshes are given in J. Rossignac, "Edgebreaker: Connectivity compression for triangle meshes", IEEE Transactions on Visualization and Computer Graphics, 5(1), 47-61, Jan-Mar 1999, and in J. Rossignac, A. Safonova, and A. Syzmczak, "3D Compression Made Simple: Edgebreaker on a Corner-Table", Invited lecture at the Shape Modeling International Conference, Gemoa, Italy, May 2001. Because half of the triangles correspond to case C in a manifold mesh, they can be encoded using a single bit (0) , while the remaining four cases may be unambiguously encoded using 3 bits each (110 for L, 101 for R, 111 for E and 100 for S) . This simple code guarantees a 2 bits per triangle encoding. More complex codes guarantee to compress the Edgebreaker-generated clers string encoding of any zero-genus mesh to less than 1.8 bits per triangle . The clers strings of meshes encountered in practice may be compressed even further, sometimes to less than 0.9 bits per triangle, using variable-length entropy codes. When the mesh has a very large number of vertices and most of them have exactly six neighbors, the clers string can provably be compressed down to 0.81 bits per triangle (see e.g. A. Szymczak, D. King, J. Rossignac, "An Edgebreaker-based Efficient Compression Scheme for Connectivity of Regular Meshes", Special issue of Journal of Computational Geometry: Theory and Applications, Vol. 20, No. 2, Oct 2001) . A more efficient decompression algorithm for the clers sequence, called Wrap&Zip, interprets the clers-string to build a simply connected triangulated polygon, which represents the triangle-spanning tree (J. Rossignac and A. Szymczak, "Wrap&Zip decompression of the connectivity of triangle meshes compressed with Edgebreaker", Computational Geometry, Theory and Applications, 14(1/3), pp. 119-135, November 1999). Then, it zips up the borders of that polygon by matching pairs of its bounding edges in a bottom-up order with respect to the vertex-spanning-tree that is the dual of the triangle-spanning-tree.
Touma and Gotsman also encode the vertices along the vertex-spanning tree (C. Touma and C. Gotsman,
"Triangle Mesh Compression", Proceedings Graphics Interface 98, pp. 26-34, 1998) . They distinguish only two cases, which correspond to the Edgebreaker ' s cases S and C. Other cases are not encoded. Instead, Touma and Gotsman also encode the degree of each vertex, i.e. the number of incident edges, and use it to automatically identify the other cases. During decompression they keep track of the number of already decoded triangles that are incident upon each vertex and are thus capable of identifying the R, L, and E triangles automatically. For highly tessellated regular models, where the degree of the vertices follows almost regular patterns, they report compression results of less than a bit per triangle using Huffman encoding. However, for smaller or less regular meshes, the required storage may easily exceed 2 bits per triangle.
The schemes discussed above perform a depth-first traversal of a triangle spanning tree. Each time a new triangle is visited, we visit its right neighbor and then its left neighbor if they have not previously been visited. Instead, Alliez and Desbrun give priority to triangles that have a better chance of reducing the length of the boundary separating the previously processed triangles from the rest (P. Alliez and M. Desbrun, Valence-Driven Connectivity Encoding for 3D Meshes, Eurographics 2001 Conference Proceedings, 2001) . More specifically, they attach triangles to border edges that are incident to vertices with the largest total number of previously visited neighbors, thus reducing the frequency of S triangles. To compress the vertex location, the connectivity of each C-case triangle is used to access its neighbors and to estimate the location of the tip-vertex. Then a corrective vector is transmitted to compensate for the error between the correct location and its estimation. When both are quantized and when the estimates are accurate, the corrective vectors are usually very short and their coordinates may be encoded with a few bits each.
It is an object of the present invention to provide a method and system of encoding the connectivity of a triangle mesh which has the capability to further reduce the required storage.
The object is achieved with the method according to claim 1 and with the system according to claim 15.
Advantageous embodiments of the inventive method and system are described in the subclaims or in the subsequent description and examples .
In the proposed method and system of encoding the connectivity of a triangle mesh used for viewing, transmitting or storing of graphical 3D models, all triangles of the mesh are traversed one at a time by walking from a previously visited triangle to one of its not yet visited neighbours as the next triangle through their common edge while determining the connectivity of said next traversed triangle. The method is characterized in that when traversing the triangles the connectivity of the next triangle is not only determined but also predicted by a prediction algorithm and the predicted connectivity is compared with the determined connectivity. If the predicted connectivity matches the determined connectivity a single confirmation bit is used for encoding. If the predicted connectivity does not match the determined connectivity one bit indicating the wrong prediction followed by none, one or more bits leading to the correct connectivity are used for encoding.
The proposed new encoding technique and system for single-resolution lossless compression of triangle mesh connectivity is preferably based on the Edgebreaker compression, but may also be based on other compression or encoding schemes determining the connectivity of triangle meshes. Both compression and decompression perform the same geometric prediction of the location of the tip-vertex of the next triangle. The present method has the capability of further reducing the required storage or amount of data for storing or transmitting graphical 3D models based on triangle meshes. Only a single confirmation bit needs to be transmitted for each triangle connectivity if the performed prediction is correct. The degree of reduction of storage is dependent on the prediction algorithm used. In a preferred embodiment of the present method the triangle connectivity is predicted by snapping the tip-vertex to the nearest boundary vertex, if one lies sufficiently close. It could be shown that up to 97% of the predictions using this simple prediction algorithm are correct, so that connectivity information is often compressed to a fraction of a bit per triangle with the present method. The present system comprises means for carrying out the proposed method according to at least one of claims 1 to 14.
It goes without saying that it is also possible to use other prediction algorithms predicting the location of the tip vertex of the next triangle in the present method. An example of such a preferred further prediction algorithm is shown with respect to figure 8.
In the following a preferred embodiment of the present method is described with reference to the accompanying drawings, which illustrate
Fig. 1 (a) Edgebreaker clers symbols,
(b) example clers-sequence: CRSRLECRRRLE;
Fig. 2 an example for a prediction of connectivity using the parallelogram rule; Fig. 3 an example for guessed clers symbols based on geometry prediction; Fig. 4 an example for wrongly guessed C triangles;
Fig. 5 an example for wrongly guessed non-C triangles; Fig. 6 an example for the Apollo sequence of the triangle mesh of figure 1; Fig. 7 an example for a 3D model represented by a triangle mesh; and
Fig. 8 a further example for a prediction of the tip-vertex of the next triangle.
In the present embodiment the proposed method, in the following also named as Delphi-compression, is applied for encoding the clers string produced by the Edgebreaker mesh traversal. For simplicity of the exposition, we focus on simply connected meshes that are homeomorphic to a sphere . The proposed method applies to more complex meshes as well, but the cost analysis and encoding are more complex. The Delphi- compression does not encode the clers-sequence directly. Instead, it tries to guess each clers-symbol and encodes the confirmation and the corrections to these guesses . The guess is based on the geometry and connectivity of the previously visited triangles. The decompression performs the same guesses and decodes a confirmation bit that either confirms that the guess is right or indicates that it is not, in which case a corrective string of subsequent bits will indicate the correct code. We call this sequence of confirmation bits and of corrections the Apollo-sequence of the Edgebreaker traversal.
In contrast to the clers-sequence decompression, the mesh has to be zipped immediately while decoding the Apollo-sequence. Otherwise, it is not always possible to perform the same guesses as during compression because the neighborhood of a triangle is not completely built. Consequently, when a S-case is encountered that is not correctly identified, the identity of the old vertex has to be encoded that will serve as the tip-vertex of the S-triangle.
In the following, an example is shown how to guess the clers-symbol of a triangle based on vertex geometry and how to build the Apollo-sequence.
The subsequent definitions are made. A corner c is the association of a triangle c.t with one of its bounding vertices c.v. The next corner around a triangle in counterclockwise direction is denoted c.n, the previous corner c.p, and the opposite corner c.o. The location or geometry of the vertex v=c.v associated with the corner c is denoted c.v.g. As in the original Edgebreaker algorithm, we move from a triangle F to an adjacent triangle T at each step of the mesh traversal. F and T share a common edge G, called gate. Let c be the corner of T that is not incident upon G as shown in Figure 2. Let Length (G) denote the length of the gate. The transmitted information must identify the vertex c.v. Let g(c) be the estimate on the location of c.v.g. For instance, we can compute g(c) using the parallelogram rule:
g(c) = c.n.v.g + c.p.v.g - c.o.v.g.
Let B denote the set of all vertices in the decoded mesh which are not interior to the mesh. As we have assumed that the mesh is simply connected, the vertices of B form one or several cyclic chains (c.p.v, Vr, V2 , ...VI, c.n.v), called hereafter loops, along the oriented border. One of these loops contains the gate G. We will call it the active loop 1. For zero-genus meshes, we know that c.v is part of the active loop. Let B' be the set of vertices of the active loop excluding the gate vertices c.n.v and c.p.v. Let X be the vertex of B' that is the closest to g(c). Let d:=Dist (X,g(c) ) denote the distance between them. X is a prime candidate for c.v. We will use d to decide whether X is our guess or whether we are guessing that c.v is a new vertex.
Specifically, when d exceeds a threshold, we assume a C triangle. The difference gp = c.v.g - g(c) of the prediction g(c) and the vertex location c.v.g will be encoded. When d is smaller than the threshold, X will be our guess and if that guess is correct, we will have one of the four cases L, E, R, or S, depending on whether X is VI, or Vr, or both, or neither. The threshold is based on the length of the gate G.
More precisely, if d > τ*Length(G), with a constant τ=0.6 for example, we guess T is of type C. Otherwise, we guess that c.v is X and distinguish four situations as shown in Figure 3 :
If X is both VI and Vr, then we guess that T is of type E.
If X is Vr, then we guess that T is of type R. If X is VI, then we guess that T is of type L. Otherwise, we guess that T is of type S.
It is also possible to use another parameter for the threshold. Such a parameter could be the area of the predicted triangle, i. e. the triangle formed by the gate and the predicted tip-vertex. A single bit in the transmission stream suffices to indicate whether the guess is correct. If so, we not only know the code of T (i.e., we have decoded its Edgebreaker symbol using one bit) , but we also know which vertex it is and can thus zip the border immediately during decompression, avoiding zip delays and not requiring the transmission of offsets that are associated with S triangles to identify the tip-vertices of S triangle.
Of course, the guess can be wrong. In this case some information is required in order to rectify the guess. Note that a false guess does not necessarily indicate a wrong symbol. We might wrongly guess c.v as X and concluded a S situation. In fact, it might be an S situation, but with another tip in B'. In the following, the rectification of the wrong guesses depending on the guessed symbol and the length of the active border is discussed.
We start with the case where we guessed a C and made a mistake as shown in figure 4. Then we discuss the cases where we wrongly guessed L, R, S, or E (see figure 5) .
If we guessed a C, and in fact c.v is a vertex in B', one bit in the transmission stream indicates that our guess was wrong. The subsequent bits would clarify its type. If the length of the active loop |B'| is equal 1, the triangle has to be of type E. No further information is necessary. If |B'| = 2, only two possible symbols L, R have to be distinguished. Otherwise, it is necessary to distinguish between the three remaining cases in L, R, S, because an E situation is impossible. In case of a mis-classified type S triangle more bits are needed to encode the identity of c.v in order to enable immediately zipping during decoding. Without these bits, it would not be possible to perform the same guesses during decompression as during compression.
Figure 5 shows wrongly guessed non-C triangles. The dark grey triangle shows the actual situation. The light grey triangle visualizes the parallelogram • prediction.
If we wrongly guess case E (X=V1 and X=Vr) , it must be a C situation, since an E is guessed only with |B'|=1 and with only one border vertex, situations L, R, and S are not possible. The confirmation bit is sufficient. No additional bits are necessary to rectify the guess.
If we wrongly guess case R (X=Vr) , the subsequent bits are used to distinguish between the three remaining symbols L, C, S. An E symbol is not possible here.
If we wrongly guess case L (X=V1) , we have to distinguish between the remaining symbols R, C, S.
Again, an E symbol is not possible in this situation.
If we wrongly guess case S, the four remaining symbols C, L, R, S are possible. An E symbol is not possible here, because an E situation occurs only with |B'|=1, which implies Vl=Vr. In this case, we would have never guessed S, only a C or E. Even if S is the correct guess, the tip-vertex might not be X. So, when the correction states that the guess of S is correct but the tip is wrong, additional bits must be transmitted to identify the correct tip-vertex in the active loop. These situations are rare because the number of S cases is relatively small and many of them are correctly identified.
Taking into account the current length of the active border |B'|, some cases are not possible and the bit code for the correction can be shortened.
If |B'|=1, only cases C and E are possible. |B'|=1 implies Vl=Vr. L, R and S situations are not possible. In this case, the validation bit suffices to distinguish between the two possible cases: C or E.
An active loop length |B'|=2, implies that B' only contains the vertices VI and Vr. Neither an E nor a S situation are possible in this case. If the guess is wrong, one additional bit is sufficient to rectify the situation. For example, in case of a wrongly guessed R, one bit indicates that the guess is wrong, and an additional bit distinguishes between a C and L situation.
Finally, when |B'|=3, there is only one vertex in the active border besides VI and Vr and thus that vertex is the only acceptable tip-vertex for an S case. There is no need to send corrective bits to identify the tip in a wrongly guessed S triangle. Furthermore, a wrongly guessed S case cannot be an S with a different tip-vertex. Using a careful analysis of these situations and exploiting the restrictions described above, we had devised and evaluated several variable length schemes for encoding the corrective string of bits .
Using the proposed connectivity prediction, an Edgebreaker mesh traversal can be expressed by a sequence of 3-tupel A=(G, Rs, S0) , where G is the confirmation bit indicating whether the guess is correct or not, Rs is the correction string in case of a false guess, and S0 is the offset in a wrongly guessed S situation. This sequence is called the Apollo sequence, because it is used to interpret the connectivity guess. The Apollo sequence is equivalent to the Edgebreaker clers sequence.
Figure 6 shows the Apollo sequence of the above introduced example of figure 1. In this example it is assumed that the first triangle has been guessed correctly as type C. We than predict the tip of the right triangle at g(c) using the parallelogram rule. Since the distance of g(c) and the active border is too large, we guess again a type C triangle. Unfortunately, that guess was wrong. In fact, the right triangle, shown in gray color in the first picture, is of type R. In the Apollo sequence we encode this situation as (f, R) and continue the traversal with the left triangle of R. The prediction scheme is performed for all triangle in Edgebreaker sequence and leads to the following Apollo sequence: ( (t) , (f R) , (t) , (t) , (t) , (t) , (t) , (t) ,
(t) , (f R) , (t) , (t) , (t) ) . With a trivial encoding scheme we can compress this sequence with 16 bits instead of 32 bits for the corresponding CLERS sequence. The following shows an example for encoding the Apollo sequence. A simply connected regular mesh with t triangles can be expressed by an Apollo sequence of length t-1. Each Apollo tuple corresponds to a symbol of the equivalent clers sequence of that mesh. In order to achieve a compact mesh representation, the Apollo sequence has to be encoded efficiently. The layers of this compression will be discussed separately: - The guess layer,
- the rectified symbol layers, and
- the tip offset layer.
These layers can be compressed using an adaptive entropy encoder like the range encoder as in P. Alliez and M. Desbrun. Valence-Driven Connectivity Encoding for 3D Meshes. Eurographics 2001 Conference Proceedings, 2001, for example. However, compression results vary using different encoders. The entropy of the Apollo sequence as a lower bound for the compression ratio gives more insight about the encoded information. A good entropy encoder will come close to that bound.
We can treat each layer M of the Apollo sequence as a markov source of order n. The conditional entropy H(M|σ.) of such a markov source is given by
H(M|σ3) = -Σ p(M σk)*log2(p(M σk)) ,
where σk = Sk. ... Skn is the sequence of the n previous symbols . The entropy of an ergodic markov source of order n is then given by H(M)= Σ p(σk)*H(M|σk) .
Note that H(M) is always less than or equals the entropy H(M)= -Σ p (m. ) *log2 (p (m.) ) , where M denotes the same source without memory.
We will treat the layers as sequences of first order markov sources (n=l) . The first order entropy of these layers is a lower bound for the compression ratio of the Apollo sequence.
In addition to that lower bound and a practical compression rate, a guaranteed upper bound is fundamental for a number of applications where compression will be performed at runtime. The upper bound on the number of bits per vertex is needed here to estimate the maximum expected time for transmission. The upper bound of the Apollo sequence mainly depends on the quality of the prediction. If the prediction is often wrong, a lot of rectification information is necessary and the code will become inefficient. In that case, the original clers string should be used instead. Because both encode the same mesh traversal, the clers string can be directly derived from the Apollo sequence. For that reason, the worst case upper bound of 3.6 bits per triangle from Edgebreaker is also valid for Delphi compression.
However, if the prediction is often correct, the upper bound will be much less than in Edgebreaker. The Apollo sequence contains t-1 symbols m. ε (t,f) in the guess layer MG. A trivial code will use 1 bit for each symbol in that layer. Let p(t) be the probability of a correct guess. The probability p(f) of a wrong guess is given by p(f) = 1 -p(t) .
In case of a wrong guess 2 bits are sufficient to encode the rectified symbol in any case. However, this is a rough estimate. If the guessed symbol Gs is a E it must be a C situation. No further information is needed to rectify the guess. If Gs is a L or R a simple Huffman code will need less than 1.7 bits per symbol to distinguish the three possible rectified symbols. In case of a wrongly guessed C symbol also 1.7 bits are sufficient to distinguish the three rectified symbols L, R, and S. The E symbols which might occur as rectification do not have to be encoded. Only in case of |B'|= 1 an E symbol is possible and in that case, no other symbol besides C is valid. If the guess says that C was wrong, it must be an E. Only in case of a wrongly guessed S, four different rectified symbols C, L, R, and S have to be distinguished.
If the rectified symbol is a S, the tip of that type S triangle has to be encoded in order to zip it immediately. In case of a manifold mesh with genus 0, that tip is a vertex on the active loop and can be encoded by the topological distance s to Vr on the active loop. Experimental results have shown that s is 1 or 2 in most cases. However, this offset is a serious obstacle to guarantee a linear worst case bit-rate. Theoretically, log2(|B'|) are needed to encode the tip of that S triangle. Nevertheless, we can estimate an upper bound, if the number of S triangles is supposed negligible. The guess layer needs less than one bit per triangle. In addition, for each wrong guess, less than 2 bit are needed to rectify the guess. If the number of S triangles is small, 1.7 bit is sufficient because a rectified S does not often occur. Summing up, an estimated upper bound bit rate b is given by b=l+1.7*p(t) bits per triangle. In other words, Delphi compression is more efficient than Edgebreaker, if more than 65% of the predictions are true. Experimental results lead to 80% to 95% of correct guesses for regular meshes. The estimated upper bound is between 1.34 to 1.1 bits per triangle for these meshes. In practice, the compression bit rate was between 0.8 and 0.2 bits per triangle or 1.6 and 0.4 bits per vertex in these cases .
While decoding the Apollo sequence, the decompression algorithm predicts the clers-symbol of the new triangle using the same prediction scheme as during compression. This guess is interpreted using the corresponding Apollo tupel . If the guess is correct, we can restore that triangle and because we guessed not only the correct symbol but also the correct tip pf the triangle in the active loop in case of a non-C triangle, we can zip immediately and restore the mesh connectivity. If the Apollo tupel indicates that the guess was wrong, we will get the rectified symbol Rs and the offset S0 in addition. This information suffices again to restore the new triangle and immediately zip it. Figure 7 shows a horse model with 96966 triangles and 48485 vertices which could be compressed with the present method, wherein about 83% of the connectivity is correctly guessed leading to a bit rate of 1.47 bits per vertex.
Figure 8 shows an alternative approach to predict the location of the tip vertex g(c) of the next triangle in the mesh traversal .
The location of g(c) is guessed by projecting the gate E = (c.n.v, c.p.v) and the first edge of the active border Er = (c.p.v, Vr) to the plane defined by the normal vector n of vertex c.p.v. In figure 8 this projection is not demonstrated since this figure for simplicity reasons shows all triangles already in a common plane, the plane of the drawing sheet. The projection of Er is rotated around n (which in this case is perpendicular to the plane of the drawing sheet) with rotation angle α. The rotation is indicated by one of the arrows .
The rotation angle is given by the angle between the projections of E and Er multiplied with a scaling factor s = (l-l/tm) which is dependent on the number of missing triangles tm around c.p.v.
In the present case it is assumed that 6 triangles meet in the vertex c.p.v. If t triangles around c.p.v are encoded so far, the number of missing triangles is given by tm = max(6-t, 1) . Figure 8 indicates in the present example that t = 4 leading to a scaling factor s = so that Er is rotated by half of the angle between E and Er. The number of triangles meeting in each vertex is preset depending on the circumstances, for example to 6 (as in the present example) or to 7.
The length of Er and the location in direction n have to be adjusted using the same scale factor:
Length of the projected edge = | |Er| | - s x (| |Er| | - ) ]E| )); Location in direction n in analogy.
This mapping leads to a prediction gr for the tip vertex of the next triangle. The same prediction is performed coming from the left side by rotating Ei = (c.n.v, Vi) around c.n.v. This mapping gives a second prediction gi. Finally the tip vertex g(c) is predicted by interpolation of gr and gi.
List of reference signs
T Triangle
G common edge of two triangles v vertex c corner g(c) predicted location of vertex
X vertex closest to predicted location d distance between X and g(c)
1 active loop / active border
2 already traversed area

Claims

Claims
1. Method of encoding the connectivity of a triangle mesh used for viewing, transmitting or storing of graphical 3D models, wherein all triangles of the mesh are traversed one at a time by walking from a previously visited triangle to one of its not yet visited neighbours as the next triangle through their common edge while determining the connectivity of said next traversed triangle, characterized in that when traversing the triangles the connectivity of the next triangle is not only determined but also predicted by a prediction algorithm, the predicted connectivity is compared with the determined connectivity and
- if the predicted connectivity matches the determined connectivity a single confirmation bit is used for encoding,
- if the predicted connectivity does not match the determined connectivity one bit indicating the wrong prediction followed by none, one or more bits indicating the correct connectivity are used for encoding.
2. Method according to claim 1, characterized in that the determination of the connectivity is based on the Edgebreaker formalism using clers symbols for indicating the connectivity.
3. Method according to claim 1 or 2 , characterized in that the prediction is based on a parallelogram rule for predicting the location of a tip-vertex of the next triangle .
4. Method according to one of the claims 1 to 3, characterized in that the prediction is based on a distance of a predicted location of a tip-vertex of the next triangle to the location of a nearest vertex of already traversed triangles except of the previous one.
5. Method according to one of the claims 1 to 4, characterized in that the prediction is based on the length of the common edge.
6. Method according to one of the claims 1 to 5, characterized in that the prediction is based on the number of vertexes of an active border of an area formed by the triangles already traversed and including the common edge.
7. Method according to claim 1 or 2 , characterized in that the prediction is based on a rotation of a first and a second edge adjacent the common edge on an active border for predicting the location of a tip-vertex of the next triangle, which active border forms the border of an area formed by the triangles already traversed and including the common edge, the rotations being made with an angle o. around a normal vector of a first tip- vertex between the first edge and the common edge and around a normal vector of a second tip-vertex between the second edge and the common edge, wherein the angle a of each rotation being dependent on the number of triangles not yet traversed around said respective first or second tip-vertex.
8. Method according to claim 7 , characterized in that prior to the rotations the common edge and the adjacent edges are projected to planes perpendicular to the respective normal vector, the rotations being made in said planes .
9. Method according to claim 8, characterized in that the angle α is defined by an angle between the common edge and the respective first or second edge in said respective plane multiplied by a scaling factor s = (1-1 /tm) , with tm being the number of triangles around said respective first or second tip-vertex not yet traversed.
10. Method according to claim 9, characterized in that the lengths of the rotated edges and the position of end points of the rotated edges in direction of the normal vector are adjusted by a multiplication with said scaling factor s.
11. Method according to claim 9 or 10, characterized in that the end points of the rotated edges are interpolated resulting in an interpolated point, the location of said interpolated point being the predicted location of the tip-vertex of the next triangle .
12. Method according to one of the claims 7 to 11, characterized in that the number of triangles around said respective first or second tip-vertex not yet traversed is determined from a difference between a preset fixed number of triangles and the number of triangles already traversed around said respective first or second tip-vertex.
13. Method according to one of the claims 1 to 12 , characterized in that the bits indicating the correct connectivity are formed dependent on the predicted connectivity and the number of vertexes of an active border of an area formed by the triangles already traversed and including the common edge.
14. Method according to one of the claims 1 to 13, characterized in that the bit indicating the wrong prediction together with the bits indicating the correct connectivity are further compressed by an adaptive entropy encoder .
5. System of encoding the connectivity of a triangle mesh used for viewing, transmitting or storing of graphical 3D models, having means for traversing all triangles of the mesh one at a time by walking from a previously visited triangle to one of its not yet visited neighbours as the next triangle through their common edge and means for determining the connectivity of said next traversed triangle, characterized by further comprising means for predicting the connectivity of said next traversed triangle using a prediction algorithm, means for comparing the predicted connectivity with the determined connectivity and means for encoding the connectivity of said next traversed triangle with a single confirmation bit if the predicted connectivity matches the determined connectivity, or with one bit indicating a wrong prediction followed by none, one or more bits indicating the correct connectivity if the predicted connectivity does not match the determined connectivity.
PCT/EP2003/003070 2002-10-31 2003-03-24 Method and system of encoding the connectivity of a triangle mesh WO2004040517A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
AU2003223984A AU2003223984A1 (en) 2002-10-31 2003-03-24 Method and system of encoding the connectivity of a triangle mesh
DE10393630T DE10393630B4 (en) 2002-10-31 2003-03-24 Method and system for encoding the connectivity of a triangle network

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP02024253.3 2002-10-31
EP02024253 2002-10-31

Publications (1)

Publication Number Publication Date
WO2004040517A1 true WO2004040517A1 (en) 2004-05-13

Family

ID=32187156

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2003/003070 WO2004040517A1 (en) 2002-10-31 2003-03-24 Method and system of encoding the connectivity of a triangle mesh

Country Status (3)

Country Link
AU (1) AU2003223984A1 (en)
DE (1) DE10393630B4 (en)
WO (1) WO2004040517A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010115789A1 (en) * 2009-04-09 2010-10-14 Thomson Licensing Method and device for encoding and decoding of symbol sequences wherein each symbol may have one out of three or more possible symbol values
KR20110126110A (en) * 2009-02-06 2011-11-22 톰슨 라이센싱 Method and apparatus for encoding 3d mesh models, and method and apparatus for decoding encoded 3d mesh models
WO2023224737A1 (en) * 2022-05-20 2023-11-23 Tencent America LLC Vertex position prediction in mesh compression

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
ALLIEZ P ET AL: "Valence-driven connectivity encoding for 3D meshes", EUROPEAN ASSOCIATION FOR COMPUTER GRAPHICS. 22ND ANNUAL CONFERENCE. EUROGRAPHICS 2001, MANCHESTER, UK, 4-7 SEPT. 2001, vol. 20, no. 3, Computer Graphics Forum, 2001, Blackwell Publishers for Eurographics Assoc, UK, pages C/480 - 9, 557, XP008021367, ISSN: 0167-7055 *
HAEYOUNG LEE ET AL: "Angle-Analyzer: a triangle-quad mesh codec", 23RD ANNUAL CONFERENCE OF THE EUROGRAPHICS ASSOCIATION, SAARBRUCKEN, GERMANY, 2-6 SEPT. 2002, vol. 21, no. 3, Computer Graphics Forum, 2002, Blackwell Publishers for Eurographics Assoc, UK, pages 383 - 392, XP008021366, ISSN: 0167-7055 *
ISENBURG M ET AL: "Spirale Reversi: reverse decoding of the Edgebreaker encoding", COMPUTATIONAL GEOMETRY: THEORY AND APPLICATIONS, OCT. 2001, ELSEVIER, NETHERLANDS, vol. 20, no. 1-2, pages 39 - 52, XP002253448, ISSN: 0925-7721 *
KRONROD B ET AL: "Optimized triangle mesh compression using prediction trees", COMPUTER GRAPHICS AND APPLICATIONS, 2000. PROCEEDINGS. THE EIGHTH PACIFIC CONFERENCE ON HONG KONG, CHINA 3-5 OCT. 2000, LOS ALAMITOS, CA, USA,IEEE COMPUT. SOC, US, 3 October 2000 (2000-10-03), pages 406 - 407, XP010523037, ISBN: 0-7695-0868-5 *
SZYMCZAK A ET AL: "An Edgebreaker-based efficient compression scheme for regular meshes", COMPUTATIONAL GEOMETRY: THEORY AND APPLICATIONS, OCT. 2001, ELSEVIER, NETHERLANDS, vol. 20, no. 1-2, pages 53 - 68, XP002253447, ISSN: 0925-7721 *
TOUMA C ET AL: "TRIANGE MESH COMPRESSION", PROCEEDINGS/COMPTE RENDU GRAPHICS INTERFACE, XX, XX, 1998, pages 26 - 34, XP000867195 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110126110A (en) * 2009-02-06 2011-11-22 톰슨 라이센싱 Method and apparatus for encoding 3d mesh models, and method and apparatus for decoding encoded 3d mesh models
KR101657325B1 (en) * 2009-02-06 2016-09-13 톰슨 라이센싱 Method and apparatus for encoding 3d mesh models, and method and apparatus for decoding encoded 3d mesh models
WO2010115789A1 (en) * 2009-04-09 2010-10-14 Thomson Licensing Method and device for encoding and decoding of symbol sequences wherein each symbol may have one out of three or more possible symbol values
KR20120013945A (en) * 2009-04-09 2012-02-15 톰슨 라이센싱 Method and device for encoding and decoding of symbol sequences wherein each symbol may have one out of three or more possible symbol values
CN102388404A (en) * 2009-04-09 2012-03-21 汤姆森特许公司 Method and device for encoding and decoding of symbol sequences wherein each symbol may have one out of three or more possible symbol values
US8514107B2 (en) 2009-04-09 2013-08-20 Thomson Licensing Method and device for encoding and decoding of symbol sequences wherein each symbol may have one out of three or more possible symbol values
KR101672070B1 (en) 2009-04-09 2016-11-02 톰슨 라이센싱 Method and device for encoding and decoding of symbol sequences wherein each symbol may have one out of three or more possible symbol values
WO2023224737A1 (en) * 2022-05-20 2023-11-23 Tencent America LLC Vertex position prediction in mesh compression

Also Published As

Publication number Publication date
DE10393630T5 (en) 2005-11-03
DE10393630B4 (en) 2007-10-25
AU2003223984A1 (en) 2004-05-25

Similar Documents

Publication Publication Date Title
US11252441B2 (en) Hierarchical point cloud compression
KR102317576B1 (en) point cloud compression
US11508095B2 (en) Hierarchical point cloud compression with smoothing
de Oliveira Rente et al. Graph-based static 3D point clouds geometry coding
US11010928B2 (en) Adaptive distance based point cloud compression
US8502815B2 (en) Scalable compression of time-consistent 3D mesh sequences
US20200111236A1 (en) Point cloud compression using fixed-point numbers
JP2023522702A (en) TRISOUP node size per slice
CN100584013C (en) Video encoding method and device, video decoding method and device
CN114467302A (en) Block-based predictive coding for point cloud compression
CN109257604A (en) A kind of color attribute coding method based on TMC3 point cloud encoder
US6452596B1 (en) Methods and apparatus for the efficient compression of non-manifold polygonal meshes
JP5932051B2 (en) Predictive position decoding
JP5033261B2 (en) Low-complexity three-dimensional mesh compression apparatus and method using shared vertex information
CN103069802B (en) The device of the method for the current block of reconstructed image and corresponding coding method, correspondence
Peng et al. Feature oriented progressive lossless mesh coding
Coors et al. Delphi: geometry-based connectivity prediction in triangle mesh compression
JP2001186516A (en) Method and system for coding decoding image data
US6594375B1 (en) Image processing apparatus, image processing method, and storage medium
WO2004040517A1 (en) Method and system of encoding the connectivity of a triangle mesh
Akimov et al. Lossless compression of color map images by context tree modeling
Choi et al. Geometry compression of 3-D mesh models using predictive two-stage quantization
Samus et al. 3D image mesh entropy coding
Coors et al. Delphi Encoding: Improving Edgebreaker 3D Compression by Geometry based Connectivity Prediction
Dvořák et al. Priority‐based encoding of triangle mesh connectivity for a known geometry

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ OM PH PL PT RO RU SC SD SE SG SK SL TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP

WWW Wipo information: withdrawn in national office

Country of ref document: JP

REG Reference to national code

Ref country code: DE

Ref legal event code: 8607