FR 2786590 A1 20000602 FR 9914938 A 19991126 PROCEDE ET DISPOSITIF DE CODAGE/DECODAGE A MAILLAGE TRIDIMENSIONNEL POUR RESILIENCE VIS-A-VIS DES ERREURS ET RENDU INCREMENTAL La présente invention se rapporte à un procédé progressif et à un dispositif de codage/décodage de données de maillage tridimensionnel (3D) caractérisés par leur résilience vis-à-vis des erreurs et leur construction incrémentale, utilisés dans les domaines du codage hybride synthétique et naturel du groupe des experts en images animées de type 4 (MPEG-4 SNHC), du langage de modélisation de réalité virtuelle (VRML), et analogues. Lors d'une transmission d'objets tridimensionnels composés de données de maillage tridimensionnel, il est très important de restaurer de façon incrémentale et résilient vis-à-vis des erreurs les données transmises tout comme de coder de manière efficace les données de maillage tridimensionnel. Dans l'éventualité où une erreur de données est générée du fait d'une erreur de trajet de transmission, une restauration progressive permet aux données transmises d'être partiellement restaurées et minimise la quantité de données de maillage devant être transmises. Une restauration résilient vis-à-vis des erreurs permet aux données transmises d'être restaurées indépendamment en unités des données transmises, sans considération de la présence d'erreurs générées dans une unité spécifique des données transmises, ce qui a pour effet l'amélioration de l'efficacité de restauration de données et la réduction des temps d'attente d'un usager. Le procédé de restauration progressive et résilient aux erreurs qui est robuste à de telles erreurs de trajet de communication peut être utilisé de manière efficace dans des communications sans fil et dans des communications à faible vitesse de transmission. Les buts de la présente invention sont de construire la connectivité, la géométrie et la photométrie nécessaires pour coder des données de maillage en 3D progressivement et procurer la résilience vis-à-vis des erreurs de données, et de proposer un procédé de codage/décodage de celles-ci. Dans le processus de codage classique de données de maillage tridimensionnel, étant donné que les données de maillage sont entièrement codées, il est pratiquement impossible de restaurer partiellement des données avant qu'un flux binaire soit reçu dans sa totalité. De même, du fait des erreurs de trajet de transmission générées durant une transmission, même si seule une partie des données est endommagée, le flux binaire de données entier doit être reçu de nouveau. Par exemple, la norme ISO/IEC JTC1/SC29/WG11 MPEG98/W23C1, le "MPEG-4 SNHC Vérification Model 9. 0" proposé par IBN Corp. est couramment adopté en tant que technologie de codage de maillage en 3D MPEG-4 SNHC. Dans le MPEG-4 SNHC, un codage de maillage est conçu sur la base d'un VRML. Dans le VRML, un maillage est décrit sous une forme de noeuds appelée Ensemble-de-FacettesIndexées. L'une des principales technologies destinées à coder des données de maillage est une chirurgie topologique proposée par IBM Corp. Conformément à cette technologie, il est admis que tout maillage donné est topologiquement identique à une sphère. Puis, le maillage est découpé le long d'une arête de coupe donnée de manière à générer un graphe développé des triangles ayant une structure arborescente binaire. Ici, l'arête de coupe définie pour couper le maillage est configurée de manière à connecter les sommets du maillage, c'est-à-dire qu'elle est conçue comme une structure arborescente présentant une boucle. L'arête de coupe est appelée graphe développé de sommets. De cette manière, deux structures arborescentes, c'est-àdire le graphe développé des triangles et le graphe développé des sommets, sont codées/décodées, restaurant de ce fait le maillage original sans perte. Conformément au MPEG-4 SNHC, bien que l'on puisse trouver de nombreux Ensembles-de-Facettes-Indexées dans un fichier VRML, une compression est généralement réalisée sur l'unité de l'un des Ensembles-de-Facettes-Indexées. Cependant, il est permis de former un seul Ensemble-deFacettes-Indexées par plusieurs composantes reliées. En règle générale, lors d'un traitement rapide de graphes, une modélisation peut être réalisée sous la forme d'unités de triangles. Ces triangles ne sont pas formés de manière aléatoire mais sont de préférence reliés entre eux en formant des bandes ou des faisceaux. De même, plus les symboles sont représentés de manière répétitive, meilleure est la compressibilité. A cette fin, un maillage formé par une longue bande unique de triangles est proposé par IBM Corp. en vue d'un traitement de graphe rapide et d'une meilleure compressibilité. Les figures 1A à 1F représentent un processus classique destiné à générer un graphe développé des sommets et un graphe développé des triangles, dans un exemple de maillage en triangles. Les figures 1A et 1D représentent un procédé de découpage d'un maillage le long d'arêtes de coupe, représentées par un trait épais. La figure 1B représente le format général des arêtes de coupe. La figure lE représente la configuration des arêtes et des sommets produits par la découpe le long des arêtes de coupe représentées sur la figure 1B. La figure 1C représente un graphe développé des sommets réalisé en connectant des sommets faisant référence à des points de coupe. La figure 1F représente un graphe développé des triangles défini comme une bande qui est un ensemble de triangles reliés obtenu par découpage du maillage le long du graphe développé des sommets. De même, si le graphe développé des triangles est généré par le procédé représenté sur les figures 1A à 1F, la longueur de l'un des deux parcours de branches du graphe développé des triangles devient considérablement plus court que l'autre. Les figures 2A à 2D représentent un exemple d'une technique de chirurgie topologique appliquée aux données de maillage réelles. Dans un graphe développé des sommets, une branche peut se ramifier en plusieurs branches. La figure 3 représente un exemple d'un graphe développé des sommets possédant une boucle, dans lequel un parcours de sommets revient à l'emplacement de l'un des sommets précédents. Etant donné qu'un maillage peut être formé de nombreuses composantes reliées, chaque composante reliée formant le maillage génère une paire formée d'un graphe développé des sommets représenté sur la figure 1F et d'un graphe développé des triangles représenté sur la figure 1C. Par conséquent, si seul un Ensemble-de-Facettes-Indexées est codé, plusieurs paires de graphes développés des triangles et de graphes développés des sommets peuvent être obtenues. Le procédé destiné à restaurer les données codées à l'aide du procédé de technologie chirurgicale topologique décrit ci-dessus est le suivant : 1. Une boucle de liaison est générée par l'utilisation d'un graphe développé des sommets. 2. Lorsque le troisième sommet d'un triangle dont les branches se séparent pour former une arborescence développée des triangles, dénommé sommet Y, le sommet Y est calculé en utilisant les flux binaires de l'arborescence développée des triangles, et des jeux de triangles ou polygones possédant la connectivité en forme de bande sont générés. Ici, les triangles ou polygones sont générés par utilisation d'un bit de progression des triangles du graphe développé des triangles. 3. Les maillages sont restaurés en accord avec la géométrie topologique en utilisant les données de maillage d'une structure arborescente construite à travers les étapes 1 et 2. Une compression sans perte qui utilise un codage arithmétique du graphe développé des sommets et du graphe développé des triangles a été proposée par IBM Corp. Cependant, conformément à ce procédé, en vue de reconstruire la structure originale, tous les flux binaires doivent être entrés et les problèmes suivants apparaissent : 1. Etant donné que tous les flux binaires doivent être entrés en vue de décoder les données de maillage, dans l'éventualité d'une erreur de transmission tous les flux binaires doivent être de nouveau transmis. 2. Dans le cas où le volume des données compressées est important, par comparaison avec la largeur de bande, un long moment est nécessaire à la transmission complète des données et un utilisateur doit attendre durant tout ce temps. De façon à réduire le temps d'attente de l'usager, les maillages doivent être partiellement restaurés et rendus en utilisant les données transmises. Toutefois, avec les technologies actuelles, le nombre de triangles qui peuvent être restaurés est faible, comparé à la quantité de bits transmis, en regard de la structure de flux binaires. Afin de surmonter les inconvénients de la technologie classique, les fonctions suivantes doivent être satisfaites : 1. Les données de maillage doivent être partagées selon une taille d'unité effective en vue de la largeur de bande d'un trajet de transmission ou des caractéristiques d'un décodeur, et la résilience vis-à-vis des erreurs doit être permise de façon que les flux binaires possédant la taille d'unité soient restaurés et rendus par le décodeur. 2. Les procédés de codage/décodage incrémental doivent être autorisés de façon que la restauration et le rendu partiels d'une partie seulement des données en cours de réception soit possible. Une mise en #uvre de ces deux fonctions, tout en maintenant la structure de base du procédé classique proposé par IBM Corp., dépend d'un traitement efficace de la boucle de liaison et du sommet Y, comme cela est représenté sur la figure 4. Sur la figure 1F, les points 10, 14 et 18 sont des sommets Y. De façon à calculer un sommet Y, un des deux parcours de triangles de branches au moins doit être traité. En d'autres termes, pour des triangles à l'intérieur d'un parcours de triangles, des index pour les trois sommets de chaque triangle peuvent être déterminés grâce à l'utilisation de la configuration de bits de progression et de la boucle de liaison. Cependant, en vue de déterminer les index des sommets Y qui sont les troisièmes sommets des triangles d'embranchement, tous les flux binaires destinés à l'un des deux parcours de triangles se trouvant à proximité des triangles d'embranchement doivent être reçus. Par conséquent, les triangles se trouvant à proximité des triangles d'embranchement ne peuvent pas être restaurés pour être affichés jusqu'à ce que les flux binaires ultérieurs soient reçus. Ce problème ne survient pas dans le procédé classique proposé par IBM Corp., qui se fonde sur la supposition que tous les flux binaires sont reçus dans le décodeur. Cependant, en vue de restaurer et d'afficher des triangles de façon incrémentale, ce problème doit être résolu. Les définitions des termes utilisés dans la technique apparentée à l'invention seront décrites comme suit. # Maillage polygonal : un maillage polygonal est défini par les coordonnées (géométrie) dans un espace en 3D de sommets, la relation (connectivité) entre les faces respectives et les sommets formant les faces, et les informations de photométrie telle que couleur, normal ou texture, qui n'affectent pas la structure géométrique d'un maillage mais affecte l'apparence d'un maillage. # Face : une face est un jeu d'index de sommet et un coin est une paire (face, sommet) de jeux. Une face simple est un jeu d'index de sommet dans lequel différents index forment une face. Dans cette invention, seul un maillage polygonal constitué de faces simples sera traité. . Arête: une arête est une paire d'index de sommet. Si une arête apparaît sur une face seulement dans un maillage polygonal, l'arête est définie comme une arête "de limite". Si une seule et même arête apparaît sur plusieurs faces, l'arête est définie comme une arête "singulière". Si une arête apparaît sur deux faces voisines seulement, l'arête est définie comme une arête "interne". L'arête de limite et l'arête interne sont définies comme "ordinaires". # Graphe double : un point est défini à l'intérieur de chaque face d'un maillage et ensuite les points définis audessus et passant à travers l'arête interne entre faces voisines sont reliés pour être définis comme un graphe double. La figure 5A illustre un maillage polygonal et la figure 53 est un graphe double du maillage polygonal représenté sur la figure 5A. # Largage de modélisation de réalité virtuelle (VRML) : le VRML est un format standard graphique conçu pour la description et la transmission d'un espace virtuel sur Internet. Groupe des experts en images animées (MPEG) : le MPEG est un groupe servant à mettre en #uvre des activités de normalisation internationale pour la normalisation des formats de compression afin de transmettre une variété de supports tels que la vidéo. # Maillage : un maillage est une représentation d'un objet structuré sous forme de plusieurs polygones. # Noeud : un noeud est un sommet dans un graphe développé des sommets ou une unité de description minimale utilisée dans le VRML. # Chirurgie topologique : la chirurgie topologique est un procédé de codage de maillage proposé par IBM Corp. dans lequel un maillage est découpé le long d'un trajet donné en vue de faire prendre au maillage la forme de bandes. # Graphe développé des sommets : un graphe développé des sommets est un trajet servant à découper un maillage en chirurgie topologique. # Graphe développé de triangles : un arbre développé de triangles est un arbre binaire en forme de bande en triangles produite en coupant une maille le long du graphe développé des sommets. # vlast : vlast indique si le parcours en cours est ou non la dernière branche. Si le parcours en cours est la dernière branche, la valeur du vlast est 1 et sinon elle est 0. # vleaf : vleaf indique si le parcours des sommets en cours se termine par une feuille ou une branche. Si le parcours des sommets en cours se termine par une feuille, la valeur du vleaf est 1 sinon elle est 0. vrun : un vrun est un ensemble de sommets et d'extrémités connectés avec une branche ou un vleaf. vlength est la longueur d'un parcours de sommets. départ-de-boucle : la feuille d'un parcours de sommets peut rencontrer un autre parcours de sommets de manière à former une boucle. Dans un tel cas, le départ de la boucle est indiqué par un départ-de-boucle. # fin-de-boucle : dans le cas où la feuille d'un parcours de sommets forme une boucle, l'extrémité de la boucle est indiquée par une fin-de-boucle. # matrice-de-boucle : une matrice-de-boucle indique la connectivité entre le départ-de-boucle et la fin-de-boucle et c'est un jeu d'index reliant les arêtes de la fin-deboucle au départ-de-boucle. # trun : trun est un ensemble de triangles consécutifs et leur extrémité est un triangle feuille ou un triangle d'embranchement. # tleaf : tleaf indique si le parcours d'un triangle se termine par un triangle feuille ou par un triangle d'embranchement. Si le parcours d'un triangle se termine par un triangle feuille, la valeur de tleaf est 1 sinon elle est 0. # tmarching : tmarching décrit l'aspect de progression des triangles. Si une bande présente une arête sur sa limite droite, la valeur de tmarching est de 1. Si une bande présente une arête sur sa limite gauche, la valeur de tmarching est de 0. # polygonedge : polygonedge indique si une arête actuelle est donnée à partir du modèle de maillage original ou insérée pour représenter le polygone sous la forme d'un ensemble de triangles. Si une arête en course est donnée à partir du modèle de maillage original, la valeur de polygonedge est 1 sinon elle est 0. # triangulated : triangulated indique la présence d'un polygone dans la maille. # nvertices : nvertices indique le nombre de sommets. # nloops : nloops indique le nombre de boucles. nvedges : nvedges indique la grandeur d'un vrun. nvleaves : nvleaves indique le nombre de feuilles dans un graphe développé des sommets. # bitspernvedges : bitspernvedges indique le nombre de bits utilisés pour nvedges. # simple : si des boucles sont présentes dans un graphe développé des sommets, la valeur de simple est 0, et sinon 1. # ntriangles : ntriangles indique le nombre de triangles dans un graphe développé de triangles. # ntbranches : ntbranches indique le nombre de triangles partant en branches dans un graphe développé de triangles. # nmarchingtrans et nmarchingkeepleft sont des modèles statistiques pour la compression de Tmarching. # npolytrans et nkeeppoly sont des modèles statistiques pour la compression de Polygonedge. La figure 6 est un schéma synoptique sous forme de blocs conceptuel d'un procédé de codage d'informations de maillage tridimensionnel (3D). Sur la figure 6, un objet maillé en 3D 100 est divisé en informations de connexion, de géométrie et de photométrie, et codé grâce à une partie de codage 101 incluant un codeur de connexion 102, un codeur de géométrie 103 et un codeur de photométrie 112. Ici, des informations de structure en sommets 105 sont transmises depuis le codeur de connexion 102 au codeur de géométrie 103. Les informations compressées par le codeur de connexion 102, le codeur de géométrie 103 et le codeur de photométrie 112 sont combinées en un flux binaire et le flux binaire est compressé en flux binaire compressé 111 par un codeur d'entropie 104. Le flux binaire compressé 111 est entré dans une partie de décodage 112. En d'autres termes, le flux binaire compressé 111 est décompressé et divisé en informations de connexion, de géométrie et de photométrie via un décodeur d'entropie 106, pour être ensuite décodé par un décodeur de connexion 107, un décodeur de géométrie 108 et un décodeur de photométrie 113, respectivement. De manière analogue à la partie de codage 101, des informations de structure en sommets 109 sont transmises du décodeur de connexion 107 au décodeur de géométrie 108. Un objet maillé tridimensionnel décodé 110 peut être construit en utilisant les informations de connexion, de géométrie et de photométrie décodées. Comme cela est représenté sur la figure 6, un maillage en 3D peut être transmis sous la forme d'un flux binaire compressé sur un trajet de communication. Cependant, étant donné que le procédé de compression de données MPEG classique utilise le codeur d'entropie 104, le procédé est vulnérable à des erreurs de transmission générées sur le trajet de communication. Par conséquent, la présente invention propose une technologie pour résoudre les problèmes d'erreurs de transmission et restaurer progressivement des données de maillage en 3D en utilisant la connectivité, la géométrie et d'autres informations transmises. Afin de résoudre les problèmes ci-dessus, un but de la présente invention est de proposer un procédé destiné à coder/décoder progressivement des informations de maillage en 3D, par lequel une charge de réseau et un temps de transmission peuvent être réduits en retransmettant seulement une partie dans laquelle une erreur de transmission a été générée ou en restaurant les données indépendamment de la partie possédant une erreur de transmission, une augmentation du nombre de bits générés due à une restauration d'erreur dépendante des couches du réseau peut être minimisée, et l'information de maillage en 3D peut être restaurée progressivement en utilisant la connectivité, la géométrie et la photométrie de la partie transmise. En conséquence, pour atteindre les objectifs cidessus, il est proposé un procédé de codage d'un objet maillé (OM) tridimensionnel (3D) comprenant les étapes consistant à (a) diviser l'OM 3D polygonal en une ou plusieurs composantes reliées, (b) générer un graphe de sommets et un arbre triangles/données triangles pour chacune des composantes reliées et (c) reconstruire le graphe de sommets et l'arbre triangles/données triangles constituant la composante reliée en conformité avec les couches de base d'objet maillé (CBOM), chacune étant susceptible d'être décodée indépendamment pour les composantes reliées respectives et codée de la même manière. Selon un autre aspect de l'invention, il est proposé un procédé progressif et résilient vis-à-vis des erreurs de codage d'un objet maillé (OM) tridimensionnel (3D) polygonal comprenant les étapes consistant à (a) diviser l'OM 3D polygonal en une ou plusieurs composantes reliées, (b) générer un graphe de sommets et une paire d'arbres triangles/données triangles pour chacune des composantes reliées et (c) coder le graphe de sommets et l'arbre triangles/données triangles constituant les composantes reliées en conformité avec les couches de base d'objet maillé (CBOM), chacune possédant un type fixe de flux binaires capable d'être décodé indépendamment pour les composantes reliées respectives. Selon la présente invention, il est également proposé un procédé progressif et résilient vis-à-vis des erreurs de codage d'un objet maillé (OM) tridimensionnel (3D) polygonal comprenant les étapes consistant à (a) diviser l'OM 3D polygonal en une ou plusieurs composantes reliées, (b) générer un graphe de sommets et une paire d'arbres triangles/données triangles pour chacune des composantes reliées et (c) coder le graphe de sommets et l'arbre triangles/données triangles constituant les composantes reliées en conformité avec les couches de base d'objet maillé (CBOM), chacune possédant un type variable de flux binaire en accord avec les propriétés d'informations à coder, capable d'être indépendamment décodé pour les composantes reliées respectives. Selon un autre aspect de l'invention, il est proposé un procédé progressif et résilient vis-à-vis des erreurs de codage d'un objet maillé (OM) tridimensionnel (3D) polygonal comprenant les étapes consistant à (a) diviser l'OM 3D polygonal en une ou plusieurs composantes reliées, (b) générer un graphe de sommets et une paire d'arbres triangles/données triangles pour chacune des composantes reliées, (c) coder le graphe de sommets constituant les composantes reliées, et (d) construire l'arbre triangles/données triangles comme composantes reliées virtuellement et coder celles-ci en additionnant les paires de bits virtuels aux partitions de données obtenues en divisant l'arbre triangles/données triangles. Afin d'atteindre le but ci-dessus de la présente invention, dans le codage d'un objet maillé (OM) tridimensionnel (3D) triangle pour construction incrémentale et résilience vis-à-vis des erreurs, il est proposé un procédé de partition de l'OM 3D triangle en partitions devant être mises en paquets, le procédé incluant les étapes consistant à (a) calculer les quantités de génération de bits totales des triangles pendant que les triangles contenus dans un arbre triangles sont traversés en séquences, (b) cumuler les quantités de génération de bits totales calculées à l'étape (a), et (c) si la valeur cumulée de l'étape (b) est plus petite que le produit d'une taille de paquet et d'une ration de paquet, exécuter de façon répétitive les étapes (a) et (b) sur le triangle traversé suivant contenu dans l'arbre triangles, et sinon les arbres triangles/données triangles des triangles traversés sont divisés en partitions pour être mises en paquets. La présente invention propose aussi un procédé progressif et résilient vis-à-vis des erreurs de codage d'un objet maillé (OM) tridimensionnel (3D) polygonal comprenant les étapes consistant à (a) diviser les flux binaires d'entrée en unités de couches de base d'objet maillé (CBOM), (b) déterminer un type de partition des CBOM, (c) si un graphe de sommets est contenu dans les CBOM, décoder le graphe de sommets afin de générer une table de boucle englobante, (d) si l'arbre triangles/données triangles est contenu dans les CBOM, décoder l'arbre triangles/données triangles pour générer l'OM 3D, et (e) exécuter de façon répétitive les étapes (a) à (d) pour générer un OM 3D. Selon un autre aspect de la présente invention, il est proposé un procédé progressif et résilient vis-à-vis des erreurs de codage d'un objet maillé (OM) tridimensionnel (3D) polygonal comprenant les étapes consistant à (a) diviser les flux binaires d'entrée en unités de couches de base d'objet maillé (CBOM), (b) déterminer un type de partition des CBOM, (c) si un graphe de sommets est contenu dans les CBOM, décoder le graphe de sommets afin de générer une table de boucle englobante, (d) si l'arbre triangles/données triangles est contenu dans les CBOM, décoder l'arbre triangles/données triangles en unités de composantes reliées pour générer un OM 3D triangle, et (e) si les composantes reliées à l'étape (d) sont des composantes reliées virtuelles, exécuter de façon répétitive les étapes (a) à (d), et sinon compléter la génération d'un OM 3D triangle. Les buts ci-dessus et les avantages de la présente invention deviendront plusapparents en décrivant en détails un mode de réalisation préféré de celle-ci en faisant référence aux dessins en annexe dans lesquels : Les figures 1A à 1F illustre un procédé classique de génération d'un graphe développé de sommets et un graphe développé de triangles dans un exemple de maillage triangulaire ; Les figures 2A à 2D illustrent un exemple de chirurgie topologique ; La figure 3 illustre un exemple de graphe développé de sommets possédant une boucle ; La figure 4 illustre la formation d'une boucle englobante dans une chirurgie topologique ; Les figures 5A et 5B illustrent un maillage polygonal et un exemple d'un graphe double de celui-ci ; La figure 6 est un diagramme conceptuel d'un procédé de codage d'informations de maillage tridimensionnel (3D) ; La figure 7 est un diagramme conceptuel d'une représentation d'information d'objet maillé (OM) 3D ; Les figures 8A et 8B illustrent des exemples d'objet maillé (OM) 3D et de couche de base d'objet maillé (CBOM) ; La figure 9 est un diagramme conceptuel montrant la relation entre une paire d'arbre triangles et de données de triangles dans un index de boucle englobante ; Les figures 10A à 10C sont des diagrammes conceptuels de codage utilisant l'information d'orientation ; Les figures 11A et 11B sont des diagrammes pour comparer les ordres de codage dépendant de la présence d'information d'orientation ; Les figures 12A à 121 illustrent un procédé fixe de partition de données ; Les figures 13A et 13B sont des diagrammes conceptuels de partition de données ; Les figures 14A à 14D illustrent un procédé de partition de données variable ; Les figures 15A à 15D illustrent les partitions qui sont effectuées par le procédé de partition de données variable ; La figure 16 illustre une partition de données dans une branche principale ; La figure 17 illustre une partition de données utilisant le moyen tt ; Les figures 18A à 18C illustrent un procédé de formation de composantes reliées virtuelles ; La figure 19 illustre un exemple de transformation d'un polygone maillé en triangle maillé ; Les figures 20A à 20E illustrent des exemples de partition en maillage polygonal et syntaxes de celui-ci ; La figure 21 illustre un procédé d'indexage d'une boucle englobante et un procédé de codage de l'information d'en-tête des partitions produites ici ; La figure 22 illustre une partition de données comprenant une boucle englobante ; Les figures 23A et 23B illustrent des procédés de définition d'index de boucle englobante ; Les figures 24A à 24E illustrent des procédés de codage de géométrie ; Les figures 25A et 25B illustrent les syntaxes pour disposer les données telles que géométrie, couleur, information normale ou texCoord ; et La figure 26 est un diagramme conceptuel d'un procédé de codage de géométrie. Pour le traitement progressif d'un objet maillé 3D, dans la présente invention, une nouvelle structure de maille représentée sur la figure 7 est proposée. Ainsi que représenté sur la figure 7, un objet maillé 3D (OM) peut être divisé en plusieurs composantes reliées ou non reliées. Les composantes contenues dans l'objet maillé 3D peuvent être reconstruites comme plusieurs couches d'objet maillé (COM). Ici, chaque COM contient une ou plusieurs couches de base d'objet maillé (CBOM). La COM contient les connectivité, géométrie et photométrie nécessaires à sa propre restauration. En d'autres termes, l'OM est défini comme l'unité d'un objet maillé 3D à coder et il est divisé en plusieurs couches selon une qualité d'image variable et des fonctions de données de maillage. Chaque couche est définie comme une couche d'objet maillé (COM). De même, lorsqu'un objet maillé 3D est formé de plusieurs unités de données de maillage indépendantes non reliées (c'est-àdire, composantes reliées), les unités de données de maillage indépendantes sont combinées ou divisées en fonction de la taille de données à coder ou autres caractéristiques, ce qui est défini comme une couche de base d'objet maillé. Les figures 8A et 8B illustrent un objet maillé 3D et des couches de base d'objet maillé (CBOM). Dans la nouvelle structure de maillage ci-dessus décrite, un procédé de détermination de l'index d'une boucle englobante, dans laquelle est prise en compte un sommet Y, est nécessaire pour exécuter efficacement la restauration/le rendu progressif. De façon à restaurer un maillage triangle, ainsi que représenté sur la figure 9, des index de boucle englobante de points de départ des limites droite et gauche sont donnés dans une partition de paire d'arbres triangles (tt) et de données triangles (td). Sur la figure 9, la référence alphabétique m indique un index de départ droit, n indique un caractère de départ gauche, et une flèche centrale indique l'ordre des triangles codés. Ici, sur la base de la direction de progression, la limite positionnée sur la droite de la bande triangle est une limite droite, la limite positionnée sur la gauche de la bande triangle est une limite gauche, et le triangle ombré est un triangle d'embranchement. De façon à déterminer les index de boucle englobante des triangles respectifs de la paire tt/td, l'information suivante est en outre nécessaire. Triangle avant triangle d'embranchement. Ainsi que représenté sur la figure 9, dans le cas de triangles avant un triangle d'embranchement, les index de la boucle englobante augmentent de un dans la limite gauche et décroissent de un dans la limite droite. Ainsi, lorsqu'un bit de parcours est décodé, trois sommets du triangle peuvent être immédiatement restaurés. Triangle d'embranchement Sur la figure 9, un triangle d'embranchement est composé de trois sommets b[m-3], b[m-10] et b[n+2]. Toutefois, si l'information de triangle de la branche droite dans le triangle d'embranchement, c'est-à-dire l'information sur le nombre de triangles, n'est pas reçue, il n'est pas possible de connaître l'index m-10 dans la boucle englobante du troisième sommet, c'est-à-dire sommet Y. Ainsi, de façon à déterminer l'index du sommet Y, l'information sur le nombre de triangles dans l'une des branches latérales doit être reçue. De façon à connaître le nombre de branches sur un côté, l'information sur le parcours du triangle dans la paire tt/td est nécessaire. Sur la figure 9, si le nombre de triangles des banches droites est p, le nombre de sommets utilisés peut être facilement déduit comme suit : [Formule 1] Nombre de sommets utilisés dans une branche latérale = p + 2. Par exemple, sur la figure 9, les index de la boucle englobante du troisième sommet, par exemple sommet Y, du triangle d'embranchement, peuvent être déterminés en utilisant le fait que l'index du sommet sur la limite droite est m - 3 et que le nombre de triangles dans la branche est 6, comme suit : Index du sommet Y= (m-3)-(6+2-1)=m-3-7=m-10. Triangles dans la branche partant du triangle d'embranchement Dans le cas où le sommet Y est fourni, les triangles respectifs peuvent être restaurés et rendus de la même manière que dans le cas où le triangle précédant un triangle d'embranchement est traité. Toutefois, si le sommet Y du triangle d'embranchement n'est pas déterminé, les index des sommets du triangle ne peuvent pas être déterminés. Ceci parce que les index des sommets positionnés sur la limite gauche ne peuvent pas être déterminés si le sommet Y de la branche droite représentée sur la figure 9 n'est pas déterminé. Ainsi que décrit ci-dessus, pour une restauration et un rendu progressifs, les sommets Y doivent être effectivement déterminés. Par conséquent, dans la présente invention, un procédé permettant une restauration et un rendu progressifs en résolvant le problème du sommet Y survenant au triangle d'embranchement est proposé. De même, dans la présente invention, pour la résilience vis-à-vis des erreurs, lors de la partition des données de maillage par rapport à la largeur de bande du trajet de transmission ou des caractéristiques d'un décodeur, deux procédés, c'est-à-dire, un procédé de partition fixe et un procédé de partition variable, sont utilisés. La restauration et le rendu indépendants des données divisées seront décrits ci-dessous. Ici, alors que le procédé de partition fixe utilise un procédé de partition identique pour tous les modèles donnés, le procédé de partition variable utilise différents procédés de partition selon le type de flux binaire couvert par la partition de données, c'est-à-dire graphe de sommets, arbres triangles, données triangles et semblables. Dans la topologie chirurgicale classique, l'ordre de codage est fixé par rapport à toutes les paires de tt/td. Selon ce procédé, de façon à améliorer seulement la performance de rendu progressif, les informations contenant les index et le nombre total de tous les sommets Y générés dans les données de maillage sont transmises à un décodeur avec les flux binaires. Toutefois, ce procédé est indésirable vis à vis de l'efficacité de codage. Par conséquent, un procédé de codage plus efficace pouvant satisfaire les deux besoins, c'est-à-dire un effet de rendu progressif' et une haute efficacité de codage, est nécessaire. En chirurgie topologique, le rendu progressif basé sur la restauration de polygones ne peut pas être atteint efficacement parce que la différence des longueurs d'arbres dépendants est grande, et la détermination efficace de l'index du sommet Y du triangle d'embranchement pour lequel l'arbre dépendant a des données de grande taille ne peut pas être obtenue. Par conséquent, si les longueurs d'arbres dépendants sont différentes, c'est-à-dire si les tailles de deux branches d'embranchement ne sont pas uniformes, il est plus efficace de coder d'abord la plus petite branche en vue de la détermination de sommet Y et du rendu. Ici, si les données sont obtenues par la chirurgie topologique montrée sur les figures 2A à 2D, le nombre de triangles d'une branche latérale peut être plus petit que celui de l'autre branche latérale. Par conséquent, un procédé de détermination de l'ordre de traversée sur la base de triangles d'embranchement en offrant les informations d'orientation en fonction de la taille des arbres dépendants, qui n'est pas défini dans la chirurgie topologique, est proposé dans la présente invention. En d'autres termes, si l'information d'orientation est "1", l'ordre de traversée est le même que celui donné initialement. Par conséquent, la branche gauche (ou droite) est visitée en premier. Autrement, si l'information d'orientation est "0", la branche droite (ou gauche) est visitée en premier pour être codée. Par conséquent, les effets de décodage et rendu progressifs peuvent être améliorés par transmission de l'information d'orientation à un codeur. De même, comme l'information d'orientation permet à un arbre de maillage arbitraire d'être divisé en un arbre principal et en un arbre dépendant, une partition de données plus efficace peut être réalisée tout en conservant la connectivité. Les figures 10A à 10C illustrent un exemple de codage utilisant l'information d'orientation, dans lequel des triangles ombrés sont des triangles d'embranchement présents à la branche principale et possédant l'information d'orientation, les lignes à l'intérieur de l'arbre de maillage binaire indiquent une branche principale possédant des arbres dépendants, et des lignes à l'extérieur de l'arbre de maillage binaire indiquent l'ordre de traversée dans un arbre dépendant, c'est-à-dire une direction de cartographie des index de la boucle englobante dans un décodeur. Ici, les directions de cartographie des index de la boucle englobante, telles que représentées sur la figure 10A, peuvent être déterminées pour être identiques à l'information d'orientation de chaque arbre dépendant. Au contraire, les directions de cartographie des index de la boucle englobante peuvent toutes être définies comme horaires ou anti-horaires, sans relation avec de l'information d'orientation de chaque arbre indépendant. En supposant que le nombre de triangles à l'intérieur de l'arbre dépendant devant être restauré soit t, les formules de calcul des valeurs de sommet Y différent selon l'information d'orientation comme suit. Dans le cas de codage de la branche droite en premier (c'est-à-dire, quand la valeur d'orientation est 1) Si l'index du sommet d'un triangle d'embranchement dans la limite droite de la boucle englobante est p, l'index de sommet Y est comme suit : Position de sommet Y = p-t-1. Dans le cas de codage de la branche gauche en premier (c'est-à-dire, quand la valeur d'orientation est 0) Si l'index de sommet du triangle d'embranchement sur la limite gauche de la boucle englobante est q, l'index de sommet Y est comme suit : Position de sommet Y = q+t+1. Sur les figures 1C3 et 10C, la référence alphabétique "tr" indique un parcours de triangle, "tl" indique une information tleaf, "to" indique une information d'orientation et "tr." indique une information de progression. La figure 10B montre la disposition d'information d'orientation dans un parcours de triangle et la figure 10C montre la disposition d'information d'orientation dans des données triangles. La disposition représentée sur la figure 10B peut aisément être mise en #uvre. La disposition représentée sur la figure 10C permet le rendu immédiatement après que les données de triangles soient restaurées, réduisant de ce fait le temps de retard, et consomme peu de capacité de mémoire dans l'architecture d'un décodeur par comparaison avec celle représentée sur la figure 10B, de ce fait réduisant le coût. La figure 11A montre l'ordre de traversée en chirurgie topologique classique, et la figure 11B montre l'ordre de traversée en accord avec les tailles des branches de l'un ou l'autre des côtés des triangles d'embranchement. Les figures 11A et 11B sont des diagrammes servant à montrer la fonction de l'information d'orientation. Un procédé de détermination de l'information d'orientation sera maintenant décrit. Dans l'éventualité de perte de données due à des erreurs dans un trajet de transmission de données ou dans un flux binaire généré dans une partie de codage, une partie de décodage doit traiter efficacement le problème. Ainsi, les données de maillage à coder sont divisées en unités significatives, c'est-à-dire partitions de couches de base d'objet maillé, pour former des partitions, et ensuite les partitions de données sont transmises à l'unité de traitement en ayant une taille prédéterminée (abrégée sous "paquet" ci-dessous). En d'autres termes, un paquet est une gerbe de bits arrangés selon un format spécifique et a une longueur prédéterminée. Si les données possédant une grande longueur sont transmises via un trajet de transmission, le trajet de transmission qui est utilisé par une pluralité d'utilisateurs peut être congestionné. Ainsi, les unités de données transmises sont tenues d'avoir une longueur prédéterminée de façon qu'une pluralité d'utilisateurs puisse se partager le trajet de transmission ayant une capacité limitée. Un paquet est obtenu en liant des flux de données à coder, tandis qu'une partition est obtenue en divisant l'information originelle à coder (maillage) en unités appropriées. Il y a lieu de prendre en considération pendant la partition la possibilité pour les erreurs générées sur le trajet de transmission d'être traitées efficacement lors de la restauration des données d'un côté récepteur. En d'autres termes, si toutes les mailles sont divisées en parties significatives, les partitions de données sans une erreur peuvent être parfaitement restaurées du côté récepteur, alors que seul le flux binaire possédant une erreur est endommagé jusqu'à ne pas être restauré. Ici, les parties significatives font référence aux parties respectives reliées à une autre dans le traitement d'une image d'animal, par exemple, bras, jambes, corps, etc. Dans la partition, la taille de partition de données n'est pas fixée à un niveau spécifique, contrairement au paquet. Dans la présente invention, des procédés de partition variés sont proposés de façon que les données puissent être restaurées efficacement du côté récepteur même si les données reçues comportent une erreur. Diviser les données à coder d'une telle manière présente les avantages suivants : En retransmettant seulement les données possédant une erreur, la charge d'un réseau et le temps d'attente d'un utilisateur peuvent être réduits. Si l'indépendance parmi les unités de données divisées est assurée, la restauration du maillage et le rendu sont permis en utilisant les données sans erreur, réduisant ainsi le retard de décodage du à l'erreur. Même si les données de maillage ne sont pas entièrement reçues, les données en cours de réception peuvent être progressivement restaurées et rendues. Par comparaison avec les procédés de codage selon lesquels l'indépendance parmi les unités de données n'est pas assurée, la capacité de restauration de maillage est élevée parce que les données ne possédant aucune erreur ne sont pas retransmises. Egalement, même dans le cas de retransmission, l'efficacité de retransmission (le temps d'attente pour décodage) est améliorée. Les figures 12A à 121 illustrent un procédé de partition de données fixes, dans lequel la référence alphabétique 'sc' indique un code de départ représentant la position de départ de partition en flux binaires de maillage mis en paquets, 'id' indique un marqueur de partition qui est représenté par code départ CBOM 3D et mobl~id (identificateur COM), respectivement, dans la présente invention. 'vg~id' (identificateur~graphe~sommet) indique un marqueur utilisé pour spécifier le graphe de sommets correspondant à la paire tt/td en cours à restaurer, lorsque plusieurs unités de données de graphe de sommets sont tenues d'être traitées dans les données de maillage construites par plusieurs composantes reliées. Selon la syntaxe de la présente invention, 'vg id' est marqué par codap~vg~id (codap~identificateur~graphe~sommet). L'index de visite 'vi' indique un marqueur représentant index~liaison d'un triangle racine d'une partition, et inclut index~gauche et index~droit, comme cela est représenté sur la figure 4, qui sont indiqués par codap~index~gauche et codap~index~droit, respectivement, dans la syntaxe de la présente invention. 'bp' indique un marqueur représentant prédiction limite et détermine le procédé de codage de géométrie, couleur, normal et textCoord. En d'autres termes, une valeur de 1 indique un procédé de codage dans lequel le codage chevauchant des sommets précédemment codés est autorisé. Une valeur de 0 signifie que les sommets sont codés sans recouvrement. 'bp' est indiqué par codap~prédiction~limite dans la syntaxe de la présente invention. 'lbl' est un marqueur permettant de calculer les index de sommet Y d'un triangle d'embranchement utilisant les données de partition en courses par le décodeur seulement dans le cas où la partition en cours se termine au triangle d'embranchement et indique la taille globale d'un arbre dépendant arbitraire relié au triangle d'embranchement 'lbl' est indiqué par codap~longueur~branche dans la syntaxe de la présente invention. 'vg' indique un graphe de sommets, 'tt' indique un arbre triangles, et 'td' indique des données triangles 'Ivg' est un marqueur à un bit défini pour représenter la présence de composantes reliées devant être restaurées dans une partition. Si vg devant être restauré prochainement est présent, la valeur de 'Ivg' est 0 ; autrement, elle est '1'. 'Itg' est un marqueur à un bit défini pour représenter la présence de composantes reliées devant être restaurées dans une partition ou la présence d'arbres dépendants. Une valeur 0 représente la présence de composantes reliées, et une valeur 1 représente l'absence de composantes reliées. Un procédé de partition fixe utilise un procédé de partition identique à travers les données de maillage fournies globales en utilisant seulement un format arbitraire parmi les formats de flux binaires décrits sur les figures 12A à 121 selon les champs d'application. En vue de construction, la figure 12A montre que les données de maillage globales sont traitées dans un ordre de codage pour former une partition, la figure 12B montre que les données de maillage globales sont formées comme une partition, alors que les données de graphe de sommets et les paires tt/td sont séparées, et la figure 12C montre qu'une partition est formée d'une composante reliée comme unité minimum. La figure 12D montre que plusieurs graphes de sommet constituant les données de maillage sont collectés pour former une partition, les paires tt/td correspondant aux graphes de sommets étant collectées pour constituer une partition. La figure 12E montre que plusieurs graphes de sommets constituant des données de maillage sont collectés pour former une partition et que les paires tt/td constituent plusieurs partitions par rapport aux tailles de partitions. La figure 12F montre que les graphes de sommets et les paires tt/td sont séparés et sont formés en tant qu'unités séparées en unités de composantes reliées. La figure 12G montre que plusieurs graphes de sommets constituant les données de maillage sont fournis comme des partitions séparées et les paires tt/td correspondent à chaque graphe de sommets constituent plusieurs partitions selon la taille des partitions. La figure 12H montre que le graphe de sommets constituant chaque composante reliée est d'abord formé en tant qu'une partition et la paire tt/td correspondante est ensuite formée en tant que partition. La figure 121 montre que les données de graphe de sommets de chaque composante reliée sont codées en une partition et la paire tt/td correspondante est séparée en partitions selon les tailles des partitions. En vue de la fonction, les procédés de partition représentés sur les figures 12A à 121 seront maintenant décrits. Les procédés représentés sur les figures 12A et 12B sont utilisés dans le cas où une résilience vis-à-vis de l'erreur n'est pas prévue ou lorsqu'il n'y a pas de restriction au trajet de transmission ou aux performances d'un décodeur. Selon le procédé représenté sur la figure 12A, le coût de traitement est réduit et l'efficacité de rendu est améliorée. Toutefois, selon ce procédé, le coût impliqué par la retransmission de données en cas d'une erreur de données augmente. Les procédés représentés sur les figures 12C, 12D, 12F et 12H peuvent assurer l'indépendance des partitions. Toutefois, selon ces procédés, il est difficile de les adapter à un paquet ayant une taille spécifique. En d'autres termes, si la partition est plus petite que le paquet lors de la retransmission de données chargées dans un paquet ayant une taille spécifique, les données factices correspondant à la différence de taille entre la partition et le paquet doivent être prévues en plus. Au contraire, si la partition est plus grande que la taille du paquet, les données ne peuvent pas être mises dans un paquet, les données doivent être traitées séparément et des données additionnelles doivent être prévues par le décodeur. Par conséquent, l'efficacité de codage globale est diminuée et la complexité et le coût augmentent. Dans les procédés représentés sur les figures 12E, 12G et 121, les données de graphe de sommets pour la connectivité des mailles sont traitées de la même manière que décrit ci-dessus. Toutefois, la paire tt/td pour le type de construction d'un triangle dans une maille peut être traitée séparément en accord avec la taille de partition, tout en assurant l'indépendance de celle-ci. Les données incluant vg~id, vi et bp sont prévues en plus aux partitions de la paire tt/td. Ici, vg~id spécifie le graphe de sommets correspondant à la paire tt/td à restaurer, et il est utilisé lorsque les graphes de sommets sont traités collectivement, ainsi que montré sur les figures 12D à 12G. vi spécifie les valeurs index~gauche et index~droit d'un triangle de départ de chaque partition, et il est prévu pour restaurer la partition en cours indépendamment de la précédente partition même si la précédente partition ne peut être restaurée à cause d'erreurs. De même, bp est un marqueur à un bit pour définir un procédé de codage de géométrie, couleur, normal ou texCoord de sommets pour chaque partition dans la paire tt/td. Dans les procédés montrés sur les figures 12E, 12G et 121, lbl est utilisé sélectivement seulement lors de la partition des extrémités d'un triangle d'embranchement. Si la paire tt/td peut être codée en unités de composantes reliées, ainsi que représenté sur les figures 12A à 12D, 12F et 12H, la valeur de bp est réglée sur 'l', un codage chevauchant des sommets précédemment codés étant autorisé. Si la paire tt/td est divisée en plusieurs parties constituant une composante reliée arbitrairement, ainsi que représenté sur les figures 12E, 12G et 121, bp est défini indépendamment pour chaque partition devant être restaurée. Itg est codé sélectivement. C'est-à-dire, si la position en cours est la dernière d'une branche latérale de la paire tt/td, Itg est codé en 'l' ; sinon, il est codé en '0'. Ceci est déterminé en utilisant les index de visite comme suit : [Formule 2] index~droit - index~gauche - 1 = le nombre de triangles dans la partition en cours. Si la formule ci-dessus est satisfaite, ce qui signifie que l'extrémité de la branche est atteinte, Itg est codé en 'l'. Maintenant, des procédés de partition de données pour procurer les constructions décrites ci-dessus seront décrits. 1. Procédé de partition de données en unités de composantes reliées Ce procédé est représenté sur les figures 12C et 12H et peut être facilement mis en #uvre. Si la différence de taille entre composantes reliées n'est pas grande, ce procédé est efficace. Toutefois, si les tailles de données de composantes reliées ne sont pas uniformes et que la différence entre elles est grande, des bits redondants sont générés, qui détériorent l'efficacité de codage. De même, si la taille d'une composante reliée est grande, l'efficacité est diminuée et les données ne peuvent pas être mises en paquets afin d'avoir une taille prédéterminée. Par conséquent, ce procédé peut être adopté seulement lorsqu'il n'y a aucune restriction dans le trajet de transmission et dans les performances d'un décodeur. Les procédés présentés sur les figures 12A, 12B, 12D et 12F présentent aussi ces désavantages. 2. Procédé de partition pour combiner de petites composantes reliées. Si beaucoup de composantes dont les tailles sont petites sont contenues à l'intérieur d'un modèle, le procédé de partition décrit ci-dessus n'est pas efficace. Ainsi, comme cela est représenté sur les figures 12A et 12B, il est souhaitable que les composantes reliées dont les tailles sont petites, soient reliées dans une composante jusqu'à ce que chaque partition présentant une taille prédéterminée soit obtenue. En conformité avec ce procédé, il est nécessaire de fournir vg~id pour définir la paire de tt/td correspondant à un graphe de sommets spécifique comme les informations d'en-tête d'une partition. 3. Procédé de partition pour combiner de grandes composantes reliées Le premier procédé de partition peut être utilisé en codant de grandes composantes reliées seulement sous des environnements restrictifs. Afin de surmonter cette limitation, la présente invention propose un procédé de codage général par lequel une grande composante peut être divisée tandis que l'on satisfait à la fois à la flexibilité dans la taille de partition et à l'indépendance des partitions. Les figures 12E, 12G et 121 représentent des procédés de codage dans lesquels seulement la paire tt/td provenant d'une grande composante reliée arbitraire est divisée en plusieurs partitions pour être ensuite codée. La figure 12E représente une modification du procédé représenté sur la figure 12H. Les procédés représentés sur les figures 12E et 12G présentent un désavantage en ce que le coût augmente du fait que la totalité des données de graphe de sommets doit être mémorisée dans un décodeur. De même, le procédé représenté sur la figure 12E est pauvre en vue de l'efficacité de codage de petites composantes reliées. De même, selon ce procédé, vg~id pour définir la paire tt/td correspondant à un graphe de sommets spécifique, vi pour définir l'index de boucle englobante d'un triangle de départ d'une partition, et bp pour indiquer un procédé de codage des données incluant la géométrie, couleur, normal et texCoord, doivent de plus être définis dans l'information d'en-tête de partition. Toutefois, selon ce procédé, les données de maillage peuvent être facilement protégées des erreurs de données indépendamment les unes des autres. De même, la perte de codage qui est provoquée par la partition peut être réduite. De plus, la figure 13A montre la structure de flux binaires lorsque les paires tt/td sont séparées, des lignes en pointillés y indiquant des positions séparées, illustrant la relation entre arbre triangles et données triangles. La figure 13B illustre un procédé de partition de données utilisant les procédés de partition décrits cidessus. Bien que l'information 'id' ne soit pas représentée sur la figure 13B pour des raisons de commodité, elle doit venir après le code de départ. 'vg' indique des données de graphe de sommets, 'tt/td' indique une paire d'arbre triangles/données triangles, et 'cc' indique une composante reliée. Sur la figure 13B, l'index n indique le nombre de composantes reliées (CC) et n' indique le nombre de composantes reformatées dans le cas de reformatage selon les tailles de composantes reliées. Le reformatage est effectué de la manière suivante. 1. Reconstruction de composantes reliées (étape 251) Les petites composantes reliées sont combinées pour être incluses dans la gamme d'une taille de partition de données prédéterminée. Ainsi que montré sur la figure 13B, des composantes reliées CC1 et CC2 sont combinées pour former une composante reformatée CC'1. Les composantes reliées plus grandes qu'une taille prédéterminée sont divisées en petites composantes. Sur la figure 13B, la troisième composante reliée CC3 est divisée en plusieurs composantes CC'2, ..., CC'k. 2. Génération de graphes de sommets et de paires d'arbre triangles/données triangles (étape 252) Les vgs et paires tt/td sont générés pour les composantes reformatées respectives. 3. Réarrangement des vg et paires tt/td (étape 253) Les vgs et paires tt/td générés à l'étape 252 sont réarrangés séparément. 4. Partition de l'information vg (étape 254) L'information vg réarrangée à l'étape 253 est divisée en unités d'information possédant une taille prédéterminée. 5. Partition de l'information de paire tt/td (étape 255) L'information de paire tt/td générée à l'étape 253 est divisée en unités d'information possédant une taille prédéterminée. Le procédé de partition fixe est désavantageux eu égard à la complexité du système et au coût puisqu'un décodeur séparé convenant à chacun des procédés représentés sur les figures 12A à 121 est nécessaire. Par conséquent, la présente invention propose un procédé de partition variable par lequel des flux binaires, basés sur les procédés décrits ci-dessus, peuvent être décodés de façon adaptative en utilisant un décodeur unique. Dans le procédé de partition variable, contrairement au procédé de partition fixe, l'information pt (type de partition), c'est-à-dire l'information pour définir le type de partition de la partition en cours est fournie en plus. Ainsi, les partitions sont classées en quatre types, ainsi que représenté sur les figures 14A à 14D. pt défini dans la présente invention est dépendant de la valeur de sc, et la relation entre sc et pt est résumée sur le tableau 1. Tableau 1. Relation entre sc et pt Valeur de bit Signification 0000 0000 0011 0001 Un ou plus de vgs sont contenus et les données vg sont utilisées dans une ou plus autres partitions de données 0000 0000 0011 0011 Seulement des données tt/td sont contenues. Dans le cas de restauration des données, vg~id pour adapter une paire tt/td à un vg arbitraire, vi (index de visite) qui est le point de départ d'une bande triangle, et bp (prédiction de frontière) sont contenus dans une information d'entête. 0000 0000 0011 0100 vg, tt et td constituent une partition de données, et vg est utilisé dans une autre ou plusieurs autres partitions de données Pour exécuter la partition variable de données en vue de compenser la complexité et le coût du système, ce qui suit doit être pris en considération. Un code de départ ne peut pas être inséré sélectivement. En d'autres termes, un décodeur exécute une opération de décodage sans savoir dans quel mode le flux binaire en cours est codé. Ainsi, dans le cas où le code de départ est fourni sélectivement en accord avec un mode de codage, seuls les flux binaires limités sont restaurés. Dans quelques cas, diverses sortes de décodeurs doivent être fournies. En conséquence, le coût et la complexité peuvent augmenter. De façon à exécuter le décodage indépendamment du mode de codage d'un encodeur, le système de syntaxe variable doit être exclus. Dans le cas d'utilisation d'un type de codage spécifique, des informations non nécessaires peuvent être fournies en conformité avec les caractéristiques de données de maillage ou d'un décodeur, ce qui diminue l'efficacité de codage. Les figures 14A à 14D illustrent quatre types de modules de syntaxe pour supporter le procédé de partition variable. La figure 14C montre la syntaxe pour procure d façon adaptable vg~id et Itg, comme défini sur les figures 12A à 121. En d'autres termes, si un vg seulement est contenu dans la syntaxe représentée sur la figure 14B, la relation entre vg et la paire tt/td peut être identifiée pendant la restauration. Ainsi, vg~id n'est pas nécessairement donné. Itg est fourni seulement lorsque la paire tt/td correspond à la fin d'une branche latérale de la paire tt/td globale, et la formule de détermination est exprimée de ce fait dans la formule (2). La figure 14A montre la structure dans le type de partition 0 où une partition est constituée d'un nombre arbitraire de composantes reliées. La figure 14B montre la structure dans le type de partition 1 où une partition est constituée d'un nombre arbitraire de vg's. La figure 14C montre la structure dans le type de partition 2 où une partition est constituée de seulement une paire tt/td correspondant à une composante reliée, et la figure 14D montre la structure dans le type de partition 3 où une partition est constituée de vg et de la paire tt/td correspondant à la composante reliée en cours. Par conséquent, la combinaison de ces structures de syntaxes peut supporter tous types de structures de syntaxes, excepté celle représentée sur la figure 12B. En d'autres termes, la structure représentée sur la figure 12A peut être implémentée dans le type de partition 0, et la structure représentée sur la figure 121 peut être implémentée par combinaison du type de partition 1 et du type de partition 2. Par conséquent, dans la présente invention, pour les composantes reliées plus petites que les paquets, plusieurs composantes reliées sont collectées en une partition pour être codées dans le type de partition 0, en tenant compte de l'efficacité de codage. Les plus grandes composantes reliées sont codées dans les types de partition 1 et 2 ou dans les types de partition 2 et 3. De même, en considération du trajet de transmission ou des performances d'un décodeur, des structures de syntaxes diverses combinées de façons diverses peuvent être fournies. Les figures 15A à 15D illustrent un exemple de procédé de partition variable. Sur la figure 15A, puisque ccl et cc3 sont de petites mailles, elles sont traitées par chaque composante reliée, avec une partition définie en type de partition 0 ou 3. Puisque cc4 est une grande maille, la paire tt/td est divisée en plusieurs parties pour être traitée en une combinaison du type de partition 3 et du type de partition 2. De même, la cc4 peut être traitée en une combinaison du type de partition 1 et du type de partition 2 ainsi que représenté sur la figure 15B. De même, comme cela est représenté sur la figure 15C, en vue d'augmenter l'efficacité de codage, les données de maillage peuvent être changées en une autre structure combinée. La figure 15C montre le cas où les données de maillage de ccl à cc3 sont définies dans le type de partition 0. En vue de représenter les données de maillage globales, les structures montrées sur les figures 15C et 15A ou les figures 15C et 15B peuvent être combinées. Toutefois, de façon à procurer la structure représentée sur la figure 15C, les conditions pour déterminer la dernière composante reliée sont nécessaires. Dans le procédé classique, pour déterminer la dernière composante reliée, un marqueur à un bit de last cc (dernière~cc) est utilisé. Une valeur de 1 représente la dernière composante reliée. Par conséquent, selon la présente invention, la présence d'une composante reliée devant être restaurée peut être déterminée en utilisant Itg dont la fonction est similaire à last~cc et à information pt à l'intérieur de sc comme suit : si(Itg==l) si(pt==0){ si(next-2~bytes()==sc) La cc couramment restaurée est la dernière cc dans la partition ; sinon La cc couramment restaurée est la dernière partition à être restaurée ; }sinon La cc couramment restaurée est la dernière cc dans une partition ; }sinon La cc couramment restaurée n'est pas la dernière cc dans une partition ; où next~2~bytes() est la fonction pour lire seulement deux octets en avance parmi les flux binaires dans un décodeur. La figure 15D montre un exemple dans les types de partition 1,2 et 3. Comme montré dans l'exemple décrit ci- dessus, le procédé de partition variable possède une excellente adaptabilité pour coder les environnements et il est meilleur que le procédé de partition fixe en vue de l'efficacité de codage et du coût. Dans la présente invention, la partition de la paire tt/td est fondamentalement exécutée à la position correspondante après les données triangles d'une branche latérale d'un triangle d'embranchement survenant en premier à la fin de la précédente partition, c'est à dire la branche principale, qui est représentée sur la figure 16. La raison pour diviser la paire tt/td à la branche principale est la suivante. Ainsi que décrit ci-dessus, si les index de sommets Y ne sont pas déterminés, la restauration et le rendu d'un triangle venant après le triangle d'embranchement correspondant ne peuvent pas être obtenus. Toutefois, ce procédé peut provoquer de l'inefficacité en conformité avec l'ordre de traversée initial et le type réel de paire tt/td. C'est à dire, dans le cas où la branche gauche (ou droite) est codée en premier, si la branche gauche d'un triangle d'embranchement de la paire tt/td est très grande, elle est encore plus grande que le paquet. Ainsi, la détermination des index de sommets Y ne peut pas être faite jusqu'à ce que davantage d'informations venant après le triangle d'embranchement, c'est à dire, les informations sur le nombre de triangles d'une branche, soient traitées. Par conséquent, la présente invention propose trois procédés efficaces de partition des données de maillage. Dans la présente invention, une ou plusieurs partitions peuvent être contenues dans un paquet. Toutefois, dans ce chapitre, la description sera faite sur la base qu'une partition seulement est contenue dans un paquet. Un premier procédé de partition de données est d'exécuter la partition en réglant une allocation de paquet, taux~t, pour une taille de paquet, cible (300 de la figure 17). Une quantité moyenne de génération de bits de tt à coder en unités de composantes reliées, c'est à dire moyen~tt, est obtenue, et ensuite la partition est exécutée à l'intérieur de la gamme dans laquelle une allocation de paquet prédéterminée, taux~t, est remplie. Sur la figure 17, moyen~t est une quantité moyenne de bits de tt calculée pour chaque composante reliée, td~biti est une quantité de génération de bits des données en excluant vg et tt, après que le i-ème triangle soit codé, cur~bits est une somme obtenue en additionnant tous les bits générés à partir du premier jusqu'au i-ème triangles du paquet, c'est à dire moyen-t + td bitsi. Par conséquent, si cur~bits est plus grand que ou égal à taux t * cible (étape 330), la partition est effectuée pour codage (étape 340). Sinon, le (i+1)-ème triangle est codé (étape 350). Le procédé décrit ci-dessus est répété jusqu'à ce que toutes les mailles aient été codées, achevant ainsi la partition. Ici, le procédé de détermination de la partition aux triangles d'embranchement sur la branche principale doit être pris en considération. C'est à dire, en supposant que la position de partition est fondamentalement définie seulement à la branche principale pour résoudre le problème de sommet Y, il est nécessaire de déterminer si un arbre dépendant sélectionné pour être décodé en suivant le triangle d'embranchement par les informations d'orientation est inclus dans le paquet qui inclut le triangle d'embranchement. A cette fin, dans la présente invention, un arbre à coder dépendant est codé à l'avance. En d'autres termes, si le paquet est complètement rempli avec les données codées alors que l'arbre dépendant est codé, la supposition de partition à la branche principale est enfreinte. Ainsi, comme représenté sur la figure 18C, la partition est faite au précédent triangle d'embranchement. Si la quantité totale de génération de bits, obtenue jusqu'à ce que l'arbre dépendant soit codé, est plus petite que la taille du paquet, ainsi que représenté sur les figures 18A ou 18B, l'arbre dépendant est inclus dans le paquet pour être ensuite codé. Un second procédé est d'exécuter la partition quand le prochain triangle à coder est un triangle d'embranchement et quand il est déterminé que la somme de la quantité de génération de bits prédite d'un arbre d'embranchement dépendant et la quantité de bits générée à la partition en cours excède la taille du paquet, bien que taux t ne soit pas encore atteint. Ceci sera maintenant décrit en détail. 1. Le nombre de bits codés dans la première partition de chaque composante reliée, bit en cours, est mémorisée. 2. Même si un bit cible n'est pas encore atteint, si le prochain triangle est un triangle d'embranchement, la taille de l'arbre dépendant du triangle suivant, nst, est obtenue. 3. Le nombre de sommets de triangles codés jusqu'ici dans la partition en cours, ng~en~cours, est obtenu. 4. Si cur~ng+nst > ng, la partition est exécutée comme suit. (1) Si la quantité de bits prédite à générer à l'arbre dépendant est plus grande que la taille du paquet, la partition est exécutée jusqu'au prochain triangle d'embranchement inclus. C'est à dire, si nst+2>ng, la partition est exécutée jusqu'au prochain triangle d'embranchement inclus, comme représenté sur la figure 18C. (2) Sinon, la partition est exécutée au triangle en cours. Un troisième procédé est de coder en avance une unité de paquet d'une maille devant être codée ensuite afin de calculer le nombre de triangles dans le cas où les besoins en taille de paquet sont satisfaits, et ensuit de construire les flux binaires des unités de paquets réelles en utilisant les informations sur le nombre de triangles. Le procédé décrit ci-dessus pour déterminer si l'arbre dépendant doit ou non être inclus dans un paquet est également appliqué à ce procédé. Dans la partition de maillage utilisant ce procédé, les deux points suivants doivent de plus être considérés. Tout d'abord, un retard du temps de décodage est généré à cause du calcul de sommet Y. Deuxièmement, l'indépendance parmi les données divisées doit être considérée. Dans la présente invention, le retard est minimisé en établissant une composante reliée virtuelle comme il sera décrit ultérieurement, et le problème d'indépendance est résolu en définissant les informations d'orientation, les informations d'index de boucle englobante et les informations d'arête de polygone dans les unités de paquets. Afin de traiter les sommets Y tout en maintenant l'indépendance parmi les données divisées de paires tt/td, deux procédés sont utilisés. Le procédé le plus simple est de transmettre la longueur des données divisées et les informations de sommet Y à un décodeur. L'autre procédé est de définir les données divisées en tant que composantes reliées virtuelles en conformité avec les caractéristiques des paires tt/td. Conformément au premier procédé, Puisque les longueurs de toutes les mailles et les longueurs des mailles divisées sont connues au moment du décodage, la structure d'une maille devant être restaurée peut être prédite. De même, comme les informations de sommet Y sont connues, le rendu progressif peut être obtenu. Toutefois, l'efficacité de codage peut être diminuée à cause des données supplémentaires. Conformément au second procédé dans lequel des composantes virtuelles sont définies, les composantes reliées de paires tt/td sent définies comme les nombres de branches et feuilles, comme exprimé dans la formule suivante (3). Les composantes reliées virtuelles peuvent être construites en définissant des bits virtuels dans les données de maillage divisées de façon à satisfaire la formule (3). Ici, la position de départ de la partition est établie pour survenir seulement au cours de la branche principale de l'arbre binaire ; ceci afin de faciliter le traitement de sommet Y. Par exemple, si la partition est effectuée à une position autre que la branche principale, le problème de sommet Y décrit ci-dessus est généré, de sorte que des informations additionnelles de traitement de sommet Y sont nécessaires, ou bien la restauration ou le rendu ne peuvent pas être exécutés indépendamment pour chaque partition. [Formule 3] nombre de branches + 1 = nombre de feuilles Des bits virtuels peuvent être définis dans deux cas : 1. Lorsque la partition se termine à un parcours ou feuille Afin de satisfaire la formule (3), une paire de bits virtuels de (1, 1) est ajoutée à (trun, tleaf). 2. Lorsque la partition se termine à une branche Afin de satisfaire la formule (3), deux paires de bits virtuels de (1,1) sont ajoutées à (trun, tleaf). De même, lorsque la partition se termine à une branche et que les données de géométrie, couleur, normal et texCoord sont traitées pour chaque sommet, les données de géométrie, couleur, normal et texCoord pour le dernier triangle qui est un triangle d'embranchement ne sont pas codées. Ceci parce qu'un triangle d'embranchement peut être restauré par les index de sommet Y déterminés par les informations d'index d'un triangle immédiatement avant la partition dans la partition en cours et un triangle racine de la partition devant être codée ensuite. Toutefois, si une erreur est générée à la partition devant être codée ensuite, le dernier triangle d'embranchement de la partition en cours ne peut pas être restauré. Ce problème peut être résolu en transmettant les données de taille totale (lbl) de l'un des arbres dépendants de chacune des branches des triangles d'embranchement à un décodeur en les incluant de la même manière dans les données de paire tt/td. Ceci parce qu'il est possible de calculer les index de sommet Y du triangle d'embranchement en utilisant la valeur lbl avant que les prochaines partitions soient restaurées. Dans le cas d'exécution du codage par face ou coin, puisque le codage n'est pas dépendant des données d'index de sommet Y, le codage est exécuté pour l'un ou l'autre cas. Les figures 18A à 18C sont des schémas conceptuels de composantes reliées virtuelles. La figure 18A représente un triangle virtuel dans le cas où la partition survient à une feuille, la figure 18B représente un triangle virtuel dans le cas où la partition se termine à un parcours, et la figure 18C représente un triangle virtuel dans le cas où la partition se termine à une branche définie comme un triangle(s) virtuel(s) indiqué par #. Sur la figure 18A, si la partition survient dans un état où un triangle feuille vient immédiatement après le triangle d'embranchement, la structure arborescente représentée sur la figure 18A devient la même que celle représentée sur la figure 18C. Dans ce cas, le décodeur ne peut pas discriminer les structures représentées sur les figures 18A et 18C. Ainsi, dans un codeur, la partition ne doit pas survenir à un triangle feuille venant immédiatement après le triangle d'embranchement, excepté la fin d'une branche arbre. En agissant ainsi, le décodeur peut exécuter le décodage par rapport à tous les triangles sans informations pour discriminer les structures représentées sur les figures 18A et 18C. Ainsi, le problème de la mise en paquets, impossible dans le cas d'un grand arbre dépendant avec la supposition de base que la partition est effectuée seulement à la branche principale, peut être résolu en construisant l'arbre dépendant de plusieurs composantes reliées virtuelles dépendantes. Maintenant, un procédé de détermination de bits virtuels, dans le cas d'exécution de codage en formant la composante reliée virtuelle d'une telle manière, va être décrit. 1. Détermination de la présence de bits virtuels dans un parcours ou une feuille. Si la formule 4 est satisfaite, un bit virtuel est présent. Sinon, un bit virtuel n'est pas présent. Si le troisième triangle du dernier parmi les triangles codés n'est pas un triangle d'embranchement, ainsi que représenté sur les figures 18A et 18B, et que la formule 4 est satisfaite, il est déterminé que seules les données virtuelles d'une paire de (1,1) sont générées dans (trun, tleaf) et les données td ne sont pas décodées pour le triangle virtuel. [Formule 4] index droit-index gauche > nombre total de triangles générés quand seulement tt de la partition en cours est restauré. 2. Détermination de la présence de bits virtuels dans une branche. Si la partition survient à un triangle d'embranchement, comme représenté sur la figure 18C, deux triangles feuilles virtuels sont ajoutés. Ainsi, si le troisième triangle de la fin des données tt est un triangle d'embranchement et que la formule 4 est satisfaite, les données de bit virtuel de deux paires de (1, 1) sont présentes dans (trun, tleaf). Ensuite, les données td des deux derniers triangles feuilles ne sont pas décodées. En chirurgie topologique, pour coder les données de maillage composées de polygones, les données de polygones sont d'abord reconstruites comme triangles. La figure 19 montre un exemple de reconstruction de données de maillage polygonal en données de maillage triangle, dans lequel des lignes continues indiquent des arêtes réelles des données de maillage polygonal d'origine, et des lignes en pointillés indiquent des arêtes virtuelles ajoutées pour diviser le maillage polygonal en triangles. Pour que le décodeur restaure les triangles divisés en polygones d'origine, les informations pour enlever les arêtes virtuelles doivent être transmises au décodeur. Ceci est appelé informations d'arête de polygone. Si une partie des informations d'arête de polygone est envoyée par triangle, une valeur de 1 signifie une arête réelle, et une valeur de 0 signifie une arête virtuelle. De façon classique, après conversion des polygones contenus dans les données de maillage en données de maillage triangles, les informations d'arête de polygone pour tous les triangles excepté le premier triangle sont générées. Ici, le codeur établit le premier triangle comme une arête réelle, et le décodeur établit les informations d'arête de polygone du premier triangle comme 1 et exécute la restauration. Toutefois, dans le cas où la partition de données doit être exécutée à l'intérieur d'un polygone autre qu'un triangle, les données de maillage peuvent être restaurées par le procédé conventionnel. Conformément à cela, la partition en données de maillage se limite à satisfaire les besoins de taille de paquet, abaissant par cela l'efficacité de codage. Par conséquent, afin de résoudre les problèmes et désavantages décrits ci-dessus, il est nécessaire de définir les informations d'arête de polygone définies dans une partition pour le premier triangle de la partition dans le cas où la partition débute à une arête virtuelle. Sur les figures 20D et 20E, la référence alphabétique 'tt' indique une information de parcours de triangle, 'tm' indique une information de progression, 'pe' indique une information d'arête de polygone, les index indiquent l'ordre de tm et pe correspondant à tt, et 'n' indique le nombre de triangles. La figure 20D montre les syntaxes dans le cas de partition d'un maillage polygonal aux arêtes réelles correspondant à la figure 20C, et la figure 20E montre les syntaxes dans le cas de partition d'un maillage polygonal aux arêtes virtuelles, correspondant à la figure 20B. La présente invention est basée sur le fait que la partition de données est exécutée à une arête réelle, et procure les syntaxes qui permettent la restauration même quand la partition de données a lieu à l'intérieur d'un polygone. Les arêtes de polygone dans chaque partition sont traitées sur la base d'informations 'pt' ou informations 'triangulated' (triangulées) et 'polygon~edge' (arête de polygone) comme suit. 1. Procédé de traitement d'arête de polygone basé sur Pt (1) Lorsque pt = 0, la valeur d'arête de la première arête de polygone à l'intérieur d'une partition n'est pas codée ; et (2) Seulement lorsque pt = 2 et un ou plusieurs polygones sont présents dans une partition, c'est à dire triangulated = 0, la valeur d'arête de la première arête de polygone à l'intérieur d'une partition est codée. 2. Procédé de traitement d'arête de polygone basé sur les informations triangulées et d'arête de polygone. (1) Lorsque la partition à une arête réelle est permise, la valeur de la première arête de polygone à l'intérieur d'une partition n'est pas codée ; et (2) Lorsque la partition à une arête virtuelle est permise, la valeur de la première arête de polygone à l'intérieur d'une partition est codée. Ici, la discrimination entre l'arête réelle et l'arête virtuelle dans un polygone arbitraire est faite dans les conditions suivantes : si (triangulated==l) arête réelle sinon si (polygon~edge==0) arête virtuelle sinon arête réelle Par conséquent, le décodeur décode la première valeur polygon~edge inconditionnellement lorsque triangulated=0. Ensuite, une valeur de 0 est définie comme la valeur de la première arête de polygone, et une valeur de 1 est définie comme la valeur de la seconde arête de polygone. L'information triangulée est 0 si un ou plusieurs polygones sont présents dans les données de maillage à l'intérieur d'une partition ; sinon, elle est 1, afin de construire une information à un bit en unités de partitions. La nécessité décrite ci-dessus et le procédé de définition des informations d'orientation sont également applicables à la partition de données. Toutefois, puisque la partition est autorisée même à un arbre dépendant dans le cas d'utilisation de composantes reliées virtuelles, comme décrit ci-dessus, il n'est pas possible de déterminer si la maille de la partition en cours devant être restaurée est reliée à une branche principale ou à une sous branche lorsque la partition précédente ne peut pas être restaurée à cause d'une erreur de données. Ainsi, une erreur dans le calcul de l'index de boucle englobante peut être générée et la restauration et le rendu ne peuvent pas être réalisés. Par conséquent, dans la présente invention, les informations d'orientation sont définies dans la composante reliée virtuelle de la même manière que la composante reliée réelle, réalisant par ceci la restauration et le rendu indépendants à l'intérieur de la composante reliée virtuelle. Puisque les index de la géométrie des sommets réels sont cartographiés dans les informations de boucle englobante, les valeurs de coordonnées réelles des sommets d'un triangle peuvent être identifiées par cartographie en utilisant les index de boucle englobante. Par conséquent, dans l'éventualité où une partition comportant une erreur n'est pas retransmise avec succès, comme représenté sur la figure 9, il n'est pas possible de restaurer les partitions devant être restaurées ensuite car les informations d'index de boucle englobante pour un triangle de départ dans une partition ne sont pas connues. Pour éviter une telle inefficacité, les partitions de données respectives doivent être restaurées ou rendues indépendamment. A cette fin, les positions de départ de la boucle englobante, à partir de laquelle les partitions de données respectives commencent, doivent être données. Durant la restauration dans la partie décodage, vg est utilisé pour mémoriser les valeurs des sommets respectifs de triangles devant être restaurés ensuite dans un tableau de boucle englobante. Ici, le sommet du triangle suivant peut être déterminé en augmentant/diminuant de 1 l'index de la table de boucle englobante de la valeur d'index d'un triangle qui est à une position de départ, ainsi que représenté sur la figure 21. Ainsi, si les index des sommets du premier triangle dans la boucle englobante sont déterminés, les sommets des triangles restants à restaurer ensuite peuvent être déterminés en augmentant/diminuant de 1 l'index de boucle englobante du premier triangle. Par conséquent, dans la présente invention, seuls les index de boucle englobante des sommets du premier triangle d'une partition sont donnés à la partition correspondante, assurant par ceci l'indépendance des partitions respectives. De même, vi est défini dans la présente invention est composé de deux sortes d'informations d'index, c'est à dire left index (index gauche) et right~index (index droit), et la construction de flux binaires est montrée sur la figure 22. Sur la figure 22, la référence alphabétique L indique l'index du premier sommet dans la boucle englobante de la limite gauche d'une bande triangle, et R indique l'index du premier sommet dans la boucle englobante de la limite droite d'une bande triangle. Lorsque les flux binaires sont reçus en séquence d'un support de mémorisation tel qu'un disque compact, puisque les index de boucle englobante sont dans une gamme allant de 0 à un niveau à l'intérieur d'une taille prédéterminée pour chaque composante reliée, les index donnés pour la partie en-tête de la partition doivent être codés dans une valeur qui est dans cette gamme, qui est autorisée car la boucle englobante correspond exactement à la paire tt/td et qu'une paire tt/td est toujours codée après un vg. Toutefois, conformément aux caractéristiques des moyens de transmission, l'ordre d'émission et l'ordre de réception peuvent être différents à cause d'un retard de transmission. De même, la perte de flux binaires peut arriver. Dans de tels cas, comme il n'y a pas de garantie que le vg correspondant à la paire tt/td soit reçu correctement, un index différent de l'index précédent peut être donné. La figure 21 illustre la relation entre une boucle englobante et des paires tt/td dans le cas de plusieurs composantes reliées. Ici, la première colonne montre des exemples d'indexage indépendant de chaque composante reliée dans la boucle englobante et la seconde colonne montre des exemples d'indexage de la dernière valeur de la boucle englobante précédente continuellement incrémentée, dans la boucle englobante. Les figures 23A et 23B illustrent un procédé de codage des informations des index de départ d'une partition, dans lequel ni représente la taille de la boucle englobante de la première composante reliée et n2 représente la taille de la boucle englobante de la deuxième composante reliée. Dans ce cas, pour la partition de la seconde composante reliée, les informations d'index sont données à l'en-tête par deux procédés comme représenté sur les figures 23A et 23B. La figure 23A illustre les informations d'en-tête d'une partition dans le cas d'indexage de boucle englobante pour chaque composante reliée, et la figure 23B illustre les informations d'en-tête d'une partition dans le cas d'indexage de boucle englobante pour les modèles globaux. Jusqu'à maintenant, la présente invention a été décrite sur la base de la connectivité d'un modèle dans une partition de données. Maintenant, un procédé pour assurer l'indépendance entre partitions de géométrie et augmentant l'efficacité de codage sera décrit. Durant la partition de données, si les sommets des triangles respectifs touchent ceux d'un triangle contenu dans la partition précédente, les informations sur le fait que la géométrie a déjà été codée ou non sont nécessaires, ce qui est défini par un marqueur 'visited' (visité). Une valeur de 1 indique que la géométrie a déjà été codée, et une valeur de 0 indique que la géométrie n'a pas encore été codée. Généralement, la géométrie utilisée à la fois pour la partition précédente et pour la partition en cours apparaît à la limite de deux partitions. Dans le cas où la partition en cours est codée, la géométrie apparaissant à la frontière de la partition précédente est définie telle que visited=2. A cet égard, le procédé de codage de géométrie dans la partition de données est classé comme suit. Premièrement, ainsi que montré sur la figure 24A, parmi les informations de géométrie incluses dans la partition en cours, seules les informations non visitées dans la partition précédente sont codées dans la partition en cours. Deuxièmement, ainsi que montré sur la figure 24B, les informations sur la limite codée dans la partition précédente sont aussi codées dans la partition en cours, restaurant par ceci la géométrie dans la partition en cours indépendamment de la partition précédente. Troisièmement, ainsi que montré sur la figure 24C, parmi les données codées dans les partitions précédentes, seule la géométrie reliée à plusieurs géométries apparaissant également dans la partition en cours est codée dans la partition en cours. Quatrièmement, ainsi que représenté sur la figure 24D, puisque la géométrie se chevauchant et apparaissant à la fois dans la partition précédente et dans la partition en cours apparaît généralement consécutivement dans la limite d'une bande triangle, une moitié des données se chevauchant sont codées dans la partition précédente et l'autre moitié dans la partition en cours. Sur les figures 24A à 24D, les cercles ombrés indiquent la géométrie codée seulement dans la partition précédente, les cercles noirs indiquent la géométrie codée à la fois dans la partition précédente et dans la partition en cours, les cercles blancs indiquent le géométrie codée dans la partition en cours, et les lignes noires pleines indiquent les limites entre partitions. Toutefois, les procédés décrits ci-dessus ont les résultats suivants. Bien que le premier procédé puisse être facilement mis en place, la quantité de données environnantes qui peuvent être utilisées pour la prédiction afin de coder la géométrie est plus petite que celle de l'autre procédé, ce qui abaisse la précision de la géométrie. Le deuxième procédé est meilleur que le premier procédé, en vue de la précision de la géométrie. Toutefois, selon ce procédé, puisque la géométrie apparaissant sur la limite est chevauchante et codée dans deux partitions, l'efficacité de codage est réduite. Le troisième procédé peut réduire une perte de géométrie tout en maintenant un niveau de compression approprié. Toutefois, selon le troisième procédé, puisque la caractéristique de la connectivité doit être connue, il est difficile de mettre en place ce procédé et la complexité s'accroît. Dans le quatrième procédé, bien que le désavantage du deuxième procédé puisse être résolu, un retard de rendu est généré. En d'autres termes, les premier, deuxième et troisième procédés permettent la restauration et le rendu par eux-mêmes, et le quatrième procédé permet le rendu en générant des valeurs omises dans la partition en cours par une interpolation utilisant la géométrie environnante, ou bien nécessite un temps d'attente pour la prochaine partition. Le premier ou le deuxième procédé sont utilisés de façon adaptée dans la partition de données réelle. En d'autres termes, en considération de l'efficacité de codage et de l'indépendance entre partitions, comme les informations traversantes de la partition dont les positions de départ et de fin de partition sont placées à une branche principale peuvent être exactement connues à partir des partitions précédemment codées, la partition est divisée selon le premier procédé. Dans l'éventualité où la partition précédente ne peut pas être restaurée à cause d'une erreur générée dans la partition précédente, comme les informations traversantes de la partition dont les positions de départ et de fin de partition sont placées à un arbre dépendant ne peuvent pas être connues, la partition est divisée selon le deuxième procédé. Dans la présente invention, le procédé de codage de géométrie est fourni aux informations d'en-tête de chaque partition. Dans le cas où seuls le premier et second procédés sont adoptés de façon adaptée, une valeur de 0 de marqueur de prédiction de limite à un bit signifie que le premier procédé est utilisé en codant la géométrie d'une partition de données. Une valeur de 1 signifie que le deuxième procédé est utilisé en codant la géométrie d'une partition de données. La figure 24E montre la syntaxe de la structure dans laquelle le marqueur de prédiction de limite est contenu dans les informations d'en-tête. Un procédé de codage prédictif d'un maillage vise à l'amélioration de l'efficacité de codage en prédisant la géométrie d'un sommet arbitraire, c'est à dire d, en utilisant la géométrie de trois sommets a, b et c d'un triangle avoisinant précédemment codé, c'est à dire d', et en codant la différence entre une valeur estimée et une valeur réelle. Un tel procédé de codage prédictif peut être exprimé par la formule 5. [Formule 5] d' = f(a, b, c) Les procédés de prédiction de la géométrie sont différents en fonction de la prédiction de limite. Il en est ainsi parce que l'utilisation ou la non utilisation de trois sommets d'un triangle avoisinant utilisé pour la prédiction est différente en fonction du procédé de prédiction de limite et ainsi la restauration indépendante de partitions ne peut pas être assurée pour chaque procédé. Par conséquent, dans la présente invention, lorsque la valeur de la prédiction de limite est établie sur '1', c'est à dire lorsque le chevauchement est autorisé, le procédé de codage prédictif est utilisé conventionnellement en utilisant seulement les informations visitées des sommets avoisinants. Sinon, lorsque la valeur de prédiction de limite est établie à '0', c'est à dire lorsque le chevauchement n'est pas autorisé et que le codage prédictif doit être effectué en utilisant seulement la géométrie dans une partition, le procédé de codage prédictif est exécuté ainsi qu'exprimé dans la formule 6 : [Formule 6] si aucun a, b, et c ne peut être utilisé, d' = 0 sinon si seulement un des a, b, et c peut être utilisé, d' = t sinon si seulement deux des a, b, et c peuvent être utilisés, { si les distances entre deux sommets tl et t2 et d sont 1, d'= (tl+t2)/2 sinon si la distance entre seulement un sommet tl et d est 1, d' = tl sinon d' = t2 } sinon d' = f(a, b, c) où t indique un sommet arbitraire disponible parmi les trois sommets a, b, et c et tl et t2 indiquent deux sommets disponibles parmi les trois sommets a, b, et c. Les informations de géométrie et les informations de photométrie incluant les coordonnées de couleur, normal et texture sont codées comme suit. Premièrement, ainsi que montré sur la figure 25A, les informations de propriété relatives sont codées pour chaque bit de progression d'un triangle. Conformément à ce procédé, lorsque les informations de bits de progression et d'arête polygonale sont restaurées, les triangles peuvent être immédiatement rendus. Alternativement, ainsi que représenté sur la figure 25B, les propriétés respectives peuvent être codées séparément. La figure 26 est un organigramme pour coder la photométrie réelle en utilisant le système de syntaxe cidessus. Ainsi que représenté sur la figure 26, la géométrie est codée en combinant les procédés représentés sur les figures 24A ou 24B, en utilisant le système de syntaxe représenté sur la figure 25A. La figure 26 est un organigramme de codage d'un modèle 3D polygonal en unités de partitions. 1. Un procédé de prédiction de limite est déterminé (étape 401). En d'autres termes, il est déterminé si le codage doit être exécuté par le procédé représenté par la figure 24A ou celui représenté par la figure 24B. 2. Le premier triangle apparaissant dans une partition, le triangle racine, est codé (étape 402). 3. La géométrie racine est codée (étape 403). 4. Si le prochain triangle existe (étape 404), la routine va au prochain triangle (étape 405) et ensuite va au prochain sommet (étape 406). 5. Il est déterminé si chaque sommet du triangle est traversé dans la partition précédente (étape 407). Si le codage n'est pas exécuté dans la partition précédente, il est déterminé si le codage est exécuté dans la partition en cours (étape 409). Sinon, le sommet est codé (étape 410). 6. Si le sommet est codé dans la partition précédente, ou bien si la valeur de prédiction de limite est 1 (étape 408), il est déterminé si le sommet est visité (étape 409). Sinon, le codage du sommet est exécuté (étape 410). 7. Les étapes 405 à 410 sont répétées jusqu'au dernier triangle de la partition en cours. Maintenant, la syntaxe de codage pour mettre en #uvre le maillage en 3D progressif et la résilience aux erreurs sera décrit. Le flux binaire comprimé pour un maillage polygonal 3D est composé d'un bloc de données d'en-tête avec des informations globales, suivi d'une séquence de blocs de données de composantes reliées, chacun associé avec une composante reliée du maillaae. *En-tête Données CC #1 ... Données CC #nCC Maillage 3D Si un maillage en 3D est codé en mode de résilience aux erreurs, les blocs de données de composantes reliées sont groupés ou divisés en partitions. ~~~~~~ Partition #1 Partition #2 ... Partition #nPT Chaque bloc de données de composantes reliées est composé de trois enregistrements, le graphe de sommets, l'enregistrement d'arbre triangle, et l'enregistrement de données triangles @ Graphe de Sommets Arbre Triangle Données Triangle L'enregistrement d'arbre triangles contient la structure d'un arbre triangles d'ensemble qui relie tous les triangles des composantes reliées correspondantes formant un polygone simple. Le maillage polygonal est représenté sous une forme triangulée dans le flux binaire, qui contient également les informations nécessaires pour reconstruire les faces originelles. L'enregistrement de graphe de sommets contient les informations nécessaires pour suturer des paires d'arêtes de limite du polygone simple afin de reconstruire la connectivité de composantes reliées originelles. La connectivité est classée en informations globales (pour chaque composante reliée) et en informations locales (pour chaque triangle). Les informations globales sont mémorisées dans les enregistrements de Graphe de Sommets et d'Arbre Triangles. Les informations locales sont mémorisées dans l'enregistrement de Données Triangles. Les données triangles sont disposées sur une base par triangle, dans laquelle l'arrangement des triangles est déterminé par la transversale de l'arbre triangles. Données pour Données pour... Données pour triangle #1 triangle #2 triangle #n Les données pour un triangle donné sont organisées comme suit . motif de td~orien- arête coord normal couleur texCoord progression tation polygone ~~~ ~~~~~ Motif de progression, td~orientation, et arête~polygone constituent la connectivité par triangle. Les autres champs contiennent des informations destinées à reconstruire les coordonnées de sommets (coord) et, facultativement, des informations concernant normal, couleur et coordonnée texture (texCoord). Syntaxe visuelle de flux binaire en langage c++ Objet maillé 3D 3D~Mesh~Object 3D~Mesh~Object() { No. of bits Mnemonic 3D~MO~start~code 16 uimsbf 3D~Mesh~Object~Header () do { 3D~Mesh~Object~ () }while(nextbits bytealigned () == 3D~MOL~start~code } 3D~Mesh~Object~Header 3D Mesh~Object~Header () ::0. of bits Mnemonic ccw bslbf convex bslbf solid bslbf creaseAngle uimsbf coord~header () normal~header () color~header () texCoord~header () cgd~data 1 bslbf if (cgd~data=='1') cgd~header () 3D~Mesh~Object~Layer 3D~Mesh~Object~Layer () { No. of bits Mnemonic 3D~MOL~start~code 16 uimsbf mol id 3 uimsbf if (cgd~data=='1') { cgd~n~vertices 24 uimsbf cgd~n~triangles 24 uimsbf cgd~n~edges 24 uimsVf } if (mol~id==0) 3D~Mesh~Object~Base~Layer() else 3D Mesh Object Refinement Layer() }~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 3D~Mesh~Object~Base~Layer 3D~Mesh~Ob3ect~Base~Layer ( ) No. of bits Mnemonic do{ 3D MOBL start code 16 uimsbf mobl id 8 uimsbf while(!bytealigned() one-bit 1 bslbf qf~start () if(3D MOBL start code =="partition~type~0") { do{ connected~component() qf décode (last comportent, vlclbf last~component~context) }while(last component=='0') } else if(3D~MOBL~start~code =="partition~type~1") { vg~number=O do{ vertex~graph() vg~number++ qf~decode(codap~last~vg, vlclbf codap~last~vg~context) }while(codap last vg=='0') } else if (3D~MOBL~start~code =="partition~type~2") { if(vg~number > 1) qf~decode(codap~vg~id, vlclbf codap~vg~id~context) qf decode(codap left bloop idx, vlclbf codap left bloop idx context) qf-decode(codap-right bloopidx, vlclbf codap right bloop idx context) qf~decode(codap~bdry~pred, vlclbf codap~bdry~pred~context) triangle~tree() triangle data ( ) } ~~~~ ~~~~~ }while(nexbits bytealigned ()==3D~MOBL~start~code) } coord header coord~header () { No. or bits Mnemonic coord-binding 2 uimsbf coord~bbox 1 blsbf if (coord~bbox=='1') { coord~xnin 32 blsbf coord-ymin 32 blsbf coord zmin 32 blsbf coord~size 32 blsbf } coord~quant 5 uimsbf coord~pred~type 2 uimsbf if(coord pred type---"tree prediction"II coord~pred~type =="parallelogram~predietion") coord-nlambda 2 uimsbf for (i=1; i++) coord lambda 4-35 simbf } normal header normal~header () No. of bits Mnemonic normal~binding 2 uimsbf if(normal binding !=not~bound") { normal bbox 1 blsbf normal~quant 5 uimsbf normal~pred~type 2 uimsbf if (normalyred~type=="tree~prediction" Il normal~pred~type "parallelogram~prediction") normal nlambda 2 uimsbf for (i=l; i++) simsbf normal lambda 4-35 } color header color~header () No. of bits Mnemonic color binding 2 uimsbf if(color binding!="not bound"){ color bbox 1 blsbf if (color~bbox=='1') { color rmin 32 blsbf color~gmin 32 blsbf color bmin 32 blsbf color size 32 blsbf } color~quant 5 uimsbf color~pred~type 2 uimsbf if(color~pred~type=="tree~prediction" Il color~pred~type "parallelogram~prediction") color nlambda 2 uimsbf for (i=1 ; i i++) color lambda 4-35 simsbf } } } texCoord header texCoord header ( ) No. of bits Mnemonic texCoord~binding 2 uimsbf if(texCoord binding!="not bound"){ texCoord bbox 1 blsbf if (texCoord bbox==' 1' ) texCoord umin 32 blsbf texCoord vmin 32 blsbf texCoord size 32 blsbf } texCoord quant 5 uimsbf texCoord~pred~type 2 uimsbf if(texCoord~pred~type =="tree~prediction"# texCoord~pred~type == "parallelogram~predictionH) texCoord nlambda 2 uimsbf for(i=l;i texCoord lambda 4-35 simsbf cgd header cgd~header () { No. of bits Mnemonic cgd n proj surface spheres 4 uimsbf if(cgd~n proj-surface spheres!=0){ ~~~~~~~~~~~~ cgd~x~coord~center~point 32 ieeefl cgd y coord~center~point 32 ieeefl cgd z coord~center~point 32 ieeefl cgd~normalized~screen~distance~factor 8 uimsbf for ( 1=0 ; i≤cgd~n~pro j~sur f ace~spheres ; i++) { cgd~radius 32 ieeefl cgd~min~proj~surface 32 ieeefl cgd~n~proj~points 8 uimsbf for(j=0;j≤cgd~n~proj~points; j++){ cgd sphere~point~coord 11 uimsbf cgd~proj~surface 32 uimsbf } } } } connected~component connected~component () { No. of bits Mnemonic vertex~graph () qf~decode (has~stitches, has~stiches~context) vl clbf if (has~stitches=='1') stitches () triangle~tree () triangle~data () } vertex~graph vertex~graph () { No. of bits Mnemonic qf~decode (vg~simple, vg~simple~context) vlclbf dephth=0 code last='l' openloops=0 do{ do{ if (code~last=='1') { qf~decode(vg~last, vg~last~context) vlclbf if{openloops>0){ qf~decode(vg~forward~run, vlclbf vg~forward~run~context) if (vg~forward~run=='0') { openloopif(openloops>0) qf~decode (vg~loop~index, vlclbf vg~loop~index~context) Break } } qf~decode(vg~run~length, vlclbf vg~run~length~context) qf~decode(vg~leaf, vg leaf context) vlclbf if(vg leaf=='l'&&vg simple=='0'){ qf~decode (vg~loop, vg~loop~context) vlclbf if(vg~loop=='l') openloops++ } }while(0) if (vg~leaf l' &&vg last=' l' &&code last=' 1' ) depth-if (vg leaf=' 0' && (vg~last= ' 0 ' ! ! oode~last= ' 0 ' ) ) depth++ code~last=vg~leaf }while(depth ≥0) } stitches stitches ( ) No. of bits Mnemonic for each vertex in connecte~component { qf~decode(stitch~cmd, stitch~cmd~context) vlclbf if (stitch~cmd) qf~decode (stitch~pop~or~get, vlclbf stitch~pop~or~get~context) if (stitch~pop~or~get== ' 1 ' ) qf - decode (sti tch J'OP, stitch~pop context) vlclbf qf~decode ( stitch~stitch~stack~index, vlclbf stitch stitch stack index context) qf-decode(stitch~incr-length, vlclbf stitch~incr~length~context) if (stitch~incr~length!=0) qf~decode (stitch~incr~length~sign, vlclbf stitch~incr~length~sign~context) qf~decode(stitch~push, vlclbf stitch~push~context) if(total length>0) qf decode(stitch reverse, vlclbf stitch~reverse~context) } else qf~decode (stitch~length, vlclbf stitch~length~context) } triangle tree triangle~tree () { No. of bits Mnemonic depth = 0 ntriangles = 0 branch position = 0 do{ qf decode (tt nm length, tt- run ~lergth - cx:ntext) vlclbf ntriangles += tt~run~length() qf~decode(tt~leaf, tt~leaf~context) vlclbf if (tt~leaf=='1') { depth-- } else branch~position = ntriangles depth++ } }while(depth ≥0) if (3D~MOBL~start~code="partition~type~2" ) if (o::rl3p - right~blo::p - idx-o:d3p ~left - blccp ydx- l>ntriangles) if(branch~position ntriangles-2){ qf~decode(codap~branch~len, vlclbf codap~branch~len~context) n~triangles-=2 } else n~triangles-- } } triangle~data triangle data ( ) No. of bits Mnemonic qf~decode (triangulated, triangulated context) vlclbf depth = 0; root~triangle() for(i=l; i i++) { triangle(i) } root~triangle root~triangle () { No. of bits Mnemonic if(marching triangle) qf~decode(marching~pattern, vlclbf marching~pattern~context[marching~pattern]) else{ if ( 3D~MOBL~start~code=="partition type~2 " ) if(tt~leaf=='0'&&depth==O) qf decode(td orientation, vlclbf td~orientation~context) if (tt~leaf=='0') depth++ else depth-- } HHH if ( 3D~MOBL~start~code="partition type~2 " ) if(triangulated=='0') qf~decode(polygon~edge, vlclbf polygon~edge~context[polygon~edge] ) root~coord () root~normal () root~color () root~texCoord () } root~coord () { No. of bits Mnemonic if(3D~MOBL~start~code="partition type~2") if (visited[vertex~index] ==0) root~coord~sample() if(visited[vertex indexJ==0){ coord~sample () coord~sample() } ~~} else{ root~coord~sample () coord~sample () coord~sample () ~~} root~normal () No. of bits Mnemonic if(normal-binding ! ="not~bound") { if (3D~M0BL~start~code="partition type~2") if(normal~binding != "bound per vertex"visited[vertex index) =0){ root normal sample;) if(normal binding!="bcund er face"&& (normal~binding != "bound~per~vertex" || visited [vertex~index]=0) ) normal~sample () normal~sample () } } else { root~normal~sample () if !(norrnal~binding="bound~per~face") normal~sample () normal~sample () } root~color () No. of bits Mnemonic if(color-binding !="not~bound") if (3D IBL start code--"partition type~2") { if(color~binding != "bound~per~vertex" !)visited[vertex~index]==0) { root~color~sample() if (color~binding ! ="bound~per~face"&& (color~binding != "bound~per~vertex" Il visited [vertex~index] =0) ) { color~sample () color~sample () } } else root color sample() if (color~binding!="bound~per~face") { color~sample() color sample ( ) } } root~texCoord () { No. of bits Mnemonic if(texCoord~binding !="not~bound") { if (3D MBL star-t-code"partition type 2") { if(texCoord~binding != "bound ~per ~vertex" Il visi ted [ vertex~index] =0) ( root~texCoord~sample() if(texCoord~binding != "bound~per~vertex" "visited [vertex index]=0) { texCoord~sample() texCoord~sample() ? ~~~ ~~~ } else{ root~texCoord~sample() texCoord~sample() texCoord~sample () triangle triangle (){ No. of bits Mnemonic if(marching triangle) qf decode(marching pattern, vlclbf marchingattern context[marching pattern]) else{ if (3D MOBL-start-code== "partition type~2") if(tt leaf=='0'&&depth==0) qf decode(td orientation, vlclbf td~orientation~context) if (tt~leaf=='0') depth++ else depth-if(triangulated=='0') qf~decode(polygon~edge, vlclbf polygon~edge~context[polygon~edge]) coord ( ) normal ( ) color ( ) texCoord () } coord () No. of bits Mnemonic if (3D~MOBL~start~code== "partition type~2") if(visited[vertex index]==0) if(no ancestors) root~coord~sample () Else coord~sample() } else{ if(visited[vertex~index]==O) coord~sample () } } normal () { No. of bits Mnemonic if (normal~binding=="bound~j)er~vertex") if (3D J'DBL - start- ccxie== "partition type 2") if(visited[vertex~index]==0) if(no ancestors) root~normal sample() else normal~sample () } else{ if (visited [vertex~index] ==0) normal~sample() } }else if (norTIBl- binding== "boW1d J>8r ~face") { if (triangulated=' 1 ' ! ! 1 polygcn~edge== ' 1 ' ) ~~~~~ ~~~~~~~ nor;nal sample ( ) }else if (nomBl~binding== "boW1d~per ~corner") if(triangulated=='1'! polygon~edge=='1') normal~sample () normal~sample () } normal~sample() } } color(){ No. of bits Mnemonic if (color~binding=="bound~per~vertex") if (3D NKBL start code=="partition type 2") { if(visited[vertex index]==0) if(no ancestors) root~color~sample () Else color~sample() } else{ if(visited[vertex indexJ==0) color~sample () }else if(color binding="bound~per face"){ if (triangulated==' l' polygon~edge==' 1 ' ) color~sample() }else if(color binding--"bound per corner") if (triangulated== ' 1' polygon~edge==' 1 ' ) color~sample() color~sample() } color sample() } texCoord ( ) No. of bits Mnemonic if (texCoord~binding="bound~per~vertex") if (3D NYJBL start code="partit~on type~2") if (visited[vertex index]==0) if (no ancestors) root texCoord sample() else texCoord~sample() } else{ if (visited[vertex index]==0) texCoord~sample() } }else if (texCoord~binding="bound~per~comer") { if (triangulated='1'! ! polygon~edge== '1') texCoord~sample() texCoord~sample() } ~~~~~~~~ texCoord~sample() } } root~coord~sample () { No. of bits Mnemonic for (i=0; i i++) for (j=0; j quant; j++) qf~decode(coord~bit, zero~context) vlclbf } root~normal~sample () No. of bits Mnemonic for (i=0; i i++) for (j=0; j j++) qf~decode (normal~bit, zero~context) vlclbf root~color~sample () { No. of bits Mnemonic for (i=0, i i++) for (j=0; j j++) qf~decode(color~bit, zero~context) vlclbf } ~~~ root~texCoord~sample () { No. of bits Mnemonic for (i=0, i i++) for (j=0; j j++) qf~decode(texCoord~bit, zero~context) vl c lbf } coord sample(){ No. of bits Mnemonic for (i=0, i i++){ j=0 do{ qf~decode(coord~leading~bit, vlclbf coord~leading~bit~context[3*j+i]) j++ }w"~'le ( j rcL trai1 ing~bit, zero~context) v 1 c lb f }while (j } } } normal~sample () { No. of bits Mnemonic for (i=0, i i++){ j=0 do{ qf~decode(normal~leading~bit, vlclbf nOTImal~leading~bit~context[j)) j++ }while (j normal~leading~bit=='0') if (normal leading bit=='l'){ qf~decode(normal~signj3it, zero~context) vlclbf do{ ~~~~ ~~~~ qf - d2o:::d2 (nomal- trailing- bit, zero context) v l c l b f }while (j } } } color~sample () { No. of bits Mnemonic for(i=0, i i++){ j=0 do{ qf~decode (color~leading~bit, vlclbf color~leading~bit~context[3*j+i]) j++ }while(j && color~leading~bit=='0') if (color~leading~bit=='1') { qf~decode(color~sign~bit, zero~context) vlclbf do{ qf decode (color~trailing~bit, zero - context) v 1 c 1 b f }while (j } } ~~~~ } texCoord~sample () No. of bits Mnemonic for(i=0, i i++) { j=0 do{ qf~decode(texCoord~leading~bit, vlclbf texCoord~leading~bit~context[2*j+i]) j++ }while (j texCoord leading bit=='0') if (texCoord leading bit=='l'){ qf~decode (texCoord~sign~bit, zero~context) vlclbf do { qf~decode(texCoord~trailing~bit, vlclbf zero~context) }while (j 3D Mesh Object~Refinement~Layer 3D Mesh Object~Refinement~Layer () { No. of bits Mnemonic do{ 3D MORL start code 16 uimsbf morl id 8 uimsbf connectivity~update 2 uimsbf pre~smoothing 1 bslbf if (pre~smoothing=='l') pre~smoothing~parameters () post~smoothing 1 bslbf if (post~smoothing=='l') post smoothing parameters() while (!bytealigned()) one bit 1 bslbf qf~start () if (connectivity~update=="fs~update") fs~pre~update () if (pre s=thincF='1'1 r:ost - sroothing==' 1 ' ) smoothing constraints() /*apply pre smoothing step*/ if (connectivity~update=="fs~update") fs~post~update () if (conr.ectivity~update=="not updated") qf~decode (other~update, zero~context) vlc lbf if (connectivity~update=="not~updated") other~update=='1') other~property~update() /*apply post smoothing step*/ }while (nextbits~bytealigned ( ) =3D~MDRL~start~code) } pre~smoothing~parameters pre~smoothing~parameters () { No. of bits Mnemonic pre~smoothing~n 8 uimsbf pre~smoothing~lambda 32 ieeefl pre~smoothing~mu 32 ieeefl }~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ post~smoothing~parameters post~smoothing~parameters () { No. of bits Mnemonic post smoothing n 8 uimsbf post~smoothing~lambda 32 ieeefl post~smoothing~mu 32 ieeefl } fs~pre~update fs~pre~update () { No. of bits Mnemonic for each connected component{ forest () for each tree in forest{ triangle tree() /*for each tree loop vertex set visited [vertex~index] = '1' */ triangle data() forest () No. of bits Mnemonic for each edge in connected component if (creates no loop in forest) qf~decode(pfs~forest~edge), vlclbf pfs forest edge context) } smoothing~constraints smoothing~constraints () { No. of bits Mnemonic q decocle(snooth with-sharp~dges,zero-context) vlclbf if (smooth~with~sharp~edges=='l') sharp~edge~marks() qf~decode (smooth~with~fixed~vertices, vlclbf z ro context) if (smooth~with~fixed~vertices=='l') fixed~vertex~marks () } sharp~edge~marks () No. of bits Mnemonic for each edge qf~decode(smooth~sharp~edge, vlclbf smooth~sharp~edge~context) }~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ fixed~vertex~marks () No. of bits Mnemonic for each vertex qf decode(smooth-fixed vertex, vlclbf smooth~fixed~vertex~context) } fs post update fs post update (){ No. of bits Mnemonic for each connected component{ for each tree in forest tree~loop~property~update() } tree~loop~property~update () { No. of bits Mnemonic loop~coord~update() loop~normal~update() loop~color~update() loop~texCoord~update () } loop~coord~update () No. of bits Mnemonic for each tree loop vertex coord sample() } loop~normal~update () { No. of bits Mnemonic if(normal binding=="boundper vertex"){ for each tree loop vertex normal~sample () } else if(nollTl3.1~binding ''toundyer~facetl) { for each tree loop face normal~sample () } else if (nollTl3.1~binding "roundyer ~corner") for each tree loop corner normal~sample() } loop~color~update () No. of bits Mnemonic if (color~binding=="bound~per~vertex") for each tree loop vertex color~sample () } else if (color~binding="bound~per~face") for each tree loop face color~sample() } else if (color - binding="bound ~per - corner") for each tree loop corner color~sample () } } loop~texCoord~update () { No. of bits Mnemonic if (texCoord~binding="boundyer~vertex"){ for each tree loop vertex texCoord~sample () } else if (texCtoordJoindijig==''bound~per~corner") for each tree loop corner texCoord~sample() } } other~property~update other~property~update () { No. of bits Mnemonic other~coord~update() other~normal~update() other~color~update() other~texCoord~update() } other~coord~update () No. of bits Mnemonic for each vertex in mesh if(vertex is not a tree loop vertex) coord~sample() ( ) other~normal~update () { No. of bits Mnemonic if (normal~binding="bound~per~vertex") { for each vertex in mesh if(vertex is not a tree loop vertex) normal~sample () } else if (normal~binding="bound~per~face") { for each face in mesh if(face is not a tree loop face) normal~sample () } else if (normal~binding=="bound~per~corner") for each corner in mesh if(corner is not a tree loop corner) normal~sample () other~color~update () No. of bits Mnemonic if (color~binding="bound~per~vertex") for each vertex in mesh if(vertex is not a tree loop vertex) color sample() } else if (color~binding="bound~per~face") for each face in mesh if(face is not a tree loop face) color sample() } else if (colorjoinding# "bound~per~corner") for each corner in mesh if(corner is not a tree loop corner color sample() } other~texCoord~update () { No. of bits Mnemonic if (texCoord~binding="bound~per~vertex") for each vertex in mesh if(vertex is not a tree loop vertex) texCoord~sample() } else if(texCoord~binding "J:ound....P2r~comer") { for each corner in mesh if(corner is not a tree loop corner) texCoord~sample() } ZIZHZ Objet Maillé 3D Code~départ~OM : ceci est un code à 16 bits unique qui est utilisé dans un but de synchronisation. La valeur de ce code est toujours '0000 COOO 0010 0000'. # Niveau~Objet~Maillé~3D code~départ~COM~3D : ceci est un code unique à 16 bits qui est utilisé dans un but de synchronisation. La valeur de ce code est toujours : '0000 0000 0011 0000' mol~id : cet entier à 8 bits sans signe spécifie un id unique pour la couche d'objet maillé. Une valeur de 0 indique une couche de base, et une valeur plus grande que 0 indique une couche d'affinage. Le premier Niveau Objet Maillé 3D immédiatement après un En- tête~Objet~Maillé~3D doit avoir mold~id = 0, et les Niveaux~Objet~Maillé~3D subséquents après le même Objet~Maillé~3D doivent avoir mold~id > 0. sommets~n~cgd : ceci est le nombre de sommets dans la résolution en course de la maille 3D.Utilisée pour supporter la dégradation élégante du calcul. n triangles cgd: ceci est le nombre de sommets dans la résolution en course de la maille 3D. Utilisée pour supporter la dégradation élégante de calcul. n~arêtes~cgd : ceci est le nombre d'arêtes dans la résolution en course de la maille 3D. Utilisée pour supporter la dégradation élégante de calcul. # Niveau~Base~Objet~Maillé~3D code~départ~CBOM~3D : ceci est un code de longueur 16 qui est utilisé dans un but de synchronisation. Il indique aussi trois types différents de partition pour résilience aux erreurs. Tableau 2. Définition des informations du type de partition code départ CBOM 3D Type partition Signification '0000 0000 0011 0001' Partition~type~0 Un ou plus groupes de vg, tt et dt '0000 0000 0011 0011' Partition type 1 Un ou plus vgs '0000 0000 0011 0100' Partition type 2 Une paire de tt et td id mobl : cet entier sans signe à 8 bits spécifie un id unique pour la composante d'objet maillé. un bit : cette valeur booléenne est toujours vraie. Ce bit unique est utilisé pour l'alignement d'octets. dernière~composante : cette valeur booléenne indique s'il y a davantage de composantes reliées devant être décodées. Si la dernière composante est '1', alors la dernière composante a été décodée. Sinon, il y a davantage de composantes devant être décodées. Ce champ est codé arithmétiquement. codap dernier vg : cette valeur booléenne indique si le vg en cours est le dernier dans la partition. La valeur est fausse s'il y a davantage de vg devant être décodés dans la partition. identificateur~graphe~sommet: cet entier sans signe indique l'id du graphe de sommets correspondant à la paire tt/td en cours dans partition~type~2. La longueur de cette valeur est une valeur à échelle logarithmique du vg~number de vg décodé à partir du précédent partition~type~l. S'il y a seulement un vg dans le précédent partition~type~l, identificateur~graphe~sommet n'est pas utilisé. Index boucle~englobante~gauche~codap : cet entier sans signe indique l'index de départ gauche, à l'intérieur de la table de boucle englobante d'une composante reliée, pour les triangles qui doivent être reconstruits dans une partition. La longueur de cette valeur est la valeur à échelle logarithmique de la taille de la table de boucle englobante. Index~boucle~englobante~droite~codap : cet entier sans signe indique l'index de départ droit, à l'intérieur de la table de boucle englobante d'une composante reliée, pour les triangles qui doivent être reconstruits dans une partition. La longueur de cette valeur est la valeur à échelle logarithmique de la taille de la table de boucle englobante. codap~bdry~pred : cette marque booléenne indique comment prédire les informations de géométrie et de photométrie qui sont en commun dans deux ou plusieurs partitions. Si codap~bdry~pred est fil, le mode de prédiction de limite restreint est utilisé, sinon, le mode de prédiction de limite étendu est utilisé. # En-tête~Objet~Maillé~3D ccw : cette valeur booléenne indique si l'agencement de sommets des faces décodées suit un ordre inverse de celui des aiguilles d'une montre. convexe : cette valeur booléenne indique si le modèle est convexe. solide : cette valeur booléenne indique si le modèle est massif. creaseAngle : cet entier à 6 bits sans signe indique l'angle de pli. # coord~header liaison~coord : cet entier à 2 bits sans signe indique la fixation des coordonnées de sommet au maillage en 3D. La seule valeur admissible pour liaison~coord est '01'. coord~bbox : cette valeur booléenne indique si une boite de limitation est fournie pour la géométrie. Si aucune boite de limitation n'est fournie, une boite de limitation par défaut est utilisée. coord~xmin, coord~ymin et ccord~zmin : ces valeurs à virgule flottante indiquent le coin inférieur gauche de la boite de limitation dans laquelle se trouve la géométrie. coord~size : cette valeur à virgule flottante indique la taille de la boite de limitation. coord~quant : cet entier à 5 bits sans signe indique l'étape de quantification utilisée pour la géométrie. coord~pred~type : cet entier à 2 bits sans signe indique le type de prédiction utilisé pour reconstruire les coordonnées de sommet du maillage. Le tableau 3 montre les valeurs admissibles pour ccord~pred~type. Tableau 3. Valeurs admissibles pour coord~pred~type coord pred type type de prédiction 00 pas de prédiction 01 interdit 10 prédiction de parallélogramme 11 réservé coord-nlambda : cet entier à 2 bits sans signe indique le nombre d'ascendants utilisés pour prédire la géométrie. La seule valeur admissible de coord nlambda est 3. Le tableau 4 montre les valeurs admissibles en fonction de normal~pred~type. Tableau 4. Valeurs admissibles pour coord-nlambda en fonction de coord~pred~type coord pred type coord nlambda 00 pas codé 10 3 coord~lambda : cet entier sans signe indique le poids donné à un ascendant pour la prédiction. Le nombre de bits utilisés pour ce champ est égal à coord-quant+3. en-tête normal liaison~normale : cet entier à 2 bits sans signe indique la fixation des normales au maillage en 3D. Les valeurs admissibles sont décrites dans le tableau 5. Tableau 5. Valeurs admissibles pour liaison~normale liaison normale fixation 00 non lié 01 lien par sommet 10 lien par face 11 lien par sommet normal bbox : cette valeur booléenne serait toujours fausse ('0') normal~quant : cet entier à 5 bits sans signe indique l'étape de quantification utilisé pour les normales. normal~pred~type : cet entier à 2 bits sans signe indique comment les valeurs normales sont prédites. Tableau 6. Valeurs admissibles pour normal-pred~type coord pred type ~~~ type de prédiction 00 pas de prédiction 01 prédiction d'arbre 10 prédiction de parallélogramme 11 réservé Tableau 7. Combinaisons admissibles pour liaison~normale et normal~pred~type liaison normale normal pred type 00 non codé 01 pas de prédiction, prédiction de parallélogramme 10 pas de prédiction, prédiction d'arbre 11 pas de prédiction, prédiction d'arbre normal~nlambda : cet entier à 2 bits sans signe indique le nombre d'ascendants utilisés pour prédire les normales. Les valeurs admissibles de normal~nlambda sont 1, 2 et 3. Le tableau 8 montre les valeurs admissibles en fonction de normal~pred~type. Tableau 8. Valeurs admissibles pour normal~nlambda en fonction de normal~pred~type normal pred type normal nlambda pas prédiction pas codé prédiction arbre 1, 2, 3 Prédiction parallélogramme 3 normal lambda . cet entier sans signe indique le poids donné à un ascendant pour la prédiction. Le nombre de bits utilisés pour ce champ est égal normal~quant+3. color header liaison~couleur : cet entier à 2 bits sans signe indique la fixation des couleurs au maillage en 3D. Les valeurs admissibles sont décrites dans le tableau 9. Tableau 9. Valeurs admissibles pour color~binding liaison couleur fixation 00 non lié 01 lien par sommet 10 lien par face 11 lien par sommet color-bbox : cette valeur booléenne indique si une boite de limitation des couleurs est donnée. couleur rmin, couleur~gmin et couleur~bmin : ces 3 valeurs à virgule flottante donnent la position du coin inférieur gauche de la boite de limitation dans l'espace RGB. couleur size cette valeur à virgule flottante indique la taille de la boite de limitation. couleur~quant : cet entier à 5 bits sans signe indique l'étape de quantification utilisée pour les couleurs. type prédiction couleur . cet entier à 2 bits sans signe indique comment les couleurs sont prédites. Tableau 10. Valeurs admissibles pour type~prédiction~couleur coord pred type type de prédiction 00 pas de prédiction 01 prédiction d'arbre 10 prédiction de parallélogramme 11 réservé Tableau 11. Valeurs admissibles pour liaison~couleur et type~prédiction~couleur liaison couleur type couleur pred non lié non codé lien~par~sommet pas~prédiction, prédiction parallélogramme lien~par~face pas~prédiction, prédiction arbre lien~par~sommet pas~prédiction, prédiction arbre couleur~nlambda : Cet entier à 2 bits sans signe indique le nombre d'ascendants utilisés pour prédire les couleurs. Les valeurs admissibles pour couleur~nlambda sont 1, 2 et 3. Le tableau 12 montre les valeurs admissibles en fonction de type~prédiction~couleur. Tableau 12. Valeurs admissibles pour couleur~nlambda en fonction de type prédiction~couleur. type prédiction couleur couleur nlambda pas prédiction pas codé prédiction arbre 1, 2,3 prédiction parallélogramme 3 couleur lambda :cet entier sans signe indique le poids donné à un ascendant pour la prédiction. Le nombre de bits utilisés pour ce champ est égal à couleur~quant+3. texCoord header liaison~coord~texture : cet entier à 2 bits sans signe indique les fixations des textures au maillage en 3D. Les valeurs admissibles sont décrites dans le tableau 13. Tableau 13. Valeurs admissibles pour liaison coord texture liaison coord texture fixation 00 pas codé 01 lien par sommet 10 interdit 11 lien par sommet texCoord~bbox : cette valeur booléenne indique si une boite de limitation pour les cordonnées de texture est donnée. texCoord umin et texCoord~vmin : ces 2 valeurs à virgule flottante donnent la position de l'angle inférieur gauche de la boite de limitation dans l'espace 2D. texCoord size : cette valeur à virgule flottante donne la taille de la boite de limitation de texture. texCoord~quant :cet entier à 5 bits non signé indique l'étape de quantification utilisée pour les coordonnées de texture. texCoord~pred~type : cet entier à 2 bits sans signe indique comment les couleurs sont prédites. Le tableau 14 montre les valeurs admissibles pour texCoord~pred~type et le tableau 15 montre les valeurs admissibles en fonction de liaison coord texture. Tableau 14. Valeurs admissibles pour texCoord~pred~type texCoord pred type type de prédiction 00 pas prédiction 01 interdit 10 prédiction de parallélogramme 11 réservé Tableau 15. Combinaisons admissibles de liaison coord texture et texCoord~pred~type liaison coord texture texCoord pred type non lié pas codé lien~par~sommet pas de prédiction, prédiction de parallélogramme lien~par~sommet pas de prédiction, prédiction d'arbre texCoord~nlambda : cet entier à 2 bits sans signe indique le nombre d'ascendants utilisés pour prédire les coordonnées de texture. Les valeurs admissibles de texCoord~nlambda sont 1,2 et 3. Le tableau 16 montre les valeurs admissibles pour texCoord~nlambda en fonction de texCoord~pred~type Tableau 16. Valeurs admissibles pour texCoord~nlambda en fonction de texCoord~pred~type texCoord pred type texCoord nlambda pas prédiction pas codé prédiction arbre 1, 2, 3 prédiction parallélogramme 3 texCoord~lambda : cet entier sans signe indique le poids donné à un ascendant pour la prédiction. Le nombre de bits utilisés pour ce champ est égal à texCoord-quant+3. en-tête~cgd cgd~n~proj~surface~spheres est le nombre de Sphères de Surface Projetée. De manière caractéristique, ce nombre est égal à 1. point~centre~coord~x~cgd est la coordonnée X du point de centre (de manière caractéristique, le centre de gravité de l'objet) sur la sphère de surface projetée. point~centre~coord~y~cgd est la coordonnée Y du point de centre (de manière caractéristique, le centre de gravité de l'objet) sur la sphère de surface projetée. point~centre~coord~z~cgd est la coordonnée Z du point de centre (de manière caractéristique, le centre de gravité de l'objet) sur la sphère de surface projetée. facteur~distance~écran~normalisé~cgd indique où est placé l'écran virtuel, comparé au rayon de la sphère de surface projetée. La distance entre le point de centre de la sphère de surface projetée et l'écran virtuel est égale à rayon~cgd (facteur distance écran normalisé cgd=1). Il convient de noter que rayon~cgd est spécifié pour chaque sphère de surface projetée, alors que facteur~distance~écran normalisé est spécifié une fois seulement. rayon~cgd est le rayon de la sphère de surface projetée. surface~proj~minimu~cgd est la valeur minimum de surface projetée sur la sphère de surface projetée correspondante. Cette valeur est souvent (mais pas nécessairement) égale à une des valeurs cgd~proj~surface. points~proj~n~cgd est le nombre de points de la sphère de surface projetée dans laquelle la surface projetée sera transmise. Pour tous les autres points, la surface projetée est déterminée par interpolation linéaire. points~proj~n~cgd est de manière caractéristique petite (par exemple, 20) pour la première sphère de surface projetée et très petite :par exemple 3) pour les sphères de surface projetée additionnelles. coord~point~sphère~cgd indique l'index de la position de point dans un octaèdre. cgd~proj~surface est la surface projetée au point spécifié par coord~point~sphère~cgd. graphe sommet vg~simple : cette valeur booléenne indique si le graphe de sommets en cours est simple. Un graphe de sommets simple ne contient aucune boucle. Ce champ est codé arithmétiquement. dernier~graphe~sommet : cette valeur booléenne indique si le parcours en cours est le dernier parcours partant du sommet d'embranchement en cours. Ce champ n'est pas codé pour le premier parcours de chaque sommet d'embranchement, c'est à dire lorsque la variable skip~last est vraie. Lorsqu'elle n'est pas codée, la valeur de dernier~graphe~sommet pour le sommet en cours est considérée comme fausse. Ce champ est codé arithmétiquement. parcours~avant~graphe~sommet : cette valeur booléenne indique si le parcours en cours est un nouveau parcours. Si ce n'est pas un nouveau parcours, il doit être un parcours précédemment traversé, indiquant une boucle dans le graphe. Ce champ est codé arithmétiquement. index~boucle~graphe~sommet : cet entier sans signe indique l'index d'un parcours auquel la boucle en cours se relie. Sa représentation unaire est codée arithmétiquement. Si la boucle ouverte variable est égale à index boucle graphe sommet, le '1' traînant dans la représentation unaire est omis. Tableau 17. Représentation unaire du champ index~boucle~graphe~sommet. index boucle graphe sommet représentation unaire 0 1 1 01 2 001 3 0001 4 00001 5 000001 6 0000001 boucle ouverte-1 boucle ouverte-1 0's longueur~parcours~graphe~sommet : cet entier sans signe indique la longueur du parcours de sommet en cours. Sa représentation unaire est codée arithmétiquement. Tableau 18. Représentation unaire du champ longueur~parcours~graphe~sommet. longueur~parcours graphe~ représentation unaire sommet 1 1 2 01 3 001 4 0001 5 00001 6 000001 7 0000001 8 00000001 n n-1 0's suivi par 1 vg~feuille : cet indicateur booléen indique si le dernier sommet du parcours en cours est un sommet feuille. Si ce n'est pas un sommet feuille, c'est un sommet d'embranchement. Ce champ est codé arithmétiquement. vg~boucle : cet indicateur booléen indique si la feuille du parcours en cours se relie à un sommet d'embranchement du graphe, indiquant une boucle. Ce champ est codé arithmétiquement. arbre triangle position branche . cette variable entière est utilisée pour mémoriser le dernier triangle d'embranchement dans une partition. longueur parcours feuille arbre triangle . cet entier sans signe indique la longueur du parcours de triangle en cours. Sa représentation unaire est codée arithmétiquement. Tableau 19. Représentation unaire du champ longueur~parcours~feuille~arbre~triangle longueur parcours-feuille- représentation unaire arbre triangle 1 1 2 01 3 001 4 0001 5 00001 6 000001 7 0000001 8 00000001 n n-1 0's suivi par 1 feuille arbre triangle cet indicateur booléen indique si le dernier triangle du parcours en cours est un triangle feuille. Si ce n'est pas un triangle feuille, c'est un triangle d'embranchement. Ce champ est codé arithmétiquement. triangulated : cette valeur booléenne indique si la composante en cours contient seulement des triangles. Ce champ est codé arithmétiquement. triangle~progression : cette valeur booléenne est déterminée par la position du triangle dans l'arbre triangles. Si la valeur triangle~progression est 0, le triangle est un triangle feuille ou un triangle d'embranchement. Sinon, le triangle est un parcours. motif progression . cet indicateur booléen indique le motif de progression des arêtes à l'intérieur d'un parcours triangle. Un '0' représente une progression vers la gauche, et un 'l'une progression vers la droite. Ce champ est codé arithmétiquement. arête~polygone : cet indicateur booléen indique si la base du triangle en cours est une arête qui devrait être conservée lors de la reconstruction de l'objet maillé 3D. Si la base du triangle en cours ne doit pas être conservée, l'arête est laissée de côté. Ce champ est codé arithmétiquement. longueur~branche~codap : cet entier sans signe indique la longueur de la prochaine branche à traverser. La longueur de cette valeur est la valeur à échelle logarithmique de la taille de la table de boucle englobante. triangle td~orientation : cet indicateur à un bit informe le décodeur de l'ordre de traversée des paires tt/td à une branche. Ce champ est codé arithmétiquement. Le tableau 20 montre les valeurs admissibles pour td~orientation. Tableau 20. Valeurs admissibles pour td~orientation. td orientation ordre de traversée 0 première branche droite 1 première branche gauche visited : cette variable indique si le sommet en cours a été ou non visité. Lorsque codap~bdry~pred est '1', visited est vrai pour les sommets visités dans la partition en cours. Toutefois, lorsque codap~bdry~pred est '0', visited est vrai pour les sommets visités dans les précédentes partitions aussi bien que dans la partition en cours. index~sommet : cette variable indique l'index du sommet en cours dans la matrice de sommet. no~ancestors : cette variable booléenne est vraie s'il n'y a pas d'aïeux à utiliser pour la prédiction du sommet en cours. bit coor : cette valeur booléenne indique la valeur d'un bit de géométrie. Ce champ est codé arithmétiquement. bit~d'en-tête~coord : cette valeur booléenne indique la valeur d'un bit de géométrie d'en-tête. Ce champ est codé arithmétiquement. coord sign bit : cette valeur booléenne indique le signe d'un échantillon de géométrie. Ce champ est codé arithmétiquement. bit~traînant~coord : cette valeur booléenne indique la valeur d'un bit de géométrie traînant. Ce champ est codé arithmétiquement. bit normal : cette valeur booléenne indique la valeur d'un bit normal. Ce champ est codé arithmétiquement. bit~normal~menant : cette valeur booléenne indique la valeur d'un bit menant normal. Ce champ est codé arithmétiquement. signe~bit~normal : cette valeur booléenne indique le signe d'un échantillon normal. Ce champ est codé arithmétiquement. bit normal traînant , cette valeur booléenne indique la valeur d'un bit traînant normal. Ce champ est codé arithmétiquement. couleur bit : cette valeur booléenne indique la valeur d'un bit de couleur. Ce champ est codé arithmétiquement. bit~menant~couleur : cette valeur booléenne indique la valeur d'un bit menant de couleur. Ce champ est codé arithmétiquement. bit~signe~couleur : cette valeur booléenne indique le signe d'un échantillon de couleur. Ce champ est codé arithmétiquement. bit traînant couleur : cette valeur booléenne indique la valeur d'un bit traînant de couleur. Ce champ est codé arithmétiquement. bit~texCoord : cette valeur booléenne indique la valeur d'un bit de texture. Ce champ est codé arithmétiquement. bit~menant~texCoord : cette valeur booléenne indique la valeur d'un bit menant de texture. Ce champ est codé arithmétiquement. bit~signe~texCoord : cette valeur booléenne indique le signe d'un échantillon de texture. Ce champ est codé arithmétiquement. bit~traînant~texCoord : cette valeur booléenne indique la valeur d'un bit traînant de texture. Ce champ est codé arithmétiquement. Niveau~Affinage~Objet~Maillé~3D code~départ~MORL~3D : ceci est un code unique à 16 bits de longueur qui est utilisé pour la synchronisation. La valeur de ce code est toujours '0000 0000 0011 0010'. morl id : cet entier à 8 bits sans signe spécifie une id unique pour la composante de partage de forêt. mise à jour connectivité : cette variable à 2 bits indique si l'opération de partage de forêt résulte ou non en un affinage de la connectivité du maillage. Tableau 21. Valeurs pour mise~à~jour~connnectivité. Mise à jour connnectivité Signification 00 pas mise à jour 01 mise à jour fs 10réservé 11 réservé pré lissage cette valeur booléenne indique si l'opération de partage de forêt en cours utilise une étape de pré-lissage pour prédire globalement les positions de sommet . post-lissage : cette valeur booléenne indique si l'opération de partage de forêt en cours utilise une étape de post-lissage pour supprimer les artefacts de quantification. bit~bourrage : cette valeur booléenne est toujours vraie. autre~mise~à~jour : cette valeur booléenne indique si les mises à jour pour les coordonnées de sommet et les propriétés associées aux faces et coins non incidentes à n'importe quel arbre de la forêt suivent dans le flux binaire ou non. paramètres pré lissage pré~lissage~n : cette valeur entière indique le nombre d'itérations du filtre de pré-lissage. pré~lissage~lambda : cette valeur à virgule flottante est le premier paramètre du filtre de pré-lissage. pré~lissage~mu : cette valeur à virgule flottante est le deuxième paramètre du filtre de pré-lissage. paramètres~post~lissage post~lissage~n : cette valeur entière indique le nombre d'itérations du filtre de post-lissage. post~lissage~lambda : cette valeur à virgule flottante est le premier paramètre du filtre de post-lissage. post~lissage~mu : cette valeur à virgule flottante est le deuxième paramètre du filtre de pré-lissage. # fs~pre~mise~à~jour arête~forêt~pfs : cette valeur booléenne indique si une arête doit être ajoutée à la forêt construite jusqu'ici. contraintes lissage lissage~avec~arêtes~vives : cette valeur booléenne indique si des données sont incluses dans le flux binaire afin de marquer ou non les arêtes de discontinuité de lissage. Si lissage avec arêtes vives==0, aucune arête n'est marquée en tant qu'arête de discontinuité de lissage. Si les arêtes de discontinuité de lissage sont marquées, alors à la fois les filtres de pré-lissage et de postlissage les prennent en compte. lissage~avec~sommets~fixés : cette valeur booléenne indique si des données sont incluses dans le flux binaire afin de marquer les sommets qui ne bougent pas pendant le traitement de lissage. Si lissage avec arêtes vives==0, tous les sommets ne sont pas autorisés à bouger. Si des sommets fixes sont marqués, alors à la fois les filtres de pré-lisssage et de post-lissage les prennent en compte contexte~arête~vive~lissage : cette valeur booléenne indique si une arête correspondante est marquée comme une arête de discontinuité de lissage. lissage sommet fixé . cette valeur booléenne indique si un sommet correspondant est marqué comme un sommet fixé ou non. En conformité avec la présente invention, premièrement, même si une erreur de transmission est générée, seule la partie présentant l'erreur est transmise à nouveau, réduisant de ce fait la charge de réseau et le temps de transmission. Deuxièmement, une partie sélectionnée des données peut être progressivement restaurée en utilisant la connectivité, la géométrie et la photométrie de celle-ci. LEXIQUE /*apply post smoothing step*/ appliquer l'étape de post-lissage /*apply pre smoothing step*/ appliquer l'étape du pré-lissage /*for each tree loop vertex set pour chaque jeu sommets visited*/ de boucle d'arbre visité 3D Mesh Object objet maillé 3D 3D~Mesh~Object~Base~Layer niveau base objet maillé 3D 3D Mesh Object Header en-tête objet maillé 3D 3D Mesh Object Layer niveau objet maillé 3D 3D~Mesh~Object~Refinement~Layer niveau affinage objet maillé 3D 3D MO start code code départ OM 3D 3D MOBL start code code départ CBOM 3D 3D MOL start code code départ COM 3D 3D MORL start code code départ CROM 3D bound per corner lien par coin bound per face lien par face bound per vertex lien par sommet branch position position branche Break arrêt bytealigned octet aligné ccw cgd data donnée cgd cgd header en-tête cgd cgd min proj surface surface proj minimum cgd cgd n rfhrd rfhrd n cgd cgd n proj points points proj nombre cgd cgd~n~proj~surface surface projetés nombre cgd cgd~n~proj~surface~spheres sphères surface proj n cgd cgd n edges n arêtes cgd cgd n triangles triangles n cgd cgd n vertices sommets n cgd cgd~normalized-screen-distance-fac facteur distance écran tor normalisé cgd cgd proj surface surface proj cgd cgd proj surface spheres sphères surface proj cgd cgd radius rayon cgd cgd sphere point coord coord point sphère cgd cgd x coord center point point centre coord x cgd cgd y coord center point point centre coord y cgd cgd z coord center point point centre coord z cgd codap branch len longueur branche codap codap~branch~len~context contexte longueur branche codap codap~last~vg graphe sommet dernier codap codap~last~vg~context contexte graphe sommet dernier codap codap~left~bloop~idx index boucle englobante gauche codap codap~left~bloop~idx~context contexte index boucle englobante gauche codap codap~right~bloop~idx index boucle englobante droite codap codap~right~bloop~idx~context contexte index boucle englobante droite codap codap~vg~id identificateur graphe sommet codap~vg~id~context contexte identificateur graphe sommet code last dernier code color couleur color bbox couleur bbox color binding liaison couleur color bmin couleur bmin color gmin couleur gmin color header en-tête couleur color leading bit bit menant couleur color~leading~bit~context contexte bit menant couleur color pred type type prédiction couleur color quant couleur quant color rmin couleur rmin color sample échantillon couleur color sign bit bit signe couleur color size taille couleur color trailing bit bit menant couleur connected component composante reliée connectivity update mise à jour connectivité convex convexe coord coord coord bbox coord bbox coord binding liaison coord coord bit bit coord coord header en-tête coord coord lambda lambda coord coord~leading~bit~context contexte bit menant coord coord nlambda nlambda coord coord pred type type prédiction coord coord quant coord quant coord sample échantillon coord coord sign bit bit sign coord coord size taille coord coord trailing bit bit traînant coord coord xmin coord xmin coord ymin coord ymin coord zmin coord zmin creaseAngle pli Angle creates no loop in forest créé aucune boucle dans forêt depth profondeur do faire each connected component chaque composante reliée each edge chaque arête each edge in connected component chaque arête dans composante reliée each tree in forest chaque arbre dans forêt each vertex chaque sommet each vertex in chaque sommet dans else sinon fixed vertex marks marques sommet fixé for pour forest forêt fs post update post-mise à jour fs fs pre update pré-mise à jour fs fs update mise à jour fs has stitches a sutures has stitches context contexte a sutures if si last component dernière composante last~component~context contexte dernière composante loop coord update mise à jour coord boucle loop~normal~update mise à jour normal boucle marching pattern motif progression marching~pattern~context contexte motif progression marching triangle triangle progression Mnemonic Mnémonique mobl id identificateur COM mol id identificateur CON morl id identificateur morl nextbits~bytealigned octets alignés prochains bits No. of bits Nombre de bits no ancestors pas d'ascendants normal normal normal bbox bbox normal normal binding liaison normale normal bit bit normal normal header en-tête normal normal leading bit bit menant normal normal~leading~bit~context contexte bit menant normal normal pred type type prédiction normal normal quant quant normal normal sample échantillon normal normal sign bit bit signe normal normal trailing bit bit traînant normal not bound non lien ntriangles nombre triangles one bit un bit openloop boucle ouverte openloops boucles ouvertes other~property~update mise à jour autres propriétés other update mise à jour autres parallelogram~prediction prédiction parallélogramme partition type 0 partition type 0 partition type 1 partition type 1 partition type 2 partition type 2 pfs forest edge arête forêt pfs pfs forest edge context contexte arête forêt pfs polygon edge arête polygone polygon edge context contexte arête polygone post smoothing post-lissage post smoothing lambda post-lissage lambda post smoothing mu post-lissage mu post smoothing n post-lissage n post smoothing parameters paramètres post-lissage pre smoothing pré-lissage pre smoothing lambda pré-lissage lambda pre smoothing mu pré-lissage mu pre smoothing n pré-lissage n pre smoothing parameters paramètres pré-lissage qf decode décode qf qf start départ qf qf start qf départ root color couleur racine root~color~sample échantillon couleur racine root coord coord racine root coord sample échantillon coord racine root normal normal racine root~normal~sample échantillon normal racine root texCoord coord texture racine root~texCoord~sample échantillon texture racine root~textCoord~sample échantillon coord texture racine root triangle triangle racine run~length~context contexte longueur parcours sharp edge marks marques arête vive smooth fixed vertex lissage sommet fixé smooth~fixed~vertex~context contexte lissage sommet fixé smooth~sharp~edge contexte arête vive lissage smooth~with~fixed~vertices lissage avec sommets fixés smooth~with~sharp~edges lissage avec arêtes vives smoothing constraints contraintes lissage solid solide stitch cmd cmd suture stitch cmd context contexte cmd suture stitch incr length longueur incr suture stitch~incr~length~context contexte longueur incr suture stitch~incr~length~sign sign longueur incr suture stitch~incr~length~sign~context contexte sign longueur incr suture stitch length longueur suture stitch length context contexte longueur suture stitch pop or get obtenir ou sauter suture stitch~pop~or~get~context contexte obtenir ou sauter suture stitch push pousser suture stitch push context contexte pousser suture stitch reverse renverser suture stitch reverse context contexte renverser suture stitch~stitch~stack~context contexte pile suture suture stitch stitch stack index index pile suture suture stitches sutures td orientation orientation données triangles td orientation context contexte orientation donnéestriangles texCoord coord texture texCoord bbox bbox coord texture texCoord binding liaison coord texture texCoord bit bit coord texture texCoord header en-tête coord texture texCoord lambda coord lambda texture texCoord leading bit bit menant coord texture texCoord~leading~context contexte bit menant coord texture texCoord nlambda coord nlambda texture texCoord~pred~type type prédiction coord texture texCoord quant quant coord texture texCoord sign bit bit signe coord texture texCoord size taille coord texture texCoord umin coord umin texture texCoord vmin coord vmin texture textCoord~sample échantillon coord texture total length longueur totale tree~loop~property~update mise à jour propriété boucle arbre tree prédiction prédiction arbre triangle triangle triangle data données triangles triangle tree arbre triangles triangulated triangulé triangulated context contexte triangulé tt leaf feuille arbre triangles tt leaf context contexte feuille arbre triangles tt~run~length longueur parcours feuille arbre triangles vertex graph graphe sommet vertex index index sommet vg~forward~run parcours avant graphe sommet vg~forward~run~context contexte parcours avant graphe sommet vg last dernier graphe sommet vg~last~context contexte dernier graphe sommet vg leaf feuille graphe sommet vg leaf context contexte feuille graphe sommet vg loop boucle graphe sommet vg loop context contexte boucle graphe sommet vg~loop~index index boucle graphe sommet vg~loop~index~context contexte index boucle graphe sommet vg number nombre graphe sommet vg~run~length longueur parcours graphe sommet vg~run~length~context contexte longueur parcours graphe sommet vg simple simple graphe sommet vg~simple~context contexte simple graphe sommet visited visité Visual Bitstream Syntax Syntax flux de bits visuel while tant que zero context contexte zéro loop~color~update mise à jour couleur boucle loop~texCoord~update mise à jour texture coord boucle each tree loop vertex chaque sommet de boucle d'arbre each tree loop face chaque face de boucle d'arbre each tree loop corner chaque coin de boucle d'arbre other coord update mise à jour coord autre other normal update mise à jour normal autre other~color~update mise à jour couleur autre other~texCoord~update mise à jour coord texture autre each vertex in mesh chaque sommet dans maillage vertex is not a tree loop vertex sommet n'est pas un sommet de boucle each face in mesh chaque face dans maillage face is not a tree loop face face n'est pas une face de boucle d'arbre each corner in mesh chaque coin dans maillage corner is not a tree loop corner coin n'est pas un coin de boucle d'arbre En résumé, la présente invention concerne un procédé de codage d'un objet maillé (OM) tridimensionnel (3D) polygonal comprenant les étapes consistant à: (a) diviser l'OM 3D polygonal en une ou plusieurs composantes reliées ; (b) générer un graphe de sommets et un arbre triangles/données triangles pour chacune des composantes reliées ; et (c) reconstruire le graphe de sommets et l'arbre triangles/données triangles constituant la composante reliée en conformité avec les couches de base de l'objet maillé (CBOM), chacune étant susceptible d'être décodé indépendamment pour les composantes reliées respectives et ensuite codé de la même manière. Dans un mode de réalisation de la présente invention, l'étape (a) comporte les étapes consistant à classifier l'OM 3D polygonal en une pluralité de couches d'objet maillé (COM) et de diviser l'OM 3D polygonal classifié en une ou plusieurs composantes reliées. Dans un autre mode de réalisation, si l'arbre triangles/données triangles constituant les composantes reliées est tellement grand qu'il n'est pas conforme aux CBOM, l'arbre triangles/données triangles est divisé en partitions de données dont chacune est susceptible d'être décodée indépendamment en conformité avec les CBOM, et si l'information constituant une pluralité de composantes reliées est conforme aux CBOM, l'information constituant une pluralité de composantes reliées est collectée en une partition de données pour être ensuite codée en conformité avec les CBOM. Selon un autre mode de réalisation de la présente invention, les CBOM dans lesquelles l'arbre triangles/données triangles est codé inclut un marqueur d'orientation à un bit à la position où existe un triangle d'embranchement positionné à la branche principale de l'arbre triangles, et l'ordre de traversée des arbres dépendants suivants après le triangle d'embranchement est déterminé par l'orientation marquée dans le marqueur d'orientation. Selon un autre mode de réalisation de la présente invention, le marqueur d'orientation (td~orientation) est déterminé par la taille d'information des arbres dépendants suivants après le triangle d'embranchement. Selon un autre mode de réalisation de la présente invention, tous les arbres dépendants sont dans le même ordre de traversée. Selon un autre mode de réalisation de la présente invention, l'ordre de traversée d'un triangle à l'intérieur des arbres dépendants correspond à la valeur du marqueur d'orientation (td~orientation). Selon un autre mode de réalisation de la présente invention, les CBOM dans lesquelles l'arbre triangles/données triangles est codé inclut l'information de taille totale (longueur~branche~codap) d'un arbre dépendant placé à une branche latérale dans un triangle d'embranchement placé à la branche principale de l'arbre triangles, et les index de sommet Y sont déterminés par l'information de taille totale. Selon un autre aspect de la présente invention, la présente invention concerne un procédé de codage progressif et résilient vis-à-vis des erreurs d'un objet maillé (OM) tridimensionnel (3D) polygonal comprenant les étapes consistant à : (a) diviser l'OM 3D polygonal en une ou plusieurs composantes reliées ; (b) générer un graphe de sommets et une paire d'arbres triangles/données triangles pour chacune des composantes reliées ; et (c) coder le graphe de sommets et l'arbre triangles/données triangles constituant les composantes reliées en conformité avec les couches de base de l'objet maillé (CBOM), chacune possédant un type fixé de flux binaire susceptible d'être décodé indépendamment pour les composantes reliées respectives. Selon un autre mode de réalisation de la présente invention, à l'étape (c), le graphe de sommets et l'arbre triangles/données triangles sont disposés séquentiellement en conformité avec toutes les composantes reliées constituant le maillage en 3D polygonal pour constituer une partition de données. Selon un autre mode de réalisation de la présente invention, à l'étape (c), le graphe de sommets correspondant à toutes les composantes reliées constituant le maillage en 3D polygonal est disposé en premier et l'arbre triangles/données triangles correspondant à toutes les données reliées est ensuite arrangé pour constituer une partition de données. Selon un autre mode de réalisation de la présente invention, les informations constituant les composantes reliées respectives sont construites comme des partitions de données indépendantes pour être codée ensuite. Selon un autre mode de réalisation de la présente invention, à l'étape (c), le graphe de sommets correspondant à toutes les composantes reliées constituant le maillage en 3D polygonal est construit comme une partition de données et l'arbre triangles/données triangles correspondant à toutes les composantes reliées est construit comme une autre partition, pour être codé ensuite. Selon un autre mode de réalisation de la présente invention, à l'étape (c), le graphe de sommets correspondant à toutes les composantes reliées constituant le maillage en 3D polygonal est construit comme une partition de données et l'arbre triangles/données triangles correspondant à toutes les composantes reliées est construit comme des partitions de données indépendantes, l'arbre triangles/données triangles étant divisé en une pluralité de partitions de données susceptibles d'être décodées indépendamment, pour être ensuite codées. Selon un autre mode de réalisation de la présente invention, à l'étape (c), les graphes de sommets correspondant aux composantes reliées respectives constituant le maillage en 3D polygonal sont construits indépendamment comme partitions de données et les arbres triangles/données triangles correspondant aux composantes reliées respectives sont constitués indépendamment comme partitions de données, pour être ensuite codés. Selon un autre mode de réalisation de la présente invention, à l'étape (c), les graphes de sommets correspondant aux composantes reliées respectives sont construits comme partitions de données indépendantes pour être ensuite codés en premier, et l'arbre triangles/données triangles correspondant aux composantes reliées respectives est construit comme partitions de données indépendantes, l'arbre triangles/données triangles d'une composante reliée plus grand que le paquet de transmission étant divisé en une pluralité de partitions de données susceptibles d'être décodées indépendamment, pour être ensuite codées en suivant. Selon un autre mode de réalisation de la présente invention, à l'étape (c), une partition de données est construite par le graphe de sommets correspondant à une composante reliée, et une partition de données indépendante est construite par l'arbre triangles/données triangles correspondant à la composante reliée, pour être ensuite codée par les composantes reliées respectives. Selon un autre mode de réalisation de la présente invention, à l'étape (c), une partition de données indépendante est construite pour le graphe de sommets correspondant à une composante reliée et une partition de données indépendante est construite pour l'arbre triangles/données triangles correspondant à une composante reliée pour être ensuite codée, l'arbre triangles/données triangles d'une composante relié plus grand que le paquet de transmission étant divisé en une pluralité de partitions de données séparées susceptibles d'être décodées indépendamment, pour être ensuite codées par les composantes reliées respectives. Selon un autre aspect de la présente invention, la présente invention concerne un procédé de codage progressif et résilient vis-à-vis des erreurs d'un objet maillé (OM) tridimensionnel (3D) polygonal, comprenant les étapes consistant à : (a) diviser l'OM 3D polygonal en une ou plusieurs composantes reliées ; (b) générer un graphe de sommets et une paire d'arbres triangles/données triangles pour chacune des composantes reliées ; et (c) coder le graphe de sommets et l'arbre triangles/données triangles constituant les composantes reliées en conformité avec les couches de base de l'objet maillé (CBOM), chacun possédant un type de flux binaire variable en accord avec les propriétés de l'information à coder, susceptible d'être indépendamment décodé pour les composantes reliées respectives. Selon un autre mode de réalisation de la présente invention, à l'étape (c), la structure de flux binaires codés est représentée en utilisant quelques-uns des bits dans un code de départ de la partition de données comme un type de partition. Selon un autre mode de réalisation de la présente invention, le type de partition inclut un type de partition 0 (partition~type~0), dans lequel l'information correspondant à une ou plusieurs des composantes reliées est collectée afin de construire une partition de données pour être ensuite codée. Selon un autre mode de réalisation de la présente invention, la CBOM dans laquelle le type de partition 0 est codé inclut en outre une pluralité de bits indicatifs de la présence d'autres composantes reliées devant être codées après que les composantes reliées respectives aient été codées. Selon un autre mode de réalisation de la présente invention, le type de partition inclut un premier type de partition (partition-type-1) dans lequel les informations de graphe de sommets correspondant à une ou plusieurs composantes reliées sont collectées pour construire une partition de données pour être ensuite codées. Selon un autre mode de réalisation de la présente invention, la CBOM dans laquelle le premier type de partition est codé inclut en outre une pluralité de bits indicatifs de la présence d'autres informations de graphe de sommets devant être codées après que les informations de graphe de sommets correspondant aux composantes reliées respectives aient été codées. Selon un autre mode de réalisation de la présente invention, le type de partition inclut un deuxième type de partition (partition~type~2) dans lequel l'arbre triangles/données triangles est divisé en partitions de données pour être ensuite codé. Selon un autre mode de réalisation de la présente invention, la CBOM dans laquelle le deuxième type de partition est codé inclut en outre un identificateur des informations de graphe de sommets (codap~vg~id) correspondant à l'arbre triangles/données triangles respectif dans les partitions de données respectives. Selon un autre mode de réalisation de la présente invention, s'il y a seulement un graphe de sommets auquel il est fait référence par l'arbre triangles/données triangles, l'identificateur du graphe de sommets n'est pas codé. Selon un autre mode de réalisation de la présente invention, la CBOM dans laquelle le deuxième type de partition est codé inclut en outre un index de départ ( Index~boucle~ englobante~gauche~codap, Index~boucle~englobante~droite~ codap) d'une table de boucle englobante pour une bande triangles devant être restaurée. Selon un autre mode de réalisation de la présente invention, la CBOM dans laquelle le deuxième type de partition est codé inclut en outre un marqueur de prédiction de limite (codap~bdry~pred) indiquant comment la géométrie et la photométrie partagées par deux partitions de données ou plus sont prédites. Selon un autre mode de réalisation de la présente invention, le type de partition inclut un troisième type de partition (partition~type~3) dans lequel une composante reliée est construite comme une partition de données pour être ensuite codée. Selon un autre aspect de la présente invention, dans le codage d'un objet maillé (OM) tridimensionnel (3D) triangles pour construction incrémentale et résilience vis- à-vis des erreurs, procédé pour diviser l'OM 3D triangle en partitions de données pour être mises en paquets, le procédé comprend les étapes consistant à : (a) calculer les quantités de génération de bits totales des triangles pendant que les triangles contenus dans un arbre triangles sont traversés en séquences ; (b) cumuler les quantités de génération de bits totales calculées à l'étape (a) ; et (c) si la valeur cumulée de l'étape (b) est plus petite que le produit d'une taille de paquet et d'une allocation du paquet, exécuter de façon répétitive les étapes (a) et (b) sur le triangle traversé suivant contenu dans l'arbre triangles, et sinon les arbres triangles/données triangles des triangles traversés sont divisés en partitions pour être mises en paquets. Selon un autre mode de réalisation de la présente invention, si le triangle traversé à l'étape (a) est un triangle d'embranchement, la méthode comprend en outre l'étape suivante : (d) si la somme obtenue en additionnant la valeur cumulée de l'étape (b) et la quantité de génération de bits obtenue en codant tous les triangles contenus dans des arbres dépendants déterminés par l'ordre de traversée est plus petite que la somme de la taille de paquet et de l'allocation du paquet, exécuter de façon répétitive les étapes (a) à (c), et sinon les arbres triangles/données triangles des triangles, traversés jusqu'à ce que le triangle d'embranchement soit atteint, sont divisés en partitions de données pour être mis en paquets. Selon un autre mode de réalisation de la présente invention, si le triangle traversé à l'étape (a) est un triangle d'embranchement, la méthode comprend en outre l'étape suivante : (d) si la somme obtenue en additionnant la valeur cumulée de l'étape (b) et la quantité de génération de bits obtenue prévue par la taille des arbres dépendants déterminés par l'ordre de traversée est plus petite que la somme de la taille de paquet et de l'allocation du paquet, exécuter de façon répétitive les étapes (a) à (c), et sinon l'arbre triangles/données triangles des triangles traversés jusqu'à ce que le triangle d'embranchement soit atteint est divisé en partitions de données pour être mis en paquets. Selon un autre aspect de la présente invention, la présente invention concerne un procédé de codage progressif et résilient vis-à-vis des erreurs d'un objet maillé (OM) tridimensionnel (3D) polygonal, comprenant les étapes consistant à : (a) diviser l'OM 3D polygonal en une ou plusieurs composantes reliées ; (b) générer un graphe de sommets et une paire d'arbres triangles/données triangles pour chacune des composantes reliées ; et (c) coder le graphe de sommets constituant les composantes reliées ; et (d) construire l'arbre triangles/données triangles comme composantes virtuelles reliées et coder de la même manière en additionnant les paires de bits virtuels en partitions de données obtenues par partition de l'arbre triangles/données triangles. Selon un autre mode de réalisation de la présente invention, la partition à l'étape (d) est exécutée seulement à l'embranchement principal de l'arbre triangles. Selon un autre mode de réalisation de la présente invention, si la partition à l'étape (d) est exécutée à une branche ou feuille de l'arbre triangles, une composante reliée virtuelle est construite en additionnant une paire de (1, 1) à une paire de (trun, tleaf). Selon un autre mode de réalisation de la présente invention, si la partition à l'étape (d) est exécutée à un triangle d'embranchement de l'arbre triangles, une composante reliée virtuelle est construite en additionnant deux paires de (1, 1) à une paire de (trun, tleaf). Selon un autre mode de réalisation de la présente invention, le procédé de codage progressif et résilient vis-à-vis des erreurs, comprend en outre l'étape consistant à reconstruire l'OM 3D polygonal en un OM 3D triangle avant l'étape (a) . Selon un autre mode de réalisation de la présente invention, la partition à l'étape (d) est exécutée seulement à l'arête réelle d'un maillage polygonal, et l'information d'arête polygonale du premier triangle contenu dans une partition de données de l'arbre triangles/données triangles n'est pas codée. Selon un autre mode de réalisation de la présente invention, la partition à l'étape (d) est exécutée seulement à l'arête réelle et l'arête virtuelle d'un maillage polygonal, l'information d'arête polygonale du premier triangle contenu dans un type 0 de partition de l'arbre triangles/données triangles n'est pas codée, et l'information d'arête polygonale du premier triangle contenue dans les types de partition restants est codée. Selon un autre mode de réalisation de la présente invention, des marqueurs d'orientation à un bit sont contenus dans la partition de données pour les triangles d'embranchement respectifs positionnés à la branche principale, parmi tous les triangles d'embranchement présents à l'intérieur de la partition de données construite par les composantes reliées virtuellement. Selon un autre mode de réalisation de la présente invention, l'en-tête de la partition de données formée en divisant l'arbre triangles/données triangles inclut un index de départ d'une table de boucle englobante de façon à être restaurée indépendamment des partitions de données précédemment restaurées. Selon un autre mode de réalisation de la présente invention, l'index de départ est déterminé par les premiers index gauche et droit tracés dans la boucle englobante correspondant aux sommets de départ des triangles restaurés consécutivement dans la table de boucle englobante correspondant à l'arbre triangles/données triangles, et les index de la boucle englobante sont définis pour être dans la gamme du nombre de sommets plus 2. Selon un autre mode de réalisation de la présente invention, l'index de départ est déterminé par les premiers index gauche et droit tracés dans la boucle englobante correspondant aux sommets de départ des triangles restaurés consécutivement dans la table de boucle englobante correspondant à l'arbre triangles/données triangles, et les index de la boucle englobante sont déterminés en considération des données de maillage globales. Selon un autre mode de réalisation de la présente invention, l'en-tête de la partition de données formée en divisant l'arbre triangles/données triangles inclut en outre un identificateur d'un graphe de sommets (codap~vg~id) correspondant à l'arbre triangles/données triangles. Selon un autre mode de réalisation de la présente invention, l'en-tête de la partition de données formée en divisant l'arbre triangles/données triangles inclut en outre un marqueur de prédiction de limite (codap~bdry~pred) indiquant comment la géométrie et la photométrie partagées par la partition de données et la partition de données précédemment codées sont prédites. Selon un autre mode de réalisation de la présente invention, si les positions de départ et de fin des partitions de données sont à la branche principale de l'arbre triangles, la géométrie et la photométrie partagées par la partition de données et la partition de données précédemment codée sont contenues dans une partition de données seulement, et si les positions de départ et de fin de la partition de données sont à un arbre dépendant, il est déterminé si la géométrie et la photométrie partagées par la partition de données et la partition de données précédemment codée sont présentes ou non, si elles sont présentes, la géométrie et la photométrie sont contenues dans les deux partitions de données à la fois, et si elles ne sont pas présentes, la géométrie et la photométrie sont contenues dans une partition de données seulement. Selon un autre mode de réalisation de la présente invention, les données de triangles contenues dans l'arbre triangles/ données triangles incluent la progression, la géométrie et la photométrie disposées pour chaque triangle constituant l'arbre triangles correspondant. Selon un autre mode de réalisation de la présente invention, les données de triangles contenues dans l'arbre triangles/données triangles incluent la progression de tous les triangles constituant l'arbre triangles correspondant, la géométrie de tous les triangles et la photométrie de tous les triangles disposées en séquences. Selon un autre aspect de la présente invention, la présente invention concerne un procédé de décodage progressif et résilient vis-à-vis des erreurs d'un objet maillé (OM) tridimensionnel (3D) polygonal, comprenant les étapes consistant à : (a) diviser les flux binaires d'entrée en unités de couches de base d'objet maillé (CBOM) ; (b) déterminer un type de partition des CBOM ; (c) si un graphe de sommets est contenu dans les CBOM, décoder le graphe de sommets afin de générer une table de boucle englobante ; (d) si l'arbre triangles/données triangles est contenu dans les CBOM, décoder l'arbre triangles/données triangles pour générer l'OM 3D ; et (e) exécuter de façon répétitive les étapes (a) à (d) pour générer un OM 3D. Selon un autre mode de réalisation de la présente invention, l'étape (a) comprend les étapes consistant à diviser les flux binaires entrants en unités d'OM 3D polygonaux, déterminer le type d'une couche d'objet maillé (COM) contenue dans l'OM 3D polygonal, et diviser les flux binaires dans la COM en unités de couche de base d'objet maillé (CBOM) si l'OM 3D est capable d'être décodé. Selon un autre mode de réalisation de la présente invention, l'arbre triangles/données triangles est décodé à l'étape (d), l'ordre de décodage des arbres dépendants suivants après le triangle d'embranchement est déterminé par l'orientation marquée dans un marqueur d'orientation (td~orientation) dans le cas de décodage d'un triangle d'embranchement positionné à la branche principale de l'arbre triangles. Selon un autre mode de réalisation de la présente invention, tous les arbres dépendants sont dans le même ordre de traversée. Selon un autre mode de réalisation de la présente invention, l'ordre de traversée d'un triangle à l'intérieur des arbres dépendants correspond à la valeur du marqueur d'orientation (td~orientation). Selon un autre mode de réalisation de la présente invention, à l'étape (b), le type de partition est déterminé par la valeur du code de départ de la partition de données. Selon un autre mode de réalisation de la présente invention, le type de partition inclut un type de partition 0 (partition~type~0) dans lequel les informations correspondant à une ou plusieurs composantes reliées sont collectées pour construire une partition de données pour être ensuite codées. Selon un autre mode de réalisation de la présente invention, lorsque la CBOM du type de partition 0 est codée, il est déterminé si d'autres composantes reliées devant être codées sont présentes par un bit prédéterminé positionné après les composantes reliées respectives. Selon un autre mode de réalisation de la présente invention, le type de partition inclut un premier type de partition (partition~type~l) dans lequel les informations de graphe de sommets correspondant à une ou plusieurs composantes reliées sont collectées pour construire une partition de données pour être ensuite codées. Selon un autre mode de réalisation de la présente invention, lorsque la CBOM du premier type de partition est codée, il est déterminé si d'autres informations de graphe de sommets à coder sont présentes par un bit prédéterminé (codap~last~vg) positionné après les informations de graphe de sommets correspondant aux composantes reliées respectives. Selon un autre mode de réalisation de la présente invention, le type de partition inclut un deuxième type de partition (partition~type~2) dans lequel l'arbre triangles/données triangles est divisé en partitions de données pour être ensuite codé. Selon un autre mode de réalisation de la présente invention, lorsque la CBOM du deuxième type de partition est codée, l'information de graphe de sommets correspondant à l'arbre triangles/données triangles respectif est identifiée par un identificateur de graphe de sommets (codap~vg~id) positionné avant l'arbre triangles/données triangles. Selon un autre mode de réalisation de la présente invention, lorsque la CBOM du deuxième type de partition est codée, si l'information de graphe de sommets correspondant à l'arbre triangles/données triangles respectif peut être identifiée de façon unique, il est déterminé que l'identificateur de graphe de sommets n'est pas positionné avant l'arbre triangles/données triangles. Selon un autre mode de réalisation de la présente invention, la CBOM du deuxième type de partition est codée indépendamment de la partition de données précédentes par l'index de départ (Index boucle~englobante~gauche~codap, Index~boucle~englobante~droite~codap) de la table de boucle englobante positionnée avant l'arbre triangles/données triangles. Selon un autre mode de réalisation de la présente invention, lorsque la CBOM du deuxième type de partition est codée, il est déterminé comment la géométrie et la photométrie partagées par les partitions de données précédemment décodées sont prédites par un marqueur de prédiction de limite positionné avant l'arbre triangles/données triangles. Selon un autre mode de réalisation de la présente invention, le type de partition inclut un troisième type de partition (partition~type~3) dans lequel une composante reliée est construite comme une partition de données. Selon un autre mode de réalisation de la présente invention, lorsque l'arbre triangles/données triangles est décodé à l'étape (d), si un triangle d'embranchement positionné à la branche principale de l'arbre triangles est décodé, les index de sommets Y sont déterminés par l'information de taille totale (longueur~branche~codap) d'un arbre dépendant positionné à une branche latérale. Selon un autre aspect de la présente invention, la présente invention concerne un procédé de décodage progressif et résilient vis-à-vis des erreurs d'un objet maillé (OM) tridimensionnel (3D) polygonal, comprenant les étapes consistant à : (a) diviser les flux binaires d'entrée en unités de couches de base d'objet maillé (CBOM) ; (b) déterminer un type de partition des CBOM ; (c) si un graphe de sommets est contenu dans les CBOM, décoder le graphe de sommets afin de générer une table de boucle englobante ; (d) si l'arbre triangles/données triangles est contenu dans les CBOM, décoder l'arbre triangles/données triangles en unités de composantes reliées pour générer un OM 3D données triangles ; et (e) si les composantes reliées à l'étape (d) sont des composantes reliées virtuelles, exécuter de façon répétitive les étapes (a) à (d), et sinon compléter la génération d'un OM 3D triangle. Selon un autre mode de réalisation de la présente invention, la CBOM contenant l'arbre triangles/données triangles à l'étape (d) inclut un index de départ (Index boucle~englobante~gauche~codap, Index~boucle~englobante~ droite~codap) d'une table de boucle englobante de façon à être restauré indépendamment des partitions de données précédemment restaurées. Selon un autre mode de réalisation de la présente invention, l'index de départ est déterminé par les premiers index gauche et droit tracés dans la boucle englobante correspondant aux sommets de départ des triangles restaurés consécutivement dans la table de boucle englobante correspondant à l'arbre triangles/données triangles, et les index de la boucle englobante sont définis en considération de toutes les mailles. Selon un autre mode de réalisation de la présente invention, l'index de départ est déterminé par les premiers index gauche et droit tracés dans la boucle englobante correspondant aux sommets de départ des triangles restaurés consécutivement dans la table de boucle englobante correspondant à l'arbre triangles/données triangles, et les index de la boucle englobante sont définis pour être dans la gamme du nombre de sommets plus 2. Selon un autre mode de réalisation de la présente invention, à l'étape (d), si l'index droit-l'index gauche-1 (Index~boucle~englobante~droite~codap, Index~boucle~ englobante~gauche~codap-l) est plus grand que le nombre total de triangles générés lorsque seul l'arbre triangles de la CBOM est restauré, il est déterminé que les composantes reliées sont des composantes reliées virtuelles. Selon un autre mode de réalisation de la présente invention, si le troisième triangle du dernier parmi les triangles décodés à l'étape (d) est un triangle d'embranchement, il est déterminé que deux des triangles virtuels existent dans une paire de (trun, tleaf) et sinon il est déterminé qu'une paire de triangles virtuels existe dans une paire de (trun, tleaf), de façon que les données de triangle des triangles virtuels ne soient pas codées. Selon un autre mode de réalisation de la présente invention, le procédé de décodage progressif et résilient vis-à-vis des erreurs, comprend en outre l'étape consistant à reconstruire l'OM 3D triangle en un OM 3D polygonal. Selon un autre mode de réalisation de la présente invention, la partition pendant le codage est exécutée seulement à l'arête réelle de l'OM 3D polygonal et l'arête polygonale du premier triangle contenu dans la CBOM de l'arbre triangles/données triangles est déterminée pour être l'arête réelle sans décodage. Selon un autre mode de réalisation de la présente invention, la partition pendant le codage est également exécutée à l'intérieur de l'OM 3D polygonal et l'arête polygonale du premier triangle contenu dans la CBOM de l'arbre triangles/données triangles est déterminée comme étant l'arête réelle sans décodage. Selon un autre mode de réalisation de la présente invention, l'ordre de décodage des arbres dépendants suivants après le triangle d'embranchement est déterminé par l'orientation marquée dans un marqueur d'orientation (td~orientation) dans le cas de décodage d'un triangle d'embranchement, par rapport à tous les triangles d'embranchement positionnés à l'intérieur de la CBOM construite par les composantes reliées virtuelles. Selon un autre mode de réalisation de la présente invention, la CBOM contenant l'arbre triangles/données triangles à l'étape (d) inclut un marqueur de prédiction de limite (codap~bdry~pre) indiquant comment la géométrie et la photométrie partagées par deux CBOM ou plus sont prédites. Selon un autre mode de réalisation de la présente invention, la valeur du marqueur de prédiction de limite est 0, et il est déterminé que la géométrie et la photométrie partagées par la CBOM en cours de décodage et la CBOM précédemment décodée ne sont pas contenues dans la CBOM en cours de décodage. Selon un autre mode de réalisation de la présente invention, lorsque la géométrie est décodée en utilisant une valeur de prédiction prédite par trois ascendants visités précédemment dans la partition de données en cours et une valeur codée de celle-ci, la valeur de prédiction est établie sur 0 si aucune valeur d'ascendant n'est admissible, la valeur de prédiction est établie sur la valeur de l'ascendant si seulement une valeur d'ascendant est admissible, la valeur de prédiction est établie sur une valeur de moyenne arithmétique de deux valeurs d'ascendants admissibles si les deux valeurs d'ascendants sont admissibles et que les distances entre les deux valeurs et le sommet en cours sont 1, la valeur de prédiction est établie sur l'une ou l'autre des valeurs d'ascendants si seulement deux valeurs d'ascendants sont admissibles la distance entre l'une ou l'autre des valeurs et le sommet en cours est 1, et la valeur de prédiction est déterminée par une méthode de prédiction prédéterminée si trois valeurs d'ascendants sont toutes admissibles. Selon un autre mode de réalisation de la présente invention, la valeur du marqueur de prédiction de limite est 1, il est déterminé que la géométrie et la photométrie partagées par la CBOM en cours de décodage et la CBOM précédemment décodée sont également contenues dans la CBOM en cours de décodage. Selon un autre mode de réalisation de la présente invention, lorsque la géométrie est décodée en utilisant une valeur de prédiction prédite par trois ascendants visités précédemment dans la partition de données en cours et une valeur codée de celle-ci, la valeur de prédiction est déterminée par une méthode de prédiction prédéterminée sur la supposition qu'aucun sommet n'a été visité dans les partitions de données précédentes. Selon un autre mode de réalisation de la présente invention, les données triangles contenues dans l'arbre triangles/données triangles incluent la progression, la géométrie et la photométrie disposées pour chaque triangle constituant l'arbre triangles correspondant. Selon un autre mode de réalisation de la présente invention, les données triangles contenues dans l'arbre triangles/données triangles incluent la progression de tous les triangles constituant l'arbre triangles correspondant, la géométrie de tous les triangles et la photométrie de tous les triangles disposées en séquences. REVENDICATIONS 1. Procédé de codage d'un objet maillé (OM) tridimensionnel (3D) polygonal comprenant les étapes consistant à: (a) diviser l'OM 3D polygonal en une ou plusieurs composantes reliées ; (b) générer un graphe de sommets et un arbre triangles/données triangles pour chacune des composantes reliées ; et (c) reconstruire le graphe de sommets et l'arbre triangles/données triangles constituant la composante reliée en conformité avec les couches de base de l'objet maillé (CBOM), chacune étant susceptible d'être décodé indépendamment pour les composantes reliées respectives et ensuite codé de la même manière. 2. Procédé de codage selon la revendication 1, dans lequel l'étape (a) comporte les étapes consistant à classifier l'OM 3D polygonal en une pluralité de couches d'objet maillé (COM) et de diviser l'OM 3D polygonal classifié en une ou plusieurs composantes reliées. 3. Procédé de codage selon la revendication 1, dans lequel à l'étape (c), si l'arbre triangles/données triangles constituant les composantes reliées est tellement grand qu'il n'est pas conforme aux CBOM, l'arbre triangles/données triangles est divisé en partitions de données dont chacune est susceptible d'être décodée indépendamment en conformité avec les CBOM, et si l'information constituant une pluralité de composantes reliées est conforme aux CBOM, l'information constituant une pluralité de composantes reliées est collectée en une partition de données pour être ensuite codée en conformité avec les CBOM. 4. Procédé de codage selon la revendication 1, dans lequel les CBOM dans lesquelles l'arbre triangles/données triangles est codé inclut un marqueur d'orientation à un bit à la position où existe un triangle d'embranchement positionné à la branche principale de l'arbre triangles, et l'ordre de traversée des arbres dépendants suivants après le triangle d'embranchement est déterminé par l'orientation marquée dans le marqueur d'orientation. 5. Procédé de codage selon la revendication 4, dans lequel le marqueur d'orientation (td~orientation) est déterminé par la taille d'information des arbres dépendants suivants après le triangle d'embranchement. 6. Procédé de codage selon la revendication 5, dans lequel tous les arbres dépendants sont dans le même ordre de traversée. 7. Procédé de codage selon la revendication 5, dans lequel l'ordre de traversée d'un triangle à l'intérieur des arbres dépendants correspond à la valeur du marqueur d'orientation (td~orientation). 8. Procédé de codage selon la revendication 1, dans lequel les CBOM dans lesquelles l'arbre triangles/données triangles est codé inclut l'information de taille totale (longueur~branche~codap) d'un arbre dépendant placé à une branche latérale dans un triangle d'embranchement placé à la branche principale de l'arbre triangles, et les index de sommet Y sont déterminés par l'information de taille totale. 9. Procédé de codage selon l'une quelconque des revendications 1 à 8, polygonal comprenant en outre les étapes consistant à : (d) générer un graphe de sommets et une paire d'arbres triangles/données triangles pour chacune des composantes reliées ; et (e) coder le graphe de sommets et l'arbre triangles/données triangles constituant les composantes reliées en conformité avec les couches de base de l'objet maillé (CBOM), chacune possédant un type fixé de flux binaire susceptible d'être décodé indépendamment pour les composantes reliées respectives. 10. Procédé de codage selon la revendication 9, dans lequel, à l'étape (e), le graphe de sommets et l'arbre triangles/données triangles sont disposés séquentiellement en conformité avec toutes les composantes reliées constituant le maillage en 3D polygonal pour constituer une partition de données. 11. Procédé de codage selon la revendication 9, dans lequel, à l'étape (e), le graphe de sommets correspondant à toutes les composantes reliées constituant le maillage en 3D polygonal est disposé en premier et l'arbre triangles/données triangles correspondant à toutes les données reliées est ensuite arrangé pour constituer une partition de données. 12. Procédé de codage selon la revendication 9, dans lequel les informations constituant les composantes reliées respectives sont construites comme des partitions de données indépendantes pour être codée ensuite. 13. Procédé de codage selon la revendication 9, dans lequel, à l'étape (d), le graphe de sommets correspondant à toutes les composantes reliées constituant le maillage en 3D polygonal est construit comme une partition de données et l'arbre triangles/données triangles correspondant à toutes les composantes reliées est construit comme une autre partition, pour être codé ensuite. 14. Procédé de codage selon la revendication 9, dans lequel, à l'étape (e), le graphe de sommets correspondant à toutes les composantes reliées constituant le maillage en 3D polygonal est construit comme une partition de données et l'arbre triangles/données triangles correspondant à toutes les composantes reliées est construit comme des partitions de données indépendantes, l'arbre triangles/données triangles étant divisé en une pluralité de partitions de données susceptibles d'être décodées indépendamment, pour être ensuite codées. 15. Procédé de codage selon la revendication 9, dans lequel, à l'étape (e), les graphes de sommets correspondant aux composantes reliées respectives constituant le maillage en 3D polygonal sont construits indépendamment comme partitions de données et les arbres triangles/données triangles correspondant aux composantes reliées respectives sont constitués indépendamment comme partitions de données, pour être ensuite codés. 16. Procédé de codage selon la revendication 9, dans lequel, à l'étape (e), les graphes de sommets correspondant aux composantes reliées respectives sont construits comme partitions de données indépendantes pour être ensuite codés en premier, et l'arbre triangles/données triangles correspondant aux composantes reliées respectives est construit comme partitions de données indépendantes, l'arbre triangles/données triangles d'une composante reliée plus grand que le paquet de transmission étant divisé en une pluralité de partitions de données susceptibles d'être décodées indépendamment, pour être ensuite codées en suivant. 17. Procédé de codage selon la revendication 9, dans lequel, à l'étape (e), une partition de données est construite par le graphe de sommets correspondant à une composante reliée, et une partition de données indépendante est construite par l'arbre triangles/données triangles correspondant à la composante reliée, pour être ensuite codée par les composantes reliées respectives. 18. Procédé de codage selon la revendication 9, dans lequel, à l'étape (e), une partition de données indépendante est construite pour le graphe de sommets correspondant à une composante reliée et une partition de données indépendante est construite pour l'arbre triangles/données triangles correspondant à une composante reliée pour être ensuite codée, l'arbre triangles/données triangles d'une composante relié plus grand que le paquet de transmission étant divisé en une pluralité de partitions de données séparées susceptibles d'être décodées indépendamment, pour être ensuite codées par les composantes reliées respectives. 19. Procédé de codage selon l'une quelconque des revendications 1 à 8, comprenant en outre les étapes consistant à : (d) générer un graphe de sommets et une paire d'arbres triangles/données triangles pour chacune des composantes reliées ; et (e) coder le graphe de sommets et l'arbre triangles/données triangles constituant les composantes reliées en conformité avec les couches de base de l'objet maillé (CBOM), chacun possédant un type de flux binaire variable en accord avec les propriétés de l'information à coder, susceptible d'être indépendamment décodé pour les composantes reliées respectives. 20. Procédé de codage selon la revendication 19, dans lequel, à l'étape (e), la structure de flux binaires codés est représentée en utilisant quelques-uns des bits dans un code de départ de la partition de données comme un type de partition. 21. Procédé de codage selon la revendication 20, dans lequel le type de partition inclut un type de partition 0 (partition~type~0), dans lequel l'information correspondant à une ou plusieurs des composantes reliées est collectée afin de construire une partition de données pour être ensuite codée. 22. Procédé de codage selon la revendication 21, dans lequel la CBOM dans laquelle le type de partition 0 est codé inclut en outre une pluralité de bits indicatifs de la présence d'autres composantes reliées devant être codées après que les composantes reliées respectives aient été codées. 23. Procédé de codage selon la revendication 20, dans lequel le type de partition inclut un premier type de partition (partition~type~1) dans lequel les informations de graphe de sommets correspondant à une ou plusieurs composantes reliées sont collectées pour construire une partition de données pour être ensuite codées. 24. Procédé de codage selon la revendication 23, dans lequel la CBOM dans laquelle le premier type de partition est codé inclut en outre une pluralité de bits indicatifs de la présence d'autres informations de graphe de sommets devant être codées après que les informations de graphe de sommets correspondant aux composantes reliées respectives aient été codées. 25. Procédé de codage selon la revendication 20, dans lequel le type de partition inclut un deuxième type de partition (partition~type~2) dans lequel l'arbre triangles/données triangles est divisé en partitions de données pour être ensuite codé. 26. Procédé de codage selon la revendication 25, dans lequel la CBOM dans laquelle le deuxième type de partition est codé inclut en outre un identificateur des informations de graphe de sommets (codap~vg~id) correspondant à l'arbre triangles/données triangles respectif dans les partitions de données respectives. 27. Procédé de codage selon la revendication 26, dans lequel s'il y a seulement un graphe de sommets auquel il est fait référence par l'arbre triangles/données triangles, l'identificateur du graphe de sommets n'est pas codé. 28. Procédé de codage selon la revendication 25, dans lequel la CBOM dans laquelle le deuxième type de partition est codé inclut en outre un index de départ (Index boucle englobante~gauche~codap, Index boucle englobante droite- codap) d'une table de boucle englobante pour une bande triangles devant être restaurée. 29. Procédé de codage selon la revendication 25, dans lequel la CBOM dans laquelle le deuxième type de partition est codé inclut en outre un marqueur de prédiction de limite (codap~bdry~pred) indiquant comment la géométrie et la photométrie partagées par deux partitions de données ou plus sont prédites. 30. Procédé de codage selon la revendication 20, dans lequel le type de partition inclut un troisième type de partition (partition~type~3) dans lequel une composante reliée est construite comme une partition de données pour être ensuite codée. 31. Procédé de codage selon l'une quelconque des revendications 1 à 8, caractérisé en ce que, dans le codage d'un objet maillé (OM) tridimensionnel (3D) triangles pour construction incrémentale et résilience vis-à-vis des erreurs, procédé pour diviser l'OM 3D triangle en partitions de données pour être mises en paquets, le procédé comprend en outre les étapes consistant à : (d) calculer les quantités de génération de bits totales des triangles pendant que les triangles contenus dans un arbre triangles sont traversés en séquences ; (e) cumuler les quantités de génération de bits totales calculées à l'étape (d) ; et (f) si la valeur cumulée de l'étape (e) est plus petite que le produit d'une taille de paquet et d'une allocation du paquet, exécuter de façon répétitive les étapes (d) et (e) sur le triangle traversé suivant contenu dans l'arbre triangles, et sinon les arbres triangles/données triangles des triangles traversés sont divisés en partitions pour être mises en paquets. 32. Procédé selon la revendication 31, dans laquelle si le triangle traversé à l'étape (d) est un triangle d'embranchement, la méthode comprend en outre l'étape suivante : (g) si la somme obtenue en additionnant la valeur cumulée de l'étape (e) et la quantité de génération de bits obtenue en codant tous les triangles contenus dans des arbres dépendants déterminés par l'ordre de traversée est plus petite que la somme de la taille de paquet et de l'allocation du paquet, exécuter de façon répétitive les étapes (d) à (f), et sinon les arbres triangles/données triangles des triangles, traversés jusqu'à ce que le triangle d'embranchement soit atteint, sont divisés en partitions de données pour être mis en paquets. 33. Procédé selon la revendication 31, dans laquelle si le triangle traversé à l'étape (d) est un triangle d'embranchement, la méthode comprend en outre l'étape suivante : (g) si la somme obtenue en additionnant la valeur cumulée de l'étape (e) et la quantité de génération de bits obtenue prévue par la taille des arbres dépendants déterminés par l'ordre de traversée est plus petite que la somme de la taille de paquet et de l'allocation du paquet, exécuter de façon répétitive les étapes (d) à (f), et sinon l'arbre triangles/données triangles des triangles traversés jusqu'à ce que le triangle d'embranchement soit atteint est divisé en partitions de données pour être mis en paquets. 34. Procédé de codage d'un objet maillé (OM) tridimensionnel (3D) polygonal selon l'une quelconque des revendications 1 à 8, comprenant en outre les étapes consistant à : (d) générer un graphe de sommets et une paire d'arbres triangles/données triangles pour chacune des composantes reliées ; et (e) coder le graphe de sommets constituant les composantes reliées ; et (f) construire l'arbre triangles/données triangles comme composantes virtuelles reliées et coder de la même manière en additionnant les paires de bits virtuels en partitions de données obtenues par partition de l'arbre triangles/données triangles. 35. Procédé de codage selon la revendication 34, dans laquelle la partition à l'étape (f) est exécutée seulement à l'embranchement principal de l'arbre triangles. 36. Procédé de codage selon la revendication 35, dans lequel si la partition à l'étape (f) est exécutée à une branche ou feuille de l'arbre triangles, une composante reliée virtuelle est construite en additionnant une paire de (1,1) à une paire de (trun, tleaf) . 37. Procédé de codage selon la revendication 35, dans lequel si la partition à l'étape (f) est exécutée à un triangle d'embranchement de l'arbre triangles, une composante reliée virtuelle est construite en additionnant deux paires de (1,1) à une paire de (trun, tleaf). 38. Procédé de codage selon la revendication 34, comprenant en outre l'étape consistant à reconstruire l'OM 3D polygonal en un OM 3D triangle avant l'étape (a). 39. Procédé de codage selon la revendication 38, dans lequel la partition à l'étape (f) est exécutée seulement à l'arête réelle d'un maillage polygonal, et l'information d'arête polygonale du premier triangle contenu dans une partition de données de l'arbre triangles/données triangles n'est pas codée. 40. Procédé de codage selon la revendication 38, dans lequel la partition à l'étape (f) est exécutée seulement à l'arête réelle et l'arête virtuelle d'un maillage polygonal, l'information d'arête polygonale du premier triangle contenu dans un type 0 de partition de l'arbre triangles/données triangles n'est pas codée, et l'information d'arête polygonale du premier triangle contenue dans les types de partition restants est codée. 41. Procédé de codage selon la revendication 34, dans lequel des marqueurs d'orientation à un bit sont contenus dans la partition de données pour les triangles d'embranchement respectifs positionnés à la branche principale, parmi tous les triangles d'embranchement présents à l'intérieur de la partition de données construite par les composantes reliées virtuellement. 42. Procédé de codage selon la revendication 34, dans lequel l'en-tête de la partition de données formée en divisant l'arbre triangles/données triangles inclut un index de départ d'une table de boucle englobante de façon à être restaurée indépendamment des partitions de données précédemment restaurées. 43. Procédé de codage selon la revendication 42, dans lequel l'index de départ est déterminé par les premiers index gauche et droit tracés dans la boucle englobante correspondant aux sommets de départ des triangles restaurés consécutivement dans la table de boucle englobante correspondant à l'arbre triangles/données triangles, et les index de la boucle englobante sont définis pour être dans la gamme du nombre de sommets plus 2. 44. Procédé de codage selon la revendication 42, dans lequel l'index de départ est déterminé par les premiers index gauche et droit tracés dans la boucle englobante correspondant aux sommets de départ des triangles restaurés consécutivement dans la table de boucle englobante correspondant à l'arbre triangles/données triangles, et les index de la boucle englobante sont déterminés en considération des données de maillage globales. 45. Procédé de codage selon la revendication 34, dans lequel l'en-tête de la partition de données formée en divisant l'arbre triangles/données triangles inclut en outre un identificateur d'un graphe de sommets (codap~vg~id) correspondant à l'arbre triangles/données triangles. 46. Procédé de codage selon la revendication 34, dans lequel l'en-tête de la partition de données formée en divisant l'arbre triangles/données triangles inclut en outre un marqueur de prédiction de limite (codap~bdry~pred) indiquant comment la géométrie et la photométrie partagées par la partition de données et la partition de données précédemment codées sont prédites. 47. Procédé de codage selon la revendication 34, dans lequel si les positions de départ et de fin des partitions de données sont à la branche principale de l'arbre triangles, la géométrie et la photométrie partagées par la partition de données et la partition de données précédemment codée sont contenues dans une partition de données seulement, et si les positions de départ et de fin de la partition de données sont à un arbre dépendant, il est déterminé si la géométrie et la photométrie partagées par la partition de données et la partition de données précédemment codée sont présentes ou non, si elles sont présentes, la géométrie et la photométrie sont contenues dans les deux partitions de données à la fois, et si elles ne sont pas présentes, la géométrie et la photométrie sont contenues dans une partition de données seulement. 48. Procédé de codage selon la revendication 34, dans lequel les données de triangles contenues dans l'arbre triangles/ données triangles incluent la progression, la géométrie et la photométrie disposées pour chaque triangle constituant l'arbre triangles correspondant. 49. Procédé de codage selon la revendication 34, dans lequel les données de triangles contenues dans l'arbre triangles/données triangles incluent la progression de tous les triangles constituant l'arbre triangles correspondant, la géométrie de tous les triangles et la photométrie de tous les triangles disposées en séquences. 50. Procédé de codage selon l'une quelconque des revendications 1 à 8, comportant en outre, un procédé de décodage progressif et résilient vis-à-vis des erreurs d'un objet maillé (OM) tridimensionnel (3D) polygonal, comprenant les étapes consistant à : (d) diviser les flux binaires d'entrée en unités de couches de base d'objet maillé (CBOM) ; (e) déterminer un type de partition des CBOM ; (f) si un graphe de sommets est contenu dans les CBOM, décoder le graphe de sommets afin de générer une table de boucle englobante ; (g) si l'arbre triangles/données triangles est contenu dans les CBOM, décoder l'arbre triangles/données triangles pour générer l'OM 3D ; et (h) exécuter de façon répétitive les étapes (a) à (d) pour générer un OM 3D. 51. Procédé de décodage selon la revendication 50, dans lequel l'étape (d) comprend les étapes consistant à diviser les flux binaires entrants en unités d'OM 3D polygonaux, déterminer le type d'une couche d'objet maillé (COM) contenue dans l'OM 3D polygonal, et diviser les flux binaires dans la COM en unités de couche de base d'objet maillé (CBOM) si l'OM 3D est capable d'être décodé. 52. Procédé selon la revendication 50, dans lequel l'arbre triangles/données triangles est décodé à l'étape (g), l'ordre de décodage des arbres dépendants suivants après le triangle d'embranchement est déterminé par l'orientation marquée dans un marqueur d'orientation (td~orientation) dans le cas de décodage d'un triangle d'embranchement positionné à la branche principale de l'arbre triangles. 53. Procédé selon la revendication 52, dans lequel tous les arbres dépendants sont dans le même ordre de traversée. 54. Procédé selon la revendication 52, dans lequel l'ordre de traversée d'un triangle à l'intérieur des arbres dépendants correspond à la valeur du marqueur d'orientation (td~orientation) . 55. Procédé selon la revendication 52, dans lequel à l'étape (e), le type de partition est déterminé par la valeur du code de départ de la partition de données. 56. Procédé selon la revendication 55, dans lequel le type de partition inclut un type de partition 0 (partition~type~0) dans lequel les informations correspondant à une ou plusieurs composantes reliées sont collectées pour construire une partition de données pour être ensuite codées. 57. Procédé selon la revendication 56, dans lequel lorsque la CBOM du type de partition 0 est codée, il est déterminé si d'autres composantes reliées devant être codées sont présentes par un bit prédéterminé positionné après les composantes reliées respectives. 58. Procédé selon la revendication 54, dans lequel le type de partition inclut un premier type de partition (partition~type~1) dans lequel les informations de graphe de sommets correspondant à une ou plusieurs composantes reliées sont collectées pour construire une partition de données pour être ensuite codées. 59. Procédé selon la revendication 58, dans lequel lorsque la CBOM du premier type de partition est codée, il est déterminé si d'autres informations de graphe de sommets à coder sont présentes par un bit prédéterminé (codap~last~vg) positionné après les informations de graphe de sommets correspondant aux composantes reliées respectives. 60. Procédé selon la revendication 55, dans lequel le type de partition inclut un deuxième type de partition (partition~type~2) dans lequel l'arbre triangles/données triangles est divisé en partitions de données pour être ensuite codé. 61. Procédé selon la revendication 60, dans lequel lorsque la CBOM du deuxième type de partition est codée, l'information de graphe de sommets correspondant à l'arbre triangles/données triangles respectif est identifiée par un identificateur de graphe de sommets (codap~vg~id) positionné avant l'arbre triangles/données triangles. 62. Procédé selon la revendication 60, dans lequel lorsque la CBOM du deuxième type de partition est codée, si l'information de graphe de sommets correspondant à l'arbre triangles/données triangles respectif peut être identifiée de façon unique, il est déterminé que l'identificateur de graphe de sommets n'est pas positionné avant l'arbre triangles/données triangles. 63. Procédé selon la revendication 60, dans lequel la CBOM du deuxième type de partition est codée indépendamment de la partition de données précédentes par l'index de départ (Index boucle~englobante~gauche~codap, Index~boucle~ englobante~droite~codap) de la table de boucle englobante positionnée avant l'arbre triangles/données triangles. 64. Procédé selon la revendication 60, dans lequel lorsque la CBOM du deuxième type de partition est codée, il est déterminé comment la géométrie et la photométrie partagées par les partitions de données précédemment décodées sont prédites par un marqueur de prédiction de limite positionné avant l'arbre triangles/données triangles. 65. Procédé selon la revendication 55, dans lequel le type de partition inclut un troisième type de partition (partition~type~3) dans lequel une composante reliée est construite comme une partition de données. 66. Procédé selon la revendication 50, dans lequel lorsque l'arbre triangles/données triangles est décodé à l'étape (g), si un triangle d'embranchement positionné à la branche principale de l'arbre triangles est décodé, les index de sommets Y sont déterminés par l'information de taille totale (longueur~branche~codap) d'un arbre dépendant positionné à une branche latérale. 67. Procédé selon l'une quelconque des revendications 1 à 8, comportant en outre, un procédé de décodage progressif et résilient vis-à-vis des erreurs d'un objet maillé (OM) tridimensionnel (3D) polygonal, comprenant les étapes consistant à : (d) diviser les flux binaires d'entrée en unités de couches de base d'objet maillé (CBOM) ; (e) déterminer un type de partition des CBOM ; (f) si un graphe de sommets est contenu dans les CBOM, décoder le graphe de sommets afin de générer une table de boucle englobante ; (g) si l'arbre triangles/données triangles est contenu dans les CBOM, décoder l'arbre triangles/données triangles en unités de composantes reliées pour générer un OM 3D données triangles ; et (h) si les composantes reliées à l'étape (d) sont des composantes reliées virtuelles, exécuter de façon répétitive les étapes (a) à (d), et sinon compléter la génération d'un OM 3D triangle. 68. Procédé selon la revendication 67, dans lequel la CBOM contenant l'arbre triangles/données triangles à l'étape (g) inclut un index de départ (Index boucle~englobante~gauche~codap, Index~boucle~englobante~ droite~codap) d'une table de boucle englobante de façon à être restauré indépendamment des partitions de données précédemment restaurées. 69. Procédé selon la revendication 68, dans lequel l'index de départ est déterminé par les premiers index gauche et droit tracés dans la boucle englobante correspondant aux sommets de départ des triangles restaurés consécutivement dans la table de boucle englobante correspondant à l'arbre triangles/données triangles, et les index de la boucle englobante sont définis en considération de toutes les mailles. 70. Procédé selon la revendication 68, dans lequel l'index de départ est déterminé par les premiers index gauche et droit tracés dans la boucle englobante correspondant aux sommets de départ des triangles restaurés consécutivement dans la table de boucle englobante correspondant à l'arbre triangles/données triangles, et les index de la boucle englobante sont définis pour être dans la gamme du nombre de sommets plus 2. 71. Procédé selon la revendication 68, dans lequel à l'étape (g), si l'index droit-l'index gauche-1 (Index~boucle~englobante~droite~codap, Index~boucle~ englobante~gauche~codap-1) est plus grand que le nombre total de triangles générés lorsque seul l'arbre triangles de la CBOM est restauré, il est déterminé que les composantes reliées sont des composantes reliées virtuelles. 72. Procédé selon la revendication 71, dans lequel si le troisième triangle du dernier parmi les triangles décodés à l'étape (g) est un triangle d'embranchement, il est déterminé que deux des triangles virtuels existent dans une paire de (trun, tleaf) et sinon il est déterminé qu'une paire de triangles virtuels existe dans une paire de (trun, tleaf), de façon que les données de triangle des triangles virtuels ne soient pas codées. 73. Procédé selon la revendication 68, comprenant en outre l'étape consistant à reconstruire l'OM 3D triangle en un OM 3D polygonal. 74. Procédé selon la revendication 73, dans lequel la partition pendant le codage est exécutée seulement à l'arête réelle de l'OM 3D polygonal et l'arête polygonale du premier triangle contenu dans la CBOM de l'arbre triangles/données triangles est déterminée pour être l'arête réelle sans décodage. 75. Procédé selon la revendication 73, dans lequel la partition pendant le codage est également exécutée à l'intérieur de l'OM 3D polygonal et l'arête polygonale du premier triangle contenu dans la CBOM de l'arbre triangles/données triangles est déterminée comme étant l'arête réelle sans décodage. 76. Procédé selon la revendication 67, dans lequel l'ordre de décodage des arbres dépendants suivants après le triangle d'embranchement est déterminé par l'orientation marquée dans un marqueur d'orientation (td~orientation) dans le cas de décodage d'un triangle d'embranchement, par rapport à tous les triangles d'embranchement positionnés à l'intérieur de la CBOM construite par les composantes reliées virtuelles. 77. Procédé selon la revendication 67, dans lequel la CBOM contenant l'arbre triangles/données triangles à l'étape (g) inclut un marqueur de prédiction de limite (codap~bdry~pre) indiquant comment la géométrie et la photométrie partagées par deux CBOM ou plus sont prédites. 78. Procédé selon la revendication 77, dans lequel la valeur du marqueur de prédiction de limite est 0, et il est déterminé que la géométrie et la photométrie partagées par la CBOM en cours de décodage et la CBOM précédemment décodée ne sont pas contenues dans la CBOM en cours de décodage. 79. Procédé selon la revendication 78, dans lequel lorsque la géométrie est décodée en utilisant une valeur de prédiction prédite par trois ascendants visités précédemment dans la partition de données en cours et une valeur codée de celle-ci, la valeur de prédiction est établie sur 0 si aucune valeur d'ascendant n'est admissible, la valeur de prédiction est établie sur la valeur de l'ascendant si seulement une valeur d'ascendant est admissible, la valeur de prédiction est établie sur une valeur de moyenne arithmétique de deux valeurs d'ascendants admissibles si les deux valeurs d'ascendants sont admissibles et que les distances entre les deux valeurs et le sommet en cours sont 1, la valeur de prédiction est établie sur l'une ou l'autre des valeurs d'ascendants si seulement deux valeurs d'ascendants sont admissibles la distance entre l'une ou l'autre des valeurs et le sommet en cours est 1, et la valeur de prédiction est déterminée par une méthode de prédiction prédéterminée si trois valeurs d'ascendants sont toutes admissibles. 80. Procédé selon la revendication 77, dans lequel la valeur du marqueur de prédiction de limite est 1, il est déterminé que la géométrie et la photométrie partagées par la CBOM en cours de décodage et la CBOM précédemment décodée sont également contenues dans la CBOM en cours de décodage. 81. Procédé selon la revendication 80, dans lequel lorsque la géométrie est décodée en utilisant une valeur de prédiction prédite par trois ascendants visités précédemment dans la partition de données en cours et une valeur codée de celle-ci, la valeur de prédiction est déterminée par une méthode de prédiction prédéterminée sur la supposition qu'aucun sommet n'a été visité dans les partitions de données précédentes. 82. Procédé selon la revendication 67, dans lequel les données triangles contenues dans l'arbre triangles/données triangles incluent la progression, la géométrie et la photométrie disposées pour chaque triangle constituant l'arbre triangles correspondant. 83. Procédé selon la revendication 67, dans lequel les données triangles contenues dans l'arbre triangles/données triangles incluent la progression de tous les triangles constituant l'arbre triangles correspondant, la géométrie de tous les triangles et la photométrie de tous les triangles disposées en séquences.