WO2006029962A1 - Procede de representation compacte de la connectivite d'un modele geometrique - Google Patents

Procede de representation compacte de la connectivite d'un modele geometrique Download PDF

Info

Publication number
WO2006029962A1
WO2006029962A1 PCT/EP2005/054316 EP2005054316W WO2006029962A1 WO 2006029962 A1 WO2006029962 A1 WO 2006029962A1 EP 2005054316 W EP2005054316 W EP 2005054316W WO 2006029962 A1 WO2006029962 A1 WO 2006029962A1
Authority
WO
WIPO (PCT)
Prior art keywords
strand
strands
connectivity
series
geometric model
Prior art date
Application number
PCT/EP2005/054316
Other languages
English (en)
Inventor
Sylvain Prat
Yves Bertrand
Patrick Gioia
Original Assignee
France Telecom
Universite De Poitiers
Centre National De La Recherche Scientifique (Cnrs)
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 France Telecom, Universite De Poitiers, Centre National De La Recherche Scientifique (Cnrs) filed Critical France Telecom
Publication of WO2006029962A1 publication Critical patent/WO2006029962A1/fr

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation

Definitions

  • the invention is in the context of the compression of mesh-type geometric models, in particular in the field of connectivity coding, that is to say the methods that retain the initial topological characteristics of the model.
  • Geometric models can represent any kind of object, such as a three-dimensional city map or a representation intended for specialists in a particular field needing a particular visualization.
  • Hierarchical methods proceed by successive simplifications (often contractions of edges), by granting a cost to each simplification operation and by choosing a series of simplifications whose total cost does not exceed a certain threshold, which defines the compression ratio .
  • the geometry associated with the meshes is often transmitted as the description of the connectivity progresses, ie as new peaks are encountered. during coding.
  • This geometry is predicted according to the vertices previously coded, either thanks to a linear function of the ancestors, or thanks to the rule of the parallelogram.
  • the residual (difference between the predicted value and the real value) is then quantized and compressed (entropy coding).
  • the embeddings are linear: an edge is necessarily dipped into a line segment, therefore it is necessarily formed of 2 different vertices.
  • the pathological cases of cells sewn on themselves for example a half sphere consisting of a single face curved, and therefore of a single ridge with a single vertex) are therefore not treated.
  • the surfaces are always orientable and have no holes.
  • the invention aims to solve these disadvantages, that is to say to allow the compression of geometric models indifferently their subdivision geometry (cell) and regardless of their size because each of the dimensions is treated in the same way in the algorithm , which makes it possible to fill the lack of non-genericity of conventional approaches.
  • This method makes it possible to compress meshes with a lot of edges as well as those with very few edges.
  • This object is achieved according to the invention by means of a method of representation of connectivity of a geometric model initially found in the form of a mesh, the representation being carried out using a generalized card consisting of a series of strands and of a series of connectivity relations, characterized in that it comprises the step of establishing a compact representation of the connectivity in the form of a stranded neighborhood per-strand browsing history of the generalized map.
  • a device for compressing a representation corresponding to a geometric model that is initially in the form of a mesh comprises means for compressing a compact representation of connectivity with each other.
  • a data transmission signal representative of a geometric model initially in the form of a mesh is also proposed, characterized in that the data are those of a compact representation of the connectivity in the form of a path history. by stranded neighborhood by strand of a generalized map associated with the geometric model, which generalized map consists of a series of strands and a series of connectivity relations.
  • a method of transmitting a signal including a representation of a geometric model initially in the form of a mesh is also proposed according to the invention, the method being characterized in that it comprises the step of compressing a compact representation of connectivity.
  • a compact representation of connectivity which is in the form of a strand per-strand neighborhood history of a generalized map associated with that geometric model, the generalized map being a series of strands and a series of connectivity relationships.
  • a method of recording a signal including a representation of a geometric model initially in mesh form, characterized in that it consists in recording a compact representation of connectivity in the form of a strand-by-strand neighborhood-based history of a generalized map associated with this geometric model, the generalized map consisting of a series of strands and a series of connectivity relationships.
  • a computer program is also proposed according to the invention, characterized in that it controls the transformation of a geometric model in the form of a mesh into a compact representation of connectivity in the form of a history of course by neighborhood strand. by strand of a generalized map associated with the geometric model, the generalized map consisting of a series of strands and a series of connectivity relationships. It is also proposed according to the invention a computer program controlling a reading of a representation of a geometric model initially in the form of a mesh, characterized in that it comprises instructions for reading a compact connectivity representation in the form of a strand per-strand neighborhood history of a generalized map associated with the geometric model, the generalized map consisting of a series of strands and a series of connectivity relationships.
  • FIG. 1 shows a part of G-card according to the state of the art
  • FIG. 2 illustrates an example of compact representation by way of a G-card according to the invention
  • FIGS. 3 to 5 represent three types of paths designed to avoid redundancies;
  • FIG. 6 illustrates a second example of representation by way of a G-card according to the invention.
  • FIG. 7 represents a cell having a hole-like face, of the type folded on itself
  • FIG. 8 is a flow chart showing a method according to the invention.
  • FIG. 9 illustrates a transmission chain structure according to the invention.
  • the method described here is based on an expression of the G-map model and describes the connectivity between strands (the basic element of the G-map structure) rather than other geometric primitives. .
  • the term of / -cell will be used to designate the dimension / model entities: the vertices are 0-cells, the edges of 1-cells, the faces of 2-cells, etc.
  • dimension will only apply to connectivity and not to embeddings, for example a triangular mesh is of dimension 2 (it is a surface), even if the coordinates of the vertices are immersed in a 3D space.
  • the generalized maps invented by Lienhardt [8, 9] make it possible to represent varieties with or without edges, orientable or not. This representation consists of a single type of element called strand and only one type of relationship (incidence and adjacency) between these strands.
  • the / -cell are not represented explicitly (as in the case of the IndexedFaceSet of VRML), but they are deduced from the relations between the strands, as we will see a little further.
  • ai is an involution (so-called simple), that is, BjLaLb)) Fb.
  • the strands are paired pairwise on each dimension / except in the case of fixed points where a strand is bound to itself, it is therefore called / -free and defines a / -bord.
  • the second property corresponds intuitively to the hypothesis of topological variety, that is to say that / -cellules must be sewn, glued together by (/ -1) -cellules of the same form (homeomorphic).
  • the / -cells (vertices, edges, faces, ⁇ ) are defined by particular orbits which consist of all involutions except a ,. Intuitively, the involution has, allows to leave a / -cell and enter the / -cell adjacent by the considered strand.
  • ⁇ a o ,a 1> (2) is the orbit surface (cell 2) associated with the blade 2, that is to say, the incident face to the strand 2.
  • the data that completes the connectivity data and locates an element (a strand) in the given plane or space is called embedding. It is therefore the location data.
  • a structure defined by a G-card has the advantage of occupying only a small place in memory for the location data. Indeed, the description of the links defines the structure with very little dipping data needed.
  • the embeddings are often associated with one of the strands composing the orbit. For example, to explain the three dimensional coordinates for the vertices, only one strand in each vertex orbit ( ⁇ a ,a 1 2> 2D) will be immersed. In Figure 1, the strands 1, 2,6,4,14,12 for example would be immersed.
  • involution of a strand the image of a strand by a given involution.
  • G-cards will be represented as multi-graphs whose nodes (half-edges) are the strands and the arcs connect two strands images of each other by an involution, the arcs being evaluated by the index of this involution.
  • a G-map is therefore a B-Rep (ordered by the edges) structure, that is, it describes an order on the cells incident to a given cell type, as well as for the Winged -
  • the method uses the G-map representation, the main idea is to take advantage of the unique type of element and the unique type of relationship between them to define a compression algorithm independent of the size of the varieties to be compressed. Moreover, we are not content here with a simple definition of the relations of each strand with all of its neighbors, which would occupy, as in the prior art, an important place in memory. It is a question here of using the G-card structure to memorize it according to a course of the structure, going from a strand to a neighboring strand in the structure and so on. This representation approach in the form of a G-card is a particularly compact representation therefore conducive to the transmission of signals, after compression.
  • the desired flexibility is achieved in terms of adaptation to various types of cells as well as the desired compactness.
  • a path makes it possible to progressively clarify the neighborhood relations between cells (here the strands) via the emission of symbols to describe the different cases of connectivity, these symbols are then compressed by conventional methods.
  • This type of approach makes it possible to compress at best the local or global spatial patterns of the model, this remark applies to both embeddings and topology and is the common point of many methods of compressing geometric models.
  • This method thus takes advantage of the specificities of the G-cards.
  • G-cards make it possible to represent all N-dimensional manifolds. The algorithm is valid whatever the dimension because it exploits the fact that there is only one type of element and one type of relation between them, for each of the dimensions the method is the same. It is an ordered model, this order will allow us to better compress the local spatial patterns of the model.
  • the coding method follows the following approaches.
  • a first phase allows the elimination of redundant information.
  • the embeddings (i.e. the geometry) are coded either on the fly during the course of the course or independently during an additional pass.
  • the decoder proceeds symmetrically.
  • the route strategy defines the order in which the elements constituting the model (here strands) will be encountered during the encoding and decoding process. We proceed strand by strand, step by step, using the immediate vicinity of each strand, thus forming a method called "region-growing", to describe the relations of adjacency, incidence between these elements.
  • An arbitrary strand is chosen as the starting point of the path of each connected component of the model, it is inserted into an (ordered) set of strands waiting to be processed. Then, each time a strand is removed from A and is encoded, then its untreated neighbors are in turn added to this set to be encoded, this until the complete conquest of all the strands of the connected component (plus no strand in A).
  • the strategy of conquest of the strands is thus defined as the choice of a strand in the set A.
  • the vicinity of a strand is obtained by application of the involutions a, at this strand.
  • the criteria chosen are a higher priority for the strands discovered by involutions of weak indices and, in the case of equality, the first-in-first-out rule is applied.
  • the choice of a strand in the set A follows these two criteria: if a strand b is found on a ,, its priority is - /, in case of equality of priority when choosing a strand, the order of discovery of the strands intervenes to decide between them.
  • the examples below illustrate this journey. In all the figures, the strands are numbered in the order in which they are processed (ie encoded), and not in the order in which they are discovered.
  • a strand can take 3 distinct states: - un-visited: it has not yet been met during the course;
  • the strand is waiting to be treated (it belongs to A) because one of its neighbors has been treated;
  • Each strand is described in terms of symbols that express the connection state (neighborhood) of that strand for each involution (i.e. on each dimension).
  • the image by involution a, of this strand is defined by 3 symbols:
  • - B border: the current strand is on a / -bord (fixed point of the involution, the image is the strand itself);
  • - N new: the image of the current strand by this involution (the neighboring strand) has not been met previously (it is in the non-visited state);
  • a glue index is used to designate the corresponding strand. In the examples that follow, this index is the number of the strand, but it can take other forms.
  • the "-" character used next does not correspond to a real symbol, it is used to show the redundant information, which is eliminated during the first phase.
  • N N A ⁇ 2, 3 ⁇
  • the data are constructed by performing, for each strand, only a treatment of filling at first only a part of the relations of the strand, then to move to the next strand as defined in this part filled.
  • the symbols of relationship not yet identified are it when the course returns again by the strand not yet completed in terms of relationship symbols, a new treatment of this strand then defining other symbols remaining to be defined for other neighboring strands of strand in progress.
  • redundancies There are two types of redundancies.
  • involutions are bijections represented by bidirectional links between strands, it is therefore necessary to orient these links, according to the order imposed by the path ( see Figure 3), which translates to the characters - in the previous example).
  • Boolean functions a / (represented by gray arrows in FIGS. 3, 4 and 5):
  • the relevance of the information is determined by the state of the neighboring strands of our current strand, according to the approach described below.
  • the G-map structure makes it possible to satisfy incidence and adjacency queries between any type of geometric entities (for example hexahedron triangle, tetracèdre), it can then be reused in geometric applications and algorithms using such a method. compression / decompression. It is also integrable by example in a platform of calculation of visibility in urban environment.
  • N N B A ⁇ 2, 3 ⁇
  • N - B A ⁇ 4, 5 ⁇
  • the decoding phase (decoder 400 in FIG. 9) is exactly symmetrical to the encoding phase, that is to say that the strands and their links are constructed according to the symbols received, after decompression.
  • the strands are decoded one by one and the neighborhood is built progressively, which makes it possible to determine what are the involutions to be decoded for the next strands.
  • the same type of processing as the elimination of redundancies is used to determine for each strand which information is relevant, and therefore which involutions to read / decode in the symbol sequences.
  • the redundancies are reintegrated into the structure to make it valid, either during a second pass, or directly during the decoding of the symbol sequences.
  • the following procedure is advantageously performed.
  • symbols describe the vicinity of the current strand, which forms sequences on each of the dimensions, these sequences allow the reconstruction of the identical subdivision after decoding.
  • the symbols are arranged by involutions, so we have ⁇ / + 1 sequences corresponding to ⁇ / + 1 involutions in order to exploit any intra- / inter-dimensional correlations for compression, these sequences form as many files that we will compress through conventional methods of data compression.
  • the symbol sequences differ according to the path chosen on the G-map, which has an impact on their regularity and on the gluing indices.
  • symbol sequences we do not directly store the strand number when gluing (W symbols) but the current position of the strand in the queue, which tends to restrict the range of indices. Then, our particular course tends to make the sequences regular and to further reduce the gluing indices.
  • This gluing index can be omitted if the cells are not sewn on themselves (as for example with a hole face, (see FIG. 7), since it is possible to look for the strand to be glued on the orbit ⁇ a /wo ,a /wo+1> , invo being the index of the involution on which the symbol W has appeared.
  • compression methods can be employed, depending on the speed / compactness compromise, of which two alternatives are in particular the dictionary coding and the entropy coding of the symbols which previously requires a transformation of the sequence of symbols.
  • the signal including the compact and compressed representation is then transmitted over the network, for example via the internet to the desired receiver terminal (signal 500 in FIG. 9).
  • Wireless transmission for example by mobile phone, is of course provided.
  • the embeddings are associated with one of the strands of the dip orbit (a strand of the orbit ⁇ a ⁇ , a 2 , ⁇ A, a, for the coordinates of vertices for example). Only one strand of the orbit must explain the dip for this orbit (and possibly its presence if the dip is optional), and it is not necessarily the strand carrying the dip.
  • the starting point (strand) of the path of the vertices of the connected component is the same as that used for the description of the connectivity.
  • the summit orbit of the strand is marked “visited” (i.e. all the strands that make up the vertex) and the value of the embedding (the 3D coordinates) is encoded (predicted then quantified).
  • the neighboring vertex strands i.e. all neighbors of the current peak orbit strands are queued.
  • Each strand of the G-card is constituted in the following manner. It contains ⁇ / + 1 pointers to neighboring strands to represent ⁇ / + 1 involutions. A bit field is given for the different marks that the strands may have: for example the strands are marked in order to know if they are waiting in A, or whether they have been processed (encoded) or not.
  • a linked list is given for the embeddings associated with a strand.
  • the G-map consists of a linked list of all strands (or a strand of each connected component). For each of the ⁇ / + 1 involutions, a linked list represents the pending strands in A discovered on this involution. Operations on this set are to take the highest priority strand if there are waiting strands, put a new strand on hold, look for the strand corresponding to an index or find the index of a strand.
  • TOIS Transactions on Information Systems

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

L'invention concerne un procédé de représentation de connectivité d'un modèle géométrique se trouvant initialement sous forme de maillage, la représentation étant réalisée à l'aide d'une carte généralisée constituée d'une série de brins (1, 2, ..., 16) et d'une série de relations de connectivité (a0, a1, a2), caractérisé en ce qu'il comprend l'étape consistant à établir une représentation compacte de la connectivité sous la forme d'un historique de parcours par voisinage brin par brin de la carte généralisée.

Description

Procédé de représentation compacte de la connectivité d'un modèle géométrique
L'invention se situe dans le cadre de la compression de modèles géométriques de type maillages, en particulier dans le domaine du codage de la connectivité, c'est-à-dire les méthodes qui conservent les caractéristiques topologiques initiales du modèle.
Les modèles géométriques peuvent représenter toute sorte d'objet, tel qu'un plan de ville en trois dimensions ou une représentation destinée à des spécialistes d'un domaine particulier ayant besoin d'une visualisation particulière.
Plusieurs méthodes de compression de maillages ont vu le jour. On y distingue plusieurs catégories. Les méthodes hiérarchiques procèdent par simplifications successives (souvent des contractions d'arêtes), en accordant un coût à chacune des opérations de simplification et en choisissant une suite de simplifications dont le coût total ne dépasse par un certain seuil, qui définit le taux de compression.
D'autres méthodes s'attachent à coder la géométrie directement en utilisant des techniques de remaillage couplées à une analyse multi- résolution de la géométrie, par exemple via des ondelettes géométriques.
Enfin, la dernière catégorie, celle qui nous intéresse ici, se focalise sur la description de la connectivité (la façon dont sont connectés les éléments du maillage entre eux) et utilise l'information de connectivité. Ces utilisations de parcours se sont cantonnées à des tests sur les structures ainsi définies. Quant à la mémorisation de cette réprésentation par relations, les relations sont mémorisées brin par brin dans l'ordre de leurs numéros d'affectation. Une telle mémorisation s'est avérée lourde à mettre en œuvre.
Les travaux de Taubin et Rossignac [1] ont permis de représenter un maillage surfacique triangulaire par un graphe des triangles (les arcs relient les triangles qui partagent une arête). Le procédé de compression consiste à trouver un arbre couvrant un minimum du graphe (des faces), ce qui crée une sorte d'épluchure d'orange, et d'encoder cet arbre binaire de meilleure manière possible. Ensuite l'épluchure résultante est recollée correctement grâce à la description de l'arbre des sommets du bord de l'épluchure. Cet arbre définit un parcours dans le graphe des faces, dont on peut remarquer qu'il est spirale autour de la face de départ, avec un certain nombre d'accidents. C'est ainsi que sont nées d'autres méthodes dont la plus connue est EdgeBreaker [2]. Pour chaque élément du parcours (des triangles en général), un code est émis pour décrire la façon dont il est connecté avec ses voisins immédiats, ce qui définit la suite du parcours et ses éventuels accidents, puis les voisins non-visités sont traités à leur tour. Ainsi, pour EdgeBreaker, le nombre de cas différents (et donc de codes) s'élève à 5, suivant les relations d'incidence du triangle courant avec le bord courant de la partie encodée. Ces codes sont ensuite compressés en leur assignant un nombre de bits différents (codage entropique, 1 bit pour le plus fréquent contre 3 bits pour les autres). Les triangles considérés ne constituent pas une G-carte telle qu'on la définira ci-après.
La géométrie associée aux maillages (position des sommets plus d'éventuelles coordonnées de texture) est souvent transmise au fur et à mesure de la description de la connectivité, c'est-à-dire au fur et à mesure que sont rencontrés de nouveaux sommets lors du codage. Cette géométrie est prédite en fonction des sommets précédemment codés, soit grâce à une fonction linéaire des ancêtres, soit grâce à la règle du parallélogramme. Le résidu (différence entre la valeur prédite et la valeur réelle) est ensuite quantifié puis compressé (codage entropique).
Tourna et Gotsman [3] ont initié l'approche à base de codage des valences/degrés des cellules, qui a inspiré de nombreuses méthodes. Il s'agit de compter le nombre de sommets des faces et le nombre de faces incidentes à un sommet donné alternativement (et éventuellement de les prédire mutuellement), car plus les maillages sont réguliers, moins ces valeurs varient. Ainsi, les codes décrivant la connectivité sont directement les valeurs de valence/degrés excepté deux types d'accidents de parcours : le «split» divise le parcours en deux branches (par exemple pour un maillage en Y), alors que le «merge» réassemble deux branches différentes (leur nombre est directement lié au genre de la surface, considéré comme négligeable devant le nombre de sommets). Depuis, beaucoup de travaux sur le codage de la connectivité ont été réalisés, d'abord pour des maillages surfaciques triangulaires, puis ensuite pour des maillages polygonaux, des maillages volumiques tétrahédriques et enfin hexaèdriques.
Dans ces méthodes, différentes structures topologiques sont utilisées pour décrire les informations de connectivité des modèles géométriques. Les structures half-edge sont souvent utilisées pour les maillages surfaciques moyennant quelques adaptations. Pour des hexaèdres, une structure spin-edge convient. A chaque fois, ces structures sont spécialisées, c'est-à-dire qu'elles ne peuvent représenter que certains types de subdivisions. Par conséquent les méthodes décrites ne peuvent pas se généraliser aisément à d'autres types de modèles.
Ces méthodes ont naturellement quelques défauts, relatifs aux hypothèses implicites ou explicites sur les maillages considérés. A chaque type de maillage (triangulaire, polygonal puis récemment tétraèdrique et hexaèdrique), une méthode différente est utilisée, employant à chaque fois une structure spécifique pour ce type de maillage, ce qui rend difficile la généralisation des algorithmes en dimension supérieure. Il n'existe donc pas à l'heure actuelle, de méthodes de compression fonctionnant en dimension quelconque. De plus, les bords sont considérés comme peu nombreux et donc sont souvent gérés comme des cas particuliers coûteux (en terme de place occupée dans le fichier compressé) dans les algorithmes.
De plus, les plongements sont linéaires : une arête est forcément plongée en un segment de droite, par conséquent elle est forcément formée de 2 sommets différents. Les cas pathologiques de cellules cousues sur elles-mêmes (par exemple une demi-sphère constituée d'une seule face incurvée, et donc d'une seule arête avec un seul sommet) ne sont donc pas traités.
De plus, dans ces méthodes, les surfaces sont toujours orientables et n'ont pas de trous. L'invention vise à résoudre ces inconvénients, c'est à dire à permettre la compression de modèles géométriques indifféremment de leur géométrie de subdivision (de cellule) et indépendemment de leur dimension car chacune des dimensions est traitée de la même façon dans l'algorithme, ce qui permet de combler le défaut de non-généricité des approches classiques.
Cette méthode permet donc de compresser aussi bien les maillages avec beaucoup de bords que ceux avec très peu de bords.
On vise, outre la souplesse d'application à différentes géométries de cellules, également à permettre une mémorisation et/ou une transmission moins lourde d'une représentation de maillage.
Ce but est atteint selon l'invention grâce à un procédé de représentation de connectivité d'un modèle géométrique se trouvant initialement sous forme de maillage, la représentation étant réalisée à l'aide d'une carte généralisée constituée d'une série de brins et d'une série de relations de connectivité, caractérisé en ce qu'il comprend l'étape consistant à établir une représentation compacte de la connectivité sous la forme d'un historique de parcours par voisinage brin par brin de la carte généralisée.
On propose également selon l'invention un dispositif de compression d'une représentation correspondant à un modèle géométrique se trouvant initialement sous la forme d'un maillage, caractérisé en ce qu'il comporte des moyens de compression d'une représentation compacte de connectivité se présentant sous la forme d'un historique de parcours par voisinage brin par brin d'une carte généralisée associée au modèle géométrique, la carte généralisée étant constituée d'une série de brins et de relations de connectivité. On propose également selon l'invention un signal de transmission de données représentatives d'un modèle géométrique initialement sous forme de maillage, caractérisé en ce que les données sont celles d'une représentation compacte de la connectivité sous la forme d'un historique de parcours par voisinage brin par brin d'une carte généralisée associée au modèle géométrique, laquelle carte généralisée est constituée d'une série de brins et d'une série de relations de connectivité.
On propose également selon l'invention un procédé de transmission d'un signal incluant une représentation d'un modèle géométrique initialement sous forme de maillage, le procédé étant caractérisé en ce qu'il comprend l'étape consistant à compresser une représentation compacte de connectivité se présentant sous la forme d'un historique de parcours par voisinage brin par brin d'une carte généralisée associée à ce modèle géométrique, la carte généralisée étant constituée d'une série de brins et d'une série de relations de connectivité.
On propose également selon l'invention un procédé d'enregistrement d'un signal incluant une représentation d'un modèle géométrique initialement sous forme de maillage, caractérisé en ce qu'il consiste à enregistrer une représentation compacte de connectivité sous la forme d'un historique de parcours par voisinage brin par brin d'une carte généralisée associée à ce modèle géométrique, la carte généralisée étant constituée d'une série de brins et d'une série de relations de connectivité.
On propose également selon l'invention un programme d'ordinateur caractérisé en ce qu'il commande la transformation d'un modèle géométrique sous forme de maillage en une représentation compacte de connectivité se présentant sous la forme d'un historique de parcours par voisinage brin par brin d'une carte généralisée associée au modèle géométrique, la carte généralisée étant constituée d'une série de brins et d'une série de relations de connectivité. On propose également selon l'invention un programme d'ordinateur commandant une lecture d'une représentation d'un modèle géométrique initialement sous forme de maillage, caractérisé en ce qu'il comprend des instructions de lecture d'une représentation compacte de connectivité se présentant sous la forme d'un historique de parcours par voisinage brin par brin d'une carte généralisée associée au modèle géométrique, la carte généralisée étant constituée d'une série de brins et d'une série de relations de connectivité.
D'autres caractéristiques, buts et avantages de l'invention apparaîtront à la lecture de la description détaillée qui va suivre, faite en référence aux figures annexées sur lesquelles :
- la figure 1 représente une partie de G-carte conforme à l'état de la technique ;
- la figure 2 illustre un exemple de représentation compacte par parcours d'une G-carte conforme à l'invention ;
- les figures 3 à 5 représentent trois types de parcours visant à éviter des redondances ; - la figure 6 illustre un second exemple de représentation par parcours d'une G-carte selon l'invention ;
- la figure 7 représente une cellule ayant une face à trou, du type repliée sur elle-même ;
- la figure 8 est un organigramme représentant un procédé conforme à l'invention ;
- la figure 9 illustre une structure de chaîne de transmission conforme à l'invention.
Comme on le verra par la suite, la méthode décrite ici s'appuie sur une expression du modèle sous forme de G-carte et décrit la connectivité entre brins (élément de base de la structure G-carte) plutôt que d'autres primitives géométriques. On décrira également un type de parcours qui tend à améliorer la compression car il rend les séquences de symboles plus régulières.
On va maintenant définir ce que l'on entend, ici et habituellement, par G-carte ou carte généralisée.
Dans la suite, le terme de /-cellule sera utilisé pour désigner les entités de dimension / du modèle : les sommets sont des 0-cellules, les arêtes des 1 -cellules, les faces des 2-cellules, etc. De plus, le terme dimension ne s'appliquera qu'à la connectivité et non aux plongements, par exemple un maillage triangulaire est de dimension 2 (c'est une surface), même si les coordonnées des sommets sont plongés dans un espace 3D. Les cartes généralisées inventées par Lienhardt [8, 9] permettent de représenter des variétés avec ou sans bords, orientables ou non. Cette représentation se compose d'un seul type d'élément appelé brin et d'un seul type de relation (d'incidence et d'adjacence) entre ces brins. Ainsi dans cette représentation, les /-cellules ne sont pas représentées explicitement (comme dans le cas de l'IndexedFaceSet de VRML), mais elles sont déduites des relations entre les brins, comme nous allons le voir un peu plus loin.
Une carte généralisée de dimension Λ/ (Λ/-G-carte) se définit donc de la manière suivante : G=(β,ao,a1,a2,...,aΛ/) , avec B est l'ensemble des brins et les a, sont des relations entre les brins. Ces relations vérifient les propriétés suivantes :
« 0 < i < N, ai est une involution (dite simple), c'est-à-dire que BjLaLb))Fb.
« i,j, 0< i < i+2 < j≤ N ,ai.aj(b) est aussi une involution (dite composée). « i<N, ai est sans point fixe (il existe b tel que ai(b)=b)
Par la première propriété, les brins sont appareillés deux à deux sur chaque dimension / excepté dans le cas de points fixes où un brin est lié à lui-même, il est donc qualifié de /-libre et définit un /-bord.
Dans l'exemple de la figure 1 , les brins 4 et 10 sont liés entre eux sur la dimension 2, alors que le brin 5 est 2-libre : a2(4)=9,a2(9)=4,a2(5)=5.
La deuxième propriété correspond intuitivement à l'hypothèse de variété topologique, c'est-à-dire que les /-cellules doivent être cousues, collées entre elles via des (/-1 )-cellules de même forme (homéomorphes).
Dans l'exemple de la figure 1 , les faces (2-cellules) sont adjacentes par une arête (1 -cellule) définie par les brins 3,4,9,10. Enfin, la troisième propriété indique que ces /-cellules que l'on peut éventuellement coudre sont sans bords, cette restriction est levée par la suite, afin de permettre la représentation en G-carte en cours de construction.
Figure imgf000010_0001
(groupes de permutation) définissent l'ensemble des brins obtenus par composition des involutions ajk , c'est-à-dire l'ensemble des brins que l'on peut atteindre en partant d'un brin donné et en parcourant de toutes les manières possibles les involutions a*. Par exemple, <a1,a2>(2)={2,3,10,11}. Les /-cellules (sommets, arêtes, faces, Ψ) sont définies par des orbites particulières qui sont constituées de toutes les involutions sauf a,. Intuitivement, l'involution a, permet de sortir d'une /-cellule et de rentrer dans la /-cellule adjacente par le brin considéré. Ainsi, en sautant toutes les involutions des brins de la cellule sans en sortir (par a,), on obtient tous les brins constitutifs de la cellule. Par exemple, <ao,a1>(2) est l'orbite face (2- cellule) associée au brin 2, c'est-à-dire la face incidente au brin 2.
On appelle plongement les données qui complètent les données de connectivité et qui localisent un élément (un brin) dans le plan ou l'espace donné. Il s'agit donc des données de localisation. Une structure définie par une G-carte a pour avantage de n'occuper qu'une faible place en mémoire pour ce qui est des données de localisation. En effet, la description des liens définit la structure avec très peu de données de plongement nécessaires.
Les plongements sont souvent associés à l'un des brins composant l'orbite. Par exemple, pour expliciter des coordonnées tridimentionnelles pour les sommets, seul un brin dans chaque orbite sommet (<a1,a2> en 2D) va être plongé. Sur la figure 1 , les brins 1 ,2,6,4,14,12 par exemple seraient plongés.
Dans la suite, par abus de langage, nous désignerons par «involution d'un brin» l'image d'un brin par une involution donnée. Les G- cartes seront représentées comme des multi-graphes dont les noeuds (demi-arêtes) sont les brins et les arcs relient deux brins images l'un de l'autre par une involution, les arcs étant values par l'indice de cette involution.
Une G-carte est donc une structure B-Rep (représentation par les bords), ordonnée, c'est-à-dire qu'elle décrit un ordre sur les cellules incidentes à un type de cellule donné, de même que pour les Winged-
Edge, Half-Edge, etc. Pour les G-cartes, ces cellules sont les brins, qui peuvent être vus comme des (-i )-cellules (cf. [9]).
Pour coder efficacement la géométrie, des méthodes classiques comme [4-7] pourront être utilisées.
La méthode fait appel à la représentation G-carte, l'idée maîtresse consiste à profiter de l'unique type d'élément et l'unique type de relations entre eux pour définir un algorithme de compression indépendant de la dimension des variétés à compresser. De plus, on ne se contente pas ici d'une simple définition des relations de chaque brin avec l'ensemble de ses voisins, ce qui occuperait, comme dans l'art antérieur, une place importante en mémoire. Il s'agit ici d'utiliser la structure de G-carte pour mémoriser celle-ci selon un parcours de la structure, en allant d'un brin à un brin voisin dans la structure et ainsi de suite. Cette approche de représentation sous la forme d'un parcours d'une G-carte est une représentation particulièrement compacte donc propice à la transmission de signaux, après compression.
Ainsi, on préconise une représentation compacte de la structure, sous la forme d'un parcours brin à brin d'une structure expressément choisie sous forme d'une G-carte.
On en tire la souplesse voulue en termes d'adaptation à divers types de cellules ainsi que la compacité voulue.
Un parcours permet d'expliciter progressivement les relations de voisinage entre cellules (ici les brins) via l'émission de symboles pour décrire les différents cas de connectivité, ces symboles sont ensuite compressés par des méthodes classiques. Ce type d'approche permet de compresser au mieux les régularités spatiales locales ou globales du modèle, cette remarque vaut aussi bien pour les plongements que pour la topologie et est le point commun de beaucoup de méthodes de compression de modèles géométriques. Cette méthode tire ainsi partie des spécificités des G-cartes. Les G- cartes permettent en effet de représenter toutes les variétés N- dimensionnelles. L'algorithme est valable quelque-soit la dimension car il exploite le fait qu'il n'y ait qu'un seul type d'élément et un seul type de relation entre eux, pour chacune des dimensions la méthode est la même. Il s'agit d'un modèle ordonné, cet ordre va nous permettre de mieux compresser les régularités spatiales locales du modèle.
La méthode de codage suit ici les approches suivantes.
On met en place une stratégie de parcours (conquête de brins) qui détermine l'ordre dans lequel codeur et décodeur vont rencontrer les brins constitutifs de chaque composante connexe.
Lors du parcours, pour chaque brin, une première phase permet l'élimination d'informations redondantes.
Lors d'une deuxième phase, des symboles sont émis pour décrire le voisinage de ce brin (sa connectivité). Les séquences de symboles obtenues pour chacune des involutions sont ensuite compressées grâce à des méthodes classiques de compression de données.
Les plongements (i.e. la géométrie) sont codés soit à la volée pendant le parcours, soit de façon indépendante lors d'une passe supplémentaire.
En sortie de transmission, le décodeur procède de manière symétrique.
Il met en œuvre une décompression des séquences de symboles. Il recréé des brins et reconstitue des connexions à l'aide de ces séquences. II reconstruit les redondances, i.e. il répare la G-carte. Il met en outre en œuvre le décodage des plongements. La stratégie de parcours définit l'ordre dans lequel les éléments constitutifs du modèle (ici des brins) vont être rencontrés lors du processus d'encodage et de décodage. Nous procédons brin par brin, de proche en proche, en utilisant le voisinage immédiat de chaque brin, formant ainsi une méthode dite «region-growing», afin de décrire les relations d'adjacence, d'incidence entre ces éléments.
Un brin arbitraire est choisi comme point de départ du parcours de chaque composante connexe du modèle, il est inséré dans un ensemble (ordonné) A de brins en attente d'être traités. Ensuite, à chaque fois un brin est retiré de A et est encodé, puis ses voisins non-traités sont à leur tour ajoutés à cet ensemble pour être encodés, ceci jusqu'à la conquête complète de tous les brins de la composante connexe (plus aucun brin dans A). La stratégie de conquête des brins se définit donc comme le choix d'un brin dans l'ensemble A. Le voisinage d'un brin est obtenu par application des involutions a, à ce brin.
Le parcours respecte la contrainte précédente c'est-à-dire qu'un brin ne peut et ne doit être encodé que s'il a été rencontré précédemment lors de l'encodage d'un autre brin (excepté pour le premier brin d'une composante connexe). De plus, le choix du prochain brin à traiter dans l'ensemble a beaucoup d'influence sur les séquences de symboles produites et par conséquent sur sa compressibilité. Son choix est donc assez important.
Dans notre cas, nous allons choisir une stratégie à des fins d'illustration, mais la méthode reste valable quelque-soit le parcours adopté. Les critères choisis sont une plus grande priorité aux brins découverts par des involutions d'indices faibles et, en cas d'égalité, on applique la règle du « premier entré-premier sorti ». Le choix d'un brin dans l'ensemble A suit donc ces 2 critères : si un brin b est découvert sur a,, sa priorité est de -/, en cas d'égalité de priorité lors du choix d'un brin, l'ordre de découverte des brins intervient pour les départager. Les exemples ci-après illustrent ce parcours. Sur toutes les figures, les brins sont numérotés dans l'ordre où ils sont traités (i.e. encodés), et non pas dans l'ordre où ils sont découverts.
Pendant le parcours, un brin peut prendre 3 états distincts : - non-visité : il n'a pas encore été rencontré lors du parcours ;
- visité : le brin est en attente d'être traité (il appartient à A) car l'un de ses voisins à été traité ;
- traité : le voisinage du brin a été décrit ;
Chaque brin est décrit en termes de symboles qui expriment l'état de connection (le voisinage) de ce brin pour chaque involution (i.e. sur chaque dimension). Pour chaque brin, l'image par l'involution a, de ce brin est définie par 3 symboles :
- B (border) : le brin courant est sur un /-bord (point fixe de l'involution, l'image est le brin lui-même) ; - N (new) : l'image du brin courant par cette involution (le brin voisin) n'a pas été rencontré précédemment (il est dans l'état non-visité) ;
- W (waiting) : le voisin du brin courant (c'est à dire l'image du brin courant par cette évolution) a déjà été rencontré précédemment (état visité, il appartient donc à A), mais il n'a pas encore été encodé, un indice de recollement est utilisé pour désigner le brin correspondant. Dans les exemples qui vont suivre, cet indice est le numéro du brin, mais il peut prendre d'autres formes.
Le caractère « - » utilisé ensuite ne correspond pas à un symbole réel, il est utilisé pour montrer les informations redondantes, qui sont éliminées lors de la première phase.
Ces différents symboles constituent à chaque fois une séquence de symboles, chaque séquence décrivant alors une involution (une seule, celle du brin courant).
On décrira maintenant un premier exemple. Pour illustrer la méthode, voyons un exemple de codage d'un triangle sur 1 dimension (2 involutions, pas d'information de connectivité entre faces). Les séquences de symboles obtenues sont celles de la figure 2. Au départ, le brin 1 (un brin arbitraire de la composante connexe) est mis en attente dans A. Lors de son traitement, 2 nouveaux brins sont découverts et mis en attente (symboles N pour les involutions a0 et a.,), le brin 2 d'abord (par l'involution d'indice 0, priorité 0) puis le brin 3 (indice 1 , priorité -1 ). Ensuite, nous traitons le brin 2 (de priorité plus grande), nous savons déjà qu'il est connecté à 1 (d'où le -) il découvre le brin 5, puis vient le tour du brin 3 (égalité de priorité entre 3 et 5, 3 est apparu avant donc traité en premier), puis vient le tour du brin 4 (priorité plus forte). Lorsque l'on arrive au brin 5, le brin 6 a déjà été rencontré précédemment (il a été découvert par le brin 4). Cela signifie la fermeture de la face ; l'indice du brin à appareiller est donc indiqué et inscrit dans la représentation compacte, nous pouvons remarquer que c'est le prochain brin en attente dans ce cas. Ce résultat obtenu est la série de séquences suivantes pour les brins 1 à 6 de la figure 2. ai : 0 1 A={1}
1 : N N A={2, 3}
2 : - N A={3, 5}
3 : N - A={4, 5}
4 : - N A={5, 6}
*5 : W6 - A={6}
6 : _ A=U
Dans une variante, on construit les données en n'effectuant, pour chaque brin, qu'un traitement consistant à ne remplir d'abord qu'une partie seulement des relations du brin, puis à passer au brin suivant tel que défini dans cette partie remplie. Les symboles de relation non encore identifiés le sont lorsque le parcours repasse à nouveau par le brin non encore complété en termes de symboles de relation, un nouveau traitement de ce brin définissant alors d'autres symboles restant à définir pour d'autres brins voisins du brin en cours. Dans le présent exemple, afin d'éviter de recontrer plusieurs fois les mêmes brins et donc de décrire plusieurs fois leurs relations d'incidence, il est nécessaire de procéder à une phase préliminaire d'élimination de redondances dans la structure G-carte. Cette phase permet d'établir pour chaque brin si les images des involutions de ce brin doivent être décrites ou non, elle s'effectue lors du parcours, juste avant l'encodage du brin courant. Il existe deux types de redondances.
Le premier type de redondances recouvre celles des involutions simples liées à la propriété 1 : les involutions sont des bijections représentées par des liens bidirectionnels entre brins, il est donc nécessaire d'orienter ces liens, en fonction de l'ordre imposé par le parcours (cf. Figure 3), ce qui se traduit par les caractères - dans l'exemple précédent).
Le deuxième type de redondances recouvre celles des involutions composées liées à la propriété 2 : soit les informations de bords sont déjà connues (cf. figure 4), soit plusieurs chemins relient 2 mêmes brins (cf. figure 5), a/.ay<0)=ay-.a/(0)=3) auquel cas nous pouvons en supprimer.
Lors d'une première phase, pour chaque brin b rencontré lors du parcours, nous définissons donc des fonctions booléennes a/ (représentées par des flèches grises sur les figures 3, 4 et 5) :
- a/(b)=wa/si l'information est pertinente ;
- Sinon a/(ύ)=faux (pour éliminer les redondances).
L'involution a,(ϋ) est décrite et parcourue si et seulement si aj(b)=vrai, sinon il n'est pas nécessaire de la prendre en compte à cause des redondances. La pertinence de l'information est déterminée grâce à l'état des brins voisins de notre brin courant, selon l'approche décrite ci- dessous.
Pour les involutions simples, si a,{ύ) a été traité (et a,{ύ)1ύ), alors il faut ignorer l'involution a, pour b, c'est-à-dire que a/(ύ)=faux (cf. figure 3). Sur la figure 2, nous pouvons apercevoir les involutions a0 en bleu et a1 en vert. Les flèches montrent le résultat de l'élimination des redondances, ce qui a pour effet d'orienter les involutions.
Pour les involutions composées, comme évoqué précédemment, elles permettent de déduire deux types d'informations : - Les bords de cellules ;
- Les connections entre cellules.
Considérant une involution composée a,,ay, avec /<y, notre choix est d'éliminer l'un des liens ay. Plus précisément, étant donné que a/,ay(ύ)=ay,a/{ύ), il n'est pas utile de préciser les 2 images a,{ay(ύ)) et ay(a,{ύ)), c'est pourquoi nous ne décrivons pas la deuxième. Le codage des a, est déterminé par la règle des involutions simples. Voyons comment nous procédons pour les ay.
Pour le cas de bords, si le brin a,{ύ) a été traité (et a,{ύ)1ύ) (cf. figure 4, b étant le brin 1 ), il n'est pas nécessaire d'expliciter que b est un y-bord (i.e. aj{b)=b), puisque le brin a,{ύ) (le brin 0) l'a déjà fait. Par conséquent,
Figure imgf000017_0001
Pour le cas connecté, dans le cas où a,{ύ) a été traité (et a,{ύ)1ύ)
(cf. figure 5), c'est-à-dire pour les brins 1 et 3, il n'est pas nécessaire d'expliciter les ay, donc a/(1
Figure imgf000017_0002
Au contraire, pour le brin 2, il est nécessaire de préciser a,, car le brin 3 peut être soit un nouveau brin (N), soit un brin déjà rencontré (W) (mais en aucun cas un bord), d'où
Figure imgf000017_0003
Dans le cas où c'est un brin déjà rencontré, la priorité du brin correspondant peut être revue à la hausse pour qu'elle corresponde à celle d'une involution a, afin de traiter ce brin de la même façon que si c'était un nouveau brin, ce qui rend la séquence de symboles plus régulière.
La structure de G-carte permet de satisfaire des requêtes d'incidence et d'adjacence entre tout type d'entités géométriques (par exemple triangle hexaèdre, tetracèdre), elle peut ensuite être réutilisée dans des applications et algorithmes géométriques utilisant une telle méthode de compression/décompression. Elle est d'ailleurs intégrable par exemple dans une plateforme de calcul de visibilité en environnement urbain.
On décrira maintenant un deuxième exemple. Nous voyons sur la figure 6 le résultat de l'encodage de 2 triangles adjacents par l'arête 5,6,7,8. On peut déjà remarquer deux motifs qui se ressemblent dans les séquences de symboles, entre les parties 1-6 et 7-12, correspondant chacune à un triangle.
Le résultat obtenu est la série de séquences suivantes, correspondant respectivement aux brins 1 à 12 de la figure 6. a aii : : 0 0 1 1 2 2 A={1}
1 : N N B A={2, 3}
2 : - N - A={3, 5}
3 : N - B A={4, 5}
4 : - N - A={5, 6} * *55 :: W W66 - - N N A={6, 7}
6 : - - - A={7}
7 : N N - A={8, 9}
8 : - N - A={9, 11}
9 N - B A={10, 11} 1 100 :: - - N N - - A={11 , 12}
11 : W12 - B A={12}
12 : _ _ _ A={ }
Toutes ces déductions peuvent être factorisées en une seule fonction de détermination de a/. Voici l'algorithme écrit en C utilisé lors du codage : void determine_alpha_prime(Dart* dart) { for (k=0; k<NB_INVOS; ++k) { alphaPrime[k] = true;
} for (k=0; k<NB_INVOS; ++k) { if (!m_map->isFree(dart, k)) { // le brin n'est pas k-libre anotherDart = m_map->alpha(dart, k); // alpha_k(brin) if (m_map->isMarked(anotherDart, m_markTreated)) { alphaPrime[k] = false; // involutions simples for (m=k+2; m<NB_INVOS; ++m) { alphaPrime[m] = false; // involutions composées
Figure imgf000019_0001
} } } } La phase de décodage (décodeur 400 sur la figure 9) est exactement symétrique à la phase d'encodage, c'est-à-dire que l'on construit les brins et leurs liaisons en fonction des symboles reçus, après décompression. Les brins sont décodés un à un et le voisinage est construit au fur et à mesure, ce qui permet de déterminer quelles sont les involutions à décoder pour les prochains brins. Lors du décodage, le même type de traitement que l'élimination des redondances est utilisé pour déterminer pour chaque brin quelles sont les informations pertinentes, et donc quelles sont les involutions à lire/décoder dans les séquences de symboles.
Pour chacun de ces symboles reçus, sur une involution a, on rencontre l'un ou l'autre des symboles N, W, B et ou on tire les actions suivantes : Si le symbole N est rencontré, nous construisons un nouveau brin que nous relions à notre brin courant via l'involution a, . Si le symbole W est rencontré, nous cherchons le brin à coudre dans la file d'attente grâce à l'indice de recollement, puis nous re-créons le lien vers le brin courant. Si le symbole B est rencontré, le brin courant est lié à lui-même via a,.
Enfin, les redondances sont réintégrées dans la structure pour la rendre valide, soit lors d'une deuxième passe, soit directement pendant le décodage des séquences de symboles. Pour la compression des séquences de symboles, on procède avantageusement comme suit. Tout au long du parcours, des symboles décrivent le voisinage du brin courant, ce qui forme des séquences sur chacune des dimensions, ces séquences permettent la reconstruction à l'identique de la subdivision après décodage. Les symboles sont rangés par involutions, nous avons donc Λ/+1 séquences correspondant aux Λ/+1 involutions afin d'exploiter d'éventuelles corrélations intra-/inter-dimensions pour la compression, ces séquences forment autant de fichiers que nous allons compresser grâce à des méthodes classiques de compression de données.
Les séquences de symboles diffèrent suivant le parcours choisi sur la G-carte, ce qui a une incidence sur leur régularité et sur les indices de recollement. Dans les séquences de symboles, nous ne stockons pas directement le numéro du brin lors de recollement (symboles W) mais la position actuelle du brin dans la file d'attente, ce qui tend à restreindre la plage des indices. Ensuite, notre parcours particulier a tendance à rendre les séquences régulières et à réduire encore les indices de recollement. Cet indice de recollement peut être omis si les /-cellules ne sont pas cousues sur elles-mêmes (comme par exemple avec une face à trou, (cf. figure 7), car il est possible de chercher le brin à recoller sur l'orbite <a/wo,a/wo+1>, invo étant l'indice de l'involution sur laquelle le symbole W est apparu.
Plusieurs méthodes de compression (compresseur 200 et décompresseur 300 sur la figure 9) peuvent être employées, dépendant du compromis rapidité/compacité, dont 2 alternatives sont notamment le codage par dictionnaire et le codage entropique des symboles qui nécessite préalablement une transformation de la séquence de symboles.
Au vu des séquence produites expérimentalement, de nombreux motifs répétitifs apparaissent, et peuvent être donc facilement exploités par un compresseur à dictionnaire, comme par exemple [10]. Leur inconvénient est de n'être efficaces que sur de longues séquences. Un codeur arithmétique [11] ou entropique peut également être employé sous certaines conditions. En effet, nous avons constaté expérimentalement que la fréquence d'apparition des N peut être comparable à celle des W, ce qui suggère que le codage entropique brut des symboles (en fonction des probabilités instantanées d'apparition des symboles) ne serait pas efficace. Il faut donc appliquer une transformation du signal des symboles, qui peut consister en un comptage du nombre d'occurrences successives d'un même symbole (Run Length Encoding). Les termes constants ou peu variables sont ensuites absorbés par le codage entropique. Les indices de recollement peuvent être prédits pour limiter leur étendue, soit en cherchant manuellement (en parcourant les orbites citées précédemment) le brin à appareiller, soit en fonction des indices précédemment apparus.
Du fait de la gestion des bords comme un cas normal, les subdivisions comprenant beaucoup de bords telles que les soupes de polygones sont compressées aussi efficacement que les subdivisions avec très peu de bords, car les séquences de symboles sont constituées d'un grand nombre de symboles identiques consécutifs (ce sont respectivement des B et des N).
Le signal incluant la représentation compacte et compressée est alors transmis sur le réseau, par exemple via internet vers le terminal récepteur souhaité (signal 500 sur la figure 9). La transmission sans fil, par exemple par téléphone mobile, est bien sûr prévue.
Etant donné la variété des types de plongements (coordonnées n- dimensionnelles, courbes de béziers, patch de grégory, textures, couleur, etc.), il est difficile de donner une méthode générale pour décrire chaque type de plongement. Le codage des plongements peut s'effectuer quant à lui de deux manières.
Il peut s'effectuer à la volée, pendant la description de la connectivité. L'avantage est alors la rapidité et la simplicité de codage, mais sa mise en oeuvre est difficile.
Il peut aussi être effectué une fois l'ensemble des relations décrites et mémorisées. On en tire alors une certaine progressivité, une bonne adaptativité et un meilleur taux de compression. L'invention permet l'utilisation de méthodes classiques décrites dans [3-6]. Les plongements sont associés à l'un des brin de l'orbite plongement (un brin de l'orbite <aλ,a2,ΛA,a,^> pour les coordonnées de sommets par exemple). Seul un brin de l'orbite doit expliciter le plongement pour cette orbite (et éventuellement sa présence si le plongement est optionnel), et ce n'est pas forcément le brin portant le plongement.
Nous avons ici choisi d'effectuer le codage des plongements lors d'une passe séparée afin de disposer de la topologie complète pour leur prédiction. Nous ne codons ici que les coordonnées tridimensionnelles des sommets. Pour cela, un parcours des sommets du maillage est effectué et la différence entre le sommet courant et le sommet précédemment encodé lors du parcours est quantifiée grâce à un quantificateur scalaire uniforme. Bien sûr, d'autres types de prédiction ainsi que d'autres méthodes de quantification ou compression peuvent être utilisées, et d'autres types de plongements peuvent être traités (comme des textures par face par exemple). Plus précisément, le parcours des sommets s'effectue ici de la manière suivante.
Le point de départ (brin) du parcours des sommets de la composante connexe est le même que celui qui a servi pour la description de la connectivité.
L'orbite sommet du brin est marquée « visitée » (i.e. tous les brins qui constituent le sommet) et la valeur du plongement (les coordonnées 3D) est encodée (prédite puis quantifiée).
Les brins des sommets voisins (i.e. tous les voisins des brins de l'orbite sommet courante) sont mis en file d'attente.
Pour chaque brin pris dans la file d'attente, s'il n'est pas marqué (donc n'a pas été encodé), nous procédons de la même façon, nous marquons toute l'orbite sommet puis nous codons la valeur du plongement associé. Nous détaillerons maintenant les structures de données et algorithmes que nous avons utilisés dans lïmplémentation du présent codeur/décodeur. Chaque brin de la G-carte est constitué de la manière suivante. Il contient Λ/+1 pointeurs vers les brins voisins pour représenter les Λ/+1 involutions. Un champ de bits est donné pour les différentes marques que peuvent avoir les brins : par exemple les brins sont marqués afin de savoir s'ils sont en attente dans A, ou s'ils ont été traités (encodés) ou non.
Une liste chaînée est donnée pour les plongements associés à un brin.
De plus, la G-carte est constituée d'une liste chaînée de tous les brins (ou bien d'un brin de chaque composante connexe). Pour chacune des Λ/+1 involutions, une liste chaînée représente les brins en attente dans A découverts sur cette involution. Les opérations sur cet ensemble sont de prendre le brin le plus prioritaire s'il reste des brins en attente, de mettre un nouveau brin en attente, chercher le brin correspondant à un index ou trouver l'index d'un brin. L'algorithme de compression se décompose ici en 2 parties. Une première partie traite l'encodage de la topologie puis une deuxième partie traite l'encodage de la géométrie associée. Le décodage étant symétrique, nous ne le précisons pas ici. for (every connex component) { b = an arbitrary dart from the connex component; encode_topo(b); // encode the topology encode_geo(b); // encode the geometry
}
Pour la connectivité : void encode_topo(Dart* ce) { A.add(cc); while (!A.isEmpty()) { b = A.pick_highest_priority(); determine_alpha_prime(b);
Figure imgf000023_0001
encode_alpha_i_prime(b, i); } } }
Pour les plongements, une liste P stocke les brins des orbites en attente d'être codées : void encode_geo(Dart* ce) { P.add(cc); while (!P.isEmpty()) b = P.pick(); if (!b.isVisited()) markOrbitVertex(b); encodeVertex(b); P.add(neighboor_orbit(b)); } }
Figure imgf000024_0001
Références
[1] G. Taubin and J. Rossignac, "Géométrie compression through topological surgery," ACM Transactions on Graphics, vol. 17, pp. 84- 115, 1998.
[2] J. Rossignac, "Edgebreaker: Connectivity Compression for Triangle Meshes," IEEE Transactions on Visualization and Computer Graphics, vol. 5, pp. 47-61 , 1999.
[3] C. Tourna and C. Gotsman, "Triangle Mesh Compression," presented at Proceedings of Graphics Interface, Vancouver, 1998.
[4] M. Isenburg and P. Alliez, "Compressing polygon mesh geometry with parallelogram prédiction," presented at Proceedings of the conférence on Visualization '02, Boston, Massachusetts, 2002. [5] M. Isenburg and J. Snoeyink, "Compressing Texture Coordinates with Sélective Linear Prédictions," presented at Proceedings of
Computer Graphics lntemationalO3, 2003. [6] P. H. Chou and T. H. Meng, "Vertex Data Compression through
Vector Quantization," présentée! at IEEE Transactions on
Visualization and Computer Graphics, 2002.
[7] S. Gumhold and R. Amjoun, "Higher order prédiction for geometry compression," Proceedings of International Conférence On Shape
Modelling And Applications, pp. 59-66, 2003. [8] P. Lienhardt, "Topological models for boundary représentation : a comparison with n-dimensional generalized maps," Computer-Aided
Design, vol. 23, pp. 59-82, 1991. [9] P. Lienhardt, "N-Dimensional Generalized Combinatorial Maps and
Cellular Quasi-Manifolds," International Journal of Computational
Geometry and Applications, vol. 4, pp. 275-324, 1994. [10] T. A. Welch, "A technique for high-performance data compression,"
IEEE Computer, pp. 8-19, 1984. [11] A. Moffat, R. M. Neal, and I. H. Witten, "Arithmetic coding revisited,"
ACM Transactions on Information Systems (TOIS), vol. 16, pp. 256-
294, 1998.

