FR 2891965 A1 20070413 FR 0510339 A 20051010 Procédé, dispositif et programme d'ordonnancement d'unités de données d'un flux vidéo scalable, et terminal correspondant. 1. Domaine de l'invention Le domaine de l'invention est celui du codage et du décodage de flux de données, et plus particulièrement de flux de données scalables (ou échelonnables), présentant une structure hiérarchique en couches, ou en niveaux. Ces couches peuvent être définies dans plusieurs dimensions, et classiquement les dimensions temporelle, en qualité et/ou spatiale. De manière générale, il est souhaitable d'ordonner les unités de données constituant le flux de données selon leur efficacité, c'est-à-dire selon l'amélioration de qualité qu'elles apportent, par rapport au débit requis. Ceci permet, dans le cas où toutes les unités de données ne sont pas utilisées dans le terminal, de fournir une qualité de restitution optimisée. On définit donc des niveaux de priorité pour ordonner les unités de données d'un flux de données. En d'autres termes, on doit définir une liste ordonnée des unités de données. L'invention concerne plus précisément cet aspect. Elle vise donc à proposer une technique d'ordonnancement telle que les données les plus pertinentes soient extraites en premier lors d'une adaptation en débit et/ou résolution spatio-temporelle. L'invention s'applique notamment, mais non exclusivement, aux codeurs vidéos échelonnables (ou SVC pour Scalable Video Coding en anglais) (aussi appelés par la suite codeurs vidéos scalables ) fonctionnant en boucle fermée. Il est clair cependant que d'autres codeurs scalables en boucle fermée peuvent mettre en oeuvre l'invention. 2. Techniques de l'art antérieur 2.1. Codage vidéo scalable La plupart des codeurs vidéo génèrent un seul flux compressé correspondant à l'intégralité de la séquence codée. Si plusieurs clients souhaitent exploiter le fichier compressé pour décodage et visualisation, ils devront pour cela télécharger (ou streamer ) le fichier compressé complet. Plus récemment sont apparus des algorithmes de codage vidéo dit scalables (à qualité adaptable et résolution spatio-temporelle variable) pour lesquels le codeur génère un flux compressé en plusieurs couches, chacune de ses couches étant emboîtée dans la couche de niveau supérieur. De tels codeurs sont très utiles pour toutes les applications pour lesquelles la génération d'un seul flux compressé, organisé en plusieurs couches de scalabilité, peut servir à plusieurs clients de caractéristiques différentes, et par exemple : - services de vidéo à la demande (en anglais video on demand , ou VOD), pour des terminaux de type UMTS, PC ADSL, TV ADSL... mobilité de session (reprise sur un PDA (assistant personnel électronique) d'une session vidéo commencée sur un téléviseur ; ou sur un mobile UMTS d'une session commencée sur le réseau GPRS) ; - continuité de session (partage de la bande passante avec une nouvelle application) ; télévision haute définition (encodage unique pour servir des clients à une définition standard (SD) ou à une haute définition (HD) ; visioconférence (encodage unique pour des clients UMTS et des clients Internet). Certains de ces algorithmes de codage vidéo scalables sont aujourd'hui en cours d'adoption par la norme MPEG ("Moving Picture Expert Group" pour "Groupe d'experts en codage d'images"), dans le cadre du groupe de travail MPEG4. Notamment, le modèle qui a été retenu récemment par le groupe de travail MPEG-4 AVC ( Scalable Video Coding pour codage vidéo scalable ) est appelé SVM ( Scalable Video Model pour modèle vidéo scalable ), et est fondé sur un codeur scalable basé sur des solutions de type AVC ( Advanced Video Coding pour codage vidéo avancé ). Ce modèle est décrit plus en détails dans le document N6716 ISO/IEC JTC 1/SC 29/WG 11, intitulé Scalable Video Model 3.0 , Octobre 2004, Palma de Mayorque, Espagne. Le groupe de travail MPEG 4 a pour objectif de proposer une norme de fourniture de flux scalables à grain moyen dans les dimensions temporelle, spatiale et en qualité. 2.2 Le codeur SVM MPEG-4 SVC 2.2.1 Principales caractéristiques du codeur La figure 1 illustre la structure d'un tel codeur, qui présente une structure pyramidale. Les composantes d'entrée vidéo 10 subissent un sous-échantillonnage dyadique (décimation 2D par 2 référencée 11, décimation 2D par 4 référencée 12). Chacun des flux sous-échantillonnés subit ensuite une décomposition temporelle 13 de type MCTF ( Motion Compensated Temporal Filtering pour filtrage temporel compensé en mouvement ). Une version basse résolution de la séquence vidéo est codée 19 jusqu'à un débit donné qui correspond au débit maximum décodable pour la résolution spatiale basse (ce niveau de base est compatible AVC). Les niveaux supérieurs sont ensuite codés 19 par soustraction du niveau précédent reconstruit et sur-échantillonné et codage des résidus sous forme : d'un niveau de base ; éventuellement d'un ou plusieurs niveaux de rehaussement obtenus par codage multipasse de plans de bits (appelé par la suite FGS pour Fine Grain Scalability , échelonnabilité à grain fin). Selon cette approche, on distingue les informations de mouvement 17 et les informations de texture 18. Afin de réaliser une adaptation en débit, les informations de texture 18 sont codées à l'aide d'un schéma progressif : codage d'un premier niveau de qualité minimale (appelé Base Layer en anglais, ou Couche de Base) ; codage de niveaux de raffinement progressif (appelés Enhancement Layer en anglais, ou Couche de Réhaussement). En référence à la figure 1, les informations de texture 18 alimentent un module de codage de la couche de base de quantification 19. Les données codées, en sortie du module 19 servent à alimenter un bloc 21 de transformation spatiale et de codage entropique, qui travaille sur les niveaux de raffinement du signal. Les données en sortie du module 21 alimentent une interpolation 20 depuis le niveau de base. Un module de multiplexage 22 ordonne les différents sous-flux générés dans un flux de données compressé global 23. Le flux compressé 23, en sortie du codeur, est donc structuré en unités de données élémentaires appelées NALU ( Network Abstraction Layer Unit en anglais). Chaque NALU est associée à une image issue de la décomposition spatio-temporelle, un niveau de résolution spatiale, et un niveau de quantification. Cette structuration en unités élémentaires permet de réaliser une adaptation en débit et/ou résolution spatio-temporelle en supprimant les NALUs de résolution spatiale trop grande, ou de fréquence temporelle trop grande ou bien encore de qualité d'encodage trop grande. 2.2.2 Mécanisme de niveaux de priorité Le principe du mécanisme de niveaux de priorité a été développé par les inventeurs de la présente demande de brevet, et est décrit dans la demande de brevet FR-05 00331, non encore publiée. Elle consiste à associer à des éléments ou portions d'éléments d'un flux SVC ( Scalable Video Coding pour codage vidéo scalable ) une information, dite de niveaux de priorité. Ainsi, cette information de niveau de priorité permet à un extracteur (aussi appelé module d'adaptation de qualité) d'extraire de façon efficace les informations les plus pertinentes lors d'une adaptation en débit et/ou résolution spatio-temporelle. La figure 2 illustre les résultats obtenus au moyen du codeur scalable de la figure 1, sous la forme de courbes débit-distorsion, représentées pour des fonctionnements avec et sans mécanisme de niveaux de priorité et pour une résolution QCIF ( Quarter Common Interface Format , le QCIF correspond à un quart de format TV) à 15 Hz. En ordonnée, on a représenté le PSNR ( Peak Signal to Noise Ratio pour rapport signal à bruit crête ) et en abscisse, le débit exprimé en kbits/s. Ainsi, la courbe référencée 24 correspond à un fonctionnement sans mécanisme de niveaux de priorité et la courbe référencée 25 à un fonctionnement avec mécanisme de niveaux de priorité. Le mécanisme de niveaux de priorité permet donc pour une même qualité de gagner de l'ordre de 10 à 15% de débit. L'estimation des niveaux de priorité à utiliser repose sur un formalisme débit-distorsion, ce type d'estimation comprend quatre étapes : une première étape au cours de laquelle on estime, pour chaque sous-partie du flux considéré, les variations en débit deltaR et en qualité deltaD engendrées ; lors de l'étape suivante, on calcule à partir des variations estimées, l'enveloppe convexe de l'ensemble des couples débit-qualité pour chaque image codée dans le flux ; ensuite lors d'une troisième étape, on récupère les points qui sont définis par des couples débit-qualité se positionnant sur l'enveloppe convexe calculée et en lesquels il est possible d'associer une valeur de pente ; enfin lors d'une quatrième étape, on associe à chaque point récupéré un niveau de priorité correspondant à une valeur quantifiée de pente. 2.2.3 Fonctionnement du codeur MPEG-4 SVC en boucle ouverte et en boucle fermée 20 Le codeur MPEG-4 SVC peut mettre en oeuvre deux types de décorrélation temporelle : la décorrélation temporelle de type MCTF, qui comprend une phase de prédiction consistant en un calcul de résidu sur des images issues d'une prédiction par compensation en mouvement, et une phase de mise à jour ( update en anglais) consistant en une réinjection par compensation du mouvement des résidus préalablement calculés dans les images de références ayant servies à la prédiction précédente ; - la décorrélation temporelle de type UMCTF ( Unconstrained Motion Compensated Temporal Filtering pour filtrage temporel 10 15 25 30 compensé en mouvement non contraint ) qui comprend uniquement la phase de prédiction précitée. Il est à noter que cette phase de prédiction unique s'applique également pour le cas d'une transformation temporelle d'images B de type hiérarchique ( hierarchical B-frames en anglais). Ce codeur peut également fonctionner dans deux modes distincts : en mode boucle ouverte ( open loop en anglais), dans lequel les compensations de mouvement au codeur sont effectuées en utilisant les valeurs originales des images ; en mode boucle fermée ( closed loop en anglais), dans lequel les compensations de mouvement au codeur sont effectuées en utilisant les valeurs codées-décodées de ces images. La technique de codage en boucle fermée est une technique couramment utilisée dans les codeurs par prédiction (par exemple dans les schémas de codage MPEG1, MPEG2, ...) pour éviter les phénomènes de dérive. En effet, un codeur peut faire une prédiction à partir d'images originales, alors que le décodeur correspondant ne dispose que de versions codées-décodées de ces images. Cette technique de codage en boucle fermée permet donc de fournir au codeur et au décodeur les mêmes images de référence. Dans le document JVT-P059, intitulé Comparison of MCTF and closed-loop hierarchal B pics , Juillet 2005, Poznan, il est montré que l'adjonction d'une technique de codage en boucle fermée et d'une transformation temporelle d'images B de type hiérarchique permet d'obtenir de meilleures performances (en termes de débit-distorsion) qu'une technique de codage par MCTF en boucle ouverte. 2.2.4 Structure de codage de type hierarchical B-frames en boucle fermée Dans toute la suite de ce document, on considérera la notation suivante : pour une image B, ,y le premier indice x correspond au niveau hiérarchique temporel (ou couche de réhaussement temporelle) de cette image et le deuxième indice y à l'indice de cette image dans son niveau hiérarchique temporel. On entend ici par niveau hiérarchique le niveau de résolution temporelle. Le niveau hiérarchique maximal temporel correspond au niveau de plus haute résolution, c'est-à-dire de fréquence temporelle la plus élevée. On parlera aussi dans ce cas de niveau hiérarchique le plus profond. Une structure de codage de type hierarchical B-frames en boucle fermée donne lieu à une décomposition dyadique : à chaque nouveau niveau hiérarchique, une nouvelle image est insérée entre chaque couple d'image des niveaux hiérarchique préalables. Bien entendu, de manière plus générale, il est possible d'avoir pour chaque nouveau niveau hiérarchique, l'insertion d'aucune, une ou plusieurs images entre chaque couple d'image des niveaux hiérarchiques préalables. On décrit maintenant en relation avec la figure 3, une structure de codage par utilisation d'images B de type hiérarchique ( hierarchical B-frames ) : l'image à t+2 (B,,,) est codée en utilisant une prédiction obtenue à partir des images à t (Bo,,) et à t+4 (Bo,2) ; - l'image à t+l (B2,1) est codée en utilisant une prédiction obtenue à partir des images à t (Bo,,) et à t+2 (B,,,) ; -l'image à t+3 (B2,2) est codée en utilisant une prédiction obtenue à partir des images à t+2 (B,,,) et à t+4 (80,2). Lors d'un fonctionnement en boucle fermée, les prédictions des différentes images sont obtenues en utilisant les versions codées-décodées des images de référence. Dans le cadre d'un codage scalable (c'est-à-dire à plusieurs niveaux de qualité), un codage en boucle fermée est effectué à chaque niveau de quantification. Les résidus de prédiction à chaque niveau de quantification sont codés de façon différentielle par rapport au résidu de prédiction codée-décodée du niveau de quantification précédent. Les informations ainsi codées forment un incrément de qualité (également appelé incrément de quantification). Avec une telle structure de codage en boucle fermée, les incréments de résidus codés pour une image sont donc conditionnels au fait que les images de référence sont au préalable codées-décodées pour le niveau de qualité de codage considéré. 3. Inconvénients de l'art antérieur La technique de calcul des niveaux de priorité utilisée actuellement est une technique qui repose sur le concept de séparabilité des images à coder. C'est-à-dire que l'on suppose que l'influence du niveau de codage d'une image n'influe pas sur les performances attendues par le codage d'une autre image. Cette propriété est assurée par l'utilisation d'une technique de codage de type MCTF en boucle ouverte comme outil de décorrélation temporelle. Dans le cadre d'une technique de codage par hierarchical B-frames (ou par UMCTF) en boucle fermée, cette propriété n'est plus valide, puisque le codage des images dépend pour chaque niveau hiérarchique temporel d'au moins deux images de référence, dites images parentes, d'un niveau hiérarchique temporel supérieur. Il en résulte que la technique actuelle de calcul des niveaux de priorité n'est pas bien adaptée. 4. Objectifs de l'invention L'invention a notamment pour objectif de pallier ces inconvénients de l'art antérieur. Plus précisément, un objectif de l'invention est de fournir une technique d'ordonnancement des unités de données d'un flux vidéo scalable, notamment codé en boucle fermée, qui soit plus efficace, en termes de qualité et/ou débit, que les techniques connues. En d'autres termes, un objectif de l'invention est de fournir une telle technique, qui maximise l'efficacité de la reconstruction du flux, en particulier lorsque celui-ci n'est exploité que partiellement. Un autre objectif de l'invention est de fournir une telle technique, qui n'introduise pas de complexité ni de traitements importants. Notamment, un objectif de l'invention est de permettre une extraction simple et efficace des données les plus importantes d'un flux SVC lors d'une adaptation en débit et/ou résolution spatio-temporelle. L'invention a encore pour objectif de fournir une telle technique qui, dans un mode de réalisation particulier, soit adaptée à un codeur et à un décodeur de type MPEG4-SVC mettant en oeuvre une technique de codage par hierarchical B-frames et fonctionnant en boucle fermée. 5. Caractéristiques principales de l'invention Ces objectifs, ainsi que d'autres qui apparaîtront plus clairement par la suite, sont atteints à l'aide d'un procédé d'ordonnancement d'unités de données d'un flux vidéo scalable au moins dans les dimensions temporelle et de quantification, obtenues par un codage hiérarchique, lesdites unités de données étant organisées en couches successives comprenant une couche de base temporelle et au moins une couche de réhaussement temporelle dans ladite dimension temporelle et une couche de base de quantification et au moins une couche de raffinement de quantification dans ladite dimension de quantification, chaque unité de données d'une couche de réhaussement temporelle donnée étant codée en tenant compte d'au moins une unité de données de référence d'une couche temporelle inférieure. Selon l'invention, le procédé comprend une étape d'ordonnancement 20 délivrant une liste ordonnée desdites unités de données comprenant, pour un ensemble d'unités de données à ordonner, les étapes suivantes : introduction dans ladite liste ordonnée des unités de données de la couche de base de quantification ; association, à chaque unité de données d'une couche de raffinement de 25 quantification, d'une information d'efficacité représentative d'un accroissement de qualité et/ou d'un accroissement de débit procurés par ladite unité de données ; ordonnancement desdites unités de données de couches de raffinement de quantification en fonction desdites informations d'efficacité et d'un critère 30 de présence, indiquant que lesdites unités de données de référence de l'unité de données considérée sont déjà présentes dans ladite liste ordonnée. Ainsi, on organise les unités de données de façon optimisée et adaptée en particulier à un codage en boucle fermée. Notamment, on obtient une efficacité supérieure à celle de l'art antérieur. De façon avantageuse, le procédé comprend une étape de définition de relations de dépendance entre lesdites unités de données, de façon à contrôler ledit critère de présence. Il est en effet souhaitable de connaître au préalable ces relations de dépendance, en particulier pour la mise en oeuvre du codage en boucle fermée. Préférentiellement, ladite étape de définition de relations de dépendance comprend une étape d'identification, pour chaque unité de données d'une couche de réhaussement temporelle, d'une unité de données de référence unique, dite unité de données de référence père, choisie de façon que la présence de ladite unité de données de référence père dans ladite liste ordonnée garantisse la présence dans ce dernier de l'ensemble desdites unités de données de référence. De façon avantageuse, ladite unité de données de référence père d'une unité de données d'une couche de réhaussement temporelle de niveau n est l'unité de données de référence présentant l'indice le plus élevé, respectivement le plus faible, parmi l'ensemble des unités de données de référence de la couche de réhaussement temporelle de niveau n-1. Selon un mode de réalisation préférentiel de l'invention, lesdites unités de données sont codées à l'aide d'un codage hiérarchique mettant en oeuvre une transformation temporelle délivrant des images codées en mode bidirectionnel en boucle fermée. Dans ce cas, lesdites unités de données peuvent comprendre : des images Intra, dites images I ; des images prédites en mode monodirectionnel, dites images P ; des images prédites en mode bidirectionnel, dites images B. Ladite étape d'ordonnancement consiste alors avantageusement à sélectionner, couche de raffinement de quantification par couche de raffinement de quantification, en commençant par ladite couche de base, l'ensemble desdites images I, puis l'ensemble desdites images P et enfin l'ensemble desdites images B ordonnées par couches de réhaussement temporelles. Selon un aspect avantageux de l'invention, ladite étape d'ordonnancement traite simultanément des groupes d'au moins deux unités de données, de façon à prendre en compte la somme desdites informations d'efficacité et privilégier un groupe par rapport à un autre, s'il est globalement plus efficace. De façon préférentielle, ladite étape d'ordonnancement peut sélectionner lesdits groupes d'unités de données de façon qu'une courbe débit / qualité représentative dudit chemin corresponde à une enveloppe convexe de l'ensemble des différents chemins de hiérarchisation admissibles. Avantageusement, ladite étape d'ordonnancement comprend, pour chaque couche de réhaussement temporelle n, une étape de fusion de sous-listes ordonnées des unités de données dépendantes, pour chaque unité de données de ladite couche de réhaussement temporelle n, puis une étape de fusion des listes ordonnées de l'ensemble des couches de raffinement de quantification. Selon une autre caractéristique avantageuse de l'invention, le procédé comprend une étape d'insertion, dans un signal comprenant lesdites unités de données, d'au moins une information représentative de ladite liste ordonnée. L'invention concerne également un dispositif de transmission et/ou de stockage d'un flux vidéo scalable mettant en oeuvre le procédé tel que décrit ci-dessus. Il est à noter que le procédé peut être mis en oeuvre dans de nombreux dispositifs, à différents emplacements d'une chaîne de transmission ou de stockage de données, en fonction des besoins. L'invention concerne encore un produit programme d'ordinateur téléchargeable depuis un réseau de communication et/ou stocké sur un support lisible par ordinateur et/ou exécutable par un microprocesseur, comprenant des instructions de code de programme pour la mise en oeuvre du procédé d'ordonnancement décrit ci-dessus. L'invention s'applique également aux terminaux aptes à recevoir un flux dont les unités de données sont ordonnées selon le procédé décrit ci-dessus. Un tel terminal comprend des moyens de sélection d'une partie desdites unités de données à l'intérieur dudit flux, à partir de ladite liste ordonnée et en fonction d'au moins un critère de débit, de résolution spatiale et/ou de fréquence d'affichage, et des moyens de reconstruction d'un flux vidéo adapté audit critère, à l'aide desdites unités de données sélectionnées. 6. Liste des figures D'autres caractéristiques et avantages de l'invention apparaîtront plus clairement à la lecture de la description suivante d'un mode de réalisation préférentiel de l'invention, donnée à 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 codeur MPEG-4 SVC décrit dans le document N6716 précité ; la figure 2, également décrite en relation avec l'art antérieur, illustre les courbes débit-distorsion obtenues à partir du codeur de la figure 1 avec et sans mécanisme de niveaux de priorité ; la figure 3, commentée en relation avec l'art antérieur, illustre une structure de codage par utilisation de hierarchical B-frames ; la figure 4 est un organigramme général du procédé de l'invention ; la figure 5 est un exemple d'ordonnancement d'incréments d'éléments de données ; la figure 6 illustre l'évolution de la distorsion en fonction du débit de deux ordonnancement d'éléments de données envisagés ; la figure 7 présente un mode de réalisation de l'algorithme d'ordonnancement mis en oeuvre dans l'invention ; les figures 8a à 8d illustrent le résultat de l'algorithme présenté en relation avec la figure 7 ; la figure 9 est elle aussi une illustration de l'algorithme d'ordonnancement des éléments de données de l'invention ; les figures 10A et l0B illustrent schématiquement un dispositif de codage et un terminal mettant en oeuvre l'invention. 7. Description d'un mode de réalisation particulier L'invention propose donc une technique optimisée et efficace d'ordonnancement d'éléments de données composant des images, qui puisse s'appliquer au cas d'images codées selon une structure en boucle fermée. On rappelle que pour ce type de codage, et comme illustré sur la figure 3, les éléments d'images d'un niveau hiérarchique temporel (ou couche de réhaussement temporelle) n dépendent chacun d'au moins un élément d'image de référence, à un niveau hiérarchique temporel de résolution inférieure n-1 (la fréquence temporelle est plus faible). De plus, comme détaillé précédemment, ce codage en boucle fermée est effectué pour chaque niveau de quantification afin d'obtenir une variation qualité/débit. Cet incrément de qualité est une information d'efficacité représentative de l'accroissement de qualité en fonction de l'accroissement de débit. Le problème principal à résoudre pour l'ordonnancement des unités de données composant un flux d'images est donc de définir un chemin, ou liste ordonnée, qui représente une hiérarchisation des données selon leur importance, de façon à obtenir la meilleure efficacité, lorsqu'on considère l'évolution de la qualité en fonction du débit. 7.1 Principe général Les étapes principales de l'invention sont présentées sous la forme d'un algorithme sur la figure 4. Les images codées 51 sont utilisées pour une première étape 52 de définition des relations de dépendance entre elles. Ces relations de dépendance vont permettre par la suite de poser des contraintes sur l'ordonnancement des éléments de chaque incrément de qualité. Il s'en suit, pour chaque image (ou incrément, ou unité de données) de chaque niveau hiérarchique temporel, une étape 53 de calcul des variations de débit en fonction du niveau de quantification (selon l'approche décrite précédemment) : on obtient ainsi une information d'efficacité associé à chaque élément de donnée. Plus la pente de la variation de débit en fonction de la qualité est forte, plus l'efficacité est grande. A partir de ces deux premières étapes 52 et 53, une étape 54 d'ordonnancement de ces informations d'efficacité est réalisée. Par cette étape 54 nouvelle d'ordonnancement, on verra par la suite qu'on obtient une enveloppe convexe d'évolution de la qualité en fonction du débit, générant ainsi les meilleures performances possibles en termes de qualité d'image en fonction du débit, et donc en termes d'efficacité. L'ordonnancement obtenu dans l'étape 54 permet d'obtenir une liste ordonnée, c'est-à-dire d'ordonner les différentes informations d'efficacité associées à chaque élément de donnée. Un niveau de priorité croissant avec leur ordre d'apparition est alors attribué à ces éléments par exemple, à l'aide d'une quantification de leur ordre d'apparition. Il s'ensuit une étape 55 de quantification des niveaux de priorité, lesquels sont transmis au décodeur dans une étape 56 de transmission des niveaux de priorité. Le nombre k de niveaux de quantification disponible est différent de la taille de l'ordre d'apparition, allant jusqu'à une valeur n. On peut alors quantifier une valeur d'ordre d'apparition comprise entre 1 et n sur une plage de valeurs de quantification comprise entre 1 et k. On réalise ainsi une hiérarchisation des données, par ordre d'importance, ou d'apparition. On détaille maintenant certaines des étapes du procédé de l'invention. 7.2 Notations préalables On considère la cas d'une transformation temporelle de type hierarchical B-frame . Une image notée B~ 1 correspond donc à la i-ième image se situant au nième niveau de décomposition, c'est-à-dire au n-ième niveau hiérarchique de raffinement temporel (ou couche de réhaussement temporelle). On rappelle de plus que les prédictions de chaque image Bn,1 sont obtenues à partir de deux images de références, de niveau hiérarchique inférieur (résolution fréquentielle plus faible), par raffinement temporel. De plus, pour chaque image de chaque niveau hiérarchique temporel, on 5 définit desniveaux de quantification, d'indice q. On notera alors Bn,;(q) le q-ième incrément de quantification de codage, associé à l'image Bn,;. Par ailleurs, on notera alors Bn,,r, et 13n2.2 les deux images de références utilisée pour la prédiction de Bn,;. Dans un cadre plus général, on peut bien sûr 10 prendre en compte un nombre d'images de référence supérieur à deux. 7.3 Définition des contraintes de dépendances On détaille dans cette section l'étape 52 de l'algorithme de l'invention. Du fait de la dépendance des éléments (ou unités, ou NALUs en anglais) de données avec d'autres éléments de données de niveau hiérarchique 15 temporel supérieur (résolution plus basse), il faut établir une relation de dépendance entre chacune d'entre elles : en effet, il est nécessaire que deux éléments de données de référence soient connus, et donc présents pour le décodage de l'élément de donnée de niveau hiérarchique temporel inférieur (raffinement supérieur). 20 Pour cela, la technique de l'invention associe à chaque information d'efficacité de l'élément de donnée Bn,;(q) les deux informations d'efficacité des éléments de données de référence utilisés dans la prédiction de l'image Bn;. Parmi ces deux informations d'efficacité des éléments de données de référence, et du fait de la structure du codage hierarchical B-frame , il y a 25 forcément parmi les deux éléments de référence utilisés dans la prédiction de l'élément Bn,; un élément de référence se situant au niveau hiérarchique de décomposition temporelle directement supérieur n-1. Parmi ces éléments de référence situés au niveau n-1, on définit alors un élément de donnée de référence parent Bnp,;p. Cet élément de donnée parent est 30 obtenu en choisissant l'élément de donnée de référence d'indice le plus élevé, au niveau hiérarchique n-1. Sur la figure 3, l'élément de donnée parent de B21 1 sera par exemple B111. Cette construction de relation entre les éléments de données permet alors de prendre en compte les contraintes de dépendance entre les informations de réhaussement, en affirmant que l'information de qualité de l'élément de données Bn,;(q) n'apparaîtra qu'après l'information de réhaussement de l'élément de donnée Bnn,;n(q). On note que les images de premier niveau hiérarchique, c'est-à-dire de plus basse résolution temporelle, n'ont pas d'image de référence parent. Dans un mode de réalisation particulier de l'invention, il est possible de regrouper toutes ces images du premier niveau hiérarchique en une seule valeur d'information de quantification. Finalement, à chaque incrément de qualité BX,y(q) (q-ième niveau de quantification de la y-ième image du niveau hiérarchique x), on associe une liste de référencements dépendants LDX,y(q). Cette liste de référencements LDX,y(q) contient alors l'ensemble des éléments qui dépendent de BX,y(q). En d'autres termes, LDX,y(q) contient les informations d'efficacité des éléments de donnée fils ayant pour élément de donnée de référence parent BX,y (d'incrément de qualité BX,y(q))• Ces listes de référencement peuvent être construites de façon récursive : - LD,,,y(q) est vide si aucun élément parent Bn,; n'a pour élément de référence parent BX,y. LDX,y(q) contient les Bn,;(q) et les LDn,;(q), tels que BX,y est élément de référence parent de Bn,;. On voit donc qu'un élément de référence parent peut avoir plusieurs éléments de donnée fils. 7.4 Calcul des variations de débit et distorsion Grâce à l'étape 52, on sait que les éléments de données de référence parent doivent apparaître avant les éléments de données qui en dépendent. Il reste alors à définir l'ordre dans lequel les éléments de données fils apparaissent (pour une même image de référence parent). Pour cela, on réalise une étape 53 de calcul des variations de débit et distorsion. En d'autres termes, on établit pour chaque incrément de qualité B,,,;(q) quel est son impact deltaRn,,(q) sur le débit global, ainsi que son impact deltaD,u(q) sur la qualité de reconstruction globale. L'impact sur le débit global est obtenu par exemple en utilisant la taille des bits des informations codées relatives à cet incrément de qualité : on obtient alors une information d'efficacité relative à chaque élément de donnée. L'impact sur la distorsion des images reconstruites est quant à lui obtenu par exemple en mesurant la différence de distorsions entre le cas de figure où l'incrément de qualité est présent et celui où il est non présent. 7.5 Ordonnancement des incréments de qualité L'étape 54 d'ordonnancement a donc pour but de rechercher la combinaison la plus efficace des incréments de qualité parmi les différentes combinaisons qui vérifient la contrainte que B,,,;(q) apparaisse avant les éléments inclus dans leur liste correspondante LDn,;(q). Un exemple d'ordonnancement est illustré par la figure 5. On se place dans le cas simple où deux éléments de donnée B1.2 et B,,, ont le même élément de donnée de référence parent Bo,l. Dans cet exemple, l'ensemble 61 est formé de l'élément de donnée B,,, associée à ses deux variations de débit deltaR = 2 et de qualité deltaD = 1. De même l'ensemble 62 est formé de l'élément de donnée B12 2 ayant une variation de débit deltaR = 2 et une variation de qualité deltaD = 2. Enfin, l'ensemble 63 est formé de l'élément de donnée Bo,i et de ses variations de débit deltaR = 1 et de qualité deltaD = 1. On a donc une structure hiérarchique : les deux ensembles 61 et 62 sont au même niveau hiérarchique N = 1 et dépendant (611, 621) de l'ensemble 63 au niveau hiérarchique directement inférieur N = 0, de fréquence temporelle plus faible. Les relations de dépendance permettent de savoir que l'incrément de qualité de Bo,,(q) doit apparaître avant les incréments de qualité B1.2(q) et B1,1(q) des deux éléments de donnée fils. Il reste ensuite à déterminer laquelle de ces deux éléments de donnée fils doit apparaître en premier, de façon à optimiser le débit et la qualité de la restitution des images. En relation avec la figure 6, on étudie pour cela l'évolution du débit en fonction de la distorsion pour chaque élément de donnée 61, 62, 63. L'axe des abscisses représente l'évolution du débit et l'axe des ordonnées l'évolution de la qualité. Les deux stratégies possibles concernant l'ordre d'apparition des informations d'efficacité sont illustrées par les enveloppes 71 et 72. On fait apparaître tout d'abord l'incrément de qualité de Bo,l. La stratégie 1 consiste à ensuite faire apparaître B1,2 puis La stratégie 2 consiste inversement à d'abord faire apparaître B22 2 puis B1,2. L'enveloppe 71 de la stratégie 1 est convexe. On adapte alors cette stratégie pour l'ordonnancement. L'ordonnancement optimal est l'ordonnancement qui correspond à l'enveloppe convexe supérieure des différentes stratégies compatibles d'ordonnancement. 7.6 Algorithme général d'ordonnancement des incréments de qualité La méthode d'ordonnancement développée dans la partie précédente concerne un unique niveau hiérarchique temporel, pour un unique niveau de quantification q. On présente maintenant l'algorithme de l'invention qui permet de trouver l'ordonnancement général et de trouver l'enveloppe convexe supérieure, en fonction de l'information d'efficacité obtenue pour chaque élément de données, généralisée à l'ensemble des niveaux hiérarchiques ainsi qu'à l'ensemble des niveaux de quantification. En relation avec la figure 7, on commence par deux étapes 811 et 812 d'initialisation au premier niveau de quantification q = 1, et au niveau hiérarchique temporel de plus haute fréquence temporelle n = N (on parle de niveau maximal pour le niveau hiérarchique temporel de fréquence maximale). II s'ensuit une étape 82 d'initialisation des listes de ce niveau. Par liste de niveau, on entend le procédé détaillé dans le paragraphe précédent qui ordonne l'apparition des éléments contenus dans les listes LOX,y(q) de chaque élément de référence parent. L'étape suivante 83 récupère, pour chaque élément d'incrément Bn,i de niveau n, les listes de référencements ordonnées LOfn,fi(q) associés aux éléments 5 Bf,,,f1, dont Bpi est l'élément de donnée de référence parent. Dans cette même étape, on fusionne alors l'ensemble des listes de référencements ordonnés de manière à les imbriquer les unes dans les autres et à optimiser ainsi l'ordonnancement général pour un niveau hiérarchique donné. L'algorithme de fusion des listes d'ordonnancement est détaillé dans la 10 section suivante. Un test 84 suit l'étape 83 pour vérifier si le dernier niveau hiérarchique temporel est atteint. Si non, on décrémente 85 l'indice n de niveau hiérarchique et les étapes 82 et 83 sont réitérées. Si le test 84 est positif, un second test 86 est réalisé pour vérifier si le 15 traitement en cours est effectué sur le dernier niveau de quantification. Sinon, on incrémente 87 le niveau de quantification et l'ensemble des étapes 812, 82, 83, 84, 85 et 86 est réitéré. Si oui, une étape finale 88 de fusion des listes obtenues pour chaque niveau de quantification est réalisée. A l'issue des étapes 82 à 86 réitérées pour chaque niveau de quantification, 20 l'algorithme a généré pour chaque niveau de quantification q une liste ordonnée LO(q) des incréments de qualité relatifs au niveau de codage q. L'étape 88 concatène alors les listes par ordre de niveau de codage afin d'obtenir une liste finale LO regroupant les différents niveaux de quantification de codage. 7.7 Algorithme de fusion des liste ordonnées 25 Dans l'étape 83 de la figure 7, une opération de fusion des listes ordonnées de chaque élément dépendant des éléments de référence parent est effectuée. On détaille ici l'algorithme mis en oeuvre, toujours de façon à obtenir une enveloppe convexe. On considère l'élément d'incrément de qualité Bn,i(q). Il comprend une 30 liste de référencement ordonnée, composée d'éléments de qualité dépendant de Bn,;(q), et chacun desquels est associé une liste de référencements ordonnée LOfn,fi(q). Les figures 8a, 8b, 8c et 8d illustrent par un exemple l'évolution de la fusion de listes de référencements. On considère en relation avec la figure 8a la variation de qualité par rapport à la variation de débit d'un élément de référence parent Bn,i. Cet élément est parent de deux éléments Bfn,,,;, et Bfn2 2 à chacun desquels est associée une liste d'ordonnancement (ce qui signifie qu'eux-mêmes sont chacun élément de référence parent d'autres éléments de données), illustrées respectivement par les figures 8b et 8c. Ces listes de référencement sont déterminées selon le procédé détaillé au paragraphe 7.5. La figure 8d expose le résultat de l'ordonnancement des deux listes fusionnées. On insère tout d'abord l'élément de référence parent, de pente a. On choisit ensuite parmi les premiers éléments de chaque liste dont dépend (figures 8b et 8c), celui qui a la pente la plus forte. Cet élément correspond à l'élément de pente b1 dans cet exemple particulier. C'est ensuite l'élément de pente et qui a la pente la plus importante. L'algorithme continue sa progression en juxtaposant les éléments de pente de moins en moins forte. La liste finale est illustrée par la figure 8d et a une enveloppe convexe. Les éléments des deux listes de référencement (des figures 8b et 8c) ont été progressivement introduits en prenant en compte les pentes de l'enveloppe convexe associée. On généralise maintenant cet algorithme de fusion des listes ordonnées des incréments dépendants, en relation avec la figure 9. Un éléments d'incrément de qualité Bn,;(q) est associé à une série de listes LOfn,i(q) de liste d'ordonnancement, associées chacune aux éléments d'incrément de qualité dépendant de Bn,;(q). Le déroulement de l'algorithme est le suivant : -Etape 1 :on calcule et obtient les pentes de l'enveloppe convexe pour chaque point des différentes listes ordonnées LOf,fn(q) ; Etape 2 : on fusionne effectivement les listes ; Etape 2a : on initialise la liste de sortie LOn,;(q) en prenant l'élément B,u(q), qui est l'élément de référence parent ; Etape 2b : Tant que toutes les listes LOfn,f,(q) ne sont pas vides : 2b i : On recherche l'élément B d'incrément de qualité en tête de l'une des listes LOfn,f;(q) ayant la plus grande pente, nommé B ; 2b ii : on supprime alors cet élément B de la liste où il se situait. Le premier élément de cette liste devient alors l'élément qui suivait B auparavant dans cette liste ; 2b iii : On ajoute B en fin de la liste de sortie LO,,,;(q) (correspondant à la liste fusionnée de l'élément B,,,;(q)). Une illustration du résultat de cet algorithme de fusion est présenté sur la figure 9. Au point PO est associée la pente PEO. Aux points P1 et P2 est associée la pente PT1. On associe respectivement aux points 3 et 4 les pentes PT2 et M. On note qu'une seule pente PT1 est associée à l'ensemble des points P1 et P2 : on se trouve dans une situation où tous les premiers éléments des listes concernées ont une pente plus faible que le premier élément suivant. Pour ne pas perdre la convexité de la l'enveloppe, on fusionne les deux pentes en une seule de manière à maintenir la convexité. Dans une variante de cet algorithme, il est possible, pour chaque niveau de quantification q, d'ordonner les incréments de qualités selon leur valeur de niveau hiérarchique. 7.8 dispositifs de mise en ouvre Le procédé de l'invention peut être mis en oeuvre dans de nombreux dispositifs, tels que des serveurs de flux, des noeuds intermédiaires d'un réseau, des émetteurs, des dispositifs de stockage de données,... La structure générale simplifiée d'un tel dispositif est illustrée schématiquement par la figure 10A. Il comprend une mémoire M 100, une unité de traitement 101, équipée par exemple d'un microprocesseur, et pilotée par le programme d'ordinateur Pg 102. A l'initialisation, les instructions de code du programme d'ordinateur 102 sont par exemple chargées dans une mémoire RAM avant d'être exécutées par le processeur de l'unité de traitement 101. L'unité de traitement 101 reçoit en entrée un flux de données à ordonner 103. Le microprocesseur P de l'unité de traitement 101 met en oeuvre le procédé décrit ci-dessus, selon les instructions du programme Pg 102. L'unité de traitement 101 délivre en sortie un flux de données ordonné et/ou une liste ordonnée 104. L'invention concerne également les récepteurs d'un flux ordonné selon l'invention, dont la structure générale simplifiée est illustrée schématiquement par la figure IOB. Il comprend une mémoire M 110, une unité de traitement 111, équipée par exemple d'un microprocesseur, et pilotée par le programme d'ordinateur Pg 112. A l'initialisation, les instructions de code du programme d'ordinateur 112 sont par exemple chargées dans une mémoire RAM avant d'être exécutées par le processeur de l'unité de traitement 111. L'unité de traitement 111 reçoit en entrée un flux de données ordonnée et/ou une liste ordonnée 113. Le microprocesseur tP de l'unité de traitement 111 met en oeuvre le procédé selon les instructions du programme Pg 112, pour délivrer une vidéo de qualité optimisée 114, en fonction des capacités du récepteur, et le cas échéant du réseau de transmission. REVENDICATIONS 1. Procédé d'ordonnancement d'unités (51) de données d'un flux vidéo scalable au moins dans les dimensions temporelle et de quantification, obtenues par un codage hiérarchique, lesdites unités de données étant organisées en couches successives comprenant une couche de base temporelle et au moins une couche de réhaussement temporelle dans ladite dimension temporelle et une couche de base de quantification et au moins une couche de raffinement de quantification dans ladite dimension de quantification, chaque unité de données d'une couche de réhaussement temporelle donnée étant 10 codée en tenant compte d'au moins une unité de données de référence d'une couche temporelle inférieure, caractérisé en ce qu'il comprend une étape d'ordonnancement délivrant une liste ordonnée desdites unités de données comprenant, pour un ensemble d'unités de données à ordonner, les étapes suivantes : 15 introduction dans ladite liste ordonnée des unités de données de la couche de base de quantification ; association (53), à chaque unité de données d'une couche de raffinement de quantification, d'une information d'efficacité représentative d'un accroissement de qualité et/ou d'un accroissement de débit procurés par 20 ladite unité de données ; ordonnancement (54) desdites unités de données de couches de raffinement de quantification en fonction desdites informations d'efficacité et d'un critère de présence, indiquant que lesdites unités de données de référence de l'unité de données considérée sont déjà présentes 25 dans ladite liste ordonnée. 2. Procédé d'ordonnancement selon la revendication 1, caractérisé en ce qu'il comprend une étape (52) de définition de relations de dépendance entre lesdites unités de données, de façon à contrôler ledit critère de présence. 3. Procédé d'ordonnancement selon la revendication 2, caractérisé en ce que 30 ladite étape (52) de définition de relations de dépendance comprend une étaped'identification, pour chaque unité de données d'une couche de réhaussement temporelle, d'une unité de données de référence unique, dite unité de données de référence père, choisie de façon que la présence de ladite unité de données de référence père dans ladite liste ordonnée garantisse la présence dans ce dernier de l'ensemble desdites unités de données de référence. 4. Procédé d'ordonnancement selon la revendication 3, caractérisé en ce que ladite unité de données de référence père d'une unité de données d'une couche de réhaussement temporelle de niveau n est l'unité de données de référence présentant l'indice le plus élevé, respectivement le plus faible, parmi l'ensemble des unités de données de référence de la couche de réhaussement temporelle de niveau n-1. 5. Procédé d'ordonnancement selon l'une quelconque des revendications 1 à 4, caractérisé en ce que lesdites unités (51) de données sont codées à l'aide d'un codage hiérarchique mettant en oeuvre une transformation temporelle délivrant des images codées en mode bidirectionnel en boucle fermée. 6. Procédé d'ordonnancement selon la revendication 5, caractérisé en ce que lesdites unités (51) de données comprennent : des images Intra, dites images I ; des images prédites en mode monodirectionnel, dites images P ; des images prédites en mode bidirectionnel, dites images B. 7. Procédé d'ordonnancement selon la revendication 6, caractérisé en ce que ladite étape d'ordonnancement consiste à sélectionner, couche de raffinement de quantification par couche de raffinement de quantification, en commençant par ladite couche de base, l'ensemble desdites images I, puis l'ensemble desdites images P et enfin l'ensemble desdites images B ordonnées par couches de réhaussement temporelles. 8. Procédé d'ordonnancement selon l'une quelconque des revendications 1 à 7, caractérisé en ce que ladite étape d'ordonnancement traite simultanément des groupes d'au moins deux unités de données, de façon à prendre en compte la' somme desdites informations d'efficacité et privilégier un groupe par rapport à un autre, s'il est globalement plus efficace. 9. Procédé d'ordonnancement selon la revendication 8, caractérisé en ce que ladite étape d'ordonnancement sélectionne lesdits groupes d'unités de données de S façon qu'une courbe débit / qualité représentative dudit chemin corresponde à une enveloppe convexe de l'ensemble des différents chemins de hiérarchisation admissibles. 10. Procédé d'ordonnancement selon la revendication 9, caractérisé en ce que ladite étape d'ordonnancement comprend, pour chaque couche de réhaussement 10 temporelle n, une étape de fusion de sous-listes ordonnées des unités de données dépendantes, pour chaque unité de données de ladite couche de réhaussement temporelle n, puis une étape de fusion des listes ordonnées de l'ensemble des couches de raffinement de quantification. 15 11. Procédé d'ordonnancement selon l'une quelconque des revendications 1 à 10, caractérisé en ce qu'il comprend une étape d'insertion, dans un signal comprenant lesdites unités de données, d'au moins une information représentative de ladite liste ordonnée. 12. Dispositif de transmission et/ou de stockage d'un flux vidéo scalable au 20 moins dans les dimensions temporelle et de quantification, obtenues par un codage hiérarchique, formées d'unités de données organisées en couches successives comprenant une couche de base temporelle et au moins une couche de réhaussement temporelle dans ladite dimension temporelle et une couche de base de quantification et au moins une couche de raffinement de quantification dans 25 ladite dimension de quantification, chaque unité de données d'une couche de réhaussement temporelle donnée étant codée en tenant compte d'au moins une unité de données de référence d'une couche temporelle inférieure,` caractérisé en ce qu'il comprend des moyens d'ordonnancement définissant une liste ordonnée desdites unités de données et comprenant, pour un ensemble d'unités de données à ordonner : des moyens d'introduction dans ladite liste ordonnée des unités de données de la couche de base de quantification ; des moyens d'association à chaque unité de données d'une couche de raffinement de quantification d'une information d'efficacité représentative d'un accroissement de qualité et/ou d'un accroissement de débit procurés par ladite unité de données ; des moyens d'ordonnancement desdites unités de données de couches de raffinement de quantification en fonction desdites informations d'efficacité et d'un critère de présence, indiquant que lesdites unités de données de référence de l'unité de données considérée sont déjà présentes dans ladite liste ordonnée. 13. Produit programme d'ordinateur téléchargeable depuis un réseau de communication et/ou stocké sur un support lisible par ordinateur et/ou exécutable par un microprocesseur, caractérisé en ce qu'il comprend des instructions de code de programme pour la mise en oeuvre du procédé d'ordonnancement selon au moins une des revendications 1 à 11. 14. Terminal de réception d'unités de données représentatives d'un flux vidéo ordonnées selon le procédé d'au moins une des revendications 1 à 11, caractérisé en ce qu'il comprend des moyens de sélection d'une partie desdites unités de données à l'intérieur dudit flux, à partir de ladite liste ordonnée et en fonction d'au moins un critère de débit, de résolution spatiale et/ou de fréquence d'affichage, et des moyens de reconstruction d'un flux vidéo adapté audit critère, à l'aide desdites unités de données sélectionnées.