Brevet FR2903555A1 — publié le 20080111

DISPOSITIF ET PROCEDE DE CODAGE ET DE DECODAGE ECHELONNABLES DE FLUX DE DONNEES D'IMAGES, SIGNAL ET PROGRAMME D'ORDINATEUR CORRESPONDANTS. Le domaine de l'invention est celui du codage et du décodage d'images ou de séquences vidéo d'images. Plus précisément, l'invention concerne une technique de codage et de décodage d'images échelonnable (en anglais "scalable"), c'est-à-dire à qualité adaptable et résolution spatio-temporelle variable. De nombreux systèmes de transmission de données sont aujourd'hui hétérogènes, en ce sens qu'ils desservent une pluralité de clients disposant de types d'accès aux données très divers. Ainsi, le réseau mondial Internet par exemple, est accessible aussi bien à partir d'un terminal de type ordinateur personnel (PC) que d'un radiotéléphone. Plus généralement, la bande passante pour l'accès au réseau, les capacités de traitement des terminaux clients, la taille de leurs écrans varient fortement d'un utilisateur à l'autre. Ainsi, un premier client peut par exemple accéder au réseau Internet à partir d'un PC puissant, et disposer d'un débit ADSL ("Asymmetric Digital Subscriber Line" pour "Ligne d'abonné numérique à structure asymétrique") à 1024 kbits/s alors qu'un deuxième client cherche à accéder aux mêmes données au même instant à partir d'un terminal de type PDA ("Personal Digital Assistant" pour "assistant numérique personnel") connecté à un modem de faible débit. II est donc nécessaire de proposer à ces divers utilisateurs un flux de données qui soit adapté tant en terme de débit que de résolution des images à leurs différents besoins. Cette nécessité s'impose plus largement pour toutes les applications accessibles à des clients disposant de capacités d'accès et de traitement très diverses, et notamment les applications de : - VOD ("Video On Demand" pour "vidéo à la carte"), accessibles aux terminaux de radiocommunication de type UMTS ("Universal Mobile Telecommunication Service" pour "service de télécommunication mobile universel"), aux PC ou aux terminaux de télévision avec accès ADSL, etc. ; 2903555 2 - mobilité de session (par exemple reprise sur un PDA d'une session vidéo commencée sur un téléviseur, ou, sur un mobile UMTS d'une session commencée sur GPRS ("General Packet Radio Service" pour "service général de radiocommunication par paquets")) ; 5 - continuité de session (dans un contexte de partage de la bande passante avec une nouvelle application) ; - télévision haute définition, dans laquelle un encodage vidéo unique doit permettre de servir aussi bien des clients disposant d'une définition standard SD que des clients disposant d'un terminal à haute définition HD ; 10 - visioconférence, dans laquelle un encodage unique doit répondre aux besoins de clients disposant d'un accès UMTS et d'un accès Internet ; - etc. Pour répondre à ces différents besoins, on a développé des algorithmes de codage d'images échelonnables, ou "scalables", qui permettent 15 une qualité adaptable et une résolution spatio-temporelle variable. Le codeur génère un flux compressé présentant une structure hiérarchique de couches, dans laquelle chacune des couches est emboîtée dans une couche de niveau supérieur. Par exemple, une première couche de données véhicule un flux à 256kbitsls, qui pourra être décodé par un terminal de type PDA, et une 20 deuxième couche de données complémentaire véhicule un flux de résolution supérieure à 256kbitsls qui pourra être décodé, en complément du premier, par un terminal plus puissant de type PC. Le débit nécessaire pour le transport de ces deux couches emboîtées est dans cet exemple de 512 kbits/s. Certains de ces algorithmes de codage vidéo échelonnables sont 25 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 MPEG VIDEO. La première génération de ces algorithmes échelonnables (cf travaux de MPEG-4, notamment avec les technologies de type FGS û Fine Grain Scalability û Echelonnage à grain fin) ne s'est pas imposée car on lui reprochait une sous-optimalité en termes de compression. Plus récemment, de nouveaux algorithmes se sont imposés pour répondre à ce problème d'efficacité. Ils sont aujourd'hui en cours d'adoption par 2903555 3 la norme MPEG-4 AVC, dans le contexte du groupe de travail JVT joint entre l'ISO et l'IEC : SVC sera l'amendement 3 de la norme AVC (ISO/IEC 1449610 Amdt3) (Scalable Video Coding û codage vidéo échelonnable). Le modèle qui a été retenu récemment par SVC est basé sur un 5 codeur échelonnable avec prédiction inter-couches et décomposition temporelle par prédiction bidirectionnelle (images B). Cette nouvelle norme est capable de fournir des flux échelonnables à grain moyen dans les dimensions temporelle, spatiale, et en qualité en quantification. Le décodeur correspondant à la norme est décrit dans le document 10 "Joint Draft 6", J. Reichel, M. Wien, H. Schwarz, JVT-S202, 2006. Les caractéristiques principales de cette solution sont les suivantes : - solution pyramidale avec sous-échantillonnage des composantes d'entrée; décomposition temporelle par images B à chaque niveau, 15 - codage des couches successives en mode CGS (Coarse Grain Scalability û Echelonnage à grain grossier) ou en mode FGS (Fine Grain Scalability û Echelonnage à grain fin). L'encodeur est schématisé à la figure 1. Il comporte deux modes : a) le mode FGS 1, 1', 1" ou codage par quantification progressive 20 permettant d'atteindre une granularité dite "moyenne" (de l'ordre de 10%). Le codeur enchaîne les étapes suivantes : - Codage en 2 d'une version basse résolution de la séquence vidéo. (le niveau de base en quantification de cette basse résolution est compatible AVC). 25 - Codage des différentes couches par prédiction à partir de la couche précédente reconstruite et sur-échantillonnée et codage des résidus sous forme : o D'un niveau de quantification de base o D'un ou plusieurs niveaux de réhaussement en qualité de 30 quantification obtenus par codage multipasse de plans de bits (par la suite : FGS). Le résidu de prédiction est codé jusqu'à un débit R_ri_max qui correspond au débit maximum décodable pour la résolution ri. 2903555 4 b) le mode CGS ou codage par couches permettant d'atteindre une scalabilité dite grossière (de l'ordre de 25%). Le codeur enchaîne les étapes suivantes : - le niveau de base est codé à une qualité 0 (layer 0, avec QPO) 5 - la différence entre les couches est calculée et cette différence est encodée (codage entropique). Un flux SVC est constitué d'un ensemble de paquets d'information. Ces différents paquets d'information ( NAL unit ) peuvent être regroupés hiérarchiquement en: 10 - séquence vidéo: ensemble de paquets d'information représentant une séquence vidéo (ne correspondant pas nécessairement à tout le flux vidéo). Dans les premiers paquets, on retrouve notamment des paquets d'information globale relative à la séquence : paquets de type SPS (Sequence Parameter Set û ensemble de paramètres de séquence), mais aussi des 15 paquets d'information relatif aux différents type d'images présentes : paquets de type PPS (Picture Parameter Set û ensemble de paramètres d'image). Ces paquets peuvent également être régulièrement introduits dans le flux. -Unité d'accès (AU û Access Unit ) : ensemble d'information correspondant à un instant temporel. On y retrouve des paquets d'information 20 de type message d'information (SEI û Supplemental Enhancement Information û information d'amélioration supplémentaire), ou bien de données - Portion ( Slice ) : ensemble d'informations codées au sein d'une NAL unit . Une portion regroupe un ensemble de macroblocs d'une image pour un niveau de représentation ou couche (par exemple, niveau de 25 représentation spatial). Par la suite, on appellera portion un groupe de groupe de blocs. - Macrobloc: ensemble d'informations présente dans un groupe de blocs. Un macrobloc est constitué de 4 blocs 8x8 de luminance et de 2 blocs 8x8 de chrominance (chrominance rouge, chrominance bleu) pour le format de 30 couleur 4:2:0. Par la suite, on appellera macrobloc, un groupe de blocs. - Bloc: ensemble d'information relatif à un bloc d'image de taille 8x8 ou 4x4. 2903555 5 Il est à noter que dans la suite de ce texte, sauf si le contexte le précise autrement, le terme groupe de blocs désigne indifféremment un macrobloc ou une portion ( slice ). Le flux SVC est organisé en Access units (AU û unité d'accès) 5 correspondant chacune à un instant (temporel) et comprenant une ou plusieurs unités d'accès pour le réseau (paquet) ou NALU (Network Abstraction Layer Units û unités de couche d'abstraction réseau) Chaque NALU, figure 2, est associée à une image issue de la décomposition spatio-temporelle Ti, un niveau de résolution spatiale Sj, et un 10 niveau de qualité en quantification SNR Ek. Cette structuration en NALUs permet alors de pouvoir 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é en quantification trop grande. 15 Chaque NALU encapsule une portion (en anglais slice ) d'image, la portion d'image pouvant correspondre à tout ou partie de l'image. Comme indiqué précédemment, une slice est un ensemble de macroblocs contenu dans une image. On peut retrouver plusieurs portions( slices ) dans une image (typiquement pour limiter la taille des NALUs, limiter l'impact d'une perte 20 de paquet, réaliser un codage adaptatif par région d'image, etc. Chaque NALU spécifique à SVC comporte un octet d'en-tête AVC et deux octets d'en-tête SVC contenant les champs (P,D,T,Q) (Priority_id, Dependency_id, Temporal_level, Quality_level). Ces champs peuvent être exploités pour réaliser une adaptation en résolution spatiale et/ou fréquence 25 temporelle et/ou qualité, en ne retenant que les NALUs ayant un niveau de champs (P,D,T,Q) suffisamment élevé. Le champ Priority_id indique un niveau de priorité d'une NALU pouvant servir à guider une adaptation en qualité. Le champ Dependency_id permet de connaitre le niveau de 30 résolution spatiale d'une couche hiérarchique de codage. Ce niveau peut aussi contrôler un niveau de rehaussement en qualité SNR ou de rehaussement temporel dans le cadre d'un codage en couche, c'est-à-dire pour un nombre de points de fonctionnement discret. 2903555 6 Le champ Temporal_level permet d'indiquer le niveau temporel indiquant la fréquence d'image. Le champ Quality_level permet d'indiquer le niveau de quantification progressive, et donc de contrôler le débit/qualité et/ou la 5 complexité. Chaque NALU comporte également dans l'en-tête un champ "discardable_flag" qui indique si l'unité considérée doit être prise en compte pour le décodage de la couche courante seulement ou pour le décodage de la couche courante et des couches supérieures. 10 Un flux échelonnable est divisé en couches (en anglais layer ). Chaque couche est identifiée par l'élément de syntaxe nommé "dependency_id". Pour chaque couche, un niveau de base est codé en mode non progressif avec un pas de quantification initial QPO. Ce niveau de base est identifié à l'intérieur de la couche par l'élément de syntaxe appelé niveau de 15 qualité (quality_level dans la norme) QLO (c'est-à-dire QL = 0). Le niveau de base QLO d'une couche peut être prédit, figure 3, : - soit par le niveau de base QLO d'une couche inférieure. C'est notamment le cas en mode non progressif, puisque dans l'état actuel de la norme, il n'est pas permis d'avoir plusieurs niveaux de qualité (QL) dans une 20 même couche en CGS - soit par un niveau QLi (c'est-à-dire QL = i) de la couche inférieure (i>=0) en mode progressif ou en mode non progressif CGS en supposant plusieurs niveaux QL en CGS. Cette prédiction est appelée prédiction inter-layer ou prédiction 25 inter-couches. A l'intérieur de chaque couche, figure 4, des niveaux de rehaussement QLi du niveau de base QLO peuvent être codés, ces niveaux de rehaussement sont identifiés par leur niveau de qualité QL. La norme prévoit que ces niveaux de rehaussement sont codés en mode de raffinement progressif - FGS, bien 30 que techniquement, il soit également possible de coder le niveau de rehaussement en mode non progressif CGS. Ces niveaux de prédiction sont codés à l'aide d'une prédiction intra-couche venant du niveau précédent QLO (niveau de base ou de rehaussement). 2903555 7 La figure 5 résume les différentes possibilités de prédiction inter et intra-couches dans le projet de norme actuel. A titre d'exemple, dans cette figure, la prédiction inter-couches, symbolisée par la flèche 50, est basée sur le niveau de qualité QL1 de la couche 0 (Did=O), et les prédictions intra-couche 5 sont symbolisées par les flèches 51 et 52. Or la prédiction inter-couches du projet de norme est fixe pour une couche donnée, c'est-à-dire que tous les macrobloc:s de toutes les NALs d'une image sont prédites par la même couche de base et le même niveau de qualité de base (correspondant au symbole base_id_plusl du projet de norme) et 10 ce, quel que soit le débit visé. De ce fait, la prédiction inter-couches actuelle limite les performances pour les points de bas débit des couches supérieures. De plus, la prédiction inter-couches n'est utilisée que pour le niveau de base d'une couche, figures 3 et 5. De ce fait, la prédiction inter-couches limite les performances pour les points de haut débit des couches supérieures. 15 C'est un objectif de l'invention de résoudre les inconvénients mentionnés ci-dessus en proposant un mécanisme plus souple de prédiction inter-couches. L'invention propose ainsi un procédé de codage d'une image ou d'une séquence d'images générant un flux de données sous forme de groupes de 20 blocs présentant une structure hiérarchique de couche de données emboîtées de niveaux n successifs, où n est entier, chacune des dites couches correspondant à une résolution et à une gamme de niveaux de qualité en quantification prédéterminées desdits groupes de blocs, tel que la résolution et/ou le niveau de qualité en quantification soit croissant avec l'augmentation 25 dans l'ordre des couches, ledit procédé comportant une étape de codage d'un niveau de base de qualité d'au moins une des dites couches, de niveau n + 1, par prédiction à partir d'un niveau de qualité en quantification de la couche inférieure n, et une étape de codage d'au moins un niveau de rehaussement de qualité en quantification de ladite couche de niveau n+1, caractérisé en ce que, 30 pour au moins un bloc d'un groupe de blocs, le codage d'au moins un niveau de rehaussement de la couche n + 1 est fait par prédiction, à partir d'un niveau de qualité en quantification de la couche inférieure n différent de celui utilisé pour le codage du niveau de qualité de base de la couche n + 1. 2903555 8 Pour ce procédé de codage et pour au moins un groupe de blocs donné, le codage des niveaux de base et de rehaussement de chaque bloc du groupe de blocs sont faits par prédiction à partir d'une liste finie d'au moins 2 niveaux de qualité distincts d'encodage de la couche inférieure n. 5 Un avantage d'une telle dépendance adaptative est que pour les niveaux de basse qualité en quantification d'une couche supérieure, il n'est pas alors nécessaire d'avoir les niveaux de qualité en quantification supérieurs de la couche de référence. Cela permet ainsi de gagner en débit sur ces premiers niveaux de décodage d'une couche supérieure. 10 Une autre caractéristique de ce procédé de codage est que, pour au moins un groupe de blocs, à un premier niveau de rehaussement de qualité en quantification générant une qualité supérieure à celle d'un second niveau de rehaussement correspond une liste de niveaux de qualité comportant au moins tous les niveaux de la liste du second niveau de rehaussement. 15 Cela permet avantageusement d'augmenter le niveau de qualité en quantification servant de base à la prédiction inter-couches. Une autre caractéristique de ce procédé de codage est que, pour au moins un bloc donné, le codage d'un niveau de rehaussement est fait par prédiction en outre à partir du niveau de qualité immédiatement inférieur de la 20 même couche. Un avantage d'une telle dépendance adaptative est que les niveaux de qualité en quantification supérieurs d'une couche donnée peuvent également bénéficier des niveaux de qualité inférieurs de la couche de référence (les informations de rehaussement en qualité de quantification supérieure de la 25 couche de référence ne sont pas considérées comme "discardable"). Cela permet un codage plus efficace des informations de rehaussement en qualité de quantification pour cette couche. Une autre caractéristique de ce procédé de codage est que, à chaque groupe de blocs correspond, dans le flux de données, un en-tête comportant 30 des informations de la sélection utilisée pour effectuer la prédiction. Une autre caractéristique de ce procédé de codage est que, par défaut, le codage de chaque niveau de rehaussement de la couche n + 1 est fait par prédiction à partir du même niveau de rehaussement de la couche n s'il existe, 2903555 9 et sinon, à partir du niveau de rehaussement maximal de la couche n, ce qui permet avantageusement de limiter les champs d'en-tête puisqu'il n'est plus nécessaire alors d'indiquer le niveau de qualité servant de base. L'invention propose également un dispositif de codage d'une image ou 5 d'une séquence d'images générant un flux de données sous forme de groupe de blocs présentant une structure hiérarchique de couches de données emboîtées de niveaux n successifs, où n est entier, chacune des dites couches correspondant à une résolution et à une gamme de niveaux de qualité en quantification prédéterminées desdits groupes de blocs tel que la résolution 10 et/ou le niveau de qualité en quantification soit croissant avec l'augmentation dans l'ordre des couches, au moins une couche n + 1 comportant un niveau de base de qualité et au moins un niveau de rehaussement de qualité en quantification, ledit dispositif comportant des moyens de codage adaptés pour coder par prédiction le niveau de base par un niveau de qualité en 15 quantification de la couche inférieure n, caractérisé en ce que, pour au moins un bloc d'un groupe de blocs, les moyens de codage sont adaptés pour coder par prédiction au moins un niveau de rehaussement de la couche n + 1 à partir d'un niveau de qualité en quantification de la couche inférieure n différent de celui utilisé par le niveau de qualité de base de la couche n + 1. 20 L'invention propose également un dispositif de décodage d'un flux de données définissant une image ou une séquence d'images sous forme de groupes de blocs présentant une structure hiérarchique de couches de données emboîtées de niveau n successif, où n est entier, chacune des dites couches correspondant à une résolution et à une gamme de niveaux de qualité 25 en quantification prédéterminées desdits groupes de blocs tel que la résolution et/ou le niveau de qualité en quantification soit croissant avec l'augmentation dans l'ordre des couches, la couche n + 1 comportant un niveau de base de qualité en quantification et au moins un niveau de rehaussement de qualité en quantification, ledit dispositif comportant des moyens de décodage adaptés 30 pour décoder par prédiction le niveau de base par un niveau de qualité en quantification de la couche inférieure n, caractérisé en ce que, pour au moins un bloc d'un groupe de blocs, les moyens de décodage sont adaptés pour décoder par prédiction au moins un niveau de rehaussement de la couche n + 2903555 10 1, à partir d'un niveau de qualité en quantification de la couche inférieure n différent de celui utilisé par le niveau de qualité de base de la couche n + 1. L'invention propose également un signal de transmission d'un flux de données codé par le procédé précédent et comportant, pour chaque groupe de 5 blocs, au moins un en-tête renseignant sur le niveau de qualité en quantification de la couche inférieure n dont dépend le décodage par prédiction du niveau de rehaussement de qualité de quantification de la couche n + 1. Ce signal de transmission d'un flux de données est tel que l'en-tête comporte en outre une information indiquant si le niveau de rehaussement de 10 qualité en quantification de la couche n + 1 est codé par prédiction à partir du niveau de qualité en quantification inférieur de la même couche et/ou à partir d'un niveau de qualité en quantification de la couche inférieure n. Ce signal de transmission d'un flux de données, dans une variante, est tel que, lorsque le niveau de rehaussement de qualité en quantification de la 15 couche n + 1 dépend du niveau de qualité en quantification identique de la couche inférieure n, l'en-tête ne comporte aucune information sur le niveau de qualité à utiliser pour la prédiction. L'invention propose également un produit programme d'ordinateur téléchargeable depuis un réseau de communication et/ou enregistré sur un 20 support lisible par ordinateur et/ou exécutable par un processeur, caractérisé en ce qu'il comprend des instructions de code de programme pour la mise en oeuvre du procédé de codage précédent. L'invention sera mieux comprise à la lumière de la description et des dessins sur lesquels : 25 la figure 1 est un schéma synoptique d'un codeur selon la norme SVC ; la figure 2 est une représentation symbolique du flux codé selon la norme SVC dans sa décomposition ,en NALU ; la figure 3 est une vue schématique de la prédiction inter-couches 30 dans le projet de norme SVC ; la figure 4 est une vue schématique de la prédiction intra-couche dans le projet de norme SVC ; 2903555 11 la figure 5 est une vue schématique des relations entre la prédiction inter-couches et la prédiction intra-couche dans le projet de norme SVC ; la figure 6 est une vue schématique des flux de codage dans la 5 norme SVC ; la figure 7 est une vue schématique des relations entre la prédiction inter-couches et la prédiction intra-couche dans un mode de réalisation de l'invention ; la figure 8 est une vue schématique du codage prédictif 10 interlintra-couches dans la norme SVC ; la figure 9 est une vue schématique du codage prédictif inter-tinta-couches dans un mode de réalisation de l'invention ; et la figure 10 est une vue schématique d'un ordinateur sur lequel peut s'exécuter un programme d'ordinateur pour la mise en 15 oeuvre d'un procédé de codage selon un mode de réalisation de l'invention. Dans le mode de réalisation décrit, une prédiction inter-couches adaptative est utilisée pour tous les niveaux codés (base et rehaussement) dans une couche donnée. Cette prédiction inter-couches pour chaque niveau 20 de rehaussement en quantification est signalée par l'ajout d'un élément de syntaxe indiquant quel niveau de qualité de la couche servant de prédiction est utilisé. A titre illustratif, la figure 7 représente cette prédiction inter-couches adaptative selon une représentation proche de l'état de l'art représenté en figure 5. On constate ainsi que les niveaux de qualité en quantification QL1, 25 QL2 de la couche D=1 pointent en 70 sur le niveau de qualité QL1 de la couche D=0 alors que le niveau de base QLO de la couche D = 1 pointe en 50 sur le niveau de base QLO de la couche D = O. Un procédé de codage scalable , ou échelonnable, consiste alors, pour une unité de données d'une couche N et d'un niveau de qualité L > 0, à 30 établir une prédiction 1. d'une part par le niveau de qualité en quantification inférieur L-1 de la couche N, et 2903555 12 2. d'autre part par un niveau de qualité en quantification de la couche N-1 dont elle dépend. De façon générale, le procédé concerne le codage d'une image ou d'une séquence d'images générant un flux de données sous forme de groupes 5 de blocs présentant une structure hiérarchique de couche de données emboîtées de niveaux n successifs, où n est entier. Chacune de ces couches correspond à une résolution et à une gamme de niveaux de qualité en quantification prédéterminées des groupes de blocs, tel que la résolution et/ou le niveau de qualité en quantification soit croissant avec l'augmentation dans 10 l'ordre des couches. Le procédé comporte une étape de codage d'un niveau de base de qualité d'au moins une des couches, de niveau n + 1, par prédiction à partir d'un niveau de qualité en quantification de la couche inférieure n, et une étape de codage d'au moins un niveau de rehaussement de qualité en quantification de la couche de niveau n+1. Pour au moins un bloc d'un groupe 15 de blocs, le codage d'au moins un niveau de rehaussement de la couche n + 1 est fait par prédiction, à partir d'un niveau de qualité en quantification de la couche inférieure n différent de celui utilisé pour le codage du niveau de qualité de base de la couche n + 1. Plus particulièrement, le déroulement général de l'algorithme de 20 codage est le suivant : Si le mode de prédiction inter-couches est activé, on signale pour chaque portion ( slice ) (dans l'en-tête de slice ) • un "updated_quality_level_base" pour faire de la prédiction adaptative inter-couche, et, de manière optionnelle, le paramètre 25 alpha, puis • pour chaque macrobloc de la portion ( slice ), un "new_pred_flag" pour définir quelle est la prédiction utilisée (prédiction par la couche du bas ou par la couche courante) Dans le mode de réalisation décrit ci-après, les notations suivantes 30 seront utilisées : - D : indice de couche (Dependency_id) 2903555 13 Rec(D,q): Point reconstruit pour la couche D, au q-ième niveau de réhaussement en qualité SNR EL(D,q): ensemble d'informations permettant de faire le réhaussement SNR de niveau q 5 - ILP(D,q): prédiction inter-couches ( inter-layer ) utilisée pour le décodage de Rec(D,q). Cette prédiction est définie de façon générale par un sur-échantillonnage de la couche de base à un certain niveau de qualité, que l'on notera par : Up(Rec(dependency_id_base, quality_level_base)) où (dependency_id_base, quality_level_base) sont définis par l'élément de 10 syntaxe base_id_plusl permettant de définir quel est le point de la couche de prédiction utilisé pour la prédiction inter-couches. II est à noter qu'il est possible d'avoir le même niveau de résolution spatiale pour les deux couches. Dans ce cas, l'opérateur de sur-échantillonnage disparaît (il est ramené à l'opérateur identité ). 15 - LLP(D,q) est le niveau de rehaussement à "combiner" à la prédiction inter-couches ILP(D,q) pour obtenir le point reconstruit Rec(D,q). II faut bien noter ici qu'il ne s'agit pas uniquement d'information à ajouter, mais aussi d'informations pouvant venir coder directement l'information utile dans le cas de la non utilisation de la prédiction inter-couches (d'où l'introduction de la 20 notation O+ au lieu de "+" pour cette addition modifiée qu'on appellera prédiction adaptative). Pred flag : drapeau( flag ) de l'en-tête des macroblocs (ou blocs) de la portion( slice ) considérée indiquant si la prédiction inter-couches est utilisée ou non pour le macrobloc. 25 Avec ces notations, on peut définir les relations suivantes: • LLP(D,q) = EL(D,0)+EL(D,1) +.. +EL(D,q) • Rec(D,q) = ILP(D,q) O+ ALP(D,q) (en prenant comme convention que pred_flag(LLP(D,q)) = pred_flag(EL(D,0))). Avec ces notations, le fonctionnement du projet de norme est le 30 suivant : prédiction inter-couches : Rec(D,0) = ILP(D,0) O+ EL(D,0) 2903555 14 -prédiction intra-couche : Rec(D,q) = Rec(D,q-1) + EL(D,q) L'opération de prédiction adaptative par e correspond à la règle d'opération suivante: predflag(b) Valeur de a b pred_flag(a O+ b) True a+b pred_flag(a) False B pred_flag(b) La figure 8 illustre un tel exemple de relation dedépendance. Sur cette figure, la flèche en pointillés représente la relation de dépendance inter-couches entre la couche 1 et la couche 0; la couche 1 dépendant sur le point reconstruit q=1 de la couche 0. Il s'agit du fonctionnement du projet de norme 10 actuel. La figure 9 illustre un exemple de mode de réalisation de l'invention en prédiction inter-couches adaptative suivant le point de décodage considéré. Sur cet exemple, on peut observer que le point de prédiction inter-couches utilisé pour les différents points de décodage de la couche 1 est variable. Ainsi 15 Rec(1,0) dépend de Rec(0,0); Rec(1,1) dépend de Rec(0,1) et Rec(1,2) dépend de Rec(0,2). Un premier avantage d'une telle dépendance adaptative est que pour les niveaux de basse qualité en quantification d'une couche supérieure, il n'est pas alors nécessaire d'avoir les niveaux de qualité en quantification supérieurs 20 de la couche de référence. Cela permet ainsi de gagner en débit sur ces premiers niveaux de décodage d'une couche supérieure. Un second avantage d'une telle dépendance adaptative est que les niveaux de qualité en quantification supérieurs d'une couche donnée peuvent également bénéficier des niveaux de qualité en quantification inférieurs de la 25 couche de référence (les informations de rehaussement en qualité de quantification supérieure de la couche de référence ne sont pas considérées comme "discardable"). Cela permet un codage plus efficace des informations de rehaussement en qualité de quantification pour cette couche. 5 2903555 15 D'un point de vue pratique cette notion de prédiction inter-couche adaptative est réalisée de façon concurrentielle par la formulation suivante pour les niveaux de qualité q>0: Re c(D, q -1) Rec(D ' q) = ILP(D,q) a.ALP(D,q -1 + EL(D,q) 5 Pour les niveaux de qualité q=0, la reconstruction est inchangée : JRe c(D,0) = ILP(D,q) EL(D,0) OLP(D,0) = EL(D,0) Deux sources de prédictions pour le rehaussement en qualité sont proposées et mises en concurrence : Rec(D,q-1): correspond au fonctionnement actuel de SVC, 10 ILP(D,q) O a OLP(D,q-1) : correspond à une version reconstruite utilisant un point de prédiction inter-couche potentiellement différent où a est un paramètre supplémentaire permettant de contrôler si cette deuxième prédiction prend en compte ou non les informations préalablement codées de rehaussement en qualité pour cette couche. 15 Cette mise en concurrence est réalisée macrobloc par macrobloc. L'indication du mode de prédiction utilisé est défini par la variable new pred_flag(EL(D,q)). Si elle vaut "false" alors, on prend le premier mode de prédiction, sinon, on prend le 2ième mode de fonctionnement. Dans tous les cas, l'information de rehaussement en qualité de 20 quantification EL(D,q) est ajoutée à l'un des prédicteurs. Par l'intermédiaire de ce mécanisme, il est possible d'avoir, pour chaque macrobloc (ou élément de sélection du mode de prédiction), une plus grande liste de prédicteurs possibles. Ainsi si l'on reprend le cas illustré sur la figure 9 : 25 • un macrobloc de Rec(1,0) a le choix entre la prédiction nulle et la prédiction venant de Rec(0,0), • un macrobloc de Rec(1,1) a le choix entre la prédiction venant de Rec(0,1) ou celle de Rec(1,0). Soit au final, par jeu de 2903555 16 combinaison, un choix potentiel entre: 0, Rec(0,0) ou Rec(0,1), et, de façon similaire, • un macrobloc de Rec(1,2) pourra avoir une prédiction inter-couche issue de : 0, Rec(0,0), Rec(0,1) ou Rec(0,2) 5 Soit encore, les différentes reconstructions possibles suivantes : pred_flag(1,0) Rec(1,0) new_pred_ Rec(1,1) new_pr Rec(1,2) flag(1,1) ed_flag (1,2) False 0 + EL(1,0) False o + EL(o) + False 0 + EL(1) EL(0)+EL(1)+EL(2) True Up(Rec(0,2)) + EL(0)+EL(1)+EL(2) True Up(Rec(0,1)) False Up(Rec(0,1)) + + EL(0)+EL(1)+EL(2) EL(0)+EL(1) True Up(Rec(0,2)) + EL(0)+EL(1)+EL(2) True Up(Rec(o,o)) + False Up(Rec(0,0)) False Up(Rec(0,0)) + EL(1,0) + EL(0)+EL(1)+EL(2) EL(0)+EL(1) True Up(Rec(0,2)) + EL(0)+EL(1)+EL(2) True Up( False Up(Rec(0,1)) + Rec(0,1)) + EL(0)+EL(1)+EL(2) EL(0)+EL(1) True Up(Rec(0,2)) + EL(0)+EL(1)+EL(2) Cette augmentation du nombre de prédicteurs permet ainsi d'obtenir un meilleur codage dans un cadre d'une sélection adaptative de ces prédicteurs. L'impact sur la syntaxe SVC va maintenant être étudié. 10 On rappelle la formule générale proposée pour la reconstruction d'un niveau de rehaussement q d'une couche D. ( Rec(D,qù1) Rec D,q)= ILP(D,q)ma.ALP(D, qù1 +EL(D,q) Il faut donc être capable de signaler dans le flux : 2903555 17 • la valeur du point de référence pour la prédiction (valeur de référence pour le terme ILP(D,q), nommé par la suite updated_quality_level_base), • le choix de l'une ou l'autre des possibilités Rec(D, q-1) ou 5 ILP(D, q) C aALP(D, q-1) • la valeur du paramètre a (type de prédiction alternative ILP) Pour chaque information de rehaussement en qualité de quantification q d'une couche D, le niveau de référence de prédiction inter couche 10 updated_quality_level_base est défini dans l'entête de chaque slice : • au niveau q=0, via le champ base_id__plusl qui définit à la fois l'indice de couche de référence (dependency_id_base) et le niveau de qualité de référence ( quality_level_base et fragment_order base ), 15 • aux niveaux q>0, en introduisant des nouveaux indicateurs des informations ( updated_quality_level_base , updated_fragment _order_base ). Dans un mode privilégié de l'invention, le champ dependency_id_base n'a pas besoin d'être mis à jour. Dans un mode privilégié de mise en oeuvre de l'invention où les 20 rehaussements en qualité de quantification sont codés en mode non progressif, seule l'information "updated_quality_level_base" est spécifiée, du fait que l'information "fragment_orderbase" n'a plus de sens. Dans un mode par défaut, updated_quality_level_base (D, q) = q, 25 autrement dit chaque niveau de qualité en quantification q de la couche D est prédit par le niveau de qualité en quantification q correspondant de la couche D-1. En conséquence, c'est le mode considéré quand l'information updated_quality_level_base n'est pas présente dans l'en-tête de slice (voir la syntaxe dans l'annexe). 30 Le type de prédiction alternative ILP (Inter Layer Prediction ù prédiction inter couches) est signalisé de la façon suivante en considérant que le 2903555 18 paramètre a permet de contrôler le type de prédiction alternative proposée au codeur/décodeur SVC. Le mode privilégié d'implémentation est de signaler cette information en en-tête de slice dans SVC. La contrainte est alors qu'il prenne la même 5 valeur pour toutes les slices au sein d'une même couche dans une NALU (voir syntaxe proposée dans l'annexe, élément alpha_idc ). Une alternative est de signaler cette information au niveau global (i.e. SPS). Ainsi, le codeur est informé du type de prédiction alternative et peut alors optimiser le nombre de buffers mémoire nécessaire au bon décodage. 10 Une autre alternative est de signaler cette information au niveau de chaque macrobloc. Dans un mode d'implémentation préféré, cette valeur sera binaire (0 ou 1), bien que dans d'autres variantes, elle puisse prendre d'autres valeurs afin de prendre en compte une prédiction partielle. 15 La signalisation de la sélection de prédiction se fait de la façon suivante. L'information de sélection entre les deux sources de prédiction disponible (i.e. champ "new_pred_flag" préalablement introduit) doit être signalée dans un flux SVC. 20 Le mode de réalisation privilégié de l'invention est de signaler cette information au niveau de chaque macrobloc. (voir syntaxe proposée dans l'annexe, élément new pred_flag ). Une alternative est de signaler cette information au niveau de la slice ou bien encore à un niveau plus global comme le SPS, c'est-à-dire au niveau 25 séquence. Dans ce cas cependant on restreint la souplesse de l'invention puisque tous les macro blocs de la slice (de la séquence) ont le même type de prédiction. II est à noter que le procédé de codage ainsi décrit s'applique à un groupe de blocs, que celui-ci corresponde à un macrobloc ou à une portion ou 30 une totalité d'images. 2903555 19 On va maintenant décrire un dispositif de codage d'une image ou d'une séquence d'images générant un flux de données sous forme de groupe de blocs présentant une structure hiérarchique de couches de données emboîtées de niveaux n successifs, où n est entier. Chacune des couches correspond à 5 une résolution et à une gamme de niveaux de qualité en quantification prédéterminées des groupes de blocs tel que la résolution et/ou le niveau de qualité en quantification soit croissant avec l'augmentation dans l'ordre des couches, au moins une couche n + 1 comportant un niveau de base de qualité et au moins un niveau de rehaussement de qualité en quantification. Le 10 dispositif comporte des moyens de codage adaptés pour coder par prédiction le niveau de base par un niveau de qualité en quantification de la couche inférieure n. Pour au moins un bloc d'un groupe de blocs, les moyens de codage sont adaptés pour coder par prédiction au moins un niveau de rehaussement de la couche n + 1 à partir d'un niveau de qualité en 15 quantification de la couche inférieure n différent de celui utilisé par le niveau de qualité de base de la couche n + 1. On prévoit de même un dispositif de décodage d'un flux de données définissant une image ou une séquence d'images sous forme de groupes de blocs présentant une structure hiérarchique de couches de données emboîtées 20 de niveau n successif, où n est entier. Chacune des couches correspond à une résolution et à une gamme de niveaux de qualité en quantification prédéterminées des groupes de blocs tel que la résolution et/ou le niveau de qualité en quantification soit croissant avec l'augmentation dans l'ordre des couches, la couche n + 1 comportant un niveau de base de qualité en 25 quantification et au moins un niveau de rehaussement de qualité en quantification. Le dispositif comporte des moyens cle décodage adaptés pour décoder par prédiction le niveau de base par un niveau de qualité en quantification de la couche inférieure n. Pour au moins un bloc d'un groupe de blocs, les moyens de décodage sont adaptés pour décoder par prédiction au 30 moins un niveau de rehaussement de la couche n + 1, à partir d'un niveau de 2903555 20 qualité en quantification de la couche inférieure n différent de celui utilisé par le niveau de qualité de base de la couche n + 1. Le flux de données est transmis sous forrne d'un signal codé par le procédé. Il comporte, pour chaque groupe de blocs, au moins un en-tête 5 renseignant sur le niveau de qualité en quantification de la couche inférieure n dont dépend le décodage par prédiction du niveau de rehaussement de qualité en quantification de la couche n + 1. Ce signal de transmission d'un flux de données est tel que l'en-tête comporte en outre une information indiquant si le niveau de rehaussement de 10 qualité en quantification de la couche n + 1 est codé par prédiction à partir du niveau de qualité en quantification inférieur de la même couche et/ou à partir d'un niveau de qualité en quantification de la couche inférieure n. Lorsque le niveau de rehaussement de qualité en quantification de la couche n + 1 dépend du niveau de qualité en quantification identique de la 15 couche inférieure n, l'en-tête ne comporte aucune information sur le niveau de qualité en quantification à utiliser pour la prédiction. On comprend que le procédé de codage peut être mis en oeuvre par un produit programme d'ordinateur téléchargeable depuis un réseau de communication et/ou enregistré sur un support lisible par ordinateur et/ou 20 exécutable par un processeur.tel que représenté sur la figure 10 et comportant une unité arithmétique et logique CPU, différents mémoires RAM et registres MO, M1, M2, M3 ainsi que des entrées/sorties I/O. 5 2903555 21 Annexe 1 Eléments de syntaxe du Joint Document 6 (projet de norme SVC) Dans la suite, on propose une syntaxe pour l'invention, basée sur la syntaxe existante du Joint Document 6 Les champs utiles à la prédiction inter ou intra-couches sont surlignés. Les champs nouveaux sont en italique. 10 2903555 22 slice_header in_scalable_extension() { C Descriptor first_mb_in_slice 2 ue(v) slice_type 2 ue(v) if( slice_type = = PR) { fragmented_flag 2 u(1) if( fragmented_flag = = 1) { fragment_order 2 ue(v) if ( fragment_order != 0) fast fragment_flag 2 u(1) } if( fragment_order = = 0) { num mbs in_slice_minusl 2 ue(v) luma_chroma_sep_flag 2 u(l) } } if( slice_type != PR I I fragment_order = = 0) { pic_parameter_set_id 2 ue(v) frame_num 2 u(v) if( !frame_mbs_only_flag) { field_pic_flag 2 u(1) if( field_pic_flag ) bottom_field_flag 2 u(1) } if( nal unit type = = 21 ) idr_pic_id 2 ue(v) if( pic_order_cnt_type = = 0) { pic_order cnt Isb 2 u(v) if( pic_order_present_flag && !field_pic_flag ) delta_pic_order_cnt_bottom 2 se(v) } if( pic_order_cnt_type = = 1 && !delta_pic_order_always_zero_flag) { delta_pic_order_cnt[ 0 ] 2 se(v) if( pic_order_present flag && !field_pic_flag ) delta_pic_order_cnt[ 1 ] 2 se(v) } } if( nal ref idc != 0 ) key_pic_flag 2 u(1) ei `%-M"., Ira 1 ,ors 2903555 23 if( slice_type != PR) { if( redundant pic_cnt_present flag ) redundant pic_cnt 2 ue(v) if( slice_type = = EB ) direct_spatial mv pred_flag 2 u(1) base_id Iii T 2 ue(v) if(base_id plusl != 0) { adaptive_prediction_flag 2 u(1) } if( slice_type = = EP I I slice_type = = EB) { num_ref idx active_override_flag 2 u(1) if( num ref idx active override_flag) { num_ref idx 1O_active_minusl 2 ue(v) if( suce type = = EB ) num ref idx 11_active minusl 2 ue(v) } } ref_pic_list_reordering() 2 if((weighted_pred_flag && slice_type = = EP ) I I (weighted bipred idc = = 1 && suce type = = EB)) { if( âdâptivë_prédict oùn flag) base~red_weighftabÎe_flag 2 u(1) if( base_pred_weight_table_ flag = = 0) pred weight_table( } if( nal_ref idc != 0) { dec ref_pic_marking() 2 if( key_pic_flag && nal_unit_type != 21 ) dec ref_pic_marking_base( ) } if( entropy_coding_mode_flag && slice_type != EI ) cabac_init_idc 2 ue(v) } if( slice_type != PR II fragment_order = = 0) { slice_qp_delta 2 se(v) if( deblocking_filter control_present_flag) { disable deblocking_idter idc 2 ue(v) if( disable_deblocking_filteridc != 1) { slice_alpha_cO_offset_div2 2 se(v) slice_beta_offset_div2 2 se(v) } } } 2903555 24 if( slice_type != PR ) if( num_slice_groups_minus1 > 0 && slice group map type >= 3 && slice group map type 0) { if ( chroma format idc > 0) { base chroma phase_x plusl 2 u(2) base chroma phase y plusl 2 u(2) } if( extended spatial_scalability = = 2) { scaled_base_left_offset 2 se(v) scaled_base_top_offset 2 se(v) scaled_base_right_offset 2 se(v) scaled base bottom offset 2 se(v) } } if( slice_type = = PR && fragment_order = = 0) { adaptive_ref fgs_flag 2 u(1) if( adaptive_ref fgs_flag) { max_diff ref scale_for zero_base_block 2 u(5) max_diff ref scale for zero_base_coeff 2 u(5) fgs_entropy_order_flag 2 u(1) } motion _refnement flag 2 u(1) } SpatialScalabilityType = spatial_scalability_type( ) } 2903555 Eléments de syntaxe du Joint Document 6 (projet de norme SVC) "Macroblock layer in scalable extension syntax" 5 2903555 26 macroblock_layer_in scalable_extension() { C Descriptor if( in_crop_window( CurrMbAddr) ) if(adaptive_prediction flag) { base_mode_flag 2 u(1) ae(v) "erg t eve if( ! base_mode flag && SpatialScalab'ilitTgpe > 0 && , v !ä in_ tra base mb( CurrMbAddr) base_mode_refinement_fÏag 2 u(1) I ae(v) } } if( ! base_mode_flg && ! base modé_refinement _flamb_type 2 ue(v) I ae(v) if( mb_type = = I_NxN && in crop_wmdow( CurrMbAddr) && intra base mb(CùrrMbAddr ) ) intra_base_flâg 2 u(1)ae(v) if( mb_type = = I_PCM) { while( !byte_aligned() ) pcm_alignment_zero_bit 2 f(1) for(i = O; i 1 ) NoSubMbPartSizeLessThan8x8Flag = 0 } else if( !direct 8x8_inference flag ) NoSubMbPartSizeLessThan8x8Flag = 0 } else { if( transform 8x8_mode_flag && mb_type = = I_NxN ) transform_size_8x8_flag 2 u(1) ae(v) mb_pred_in_scalable_extension( mb_type) 2 } if( MbPartPredMode( mb_type, 0) != Infra 16x16) { coded_block_pattern 2 me(v) 1 ae(v) 2903555 27 if( CodedBlockPatternLuma > 0 && transform_8x8_mode_flag && mb_type != I_NxN && NoSubMbPartSizeLessThan8x8Flag && !( MbPartPredMode( mb_type, 0) = = B_Direct_16x16 && !direct 8x8 inference flag) ) transform_size_8x8_flag 2 u(1) 1 ae(v) } if( CodedBlockPatternLuma > 0 1 I CodedBlockPatternChroma > 0 1 1 MbPartPredMode( mb type, 0) = = Infra 16x16) { mb_qp_delta 2 se(v) ae(v) residua_in scalable_extension() 3 1 4 } } } REVENDICATIONS 1. Procédé de codage d'une image ou d'une séquence d'images générant un flux de données sous forme de groupes de blocs présentant une structure hiérarchique de couche de données emboîtées de niveaux n successifs, où n est entier, chacune des dites couches correspondant à une résolution et à une gamme de niveaux de qualité en quantification prédéterminées desdits groupes de blocs, tel que la résolution et/ou le niveau de qualité en quantification soit croissant avec l'augmentation dans l'ordre des couches, ledit procédé comportant une étape de codage d'un niveau de base de qualité d'au moins une des dites couches, de niveau n + 1, par prédiction à partir d'un niveau de qualité en quantification de la couche inférieure n, et une étape de codage d'au moins un niveau de rehaussement de qualité en quantification de ladite couche de niveau n+1, caractérisé en ce que, pour au moins un bloc d'un groupe de blocs, le codage d'au moins un niveau de rehaussement de la couche n + 1 est fait par prédiction, à partir d'un niveau de qualité en quantification de la couche inférieure n différent de celui utilisé pour le codage du niveau de qualité de base de la couche n + 1. 2. Procédé de codage selon la revendication 1, caractérisé en ce que, pour au moins un groupe de blocs donné, le codage des niveaux de base et de rehaussement de chaque bloc du groupe de blocs sont faits par prédiction à partir d'une liste finie d'au moins 2 niveaux de qualité distincts d'encodage de la couche inférieure n. 3. Procédé de codage selon la revendication 2, caractérisé en ce que, pour au moins un groupe de blocs, à un premier niveau de rehaussement de qualité en quantification générant une qualité supérieure à celle d'un second niveau de rehaussement 2903555 29 correspond une liste de niveaux de qualité comportant au moins tous les niveaux de la liste du second niveau de rehaussement. 4. Procédé de codage selon l'une quelconque des revendications précédentes, caractérisé en ce que, pour au moins un bloc donné, 5 le codage d'un niveau de rehaussement est fait par prédiction en outre à partir du niveau de qualité immédiatement inférieur de la même couche. 5. Procédé de codage selon la revendication 4, caractérisé en ce que, à chaque groupe de blocs correspond, dans le flux de données, un 10 en-tête comportant des informations de la sélection utilisée pour effectuer la prédiction. 6. Procédé de codage selon l'une quelconque des revendications précédentes, caractérisé en ce que, par défaut, le codage de chaque niveau de rehaussement de la couche n +1 est fait par 15 prédiction à partir du même niveau de rehaussement de la couche n, ou si ce dernier n'existe pas, à partir du niveau de rehaussement maximal de la couche n. 7. Dispositif de codage d'une image ou d'une séquence d'images générant un flux de données sous forme de groupe de blocs 20 présentant une structure hiérarchique de couches de données emboîtées de niveaux n successifs, où n est entier, chacune des dites couches correspondant à une résolution et à une gamme de niveaux de qualité en quantification prédéterminées desdits groupes de blocs tel que la résolution et/ou le niveau de qualité en 25 quantification soit croissant avec l'augmentation dans l'ordre des couches, au moins une couche n + 1 comportant un niveau de base de qualité et au moins un niveau de rehaussement de qualité en quantification, ledit dispositif comportant des moyens de codage adaptés pour coder par prédiction le niveau de base par un niveau 30 de qualité en quantification de la couche inférieure n, caractérisé en ce que, pour au moins un bloc d'un groupe de blocs, les 2903555 30 moyens de codage sont adaptés pour coder par prédiction au moins un niveau de rehaussement de la couche n + 1 à partir d'un niveau de qualité en quantification de la couche inférieure n différent de celui utilisé par le niveau de qualité de base de la 5 couche n + 1. 8. Dispositif de décodage d'un flux de données définissant une image ou une séquence d'images sous forme de groupes de blocs présentant une structure hiérarchique de couches de données emboîtées de niveau n successif, où n est entier, chacune des 10 dites couches correspondant à une résolution et à une gamme de niveaux de qualité en quantification prédéterminées desdits groupes de blocs tel que la résolution et/ou le niveau de qualité en quantification soit croissant avec l'augmentation dans l'ordre des couches, la couche n + 1 comportant un niveau de base de qualité 15 en quantification et au moins un niveau de rehaussement de qualité en quantification, ledit dispositif comportant des moyens de décodage adaptés pour décoder par prédiction le niveau de base par un niveau de qualité en quantification de la couche inférieure n, caractérisé en ce que, pour au moins un bloc d'un groupe de blocs, 20 les moyens de décodage sont adaptés pour décoder par prédiction au moins un niveau de rehaussement de la couche n + 1, à partir d'un niveau de qualité en quantification de la couche inférieure n différent de celui utilisé par le niveau de qualité de base de la couche n + 1. 25 9. Signal de transmission d'un flux de données codé par le procédé selon l'une des revendications 1 à 6 et comportant, pour chaque groupe de blocs, au moins un en-tête renseignant sur le niveau de qualité en quantification de la couche inférieure n dont dépend le décodage par prédiction du niveau de rehaussement de qualité en 30 quantification de la couche n + 1. 2903555 31 10. Signal de transmission d'un flux de données selon la revendication 9, caractérisé en ce que l'en-tête comporte en outre une information indiquant si le niveau de rehaussement de qualité en quantification de la couche n + 1 est codé par prédiction à partir du 5 niveau de qualité en quantification inférieur de la même couche et/ou à partir d'un niveau de qualité de la couche inférieure n. 11. Signal de transmission d'un flux de données selon la revendication 9 ou 10, caractérisé en ce que, lorsque le niveau de rehaussement de qualité en quantification de la couche n + 1 dépend du niveau 10 de qualité en quantification identique de la couche inférieure n, l'en-tête ne comporte aucune information sur le niveau de qualité à utiliser pour la prédiction. 12. Produit programme d'ordinateur téléchargeable depuis un réseau de communication et/ou enregistré sur un support lisible par 15 ordinateur et/ou exécutable par un processeur, caractérisé en ce qu'il comprend des instructions de code de programme pour la mise en oeuvre du procédé de codage selon l'une au moins des revendications 1 à 6.