Claims

REVENDICATIONS
1. Procédé de représentation de connectivité d'un modèle géométrique se trouvant initialement sous forme de maillage, la représentation étant réalisée à l'aide d'une carte généralisée constituée d'une série de brins (1 , 2, ..., 16) et d'une série de relations de connectivité (a0, a^, a2), caractérisé en ce qu'il comprend l'étape consistant à établir une représentation compacte de la connectivité sous la forme d'un historique de parcours par voisinage brin par brin de la carte généralisée.
2. Procédé selon la revendication 1 , caractérisé en ce que l'étape (100) d'élaboration de la représentation compacte comprend le fait de mettre en œuvre un dit traitement sur chaque brin (1 , 2, ..., 16) successivement rencontré, ce traitement consistant à identifier l'existence d'au moins un brin voisin (1 , 2, ..... 16) appartenant à l'une des catégories constituées respectivement : a) des brins non rencontrés dans aucun desdits traitements antérieurs (N). b) des brins déjà rencontrés en tant que voisin dans un desdits traitement antérieur (W),
3. Procédé selon la revendication 2, caractérisé en ce que pour chaque traitement d'un nouveau brin au cours du parcours, on identifie une partie seulement des appartenances aux catégories a) et b) parmi les brins voisins du brin (1 , 2, ..., 16) soumis audit traitement.
4. Procédé selon la revendication 3, caractérisé en ce que, pour chaque traitement d'un nouveau brin au cours du parcours, on identifie l'appartenance éventuelle auxdites catégories a) et b) pour l'un seulement desdits brins voisins.
5. Procédé selon la revendication 2, caractérisé en ce que, pour chaque traitement d'un nouveau brin au cours du parcours, on identifie la totalité des appartenances aux catégories a) et b) des brins voisins du brin (1 , 2, ...16) soumis audit traitement.
6. Procédé selon l'une quelconque des revendications 2 à 5, caractérisé en ce que, lorsque l'on identifie l'appartenance d'un brin voisin à la catégorie des brins déjà rencontrés (W), on inscrit une identification de ce brin voisin au sein dudit historique de parcours.
7. Procédé selon l'une quelconque des revendications 2 à 6, caractérisé en ce que l'on identifie, au cours desdits traitements, l'appartenance éventuelle d'un brin voisin à la catégorie (B) constituée des brins formant le bord d'une carte généralisée.
8. Procédé de compression de données correspondant à un modèle géométrique se trouvant initialement sous la forme d'un maillage, caractérisé en ce qu'il consiste à effectuer une compression (200) d'une représentation compacte de connectivité se présentant sous la forme d'un historique de parcours par voisinage brin par brin d'une carte généralisée associée au modèle géométrique, la carte généralisée étant constituée d'une série de brins (1 , 2, ..., 16) et de relations de connectivité (a0, ai, a2).
9. Dispositif de compression (200) d'une représentation correspondant à un modèle géométrique se trouvant initialement sous la forme d'un maillage, caractérisé en ce qu'il comporte des moyens de compression d'une représentation compacte de connectivité se présentant sous la forme d'un historique de parcours par voisinage brin par brin d'une carte généralisée associée au modèle géométrique, la carte généralisée étant constituée d'une série de brins (1 , 2, ..., 16) et de relations de connectivité (a0, ai, a2).
10. Signal de transmission de données représentatives d'un modèle géométrique initialement sous forme de maillage, caractérisé en ce que les données sont celles d'une représentation compacte de la connectivité sous la forme d'un historique de parcours par voisinage brin par brin d'une carte généralisée associée au modèle géométrique, laquelle carte généralisée est constituée d'une série de brins (1 , 2, ..., 16) et d'une série de relations de connectivité (a0, ai, a2).
11. Procédé de transmission d'un signal incluant une représentation d'un modèle géométrique initialement sous forme de maillage, le procédé étant caractérisé en ce qu'il comprend l'étape consistant à compresser une représentation compacte de connectivité se présentant sous la forme d'un historique de parcours par voisinage brin par brin d'une carte généralisée associée à ce modèle géométrique, la carte généralisée étant constituée d'une série de brins (1 , 2, ..., 16) et d'une série de relations de connectivité
Figure imgf000028_0001
12. Procédé d'enregistrement d'un signal incluant une représentation d'un modèle géométrique initialement sous forme de maillage, caractérisé en ce qu'il consiste à enregistrer une représentation compacte de connectivité sous la forme d'un historique de parcours par voisinage brin par brin d'une carte généralisée associée à ce modèle géométrique, la carte généralisée étant constituée d'une série de brins (1 , 2, ..., 16) et d'une série de relations de connectivité (a0, ai, a2).
13. Programme d'ordinateur caractérisé en ce qu'il commande la transformation d'un modèle géométrique sous forme de maillage en une représentation compacte de connectivité se présentant sous la forme d'un historique de parcours par voisinage brin par brin d'une carte généralisée associée au modèle géométrique, la carte généralisée étant constituée d'une série de brins (1 , 2, ..., 16) et d'une série de relations de connectivité
Figure imgf000028_0002
14. Programme d'ordinateur commandant une lecture d'une représentation d'un modèle géométrique initialement sous forme de maillage, caractérisé en ce qu'il comprend des instructions de lecture d'une représentation compacte de connectivité se présentant sous la forme d'un historique de parcours par voisinage brin par brin d'une carte généralisée associée au modèle géométrique, la carte généralisée étant constituée d'une série de brins (1 , 2, ..., 16) et d'une série de relations de connectivité
Figure imgf000028_0003
PCT/EP2005/054316 2004-09-13 2005-09-01 Procede de representation compacte de la connectivite d'un modele geometrique WO2006029962A1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0409678 2004-09-13
FR0409678 2004-09-13

