FR 2896117 A1 20070713 FR 0600139 A 20060106 Procédés de codage et de décodage d'une image ou d'une séquence d'images, dispositifs, programmes d'ordinateur, et signal correspondants. 1. Domaine de l'invention Le domaine de l'invention est celui du codage et du décodage d'images ou de séquences d'images. Plus précisément, l'invention concerne le codage et le décodage de coefficients représentatifs d'une ou plusieurs image(s), issus d'une transformation de l'image en un ou plusieurs blocs. L'invention s'applique notamment, mais non exclusivement, au codage et au décodage d'images ou de séquences vidéo d'images échelonnables (ou scalables ), présentant une structure hiérarchique en couches, ou en niveaux. Selon cette application, l'invention se positionne dans un contexte de codage vidéo scalable basé sur une transformation temporelle avec compensation en mouvement et représentation par couches avec prédiction inter-couches. 2. Art antérieur Dans un souci de simplification et de clarté, on détaille ci-après uniquement l'art antérieur relatif au codage et au décodage d'images ou de séquences d'images échelonnables. 2.1 Principe général du codage vidéo scalable 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 é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 mDdem de faible débit. Or la plupart des codeurs vidéo génèrent un seul flux compressé correspondant à l'intégralité de la séquence codée. Ainsi, si plusieurs clients souhaitent expl,hiter le fichier compressé pour décodage et visualisation, ils devront télécharger (ou streamer ) le fichier compressé complet. Il 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 di verses, et notamment les applications de : - service de vidéo à la demande (VOD, en anglais 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. ; - 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 )) ; - 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; - 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éfondre à ces différents besoins, des algorithmes de codage d'images échelonnables, ou scalables ont été développés, permettant une qualité adaptable et une résolution spatio-temporelle variable. Selon ces techniques, le codeur génère un flux compressé présentant une structure hiérarchique en 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 à 256kbits/s, qui pourra être décodé par un terminal de type PDA, et une deuxième couche de données complémentaire véhicule un flux de résolution supérieure à 256kbits/s 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. De tels algorithmes de codage sont ainsi 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. Certains de ces algorithmes de codage vidéo échelonnables sont aujourd'hui en cours d'adoption par la norme MPEG ( Moving Picture Expert Group ), dans le cadre du groupe de travail JVT ( Joint Video Team ) joint entre l'ITU ( International Telecommunication Union pour Union Internationale des Télécommunications ) et l'ISO ( International Organization for Standardization pour Organisation internationale de normalisation ). Notamment, le modèle qui a été retenu récemment par le groupe de travail JVT SVC ( Scalable Video Coding pour codage vidéo échelonnable ) est appelé JSVM ( Joint Scalable Video Model pour modèle vidéo échelonnable joint ), et est fondé sur un codeur échelonnable basé sur des solutions de type AVC ( Advanced Video Coding pour codage vidéo avancé ), avec prédiction inter-souches et décomposition temporelle par images B hiérarchiques. Ce modèle est décrit plus en détails dans le document JVT-Q202 de J. Reichel, M. Wien et H. Schwarz, intitulé Joint Scalable Video Model JSVM-4 , Octobre 2005, Nice. Le groupe de travail JVT a notamment pour objectif de proposer une norme de fourniture de flux échelonnables à grain moyen dans les dimensions temporelle, spatiale et en qualité. 2.2 Le codeur JSVM 2.2.1 Principales caractéristiques du codeur La figure 1 illustre la structure d'un tel codeur JSVM, qui présente une structure pyramidale. Les composantes d'entrée vidéo 10 subissent un sous-échantillonnage dyadique (décimation spatiale 2D référencée 11). Chacun des flux sous-échantillonnés subit ensuite une décomposition temporelle 12 de type images B hiérarchiques . Une version basse résolution de la séquence vidéo est codée jusqu'à un débit donné R_rO_max qui correspond au débit maximum décodable pour la résolution spatiale basse rO (cette version basse résolution est codée en une couche de base avec un débit R_r0_min, et des couches de réhaussement, jusqu'à atteindre le débit R_rO_max ; ce niveau de base est compatible A.VC). Les niveaux supérieurs sont ensuite codés 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 , en français échelonnabilité à grain fin ). 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. Plus précisément, les blocs de filtrage de type images B hiérarchiques 12 délivrent des informations de mouvement 16 qui alimentent un bloc de codage de mouvement 13-15, et des informations de texture 17, qui alimentent un module de prédiction inter-couches 18. Les données prédites, en sortie du module de prédiction inter-couches 18 alimentent un bloc 20 de transformation et de codage entropique, qui travaille sur des niveaux de raffinement du signal. Les données issues de ce bloc 20 servent notamment à réaliser une interpolation spatiale 2D 19 depuis le niveau inférieur. Finalement, un module de multiplexage 21 ordonne les différents sous-f ux générés dans un flux de données compressé global. 2.2.2 Codage par quantification progressive On peut notamment remarquer que la technique de codage utilisée par le codeur JSVM est une technique de quantification progressive. Plus précisément, cette technique consiste tout d'abord à quantifier avec un premier pas de quantification grossier les différents coefficients représentatifs des données à transmettre. Ensuite, les différents coefficients sont reconstruits, et la différence entre la valeur du coefficient reconstruit, et la valeur quantifiée est calculée. Selon cette technique de quantification progressive, cette différence est ensuite quantifiée avec un deuxième pas de quantification, plus fin que le premier pas. On procède ainsi itérativement, avec un certain nombre de pas de quantification. On appelle notamment passe FGS le résultat de chaque étape de quantification. Plus précisément encore, les coefficients quantifiés sont codés en deux passes, à chaque pas de quantification : une première passe de signifiance, permettant de coder les nouveaux coefficients signifiants, c'est-à-dire ceux qui ont été codés avec une valeur nulle au pas de quantification précédent. Pour ces nouveaux coefficients signifiants, on code le signe du coefficient et son amplitude. une deuxième passe de raffinement, permettant de raffiner/coder les coefficients qui étaient déjà signifiants au pas de quantification précédent. Pour ces coefficients, on code une valeur 0, +1 ou -1 de raffinement. On rappelle notamment qu'un coefficient signifiant est un coefficient dont la valeur codée est différente de zéro. 2.2.3 Codage cyclique des couches FGS Dans ur, codeur de type JSVM, les images à coder comprennent classiquement trois composantes : une composante de luminance, et deux composantes de chrominance, chacune typiquement de taille V de la composante de luminance (c'est-à-dire de largeur et hauteur deux fois plus petites). On rappelle qu'il est également possible de traiter des images ne comprenant qu'une composante de luminance. Classiquement, les images sont découpées en macro blocs de taille 16 x 16 pixels, chaque macro bloc étant ensuite redécoupé en blocs. Pour la composante de luminance, le codage des couches de raffinement est alors fait sur des blocs 4 x 4 pixels, ou bien sur des blocs 8 x 8 pixels. Pour les composantes de chrominance, le codage des couches de raffinement est fait sur des blocs 4 x 4 pixels. On explique notamment en relation avec la figure 2A l'ordre en zigzag de parcours des coefficients pour coder un bloc. Cet ordre s'explique par l'ordonnancement des fréquences spatiales dans un bloc. Plus précisément, le premier coefficient du bloc correspond à une basse fréquence (coefficient DC de la transformée en cosinus discrète DCT), et représente l'information la plus importance du groupe. Les autres coefficients correspondent aux hautes fréquences (coefficients AC de la transformée en cosinus discrète DCT), l'énergie des hautes fréquences décroissant horizontalement, verticalement et diagonalement. Ainsi, en suivant le sens de parcours zig-zag illustré en relation avec la figure 2A, on s'assure de suivre la décroissance des hautes fréquences. On obtient de cette manière une grande probabilité d'avoir des coefficients de plus en plus faibles, voire nu s. Plus précisément, pour coder un coefficient, on code à la fois des informations de signifiance, permettant d'indiquer si un coefficient est signifiant ou non signifiant, et le signe et l'amplitude du coefficient, s'il est signifiant. Classiquement, le codage des coefficients s'effectue à l'aide d'un codage par plage (c'est-à-dire qu'on regroupe tous les coefficients ayant une valeur quantifiée nulle), Autrement dit, pour coder une plage de coefficients, on code tout d'abord l'information de signifiance de tous les coefficients restant non signifiants dans l'ordre zig-zag jusqu'à atteindre un coefficient nouvellement signifiant, puis on code le coefficient nouvellement signifiant. Plus précisément, on entend par les termes plage ou groupe un groupe de coefficients dont les positions sont consécutives et contenues dans un intervalle qui commence soit au début d'un bloc, soit après la position d'un coefficient signifiant, et qui finit après le prochain coefficient signifiant si l'on considère une passe de codage (ou de décodage) de signifiance. On peut notamment parler dans ce cas de groupe de signifiance . Si l'on considère une passe de codage (ou décodage) de raffinement, on entend par plage ou groupe de coefficients le coefficient seul à raffiner. On peut notamment parler dans ce cas de groupe de raffinement . Autremeint dit, on définit le codage d'une plage comme le codage d'un coefficient nouvellement signifiant et de tous les coefficients restant non signifiants placés avant lui, si l'on est dans une passe de signifiance, et comme le codage d'un raffinement d'un coefficient déjà signifiant, si l'on est dans une passe de raffinement. Par exemple, pour coder le bloc illustré en figure 2B, on utilise les notations suivantes : S pour indiquer qu'un coefficient est signifiant ; NS pour indiquer qu'un coefficient est non signifiant ; LS pour indiquer si l'on vient ou non de coder le dernier coefficient signifiant du bloc. Plus précisément, LS peut prendre deux valeurs. Par exemple, si LS vaut 1, cela signifie que ce coefficient est le dernier coefficient signifiant du bloc : tous les coefficients positionnés après le dernier coefficient signifiant sont non signifiants. On évite ainsi de coder la signifiance de tous ces coefficients non signifiants. Ainsi, en relation avec la figure 2B, on code NS, NS, NS, S, signe du coefficient signifiant, valeur (ou amplitude) du coefficient signifiant, LS, NS, NS, NS, S, signe du coefficient signifiant, valeur (ou amplitude) du coefficient signifiant, LS. Si lors du parcours du bloc, des coefficients déjà signifiants au pas de quantification précédent (c'est-à-dire à l'itération précédente) sont atteints, on ne code rien pour cics coefficients lors de la passe de signifiance. On rappelle que le codage des couches de raffinement, dans un codeur JSVM classique tel que défini dans le document Scalable Video Coding Joint Working Draft 4 , octobre 2005, Nice, Joint Video Team de l'ISO/IEC MPEG et de l'ITU-T VCE,G, JVT-Q201, est fait de manière itérative. Ainsi, à chaque itération, on parcourt l'ensemble des macro blocs de l'image. Pour chaque macro bloc, on parcourt l'ensemble des blocs de luminance et des blocs de chrominance. Pour chaque bloc de luminance et de chrominance, on code une plage selon la technique classique, puis on passe au bloc suivant, et ainsi de suite pour tous les blocs du macro bloc. Quand tous les macro blocs ont été parcourus, on passe à l'itération suivante, dans laquelle on code pour chaque bloc la deuxième plage de chaque bloc. On itère Î.insi jusqu'à ce que tous les coefficients signifiants de tous les blocs de l'image soient codés. Ainsi, pour l'exemple illustré en relation avec la figure 2B, deux itérations sont nécessaires pour coder tous les coefficients signifiants du bloc. Il est à noter que lorsqu'on code un coefficient signifiant, il arrive que l'on code en fait plu:;ieurs coefficients, correspondant aux coefficients non signifiants placés avant le signifiant. Ainsi, le codage du deuxième coefficient signifiant d'un bloc ne signifie pas toujours que l'on code effectivement le coefficient placé en deuxième position dans le bloc suivant l'ordre zig-zag. De même, le n-ième coefficient signifiant à coder d'un bloc n'est pas nécessairement positionné au même endroit pour tous les blocs. Finalement, quand tous les coefficients signifiants de l'image sont codés, on code à l'itération suivante les coefficients raffinés. Comme précédemment, on parcourt chaque macro bloc de l'image, puis chaque bloc de luminance et de chrominance du macro bloc. Pour chaque bloc, on étudie le premier coefficient du bloc. Si le coefficient était déjà signifiant au pas de quantification précédent (c'est-à-dire à l'itération précédente), on code son raffinement, sinon on ne code rien. On passe ensuite au bloc suivant, et ainsi de suite jusqu'à avoir parcouru tous les blocs. A l'itération suivante, on code le raffinement du deuxième coefficient à raffiner de tous les blocs. On ré-itère ainsi ces opérations jusqu'à ce que tous les raffinements des coefficients à raffiner soit codés. Un paramètre permettant de contrôler l'entrelacement du codage des coefficients des composantes de chrominance et de luminance est aussi utilisé. Ainsi, pour une itération donnée, on peut coder des coefficients de luminance uniquement, ou bien des coefficients de luminance et de chrominance. Cette technique de codage par itération permet ainsi d'entrelacer les coefficients de a couche de raffinement, et d'assurer une meilleure qualité de reconstruction d'une image, notamment si la couche de raffinement est tronquée. 2.3 Syntaxe du flux SVC On présente maintenant en relation avec la figure 3 la structure du flux SVC, obtenu en sortie du module de multiplexage 21 de la figure 1. Le flux ce données compressé, en sortie du codeur, est organisé en unités d'accès AUs (de l'anglais Access Units ), correspondant chacune à un instant temporel T, et comprenant une ou plusieurs unités de données élémentaires d'accès pour le réseau (paquet) appelées NALUs (de l'anglais Network Abstraction Layer Unit ). On rappelle que chaque NALU est associée à une image ou une portion d'image regroupant un ensemble de macro blocs (encore appelée slice ) 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. Plus précisément, dans le contexte présenté ici, chaque passe FGS (ou couche de raffinement) d'une image est insérée dans une NALU. La figure 3 illustre ainsi les unités d'accès AU1 31, correspondant au temps TO, et AU2 32, correspondant au temps T1. Plus précisément, l'unité d'accès AU1 31 comprend six NALUs 311 à 316, correspondant à l'instant TO. La première NALU 311 est représentative d'un niveau spatial SO, et d'un niveau FGS/CGS E0. La deuxième NALU 312 est représentative d'un niveau spatial SO, et d'un niveau FGS/CGS E1. Finalement, la dernière NALU 316 est représentative d'un niveau spatial S2, et d'un niveau FGS/CGS El. 3. Inconvénients de l'art antérieur Un inconvénient de cette technique de codage de l'art antérieur est que pour atteindre un débit visé, il peut être nécessaire de tronquer les données constitutives des paquets, encore appelées NALUs. Or la technique classique de codage des couches de raffinement par itération, qui permet d'entrelacer les coefficients de la couche de raffinement, implique une importante complexité au décodeur, bien qu'elle offre en contrepartie une meilleure qualité de reconstruction lorsque les couches de raffinement sont tronquées soit au codeur, soit lors de la transmission, par rapport à une méthode qui traiterait séquentiellement tous les macro blocs d'une image. En effet, l'entrelacement des coefficients de chaque bloc implique des changements de contexte de décodage fréquents, donc des changements fréquents des information:; contenues dans le cache de l'ordinateur, ce qui conduit à une complexité accrue au niveau du décodage. On peut également noter que la troncature des couches de raffinement n'est pas toujours nécessaire. En effet, bien qu'elle permette d'atteindre un débit cible pour un flux codé en tronquant toutes les couches de raffinement avec le même ratio, l'utilisation des niveaux de qualité du codeur JSVM, tel que présenté par I. Amonou, N. Cammas, S. Kervadec, S. Pateux dans le document JVT-Q081 Layered quality opt of JSVM3 and closed-loop , permet d'ordonnancer les couches de raffinement des images entre elles et d'atteindre ainsi un débit cible sans tronquer les couches de raffinements, tout en en améliorant la qualité par rapport au cas où les couches de raffinement sont tronquées. Dans ce contexte, le codage par itération ne donne pas de gain en 10 compression, mais conserve une complexité plus élevé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 de 15 codage et de décodage d'images et/ou de séquences vidéo qui permette d'adapter la complexité au niveau du décodage, en fonction du type de codage utilisé. Notamment, dans le cadre d'une application au codage et au décodage d'images et/ou de séquences vidéo échelonnable reposant sur une organisation du flux de données en couches, un objectif de l'invention est de fournir une telle 20 technique constituant une amélioration de la technique du modèle JSVM proposé par le groupe de travail JVT dans le document JVT-Q202 de J. Reichel, M. Wien et H. Schwarz, intitulé Joint Scalable Video Model JSVM-4 , Octobre 2005, Nice. Un autre objectif de l'invention est de proposer une telle technique qui 25 permette de conserver la complexité d'un décodage classique dans les cas où une troncature de l'image s'impose, et de réduire la complexité de décodage dans les cas où la troncature de l'image ne s'impose pas. L'invention a encore pour objectif de fournir une telle technique qui soit simple à implémenter et peu coûteuse en termes de ressources (bande passante, capacités de traitement, etc.), et qui n'introduise pas de complexité particulière, ni de traitements importants. 5. Exposé de l'invention Ces objectifs, ainsi que d'autres qui apparaîtront par la suite, sont atteints à l'aide d'un procédé de codage d'une image ou d'une séquence d'images, générant un flux de données, chaque image étant découpée en au moins deux blocs d'image à chacun desquels est associé un bloc transformé comprenant un ensemble de coefficients, les coefficients d'un bloc transformé étant répartis en groupe(s) de coefficients selon un critère de groupement prédéterminé et un parcours de lecture prédéterminé des blocs transformés. Selon l'invention, le procédé de codage comprend, pour chacun des blocs transformés : une étape de codage d'une série de coefficients correspondant à au moins un groupe de coefficients, ladite série étant déterminée en fonction d'un type de série de coefficients sélectionné parmi au moins deux types possibles, dont : - un premier type de série selon lequel la série de coefficients comprend un nombre M prédéterminé de groupes de coefficients, - un deuxième type de série selon lequel une position maximale N prédéterminée dans le parcours étant identifiée, la série comprend le groupe comprenant la position maximale N, et tous les groupes précédents selon le parcours, s'il y en a. et une étape d'insertion dans le flux de données d'une information représentative du type de série de coefficients sélectionné pour l'image ou la séquence d'images, ou pour une portion de l'image. Ainsi, l'invention repose sur une approche tout à fait nouvelle et inventive de la sélection l'un type de série de coefficients et du codage d'une série de coefficients déterminée à partir du type sélectionné, et de l'insertion dans le flux de données du type de série sélectionné, de sorte qu'au niveau du décodage du flux de données. un décodeur puisse lire le type de série de coefficients utilisé au codage, et s'adapter automatiquement au codage utilisé pour réduire la complexité du décodage. La série de coefficients à coder peut, selon un premier type de série, comprendre un nombre M prédéterminé de groupes de coefficients. Ainsi, la série peut correspondre à un unique groupe de coefficients, à un nombre prédéterminé de groupes de coefficients (supérieur ou égal à 2), ou encore à l'ensemble des coefficients du bloc considéré. Selon un deuxième type de série, la série peut comprendre le groupe comprenant le coefficient positionné à la position N, selon un parcours de lecture prédéterminé, et tous les groupes précédents, selon le parcours de lecture prédéterminé, le groupe comprenant le coefficient positionné à la position N, s'il y en a. Avantageusement, le parcours de lecture est le parcours en zig-zag , tel que décrit en relation avec la figure 2A. Préférentiellement, le flux de données présente une structure hiérarchique en couches de données emboîtées de niveaux de raffinement successifs, et le procédé de codage met en oeuvre un codage itératif, chacune des itérations correspondant à un des niveaux et mettant en oeuvre l'étape de codage. L'invention est ainsi particulièrement bien adaptée au codage de signaux vidéo scalables. Notamment, pour le deuxième type de série : lorsque la série comprenant le groupe comprenant la position maximale N a été codée à une itération précédente, la série est vide, lorsque la série comprenant le groupe comprenant la position maximale N n'a pas été codée à une itération précédente, la série comprend le groupe comprenant la position maximale prédéterminée et tous les groupes précédents selon le parcours n'appartenant pas à une série déjà codée à une itération précédente, s'il y en a. On peut ainsi tenir compte, au cours des itérations suivantes, des coefficients déjà codés au cours des itérations précédentes. Une série vide indique ainsi qu'à une it ration précédente, les groupes compris dans la série ont déjà été codés. Selon une caractéristique avantageuse de l'invention, chacune des itérations met en oeuvre au moins l'une des passes suivantes : une passe de signifiance, une passe de raffinement, l'étape de codage s'appliquant à la ou aux passes mises en oeuvre, et un paramètre indiquant le type de la ou des passes mises en oeuvre accompagne l'information représentative du type de série de coefficients. Il est ainsi possible de coder dans le flux diverses informations, qui permettrons au décodeur de s'adapter facilement à la technique de codage utilisée, et donc de simpl (fier la complexité du décodage. Notamment, lorsque la passe est une passe de signifiance, le critère de groupement prédéterminé définit un groupe comme un ensemble de coefficients successifs non signifiants, et se terminant par le premier coefficient signifiant rencontré selon le parcours de lecture. Lorsque la passe est une passe de raffinement, le critère de groupement prédéterminé définit un groupe comme un unique coefficient signifiant. Avantageusement, l'information représentative du type de série de coefficients est accompagnée d'une information de mise en oeuvre, comprenant un vecteur définissant la valeur du nombre M ou de la position N pour chaque itération. Ce vecteur peut être connu par défaut, donc préalablement déterminé, ou directement codé dans le flux. Ce vecteur permet ainsi de définir les positions N de coefficients à atteindre à chaque itération. Par exemple, ce vecteur vaut [1,3,10,16] pour un bloc de taille 4 x 4 , ou [3,10,36,64] pour un bloc de taille 8x8. L'information de mise en oeuvre peut également préciser le nombre de plages à coder (en définissant le nombre de groupes M). Selon une caractéristique avantageuse de l'invention, une image source est décomposée en au moins deux composantes à coder, et le codage est appliqué à chacune des composantes. Par exemple, une image comprend une composante de luminance et deux composantes de chrominance, et le codage est appliquée à chacune de ces trois composantes. L'invention concerneégalement un dispositif de codage d'une image ou d'une séquence d'images, générant un flux de données, chaque image étant découpée en au moins deux blocs d'image à chacun desquels est associé un bloc transformé comprenant un ensemble de coefficients, les coefficients d'un bloc transformé étant répartis en groupe(s) de coefficients selon un critère de groupement prédéterminé et un parcours de lecture prédéterminé des blocs transformés. Selon l'invention, un tel dispositif comprend : des moyens de codage d'une série de coefficients correspondant à au moins un groupe de coefficients, la série étant déterminée en fonction d'un type de série de coefficients sélectionné parmi au moins deux types possibles, dont : - un premier type de série selon lequel la série de coefficients comprend un nombre M prédéterminé de groupes de coefficients, - un deuxième type de série selon lequel une position maximale N prédéterminée dans le parcours étant identifiée, la série comprend le groupe comprenant la position maximale N, et tous les groupes précédents selon le parcours, s'il y en a, et des moyens d'insertion dans le flux de données d'une information représentative du type de série de coefficients sélectionné pour l'image ou séquence d'images, ou pour une portion de l'image. Un tel dispositif peut notamment mettre en oeuvre le procédé de codage tel que décrit précédemment. Notamment, le flux de données peut présenter une structure hiérarchique en couches de données emboîtées de niveaux de raffinement successifs, et les moyens de codage peuvent mettre en oeuvre un codage itératif, chacune des itérations correspondant à un des niveaux. L'invention concerne également un procédé de décodage d'un flux de données représentatif d'une image ou d'une séquence d'images, chaque image étant découpée en au moins deux blocs d'image à chacun desquels est associé un bloc transformé comprenant un ensemble de coefficients, les coefficients d'un bloc transformé étant répartis en groupe(s) de coefficients selon un critère de groupement prédéterminé et un parcours de lecture prédéterminé des blocs transformés. Selon l'invention, un tel procédé de décodage comprend : une étape de lecture d'un type de série de coefficients appliqué à l'image ou séquence d'images, ou à une portion de l'image, parmi au moins deux types possibles, dont : - un premier type de série selon lequel la série de coefficients comprend un nombre M prédéterminé de groupes de coefficients, - un deux ème type de série selon lequel une position maximale N prédéterminée dans le parcours étant identifiée, la série comprend le groupe comprenant la position maximale N, et tous les groupe(s) précéden1(s) selon le parcours, s'il y en a, et une étape de décodage prenant en compte, pour chaque bloc transformé, une série de coefficients selon le type de série de coefficients délivré par l'étape de lecture. Un tel procédé de décodage est notamment adapté à recevoir un flux de donné codé selon le procédé de codage décrit précédemment. Ainsi, le flux de données peut présenter une structure hiérarchique en couches de données emboîtées de niveaux de raffinement successifs. Notamment, si le flux a subi un codage itératif, chacune des itérations correspondant à un des niveaux, on a pour le deuxième type de série : lorsque la série comprenant le groupe comprenant la position maximale N a été codée à une itération précédente, la série est vide, lorsque la série comprenant le groupe comprenant la position maximale N n'a pas été codée à une itération précédente, la série comprend le groupe comprenant la position maximale prédéterminée, et tous les groupes précédents selon le parcours n'appartenant pas à une série déjà codée à une itération précédente, s'il y en a. L'invention concerne encore un dispositif de décodage d'un flux de données représentatif d'une image ou d'une séquence d'images, chaque image étant découpée en au moins deux blocs d'image à chacun desquels est associé un bloc transformé comprenant un ensemble de coefficients, les coefficients d'un bloc transformé étant répartis en groupe(s) de coefficients selon un critère de groupement prédéterminé et un parcours de lecture prédéterminé des blocs transformés. Selon l'invention, un tel dispositif de décodage comprend : des moyens de lecture d'un type de série de coefficients appliqué à l'image ou séquence d'images, ou à une portion de l'image, parmi au moins deux types possibles, dont : - un premier type de série selon lequel la série de coefficients comprend un nombre M prédéterminé de groupes de coefficients, - un deuxième type de série selon lequel une position maximale N prédéterminée dans le parcours étant identifiée, la série comprend le groupe comprenant la position maximale N, et tous les groupes précédents selon le parcours, s'il y en a, et des moyens de décodage prenant en compte, pour chaque bloc transformé, une série de coefficients selon le type de série de coefficients délivré par l'étape de lecture. Un tel dispositif peut notamment mettre en oeuvre le procédé de décodage tel que décrit précédemment. Il est par conséquent adapté à recevoir un flux de donnés codé par le dispositif de codage décrit précédemment. Le flux de données peut notamment présenter une structure hiérarchique en couches de données emboîtées de niveaux de raffinement successifs. L'invention concerne encore un signal représentatif d'un flux de données, représentatif d'une image ou d'une séquence d'images, chaque image étant découpée en au moins deux blocs d'image à chacun desquels est associé un bloc transformé corn Grenant un ensemble de coefficients, les coefficients d'un bloc transformé étant répartis en groupe(s) de coefficients selon un critère de groupement prédéterminé et un parcours de lecture prédéterminé des blocs transformés. Selon l'invention, un tel signal porte une information représentative d'un type de série de coefficients appliqué à l'image ou séquence d'images, ou à une portion de l'image, parmi au moins deux types possibles, dont : - un premier type de série selon lequel la série de coefficients comprend un nombre M prédéterminé de groupes de coefficients, - un deux [ème type de série selon lequel une position maximale N prédéterminée dans le parcours étant identifiée, ladite série comprend le groupe comprenant la position maximale N, et tous les groupes précédents selon le parcours, s'il y en a. Un tel signal peut notamment représenté un flux de données codé selon le procédé de codage décrit ci-dessus. Ce signal pourra bien sûr comporter les différentes caractéristiques relatives au procédé de codage selon l'invention. Ainsi, le flux de données peut notamment présenter une structure hiérarchique en couches de données emboîtées de niveaux de raffinement successifs, ledit flux ayant subi un codage itératif, chacune des itérations correspondant à un desdits niveaux. Dans ce cas, pour le deuxième type de série : lorsque la série comprenant le groupe comprenant la position maximale N a été codée à une itération précédente, la série est vide, lorsque la série comprenant le groupe comprenant la position maximale N n'a pas été codée à une itération précédente, la série comprend le groupe comprenant la position maximale prédéterminée, et tous les groupes précédents selon le parcours n'appartenant pas à une sifrie déjà codée à une itération précédente, s'il y en a. Finalement, l'invention concerne un produit programme d'ordinateur téléchargeable c epuis 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é de codage tel décrit précédemment, et 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 du procédé de décodage décrit précédemment. 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, donné à titre de simple exemple illustratif et non limitatif, et des dessins annexés, parmi lesquels : la figure 1, déjà décrite en relation avec l'art antérieur, présente un codeur de type JSVM; - les figures 2A et 2B, également présentées en relation avec l'art antérieur, illustrent le parcours en zig-zag des coefficients des blocs composant une image ; la figure 3, également présentée en relation avec l'art antérieur, décrit la structure d'un flux de type SVC selon l'art antérieur ; la figure 4 présente le principe général du procédé de codage selon l'inventicn ; les figurc-s 5A à 5D illustrent différents types de série possibles pour le codage des coefficients d'un bloc selon le procédé de la figure 4 ; - la figure 6 présente les bandes de fréquence d'un vecteur par défaut considéré pour un bloc de taille 4 x 4 selon une variante de l'invention ; le figure 7 décrit le principe général du procédé de décodage selon l'inventicn ; les figures 8 et 9 présentent respectivement la structure matérielle simplifiée d'un dispositif de codage et d'un dispositif de décodage selon l'invention. 7. Description d'un mode de réalisation de l'invention Le principe général de l'invention repose sur le codage d'une série de coefficients parmi un ensemble de coefficients représentatifs d'une image, la série à coder étant déterminée en fonction d'un type de série de coefficients sélectionné parmi au moins deux types. On considère selon l'invention une image découpée en au moins deux blocs, à chacun desquels est associé un bloc transformé, par exemple par l'intermédiaire d'une transformée en cosinus discrète (DCT pour discrete cosine transform en anglais). Par souci de simplification et pour la clarté de la description, on entend par la suite par le terme bloc un bloc issu du découpage et de la transformation de l'image. De plus, dans un souci de simplification et de clarté, on détaille ci-après uniquement un mode de réalisation préférentiel de l'invention, permettant le codage et le décodage d'images ou de séquences d'images échelonnables. L'Homme du Métier étendra facilement cet enseignement au codage et au décodage d'images ou de séquences d'images non échelonnables. Le procédé de codage selon ce mode de réalisation préférentiel de l'invention est avantageusement un procédé itératif, codant à chaque itération un niveau de la structure hiérarchique en couches de données emboîtées générant le flux de données. Ainsi, à chaque itération, on parcourt bloc par bloc la ou les images (ou les portions d'images), et on code au moins certains coefficients de chacun des blocs, selon le type de série de coefficients, sélectionné parmi au moins deux types possibles. Selon ce mode de réalisation préférentiel de l'invention, les coefficients peuvent être codés en une ou deux passes à chaque itération, selon une passe de signifiance, permettant de coder les nouveaux coefficients signifiants, c'est-à-dire ceux qui ont été codés avec une valeur nulle à l'itération précédente, et/ou selon une passe de raffinement, permettant de raffiner/coder les coefficients qui étaient déjà signifiants à l'itération précédente. On entend ainsi par groupe de coefficients (ou plage ) : un groupe de coefficients dont les positions sont consécutives et contenues dans un intervalle qui commence soit au début d'un bloc, soit après la position d'un coefficient signifiant, et qui finit après le prochain coefficient signifiant si l'on considère une passe de codage (ou de décodage) de signifiance, le coefficient seul à raffiner si l'on considère une passe de codage (ou décodage) de raffinement. On appel le notamment groupe de signifiance un groupe obtenu au cours d'une passe de signifiance, et groupe de raffinement un groupe obtenu au cours d'une passe de raffinement. On présente désormais, en relation avec la figure 4, le principe général du procédé de codage selon ce mode de réalisation préférentiel de l'invention. Selon ce mode de réalisation préférentiel, les composantes d'entrée vidéo 41 (image, séquences d'images, ou portion d'image) subissent tout d'abord un traitement 42 permettant de les découper en au moins deux blocs, et d'associer à chacun de ces blocs un bloc transformé comprenant un ensemble de coefficients. Au cours d'une étape de sélection 43 suivante, un type de série de coefficients est choisi parmi au moins deux types possibles. Plus précisément, le type de série de coefficients est choisi parmi plusieurs types possibles, dont un premier type selon lequel une série de coefficients correspond à m groupes de coefficients, où M est un entier prédéterminé, et un second type selon lequel une série comprend un groupe comprenant le coefficient positionné à une position maximale N prédéterminée, et tous les groupes précédents ce groupe dans le parcours de lecture en zig-zag, s'il y en a. Plus précisément, on considère que lorsque la série comprenant le groupe comprenant le coefficient localisé à la position N a déjà été codée à une itération précédente, la série considérée à l'itération courante est nulle. En revanche, lorsque la série comprenant le groupe comprenant le coefficient localisé à la position N n'a pas déjà été codée à une itération précédente, la série considérée à l'itération courante comprend un groupe comprenant le coefficient positionné à la position N, et taus les groupes précédents ce groupe dans le parcours de lecture en zig-zag, s'il y en a. Le nom ire N correspond ainsi à une position dans le bloc considéré, suivant le parcours zig-zag, définie en fonction de l'itération et donnée par un vecteur connu par défaut ou codé dans le flux. Par exemple, ce vecteur par défaut vaut [1,3,10,161 pour un bloc de taille 4 x 4 , ou [3,10,36,64] pour un bloc de taille 8 x 8 . Selon cc mode de réalisation préférentiel de l'invention, une série peut ainsi corresponc re : à un groupe de coefficients (par la suite, on note ce codage, selon lequel M = 1, mode 0 ) ; à l'ensemble des coefficients du bloc considéré (on note ce codage mode 1 par la suite) ; - à un ensemble de groupes défini en fonction d'une position maximale N fonction de l'itération (on note ce codage mode 2 par la suite) ; ou encore à m groupes de coefficients (on note ce codage mode 3 par la suite,L Les figures 5A à 5D illustrent notamment ces différentes séries pour le codage des coefficients d'un bloc, lors d'un parcours des coefficients dans l'ordre zig-zag comme décrit en relation avec l'art antérieur. La figure 5A présente ainsi le codage d'une série de coefficients de premier type selon le mode 0 . La série 51 correspond dans ce cas à un unique groupe. On rappelle qu'un `0' signifie que le coefficient n'est pas un coefficient nouvellement signifiant (on l'a codé à l'itération précédente comme étant un coefficient signifiant, ou on l'a codé comme étant un coefficient non signifiant et il reste dans l'état non signifiant à cette itération courante), et qu'un `1' signifie que le coefficient est nouvellement signifiant (il a été codé à l'itération précédente avec une valeur nulle et devient signifiant à l'itération courante). La série 51 correspond donc au groupe 0 ,0 ,0 ,1, signe coefficient, valeur coefficient. La figure 5B illustre le codage d'une série de coefficients de deuxième type selon le mode 2 , en considérant N égal à 6 : la série 52 comprend le groupe comprenant le coefficient localisé à la position 6 (référencée 521 sur la figure 5B), suivant le parcours zig-zag du bloc, et le groupe précédent ce groupe dans l'ordre de parcours, si ces groupes ne comprennent pas des coefficients déjà codés à une itér La figure 5C illustre le codage d'une série de coefficients de premier type selon le mode 3 , selon lequel la série 53 correspond à m groupes de coefficients, avec M = 2. Finalement, la figure 5D le codage d'une série de coefficients de premier type selon le mode 1 , selon lequel la série 54 correspond à l'ensemble des coefficients du bloc considéré. En revenant à la figure 4, une fois le type de série de coefficients sélectionné, le procédé de codage selon ce mode de réalisation préférentiel de l'invention code, pour un premier niveau de la structure hiérarchique en couches successives (première itération), au cours de l'étape de codage 44, une série de coefficients du premier bloc, déterminée en fonction du type sélectionné, puis du deuxième bloc, et ainsi de suite jusqu'au dernier bloc (45). On passe ensuite à un deuxième niveau de la structure hiérarchique en couches successives (deuxième itération 46), et on code de nouveau une série de coefficients du premier bloc, déterminée en fonction du type sélectionné, puis du deuxième bloc, et ainsi de suite jusqu'au dernier bloc (45) du deuxième niveau. On code ainsi chaque couche de données de la structure hiérarchique. On rappelle que pour le deuxième type de série, si la série comprenant le groupe comprenant la position maximale N a été codée à une itération précédente, la série est vide, sinon la série comprend le groupe comprenant la position maximale prédéterminée, et tous les groupes précédents selon le parcours de lecture (si de tels groupes existent). Pour le mode 0 et le mode 3, si il ne reste plus de groupes à coder, la série est vide. Une fois les différents niveaux et les différents blocs codés, le codeur selon l'invention délivre un flux de données global 47, dans lequel est inséré une information représentative du type de série de coefficients sélectionné pour l'image ou la séquence d'images, ou pour une portion de l'image. Ainsi, un décodeur peut lire l'information représentative du type de série de coefficients sélectionné et s'adapter automatiquement au mode de codage utilisé, notamment pour le décodage des couches de raffinement. L'invention offre ainsi la possibilité d'avoir un décodage à faible complexité ou a complexité adaptative. Cette information représentative du type de série de coefficients sélectionné peut également être accompagnée d'une information de mise en oeuvre, comprenant par exemple un vecteur définissant la valeur du nombre M ou la position N polir chaque itération. Ainsi, le flux de données codées 47 peut porter deux éléments d'information indiquant d'une part le type de série de coefficients sélectionné, utilisé notamment par le décodeur pour le décodage des couches de raffinement, et d'autre part un ou plusieurs bits pour le vecteur définissant les positions de coefficients à atteindre à chaque itération si le codage met en oeuvre le mode 2 (en définissant la position N), ou le nombre de plages à coder si le codage met en oeuvre le mode 3 (en définissant le nombre de groupes M). Selon le mode de réalisation préférentiel de l'invention décrit, ces éléments d'information sont insérés dans le flux 47 dans l'en-tête des paquets de données relatives à une image temporelle ou une portion d'image (encore appelée slice ), c'est-a-dire dans l'en-tête des paquets de données de chaque couche de la structure hiérarchique. De plus, il est également possible d'ajouter dans le flux 47 un paramètre, noté binterlacedSigRef par la suite, qui indique si pour une itération donnée, on code des groupes de coefficients de signifiance et/ou des groupes de coefficients de raffinement. Ce procédé est également remarquable en ce qu'il peut prévoir de n'utiliser que le deuxième type de série pour déterminer la série de coefficients à 5 coder. On présente désormais en relation avec l'annexe A, qui fait partie intégrante de la présente description, un exemple de syntaxe de l'en-tête des images scalables, dans laquelle les éléments insérés dans le flux 47 selon l'invention figurent en italique. La sémantique associée à cette syntaxe est plus 10 précisément décrite dans le document Scalable Video Coding Joint Working Draft 4 , Joint Video Team (JVT) de l'ISO/IEC MPEG et l'ITU-T VCEG, JVTQ201, Octobre 2005, Nice. On décrit ci-après uniquement la structure des éléments insérés dans le flux 47 selon le mode de réalisation préférentiel de l'invention : if( slice_type = = PR ) { fgs_coding_mc de 2 u(2) if( fgs_coding_~node = = 2 ) { vect4x4_presenceJlag 2 u(1) vect8x8_presence_ lag 2 u(1) if( vect4x4_presencejlag II vect8x8_presencejlag ) { num_ iter_coded 2 ue(v) for( i = 0; i On rappelle notamment que le premier type de série détermine une série de coefficients comprenant un nombre M prédéterminé de groupes de coefficients : si M = 1, on note ce codage mode 0 , si M comprend l'ensemble des coefficients du bloc considéré, on note ce codage mode 1 , et si M correspond à un entier prédéterminé de groupes de coefficients, on note ce codage mode 3 . Le deuxième type de série ( mode 2 ) détermine une série de coefficients comprenant : le groupe comprenant la position N et tous les groupes le précédent selon le parcours de lecture (s'ils existent), si le groupe comprenant la position N n'a pas été codé à une itération précédente ; sinon une série vide. Par abus de langage, on note également mode 0 , mode 1 , mode 2 et mode 3 les modes de décodage correspondants. Ainsi, si le champ fgs_coding_mode prend la valeur 0, il indique que le codage est effectué selon le premier type de série de coefficients, selon le mode 0 , et donc que le décodage doit permettre de décoder un groupe par bloc pour chacun des blocs à chaque itération. La valeur 1 indique que le codage est effectué selon le premier type de série de coefficients, selon le mode 1 , et donc que le décodage doit permettre de décoder tous les coefficients de chacun des blocs en une seule itération. Ce mode 1 correspond à un décodage à faible complexité des couches de raffinement, où tous les groupes de type signifiant et/ou raffiné d'un bloc sont décodés en une itération. La valeur 2 indique que le codage est effectué selon le deuxième type de série de coefficients, selon le mode 2 , et donc que le décodage doit permettre de décoder à chaque itération un ensemble de groupes jusqu'à atteindre une position N, cette position étant définie à chaque itération, par défaut ou dans un vecteur fixe ou variable. Finalement, la valeur 3, indique que le codage est effectué selon le premier type de série de coefficients, selon le mode 3 , et donc que le décodage doit permettre de décoder à chaque itération un nombre M de groupes. Ce nombre M peut être constar t. Les drapeaux vect4x4_presence_flag et vect8x8_presence_flag indiquent respectivement la présence de vecteurs définissant la position maximale N, dans le cas du mode 2, pour des blocs de tailles 4 x 4 pixels et pour des blocs de tailles 8 x 8 pixels. Plus pré zisément, si la valeur d'un des drapeaux vaut 1, le vecteur correspondant à :,e drapeau est présent dans le flux. De plus, dans le cas du mode 2, la variable num_iter_coded indique le nombre de valeurs contenues dans le vecteur pour les blocs 4 x 4 et/ou pour les blocs 8 x 8 . La variable scanlndex_blk4x4[i] indique la position maximale d'un coefficient d'un bloc 4 x 4 jusqu'à laquelle les groupes doivent être décodés à l'itération i. La variable scanlndex_blk8x8[i] indique la position maximale d'un coefficient d'un bloc 8 x 8 jusqu'à laquelle les groupes doivent être décodés à l'itération i. Si le mode est le mode 2, et que le vecteur pour un bloc 4 x 4 (respectivement 8 x 8) n'est pas présent, ce vecteur est déduit du vecteur pour un bloc 8 x 8 (respectivement 4 x 4) en divisant les valeurs de ce vecteur par 4 (respectivement , n multipliant les valeurs de ce vecteur par 4). Si aucun des vecteurs n'est présent, on choisit d'utiliser des vecteurs par défaut de valeur [1,3,10,16] pour un bloc 4 x 4 et [3,10,36,64] pour un bloc 8x8. Ainsi, claque valeur par défaut correspond à une zone de fréquence prédéterminée da bloc de coefficients, l'indice de position allant de 1 à 16 pour les blocs 4 x 4, de 1 à 64 pour les blocs 8 x 8 ). La figure 6 illustre notamment les bandes de fréquence du vecteur par défaut considéré pour un bloc de taille 4 x 4 . La référence 61 désigne ainsi la position 1 selor le parcours de lecture en zig-zag, la référence 62 illustre la position 3, la référence 63 illustre la position 10, et la position 64 illustre la position 16, définies dans le vecteur [1, 3,10,16 . Dans le cas du mode 3, la variable num_plage_coded indique le nombre de plages ou groupes à décoder à chaque itération. Finalement, dans tous les modes 0 à 3 décrits ci-dessus, si la variable interlaced_sig;_ref_flag vaut 1, des plages de signifiance et des plages de raffinement ;ont décodées à chaque itération. Si en revanche interlaced_sig_ref_flag vaut 0, des plages de signifiance ou des plages de raffinement soin: décodées à chaque itération. Dans ce dernier cas, les plages de raffinement ne sont décodées que lorsque toutes les plages de signifiance de l'image ont été décodées. On présente désormais en relation avec la figure 7 le principe général du procédé de décodage selon l'invention. On rappelle notamment que le choix de la méthode de décodage est donné par la valeur fgs_coding_mode, présente dans le flux de données, et que le décodeur vient lire. Comme indiqué précédemment, on distingue selon ce mode de réalisation préférentiel de l'invention quatre modes de décodage des couches de raffinement, se distinguant par le nombre de plages à décoder à chaque itération : le mode 0 : à chaque itération une plage par bloc est décodée ; - le mode 1 : à chaque itération toutes les plages de chaque bloc sont décodées ; - le mode 2 : à chaque itération, un nombre de plages est décodé jusqu'à atteindre une position N dans le bloc, N étant fonction de l'itération ; le mode 3 : à chaque itération, un nombre constant M de plages est décodé. On introluit tout d'abord quelques notations utilisées dans la suite de la description : iter correspond au nombre d'itérations effectuées au cours du décodage ; completeLumaSig est une valeur booléenne indiquant si tous les groupes de signifiance de tous les blocs de luminance ont été décodés ; completeLumaRef est une valeur booléenne indiquant si tous les groupes de raffinement de tous les blocs de luminance ont été décodés ; completeChromaSig est une valeur booléenne indiquant si tous les groupes cle signifiance de tous les blocs de chrominance ont été décodés ; completeChromaRef est une valeur booléenne indiquant si tous les groupes de raffinement de tous les blocs de chrominance ont été décodés ; bInterlac edChroma est une valeur booléenne indiquant si des groupes de bloc de 'chrominance et de luminance sont décodés lors d'une même itération interlaced_sig_ref flag est une valeur booléenne indiquant si les groupes de signifiance et de raffinement sont entrelacés. Sa valeur est décodée du flux ; completeLumaSigBl(iBloc) est une valeur booléenne indiquant si tous les groupes ce signifiance d'unbloc de luminance iBloc ont été décodés ; completeLumaRefBl(iBloc) est une valeur booléenne indiquant si tous les groupes c.e raffinement d'un bloc de luminance iBloc ont été décodés ; completeChromaSigBl(iBloc) est une valeur booléenne indiquant si tous les groupes de signifiance d'un bloc de chrominance iBloc ont été décodés ; completeChromaRefB1(iBloc) est une valeur booléenne indiquant si tous les groupes de raffinement d'un bloc de chrominance iBloc ont été décodés. Initialisai ion : Lors d'une étape 71 d'initialisation, le paramètre iter prend la valeur 0, completeLumaSig prend la valeur FAUX, completeLumaRef prend la valeur FAUX, completeChromaSig prend la valeur FAUX, completeChromaRef prend la valeur FAUX. Pour tous les blocs iBloc de l'image, completeLumaSigBl(iBloc) prend la valeur FAUX, completeLumaRefBl(iBloc) prend la valeur FAUX, completeChromaSigBl(iBloc) prend la valeur FAUX, completeChromaRefB1(iBloc) prend la valeur FAUX. Parcours des macro blocs : On parc,Durt ensuite, au cours d'une étape 72, chaque macro bloc de l'image. Pour chaque macro bloc, on regarde la valeur de la variable completeLumaSig au cours d'une étape 73 Test completeLumaSig . Si la variable completeLumaSig vaut FAUX (731), on décode au cours d'une étape 74 la passe de signifiance, pour chaque bloc de luminance du macro bloc et l'on passe ensuite à l'étape 75. Quand la valeur de la variable completeLumaSig passe à VRAI (732), on regarde la valeur de la variable interlaced_sig_ref, au cours d'une étape de test 75 test interlaced_sig_ref . Ce test rend VRAI (751) si interlaced_sig_ref vaut VRAI ou si completeLumaSig vaut VRAI, et si completeLumaRef vaut FAUX. Sinon (752) ce test rend FAUX. Si le test interlaced_sig_ref vaut VRAI, on décode au cours d'une étape 76 la passe de raffinement, pour chaque bloc de luminance du macro bloc. On regarde ensuite la variable bInterlacedChroma, au cours d'une étape de test 77 test bInterlacedChroma . Ce test rend VRAI (771) si bInterlacedChroma vaut VRAI, et si iterChroma(iter) rend VRAI, ou si completeLumaiSig vaut VRAI et completeLumaRef vaut VRAI. Si le "test bInterlacedChrrra" 77 vaut FAUX (772), on passe alors à l'étape 82. Si le test bInterlacedChroma 77 vaut VRAI (771), on regarde la valeur de la variable completeChroraSig au cours d'une étape 78 Test completeChromaSig . Si completeChromaSig vaut FAUX (781), on décode, pour chaque bloc de chrominance du macro bloc, la passe de signifiance, au cours d'une étape 79. On teste ensuite de nouveau la variable interlaced_sig_ref au cours d'une étape de test 80. Ce test rend VRAI (801) si interlaced_sig_ref vaut VRAI ou si completeChromaSig vaut VRAI, et si completeChromaRef vaut FAUX. Sinon (802) ce test rend FAUX. Si le test rend VRAI (801), on décode au cours d'une étape 81 la passe de raffinement pour chaque bloc de chrominance du macro bloc, puis on va à l'étape 82. On teste finalement au cours d'une étape 82 si le macro bloc considéré est le dernier macro bloc de l'image ou de la portion courante de l'image. S'il n'est pas le dernier (821), on réitère (83) sur le macro bloc suivant. Si le macro bloc considéré est le dernier macro bloc de l'image ou de la portion courante de l'image (822), on passe à l'étape 84 de mise à jour de la variable completeSig,Ref. On effectue ensuite le test fin 85. Mise à jour (84) de la variable completeSig,Ref : L'étape de mise à jour de la variable completeSig,Ref met à jour les variables completeLumaSig, completeLumaRef, completeChromaSig et completeChromaRef. Plus précisément : -completeLumaSig prend la valeur VRAI si, pour tous les blocs iBloc de l'i mage, completeLumaSigBl(iBloc) vaut VRAI. completeLumaRef prend la valeur VRAI si, pour tous les blocs iBloc de l'i mage, completeLumaRefB1(iBloc) vaut VRAI. - completeChromaSig prend la valeur VRAI si, pour tous les blocs iBloc de l'image, completeChromaSigBl(iBloc) vaut VRAI. -completeChromaRef prend la valeur VRAI si, pour tous les blocs iBloc de l'image, completeChromaRefBl(iBloc) vaut VRAI. Test fin (85) : Le test fin rend VRAI (851) si completeLumaSig vaut VRAI, completeLumaRef vaut VRAI, completeChromaSig vaut VRAI, et si completeChromaRef vaut VRAI. Si le test fin vaut FAUX (852), on passe à l'itération suivante (iter++), sinon le décodage se termine (86). Fonction iterChroma(iter) : Cette fonction rend VRAI si les plages de luminance et de chrominance sont entrelacées et si, à l'itération iter, des plages de chrominance doivent être décodées. Cette fonction permet de contrôler l'entrelacement des coefficients de chrominance et Je luminance. Par exemple dans le codeur/décodeur JSVM4, tel que défini dans le document Joint Scalable Video Model JSVM-4 , Octobre 2005, Nice, JVT- Q202, il est proposé de ne décoder une passe de chrominance que toutes les trois passes de décodage de signifiance, soit iterChroma(iter) vaut VRAI si (iter+offset_iter) modulo 3 vaut O. Le paramètre offset_iter est un paramètre permettant de définir à quelle itération de codage de luminance sera codée la première itératicn de codage de chrominance. Décodage des passes de signifiance et de raffinement : On rappelle tout d'abord que le décodage de groupes correspond : - dans le cas d'une passe de signifiance : au décodage de tous les coefficients restant non signifiants positionnés entre le début du bloc (ou juste après un coefficient signifiant) et juste avant le coefficient nouvellement signifiant suivant ; et - au décodage du coefficient nouvellement signifiant suivant. dans le cas d'une passe de raffinement : au décodage du raffinement du coefficient déjà signifiant. Le parcours des coefficients est fait dans l'ordre zig-zag. Le décodage des blocs de chrominance et des blocs de luminance est fait de la même manière. Dans le cas du mode 0, pour chaque bloc, on décode un groupe. Si on est à la fin du bloc, on positionne le paramètre booléen completeCompPassBl du bloc courant à VRAI, où la variable Comp indique Luma si le bloc est un bloc de luminance, ou Chroma si le bloc est un bloc de chrominance, et la variable Pass indique Sig si la passe décodée est une passe de signifiance, et Ref si la passe décodée est une passe de raffinement. Dans le cas du mode 1, pour chaque bloc, on décode tous les groupes et on positionne completeCompPassBl du bloc courant à VRAI. Dans le (cas du mode 2, pour chaque bloc, on définit la position maximale N dans le bloc qui est égale à scanlndex_blkkxk[i], où i est le numéro de l'itération courante et k x k est le type du bloc (4 x 4 ou 8 x 8 pour un bloc de luminance, ou 4 x 4 pour un bloc de chrominance). On décode ensuite des plages tant que la position du dernier coefficient décodé est inférieure à la position N. Si on est à la fin du bloc, on positionne completeCompPassBl du bloc courant à VRAI. Dans le cas du mode 3, pour chaque bloc, on décode un nombre de groupes égal à rium_plage_coded (num_plage_coded = M). Si on est à la fin du bloc, on positionne completeCompPassBl du bloc courant à VRAI. On présente désormais, en relation avec la figure 8, la structure matérielle d'un dispositif de codage d'une image ou d'une séquence d'images mettant en oeuvre la méthoc.e de codage décrite ci-dessus. Un tel di spositif de codage comprend une mémoire M 87, une unité de traitement P 88, équipée par exemple d'un microprocesseur P, et pilotée par le programme d'ordinateur Pg 89. A l'initialisation, les instructions de code du programme d'ordinateur Pg 89 sont par exemple chargées dans une mémoire RAM avant d'être exécutées par le processeur de l'unité de traitement P 88. L'unité de traitement P 88 reçoit en entrée des composantes d'entrée vidéo 41 (image, séquences d'images, ou portion d'image). Le microprocesseur tP de l'unité de traitement 88 met en oeuvre les étapes du procédé de codage décrit précédemment en relation avec la figure 4, selon les instructions du programme Pg 89. L'unité de traitement 88 délivre en sortie un flux de données codées 47. La figure 9 illustre la structure matérielle d'un dispositif de décodage d'un flux de données codées, généré par exemple par le dispositif de codage de la figure 8. Un tel dispositif de décodage comprend une mémoire M 90, une unité de traitement P 91, équipée par exemple d'un microprocesseur P, et pilotée par le programme d'ordinateur Pg 92. A l'initialisation, les instructions de code du programme d'ordinateur 92 sont par exemple chargées dans une mémoire RAM avant d'être ex, cutées par le processeur de l'unité de traitement 91. L'unité de traitement 91 reçoit en entrée un flux de données codées 93 à décoder. Le microprocesseur u.P de l'unité de traitement 91 met en oeuvre les étapes du procédé de décodage décrit précédemment en relation avec la figure 7, selon les instructions du programme Pg 92. L'unité de traitement 91 délivre en sortie des composantes vidéo 94 (image, séquences d'images, ou portion d'image) décodées. ANNEXE A slice_header_in_scalable_extension( ) { C Descripteur first_mb_in_slice 2 ue(v) slice_type 2 ue(v) if( slice_type = = PR) { fragmented_flag; 2 u(l) if ( fragmented_flag = = 1) { fragment_order 2 ue(v) if ( fragment_order != 0) last_fragment_flag 2 u(1) } if ( fragment_order = = 0) { num_mbsin_ slice_minusl 2 ue(v) luma_chroma_sep_flag 2 u( 1) } } if ( slice_type != PR Il fragment_order = = 0) { pic_parameter_aet_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_o rder_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( 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_plusl 2 ue(v) if( base_id_plus1 != 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_10_active_minusl 2 ue(v) if( slice_type = = EB ) num_re1_idx_l1_active_minusl 2 ue(v) } } ref_pic_list_reordering( ) 2 if(( weighted_pred_flag && slice_type = = EP ) I I ( weighted_bipredidc = = 1 && slice_type = = EB )) { if( adaptive_prediction_flag) base_pred_ weight_table_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( entropy_coding_mode_flag && slice_type != El ) cabac_init_idc 2 ue(v) } if ( slice_type != PR I 1 fragment_order = = 0) { slice_qp_delta 2 se(v) if( deblocking_fi; ter_control_present_flag) { disable_deblocking_filter_idc 2 ue(v) if( disable_deblocking_filte_idc != 1 ) { slice_alpha_cO_offset_div2 2 se(v) slice_beta_offset_div2 2 se(v) } } } if( slice_type != PR ) if( num_slice_groups_minusl > 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) { adaptive_ref fg:s_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) } } if( slice_type = = PR ) { fgs_coding_mode 2 u(2) if( fgs_coding_mode = = 2 ) { vect4x4_pre,sence_lag 2 u(1) vect8x8_pre,~ence_lag 2 u(1) i f ( vect4x4_presence jlag I I vect8x8_presence jlag ) { numit?r_coded 2 ue(v) for( i = 0; i REVENDICATIONS 1. Procédé de codage d'une image ou d'une séquence d'images, générant un flux de données, chaque image étant découpée en au moins deux blocs d'image à chacun desquels est associé un bloc transformé comprenant un ensemble de coefficients, lesdits coefficients d'un bloc transformé étant répartis en groupe(s) de coefficients selon un critère de groupement prédéterminé et un parcours de lecture prédéterminé desdits blocs transformés, caractérisé en ce qu'il comprend, pour chacun desdits blocs transformés : une étape de codage d'une série de coefficients correspondant à au moins un groupe de coefficients, ladite série étant déterminée en fonction d'un type de série de coefficients sélectionné parmi au moins deux types possibles, dont : - un premier type de série selon lequel ladite série de coefficients comprend un nombre M prédéterminé de groupes de coefficients, - un deuxième type de série selon lequel une position maximale N prédéterminée dans ledit parcours étant identifiée, ladite série comprend le groupe comprenant ladite position maximale N, et tous les groupes précédents selon ledit parcours, s'il y en a. et une étape d'insertion dans ledit flux de données d'une information représentative dudit type de série de coefficients sélectionné pour ladite image ou séquence d'images, ou pour une portion de ladite image. 2. Procédé de codage selon la revendication 1, caractérisé en ce que ledit flux de données présente une structure hiérarchique en couches de données emboîtées de niveaux de raffinement successifs, et en ce que ledit procédé met en oeuvre un codage itératif, chacune des itérations correspondant à un desdits niveaux, et mettant en oeuvre ladite étape de codage. 3. Procédé de codage selon la revendication 2, caractérisé en ce que, pour ledit deuxième type de série : lorsque ladite série comprenant ledit groupe comprenant ladite position maximale N a été codée à une itération précédente, ladite série est vide,lorsque 1 adite série comprenant ledit groupe comprenant ladite position maximale N n'a pas été codée à une itération précédente, ladite série comprend le groupe comprenant ladite position maximale prédéterminée et tous les groupes précédents selon ledit parcours n'appartenant pas à une série déjà codée à une itération précédente, s'il y en a. 4. Procédé de codage selon l'une quelconque des revendications 2 et 3, caractérisé en ce que chacune desdites itérations met en oeuvre au moins l'une des passes suivantes : une passe de signifiance, - une passe de raffinement, ladite étape de codage s'appliquant à la ou auxdites passes mises en oeuvre, et en ce qu'un paramètre indiquant le type de la ou desdites passes mises en oeuvre accompagne ladite information représentative dudit type de série de coefficients. 5. Procédé de codage selon la revendication 4, caractérisé en ce que lorsque ladite passe est une passe de signifiance, ledit critère de groupement prédéterminé définit un groupe comme un ensemble de coefficients successifs non signifiants, et se terminant par le premier coefficient signifiant rencontré selon ledit parcours de lecture, et lorsque ladite passe est une passe de raffinement, ledit critère de groupement prédéterminé définit un groupe comme un unique coefficient signifiant. 6. Procédé de codage selon l'une quelconque des revendications 1 à 5, caractérisé en ce que ladite information représentative dudit type de série de coefficients est accompagnée d'une information de mise en oeuvre, comprenant un vecteur définissant la valeur dudit nombre M ou de ladite position N pour chaque itération. 7. Procédé de codage selon l'une quelconque des revendications 1 à 6, caractérisé en ce qu'une image source est décomposée en au moins deux composantes à coder, et en ce que ledit codage est appliqué à chacune desdites composantes. 8. Dispositif de codage d'une image ou d'une séquence d'images, générantun flux de données, chaque image étant découpée en au moins deux blocs d'image à chacun desquels est associé un bloc transformé comprenant un ensemble de coefficients, lesdits coefficients d'un bloc transformé étant répartis en groupe(s) de coefficients selon un critère de groupement prédéterminé et un parcours de lecture prédéterminé desdits blocs transformés, caractérisé en ce qu'il comprend : des moyens de codage d'une série de coefficients correspondant à au moins un groupe de coefficients, ladite série étant déterminée en fonction d'un type de série de coefficients sélectionné parmi au moins deux types possibles, dont : - un premier type de série selon lequel ladite série de coefficients comprend un nombre M prédéterminé de groupes de coefficients, - un deuxième type de série selon lequel une position maximale N prédéterminée dans ledit parcours étant identifiée, ladite série comprend le groupe comprenant ladite position maximale N, et tous les groupes précédents selon ledit parcours, s'il y en a, et des moyens d'insertion dans ledit flux de données d'une information représentative dudit type de série de coefficients sélectionné pour ladite image ou séquence d'images, ou pour une portion de ladite image. 9. Dispositif de codage selon la revendication 8, caractérisé en ce que, ledit flux de données présentant une structure hiérarchique en couches de données emboîtées de niveaux de raffinement successifs, les moyens de codage mettent en oeuvre un codage itératif, chacune des itérations correspondant à un desdits niveaux, et ce que pour ledit deuxième type de série : lorsc ue ladite série comprenant ledit groupe comprenant ladite position maximale N a été codée à une itération précédente, ladite série est vide, lorsc ue ladite série comprenant ledit groupe comprenant ladite position max male N n'a pas été codée à une itération précédente, ladite série comprend le groupe comprenant ladite position maximaleprédéterminée et tous les groupes précédents selon ledit parcours n'appartenant pas à une série déjà codée à une itération précédente, s'il y en a. 10. 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é de codage de l'une au moins des revendications 1 à 7. 11. Procédé de décodage d'un flux de données représentatif d'une image ou d'une séquence d'images, chaque image étant découpée en au moins deux blocs d'image à chacun desquels est associé un bloc transformé comprenant un ensemble de coefficients, lesdits coefficients d'un bloc transformé étant répartis en groupe(s) de coefficients selon un critère de groupement prédéterminé et un parcours de lecture prédéterminé desdits blocs transformés, caractérisé en ce qu'il comprend : une étape de lecture d'un type de série de coefficients appliqué à ladite image ou séquence d'images, ou à une portion de ladite image, parmi au moins deux types possibles, dont : - un premier type de série selon lequel ladite série de coefficients comprend un nombre M prédéterminé de groupes de coefficients, - un deuxième type de série selon lequel une position maximale N prédéterminée dans ledit parcours étant identifiée, ladite série comprend le groupe comprenant ladite position maximale N, et tous les groupes précédents selon ledit parcours, s'il y en a, et une étape de décodage prenant en compte, pour chaque bloc transformé, une série de coefficients selon le type de série de coefficients délivré par ladite étape de lecture. 12. Procédé de décodage selon la revendication 11, caractérisé en ce que ledit 30 flux de données présente une structure hiérarchique en couches de données emboîtées de niveaux de raffinement successifs, ledit flux ayant subi un codageitératif, chacune des itérations correspondant à un desdits niveaux, et en ce que, pour ledit deuxième type de série : lorsque ladite série comprenant ledit groupe comprenant ladite position maxi male N a été codée à une itération précédente, ladite série est vide, - lorsc ue ladite série comprenant ledit groupe comprenant ladite position maximale N n'a pas été codée à une itération précédente, ladite série comprend le groupe comprenant ladite position maximale prédéterminée, et tous les groupes précédents selon ledit parcours n'apartenant pas à une série déjà codée à une itération précédente, s'il yen a. 13. Dispositif de décodage d'un flux de données représentatif d'une image ou d'une séquence d'images, chaque image étant découpée en au moins deux blocs d'image à chacun desquels est associé un bloc transformé comprenant un ensemble de coefficients, lesdits coefficients d'un bloc transformé étant répartis en groupe(s) de coefficients selon un critère de groupement prédéterminé et un parcours de lecture prédéterminé desdits blocs transformés, caractérisé en ce qu'il comprend : des moyens de lecture d'un type de série de coefficients appliqué à ladite image ou séquence d'images, ou à une portion de ladite image, parmi au moins deux types possibles, dont : - un premier type de série selon lequel ladite série de coefficients comprend un nombre M prédéterminé de groupes de coefficients, - un deuxième type de série selon lequel une position maximale N prédéterminée dans ledit parcours étant identifiée, ladite série comprend le groupe comprenant ladite position maximale N, et tous les groupes précédents selon ledit parcours, s'il y en a, et des moyens de décodage prenant en compte, pour chaque bloc transformé, une série de coefficients selon le type de série de coefficients délivré par ladite étape de lecture. 14. Dispositif de décodage selon la revendication 13, caractérisé en ce que ledit flux de données présente une structure hiérarchique en couches de données emboîtées de niveaux de raffinement successifs, ledit flux ayant subi un codage itératif, chacune des itérations correspondant à un desdits niveaux, et en ce que, pour ledit deuxième type de série : lorsque ladite série comprenant ledit groupe comprenant ladite position maximale N a été codée à une itération précédente, ladite série est vide, lorsque ladite série comprenant ledit groupe comprenant ladite position maximale N n'a pas été codée à une itération précédente, ladite série comprend le groupe comprenant ladite position maximale prédéterminée, et tous les groupes précédents selon ledit parcours n'appartenant pas à une série déjà codée à une itération précédente, s'il y en a. 15. 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é de décodage de l'une au moins des revendications 11 et 12. 16. Signal représentatif d'un flux de données représentatif d'une image ou d'une séquence d'images, chaque image étant découpée en au moins deux blocs d'image à chacun desquels est associé un bloc transformé comprenant un ensemble de coefficients, lesdits coefficients d'un bloc transformé étant répartis en groupe(s) de coefficients selon un critère de groupement prédéterminé et un parcours de lecture prédéterminé desdits blocs transformés, caractérisé en ce qu'il porte une information représentative d'un type de série de coefficients appliqué à ladite image ou séquence d'images, ou à une portion de ladite image, parmi au moins deux types possibles, dont : - un premier type de série selon lequel ladite série de coefficients comprend un nombre M prédéterminé de groupes de coefficients,- un deus ième type de série selon lequel une position maximale N prédéterminée dans ledit parcours étant identifiée, ladite série comprend le groupe ,comprenant ladite position maximale N, et tous les groupes précédents selon ledit parcours, s'il y en a. 17. Signal selon la revendication 16, caractérisé en ce que ledit flux de données présenle une structure hiérarchique en couches de données emboîtées de niveaux de raffinement successifs, ledit flux ayant subi un codage itératif, chacune des itérations correspondant à un desdits niveaux, et en ce que, pour ledit deuxième type de série : lorsque ladite série comprenant ledit groupe comprenant ladite position maximale N a été codée à une itération précédente, ladite série est vide, lorsque ladite série comprenant ledit groupe comprenant ladite position maximale N n'a pas été codée à une itération précédente, ladite série comprend le groupe comprenant ladite position maximale préeterminée, et tous les groupes précédents selon ledit parcours n'appartenant pas à une série déjà codée à une itération précédente, s'il y en a.