Brevet FR2781908A1 — publié le 20000204

Procédé de codage d'un maillage à nombre réduit de facettes, procédé de reconstruction et applications correspondants. Le domaine de l'invention est celui du codage d'images ou d'éléments d'images. Plus précisément, l'invention concerne la représentation et le codage adaptatifs de scènes (ou d'objets d'une scène) en trois dimensions (3D) représentées par des maillages. L'invention trouve des applications dans tous les domaines o il est souhaitable de réduire le nombre d'informations nécessaires pour représenter efficacement une image numérique, pour la stocker et/ou la transmettre. Par exemple, l'invention peut être utilisée pour la transmission d'images via le réseau Internet. Dans ce cadre, elle permet l'animation de scènes 3D avec une visualisation en temps réel, bien que le débit ne soit pas constant ni garanti. L'invention peut, dans ce cas, être une primitive d'un langage de transmission de données tel que VRML. Parmi les autres applications envisageables, on peut citer le stockage de données animées sur CD-ROM (ou support de données équivalent), les applications multi-utilisateurs, la télévision numérique,... L'invention propose une amélioration aux méthodes dites "à ondelettes", qui permettent de représenter un maillage comme une succession de détails ajoutés à un maillage de base. La théorie générale de cette technique est notamment décrite dans l'article de M. Lounsberry, T. DeRose et J.Warren, "Multiresolution analysis for surfaces or arbitrary topological type" (ACM Transaction on Graphics, Vol.16, No. 1, pp.34-73). Selon cette technique, un maillage est donc représenté par une suite de coefficients qui correspondent aux coordonnées dans une base d'ondelettes d'une paramétrisation dudit maillage par un polyèdre simple. Les principes mathématiques correspondants sont rappelé en annexe (cette annexe fait partie de la présente description). En pratique, lors de la reconstruction, le maillage de base M0 est représenté sous une forme arborescente: chacune de ses faces est la racine d'un arbre dont les fils de chaque noeud sont les quatre faces obtenues après subdivision canonique. Les coefficients d'ondelettes sont indexés par leurs coordonnées barycentriques sur une face de Mo. Une technique de subdivision a été proposée par A. Certain, Jovan Popovic, T. DeRose, T. Duchamp, D. Salesin et W. Stuetzle, dans l'article "Interactive multiresolution surface viewing" (Computer Graphics Proceedings 1996). Cette technique consiste à opérer des subdivisions en observant une condition suffisante sur les sommets: un sommet est dit complet s'il est au milieu d'une arête partagée par deux faces qui sont subdivisées en quatre, ainsi que cela est illustré en figure 1. Le principe est de partir du sommet indexant le coefficient d'ondelette considéré et de rendre complet, par subdivision, ses voisins, puis les voisins de ses voisins, récursivement jusqu'à ce que tous les sommets considérés soient complets. Cette règle provient de l'observation que cet algorithme est suffisant pour assurer une subdivision adaptée aux modifications apportées par le coefficient d'ondelette considéré. Cette technique présente cependant un inconvénient important: elle induit la création de facettes inutiles, ce qui entraine une augmentation inutile du nombre des données nécessaires à la description du maillage. Plus précisément, des facettes inutiles sont créees par des subdivisions assurant la complétude des sommets évoqués plus haut. En d'autres termes, il y a création, dans des zones relativement éloignées du support de l'ondelette considérée, de facette coplanaires, ce qui nuit inutilement à l'efficacité de la visualisation de l'objet. On sait en effet que le nombre de données (et donc le nombre de facettes à des conséquences importantes, notamment lorsque l'objet concerné est animé, que la puissance du terminal est limitée et/ou que le débit de transmission est variable et/ou limité. L'invention a notamment pour objectif de pallier ces inconvénients de l'état de l'art. Plus précisément, un objectif de l'invention est de fournir un procédé de codage d'un maillage représentatif d'un objet en trois dimensions, qui produise un nombre de facettes restreint, par rapport à la technique connue, pour un niveau de qualité de restitution identique ou similaire. Un autre objectif de l'invention est de fournir un tel procédé de codage, dont la complexité (notamment en termes de nombre d'opérations effectuées et de capacité de mémoire nécessaire) soit inférieure, ou à tout le moins, du même ordre de grandeur, aux techniques connues. L'invention a également pour objectif de fournir un tel procédé de codage, permettant de disposer de plusieurs niveaux de qualité de restitution de l'objet, en fonction de critères divers (capacité de traitement du terminal, capacité des moyens de mémorisation disponible, débit de transmission, besoins de l'utilisateur...). Encore un autre objectif de l'invention est de fournir un tel procédé de codage, permettant une reconstruction progressive de l'objet. L'invention a également pour objectif, bien sûr, de fournir un procédé de reconstruction d'un objet codé selon ce procédé de codage. Ces objectifs, ainsi que d'autres qui apparaîtront par la suite, sont atteints selon l'invention à l'aide d'un procédé de codage d'un maillage source (M) représentatif d'un objet en trois dimensions, dans lequel on détermine un maillage simple (M0) présentant un nombre réduit de faces définies chacunes par des sommets et des arêtes, puis des coefficients dans une base d'ondelettes d'une fonction (f) dont ledit maillage source est l'image définie sur ledit maillage simple (M0), de façon à fournir des maillages affinés successifs (Mij). Selon l'invention, chacune des faces d'un desdits maillages (Mj) est subdivisée en un nombre limité de facettes pour former le maillage de niveau supérieur (Mj+1), les subdivisions de ladite face correspondant uniquement à celles nécessaires pour respecter une condition d'affinité de ladite fonction (f) sur ladite face. L'inventeur a en effet observé que la prise en compte d'un coefficient d'ondelette doit s'accompagner d'une subdivision locale au voisinage du sommet indexant l'ondelette en question, afin que cette dernière soit affine par morceaux sur chaque facette. Puisque les ondelettes sont des sommes de fonctions i, il suffit de savoir localiser le support d'une telle fonction et de subdiviser localement les facettes qui les contiennent jusqu'à ce que cette fonction soit affine sur chaque facette résultante. On notera que l'on utilise indifféremment, par la suite, les termes "face" et "facette". En général, une "facette" correspond à une subdivision d'une "face". Avantageusement, ledit maillage source (M) est décomposé en un ensemble d'arbres, chacun desdits arbres représentant une face dudit maillage simple (M0) et comprenant des noeuds représentant chacun une face d'un maillage (Mj), ladite fonction (f) étant affine sur chacun desdites faces. Alors, chacun desdits arbres est le plus petit tel que, lorsqu'une face donnée est subdivisée en quatre facettes, le noeud correspondant comprend quatre fils représentant lesdites quatre facettes. De façon avantageuse, le procédé de l'invention permet l'accès à plusieurs niveaux de qualité de codage, correspondant à chacun desdits maillages successifs. Cela est aisé, du fait de la structure même des subdivisions, comme cela apparaîtra par la suite. De façon préférentielle, lesdits maillages successifs sont obtenus par la mise en oeuvre d'un algorithme récursif. Le procédé est ainsi particulièrement simple à mettre en oeuvre. Selon un mode de réalisation avantageux, ledit algorithme récursif comprend les étapes suivantes: (a) réception d'un coefficient d'ondelette indexé par un sommet (s) de coordonnées barycentriques (a, ô, y) sur une face F0; (b) pour chaque face voisine Fi de F0 contenant ledit sommet (s): - on pose F = Fi; - on déduit des coordonnées barycentriques (a, [5, y) les coordonnées dudit sommet (s) dans la base affine formée des sommets de la face F, encore notées (ao, 3, y); - si les coordonnées a, [ ou y sont positives ou nulles et si deux d'entre elles sont strictement positives: on subdivise la face F; - on reprend le traitement à l'étape (b), pour les quatre fils de la face F successivement. L'invention concerne également un procédé de reconstruction d'un maillage source (M) représentatif d'un objet en trois dimensions et codé selon le procédé de codage décrit ci-dessus. Avantageusement, un tel procédé de reconstruction assure la reconstruction progressive dudit objet, à partir du maillage simple (M0) puis à l'aide des maillages successifs (Mi). De façon préférentielle, ce procédé de reconstruction permet l'accès à plusieurs niveaux de qualité de codage, correspondant à chacun desdits maillages successifs. L'invention s'applique avantageusement à de nombreux domaines, et peut notamment s'appliquer à au moins un des domaines suivants: - affichage d'objets maillés en trois dimensions sur un écran; affichage progressif d'objets maillés en trois dimensions sur un écran, lesdits coefficients d'ondelettes étant pris en compte au fur et à mesure de leur arrivée; - affichage d'objets maillés en trois dimensions sur un écran à au moins deux niveaux de détail, un niveau de détail correspondant à un desdits maillages successifs (Mi); - affichage de parties différentes d'un objet maillé avec au moins deux niveaux de détail différents; - compression d'un maillage d'un objet maillé. D'autres caractéristiques et avantages de l'invention apparaîtront plus clairement à la lecture de la description suivante d'un mode de réalisation préférentiel de l'invention, donné à titre de simple exemple illustratif et non limitatif, et des dessins annexés, parmi lesquels: - la figure 1, déjà commentée en préambule, illustre un sommet complet, selon la technique de Certain et AI.; - la figure 2 illustre le voisinage direct d'un sommet s, selon l'invention; - la figure 3 est un schéma synoptique général simplifié du procédé de codage selon l'invention; - la figure 4 est un schéma synoptique plus détaillé, reprenant et détaillant les étapes de localisation et de subdivision de la figure 3. Le procédé de codage d'un maillage selon l'invention vise donc, notamment, à opérer le nombre minimum de subdivisions nécessaires tout en restant de même complexité algorithmique que la technique connue. Dans toute la suite, on dira qu'un point s a pour coordonnées barycentriques (c,[3,y), sur une face F. si ses coordonnées barycentriques dans la base affine formée des sommets de Fo sont (cc,13,y). On omettra aussi de préciser M0 lorsqu'il n'y aura pas de confusion possible. L'algorithme de base de l'invention, indépendant de toute implémentation, est le suivant: 1. Recevoir un coefficient d'ondelette indexé par un sommet s de coordonnées barycentriques (cta,y,), sur une face Fo. 2. Pour chaque face voisine Fi de F0 contenant s: (a) F = Fi (b) Déduire de (a,3,y) les coordonnées de s dans la base affine formée des sommets de F. encore notés (a,[3,y). (c) Si a ou [3 ou y sont tous positifs ou nuls et deux d'entre eux sont strictement positifs i. Subdiviser F ii. Recommencer en (b) avec pour F ses quatre fils successivement A l'arrêt de l'algorithme, on dispose d'une subdivision minimale de M0 obtenue avec une complexité en temps linéaire par rapport au degré de subdivision. Le débit de transmission et/ou la capacité de stockage nécessaires sont donc optimisés. I convient de noter que l'invention permet de déterminer non seulement l'arbre minimal correspondant à f. mais aussi à chacune de ses approximations, en tronquant la somme (voir l'annexe): f= cOo+y djJd f=. i'ri "'ZZd i jAoi Cette somme étant justement obtenue de façon progressive, en ajoutant des termes successivement, on passe d'un arbre représentant une approximation fi à un arbre représentant: j,jv fi +ci. i (o cr est un coefficient d'ondelette transmis en n'effectuant que les subdivisions de facettes strictement nécessaire à la condition d'affminité sur chaque face. Il est ainsi possible de reconstruire progressivement l'objet, et/ou de choisir un niveau de qualité (correspondant à l'indice j). On peut représenter le maillage progressivement reconstruit comme n 4- arbres décrivant les divisions successives des n faces du maillage Mo transmis préalablement aux coefficients d'ondelettes. Chaque coefficient d'ondelette reçu est accompagné de trois entiers A, B et C proportionnels aux coordonnées barycentriques du sommet s indexant l'ondelette associée au coefficient, ainsi que d'un tiers désignan la face F0 indiquant une facette contenant s. Si s appartient à Mj+l, A, B et C sont déduits des coordonnées barycentriques ot,3 et y de s dans la base affmine formée des sommets de F0 par: (A, B, C) = 2 ij+l ( y) L'ondelette centrée en s est de la forme: i- Xi + E 0kCk keD o D est un voisinage de s sur le maillage Mi. La technique exposée dans la partie précédente doit donc être appliquée à chacune des fonctions qui apparaissent dans cette somme, avec leurs coordonnées barycentriques respectives. Ces coordonnées barycentriques sont exprimées dans la même base affine que celles de s, et déduites de ces dernières: le voisinage D est, pour un k fixé, l'ensemble des sommets de Mi distants d'au plus k arêtes de l'une des extrémités sI et s2 de l'arête de Mj contenant s, ainsi que cela est illustré en figure 2. Les coordonnées barycentriques de ces deux sommets sont caractérisées par le critère suivant: Le triplet (c',ó',) représente les coordonnées de l'un de ces deux points si et seulement si le triplet d'entiers (A', B', C') = 2J (cO,3', Y) vérifie: (2A' - A, 2B' - B, 2C' - C) E, o ú désigne l'ensemble: {(1,-1,0), (-1, 1, 0), (1,0,1), (-1, 0, 1), (0, 1,-1), (0,-1,1)} Ces deux voisins directs de s, s1 et s2, étant déterminés, les autres sont déterminés en appliquant k fois le critère suivant: soient u et v deux sommets de coordonnées barycentriques (a',5', Y) et (a"3", y"') respectivement, sur une face F. Alors u et v sont reliés par une arête sur Mj si et seulement si: 2J(a'-at, -", r"-y"f) E 8, ce qui donne explicitement le liste des sommets dans le voisinage D. Chacun de ces sommets, muni de ses coordonnées barycentriques (a, y,), peut ainsi donner lieu aux subdivisions nécessaires aux modifications apportées par la fonction Xi correspondante, selon une variante de l'algorithme décrit plus haut: on part du couple (A, B, C) = 2J (at,p,y) o j est le plus petit entier tel que A, B et C soient entiers, et on applique à chaque subdivision la matrice de changement de base à ce triplet, de telle sorte que l'on ne fait des tests de positivité que sur des entiers. Les quatre matrices de passage de la base affine représentée par les trois sommets d'une face aux bases affines représentées par les trois sommets de chacun des fils sont explicitement: 1--1 2 00 0 2 0 0 1 1 -1 0 2 0, 1 1 -1, 0 2 0 et -1 1 1 0 1 2 0 0 2 -1-1 1 1 -1 1 Le procédé décrit ci-dessdus est illustré, de façon très simplifiée, en figure 3. Pour chaque coefficient d'ondelette DJi reçu (31), on effectue une étape de localisation 32, dans laquelle on ramène les éléments à traiter dans la base affinme adéquate, puis une étape de subdivision (33) de chaque face considérée. Un exemple plus détaillé de mise en oeuvre de ces deux dernières étapes 32 et 33 est illustré en figure 4. La localisation 32 consiste à, 1Ji s'écrivant comme une somme pondérée de fonctions d'échelle au niveau j+1, déterminer les faces et les coordonnées barycentriques des points de M0 (ou sommets de Mj) indexant ces fonctions d'échelle. Ensuite, pour chaque triplet de coordonnées (at, 1,y) associé à une face F (41), on calcule (42) les coordonnées (ac',13' et Y) correspondant à (aot,y,) dans la base des sommets de F et on pose (a,[,y) = (a',5' et y). On effectue alors le test 43: (a > 0) et (3 > 0) et (y> 0) et ((a > 0) ou (a y> 0) ou ( y> 0)) Si le résultat est positif (44), on effectue une boucle de récursivité consistant à subdiviser (45) la face F en quatre fils Fi, puis, pour chaque fils Fi (46), poser F= Fi (47) et reprendre au niveau de l'étape 41, de façon récursive. Si le résultat du test 43 est négatif, on reprend (48) le traitement pour une nouvelle face F (41). Lorsque toutes les faces F ont été traitées, la subdivision est terminée (49). ANNEXE Une surface S dans l'espace peut être représentée comme l'image d'une fonction continue injective définie sur un polyèdre Mo de même type topo- logique et à valeurs dans R3. On dit alors que la surface est paramétrée par le polyèdre, et l'on appelle paramétrisation la dite fonction. Cette fonction est un triplet de fonctions à valeurs dans R, qui peuvent chacune être dé- veloppées dans une base de l'espace C (Mo) des fonctions continues sur le polyèdre à valeurs dans R. Dans le cas des surfaces maillées, on utilise cette technique pour obtenir une représentation compressée du maillage. En outre, l'utilisation d'onde- lettes comme fonctions de base en permet une représentation progressive, de la forme la plus grossière à la plus détaillée. Ces fonctions ne sont pas des ondelettes au sens classique, mais satisfont des relations de raffinement généralisant le concept d'analyse multirésolution: notons Mo un polyèdre sur lequel est défini une paramétrisation d'une surface M. On considère le sous-espace S0 de C (M0) engendré par les fonctions 09 définies comme suit: Yi est affine sur chaque facette, vaut l sur le i-ème sommet et 0 sur tous les autres. On définit de la même façon les sous-espaces Sj engendrés par les fonctions ó définies de la même manière mais en remplaçant M0 par le maillage M; obtenu en subdivisant canoniquement chaque facettes de Mj-1. Les espaces Sj sont de dimension finie, emboités, So étant le plus petit, et toute fonction continue de M0 dans R peut être approchée uniformément par une fonction d'un Sj pour j assez grand. C'est cette inclusion qui permet le codage progressif: si on note Wj un suppplémentaire de Sj dans Sj+1, et {i}/ (les ondelettes) une base de Wj, l'ensemble {} U U {} j>O0 forme une base de C (Mo). La fonction p paramétrant M s'écrit donc de manière unique p = 52 c,ó? + ZZ d 4, j>o i o les ci et les di sont dans R3, et sont appelés coefficients d'ondelettes. En pratique, les ondelettes sont choisies de telle sorte que leur support permette une détermination des coefficients d'ondelettes en O(n), o n est le nombre de sommets du maillage M: pour k entier fixé, si on note Dk,i l'ensemble des indices des sommets d'un maillage Mj qui sont à moins de k arètes de distance du sommet i, l'ondelette V){ est donnée par =+ IEDk,i de telle sorte que Qb soit à support dans Dk+l,;. Ainsi, lors de la reconstruction, l'influence d'un coefficient d'ondelette est limitée à un tel voisinage. REVENDICATIONS 1. Procédé de codage d'un maillage source (M) représentatif d'un objet en trois dimensions, dans lequel on détermine un maillage simple (Mo) présentant un nombre réduit de faces définies chacunes par des sommets et des arêtes, puis des coefficients dans une base d'ondelettes d'une fonction (f) dont ledit maillage source est l'image définie sur ledit maillage simple (M0), de façon à fournir des maillages affinés successifs (Mj), caractérisé en ce que chacune des faces d'un desdits maillages (Mj) est subdivisée en un nombre limité de facettes pour former le maillage de niveau supérieur (Mj+i), les subdivisions de ladite face correspondant uniquement à celles nécessaires pour respecter une condition d'affinité de ladite fonction (f) sur ladite face. 2. Procédé de codage selon la revendication 1, caractérisé en ce que ledit maillage source (M) est décomposé en un ensemble d'arbres, chacun desdits arbres représentant une face dudit maillage simple (M0) et comprenant des noeuds représentant chacun une face d'un maillage (Mj), ladite fonction (f) étant affine sur chacun desdites faces, et chacun desdits arbres étant le plus petit tel que, lorsqu'une face donnée est subdivisée en quatre facettes, le noeud correspondant comprend quatre fils représentant lesdites quatre facettes. 3. Procédé de codage selon l'une quelconque des revendications 1 et 2, caractérisé en ce qu'il permet l'accès à plusieurs niveaux de qualité de codage, correspondant à chacun desdits maillages successifs. 4. Procédé de codage selon l'une quelconque des revendications 1 à 3, caractérisé en ce que lesdits maillages successifs sont obtenus par la mise en oeuvre d'un algorithme récursif. 5. Procédé de codage selon l'une quelconque des revendications 1 à 4, caractérisé en ce que ledit algorithme récursif comprend les étapes suivantes: (a) réception (31) d'un coefficient d'ondelette indexé par un sommet (s) de coordonnées barycentriques (a, ô, y) sur une face F0; (b) pour chaque face voisine (47) Fi de F0 contenant ledit sommet (s) - on pose F = Fi; - on déduit des coordonnées barycentriques (a, 3, y) les coordonnées dudit sommet (s) dans la base affine (42) formée des sommets de la face F, encore notées (a, 13, y); - si les coordonnées a, [ ou y sont positives ou nulles et si deux d'entre elles sont strictement positives (43): - on subdivise la face F (45); - on reprend le traitement à l'étape (b), pour les quatre fils de la face F successivement. 6. Procédé de reconstruction d'un maillage source (M) représentatif d'un objet en trois dimensions et codé selon le procédé de codage de la revendication 1, caractérisé en ce que ledit objet est reconstruit progressivement, à partir du maillage simple (M0) puis à l'aide des maillages successifs (Mi). 7. Procédé de reconstruction selon la revendication 6, caractérisé en ce qu'il permet l'accès à plusieurs niveaux de qualité de codage, correspondant à chacun desdits maillages successifs. 8. Application du procédé de codage selon l'une quelconque des revendications 1 à 5 à au moins un des domaines suivants: - affichage d'objets maillés en trois dimensions sur un écran; - affichage progressif d'objets maillés en trois dimensions sur un écran, lesdits coefficients d'ondelettes étant pris en compte au fur et à mesure de leur arrivée; - affichage d'objets maillés en trois dimensions sur un écran à au moins deux niveaux de détail, un niveau de détail correspondant à un desdits maillages successifs (Mi); affichage de parties différentes d'un objet maillé avec au moins deux niveaux de détail différents; compression d'un maillage d'un objet maillé.