Publications (1)

Publication Number Publication Date
WO2006029962A1 true WO2006029962A1 (fr) 2006-03-23

Family

ID=34948353

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2005/054316 WO2006029962A1 (fr) 2004-09-13 2005-09-01 Procede de representation compacte de la connectivite d'un modele geometrique

Country Status (1)

Country Link
WO (1) WO2006029962A1 (fr)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10985775B2 (en) 2014-12-10 2021-04-20 Kyndi, Inc. System and method of combinatorial hypermap based data representations and operations

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6313837B1 (en) * 1998-09-29 2001-11-06 Schlumberger Technology Corporation Modeling at more than one level of resolution

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6313837B1 (en) * 1998-09-29 2001-11-06 Schlumberger Technology Corporation Modeling at more than one level of resolution

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
LIENHARDT P ED - HANSMANN W ET AL EUROPEAN ASSOCIATION FOR COMPUTER GRAPHICS: "SUBDIVISIONS OF SURFACES AND GENERALIZED MAPS", EUROGRAPHICS. HAMBURG, SEPT. 4 - 8, 1989, PROCEEDINGS OF THE EUROPEAN COMPUTER GRAPHICS CONFERENCE, AMSTERDAM, NORTH HOLLAND, NL, vol. CONF. 10, 4 September 1989 (1989-09-04), pages 439 - 451, XP000143270 *
SZYMCZAK A ET AL: "PIECEWISE REGULAR MESHES: CONSTRUCTION AND COMPRESSION", GRAPHICAL MODELS, ELSEVIER, SAN DIEGO, US, vol. 64, no. 64, May 2002 (2002-05-01), pages 183 - 198, XP001141091, ISSN: 1524-0703 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10985775B2 (en) 2014-12-10 2021-04-20 Kyndi, Inc. System and method of combinatorial hypermap based data representations and operations

