Brevet FR2939593A1 — publié le 20100611

La présente invention concerne un procédé et un dispositif de codage vidéo. Elle s'applique, notamment, au codage vidéo multicast conforme au standard SVC (acronyme de � Scalable Video Coding � pour codage vidéo adaptable), et concerne plus précisément une optimisation des modes de codage pour le codage des couches de raffinement SVC. Le standard de compression vidéo SVC apporte une extension au standard H.264/AVC (acronyme de � Advanced Video Coding � pour codage vidéo avancé), consistant en un système de compression vidéo hiérarchique ou � scalable � compatible avec le standard H.264/AVC initial. Des fonctionnalités de scalabilité spatiale, temporelle et en qualité sont fournies par le standard SVC. La scalabilité temporelle est fournie par les images B hiérarchiques. Concernant la scalabilité spatiale ou en qualité (amélioration du ratio signal sur bruit), un flux vidéo SVC contient une couche de base compatible H.264/AVC, et une ou plusieurs couches de raffinement (en anglais, � enhancement layers �), spatial ou en qualité, dites �SNR � (acronyme de � Signal to Noise Ratio �, ou rapport signal sur bruit), peuvent être codées par dessus cette couche de base. Le problème à la base de la présente invention concerne le processus de choix de modes de codage dans les couches de raffinement SVC spatiales ou SNR. Lors du codage de la couche de base H.264/AVC, le codeur SVC tente de choisir les modes de codage pour chaque macrobloc fournissant les meilleurs performances en termes de débit/distorsion. Par exemple, ce choix de mode de codage prend la forme d'une optimisation lagrangienne pour trouver le meilleur compromis entre le coût en débit et la distorsion de reconstruction de chaque macrobloc dans chaque image. De même, lors du codage d'une couche de raffinement SVC, le codeur essaie de trouver les meilleurs modes de codage pour chaque macrobloc de chaque image, en utilisant une optimisation lagrangienne analogue à celle employée pour la couche de base. Cette optimisation vise à ajuster le compromis entre la distorsion de reconstruction du macrobloc courant d'une part, et le coût en débit lié au codage du macrobloc courant dans la couche de raffinement, d'autre part. La différence avec le processus de décision de modes dans la couche de base tient en ce que des modes de codage additionnels sont évalués dans la couche de raffinement. Ces modes de codage additionnels mettent en oeuvre les mécanismes de prédiction inter-couches propres à SVC. La contribution technique au comité JVT (acronyme de Joint Video Team pour équipe vidéo jointe) JVT-W071 de H. Schwarz et T. Wiegand. � Further results for an rd-optimized multi-loop SVC encoder � (Technical Report JVT-W071, Fraunhofer HHI, 23rd JVT Meeting, San Jose, California, April 2007) propose une méthode d'optimisation lagrangienne de choix de mode de codage modifiée par rapport à celle du JSVM (acronyme de Joint Scalable Video Model désignant le logiciel de référence SVC). Cette méthode modifie le choix de mode de codage dans la couche de base, de façon à choisir les modes de codage de la couche de base qui permettent d'optimiser le codage de la couche de raffinement au dessus de la couche de base. L'objectif de cette méthode est de coder la couche de base d'une façon qui maximise ensuite l'usage de la prédiction inter-couches dans le codage de la couche de raffinement. Cependant, ces procédés de codage ne sont pas optimisés, notamment pour l'adaptation du codage des diverses couches par rapport à une pluralité de débits possibles pour la transmission sur un réseau. La présente invention vise à remédier à ces inconvénients. A cet effet, selon un premier aspect, la présente invention vise un procédé de codage vidéo, qui comporte : - une étape d'obtention d'au moins deux valeurs de bande passante, - une étape de codage d'une couche de base pour que le débit des données de la couche de base codées soit inférieur ou égal à la bande passante la plus faible et - pour au moins une bande passante supérieure à la bande passante la plus faible, au moins une étape de codage d'une couche d'amélioration pour que la somme du débit des données de ladite couche d'amélioration codée et du débit des données servant de référence d'une couche de référence de ladite couche d'amélioration soit inférieure à ladite bande passante. La présente invention fournit ainsi une optimisation des modes de codage des macroblocs d'une couche de raffinement SVC, qui améliore les performances de l'algorithme utilisé dans le JSVM, notamment dans le contexte d'une transmission multipoints (multicast en anglais) ou en vue d'une transmission différée vers un seul client sur un réseau de communication pouvant mettre en oeuvre une pluralité de bandes passantes. La mise en oeuvre de la présente invention apporte également une amélioration des performances du JSVM dans le contexte applicatif d'une transmission point à point de flux vidéo SVC pré-encodés, où la scalabilité est utilisée comme moyen de régulation de débit. De plus, les résultats techniques fournis par la présente invention comportent que le coût de débit associé aux données codées de la couche de référence utiles pour la prédiction inter-couches de la couche en cours de codage est pris en compte dans le choix des modes de codage de la couche courante. L'optimisation du mode de codage de cette couche d'amélioration est donc plus efficace. Selon des caractéristiques particulières, au cours de l'étape d'obtention d'au moins deux valeurs de bande passante, on obtient des valeurs de bande passante reçues par au moins deux destinataires de données vidéo codées. La présente invention s'applique, ainsi, à la diffusion en multipoints de données vidéo sur un réseau. Selon des caractéristiques particulières, au moins une étape de codage d'une couche d'amélioration est fonction de la bande passante d'un lien d'un réseau partagé par lesdits destinataires. Ainsi, le codage vidéo scalable en temps-réel, supposé être adapté aux applications de transmission multipoint, tient compte de la topologie du réseau utilisé. La connaissance des bandes passantes disponibles sur au moins un des liens du réseau améliore l'optimisation des débits pour les différentes couches d'amélioration. Selon des caractéristiques particulières, au cours d'au moins une étape de codage d'une couche d'amélioration, on minimise la distorsion de reconstruction des images en respectant les deux contraintes suivantes : - la somme du débit des données de raffinement en cours du codage et du débit des données utilisées pour la prédiction inter-couches est inférieure ou égale à une bande passante reçue par un destinataire et - le débit de toutes les données codées, incluant les données inutiles pour la prédiction inter-couches, les données utilisées pour la prédiction inter-couches et les données codées dans ladite couche d'amélioration, est inférieur ou égal à la bande passante du lien du réseau partagé par les destinataires. Ainsi, toutes les données transmises sont utiles tout en respectant les contraintes liées au réseau, et exploitent au mieux la ou les bande(s) passante(s) disponible(s) sur le réseau. Selon des caractéristiques particulières, au moins une étape de codage d'une couche d'amélioration comporte une étape de séparation au cours de laquelle : - dans les données codées de la couche de référence, on sépare les 20 données codées qui ne servent pas à la prédiction inter-couches et les données qui servent à la prédiction inter-couches, - on insère les données codées qui ne servent pas à la prédiction inter-couches dans une couche dite � intermédiaire � et - on conserve, dans la couche de référence, les données qui servent 25 à la prédiction inter-couches. En effet, discriminer les données de la couche de base non utilisées pour la prédiction inter-couches permet de réduire les débits de transmission de la couche de base et de la couche de raffinement d'un serveur vers un client. De plus, du fait de cette séparation, on n'a pas besoin de recoder les 30 données de la couche de référence, ce qui limite les ressources nécessaires à la détermination des données de la couche de référence utiles pour la prédiction inter-couches d'une couche d'amélioration. Selon des caractéristiques particulières, au cours de l'étape de séparation, on sépare les résidus temporels lorsqu'ils ne servent pas de prédicteur pour la prédiction inter-couches de résidu et on les insère dans la couche intermédiaire. Selon des caractéristiques particulières, au cours de l'étape de séparation, on conserve dans la couche de référence : - les données de mouvement comportant des données de partition de macroblocs, - les données de référence d'indices d'images de référence pour la prédiction temporelle, - les données de vecteurs de mouvement et - les macroblocs codés en INTRA. Selon des caractéristiques particulières, au cours de l'étape de séparation, on ajoute dans ladite couche intermédiaire une information indiquant que les macroblocs contenus dans ladite couche intermédiaire héritent des données de mouvement codées dans la couche de référence. Selon des caractéristiques particulières, au cours de l'étape de séparation, ladite couche intermédiaire est marquée comme � discardable � et les données codées de la couche d'amélioration comportent une indication que la couche de référence de la couche d'amélioration est la couche de référence après séparation des données pour former la couche intermédiaire. Selon des caractéristiques particulières, au cours de l'étape de séparation, pour chaque macrobloc de la couche courante, si le macrobloc correspondant pour la prédiction inter-couches, dans la couche de référence, a été codé en INTRA, il est conservé dans la couche de référence. Selon des caractéristiques particulières, au cours de l'étape de séparation, si ledit macrobloc de la couche de référence n'a pas été codé en INTRA et si la prédiction inter-couches de résidu temporel est utilisée dans le codage dudit macrobloc de la couche courante, on conserve les données codées dudit macrobloc dans la couche de référence. Selon des caractéristiques particulières, au cours de l'étape de séparation, si ledit macrobloc de la couche de référence n'a pas été codé en INTRA et si la prédiction inter-couches de résidu temporel n'est pas utilisée dans le codage dudit macrobloc de la couche courante, on insère les données codées dudit macrobloc dans la couche intermédiaire. Grâce à chacune de ces dispositions, la séparation est à la fois simple et efficace. De plus, le marquage de la couche intermédiaire comme � discardable � rend le procédé objet de la présente invention compatible avec les décodeurs vidéo existants. Selon des caractéristiques particulières, au cours d'au moins une étape de codage d'une couche d'amélioration, on minimise un lagrangien de la forme J = D + X x R, où D représente la distorsion de reconstruction, R représente le débit des données de référence utilisées pour la prédiction inter-couches, et représente une pente débit-distorsion fonction du débit. Selon des caractéristiques particulières, le procédé objet de la présente invention, tel que succinctement exposé ci-dessus comporte une étape de calcul du débit des données de référence utilisées pour la prédiction inter-couches, au cours de laquelle on prend en compte le débit cumulé des données de référence utilisées pour la prédiction du macrobloc courant de la couche d'amélioration en cours de codage selon un paramètre de codage candidat pour la minimisation du dit lagrangien. Selon un deuxième aspect, la présente invention vise un dispositif de codage vidéo, qui comporte : - un moyen d'obtention d'au moins deux valeurs de bande passante, - un moyen de codage d'une couche de base pour que le débit des données de la couche de base codées soit inférieur ou égal à la bande passante la plus faible et - un moyen de codage adapté, pour au moins une bande passante supérieure à la bande passante la plus faible, à coder une couche d'amélioration pour que la somme du débit des données de ladite couche d'amélioration codée et du débit des données servant de référence d'une couche de référence de ladite couche d'amélioration soit inférieure à ladite bande passante. Selon un troisième aspect, la présente invention vise un programme d'ordinateur chargeable dans un système informatique, ledit programme contenant des instructions permettant la mise en oeuvre du procédé objet de la présente invention, tel que succinctement exposé ci-dessus. Selon un quatrième aspect, la présente invention vise un support d'informations lisibles par un ordinateur ou un microprocesseur, amovible ou non, conservant des instructions d'un programme informatique, caractérisé en ce qu'il permet la mise en oeuvre du procédé objet de la présente invention, tel que succinctement exposé ci-dessus. Les avantages, buts et caractéristiques de ce dispositif de codage vidéo, de ce programme d'ordinateur et de ce support d'information étant similaires à ceux du procédé objet de la présente invention, tel que succinctement exposé ci-dessus, ils ne sont pas rappelés ici. D'autres avantages, buts et caractéristiques de la présente invention ressortiront de la description qui va suivre faite, dans un but explicatif et nullement limitatif, en regard des dessins annexés, dans lesquels : - la figure 1 représente, schématiquement, un mode de réalisation particulier du dispositif de codage vidéo objet de la présente invention, - la figure 2 représente un schéma bloc fonctionnel d'un dispositif de codage de l'art antérieur, - les figures 3a à 3c représentent, schématiquement, des flux de données vidéos diffusées en multicast, - les figures 4a à 4c représentent, schématiquement, des débits de couches de codage pour les flux de données vidéo illustrés en figures 3a à 3c, - la figure 5 représente, schématiquement, un principe de partition d'une couche de codage de référence en couches de scalabilité distinctes et - les figures 6 à 9 représentent, sous forme de logigrammes, des étapes mises en oeuvre dans un mode de réalisation particulier du procédé objet de la présente invention. Dans la description qui va suivre, on utilise indifféremment les termes d'� amélioration � ou de � raffinement � pour qualifier les couches au dessus de la couche de base. On observe, en figure 1, que, dans un mode de réalisation particulier, le dispositif objet de la présente invention, prend la forme d'un micro-ordinateur 100 muni d'un logiciel implémentant le procédé objet de la présente invention et de différents périphériques. Le dispositif est constitué ici d'un serveur adapté à transmettre des images codées à des destinataires ou � clients � (non représentés). Le micro-ordinateur 100 est connecté à différents périphériques, par exemple un moyen d'acquisition ou de stockage d'images 107, par exemple une caméra numérique ou un scanner, relié à une carte graphique (non représentée) et fournissant des informations d'image à coder et à transmettre. Le micro-ordinateur 100 comporte une interface de communication 118 reliée à un réseau 134 apte à recevoir des données numériques à coder et à transmettre des données codées par le micro-ordinateur. Le micro-ordinateur 100 comporte également un moyen de stockage de type mémoire de masse 112 tel que, par exemple, un disque dur. Le micro-ordinateur 100 comporte aussi un lecteur de mémoire externe 114. Une mémoire de masse externe, ou � clé � comportant une mémoire (par exemple une clé dite � USB � par référence à son port de communication) 116, comme le moyen de stockage 112, peuvent contenir des données à traiter. La mémoire externe 116 peut aussi contenir des instructions d'un logiciel implémentant le procédé objet de la présente invention, instructions qui, une fois lues par le micro-ordinateur 100, sont stockées dans le moyen de stockage 112. Selon une variante, le programme Progr permettant au dispositif de mettre en oeuvre la présente invention est stocké en mémoire morte 104 (appelée � ROM �, acronyme de � read only memory �, en figure 1), qui est également une mémoire de masse. En seconde variante, le programme est reçu par l'intermédiaire du réseau de communication 134 et est stocké dans le moyen de stockage 112. Le micro-ordinateur 100 est relié à un micro 124 par l'intermédiaire de la carte d'entrée/sortie 122. Le micro-ordinateur 100 possède un écran 108 permettant de visualiser les données à coder ou de servir d'interface avec l'utilisateur, à l'aide d'un clavier 110 ou de tout autre moyen (souris par exemple). Bien entendu, la mémoire externe 116 peut être remplacée par tout support d'information tel que CD-ROM (acronyme de � compact disc û read only memory � pour mémoire en lecture seule en disque compact) ou une carte mémoire. De manière plus générale, un moyen de stockage d'information, lisible par un ordinateur ou par un microprocesseur, intégré ou non au dispositif, éventuellement amovible, mémorise un programme mettant en oeuvre le procédé objet de la présente invention. Une unité centrale 120 (appelée � CPU �, acronyme de � Central Processing Unit �, en figure 1) exécute les instructions du logiciel implémentant le procédé objet de la présente invention. Lors de la mise sous tension, les programmes permettant l'implémentation du procédé objet de la présente invention stockés dans une mémoire non volatile, par exemple la ROM 104, sont transférés dans la mémoire vive RAM 106 qui contient alors les instructions de ce logiciel ainsi que des registres pour mémoriser les variables nécessaires à la mise en oeuvre de l'invention. Un bus de communication 102 permet la communication entre les différents éléments du micro-ordinateur 100 ou reliés à lui. La représentation du bus 102 n'est pas limitative. Notamment, l'unité centrale 120 est susceptible de communiquer des instructions à tout élément du dispositif directement ou par l'intermédiaire d'un autre élément du dispositif. La figure 2 fournit un schéma bloc d'un codeur vidéo SVC générant trois couches de scalabilité. Ce schéma est organisé en trois étages 200, 230 et 260, respectivement dédiés au codage de chacune des couches de scalabilité générées. Les références numériques des fonctions similaires sont incrémentées de 30 entre les étages successifs. Chaque étage prend, en entrée, la séquence d'images originale à compresser, respectivement 202, 232 et 262, éventuellement sous-échantillonnée à la résolution spatiale de la couche de scalabilité codée par l'étage considéré (cas du premier étage 202 codant la couche de base, en bas dans la figure 2). Au sein de chaque étage est mise en oeuvre une boucle de prédiction temporelle compensée en mouvement. Le premier étage 200 de la figure 2 correspond au schéma de prédiction temporelle et spatiale d'un codeur vidéo non scalable H.264/AVC et est connu de l'homme du métier. Il réalise successivement les étapes suivantes pour coder la couche de base compatible H.264/AVC. Une image courante 202 à compresser en entrée du codeur est découpée en macroblocs de taille 16 x 16 pixels, par la fonction 204. Chaque macrobloc subit, tout d'abord, une étape d'estimation de mouvement, fonction 216, qui tente de trouver, parmi des images de références stockées dans un buffer mémoire 212, des blocs de référence permettant de prédire au mieux le macrobloc courant. Cette fonction d'estimation de mouvement 216 fournit un ou deux indices d'images de référence contenant les blocs de référence trouvés, ainsi que les vecteurs de mouvement correspondant. Une fonction de compensation en mouvement 218 applique les vecteurs de mouvement estimés sur les blocs de référence trouvés et copie les blocs ainsi obtenus dans une image de prédiction temporelle. Par ailleurs, une fonction de prédiction intra 220 détermine le mode de prédiction spatiale du macrobloc courant qui fournirait les meilleures performances pour le codage du macrobloc courant en INTRA. Ensuite, une fonction de choix de mode de codage 214 détermine, parmi les prédictions temporelle et spatiale, le mode de codage qui fournit le meilleur compromis débit distorsion dans le codage du macrobloc courant. La différence entre le macrobloc courant et le macrobloc de prédiction ainsi sélectionné est calculée, par la fonction 226, pour fournir un résidu (temporel ou spatial) à compresser. Ce macrobloc résiduel subit alors des fonctions de transformation cosinus discrète (ou � DCT � pour � discrete cosine transform �) et de quantification 206. Un codage entropique des échantillons ainsi quantifiés est alors effectué, par une fonction non représentée en figure 2, et fournit les données de texture compressées du macrobloc courant. Enfin, le macrobloc courant est reconstruit via une quantification inverse et une transformation inverse 208, et une addition 210 du résidu après transformation inverse et du macrobloc de prédiction du macrobloc courant. Une fois l'image courante ainsi reconstruite, celle-ci est stockée dans une mémoire tampon 212 (� buffer �) pour servir de référence à la prédiction temporelle de prochaines images à coder. Des fonctions 222 et 224 effectuent une opération de filtrage connue de l'homme du métier sous le nom de � deblocking filter� et visant à réduire les 5 effets de blocs pouvant apparaître en frontière de macroblocs. Le deuxième étage de la figure 2 illustre le codage de la première couche de raffinement 230 du flux SVC. Cette couche 230 apporte un raffinement en résolution spatiale par rapport à la couche de base 200. Le schéma de codage de cette couche est également connu de l'homme du 10 métier. Comme l'indique la figure 2, il est analogue au schéma de codage de la couche de base, à ceci près que, pour chaque macrobloc d'une image courante en cours de compression, un mode de prédiction additionnel par rapport au codage de la couche de base peut être choisi par la fonction de sélection de mode de codage 244. Ce mode de prédiction est appelé � prédiction inter- 15 couches �. II consiste à réutiliser les données codées dans une couche inférieure à la couche de raffinement en cours de codage comme données de prédiction du macrobloc courant. Cette couche inférieure, ici la couche de base 200, est appelée la � couche de référence � pour la prédiction inter-couches de la couche de raffinement 230. 20 Dans le cas où la couche de référence contient une image qui coïncide temporellement avec l'image courante, alors appelée � image de base � de l'image courante, le macrobloc colocalisé, c'est-à-dire qui possède la même position spatiale que le macrobloc courant qui a été codé dans la couche de base, peut servir de référence pour prédire le macrobloc courant. Plus 25 précisément, le mode de codage, la partition de macrobloc, les données de mouvement (si elles sont présentes) ainsi que les données de texture (résidu dans le cas d'un macrobloc prédit temporellement, texture reconstruite dans le cas d'un macrobloc codé en INTRA) du macrobloc colocalisé peuvent être utilisés pour prédire le macrobloc courant. Dans le cas d'une couche de 30 raffinement spatial, des opérations (non représentées) de sur-échantillonnage des données de texture et de mouvement de la couche de référence sont effectuées. En dehors de cette technique de prédiction inter-couches utilisée dans l'extension SVC du standard H.264/AVC, le codage d'une couche de scalabilité SVC met en oeuvre une boucle de prédiction temporelle compensée en mouvement, similaire à celle utilisée pour le codage de la couche de base 200 compatible H.264/AVC. Enfin, comme l'indique la figure 2, le codage d'une troisième couche 262, (deuxième couche de raffinement) met en oeuvre un schéma de codage identique à celui de la première couche de raffinement 230, la couche de référence étant alors la première couche de raffinement. Dans le codeur de référence SVC, documenté dans le document de J. Reichel, H. Schwarz, et M. Wien � Joint Scalable Video Model JSVM-12 text � (ISO/IEC JTC1/SC29/WG11 et ITU-T SG16 Q.6, Shenzen, Chine, Octobre 2007. Document JVT JVT-Y202), la fonction de choix de modes de codage dans les couches de raffinement SVC (244 et 274 en figure 2) tente de choisir les modes de codage qui donnent les meilleures performances débit- distorsion. Pour ce faire, le codeur évalue la distorsion et le débit associés au codage d'un macrobloc dans chaque mode de codage candidat. La distorsion estimée correspond à la distorsion entre le macrobloc original que l'on cherche à compresser, et le macrobloc reconstruit via le décodage des données de raffinement de la couche considérée. De plus, le coût de débit qui est pris en compte pour évaluer chaque mode de codage candidat correspond au coût de débit des macroblocs traités dans la couche de scalabilité en cours de codage. Par conséquent, on ne prend pas en compte les coûts de débit des données des couches inférieures qui servent à prédire le macrobloc courant de la couche courante, selon les modes de codage qui emploient des mécanismes de prédiction inter-couches. De plus, il peut être intéressant, dans certains contextes de transmission SVC, de séparer les données des couches inférieures qui servent de référence pour la prédiction inter-couches et les données de ces couches inférieures qui ne sont pas utilisées dans la prédiction inter-couches. Ainsi, lorsque l'on transmet le flux SVC à un niveau de qualité ou de résolution spatiale donné, on peut ne transmettre que les données effectivement utilisées pour le décodage de la séquence au niveau de scalabilité visé. Le fait de ne pas transmettre les données qui ne servent pas au décodage (typiquement les données codées des couches inférieures non utilisées comme référence pour prédire les couches supérieures) offre une réduction du débit de transmission et donc une amélioration des performances débit distorsion du processus de transmission. Ainsi, dans des modes de réalisation particuliers de la présente invention, on effectue un choix de mode de codage dans les couches de raffinement SVC, adapté à tout contexte applicatif de transmission SVC où la séparation des données des couches inférieures visant à élaguer les données inutiles pour la prédiction inter-couches, est envisageable. L'algorithme décrit en regard des figures 5 à 9 vise à améliorer les performances obtenues avec le processus de sélection de modes du codeur de référence SVC dans un tel contexte applicatif. Les figures 3a et 3b illustrent deux contextes applicatifs différents, menant potentiellement à des stratégies de codage vidéo SVC différentes. La figure 3a illustre un scénario de transmission multicast SVC d'un serveur vers deux clients différents (300 et 301). Dans le cas de la figure 3a, le client 301 dispose d'une plus grande bande passante que le client 300. De plus, ces deux clients 300 et 301 partagent un lien réseau 305 en commun, entre un serveur SVC 310 et un noeud intermédiaire 315, dont la capacité de bande passante est égale à la bande passante R301 disponible au niveau du client 301. Dans ce cas, toutes les données SVC codées sont transmises ensemble sur le lien commun 305 de bande passante R301. Par conséquent, le codage SVC doit tenter de générer un flux SVC comprenant deux couches de scalabilité : une couche de base respectant la contrainte de débit RO et une couche de raffinement telle que l'ensemble des deux couches respecte la contrainte de débit maximal R301. A cet effet, pour obtenir les meilleures performances débit distorsion possibles pour la couche de raffinement, il est souhaitable qu'un minimum de redondance existe entre les deux couches codées, et donc que la couche de raffinement réutilise un maximum d'informations codées dans la couche de base, via les mécanismes de prédiction inter-couches propres au standard SVC. Dans ce contexte, la stratégie de codage, plus particulièrement l'optimisation des modes de codages, employée dans le codeur de référence SVC, semble adaptée. La figure 3b illustre un deuxième cas d'application, similaire au premier, à ceci près que le lien réseau 355 partagé par deux clients 350 et 351, situé entre un serveur 360 et un routeur intermédiaire 365, possède une capacité de bande passante R352, supérieure à chacune des bandes passantes R350 et R351 disponibles aux clients 350 et 351. Dans ce cas, les contraintes de débit que doit respecter le flux SVC transmis sont les suivantes : les sous-flux reçus par les clients 350 et 351 doivent avoir un débit respectif inférieur ou égal à R350 et R351, tandis que l'ensemble des deux flux transmis par le serveur doit respecter la contrainte de débit R352. Il n'est donc pas nécessaire que le flux SVC soit codé de façon entièrement scalable. Des données de la couche supérieure peuvent, éventuellement, être codées de façon non hiérarchique, sans utiliser la prédiction inter-couches, si cela s'avère plus performant pour coder la couche supérieure avec la meilleure qualité possible. Dans ce cas, il existerait alors une redondance entre la couche de base et la couche supérieure. Cette redondance peut-être supprimée en ne transmettant pas les données de la couche de base qui ne servent pas à prédire la couche supérieure au client 351. Ceci est possible en séparant la couche de base en deux ensembles de données codées: un premier ensemble contenant les données utiles à la prédiction inter-couches et un deuxième ensemble contenant les données non utilisées pour la prédiction inter-couches. Ainsi, il est possible de ne transmettre au client 351 qu'une partie de la couche de base en plus de la couche supérieure. Une telle mise en oeuvre permet alors d'optimiser la qualité de la séquence vidéo reçue par le client 351, sans modifier les performances débit distorsion du sous-flux SVC reçu par le client 350. Le mode de réalisation du procédé objet de la présente invention décrit en regard des figures 5 à 9 fournit une stratégie de codage d'une couche de raffinement SVC qui prend en compte la possibilité de discriminer les données de la couche de base et qui prend en compte une contrainte de débit pour chaque niveau de représentation de la séquence SVC, ainsi qu'une contrainte de débit globale pour l'ensemble du flux SVC entier à générer. Les figures 4a et 4b fournissent une illustration du problème d'optimisation que l'on cherche à résoudre lorsqu'on code un flux SVC respectivement adapté aux contextes applicatifs introduits en regard des figures 3a et 3b. En ce qui concerne le premier cas applicatif, la figure 4a représente les contraintes de débits imposées au codage respectif de deux couches de scalabilité SVC. La contrainte de débit R300 doit être respectée par la couche de base, tandis que la contrainte de débit R301 doit être respectée par l'ensemble des deux couches. Le problème d'optimisation à résoudre dans ce cas est le suivant: - le codage de la couche de base tente de minimiser la distorsion de reconstruction de la couche de base sous la contrainte de débit R300. Autrement dit on cherche à résoudre le problème d'optimisation suivant: minpo [D(po)] R(po) On note que les deux étapes d'optimisation indiquées ci-dessus, adaptées au cas applicatif des figures 3a et 4a, correspondent à la stratégie d'optimisation des modes de codage telle qu'implémentée dans le codeur de référence SVC. L'optimisation débit-distorsion des modes de codage qui y est effectuée est notamment documentée dans le document � J. Reichel, H. Schwarz, et M. Wien. Joint Scalable Video Model JSVM 1. Joint Video Team of ISO/IEC MPEG and ITU-T VCEG, Hong Kong, China, January 2005. Document JVT-NO21 �. Concernant le deuxième cas applicatif, illustré par les figures 3b et 4b, et correspondant au cas pratique décrit en regard des figures 5 à 9, le problème d'optimisation des modes de codage qu'il implique peut être formulé comme suit. La couche de base doit être codée de façon à respecter la contrainte de débit R350. De plus, la couche de raffinement doit être codée de façon à ce que l'ensemble des deux couches codées respecte la contrainte de débit R352 et que le débit des données à transmettre pour décoder le flux au niveau hiérarchique supérieur (correspondant à la couche de raffinement) respecte la contrainte de débit R351. Formellement, ceci peut être exprimé comme suit: - le codage de la couche de base tente de minimiser la distorsion de reconstruction de la couche de base sous la contrainte de débit R350. Autrement dit on cherche à résoudre le problème d'optimisation suivant: minpo [D(po)] R(po) Ensuite, le codage de la couche de raffinement consiste à optimiser les choix de modes de codage dans la couche de raffinement de façon à ce que l'ensemble des données à décoder (et donc à transmettre) pour restituer la couche de raffinement respecte la contrainte de débit R422. Pour ce faire, le serveur 405 optimise les modes de codage dans la couche de raffinement en tentant de minimiser la distorsion de décodage de la couche de raffinement. De plus, la contrainte de débit R422 est prise en compte pour assurer que la somme des débit des données de la couche de raffinement et des seules données de la couche de base qui servent à la prédiction inter-couches de la couche de raffinement soit inférieure ou égale à R422. On prévoit donc, de façon analogue au cas illustré en figure 4b, de séparer les données de la couche de base qui servent à la prédiction inter-couches de la couche de raffinement et les données de la couche de base qui ne servent pas comme référence dans la prédiction inter-couches. Ainsi, au cours de la transmission point à point envisagée dans la figure 3c, si le serveur 405 décide de transmettre les deux couches de scalabilité au client 415, la couche de raffinement entière et une portion de la couche de base notée � R(po used for ILP) � sont transmises au client 415. Les données de la couche de base inutiles à la prédiction inter-couches, notées � R(po not used for ILP) � sur la figure 4c, ne sont pas transmises par le serveur 405, dans ce cas. La figure 5 illustre comment découper une couche de scalabilité 505 d'un flux SVC, en séparant les données 510 qui servent de référence pour la prédiction inter-couches d'une couche supérieure, et les données 515 qui ne servent pas de référence. Plusieurs approches sont connues de l'homme de l'art. On décrit ici une solution basée sur la méthode de séparation proposée dans le document de I. Amonou, N. Gammas, S. Kervadec et S. Pateux � Splitting inter layer prediction information � (Technical Report JVTT052, Orange - France Telecom Division R&D, 20th JVT Meeting, Klagenfurt, Austria, July 2006), qui présente l'avantage d'être simple et de ne pas nécessiter de re-codage de la couche que l'on cherche à découper, en fonction des choix de modes de prédiction inter-couches effectués dans la couche prédite. Toutefois, la présente invention ne se limite pas à cette méthode de séparation particulière, et toute autre méthode, utilisant ou non des couches de scalabilité pourrait être utilisées dans le cadre de la présente invention. La méthode de séparation préférentielle employée est la suivante. Les données de mouvement (partition de macroblocs, référence d'indices d'images de référence pour la prédiction temporelle, vecteurs de mouvement) et les macroblocs codés en INTRA sont maintenus intacts codés dans la couche de base initiale 510. De plus, les résidus temporels, lorsqu'ils ne servent pas de prédicteur pour la prédiction inter-couches de résidu, sont déplacés dans une couche de scalabilité 515, appelée � couche intermédiaire �, insérée entre la couche de base initiale 510 et la couche supérieure prédite 520. Pour les macroblocs concernés, l'indicateur coded_block_pattern (voir le document de l'International Telecommunication Union � Advanced video coding for generic audiovisual services � (ITU-T Recommendation H.264, November 2007 disponible à l'adresse http://www.itu.int/rec/T-REC-H.264-200711-1/en), sections 7.3.5, 7.4.5, G.7.3.6 et G.7.4.6) est mis à � 0 � de façon à indiquer qu'aucun coefficient DCT quantifié non nul n'est codé pour les macroblocs considérés dans la couche de base. Ensuite, dans la couche intermédiaire 515 insérée pour contenir les données non utilisées pour la prédiction inter-couches de la couche supérieure, l'élément de syntaxe SVC � base_mode_flag � des macroblocs correspondant est mis à � 1 �, indiquant que ces macroblocs héritent des données de mouvement déjà codées dans la couche de référence. De plus, le résidu temporel qui a été enlevé de la couche de référence est codé dans la couche intermédiaire 515, destinée à transporter ces données qui ne servent pas à prédire la couche supérieure. Les macroblocs qui étaient codés en INTRA dans la couche de base et qui y sont laissés inchangés ne sont pas codés ou raffinés dans la couche intermédiaire 515. Enfin, cette couche intermédiaire est marquée comme "discardable" par l'intermédiaire du champ � discardable_flag � positionné à � 1 �, indiquant que cette couche de scalabilité intermédiaire 515 ne sert pas pour la prédiction de la couche supérieure. Enfin, dans les en-têtes des tranches (ou � slices � qui sont des sous-ensembles de macroblocs successifs d'une image) codés de la couche supérieure 520, l'élément de syntaxe � ref layer_dq_id � est écrit de façon à indiquer que la couche supérieure a pour référence la couche la plus basse 510 pour la prédiction inter-couches. On note que le moyen technique employé ici pour séparer les données de la couche de référence est tel que certaines données maintenues dans la couche de référence 510 (macroblocs INTRA ou données de mouvement) peuvent ne pas servir pour prédire la couche supérieure 520. Néanmoins, la pratique montre que les données les moins utilisées pour la prédiction inter-couches sont les résidus temporels. De plus, la méthode employée ici ne nécessite aucun re-codage de la couche de base 510, mais consiste juste à déplacer des éléments de syntaxe codés dans une couche intermédiaire 515. Alternativement, on utilise des groupes de tranches pour séparer des macroblocs utiles et inutiles. Les groupes de tranches partitionnent les macroblocs d'une image en au moins deux ensembles distincts. Les groupes de tranches sont codés de façon strictement indépendante les uns des autres. Ils peuvent contenir un ensemble quelconque de macroblocs. Dans le cas où l'on utilise des groupes de tranches pour séparer les macroblocs utiles et les macroblocs non utiles dans la prédiction inter-couches, il est nécessaire de recoder la couche de base, de façon à supprimer les dépendances entre macroblocs de différents groupes de tranches, en terme de prédiction spatiale des macroblocs INTRA et des vecteurs de mouvement des macroblocs INTER (prédits temporellement). La figure 6 fournit un algorithme global de codage d'une séquence SVC multi couche conformément à la présente invention. Les entrées de cet algorithme sont les suivantes : - la séquence d'images originales à compresser et - les différentes bandes passantes disponibles sur le réseau multicast envisagé. L'algorithme débute par une étape 605 d'obtention des différents débits auxquels on souhaite coder chaque niveau de représentation de scalabilité SVC. Dans le cas où un nombre réduit de bandes passantes est fourni en entrée de l'algorithme, les différents débits des couches à coder peuvent être fixés égaux aux différentes valeurs de bandes passantes fournies en entrée. L'algorithme code alors autant de couches de scalabilité SVC qu'il y a de bandes passantes fournies en entrées. En variante, dans le cas où le serveur délivre la séquence SVC à un nombre élevé de clients, on cherche à déterminer un ensemble réduit de bandes passantes qui représentent les différentes classes de bandes passantes présentes sur le réseau considéré. Par exemple, on utilise un algorithme de classification, adapté à déterminer un ensemble réduit de bandes passantes, chacun correspondant à une classes de bande passante reçue par un nombre significatif de récepteurs. Les différentes valeurs de débits fournies par cette première étape sont ordonnées par ordre croissant, et sont notées Ro, ..., RN_1 avec Ro RN_1, comme c'est typiquement le cas quand un premier routeur, éventuellement apte à tronquer un flux scalable SVC, se trouve entre le serveur et les différents clients multicast. Un tel cas pratique est illustré sur la figure 3b. Puis, au cours d'une étape 615, on se positionne à la première image à coder dans la séquence originale fournie en entrée. On code ensuite la couche de base pour l'image courante au cours d'une étape 620. Sur la figure 6, l'image courante est notée � currAU � pour � curent Access Unit �. Une access unit, ou unité d'accès SVC, correspond à l'ensemble de toutes les données codées contribuant au décodage d'une même image reconstruite d'une séquence SVC. Au cours de l'étape 620 de codage de la couche de base, on code la contribution de la couche de base à l'access unit courante currAU. Puis, à partir d'une étape 625, on code les couches de scalabilité successives au-dessus de la couche de base pour l'access unit courante currAU. Pour cela, on initialise un indice currLayer de la couche à coder à la valeur � 1 � au cours de l'étape 625. Une boucle comportant les étapes 630 à 645 est ensuite parcourue sur l'ensemble des couches de raffinement SVC à coder pour l'image courante. Pour chaque couche de raffinement successivement traitée, une étape de codage 630 de la couche considérée, détaillée en regard de la figure 7, est invoquée. Cette étape 630 met en outre en oeuvre la procédure de choix de mode de codage spécifique à la présente invention. Elle est suivie d'une étape 635 de séparation des données de la couche déjà codée qui sert de référence pour prédire la couche courante. Cette séparation est effectuée en fonction des différents modes de codage choisis dans la couche courante dans l'image courante au cours de l'étape de codage 630 qui précède. L'étape 635 est détaillée en regard de la figure 9. Au cours d'une étape 640, on détermine si la dernière couche a été codée. Si non, on incrémente la valeur de currLayer, au cours d'une étape 645 et on retourne à l'étape 630. Une fois toutes les couches de scalabilité désirées codées pour l'access unit courante, on détermine au cours d'une étape 650 s'il reste une image à coder. Si oui, au cours d'une étape 655, on incrémente la valeur currAU et on retourne à l'étape 620, c'est-à-dire que l'on passe au codage de l'image suivante. L'algorithme de la figure 6 se termine lorsque toutes les images de la séquence en entrée ont été codées. La figure 7 illustre un algorithme de codage d'une image donnée dans une couche de raffinement SVC donnée. Les entrées de l'algorithme sont 30 les suivantes : - l'image à coder currAU, - la couche de scalabilité currLayer à coder pour l'image courante, - la couche de référence utilisée pour prédire la couche courante: refLayer et - les données codées des couches de scalabilité déjà codées, depuis la couche de base jusqu'à la couche d'indice refLayer. L'algorithme effectue une boucle comportant des étapes 710 à 750 sur les macroblocs successifs de l'image courante à coder. Pour chaque macrobloc d'indice currMbAddr de l'image courante, on évalue successivement les différents modes de codage possibles pour le macrobloc courant. Un tel mode de codage candidat est noté p. La liste des différents modes de codage possibles, pour chaque type de slices SVC est fournie dans les tables 7-11, 7-13, 7-14 et G-4 du document � Advanced video coding for generic audiovisual services � mentionné plus haut. Au cours de l'étape 710, on considère le premier mode de codage et on l'associe à p. Pour chaque mode de codage candidat p, le macrobloc est codé et décodé suivant le mode de codage p. Ensuite, au cours d'une étape 715, un lagrangien modifié par rapport à celui employé dans le codage des couches de raffinement dans le codeur de référence, est calculé. En effet, la théorie du débit distorsion dit que le problème d'optimisation des équations (1) à (5) peut être résolu en minimisant un lagrangien de la forme J = D + x R, où D représente la distorsion de reconstruction, R représente le débit, et a, représente une pente débit-distorsion qu'il convient d'ajuster en fonction de la contrainte de débit fixée pour le codage considéré. Ainsi, dans le JSVM, les optimisations successivement effectuées pour les différentes couches à coder sont les suivantes : - Couche de base: po = Argminpo[Do(po) + Xo.Ro(po)] (6) - Couche de raffinement d'indice currLayer > 0 : p = ArgplprefLayer...pOmin [DcurrLayer(plprefLayer• • • pO)+ XcurrLayer. R(PlprefLayer• • • pO))] (7) Le multiplicateur de Lagrange X pour chaque couche d'indice i est fixé en fonction du paramètre de quantification utilisé pour l'image courante de la couche courante (voir le document de J. Reichel, H. Schwarz et M. Wien � Joint Scalable Video Model JSVM 1 �. Joint Video Team of ISO/IEC MPEG and ITU-T VCEG, Hong Kong, China, January 2005. Document JVT-NO21.). Ce paramètre de quantification est déterminé de façon à réguler le débit des différentes couches de scalabilité, et à le rendre le plus proche possible de la contrainte de débit associée à chaque couche. La détermination des paramètres de quantification pour réguler le débit n'est pas détaillée ici, car elle est bien connue de l'homme du métier. Ainsi, la minimisation du lagrangien ci-dessus permet de trouver les paramètres de codage (mode de codage, partition, indice d'image(s) de référence et vecteur(s) de mouvement dans le cas de macroblocs prédits temporellement) qui minimisent la distorsion pour une contrainte de débit correspondant au paramètre XcurrLayer. L'inconvénient de la méthode d'optimisation des choix de mode correspondant à l'équation (7) est que, dans le cas applicatif représenté en figures 3b et 4b, le débit des données codées dans les couches inférieures à la couche courante et servant éventuellement pour prédire la couche courante n'est pas pris en compte. C'est pourquoi une formulation modifiée de l'équation (7) est utilisée par l'algorithme de la figure 7 : p = Argmin[J(plprefLayer ...PO)] (8) J(PlprefLayer • • • P0) = D(PlPrefLayer • • • P0) + XcurrLayer•[R(PlprefLayer • • • P0) + Ek=orefLayerR(pk used)] (9) formules dans lesquelles : refLayer représente la couche de référence, XcurrLayer représente une pente débit-distorsion pour la couche d'amélioration en cours de codage, R(pk used) représente le débit des données de référence de la couche d'indice k utilisées pour la prédiction du macrobloc courant de la couche d'amélioration en cours de codage, D(PlPrefLayer ... po) représente la distorsion de reconstruction du macrobloc currMbAddr dans la couche d'amélioration, si les ensembles de paramètres de codage po à preflayer ont respectivement été sélectionnés pour la couche de base et les couche d'amélioration déjà codées et R(plprefLayer ... po) représente le coût de codage du macrobloc currMbAddr dans la couche d'amélioration, si les ensembles de paramètres de codage po à preflayer ont respectivement été sélectionnés pour la couche de base et les couche d'amélioration déjà codées. Ainsi, l'algorithme de la figure 7 effectue une boucle comportant les étapes 715 à 735 sur tous les paramètres de codage possibles pour le macrobloc courant, et sélectionne celui qui minimise le lagrangien de l'équation (9). On obtient ainsi, d'une part, les paramètres de codages optimaux pour le macrobloc courant notés popt et, d'autre part, les données de référence de la couche de référence refLayer utilisées pour la prédiction du macrobloc courant, lorsque l'on code celui-ci avec les paramètres de codage popt. Ces données de référence utiles sont ensuite prises en compte dans le processus de séparation de la couche de référence refLayer, détaillé par l'algorithme de la figure 9. Plus précisément pour chaque macrobloc, au cours de la première itération d'une étape 720, c'est-à-dire pour le premier mode de codage évalué, on initialise une valeur Jmin à J(pIpref). Au cours de chaque itération suivante de l'étape 720 pour ce même macrobloc, on détermine si J(pIpref) L'algorithme de la figure 8 détaille comment est calculé le coût en débit des données de référence utilisées pour un mode de codage particulier d'un macrobloc de l'image courante. Plus précisément, la figure 8 détaille comment est calculée la grandeur R(Pk used), avec k = refLayer, de l'équation (9). Notons que pour les valeurs de k inférieures à refLayer, la valeur R(pk used) a déjà été déterminée au cours du codage des couches inférieures à la couche courante. Les entrées de l'algorithme sont les suivantes: - le mode de codage considéré p pour le macrobloc courant dans la couche de scalabilité en cours de codage, - le débit maximal reçu par les différents clients multicast RN _1, qui est aussi le débit correspondant à l'ensemble des données SVC nécessaire pour décoder la dernière couche SVC à coder, - la bande passante du lien réseau partagé par l'ensemble des clients multicast et supérieur à RN_1 : Rg, - la fréquence d'image de la séquence vidéo codée: f et - la quantité de données codées pour l'image courante, provenant des couches inférieures à la couche en cours de codage, et qu'on a déjà décidé de ne pas utiliser pour la prédiction inter-couches. Cette quantité est notée Rtota, flot used. Notons que, comme déjà indiqué par l'équation (5), le débit des données non utilisées pour la prédiction inter-couches doit demeurer inférieur à la valeur Rg - RN _1. Autrement dit, si on répartit ce débit de façon homogène sur les différentes images de la séquence, concernant l'image en cours de codage, la quantité de données non utilisées dans la prédiction inter-couches et séparées des données utiles ne doit pas dépasser la grandeur (Rg - RN_1) / f. L'algorithme illustré en figure 8 commence, au cours d'une étape 805, par le calcul de la taille du macrobloc codé dans la couche de référence correspondant au macrobloc en cours de traitement dans la couche courante par l'algorithme de la figure 7. Cette taille est notée R(PrefLayer). Puis, au cours d'une étape 810, on calcule, parmi les données codées de ce macrobloc de référence, la quantité de données qui ne sont pas nécessaires pour la prédiction inter-couches, dans le mode de codage couramment évalué par l'algorithme de la figure 7. Celle-ci est notée R(PrefLayer useless). Au cours d'une étape 815, on détermine si la somme de cette valeur et de la quantité de données Rtotai not used qu'on a déjà déplacées dans les couches contenant les données non utilisées (voir figure 5) est inférieure à la contrainte (Rg - RN_1) / f. Si le résultat de l'étape 815 est négatif, cela signifie que l'on ne dispose plus du débit nécessaire pour déplacer les données non nécessaires à la prédiction inter-couches dans une couche de scalabilité dédiée. La grandeur R(PrefLayer used) est alors fixée égale à la taille du macrobloc de référence codé complet au cours d'une étape 830. Si le résultat de l'étape 815 est positif, au cours d'une étape 820, il est possible de séparer les données codées du macrobloc de référence, en déplaçant les données inutiles pour la prédiction inter-couches dans la couche de scalabilité dédiée. La valeur R(PrefLayer used) est alors fixée à la taille du macrobloc de référence codé complet moins la taille des données inutiles pour la prédiction inter-couches : R(PrefLayer used) = R(PrefLayer) ù R(PrefLayer useless) (10) Enfin, la quantité totale de données écartées dans au moins une couche de scalabilité dédiée, car inutile pour la prédiction inter-couches, est mise à jour, au cours d'une étape 825. On lui ajoute, en effet, la quantité de données non nécessaires calculées pour le macrobloc de référence considéré : Rtotai not used prend comme nouvelle valeur le Rtotai not used précédent auquel on ajoute R(PrefLayer useless) (11) Une fois la grandeur R(PrefLayer used) déterminée, l'algorithme de la figure 8 prend fin et cette valeur est retournée à l'algorithme de la figure 7 (étape 715). L'algorithme de la figure 9 détaille la méthode de séparation employée dans le mode de réalisation préférentiel de la présente invention. Cette méthode a été brièvement présentée en regard de la figure 5. Les entrées de l'algorithme de la figure 9 sont les suivantes : - les modes de codage déterminés pour l'image courante lors du codage de l'image courante notée currAUcurrLayer dans la couche de scalabilité courante currLayer. L'ensemble des modes alors déterminés est noté {mbType[MbAddr], b MbAddr E currAUcurrLayer}, - la couche de référence utilisée pour la prédiction inter-couches de la couche courante: refLayer, - la représentation codée de l'image courante dans la couche de référence de la couche courante: currAUrefLayer et - les modes de codages décidés dans l'image currAUrefLayer : {refLayerMbType[MbAddr], V MbAddr E currAUcurrLayer}. L'algorithme parcourt une boucle comportant les étapes 910 à 945, sur les macroblocs de l'image courante. Au cours d'une étape 905, on prend comme valeur de currMbAddr, le premier macrobloc de l'image courante. Pour chaque macrobloc currMbAddr de l'image courante, au cours de l'étape 910, on détermine le macrobloc correspondant dans la couche de référence de la couche courante. Celui-ci est noté refMbAddr. La prochaine étape de l'algorithme, 915, consiste à déterminer si le macrobloc ainsi trouvé dans la couche de référence a été codé en INTRA. Si oui, au cours d'une étape 920, le macrobloc ainsi codé est entièrement maintenu dans la couche de référence contenant les données utiles à la prédiction inter-couches de la couche courante currLayer. Dans le cas où le macrobloc refMbAddr n'est pas codé en INTRA, au cours d'une étape 925, on détermine si la prédiction inter-couches de résidu temporel est utilisée dans le codage du macrobloc currMbAddr de la couche courante. Si c'est le cas, aucune séparation des données codées du macrobloc refMbAddr n'est opérée et celui-ci est entièrement maintenu dans la couche de référence refLayer. En revanche, si la prédiction inter-couches de résidu temporel n'est pas utilisée dans le codage du macrobloc currMbAddr, au cours d'une étape 930, les données de mouvements et les données de résidu temporel constituant le macrobloc de référence codé refMbAddr sont séparées. Ensuite, au cours d'une étape 935, le résidu temporel codé dans le macrobloc refMbAddr est déplacé dans la couche intermédiaire introduite dans le flux SVC codé et destinée à contenir les données codées de la couche refLayer qui ne servent pas à la prédiction inter-couches de la couche courante currLayer. Ces étapes 930 et 935 correspondent à la séparation des données déjà illustrée en figure 5. A la suite de l'une des étapes 920, 925 ou 935, au cours d'une étape 940, on détermine si le dernier macrobloc de l'image courante a été traité. Sinon, au cours d'une étape 945, on affecte à currMbAddr le prochain macrobloc à traiter. Si le résultat de l'étape 940 est positif, l'algorithme de la figure 9 prend fin. REVENDICATIONS1 - Procédé de codage vidéo, caractérisé en ce qu'il comporte : - une étape (605, 610) d'obtention d'au moins deux valeurs de bande passante, - une étape (620) de codage d'une couche de base pour que le débit des données de la couche de base codées soit inférieur ou égal à la bande passante la plus faible et - pour au moins une bande passante supérieure à la bande passante la plus faible, au moins une étape (630, 635) de codage d'une couche d'amélioration pour que la somme du débit des données de ladite couche d'amélioration codée et du débit des données servant de référence d'une couche de référence de ladite couche d'amélioration soit inférieure à ladite bande passante. 2 û Procédé de codage selon la revendication 1, caractérisé en ce que, au cours de l'étape (605, 610) d'obtention d'au moins deux valeurs de bande passante, on obtient des valeurs de bande passante reçues par au moins deux destinataires (300, 301, 350, 351) de données vidéo codées. 3. Procédé selon la revendication 2, caractérisé en ce qu'au moins une étape (630, 635) de codage d'une couche d'amélioration est fonction de la bande passante d'un lien (305, 355) d'un réseau partagé par lesdits destinataires (300, 301, 350, 351). 4. Procédé selon la revendication 3, caractérisé en ce que, au cours d'au moins une étape (630, 635) de codage d'une couche d'amélioration, on minimise la distorsion de reconstruction des images en respectant les deux contraintes suivantes : - la somme du débit des données de raffinement en cours du codage et du débit des données utilisées pour la prédiction inter-couches est inférieure ou égale à une bande passante reçue par un destinataire et- le débit de toutes les données codées, incluant les données inutiles pour la prédiction inter-couches, les données utilisées pour la prédiction inter-couches et les données codées dans ladite couche d'amélioration, est inférieur ou égal à la bande passante du lien du réseau partagé par les destinataires. 5. Procédé selon l'une quelconque des revendications 1 à 4, caractérisé en ce qu'au moins une étape de codage (630, 635) d'une couche d'amélioration comporte une étape de séparation (635, 905 à 945) au cours de laquelle : - dans les données codées de la couche de référence, on sépare (915 à 930) les données codées qui ne servent pas à la prédiction inter-couches et les données qui servent à la prédiction inter-couches, - on insère (935) les données codées qui ne servent pas à la prédiction inter-couches dans une couche dite � intermédiaire � et - on conserve (920), dans la couche de référence, les données qui servent à la prédiction inter-couches. 6. Procédé selon la revendication 5, caractérisé en ce que, au cours de l'étape (635, 905 à 945) de séparation, on sépare (925, 930) les résidus temporels lorsqu'ils ne servent pas de prédicteur pour la prédiction inter-couches de résidu et on les insère (935) dans la couche intermédiaire. 7. Procédé selon l'une quelconque des revendications 5 ou 6, caractérisé en ce que, au cours de l'étape (635, 905 à 945) de séparation, on conserve (920) dans la couche de référence : - les données de mouvement comportant des données de partition de macroblocs, - les données de référence d'indices d'images de référence pour la prédiction temporelle, - les données de vecteurs de mouvement et - les macroblocs codés en INTRA. 8. Procédé selon la revendication 7, caractérisé en ce que, au cours de l'étape (635, 905 à 945) de séparation, on ajoute (935) dans ladite couche intermédiaire une information indiquant que les macroblocs contenus dansladite couche intermédiaire héritent des données de mouvement codées dans la couche de référence. 9. Procédé selon l'une quelconque des revendications 7 ou 8, caractérisé en ce que, au cours de l'étape (635, 905 à 945) de séparation, ladite couche intermédiaire est marquée comme � discardable � et les données codées de la couche d'amélioration comportent une indication que la couche de référence de la couche d'amélioration est la couche de référence après séparation des données pour former la couche intermédiaire. 10. Procédé selon l'une quelconque des revendications 5 à 9, caractérisé en ce que, au cours de l'étape (635, 905 à 945) de séparation, pour chaque macrobloc de la couche courante, si (915) le macrobloc correspondant pour la prédiction inter-couches, dans la couche de référence, a été codé en INTRA, il est conservé (920) dans la couche de référence. 11. Procédé selon la revendication 10, caractérisé en ce que, au cours de l'étape (635, 905 à 945) de séparation, si (915) ledit macrobloc de la couche de référence n'a pas été codé en INTRA et si (925) la prédiction inter-couches de résidu temporel est utilisée dans le codage dudit macrobloc de la couche courante, on conserve les données codées dudit macrobloc dans la couche de référence. 12. Procédé selon l'une quelconque des revendications 10 ou 11, caractérisé en ce que, au cours de l'étape (635, 905 à 945) de séparation, si (915) ledit macrobloc de la couche de référence n'a pas été codé en INTRA et si (925) la prédiction inter-couches de résidu temporel n'est pas utilisée dans le codage dudit macrobloc de la couche courante, on insère (935) les données codées dudit macrobloc dans la couche intermédiaire. 13. Procédé selon l'une quelconque des revendications 1 à 12, caractérisé en ce que, au cours d'au moins une étape (630, 635) de codage d'une couche d'amélioration, on sélectionne (720 à 730) un paramètre de codage qui minimise un lagrangien de la forme J = D + X x R, où D représente la distorsion de reconstruction, R représente le débit des données de référence utilisées pour la prédiction inter-couches, et représente une pente débit- distorsion fonction du débit.14. Procédé selon la revendication 13, caractérisé en ce qu'il comporte une étape (710 à 740) de calcul du débit des données de référence utilisées pour la prédiction inter-couches, au cours de laquelle on prend en compte le débit cumulé des données de référence utilisées pour la prédiction du macrobloc courant de la couche d'amélioration en cours de codage selon un paramètre de codage candidat pour la minimisation du dit lagrangien. 15. Dispositif (100) de codage vidéo, caractérisé en ce qu'il comporte : - un moyen (120, 104, 106) d'obtention d'au moins deux valeurs de 10 bande passante, - un moyen (120, 104, 106) de codage d'une couche de base pour que le débit des données de la couche de base codées soit inférieur ou égal à la bande passante la plus faible et - un moyen (120, 104, 106) de codage adapté, pour au moins une 15 bande passante supérieure à la bande passante la plus faible, à coder une couche d'amélioration pour que la somme du débit des données de ladite couche d'amélioration codée et du débit des données servant de référence d'une couche de référence de ladite couche d'amélioration soit inférieure à ladite bande passante. 20 16. Programme d'ordinateur chargeable dans un système informatique (100), ledit programme contenant des instructions permettant la mise en oeuvre d'un procédé selon l'une quelconque des revendications 1 à 14. 17. Support d'informations lisibles par un ordinateur (100) ou un microprocesseur (120), amovible ou non, conservant des instructions d'un 25 programme informatique, caractérisé en ce qu'il permet la mise en oeuvre d'un procédé selon l'une quelconque des revendications 1 à 14.