FR2876821A1 - Procede de decodage local d'un train binaire de coefficients d'ondelettes - Google Patents

Procede de decodage local d'un train binaire de coefficients d'ondelettes Download PDF

Info

Publication number
FR2876821A1
FR2876821A1 FR0410875A FR0410875A FR2876821A1 FR 2876821 A1 FR2876821 A1 FR 2876821A1 FR 0410875 A FR0410875 A FR 0410875A FR 0410875 A FR0410875 A FR 0410875A FR 2876821 A1 FR2876821 A1 FR 2876821A1
Authority
FR
France
Prior art keywords
wavelet
orientation
coefficient
wavelet coefficient
coefficients
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
FR0410875A
Other languages
English (en)
Inventor
Patrick Gioia
Loic Bouget
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Orange SA
Original Assignee
France Telecom SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by France Telecom SA filed Critical France Telecom SA
Priority to FR0410875A priority Critical patent/FR2876821A1/fr
Priority to US11/665,136 priority patent/US8086054B2/en
Priority to PCT/EP2005/054951 priority patent/WO2006040270A2/fr
Priority to EP05792261A priority patent/EP1800263A2/fr
Publication of FR2876821A1 publication Critical patent/FR2876821A1/fr
Pending legal-status Critical Current

Links

Classifications

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

L'invention concerne un procédé de décodage d'un train de données représentatives d'un objet à au moins trois dimensions, associé à un maillage de base constitué d'un ensemble de facettes définies par un ensemble de sommets et d'arêtes, et à des coefficients d'ondelettes correspondant à des modifications locales du maillage de base, indexés chacun par un sommet du maillage de base.Selon l'invention, pour au moins certains coefficients d'ondelettes du train de données, un tel procédé met en oeuvre les étapes suivantes :- détermination d'une orientation d'une arête portant le sommet indexant le coefficient d'ondelettes, appelée orientation du coefficient d'ondelettes ;- détermination, en fonction de l'orientation, d'une information de localisation dans le maillage de base d'au moins un descendant du coefficient d'ondelettes, des règles de localisation distinctes étant associées à chaque orientation,de façon à extraire du train de données au moins certains des coefficients d'ondelettes, associés chacun à une information de localisation.

Description

2876821 1
Procédé de décodage local d'un train binaire de coefficients d'ondelettes.
1. Domaine de l'invention Le domaine de l'invention est celui du codage d'images et d'objets à au moins trois dimensions. Plus précisément, l'invention concerne la transmission de données représentatives de scènes tridimensionnelles ou d'objets 3D, ainsi que leur décodage, en vue de leur reconstruction ultérieure sur un écran de visualisation. Elle peut par exemple être utilisée pour la transmission d'images ou de scènes multimédia via le réseau Internet.
L'invention trouve notamment des applications dans le domaine de la 10 représentation adaptative de scènes (ou d'objets de scène) en trois dimensions (3D) représentées par des maillages.
Elle s'inscrit plus particulièrement dans le cadre du décodage et de la représentation d'objets d'une scène graphique codés par maillages au moyen de méthodes dites "à ondelettes", mettant notamment en oeuvre des ondelettes de 2ème génération, présentées dans le document de Wim Sweldens, intitulé "The Lifting Scheme: A Construction of Second Generation Wavelets" (en français, "Le procédé d'élévation: une construction des ondelettes de deuxième génération"), SIAM Journal on Mathematical Analysis, Volume 29, number 2, pp 511-546, 1998.
2. Solutions de l'art antérieur On rappelle que les méthodes de codage dites "à ondelettes" permettent de représenter un maillage comme une succession de détails ajoutés à un maillage de base. La théorie générale de cette technique est notamment décrite dans l'article de M. Lounsbery, T. DeRose et J. Warren, "Multiresolution Analysis for Surfaces of Arbitrary Topological Type" (ACM Transaction on Graphics, Vol. 16, No.1, pp. 34-73, Janvier 1997).
Le principe général de cette technique consiste à développer un homéomorphisme entre un objet à coder (tel qu'un maillage 3D par exemple) et un maillage simple (plus généralement appelé "maillage de base") dans une base de fonctions particulières, appelées ondelettes de deuxième génération.
2876821 2 Selon cette technique, un maillage est donc représenté par une suite de coefficients qui correspondent aux coordonnées dans une base d'ondelettes d'une paramétrisation de ce maillage par un polyèdre simple.
Ainsi, un objet codé selon une telle technique se présente comme l'union des deux éléments suivants: - le maillage de base, qui comporte généralement peu de facettes, et représente une version grossière de l'objet à coder; les coefficients d'ondelettes, qui sont des triplets de réels affectés simultanément à une zone précise du maillage de base et à un niveau de subdivision donné de ce maillage. Ces coefficients d'ondelettes représentent les raffinements à apporter à la zone à laquelle ils sont associés pour converger vers la géométrie de l'objet initial.
Pour pouvoir reconstruire une représentation de l'objet codé sur un terminal de visualisation, il est nécessaire de transmettre à ce dernier, d'une part le maillage de base, et d'autre part les coefficients d'ondelettes associés.
On connaît plusieurs techniques de codage des coefficients d'ondelettes, en vue de leur transmission vers le terminal de visualisation, parmi lesquelles la technique de codage dite de "zero-tree" présente des résultats particulièrement intéressants en termes de compression. Une telle technique consiste à décrire un ordre de codage des coefficients d'ondelettes, qui est prédéterminé et connu à l'avance des terminaux émetteur et récepteur (par exemple d'un serveur et d'un terminal de visualisation client). Elle permet donc, lors de la transmission de coefficients d'ondelettes, d'éviter de transmettre des informations relatives aux plages de coefficients non-significatifs pour le codage de l'objet considéré. L'annulation des coefficients non-significatifs permet ainsi d'atteindre un niveau de compression satisfaisant.
Les techniques de codage par "zero-tree" exploitent avantageusement le fait que les coefficients d'ondelettes présentent, aux niveaux de détail les plus fins, 2876821 3 une amplitude plus faible que les coefficients d'ondelettes associés aux niveaux de subdivision plus grossiers.
De tels codages par "zero-trees" sont généralement couplés à un codage "par plan de bits", qui permet, lors de la transmission des coefficients, de transmettre les bits les plus significatifs de chaque coefficient en premier. On satisfait ainsi aux exigences de progressivité de la technique de codage.
Pour une description plus détaillée des techniques par "zero-trees", on pourra se référer aux articles de Jerome M. Shapiro, "Embedded Image Coding Using Zerotrees of Wavelet Coefficients" (IEEE Trans. Sig. Proc. 41(12), Dec.1993) et de A. Said, W. A. Pearlman, "A New, Fast, and Efficient Image Codec Based on Set Partitioning in Hierarchical Trees" (IEEE Trans. Circ. Système. For Video Teck, 6(3), Juin 1996).
Comme exposé dans ce dernier article de A. Said et W. A. Pearlman, l'algorithme de codage/décodage par "zero-tree", encore appelé algorithme SPIHT (pour "Set Partitioning in Hierarchical Trees") permet d'obtenir une représentation binaire globale de l'ensemble des coefficients d'ondelettes, qui contient des bits de tri et des bits provenant de la représentation binaire des coefficients. Appliqué au codage d'images bidimensionnelles par ondelettes, cet algorithme SPIHT, lors du décodage, reconstruit la hiérarchie des pixels de l'image et distribue les bits au fur et à mesure de leur extraction du train binaire, ou "bitstream".
L'algorithme SPIHT, initialement développé pour le codage d'images bidimensionnelles, a récemment été appliqué aux coefficients d'ondelettes de deuxième génération, ainsi que décrit dans les publications "Progressive Geometry Compression" (SIGGRAPH 2000 proceedings) par A. Khodakovsky, P. Schrdder et W. Sweldens, et "Hierarchical Coding of 3D Models with Subdivision Surfaces" (IEEE ICIP 2000 Proceedings) par F. Moran et N. Garcia.
On obtient ainsi, pour des ondelettes de deuxième génération, un train binaire présentant le même type de format que pour des ondelettes classiques, utilisées pour le codage d'images bidimensionnelles.
3. Inconvénients de l'art antérieur 2876821 4 Tel que présenté initialement dans le cadre du codage par ondelettes classiques d'images 2D, par A. Said et W. A. Pearlman dans l'article cité ci-dessus, l'algorithme SPIHT nécessite de tenir en mémoire un tableau de la taille de l'image à reconstruire, c'est-à-dire contenant autant d'éléments que de coefficients d'ondelettes. Les inventeurs de la présente demande de brevet ont établi que son adaptation aux ondelettes de deuxième génération conservait cette exigence; ainsi, dans le cas de transmission partielle ou adaptative des données, le décodage de quelques coefficients d'ondelettes nécessite le stockage en mémoire de toute la hiérarchie du maillage associé à l'objet 3D ou à la scène multimédia que l'on souhaite reconstruire.
L'algorithme SPIHT, appliqué aux objets 3D codés par ondelettes de deuxième génération, présente donc de sévères limitations dans le cas où l'on souhaite réaliser un décodage adaptatif de l'objet transmis.
Or un tel décodage adaptatif s'avère particulièrement intéressant pour de nombreuses applications, telles que par exemple le "streaming" adaptatif de terrain géographique (en français "lecture en continu"). Dans une telle application, un utilisateur visite de manière interactive une zone géographique virtuelle, transmise par un serveur sur un réseau de communication, tel que le réseau Internet par exemple. En fonction de la zone visitée par l'utilisateur, le serveur ne transmet au terminal de restitution que les données susceptibles d'être vues par ce dernier. La pertinence des données est notamment déterminée en fonction du point de vue de l'utilisateur, de sa position dans la scène virtuelle, ou d'une requête spécifique adressée par ce dernier au serveur, ...
Un premier inconvénient de l'algorithme SPIHT de l'art antérieur, dans le cadre du codage d'objets 3D par ondelettes de deuxième génération, réside donc dans la nécessité de devoir tenir en mémoire la totalité de la hiérarchie du "zerotree". En effet, un décodage partiel du train binaire nécessite de créer en mémoire la totalité de la structure hiérarchique, alors même qu'une partie de cette structure est destinée à ne contenir que des zéros, seule une partie de la scène codée dans le train binaire étant visible par, ou d'intérêt pour, l'utilisateur.
2876821 5 Un autre inconvénient de l'algorithme SPIHT de l'art antérieur, dans le cadre du codage d'objets 3D par ondelettes de deuxième génération, est d'ordre algorithmique.
En effet, lors d'une transmission adaptative, les deux phases de la reconstruction d'une scène ou d'un objet 3D, à partir d'un train binaire (ou "bitstream"), pour obtenir un maillage 3D, sont les suivantes: - le décodage "zero-tree", qui, à partir du train binaire de données, produit des coefficients d'ondelettes; - et la transformée en ondelettes inverse, qui, à partir des coefficients d'ondelettes extraits du train binaire, produit un maillage 3D.
De façon classique, et comme illustré en figure 1, les coefficients d'ondelettes 15, après décodage "zero-tree", sont stockés dans un cache 10, accompagnés d'une information de localisation, exprimée par exemple sous la forme de coordonnées barycentriques (F, A, B, C), où F est une facette du maillage de base sur laquelle se trouve le sommet indexant le coefficient d'ondelettes, et où A, B et C sont des coordonnées barycentriques du sommet sur la facette F. Cette information de localisation permet au processus de reconstruction 11 d'intégrer le coefficient d'ondelettes correspondant dans la représentation 3D 12 de façon indépendante.
Un inconvénient de la technique SPIHT de l'art antérieur pour les objets 3D est donc que le processus de reconstruction 11 est dépendant de l'arrêt du processus de décodage 13. En d'autres termes, il n'est pas possible de réaliser une reconstruction adaptative de la seule portion de l'objet 3D susceptible d'intéresser l'utilisateur tant que l'intégralité du train binaire 14 n'a pas été décodée 13.
Une telle technique SPIHT ne permet donc notamment pas une visualisation adaptative en temps réel d'objets ou de scènes 3D.
4. Objectifs de l'invention L'invention a notamment pour objectif de pallier ces inconvénients de l'art antérieur.
2876821 6 Plus précisément, un objectif de l'invention est de fournir une technique de décodage d'un train de données représentatives d'un objet 3D qui permette une reconstruction de l'objet 3D plus rapide que selon les techniques antérieures, notamment l'algorithme SPIHT. Un objectif de l'invention est notamment de proposer une telle technique de décodage qui permette une visualisation adaptative et en temps réel d'un objet 3D.
Un autre objectif de l'invention est de fournir une telle technique de décodage qui permette un gain de place en taille mémoire par rapport aux techniques antérieures.
Plus précisément, un objectif de l'invention est de proposer une telle technique de décodage qui ne nécessite pas de stocker dans une structure intermédiaire l'intégralité des données décodées avant le début de la phase de reconstruction de la représentation de l'objet 3D.
L'invention a encore pour objectif de fournir une telle technique de décodage qui permette une reconstruction partielle de l'objet 3D, en fonction de souhaits d'un utilisateur.
Un autre objectif de l'invention est de proposer une telle technique de décodage qui permette de décoder un train binaire de coefficients d'ondelettes par un processus indépendant de la reconstruction de la représentation de l'objet 3D ou de la scène multimédia associés.
5. Caractéristiques essentielles de l'invention Ces objectifs, ainsi que d'autres qui apparaîtront par la suite, sont atteints à l'aide d'un procédé de décodage d'un train de données représentatives d'un objet à au moins trois dimensions, ledit objet étant associé à un maillage de base constitué d'un ensemble de facettes définies par un ensemble de sommets et d'arêtes, et à des coefficients dans une base d'ondelettes correspondant à des modifications locales dudit maillage de base, dits coefficients d'ondelettes, chaque coefficient d'ondelettes étant indexé par un sommet dudit maillage de base, ledit train de données comprenant au moins certains desdits coefficients d'ondelettes.
2876821 7 Selon l'invention, pour au moins certains coefficients d'ondelettes dudit train de données, un tel procédé met en oeuvre les étapes suivantes: - détermination d'une orientation d'une arête portant ledit sommet indexant ledit coefficient d'ondelettes, appelée orientation dudit coefficient d'ondelettes; détermination, en fonction de ladite orientation, d'une information de localisation dans ledit maillage de base d'au moins un descendant dudit coefficient d'ondelettes, des règles de localisation distinctes étant associées à chaque orientation, de façon à extraire dudit train de données au moins certains desdits coefficients d'ondelettes, associés chacun à une information de localisation.
Ainsi, l'invention repose sur une approche tout à fait nouvelle et inventive du décodage d'un train binaire contenant des coefficients d'ondelettes, permettant la reconstruction d'un objet 3D ou d'une scène multimédia. En effet, l'invention propose, au fur et à mesure du décodage du train binaire, de déterminer, pour chaque coefficient d'ondelettes, une information de localisation de ses descendants, ou fils. De cette façon, ces coefficients peuvent être directement utilisés lors de la reconstruction de l'objet 3D. Il n'est donc plus nécessaire d'avoir décodé l'intégralité du train binaire pour pouvoir disposer des informations de localisation associées à chacun des coefficients d'ondelettes, et donc commencer la reconstruction de la représentation de l'objet 3D, en appliquant les coefficients d'ondelettes décodés au maillage de base.
Les informations de localisation associées aux coefficients d'ondelettes et à leurs descendants sont ainsi calculées lors du décodage, en fonction de l'orientation de l'arête du maillage de base qui porte le sommet indexant le coefficient d'ondelettes. En d'autres termes, on détermine l'orientation d'un coefficient d'ondelettes parent, et on en déduit quelle est la règle de calcul à appliquer pour déterminer l'information de localisation de l'un de ses descendants, comme exposé plus en détail dans la suite de ce document.
2876821 8 Un tel décodage permettant d'accéder de manière directe aux coefficients d'ondelettes du train binaire, associés à une information permettant de les localiser dans le maillage de base, l'invention permet de réaliser une reconstruction adaptative et en temps réel de l'objet 3D ainsi codé.
En outre, contrairement aux techniques de l'art antérieur, il n'est plus nécessaire, selon l'invention, de disposer d'une structure intermédiaire volumineuse dans laquelle stocker l'intégralité de la hiérarchie de codage de l'objet 3D. On peut se contenter de ne décoder que les portions d'intérêt du train binaire, et de stocker dans un cache les seuls coefficients d'ondelettes décodés, associés à une information de localisation, en vue de la reconstruction de l'objet 3D.
Préférentiellement, pour ledit au moins un descendant, si ladite information de localisation exprimée dans une base affine ne satisfait pas au moins un critère prédéterminé, ledit procédé met en oeuvre une étape de modification de ladite base affine, de façon à ce que ladite information de localisation exprimée dans ladite base affine modifiée satisfasse ledit au moins un critère.
Selon une caractéristique avantageuse de l'invention, un tel procédé de décodage comprend également, pour ledit au moins un descendant, une étape ultérieure de réduction de ladite information de localisation.
Une telle étape de réduction permet d'une part, d'avoir unicité de l'information de localisation d'un coefficient d'ondelettes en sortie du procédé de décodage, et d'autre part, de réduire autant que faire se peut, la place mémoire occupée par cette information de localisation.
Avantageusement, lesdits coefficients d'ondelettes sont codés selon une technique de type zero-tree, dans ledit train binaire.
Comme indiqué précédemment dans ce document, une telle technique de type "zero-tree" permet en effet d'atteindre des résultats satisfaisants en termes de compression des coefficients à transmettre.
De manière préférentielle, pour un coefficient d'ondelettes d'indice n, 2876821 9 ladite information de localisation comprend quatre paramètres (F(n), A(n), B(n), C(n)), où F(n) est une facette dudit maillage de base sur laquelle se trouve ledit sommet indexant ledit coefficient d'ondelettes, et où A(n), B(n) et C(n) sont des multiples entiers de coordonnées barycentriques dudit sommet sur ladite facette F(n).
La base affine dans laquelle est exprimée l'information de localisation correspond donc à la facette du maillage dans laquelle sont exprimés les coordonnées barycentriques du sommet indexant le coefficient d'ondelettes.
Selon une caractéristique avantageuse de l'invention, un tel procédé de décodage comprend une étape préliminaire d'initialisation de ladite information de localisation, au cours de laquelle on affecte auxdits paramètres (F(n), A(n), B(n), C(n)) la valeur zéro.
De manière avantageuse, ladite orientation dudit coefficient d'ondelettes d'indice n est donnée par la formule: Orientation = (!(A(n)%2))+2*(!(B(n) %2))+3*(!(C(n)%2)) où % est l'opérateur du reste de la division euclidienne, ! est l'opérateur de négation booléenne, et où A(n), B(n) et C(n) sont les coordonnées barycentriques (ou des multiples de ces coordonnées) du coefficient d'ondelettes d'indice n dans la facette F(n) du maillage.
Préférentiellement, ladite information de localisation desdits descendants dudit coefficient d'ondelettes est déterminée selon les formules suivantes (où l'indice n désigne le coefficient d'ondelettes père et m, son descendant) : pour un premier descendant dudit coefficient d'ondelettes: si l'orientation dudit coefficient d'ondelettes vaut 1: F(n)=F(m) A(n) =2*A(m) B(n)=2*B(m)+1 C(n)=2*C(m)-1; si l'orientation dudit coefficient d'ondelettes vaut 2: F(n)=F(m) A(n)=2*A(m)-1 B(n)=2*B(m) C(n)=2*C(m)+1; si l'orientation dudit coefficient d'ondelettes vaut 3: F(n)=F(m) A(n) =2*A(m)+1 B(n)=2*B(m)-1 C(n)=2*C(m) ; pour un deuxième descendant dudit coefficient d'ondelettes: - si l'orientation dudit coefficient d'ondelettes vaut 1: F(n)=F(m) A(n) =2*A(m) B(n)=2*B(m)-1 C(n)=2*C(m)+1; si l'orientation dudit coefficient d'ondelettes vaut 2: F(n)=F(m) A(n) =2*A(m)+1 B(n)=2*B(m) C(n)=2*C(m)-1; - si l'orientation dudit coefficient d'ondelettes vaut 3: F(n)=F(m) A(n) =2*A(m)-1 B(n)=2*B(m)+l C(n)=2*C(m) ; - pour un troisième descendant dudit coefficient d'ondelettes: - si l'orientation dudit coefficient d'ondelettes vaut 1: F(n)=F(m) A(n) =2*A(m)+2 B(n)=2*B(m)-1 C(n)=2*C(m)-1; 2876821 11 - si l'orientation dudit coefficient d'ondelettes vaut 2: F(n)= F(m) A(n) =2*A(m)-1 B(n)=2*B(m)+2 C(n)=2*C(m)-1 si l'orientation dudit coefficient d'ondelettes vaut 3: F(n)= F(m) A(n)=2*A(m)-1 B(n)=2*B(m)-1 C(n)=2*C(m)+2 - pour un quatrième descendant dudit coefficient d'ondelettes, s'il existe: si l'orientation dudit coefficient d'ondelettes vaut 1: F(n)= F(m) A(n)=2*A(m)-2 B(n)=2*B(m)+l C(n)=2*C(m)+1; - si l'orientation dudit coefficient d'ondelettes vaut 2: F(n)= F(m) A(n) =2*A(m)+1 B(n)=2*B(m)-2 C(n)=2*C(m)+1; - si l'orientation dudit coefficient d'ondelettes vaut 3: F(n)= F(m) A(n) =2*A(m)+1 B(n)=2*B(m)+1 C(n)=2*C(m)-2; où m désigne l'indice dudit coefficient d'ondelettes et n désigne l'indice dudit descendant.
Selon une caractéristique avantageuse de l'invention, ladite information de localisation ne satisfait pas ledit au moins un critère prédéterminé si ledit sommet 10 15 20 25 2876821 12 indexant ledit coefficient d'ondelettes est situé sur un bord dudit maillage de base.
Ainsi, ladite information de localisation ne satisfait pas ledit au moins un critère prédéterminé si l'un au moins des paramètres A(n), B(n) et C(n) dudit coefficient d'ondelettes est négatif. En effet, lorsqu'un sommet est situé sur un bord du maillage, l'une au moins de ses coordonnées barycentriques est négative.
Préférentiellement, lors de ladite étape de réduction de ladite information de localisation, on divise lesdits paramètres A(n), B(n) et C(n) par deux, tant que lesdits paramètres A(n), B(n) et C(n) sont tous pairs.
De cette façon, on détermine les plus petits multiples entiers des coordonnées barycentriques du coefficient d'ondelettes d'indice n.
De manière avantageuse, un tel procédé de décodage comprend également, pour chacun desdits coefficients d'ondelettes extraits dudit train de données, une étape ultérieure de stockage dans un cache dudit coefficient d'ondelettes et de ladite information de localisation réduite associée, de façon à ce que lesdits coefficients d'ondelettes stockés puissent être utilisés lors d'une étape de reconstruction dudit objet à au moins trois dimensions mettant en oeuvre une transformée en ondelettes inverse.
On stocke ainsi directement dans le cache, au fur et à mesure de leur décodage, les coefficients d'ondelettes associés à une information permettant de les localiser dans le maillage de base. On peut donc procéder, à partir des informations de ce cache, à la reconstruction adaptative et en temps réel d'une représentation de l'objet 3D ou de la scène multimédia considérée, sans qu'il soit nécessaire d'avoir préalablement décodé l'intégralité du train binaire.
De manière préférentielle, un tel procédé de décodage est mis en oeuvre dans le cadre d'un algorithme de tri des coefficients d'ondelettes dudit train de données de type SPIHT ( Set Partitioning In Hierarchical Trees , en français partitionnement d'ensembles dans des arbres hiérarchiques ).
L'invention concerne aussi un dispositif de décodage d'un train de données représentatives d'un objet à au moins trois dimensions, ledit objet étant associé à un maillage de base constitué d'un ensemble de facettes définies par un ensemble 2876821 13 de sommets et d'arêtes, et à des coefficients dans une base d'ondelettes correspondant à des modifications locales dudit maillage de base, dits coefficients d'ondelettes, chaque coefficient d'ondelettes étant indexé par un sommet dudit maillage de base, ledit train de données comprenant au moins certains desdits coefficients d'ondelettes.
Selon l'invention, pour au moins certains coefficients d'ondelettes dudit train de données, un tel dispositif de décodage met en oeuvre les moyens suivants: - des moyens de détermination d'une orientation d'une arête portant ledit sommet indexant ledit coefficient d'ondelettes, appelée orientation dudit coefficient d'ondelettes; des moyens de détermination, en fonction de ladite orientation, d'une information de localisation dans ledit maillage de base d'au moins un descendant dudit coefficient d'ondelettes, des règles de localisation distinctes étant associées à chaque orientation, de façon à extraire dudit train de données au moins certains desdits coefficients d'ondelettes, associés chacun à une information de localisation.
L'invention concerne également un terminal de restitution d'un objet à au moins trois dimensions, ledit objet étant associé à un maillage de base constitué d'un ensemble de facettes définies par un ensemble de sommets et d'arêtes, et à des coefficients dans une base d'ondelettes correspondant à des modifications locales dudit maillage de base, dits coefficients d'ondelettes, chaque coefficient d'ondelettes étant indexé par un sommet dudit maillage de base, ledit terminal comprenant des moyens de réception d'un train de données représentatives dudit objet comprenant au moins certains desdits coefficients d'ondelettes.
Selon l'invention, pour au moins certains coefficients d'ondelettes dudit train de données, un tel terminal de restitution met en oeuvre les moyens suivants: des moyens de détermination d'une orientation d'une arête portant ledit sommet indexant ledit coefficient d'ondelettes, appelée orientation dudit coefficient d'ondelettes; - des moyens de détermination, en fonction de ladite orientation, d'une 2876821 14 information de localisation dans ledit maillage de base d'au moins un descendant dudit coefficient d'ondelettes, des règles de localisation distinctes étant associées à chaque orientation, et en ce que ledit terminal comprend des moyens de stockage dans un cache desdits coefficients d'ondelettes, associés chacun à une information de localisation, et des moyens de reconstruction dudit objet à au moins trois dimensions mettant en oeuvre une transformée en ondelettes inverse.
L'invention concerne encore un produit programme d'ordinateur comprenant des instructions de code de programme enregistrées sur un support utilisable dans un ordinateur, et destinées au décodage d'un train de données représentatives d'un objet à au moins trois dimensions, ledit objet étant associé à un maillage de base constitué d'un ensemble de facettes définies par un ensemble de sommets et d'arêtes, et à des coefficients dans une base d'ondelettes correspondant à des modifications locales dudit maillage de base, dits coefficients d'ondelettes, chaque coefficient d'ondelettes étant indexé par un sommet dudit maillage de base, ledit train de données comprenant au moins certains desdits coefficients d'ondelettes.
Selon l'invention, un tel produit programme d'ordinateur comprend des moyens de programmation lisibles par ordinateur pour effectuer, pour au moins certains coefficients d'ondelettes dudit train de données: - une étape de détermination d'une orientation d'une arête portant ledit sommet indexant ledit coefficient d'ondelettes, appelée orientation dudit coefficient d'ondelettes; - une étape détermination, en fonction de ladite orientation, d'une information de localisation dans ledit maillage de base d'au moins un descendant dudit coefficient d'ondelettes, des règles de localisation distinctes étant associées à chaque orientation, de façon à extraire dudit train de données au moins certains desdits coefficients d'ondelettes, associés chacun à une information de localisation.
6. Liste des figures 2876821 15 D'autres caractéristiques et avantages de l'invention apparaîtront plus clairement à la lecture de la description suivante d'un mode de réalisation préférentiel, donné à titre de simple exemple illustratif et non limitatif, et des dessins annexés, parmi lesquels: la figure 1, déjà décrite en relation avec l'art antérieur, présente un synoptique du processus de décodage d'un train binaire et de reconstruction de la représentation 3D de l'objet associé ; la figure 2 illustre, selon l'art antérieur, la structure hiérarchique d'une image dans le cadre de l'algorithme SPIHT pour le codage d'images 10 bidimensionnelles; la figure 3 décrit, selon l'invention, la structure hiérarchique d'un maillage dans le cadre de l'application de l'algorithme SPIHT au codage de maillages semi-réguliers (associés à des objets 3D) ; la figure 4 présente un organigramme de l'algorithme SPIHT de l'art 15 antérieur; la figure 5 illustre les différentes étapes mises en oeuvre dans le procédé de décodage d'un train binaire selon l'invention; la figure 6 illustre la notion d'orientation, telle qu'elle est définie et utilisée dans l'ensemble de ce document.
7. Description d'un mode de réalisation de l'invention Le principe général de l'invention repose sur la détermination directe, lors du décodage d'untrain binaire, des informations de localisation associées à un coefficient d'ondelettes et à ses descendants, en fonction de l'orientation, dans le maillage de base, de l'arête à laquelle est associé le coefficient père.
Afin de mieux comprendre ce principe, on rappelle tout d'abord, en relation avec les figures 2 et 4, la technique de l'algorithme SPIHT, présentée par A. Said et W. A. Pearlman dans "A New, Fast, and Efficient Image Codec Based on Set Partitioning in Hierarchical Trees" (IEEE Trans. Circ. Système. For Video Tech., 6(3), Juin 1996) pour le codage d'images 2D.
2876821 16 La figure 2 présente la structure hiérarchique d'une image bidimensionnelle utilisée dans l'algorithme SPIHT de l'art antérieur. Une structure arborescente, ou arbre, définit les relations spatiales dans la pyramide hiérarchique associée à l'image. La figure 2 présente un tel arbre dans le cas d'une pyramide construite par subdivision récursive de l'image 2D en 4 sous-bandes. Chaque noeud de l'arbre correspond à un pixel de l'image et est identifié par les coordonnées du pixel dans l'image. Ses descendants directs correspondent aux pixels de même position spatiale dans le niveau de raffinement suivant de la pyramide. L'arbre est défini de façon telle que chaque noeud ait, soit aucun descendant, soit quatre descendants, qui forment toujours un groupe de 2x2 pixels adjacents. Sur la figure 2, les flèches sont orientées du noeud parent vers ses quatre fils. Les pixels du niveau le plus élevé de la pyramide forment les racines de l'arbre, et sont également groupés en ensembles de 2x2 pixels adjacents.
Ainsi, le pixel référencé 201 du niveau de subdivision 20 de l'image a quatre pixels-fils référencés 211 à 214 dans le niveau de subdivision suivant 21. Le fils référencé 212 a lui-même quatre descendants référencés 221 à 224 dans le niveau de subdivision suivant de la pyramide hiérarchique.
La figure 4 présente un organigramme de l'algorithme SPIHT de décodage du train binaire (ou "bitstream"), permettant, pour une image 2D, de passer du train binaire à un ensemble de coefficients d'ondelettes. L'algorithme détaillé peut être trouvé dans l'article de A. Said et W. A. Pearlman dans "A New, Fast, and Efficient Image Codec Based on Set Partitioning in Hierarchical Trees" (IEEE Trans. Circ. Système. For Video Tech., 6(3), Juin 1996).
Le principe de cet algorithme repose sur l'utilisation et la gestion de trois listes ordonnées, dans lesquelles sont stockées les informations de pertinence relatives à chaque pixel de l'image; ces trois listes sont: la liste LIS 41 des ensembles non-significatifs (List of Insignificant Sets) ; - la liste LIP 40 des pixels non-significatifs (List of Insignificant Pixels) ; 2876821 17 - la liste LSP 42 des pixels significatifs (List of Significant Pixels).
A l'initialisation, la LSP 42 est initialisée à la liste vide, la LIS 41 et la LIP 40 sont initialisées à toutes les racines de la hiérarchie de la figure 2.
A un niveau de subdivision donné, on parcourt donc la liste LIP 40 de tous les pixels non significatifs pour le rendu de l'image, et on détermine 401 si, compte tenu du seuil de pertinence associé à ce niveau de subdivision, le coefficient d'ondelettes associé à l'un de ces pixels doit être désormais considéré comme pertinent. Dans la négative 402, on laisse ce pixel dans la liste LIP 40. Dans l'affirmative 403, on envoie la valeur du coefficient d'ondelettes, et on déplace le pixel dans la liste LSP 42.
On procède de même pour la liste LIS 41 des ensembles de pixels nonsignificatifs. Lorsque le coefficient d'ondelettes associé à un pixel est considéré comme pertinent, on scrute 410 ses descendants directs dans la hiérarchie pour déterminer 411 s'ils sont ou non également pertinents, et donc décider s'ils doivent être déplacés 413, 412 dans la liste LSP 42 ou LIP 40.
L'ensemble des coefficients d'ondelettes associés aux pixels de la liste LSP 42 sont extraits, et envoyés 420 sous forme de bits de raffinement, pour être utilisés lors de la reconstruction de l'image.
La présente invention s'inscrit dans le contexte de l'application de cet algorithme SPIHT aux objets 3D codés par maillages et ondelettes de deuxième génération (on rappelle qu'une ondelette est dite "de deuxième génération" s'il s'agit d'une ondelette permettant le codage de maillages semi-réguliers, par opposition aux ondelettes classiques qui codent les pixels d'une image 2D).
La figure 3 illustre la structure hiérarchique utilisée dans ce cadre pour le codage de maillages. Chaque coefficient d'ondelettes est associé de manière bijective à une arête du maillage de base, et est indexé par le sommet formant le milieu de cet arête. Dans le maillage de base, le milieu de chaque arête est donc associé à un coefficient d'ondelettes, qui est la racine d'un sous-arbre.
2876821 18 Chaque arête du maillage de base est le parent de quatre arêtes de même orientation (c'est-à-dire qui lui sont parallèles) dans le maillage raffiné directement adjacent dans l'ordre de subdivision hiérarchique.
Ainsi, sur la figure 3, le coefficient d'ondelettes associé au sommet C, milieu de [IJ], a quatre descendants, ou fils, qui sont respectivement associés aux sommets suivants: - Co, milieu de [CJ] ; - C,, milieu de [IC] ; - C2, milieu de [MN] ; - C3, milieu de [GH].
Dans un mode de réalisation particulier de l'invention, auquel on se limitera dans toute la suite de ce document, un coefficient d'ondelettes d'indice n dans la table des coefficients est repéré, dans un tel maillage hiérarchique, par quatre paramètres, donnés par quatre fonctions F(n), A(n), B(n) et C(n). La première fonction indique une facette du maillage de base sur laquelle se trouve le sommet indexant le coefficient. Les trois autres coefficients A(n), B(n) et C(n) sont les plus petits multiples entiers des coordonnées barycentriques de ce sommet sur la facette F(n). On choisit en effet de travailler avec des coordonnées entières, par souci de simplification, et on ne manipule donc pas toujours les coordonnées barycentriques, qui peuvent être des nombres décimaux. Par abus de langage, on parlera indifféremment dans la suite de ce document de coordonnées barycentriques ou des plus petits multiples entiers de ces coordonnées.
Le maillage de base est un maillage comportant peu de facettes et qui est destiné à être raffiné en fonction de l'information portée par les coefficients d'ondelettes.
Pour pouvoir appliquer l'algorithme SPIHT aux objets 3D codés par ondelettes de deuxième génération, il convient de remplacer la hiérarchie de la figure 2 par celle de la figure 3, et de remplacer la notion de pixel par celle de coefficient d'ondelettes, ou de sommet du maillage indexant ce coefficient. C'est dans ce contexte que s'inscrit la présente invention.
2876821 19 Afin d'éviter les inconvénients de l'algorithme SPIHT adapté au codage d'objets 3D mentionnés au début de ce document (lenteur et nonadaptativité de la reconstruction, liées à la nécessité de stocker l'intégralité de la hiérarchie de l'objet 3D dans un cache avant de pouvoir commencer la reconstruction), l'invention consiste à modifier cet algorithme de telle façon qu'à chaque fois qu'un test est fait sur les descendants d'un coefficient d'ondelettes, on procède de la manière suivante: si l'un au moins des descendants n'existe pas dans le cache 10 de la figure 1, on le crée en mémoire et on lui affecte une information de localisation dans le maillage de base, que l'on détermine selon l'algorithme présenté ci-dessous en relation avec la figure 5.
Ces coefficients peuvent ainsi être directement utilisés lors de la reconstruction 3D. En effet, dès que ces coefficients d'ondelettes sont extraits du train binaire et décodés, ils sont directement inscrits dans le cache 10, de sorte qu'ils sont directement utilisables pour la reconstruction 11 de l'objet 3D 12.
Grâce à l'utilisation d'une technique de codage par "zero-tree", on peut ne décoder qu'une partie du train binaire 14, correspondant aux zones visuellement pertinentes de l'objet 3D 12 compte tenu du point de vue d'un utilisateur. Notamment, l'utilisateur client peut demander à un serveur de ne lui envoyer que les parties du train binaire 14 correspondant aux sous-arbres, ou "zero-tree", qui ont pour racine une arête visible de la zone du maillage qui l'intéresse. Une telle technique est par exemple décrite dans demande de brevet internationale publiée sous le numéro WO 03/009234 intitulée "Procédé de codage par ondelettes d'un objet maillé à au moins deux dimensions permettant une transmission adaptative de coefficients d'ondelettes, signal, système et dispositifs correspondants" au nom des mêmes demandeurs que la présente demande de brevet.
Le cache 10 ne contient alors que les coefficients d'ondelettes 15 pertinents pour la reconstruction 11.
Il n'est donc plus nécessaire d'attendre que tout le train binaire 14 soit décodé 13 pour commencer la phase de reconstruction 11, de sorte qu'il est possible d'envisager des applications en temps réel.
2876821 20 Dans le mode de réalisation de l'invention décrit ci-après, l'information de localisation associée aux coefficients d'ondelettes prend la forme du quadruplet (F, A, B, C), où F est la face du maillage sur laquelle se trouve le coefficient, et (A,B,C) sont les plus petits multiples entiers de ses coordonnées barycentriques sur cette face.
L'invention consiste, lors du décodage du train binaire, à réaliser des tests sur la descendance des coefficients d'ondelettes, pour repérer la totalité de la hiérarchie en fonction des quadruplets (F, A, B, C) des descendants. Elle permet donc de réaliser la maintenance du cache 10, et de l'association des coefficients d'ondelettes avec leurs coordonnées barycentriques. En d'autres termes, l'invention permet de gérer directement la hiérarchie des coefficients d'ondelettes dans un cache utilisé pour la reconstruction.
On présente désormais plus en détail, en relation avec la figure 5, les différentes étapes de l'algorithme de décodage de l'invention.
On reçoit, en entrée de cet algorithme, des portions d'un train binaire, qui contient au moins les coefficients d'ondelettes encodés par "zerotree", associés à une scène multimédia ou à un objet 3D (par exemple un relief de terrain, ou un avatar 3D évoluant dans un environnement virtuel) . On réitère les étapes de la figure 5 pour chacun des sous-arbres ou "zero-tree" que l'on souhaite décoder.
On s'intéresse par exemple tout d'abord à un premier sous-arbre, dont la racine est un noeud parent du maillage de base, d'indice m.
Lors d'une première étape d'initialisation référencée 50, on initialise les nouvelles coordonnées F(n), A(n), B(n) et C(n) à 0, où n est l'indice du descendant du noeud m dont on cherche à déterminer les coordonnées.
Lors d'une deuxième étape d'orientation référencée 51, on détermine l'orientation du coefficient d'ondelette indexé par le noeud d'indice m selon la formule: Orientation = (!(A(m)%2))+2*(!(B(m)%2))+3*(!(C(m)%2)) où % est l'opérateur du reste de la division euclidienne et! l'opérateur de négation booléenne.
2876821 21 On rappelle que la notion d'orientation, telle qu'elle est utilisée et définie dans l'ensemble de ce document, est fonction de l'orientation de l'arête du maillage dont le milieu est le sommet indexant le coefficient d'ondelettes considéré. En se référant à la figure 6, qui illustre un maillage de base, l'orientation d'une arête est décrite par l'ordre des sommets KJI du maillage de base. Comme illustré sur cette figure, le maillage comprend trois types d'arêtes distinctes: - les arêtes référencées 60, qui sont parallèles à (KJ), et dont l'orientation vaut 1; - les arêtes référencées 61, qui sont parallèles à (JI), et dont l'orientation vaut 2; les arêtes référencées 62, qui sont parallèles à (KI), et dont l'orientation vaut 3.
Après détermination de l'orientation du coefficient d'ondelette C d'indice m, on calcule 52 les coordonnées des fils Co, C,, C2 et C3 de ce coefficient dans la structure hiérarchique de la figure 3.
Les coordonnées du premier fils Co sont calculées selon les formules: F(n) =F(m) A(n)=2*A(m) B(n)=2*B(m)+1 C(n)=2*C(m)-1, si l'orientation du coefficient C vaut 1, - F(n)=F(m) A(n)=2*A(m)-1 B(n)=2*B(m) C(n)=2*C(m)+1, si l'orientation du coefficient C vaut 2, - F(n)=F(m) A(n)=2*A(m)+1 B(n)=2*B(m)-1 C(n)=2*C(m), si l'orientation du coefficient C vaut 3.
Les coordonnées du deuxième fils C, sont calculées selon les formules: F(n)=F(m) A(n)=2*A(m) B(n)=2*B(m)-1 C(n)=2*C(m)+1, si l'orientation du coefficient C vaut 1, - F(n)=F(m) A(n)=2*A(m)+1 B(n)=2*B(m) C(n)=2*C(m)-1, si l'orientation du coefficient C vaut 2, F(n)=F(m) A(n)=2*A(m)-1 B(n)=2*B(m)+1 C(n)=2*C(m), si l'orientation du coefficient C vaut 3. Les coordonnées du troisième fils C2 sont calculées selon les formules: F(n)=F(m) A(n)=2*A(m)+2 B(n)=2*B(m)-1 C(n)=2*C(m)-1, si l'orientation du coefficient C vaut 1, - F(n)=F(m) A(n)=2*A(m)-1 B(n)=2*B(m)+2 C(n)=2*C(m)-1, si l'orientation du coefficient C vaut 2, - F(n)=F(m) A(n)=2*A(m)-1 B(n)=2*B(m)-1 C(n)=2*C(m)+2, si l'orientation du coefficient C vaut 3.
Les coordonnées du quatrième fils C3, s'il existe, sont calculées selon les formules: - F(n)=F(m) A(n)=2*A(m)-2 B(n)=2*B(m)+1 C(n)=2*C(m)+1, si l'orientation du coefficient C vaut 1, 2876821 23 F(n)=F(m) A(n)=2*A(m)+1 B(n)=2*B(m)-2 C(n)=2*C(m)+1, si l'orientation du coefficient C vaut 2, F(n)=F(m) A(n)=2*A(m)+1 B(n)=2*B(m)+1 C(n)=2*C(m)-2, si l'orientation du coefficient C vaut 3.
Il est en effet possible qu'un coefficient d'ondelettes ait moins de quatre descendants, par exemple s'il est situé sur un bord du maillage. On peut déterminer que l'on est sur un bord du maillage si l'arête-mère de niveau 0 n'est parcourue qu'une seule fois dans le maillage de base.
On rappelle, en relation avec la figure 6, que le premier fils Co du coefficient d'ondelettes C de niveau j est indexé par le sommet de niveau (j+l) qui a pour arête mère [aC], où C est le milieu de l'arête [ab]. Le deuxième fils C, de C est indexé par le sommet de niveau (j+l) qui a pour arête mère [bC].
En outre, C appartient à au moins 6 faces de niveau (j+l), dont deux ont pour seule intersection avec l'arête-mère [ab] le sommet C. Ces deux faces ont deux arêtes potentiellement mères qui ne contiennet pas C. Le troisième fils C2 est tel que abC2 est orienté dans le même sens que KJI. Le quatrième fils C3 est tel que abC3 est orienté dans l'autre sens.
Après détermination des coordonnées barycentriques (à un multiple près) des descendants du coefficient d'ondelettes d'indice m, on teste le signe de ces coordonnées. Si A(n)<0 ou B(n)<0 ou C(n)<0, on doit procéder à un changement de base affine 53, pour les exprimer sur une facette du maillage où ces coordonnées barycentriques seront non-négatives. On procède selon l'algorithme suivant: Pour chaque face F' voisine de F(n) sur le maillage de base et tant que A(n)<O ou B(n)<O ou C(n)<O Calculer F'(n), A'(n), B'(n) et C'(n) comme décrit dans la suite 2876821 24 Si A'(n)>O et B'(n)>O et C'(n)>O { F(n)=F'(n) A(n)=A'(n) B(n)=B'(n) C(n) =C'(n) Le calcul de F'(n), A'(n), B'(n) et C'(n) est réalisé quant à lui de la manière suivante: Soient FOa[0], FOa[1] et FOa[2] les sommets de F(n) et soient FOb[O], FOb[1] et F0b[2] les sommets de F. F'(n)=F Si A(n)+ B(n)+C(n)==1 { ind1=2*(A(n)==1)+3*(B(n)==1)+4*(C(n)==1)-2 ind2=(FOa[indI] ==FOb[0])+2*(FOa[indI]==FOb[1])+3*(FOa[ind1]==FOb[2]) si ind2==1 A'(n)=1 B'(n)=O C'(n)=O si ind2==2 A'(n)=O B'(n)=1 C'(n)=O si ind2==3 A'(n)=O B'(n)=O C'(n)=1 } sinon { si (FOa[O]==FOb[O] et FOa[1]==FOb[2]) { A'(n) =A(n) B'(n)=C(n) C'(n)=B(n) } si FOa[O]==FOb[1] et FOa[1]==FOb[O] { A'(n) =B(n); B'(n)=A(n); C'(n)=C(n); } si FOa[O]==FOb[2] et FOa[1]==FOb[1] { A'(n)=C(n); B'(n)=B(n); C'(n)=A(n); } si FOa[1]==FOb[O] et FOa[2]==FOb[2] { A'(n)=B(n); B'(n)=A(n); C'(n)=C(n); } si FOa[1]==FOb[2] et FOa[2] ==FOb[1] { A'(n)=A(n); B'(n)=C(n); C'(n)=B(n); } si FOa[1]==FOb[1] et FOa[2]==FOb[O] { A'(n)=C(n); B'(n)=B(n); C'(n)=A(n); } si FOa[O]==FOb[O] et FOa[2]==FOb[1] { A'(n)=A(n); B'(n)=C(n); C'(n)=B(n); } si FOa[O] ==FOb[2] et FOa[2]==FOb[O] { A'(n)=C(n); B'(n)=B(n); C'(n)=A(n); si FOa[O] ==FOb[1] et FOa[2]==FOb[2] { A'(n)=B(n); B'(n)=A(n); C'(n)=C(n); Ainsi, l'objectif de cette étape 53 de changement de base affine est de trouver une face F du maillage dans laquelle toutes les coordonnées barycentriques A, B et C associées sont positives ou nulles. Chaque base affine étant associée à une face du maillage, un changement de base affine revient donc à effectuer un changement de face. Par ce changement, on cherche à exprimer les coordonnées d'un point du maillage en fonction des sommets d'une autre face à laquelle il appartient, de façon à ce que toutes ces coordonnées soient positives ou nulles.
Enfin, au cours d'une étape référencée 54 de réduction des coordonnées, on procède à l'opération suivante tant que A(n), B(n) et C(n) sont tous pairs: A(n) :=A(n)/2 B(n) :=B(n)/2 C(n) :=C(n)/2 En d'autres termes, si l'on désigne par a, 13 et y les véritables coordonnées barycentriques d'un sommet du maillage, on a, par définition: a + R + y = 1. 30 Selon l'invention, on travaille lors du décodage avec des composantes, que l'on 10 2876821 27 pourrait qualifier de coordonnées barycentriques étendues A(n), B(n) et C(n), qui sont telles que: A(n) + B(n) + C(n) = où j est un entier positif. Ainsi, on a: A(n)= 2'a B(n)= 2'13 C(n)= ce qui permet de manipuler les coordonnées sous forme de valeurs entières sans perdre en précision.
Lors de l'étape de réduction 54 des coordonnées, on vérifie que A(n), B(n) et C(n) sont bien les plus petits multiples entiers des coordonnées barycentriques a, (3 et y, ce qui permet, d'une part, d'avoir unicité de la solution en sortie 55 de l'algorithme de la figure 5, et d'autre part, de réduire autant que faire se peut, la place mémoire occupée par ces coordonnées (par exemple dans le cache 10).
L'algorithme de la figure 5 peut être réitéré pour chacun des sous-arbres du train binaire que l'on souhaite décoder. Il permet de suivre les coordonnées des coefficients d'ondelettes et de leurs descendants au cours du déroulement de l'algorithme de type SPIHT de la figure 4, de façon à minimiser l'espace mémoire utilisé et la gestion des processus utilisant un cache mémoire unique.
L'invention s'applique tout particulièrement au décodage de trains binaires représentatifs de reliefs de terrains, dans le cadre de la transmission et de la reconstruction de grands environnements virtuels. On rappelle que, dans ce contexte, on procède à divers relevés topographiques, qui permettent de construire le maillage de base, et des photographies aériennes sont utilisées pour déterminer la texture à associer à ce maillage de base, en vue de la détermination des coefficients d'ondelettes.
2876821 28

Claims (16)

REVENDICATIONS
1. Procédé de décodage d'un train de données représentatives d'un objet à au moins trois dimensions, ledit objet étant associé à un maillage de base constitué d'un ensemble de facettes définies par un ensemble de sommets et d'arêtes, et à des coefficients dans une base d'ondelettes correspondant à des modifications locales dudit maillage de base, dits coefficients d'ondelettes, chaque coefficient d'ondelettes étant indexé par un sommet dudit maillage de base, ledit train de données comprenant au moins certains desdits coefficients d'ondelettes, caractérisé en ce que, pour au moins certains coefficients d'ondelettes dudit train de données, ledit procédé met en oeuvre les étapes suivantes: - détermination d'une orientation d'une arête portant ledit sommet indexant ledit coefficient d'ondelettes, appelée orientation dudit coefficient d'ondelettes; détermination, en fonction de ladite orientation, d'une information de localisation dans ledit maillage de base d'au moins un descendant dudit coefficient d'ondelettes, des règles de localisation distinctes étant associées à chaque orientation, de façon à extraire dudit train de données au moins certains desdits coefficients d'ondelettes, associés chacun à une information de localisation.
2. Procédé de décodage selon la revendication 1, caractérisé en ce que, pour ledit au moins un descendant, si ladite information de localisation exprimée dans une base affine ne satisfait pas au moins un critère prédéterminé, ledit procédé met en oeuvre une étape de modification de ladite base affine, de façon à ce que ladite information de localisation exprimée dans ladite base affine modifiée satisfasse ledit au moins un critère.
3. Procédé de décodage selon l'une quelconque des revendications 1 et 2, caractérisé en ce qu'il comprend également, pour ledit au moins un descendant, une étape ultérieure de réduction de ladite information de localisation.
4. Procédé de décodage selon l'une quelconque des revendications 1 à 3, 2876821 29 caractérisé en ce que lesdits coefficients d'ondelettes sont codés selon une technique de type zero-tree, dans ledit train binaire.
5. Procédé de décodage selon l'une quelconque des revendications 1 à 4, caractérisé en ce que, pour un coefficient d'ondelettes d'indice n, ladite information de localisation comprend quatre paramètres F(n), A(n), B(n), C(n), où F(n) est une facette dudit maillage de base sur laquelle se trouve ledit sommet indexant ledit coefficient d'ondelettes, et où A(n) , B(n) et C(n) sont des multiples entiers de coordonnées barycentriques dudit sommet sur ladite facette F(n).
6. Procédé de décodage selon la revendication 5, caractérisé en ce qu'il comprend une étape préliminaire d'initialisation de ladite information de localisation, au cours de laquelle on affecte auxdits paramètres F(n), A(n), B(n), C(n) la valeur zéro.
7. Procédé de décodage selon l'une quelconque des revendications 5 et 6, caractérisé en ce que ladite orientation dudit coefficient d'ondelettes d'indice n est donnée par la formule: Orientation = (!(A(n)%2))+2*(!(B(n) %2))+3*(!(C(n)%2)) où % est l'opérateur du reste de la division euclidienne et! est l'opérateur de négation booléenne.
8. Procédé de décodage selon l'une quelconque des revendications 5 à 7, caractérisé en ce que ladite information de localisation desdits descendants dudit coefficient d'ondelettes est déterminée selon les formules suivantes: - pour un premier descendant dudit coefficient d'ondelettes: - si l'orientation dudit coefficient d'ondelettes vaut 1: F(n)=F(m) A(n) =2*A(m) B(n)=2*B(m)+1 C(n)=2*C(m)-1; - si l'orientation dudit coefficient d'ondelettes vaut 2: F(n)=F(m) A(n) =2*A(m)-1 30 B(n)=2*B(m) C(n)=2*C(m)+1; - si l'orientation dudit coefficient d'ondelettes vaut 3: F(n)=F(m) A(n) =2*A(m)+1 B(n)=2*B(m)-1 C(n)=2*C(m) ; - pour un deuxième descendant dudit coefficient d'ondelettes: si l'orientation dudit coefficient d'ondelettes vaut 1: F(n)=F(m) A(n)=2*A(m) B(n)=2*B(m)-1 C(n)=2*C(m)+1; - si l'orientation dudit coefficient d'ondelettes vaut 2: F(n)=F(m) A(n) =2*A(m)+1 B(n)=2*B(m) C(n)=2*C(m)-1; si l'orientation dudit coefficient d'ondelettes vaut 3: F(n)=F(m) A(n) =2*A(m)-1 B(n)=2*B(m)+1 C(n)=2*C(m) ; - pour un troisième descendant dudit coefficient d'ondelettes: - si l'orientation dudit coefficient d'ondelettes vaut 1: F(n)=F(m) A(n) =2*A(m)+2 B(n)=2*B(m)-1 C(n)=2*C(m)-1; - si l'orientation dudit coefficient d'ondelettes vaut 2: 2876821 31 F(n) = F(m) A(n)=2*A(m)-1 B(n)=2*B(m)+2 C(n)=2*C(m)-1 - si l'orientation dudit coefficient d'ondelettes vaut 3: F(n)= F(m) A(n) =2*A(m)-1 B(n)=2*B(m)-1 C(n)=2*C(m)+2 - pour un quatrième descendant dudit coefficient d'ondelettes, s'il existe: - si l'orientation dudit coefficient d'ondelettes vaut 1: F(n)= F(m) A(n) =2*A(m)-2 B(n)=2*B(m)+1 C(n)=2*C(m)+1; - si l'orientation dudit coefficient d'ondelettes vaut 2: F(n)= F(m) A(n) =2*A(m)+1 B(n)=2*B(m)-2 C(n)=2*C(m)+l; si l'orientation dudit coefficient d'ondelettes vaut 3: F(n)= F(m) A(n)=2*A(m)+1 B(n)=2*B(m)+1 C(n)=2*C(m)-2; où m désigne l'indice dudit coefficient d'ondelettes et n désigne l'indice dudit descendant.
9. Procédé de décodage selon l'une quelconque des revendications 1 à 8, caractérisé en ce que ladite information de localisation ne satisfait pas ledit au moins un critère prédéterminé si ledit sommet indexant ledit coefficient 2876821 32 d'ondelettes est situé sur un bord dudit maillage de base.
10. Procédé de décodage selon la revendication 9, caractérisé en ce que ladite information de localisation ne satisfait pas ledit au moins un critère prédéterminé si l'un au moins des paramètres A(n), B(n) et C(n) dudit coefficient d'ondelettes est négatif.
11. Procédé de décodage selon l'une quelconque des revendications 3 et 5 à 10, caractérisé en ce que, lors de ladite étape de réduction de ladite information de localisation, on divise lesdits paramètres A(n), B(n) et C(n) par deux, tant que lesdits paramètres A(n), B(n) et C(n) sont tous pairs.
12. Procédé de décodage selon l'une quelconque des revendications 1 à 11, caractérisé en ce qu'il comprend également, pour chacun desdits coefficients d'ondelettes extraits dudit train de données, une étape ultérieure de stockage dans un cache dudit coefficient d'ondelettes et de ladite information de localisation réduite associée, de façon à ce que lesdits coefficients d'ondelettes stockés puissent être utilisés lors d'une étape de reconstruction dudit objet à au moins trois dimensions mettant en oeuvre une transformée en ondelettes inverse.
13. Procédé de décodage selon l'une quelconque des revendications 1 à 12, caractérisé en ce qu'il est mis en oeuvre dans le cadre d'un algorithme de tri des coefficients d'ondelettes dudit train de données de type SPIHT ( Set Partitioning In Hierarchical Trees , en français partitionnement d'ensembles dans des arbres hiérarchiques ).
14. Dispositif de décodage d'un train de données représentatives d'un objet à au moins trois dimensions, ledit objet étant associé à un maillage de base constitué d'un ensemble de facettes définies par un ensemble de sommets et d'arêtes, et à des coefficients dans une base d'ondelettes correspondant à des modifications locales dudit maillage de base, dits coefficients d'ondelettes, chaque coefficient d'ondelettes étant indexé par un sommet dudit maillage de base, ledit train de données comprenant au moins certains desdits coefficients d'ondelettes, 2876821 33 caractérisé en ce que, pour au moins certains coefficients d'ondelettes dudit train de données, ledit dispositif met en oeuvre les moyens suivants: - des moyens de détermination d'une orientation d'une arête portant ledit sommet indexant ledit coefficient d'ondelettes, appelée orientation dudit coefficient d'ondelettes; - des moyens de détermination, en fonction de ladite orientation, d'une information de localisation dans ledit maillage de base d'au moins un descendant dudit coefficient d'ondelettes, des règles de localisation distinctes étant associées à chaque orientation, de façon à extraire dudit train de données au moins certains desdits coefficients d'ondelettes, associés chacun à une information de localisation.
15. Terminal de restitution d'un objet à au moins trois dimensions, ledit objet étant associé à un maillage de base constitué d'un ensemble de facettes définies par un ensemble de sommets et d'arêtes, et à des coefficients dans une base d'ondelettes correspondant à des modifications locales dudit maillage de base, dits coefficients d'ondelettes, chaque coefficient d'ondelettes étant indexé par un sommet dudit maillage de base, ledit terminal comprenant des moyens de réception d'un train de données représentatives dudit objet comprenant au moins certains desdits coefficients d'ondelettes, caractérisé en ce que, pour au moins certains coefficients d'ondelettes dudit train de données, ledit terminal met en oeuvre les moyens suivants: - des moyens de détermination d'une orientation d'une arête portant ledit sommet indexant ledit coefficient d'ondelettes, appelée orientation dudit coefficient d'ondelettes; - des moyens de détermination, en fonction de ladite orientation, d'une information de localisation dans ledit maillage de base d'au moins un descendant dudit coefficient d'ondelettes, des règles de localisation distinctes étant associées à chaque orientation, et en ce que ledit terminal comprend des moyens de stockage dans un cache 2876821 34 desdits coefficients d'ondelettes, associés chacun à une information de localisation, et des moyens de reconstruction dudit objet à au moins trois dimensions mettant en oeuvre une transformée en ondelettes inverse.
16. Produit programme d'ordinateur comprenant des instructions de code de programme enregistrées sur un support utilisable dans un ordinateur, et destinées au décodage d'un train de données représentatives d'un objet à au moins trois dimensions, ledit objet étant associé à un maillage de base constitué d'un ensemble de facettes définies par un ensemble de sommets et d'arêtes, et à des coefficients dans une base d'ondelettes correspondant à des modifications locales dudit maillage de base, dits coefficients d'ondelettes, chaque coefficient d'ondelettes étant indexé par un sommet dudit maillage de base, ledit train de données comprenant au moins certains desdits coefficients d'ondelettes, ledit produit programme d'ordinateur comprenant des moyens de programmation lisibles par ordinateur pour effectuer, pour au moins certains coefficients d'ondelettes dudit train de données: - une étape de détermination d'une orientation d'une arête portant ledit sommet indexant ledit coefficient d'ondelettes, appelée orientation dudit coefficient d'ondelettes; - une étape détermination, en fonction de ladite orientation, d'une information de localisation dans ledit maillage de base d'au moins un descendant dudit coefficient d'ondelettes, des règles de localisation distinctes étant associées à chaque orientation, de façon à extraire dudit train de données au moins certains desdits coefficients d'ondelettes, associés chacun à une information de localisation.
FR0410875A 2004-10-14 2004-10-14 Procede de decodage local d'un train binaire de coefficients d'ondelettes Pending FR2876821A1 (fr)

Priority Applications (4)

Application Number Priority Date Filing Date Title
FR0410875A FR2876821A1 (fr) 2004-10-14 2004-10-14 Procede de decodage local d'un train binaire de coefficients d'ondelettes
US11/665,136 US8086054B2 (en) 2004-10-14 2005-09-30 Method for locally decoding a bitstream of wavelet coefficients
PCT/EP2005/054951 WO2006040270A2 (fr) 2004-10-14 2005-09-30 Procede de decodage local d'un train binaire de coefficients d'ondelettes
EP05792261A EP1800263A2 (fr) 2004-10-14 2005-09-30 Procede de decodage local d'un train binaire de coefficients d'ondelettes

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR0410875A FR2876821A1 (fr) 2004-10-14 2004-10-14 Procede de decodage local d'un train binaire de coefficients d'ondelettes

Publications (1)

Publication Number Publication Date
FR2876821A1 true FR2876821A1 (fr) 2006-04-21

Family

ID=34949931

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0410875A Pending FR2876821A1 (fr) 2004-10-14 2004-10-14 Procede de decodage local d'un train binaire de coefficients d'ondelettes

Country Status (4)

Country Link
US (1) US8086054B2 (fr)
EP (1) EP1800263A2 (fr)
FR (1) FR2876821A1 (fr)
WO (1) WO2006040270A2 (fr)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100053153A1 (en) * 2007-02-01 2010-03-04 France Telecom Method of coding data representative of a multidimensional texture, coding device, decoding method and device and corresponding signal and program
US8635357B2 (en) * 2009-09-08 2014-01-21 Google Inc. Dynamic selection of parameter sets for transcoding media data
EP2749023A4 (fr) * 2011-08-25 2016-04-06 Thomson Licensing Codage et décodage hiérarchique par entropie
WO2014062934A1 (fr) * 2012-10-19 2014-04-24 Visa International Service Association Procédés de diffusion numérique mettant en œuvre des réseaux maillés et des ondelettes sécurisés
CN105066905B (zh) * 2015-07-20 2018-01-12 中国科学院上海光学精密机械研究所 小波变换轮廓术抑噪方法
EP4002285A1 (fr) * 2017-10-13 2022-05-25 Dassault Systèmes Procédé de création d'une animation résumant un processus de conception d'un objet tridimensionnel

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003009234A1 (fr) * 2001-07-10 2003-01-30 France Telecom Procede de codage par ondelettes d'un objet maille

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2781908B1 (fr) * 1998-08-03 2000-09-29 France Telecom Procede de codage d'un maillage a nombre reduit de facettes, procede de reconstruction et applications correspondants
US6438266B1 (en) * 1998-08-27 2002-08-20 Lucent Technologies Inc. Encoding images of 3-D objects with improved rendering time and transmission processes
US6995761B1 (en) * 2000-01-14 2006-02-07 California Institute Of Technology Compression of 3D surfaces using progressive geometry
FR2817066B1 (fr) * 2000-11-21 2003-02-07 France Telecom Procede de codage par ondelettes d'un maillage representatif d'un objet ou d'une scene en trois dimensions, dispositifs de codage et decodage, systeme et structure de signal correspondants
KR100492517B1 (ko) * 2002-03-07 2005-06-03 장형수 닥나무 인피섬유를 이용한 인피섬유지 제조장치, 제조방법및 그 방법에 의해 제조된 인피섬유지

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003009234A1 (fr) * 2001-07-10 2003-01-30 France Telecom Procede de codage par ondelettes d'un objet maille

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
GIOIA P ET AL: "Real-time reconstruction of wavelet encoded meshes for view-dependent transmission and visualization", PROCEEDINGS OF THE INTERNATIONAL CONFERENCE ON IMAGE PROCESSING (ICIP 2002), vol. 2 OF 3, 22 September 2002 (2002-09-22) - 25 September 2002 (2002-09-25), IEEE, NEW YORK, US, pages 9 - 12, XP010607497, ISBN: 0-7803-7622-6 *
GIOIA P ET AL: "REAL-TIME RECONSTRUCTION OF WAVELET-ENCODED MESHES FOR VIEW-DEPENDENT TRANSMISSION AND VISUALIZATION", IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY, IEEE INC. NEW YORK, US, vol. 14, no. 7, July 2004 (2004-07-01), pages 1009 - 1020, XP001198601, ISSN: 1051-8215 *
MORÁN F ET AL: "Subdivision surfaces in MPEG-4", PROCEEDINGS OF THE INTERNATIONAL CONFERENCE ON IMAGE PROCESSING (ICIP 2002), vol. 2 OF 3, 22 September 2002 (2002-09-22) - 25 September 2002 (2002-09-25), IEEE, NEW YORK, US, pages 5 - 8, XP010607496, ISBN: 0-7803-7622-6 *

Also Published As

Publication number Publication date
WO2006040270A2 (fr) 2006-04-20
US8086054B2 (en) 2011-12-27
EP1800263A2 (fr) 2007-06-27
US20080193027A1 (en) 2008-08-14
WO2006040270A3 (fr) 2006-08-03

Similar Documents

Publication Publication Date Title
EP1457023B1 (fr) Procede de transmission d&#39;objets entre un serveur et un terminal client mettant en oeuvre une gestion de cache
EP1101200B1 (fr) Affinement selectif de mailles
EP1800263A2 (fr) Procede de decodage local d&#39;un train binaire de coefficients d&#39;ondelettes
WO2013121140A1 (fr) Procédé de codage de motif holographique, dispositif de codage et programme d&#39;ordinateur correspondants
WO2003009234A1 (fr) Procede de codage par ondelettes d&#39;un objet maille
WO2008110719A1 (fr) Procede de codage de donnees representatives d&#39;une texture multidimensionnelle, dispositif de codage, procede et dispositif de decodage, signal et programme correspondants
EP1340195B1 (fr) Procede de codage par ondelettes d&#39;un maillage
WO2006094919A1 (fr) Procede de transmission de donnees de visualisation d&#39;un contenu entre un serveur et au moins un terminal client, serveur, terminal et programme d&#39;ordinateur correspondants
WO2021004797A1 (fr) Procédé et dispositif de codage d&#39;une séquence d&#39;hologrammes numériques
EP1116185B1 (fr) Methode de compression et de codage d&#39;un reseau maille tridimensionnel
EP1393573A1 (fr) Procedes et dispositifs de codage et de decodage d&#39;images mettant en oeuvre des maillages emboites, programme, signal et application correspondants
EP1101199A1 (fr) Simplification et codage d&#39;un maillage source
EP1574068B1 (fr) Procede de codage d&#39;une image par ondelettes et procede de decodage correspondant
EP1654882A2 (fr) Procede de representation d&#39;une sequence d&#39;images par modeles 3d, signal et dispositifs correspondants
EP1181668A1 (fr) Procede de codage/decodage d&#39;images
EP1141899A1 (fr) Procede de simplification d&#39;un maillage source, tenant compte de la courbure locale et de la dynamique geometrique locale, et applications correspondantes
Hakami Wavelet based multimedia data compression techniques
WO2021123617A1 (fr) Procede d&#39;encodage d&#39;une image numerique en vue de sa compression
FR2817697A1 (fr) Procede et dispositif de traitement d&#39;un ensemble de donnees representatives de grandeurs physiques
FR2914468A1 (fr) Procede et dispositif de determination de la presence de contours dans une image multiresolution
FR2811112A1 (fr) Procede de codage d&#39;une image source a visualisation adaptative, procede de decodage et decodeur correspondant