Similar Documents

Publication Publication Date Title
FR2786591A1 (fr) Procede et dispositif de codage a maillage tridimensionnel progressif
US9064311B2 (en) Method for compressing/decompressing a three-dimensional mesh
FR2786590A1 (fr) Procede et dispositif de codage/decodage a maillage tridimensionnel pour resilience vis-a-vis des erreurs et rendu incremental
JP5033261B2 (ja) 共有頂点情報を用いた低複雑度3次元メッシュ圧縮装置及び方法
EP0627693B1 (fr) Dispositif de segmentation d&#39;images composées de textures
EP0967573A1 (fr) Dispositif de traitement de données d&#39;acquisition, notamment de données d&#39;image
FR2798761A1 (fr) Procede de construction d&#39;un modele de scene 3d par analyse de sequence d&#39;images
FR2933514A1 (fr) Procedes et dispositifs de codage et de decodage par similarites pour documents de type xml
WO2000008604A1 (fr) Affinement selectif de mailles
WO2008110719A1 (fr) Procede de codage de donnees representatives d&#39;une texture multidimensionnelle, dispositif de codage, procede et dispositif de decodage, signal et programme correspondants
US20020063707A1 (en) Forming method for structuring polygonal mesh data and apparatus, and storage medium
EP1116185B1 (fr) Methode de compression et de codage d&#39;un reseau maille tridimensionnel
EP1800263A2 (fr) Procede de decodage local d&#39;un train binaire de coefficients d&#39;ondelettes
WO2006029962A1 (fr) Procede de representation compacte de la connectivite d&#39;un modele geometrique
WO2000008603A1 (fr) Simplification et codage d&#39;un maillage source
Floriani et al. Compressing triangulated irregular networks
EP1574068A1 (fr) Procede de codage d&#39;une image par ondelettes et procede de decodage correspondant
JP2002199401A (ja) 画像符号化装置、画像復号化装置、電子カメラ、および記録媒体
WO2000074387A1 (fr) Codage d&#39;images hierarchiques a transformation variable
WO2002095620A2 (fr) Procede de discretisation d&#39;attributs d&#39;une base de donnees
WO2000077737A1 (fr) Compression et codage de reseau maille tridimensionnel
EP1121665B1 (fr) Procede de codage d&#39;un maillage source, avec optimisation de la position d&#39;un sommet resultant d&#39;une fusion d&#39;arete, et applications correspondantes
Hsin et al. Adaptive Binary Arithmetic Coder‐Based Image Feature and Segmentation in the Compressed Domain
FR2929431A1 (fr) Procede et dispositif de classification des echantillons representatifs d&#39;un signal numerique d&#39;image
CN117765218A (zh) 一种地形建筑混合模型的轻量化方法及系统

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 BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KM KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NG NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SM SY 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): BW GH GM KE LS MW MZ NA 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 IS IT LT LU LV MC NL PL 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
NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase