Brevet FR2936388A1 — publié le 20100326

La présente invention se rapporte à un procédé et à un dispositif de transcodage d'une séquence vidéo. Plus précisément, la présente invention concerne une technique permettant de passer facilement d'une vidéo codée selon la norme AVC/H.264 vers le format de codage hiérarchique ou "scalable" SVC (en anglais "Scalable Video Coding"). Elle vise en particulier le transcodage d'une vidéo AVC/H.264 composée d'une seule couche correspondant à une unique résolution spatiale et/ou en qualité, vers une vidéo scalable de type SVC composée de plusieurs couches correspondant respectivement à différentes résolutions spatiales et/ou en qualité. La norme de compression vidéo hiérarchique SVC est une extension de la norme vidéo H.264. Cette extension SVC a pour but d'apporter des fonctionnalités nouvelles par rapport à la norme H.264, tout en conservant un excellent taux de compression. Ces nouvelles fonctionnalités concernent principalement la scalabilité spatiale, la scalabilité temporelle et la scalabilité en qualité. Plus précisément, à partir d'un unique flux SVC, on peut extraire des sous-flux correspondant à des résolutions spatiales inférieures, des fréquences temporelles inférieures et des qualités inférieures. Cela permet d'adapter le contenu vidéo à différents types de 20 terminaux ayant des écrans de taille différente et connectés à des réseaux ayant des capacités hétérogènes. Un exemple caractéristique consiste à comprimer une vidéo de haute définition spatiale (720x576) comportant 60 images par seconde. Ce format vidéo de résolution spatiale 720x576 à 60 Hz peut être décodé par un appareil 25 ayant de bonnes capacités de décodage, tel qu'un ordinateur ou un téléviseur muni d'un décodeur interne ou externe. Grâce à la norme SVC, il est également possible, à partir de ce flux SVC, d'extraire un sous-flux (dont les débits sont inférieurs) correspondant à des tailles d'images réduites, nécessitant moins de puissance de décodage. Par exemple, à partir du fichier comprimé de la 30 séquence 720x576, 60 Hz, on peut extraire une vidéo 180x144 (c'est-à-dire quatre fois plus petite en largeur et en hauteur) comportant 7,5 images par seconde. Ce sous-flux est plus facilement décodable par un appareil de faible capacité tel qu'un téléphone portable. Par exemple, dans le cadre d'une application de diffusion vidéo (souvent appelée "video streaming" en anglais) entre un système serveur et un client au travers d'un réseau, la norme SVC présente des avantages importants lorsqu'il s'agit de s'adapter aux conditions du réseau. Aujourd'hui, un grand nombre de caméras, tant professionnelles que destinées au grand public, est capable de coder des vidéos au format AVC/H.264. Ces caméscopes AVCHD permettent d'enregistrer des vidéos en haute définition (HD), c'est-à-dire des vidéos ayant une taille d'images de 1920x1080 (à 60 Hz en mode entrelacé) ou de taille 1280x720 (à 60 Hz en mode progressif). Le consortium AVCHD regroupe plusieurs constructeurs qui utilisent comme norme de compression vidéo le codec de H.264. Cependant, lors de la diffusion d'une vidéo de format HD de taille 1920x1080 enregistrée par un caméscope AVCHD, il n'est pas possible de l'afficher sur un appareil de plus petite taille sans avoir recours à une méthode de recodage, afin d'adapter la vidéo au terminal qui la décodera. Cela a pour inconvénient majeur la nécessité de construire autant de vidéos que de types de terminaux envisagés pour le décodage. Les techniques de transcodage ont été largement explorées au cours de ces dernières années afin de minimiser le coût des étapes nécessaires pour effectuer ce genre d'opération. Néanmoins, les transcodages traditionnels permettent généralement, soit de réduire le débit d'une vidéo tout en respectant le même format, soit de 25 passer à un format entièrement nouveau. Par exemple, le document de brevet US-A-2005 0147163 décrit une méthode de transcodage permettant de réduire les données codées d'une vidéo, qui réduit la qualité des images codées en utilisant des techniques de requantification. Cela permet de convertir une vidéo en réduisant son débit 30 initial sans recourir à un décodage complet de la vidéo suivi d'un nouveau codage. Cependant, la vidéo transcodée conserve sa résolution spatiale initiale. La méthode décrite dans ce document ne permet donc pas de créer une nouvelle résolution spatiale au cours du transcodage. La présente invention a pour but de remédier aux inconvénients de l'art antérieur. Dans ce but, la présente invention propose un procédé de transcodage d'une séquence vidéo d'origine, codée selon un premier format, comportant une unique couche au sens d'un codage vidéo hiérarchique, correspondant à une unique résolution, vers une séquence vidéo codée selon un second format, comportant au moins deux couches au sens d'un codage vidéo hiérarchique, correspondant respectivement à deux résolutions, ce procédé étant remarquable en ce qu'il comporte des étapes suivant lesquelles : on crée au moins une couche inférieure codée selon le second format et ayant une résolution inférieure à la résolution de la couche de la séquence d'origine, en utilisant des données de la couche de la séquence d'origine ; on crée une couche supérieure codée selon le second format et ayant la même résolution que la couche de la séquence d'origine, en utilisant des données de la couche de la séquence d'origine ; et on modifie la couche supérieure en utilisant des données de la couche inférieure. Ainsi, la présente invention permet de convertir une vidéo par exemple de type H.264 en une vidéo par exemple de type SVC comportant plusieurs couches ayant des résolutions spatiales et/ou des résolutions en qualité différentes, améliorant ainsi l'adaptation de la vidéo à la diversité des terminaux envisagés pour son décodage. Lorsque la vidéo initiale H.264 comporte des images de largeur L et de hauteur H, l'invention propose de construire une première couche SVC comportant des images de résolution plus basse de taille Ixh où I L et h H et une seconde couche SVC de même résolution que la vidéo initiale H.264, c'est- à-dire de taille LxH. Comme le codage SVC est de type hiérarchique fondé sur H.264, la seconde couche SVC réutilise les données vidéo déjà codées dans la vidéo initiale H.264, mais elle est modifiée pour prendre en compte les modes inter-couche supplémentaires introduits par la norme SVC, afin d'optimiser la compression selon le codage SVC. Ainsi, l'invention permet de passer d'une vidéo de type H.264 à une vidéo de type SVC sans entreprendre le codage complet SVC. En particulier, aucune boucle d'estimation de mouvement n'est exécutée durant le transcodage. Or, cette étape est généralement la plus consommatrice de temps de calcul pendant le codage. En effet, l'invention permet de réutiliser le train binaire H.264 d'origine pour créer un nouveau train binaire contenant au moins deux couches spatiales selon le format SVC. Le transcodage d'une couche H.264 en plusieurs couches SVC est facilité du fait que le format SVC est une extension de la norme H.264. On cherche à conserver la qualité vidéo initiale en passant de H.264 à SVC, mais on pourrait bien entendu la diminuer si besoin. Selon une caractéristique particulière, à l'étape de création de la couche inférieure, on utilise des vecteurs de mouvement de la couche de la séquence d'origine. Cela permet de s'affranchir de l'estimation de mouvement dans la couche inférieure, qui est toujours très consommatrice en termes de temps de 20 calcul. Selon une caractéristique particulière, à l'étape de modification de la couche supérieure, on utilise la prédiction inter-couche, qui permet de prendre en compte des modes de prédiction et codage supplémentaires pour augmenter le taux de compression global pour la séquence SVC contenant les 25 deux couches. Selon une caractéristique particulière, l'étape de modification de la couche supérieure comporte une étape consistant à comparer, pour un macrobloc courant de la couche supérieure, le coût du nouveau codage utilisant la prédiction inter-couche et le coût de l'ancien codage du macrobloc courant de 30 la couche supérieure selon le premier format et à choisir pour le macrobloc courant de la couche supérieure le codage utilisant la prédiction inter-couche si le coût du nouveau codage est inférieur au coût de l'ancien codage. Cette caractéristique permet d'obtenir le meilleur taux de compression de la séquence en sélectionnant le meilleur mode de codage d'un macrobloc, le choix se faisant entre le mode existant dans la couche d'origine et le mode de prédiction inter-couche introduit par la couche inférieure créée. Selon une caractéristique particulière, les résolutions sont des résolutions spatiales et les couches sont des couches spatiales. La couche inférieure et la couche supérieure ont ainsi des tailles d'images différentes. Cela est très utile lorsqu'il s'agit d'adapter le décodage d'une séquence vidéo à différents appareils ayant des écrans de tailles différentes. Selon une caractéristique particulière, lorsque les données sont organisées en macroblocs de pixels, l'étape de création de la couche inférieure comporte : une étape consistant à déterminer, pour un macrobloc courant de la couche inférieure, les macroblocs de la couche supérieure qui lui correspondent et une étape consistant à choisir le type de codage INTRA ou INTER pour le macrobloc courant de la couche inférieure en fonction du type de codage INTRA ou INTER d'au moins un macrobloc correspondant de la couche supérieure. Cela permet d'exploiter au maximum les données de la couche du premier format de codage pour créer la couche inférieure du second format de codage en gardant une bonne cohérence des modes. Cette couche inférieure sera d'ailleurs utilisée à nouveau pour la création (et l'éventuelle modification) de la couche supérieure du second format. Selon une caractéristique particulière, si les macroblocs correspondants précités comportent au moins un macrobloc de type INTRA, on choisit le type INTRA pour le macrobloc courant de la couche inférieure. Cela simplifie la création de la couche inférieure dès lors que les macroblocs correspondants de la couche supérieure contiennent un macrobloc INTRA. Selon une autre caractéristique particulière, si tous les macroblocs correspondants précités sont de type INTER, on choisit le type INTER pour le macrobloc courant de la couche inférieure. Cela simplifie la création de la couche inférieure dès lors que les macroblocs correspondants de la couche supérieure contiennent un macrobloc INTER. Les vecteurs de mouvement sont ainsi facilement réutilisés au niveau inférieur. Dans un mode particulier de réalisation, le premier format est H.264 et le second format est SVC ("Scalable Video Coding"). Sachant que le format de codage SVC est une extension du format H.264, tous les modes de codage de H.264 sont utilisés dans SVC. SVC introduit en plus une prédiction inter-couche. La création d'un format à plusieurs couches (SVC) à partir d'une couche unique de type H.264 est donc largement facilitée. Dans le même but que celui indiqué plus haut, la présente invention propose également un dispositif de transcodage d'une séquence vidéo d'origine, codée selon un premier format, comportant une unique couche au sens d'un codage vidéo hiérarchique, correspondant à une unique résolution, vers une séquence vidéo codée selon un second format, comportant au moins deux couches au sens d'un codage vidéo hiérarchique, correspondant respectivement à deux résolutions, ce dispositif étant remarquable en ce qu'il comporte : un module pour créer au moins une couche inférieure codée selon le second format et ayant une résolution inférieure à la résolution de la couche de la séquence d'origine, en utilisant des données de la couche de la séquence d'origine ; un module pour créer une couche supérieure codée selon le second format et ayant la même résolution que la couche de la séquence d'origine, en utilisant des données de la couche de la séquence d'origine ; et un module pour modifier la couche supérieure en utilisant des données de la couche inférieure. Toujours dans le même but, la présente invention vise aussi un moyen de stockage d'informations lisible par un ordinateur ou un microprocesseur conservant des instructions d'un programme informatique, remarquable en ce qu'il permet la mise en oeuvre d'un procédé de transcodage tel que succinctement décrit ci-dessus. Toujours dans le même but, la présente invention vise aussi un produit programme d'ordinateur pouvant être chargé dans un appareil programmable, remarquable en ce qu'il comporte des séquences d'instructions pour mettre en oeuvre un procédé de transcodage tel que succinctement décrit ci-dessus, lorsque ce programme est chargé et exécuté par l'appareil programmable. Les caractéristiques particulières et les avantages du dispositif de transcodage, du moyen de stockage d'informations et du produit programme d'ordinateur étant similaires à ceux du procédé de transcodage, ils ne sont pas répétés ici. D'autres aspects et avantages de l'invention apparaîtront à la lecture de la description détaillée qui suit de modes particuliers de réalisation, donnés à titre d'exemples non limitatifs. La description se réfère aux dessins qui l'accompagnent, dans lesquels : - la figure 1 représente de façon schématique un mode particulier de réalisation d'un appareil susceptible de mettre en oeuvre la présente invention ; - la figure 2 représente de façon schématique un codeur vidéo SVC classique engendrant deux couches de scalabilité ; - la figure 3 est un organigramme illustrant les principales étapes 25 d'un procédé de transcodage conforme à la présente invention, dans un mode particulier de réalisation ; - la figure 4 est un organigramme illustrant plus en détail l'étape E306 de la figure 3, consistant à choisir le mode de codage d'un bloc de données de la couche inférieure SVC, dans un mode particulier de réalisation ; 30 - la figure 5 est un organigramme illustrant plus en détail l'étape E307 de la figure 3, consistant à modifier la couche supérieure SVC en exploitant la couche inférieure SVC, dans un mode particulier de réalisation ; - les figures 6a et 6b illustrent deux exemples non limitatifs de correspondance entre des blocs de données de la couche inférieure SVC et de la couche supérieure SVC ; et - les figures 7a et 7b illustrent deux exemples non limitatifs de 5 déduction des vecteurs de mouvement de la couche inférieure SVC à partir de la couche supérieure SVC. La figure 1 montre un mode particulier de réalisation d'un dispositif de traitement d'information, tel qu'un micro-ordinateur 100, apte à fonctionner comme dispositif de transcodage d'une séquence vidéo conforme à la présente 10 invention. Le micro-ordinateur 100 est connecté à différents périphériques, par exemple un moyen d'acquisition ou de stockage d'images 107 tel qu'une caméra numérique ou un scanner, relié à une carte graphique (non représentée) et fournissant des informations d'image à transcoder. 15 Le micro-ordinateur 100 comporte une interface de communication 118 reliée à un réseau 134 apte à transmettre des données numériques à transcoder et à transmettre des données transcodées par le micro-ordinateur. Le micro-ordinateur 100 comporte également un moyen de stockage permanent 112, tel qu'un disque dur, ainsi qu'un lecteur de moyens de stockage 20 temporaire tel qu'un lecteur de disquettes 114 coopérant avec une mémoire externe, telle qu'une disquette ou une "clé" comportant une mémoire 116 (par exemple une clé dite USB par référence à son port de communication). La mémoire externe 116 et le moyen de stockage permanent 112 peuvent contenir des données transcodées ou à transcoder. La mémoire 25 externe 116 peut aussi contenir des instructions d'un logiciel mettant en oeuvre le procédé objet de l'invention, instructions qui, une fois lues par le micro-ordinateur 100, sont stockées dans le moyen de stockage permanent 112. En variante, le programme Progr permettant au dispositif 100 de mettre en oeuvre l'invention est stocké dans une mémoire morte 104, par exemple du type ROM 30 (en anglais "Read Only Memor)r'). Dans une autre variante, le programme est reçu par l'intermédiaire du réseau de communication 134 et est stocké dans le moyen de stockage permanent 112. Le micro-ordinateur 100 est relié à un microphone 124 par l'intermédiaire d'une carte d'entrées/sorties 122. Le micro-ordinateur 100 comprend également un écran 108 permettant de visualiser les données à transcoder et/ou de servir d'interface avec l'utilisateur, afin que l'utilisateur puisse par exemple paramétrer certains modes de traitement à l'aide d'un clavier 110 ou de tout autre moyen approprié de pointage et/ou de saisie tel qu'une souris, un crayon optique, etc. Bien entendu, la mémoire externe 116 peut être remplacée par tout support d'information tel qu'un CD-ROM (mémoire en lecture seule en disque compact, en anglais "Compact Disc - Read Only Memory") ou une carte mémoire. De façon 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 l'invention. Une unité de calcul ou unité centrale de traitement (CPU, en anglais "Central Processing Unit") 120 exécute les instructions relatives à la mise en oeuvre de l'invention. Lors de la mise sous tension, ces instructions, stockées dans une mémoire non volatile, par exemple la ROM 104, sont transférées dans une mémoire vive (par exemple du type RAM, en anglais "Random Access Memor)r') 106, qui contient également des registres pour mémoriser les variables nécessaires à la mise en oeuvre de l'invention. En particulier, l'unité centrale de traitement 120 est adaptée à mettre en oeuvre les algorithmes illustrés sur les organigrammes des figures 3 à 5. On peut faire évoluer le mode particulier de réalisation choisi pour l'invention, par exemple en ajoutant des méthodes de traitement actualisées ou améliorées ; dans un tel cas, ces nouvelles méthodes peuvent être transmises au dispositif 100 par le réseau de communication 134, ou chargées dans le dispositif 100 par l'intermédiaire d'une ou de plusieurs mémoires externes 116. Un bus de communication 102 permet la communication entre les différents éléments du micro-ordinateur 100 et les éléments reliés à celui-ci. On notera que la représentation du bus 102 n'est pas limitative. En effet, l'unité centrale CPU 120 est, par exemple, susceptible de communiquer des instructions à tout élément du micro-ordinateur 100, directement ou par l'intermédiaire d'un autre élément du micro-ordinateur 100. Le schéma-bloc de la figure 2 illustre un codeur vidéo SVC classique qui engendre deux couches de scalabilité, dont une couche dite de base ou couche inférieure et une couche dite de raffinement ou couche supérieure. Le codeur est organisé en deux étages similaires respectivement dédiés au codage de chacune des deux couches de scalabilité. Chaque étage reçoit en entrée la séquence vidéo d'origine à comprimer, éventuellement sous- échantillonnée (dans un module 20 de sous-échantillonnage) à la résolution spatiale de la couche de scalabilité codée par l'étage considéré (c'est le cas du premier étage, codant la couche de base, dans la partie basse de 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, dans la partie basse de la figure 2, correspond au schéma de prédiction temporelle et spatiale d'un codeur vidéo non scalable AVC/H.264 et est connu de l'homme du métier. Pour rappel, il effectue successivement les étapes suivantes pour coder la couche de base compatible AVC/H.264 : • L'image courante à comprimer fournie en entrée du codeur est découpée en macroblocs de taille 16x16 pixels dans un module 2000 de division en macroblocs. Chaque macrobloc subit tout d'abord une étape d'estimation de mouvement dans un module 2020 d'estimation de mouvement, qui tente de trouver, parmi des images de référence stockées dans une mémoire tampon, des blocs de référence permettant de prédire au mieux le macrobloc courant. Cette étape d'estimation de mouvement fournit un ou plusieurs indices d'images de référence contenant les blocs de référence trouvés, ainsi que les vecteurs de mouvement correspondants. • Dans un module 2040 de compensation en mouvement, une étape de compensation en mouvement (mode INTER) applique les vecteurs de mouvement estimés aux macroblocs de référence trouvés et copie les macroblocs ainsi obtenus dans une image de prédiction temporelle. • Par ailleurs, dans un module 2060 de prédiction INTRA, une étape de prédiction INTRA 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 étape de choix de mode de codage, dans un module 208o de sélection du mode de codage, détermine le mode de codage, parmi les prédictions temporelle et spatiale, qui fournit le meilleur compromis débit-distorsion pour le codage du macrobloc courant. • La différence entre le macrobloc courant et le macrobloc de prédiction ainsi sélectionné est calculée dans le soustracteur 210o, fournissant un résidu (temporel ou spatial) à comprimer. • Ce macrobloc résiduel subit alors des étapes de transformation, de type transformation en cosinus discrète (DCT, en anglais "Discrete Cosine Transform") et de quantification, dans un module 2120 de transformée et quantification. Un codage entropique des échantillons ainsi quantifiés est alors effectué dans un module 2140 de codage entropique et fournit les données de texture comprimées du macrobloc courant. • Enfin, le macrobloc courant est reconstruit. Tout d'abord, une quantification inverse et une transformation inverse sont effectuées dans un module 216o de quantification et transformée inverses. Le résultat de ces opérations est additionné à la prédiction (provenant du module 2080 de sélection du mode de codage) du macrobloc courant, par l'intermédiaire d'un additionneur 218o, pour fournir le macrobloc courant reconstruit. En parcourant tous les macroblocs de l'image, l'image entière courante est ainsi reconstruite. Elle est ensuite stockée dans une mémoire tampon pour servir de référence à la prédiction temporelle des prochaines images à coder. Elle peut subir une étape de filtrage préalable dans un module 2200, qui a pour but de remédier aux effets de blocs induits par les transformées de type DOT. Le deuxième étage du codeur, représenté dans la partie haute de la figure 2, illustre le codage de la couche supérieure ou de raffinement du train binaire SVC. Cette couche apporte un raffinement en résolution spatiale par rapport à la couche inférieure ou de base. Le schéma de codage de cette couche supérieure est également connu de l'homme du métier. Comme le montre la figure 2, ce schéma 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 le module 2081 de sélection du mode de codage. Ce mode de prédiction est appelé prédiction inter-couche (en anglais "inter-layer prediction"). Il consiste à réutiliser les données codées dans une couche inférieure à la couche de raffinement en cours de codage pour servir de prédiction au macrobloc courant. Cette couche inférieure est appelée la couche de référence pour la prédiction inter-couche de la couche de raffinement. 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 co-localisé, c'est-à-dire se situant à 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 précisément, peuvent servir de référence pour prédire le macrobloc courant : 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 en INTER, texture reconstruite dans le cas d'un macrobloc codé en INTRA). Dans le cas d'une couche de raffinement spatial, des opérations de sur-échantillonnage des données de texture, de résidu et de mouvement de la couche de référence sont effectuées pour faire coïncider les éléments de la couche de base avec ceux de la couche de raffinement. En dehors de cette technique de prédiction inter-couche utilisée dans l'extension SVC de la norme AVC/H.264, 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 compatible AVC/H.264. De plus, le codage d'une couche supplémentaire est possible pour créer une couche SVC, c'est-à-dire une deuxième couche de raffinement. Il met en oeuvre un schéma de codage identique à celui de la première couche de raffinement. Enfin, comme le montre la figure 2, les données vidéo comprimées sont mises dans des unités de codage appelées NALs (en anglais "NAL units") avant de former, dans un module 222, le train binaire final qui entremêle les NALs des deux couches créées. Ainsi, la première couche peut être décodée par un décodeur classique AVC/H.264. Ce dernier ne pourra pas utiliser les NALs de la seconde couche, qui sont de type inconnu pour lui. L'organigramme de la figure 3 illustre les principales étapes du procédé de transcodage conforme à l'invention, dans un mode particulier de réalisation. Comme expliqué en introduction, L et H étant respectivement la largeur et la hauteur de la vidéo initiale H.264, l'invention propose de construire une première couche SVC comportant des images de taille Ixh, où I L et h H, et une seconde couche SVC de même résolution que la vidéo initiale H.264, c'est-à-dire de taille LxH. Comme le codage SVC est de type hiérarchique fondé sur H.264, la seconde couche SVC est créée en réutilisant les données vidéo déjà codées dans la vidéo initiale H.264, mais elle est modifiée pour prendre en compte les modes inter-couche supplémentaires introduits par la norme SVC. Dans un mode particulier de réalisation, on souhaite conserver pour la vidéo transcodée SVC la qualité de la vidéo initiale H.264. Pour cela, on construit d'abord la couche inférieure, puis on la réutilise pour prédire la couche supérieure correspondant à la vidéo initiale H.264 tout en maintenant sa qualité. Pour simplifier la description, dans le mode particulier de réalisation illustré sur la figure 3, on engendre une seule couche de résolution spatiale inférieure. Cependant, ce mode de réalisation n'est pas limitatif et on peut bien entendu envisager de créer plusieurs couches inférieures, en réitérant le processus illustré sur cette figure. Au cours d'une première étape E300, un certain nombre de paramètres sont initialisés pour réaliser le transcodage pour la création des deux futures couches : • le débit Da associé à la couche inférieure Cl. Il doit être bien sûr inférieur au débit initial de la vidéo H.264 ; • le vecteur RRS correspondant au rapport de résolution spatiale entre les deux couches, qui peut s'exprimer sous la forme : RRS = [RL;RH] où RL et RH sont respectivement les rapports de résolution en largeur et en hauteur. Ces valeurs doivent être supérieures ou égales à 1. Comme la norme SVC l'autorise, ces rapports de résolution peuvent être différents au niveau de la largeur et de la hauteur de l'image. Ils s'expriment de la façon suivante entre la couche supérieure CS et la couche inférieure Cl : RL = Lcs et RH = Hcs , où Lc Hci Lcs et Lc, désignent respectivement la largeur d'image des couches supérieure et inférieure et Hcs et Hc1 désignent respectivement la hauteur d'image des couches supérieure et inférieure. Au cours de cette même étape d'initialisation E300, les en-têtes du nouveau train binaire peuvent être créés comme les unités de codage spécifiques que sont les unités SPS (en anglais "Sequence Parameter Set") et PPS (en anglais "Picture Parameter Set") décrivant les caractéristiques des deux futures couches SVC. La construction des unités SPS et PPS est conforme à la norme SVC. Lors de l'étape suivante E301, une boucle sur les images de la séquence vidéo commence. Cette boucle permet de lire, une par une, les images codées de la séquence vidéo. A l'étape E301, on lit la première image. L'image courante dans le train binaire est alors décodée selon le processus de décodage H.264 au cours de l'étape E302. Conformément à la présente invention et contrairement à l'approche utilisée dans la norme SVC, l'image ainsi décodée (appartenant à la couche supérieure) fournit la base de codage pour la nouvelle couche inférieure qui va ensuite être créée. A l'étape E302, un certain nombre d'éléments sont gardés en mémoire afin d'être utilisés plus tard lors du transcodage de la séquence selon la norme SVC : • la valeur des vecteurs de mouvement ; • le coût de codage des différentes entités décodées correspondant au : - codage des données de prédiction de texture (mode INTRA) ; - codage des vecteurs de mouvement (mode INTER) ; - codage des résidus. Puis lors d'un test E303, on vérifie si le vecteur de rapport de résolution spatiale RRS est différent de [1;1], c'est-à-dire qu'on détermine s'il y a un changement de résolution. Si c'est le cas (test E303 positif), on effectue une étape E304 de mise à l'échelle, pour réduire la taille de l'image. Cette mise à l'échelle est faite par des moyens classiques de filtrage connus de l'homme du métier. Ce filtrage réalise un sous-échantillonnage de l'image décodée selon le rapport de résolution indiqué par le vecteur RRS . Il est à noter que lorsque le test E303 est négatif, cela signifie que la résolution spatiale de la couche inférieure ne change pas. Dans le cadre de la norme SVC, il s'agit de créer deux couches vidéo avec des qualités différentes, la couche supérieure permettant d'augmenter la qualité de la couche inférieure. Dans le cas particulier où RRS = [1;1], la dérivation des vecteurs de mouvement est immédiate, car ceux-ci peuvent être intégralement transférés de la couche supérieure vers la couche inférieure. Dans ce cas, on ne procède pas à un changement de résolution spatiale pour la couche inférieure, mais simplement à une diminution de la qualité. A l'issue de l'étape E304, ou directement après le test E303 lorsqu'il est négatif, on procède macrobloc par macrobloc au codage de l'image de la couche inférieure. Ainsi, une étape E305 consiste à initialiser un compteur de macroblocs (désignés par MB sur les dessins) de la couche inférieure Cl. L'étape suivante E306 consiste à choisir le mode de prédiction pour le macrobloc courant, c'est-à-dire son mode de codage, en distinguant deux cas principaux : macrobloc de type INTRA ou macrobloc de type INTER. Cette étape est décrite en détail ci-dessous en liaison avec la figure 4. Une fois le macrobloc courant de la couche Cl codé, on effectue une étape E307 de création et modification éventuelle de la couche supérieure 5 SVC. Tout d'abord, pour le premier macrobloc uniquement, on crée la couche supérieure SVC. Par défaut, lors de sa création, cette couche supérieure SVC contient toutes les données codées des unités de codage de la couche H.264 initiale. Les en-têtes des données codées sont changés pour 10 respecter la nouvelle syntaxe SVC. Une fois la couche supérieure SVC créée, on modifie les données codées des unités de codage de la couche supérieure nouvellement créée si le mode de codage de prédiction inter-couche apporte un gain selon une métrique débit-distorsion. Autrement dit, on réajuste le codage des macroblocs de la couche supérieure en utilisant un nouveau mode de 15 codage de prédiction inter-couche que la norme SVC autorise. Cette phase de réajustement effectuée à l'étape E307 est décrite en détail ci-dessous en liaison avec la figure 5. L'étape E307 est suivie d'un test E308 permettant de savoir si le dernier macrobloc de l'image courante de la couche inférieure a été traité. Si le 20 test E308 est négatif, on passe au macrobloc suivant de l'image courante de la couche inférieure (étape E309) et on retourne à l'étape E306. Si le test E308 est positif, on passe à l'étape E310. L'étape E310 consiste à ajouter, dans le train binaire SVC en cours de construction, les nouvelles unités de codage (NALs) créées pour l'image 25 courante en cours de traitement. Ces unités de codage correspondent aux unités de codage de la couche inférieure Cl mais aussi à celles de la couche supérieure CS créée à partir des unités de codage et des modes de codage associés de la vidéo initiale, les unités de codage de la couche supérieure étant éventuellement modifiées comme expliqué ci-après en liaison avec la figure 5. 30 Ensuite, lors d'un test E311, on vérifie si l'image courante est la dernière image de la séquence vidéo en cours de traitement. Si le test E311 est positif, le transcodage est terminé. Sinon, on passe à la lecture de l'image codée suivante (étape E312), puis on procède à son décodage en retournant à l'étape E302 précédemment décrite. On décrit maintenant de façon détaillée, en liaison avec l'organigramme de la figure 4, les différentes étapes effectuées à l'étape E306 de la figure 3, de sélection du mode de codage du macrobloc courant de la couche inférieure, noté MBc,(i). Au cours d'une première étape E401, on détermine les macroblocs correspondant, dans la couche supérieure, au macrobloc courant MBc,(i). Cela consiste à trouver la correspondance entre un macrobloc de la couche inférieure et les macroblocs de la couche supérieure. Pour un macrobloc courant MBc,(i), les macroblocs correspondants peuvent s'écrire de la façon suivante : K CORR(MBc(i)) = UMBcs,i(k) k=1 Des exemples de découpage en macroblocs et leurs 15 correspondances inter-couche sont représentés sur les figures 6a et 6b, qui sont commentées plus loin. Une fois les macroblocs correspondants identifiés dans la couche supérieure, on détermine le type de codage pour le macrobloc de la couche inférieure au cours d'une étape E402. Par exemple, on part du principe que si, 20 dans la couche supérieure, il existe au moins un macrobloc de type INTRA dans la liste des macroblocs correspondants, alors le macrobloc de la couche inférieure sera également de type INTRA et que, si tous les macroblocs correspondants sont codés en INTER, le macrobloc courant MBc,(i) sera aussi codé en INTER. Bien entendu, d'autres règles peuvent être créées pour déduire 25 le mode INTRA ou INTER le plus approprié pour le macrobloc MBc,(i) en fonction des modes de codage utilisés pour les macroblocs correspondants dans la couche supérieure. Selon le choix fait précédemment, le codage du macrobloc courant MBc,(i) est différent. Si ce choix correspond à coder le macrobloc MBc,(i) en 30 INTRA (test E403 positif), on entreprend, au cours de l'étape E404, le codage de prédiction INTRA pour le macrobloc MBc,(i). Ce codage est identique au codage de prédiction INTRA de SVC. Dans le cas contraire (test E403 négatif), le macrobloc MBc,(i) est codé en INTER. Dans ce cas, le calcul de la partition en blocs des vecteurs de mouvement du macrobloc MBc,(i) est réalisé à l'étape E405. Ainsi, le macrobloc MBc,(i) est subdivisé en une sous-partition de N blocs Bc,,; (n) : N MBc1(i) = UBcu(n) n=1 Au cours de l'étape suivante E406, les vecteurs de mouvement sont calculés en appliquant le facteur de résolution spatiale. Le vecteur de mouvement pour chaque bloc Bc,,;(n) de la sous-partition du macrobloc MBc,(i) est alors calculé de la façon suivante : MVB~ ~n~ = MVBcS,c(k) /RRS, ou MVBcS,c(k) est le vecteur de mouvement de la sous-partition de la couche supérieure CS correspondant au bloc courant Bci,;(n). Les figures 7a et 7b, commentées plus loin, illustrent la dérivation des vecteurs de mouvement et de la partition de la couche inférieure pour des vecteurs de rapport de résolution spatiale RRS = [2;2] et RRS = [1,5;1,5]. La partition et les vecteurs de mouvement du macrobloc courant MBc,(i) sont alors codés dans le train binaire de la couche inférieure Cl. Par souci de simplification, le macrobloc courant utilise ici un seul macrobloc de référence pour la compensation en mouvement. Néanmoins, on peut bien entendu étendre facilement la procédure de dérivation dans le cas où le macrobloc utilise plusieurs macroblocs pour référence, par exemple dans le cas de la bi-prédiction. Au cours de l'étape suivante E407, le résidu du macrobloc MBc,(i) est codé. Lors de cette étape classique, la différence entre la prédiction (soit en mode INTRA, soit en mode INTER) et l'image décodée sous-échantillonnée est calculée. Cette image de différence subit ensuite une transformation de type DCT puis une quantification selon les étapes classiques de transformation et de quantification de la norme SVC. Lors du codage du macrobloc courant, on tient compte du débit cible Da associé à la couche inférieure pour ajuster le pas de quantification. Ainsi, à l'issue de l'étape E407, le macrobloc courant est codé soit en prédiction INTRA, soit en INTER, en utilisant les vecteurs de mouvement de la couche initiale de la vidéo H.264. Le train binaire engendré comporte également le résidu quantifié du macrobloc courant MBc,(i). On décrit maintenant de façon détaillée, en liaison avec l'organigramme de la figure 5, les différentes étapes effectuées à l'étape E307 de la figure 3, de modification de la couche supérieure CS pour exploiter la notion de prédiction inter-couche introduite par la norme SVC et ainsi réduire le coût de codage de la couche supérieure en exploitant à nouveau la couche inférieure. Lors d'un premier test E500, on vérifie que tous les macroblocs de la couche inférieure correspondant au macrobloc courant MBcs(j) ont été traités. Si le test E500 est négatif, on retourne à l'étape E308 de la figure 3. Si le test E500 est positif, on identifie ensuite le type de codage du macrobloc MBcs(j) tel qu'il était codé dans le train binaire initial H.264, lors d'un test E501. Si ce macrobloc MBcs(j) est de type INTRA (test E501 positif), on passe à l'étape E502, au cours de laquelle on évalue la prédiction INTRA inter- couche. C'est typiquement une étape SVC (connue sous le nom de mode INTRA BL), qui considère les pixels reconstruits de la couche inférieure (après remise à l'échelle à la résolution supérieure) correspondant spatialement au macrobloc MBcs(j). Ces pixels reconstruits sont considérés comme de bons prédicteurs pour la couche supérieure. A l'étape suivante E504, le résidu de codage est calculé et codé. Il est à noter que dans le cadre de la norme SVC, un mode de prédiction de résidu est possible entre la couche inférieure et la couche supérieure. On utilisera bien sûr cette possibilité dans la mesure où elle apporte un gain en coût de codage. Le coût de codage total CC(MBcs(j)) du macrobloc MBcs(j) est alors déterminé en additionnant le coût de la prédiction et le coût du nouveau résidu. Puis l'étape E505 consiste à décider du mode final de codage pour ce macrobloc MBcs(j). Pour ce faire, on compare le coût de codage initial CCinitial de ce macrobloc tel qu'il avait été codé dans H.264 (et mémorisé lors de l'étape E302) et le nouveau coût de codage lorsqu'on bénéficie de la prédiction inter-couche. Si le coût du nouveau mode de codage CCnou, est plus avantageux, c'est-à-dire CCnouv(MBcs(j)) Si le test E501 est négatif, c'est-à-dire si le macrobloc MBcs(j) est de type INTER, on passe à l'étape E503, au cours de laquelle on évalue la prédiction INTER inter-couche. C'est ici aussi une étape typiquement SVC, qui considère les vecteurs de mouvement du macrobloc de la couche inférieure (après remise à l'échelle à la résolution supérieure) comme une bonne prédiction des vecteurs de mouvement de la couche supérieure. L'étape E503 est suivie de l'étape E504, où le résidu de codage est calculé et codé. Le coût de codage total CC(MBcs(j)) du macrobloc MBcs(j) est calculé en additionnant le coût de la prédiction des vecteurs de mouvement et le coût du nouveau résidu. L'étape E504 est suivie de l'étape E505 précédemment décrite, où la sélection du mode de codage pour le macrobloc courant MBcs(j) est effectuée. Les figures 6a et 6b représentent deux exemples non limitatifs de configurations de couches SVC. La figure 6a illustre le cas où il existe un rapport de résolution spatiale RRS égal à [2;2]. Dans ce cas, la correspondance des blocs entre la couche inférieure et la couche supérieure se fait en unités entières de blocs : à quatre macroblocs de la couche supérieure MBcs(1), MBcs(2), MBcs(7) et MBcs(8) correspond un seul et unique macrobloc de la couche inférieure, MBc(1). La figure 6b illustre le cas où il existe un rapport de résolution spatiale RRS égal à [1,5;1,5]. Dans ce cas, la correspondance des blocs entre la couche inférieure et la couche supérieure se fait en unités fractionnelles de blocs : le macrobloc de la couche inférieure MBc,(1), après projection dans la couche supérieure, englobe entièrement le macrobloc MBcs(1) et partiellement les macroblocs MBcs(2), MBcs(7) et MBcs(8). La figure 7a représente un exemple non limitatif de déduction des 5 vecteurs de mouvement de la couche inférieure à partir de la couche supérieure lorsque le rapport de résolution spatiale RRS est égal à [2;2]. Cette déduction peut se faire de façon simple en appliquant dans un premier temps des règles de gestion des partitions telles que celles énoncées ci-dessous : Règle 1 : une partition 16x16 de la couche CS devient une partition 10 8x8 dans la couche Cl. Règle 2 : une partition 8x8 de CS devient une partition 4x4 dans Cl. Règle 3 : deux partitions 8x16 ou 16x8 de CS sont fusionnées pour obtenir une seule partition 8x8 dans Cl. Les vecteurs de mouvement des deux partitions d'origine sont moyennés pour former le vecteur de mouvement 15 résultant. Règle 4 : deux partitions 8x4 ou 4x8 de CS sont fusionnées pour obtenir une seule partition 4x4 dans Cl. Les vecteurs de mouvement des deux partitions d'origine sont moyennés pour former le vecteur de mouvement résultant. 20 Règle 5 : quatre partitions 4x4 de CS sont fusionnées pour obtenir une seule partition 4x4 dans Cl. Les vecteurs de mouvement des quatre partitions d'origine sont moyennés pour former le vecteur de mouvement résultant. Le schéma du bas de la figure 7a montre un exemple de dérivation 25 de la partition pour Cl dans le cas où le rapport de résolution spatiale RRS vaut [2;2]. La liste ci-dessous donne, pour l'exemple de la figure 7a, quelques règles simples pour déduire la partition et les vecteurs de mouvement pour Cl : • Le premier macrobloc de CS est composé de deux partitions 4x8 et de trois partitions 8x8. En appliquant les règles décrites ci-dessus, une 30 nouvelle partition 4x4 est créée pour Cl. Le vecteur de mouvement du bloc 4x4 en haut à gauche de Cl est obtenu en moyennant les deux vecteurs de mouvement 4x8 (règle 4). • Le deuxième macrobloc de CS est composé d'une partition 8x8. La nouvelle partition de Cl sera 4x4 (règle 2). On hérite ici des 4 vecteurs de mouvement, puis ils sont mis à l'échelle en appliquant le rapport de résolution spatiale. • Le troisième macrobloc de CS est composé de deux partitions 4x4 à gauche et de deux partitions 8x8 à droite. La nouvelle partition de Cl sera 4x4 (règle 5). Les 4 vecteurs de mouvement de chaque bloc 4x4 de CS seront moyennés pour ne plus en former qu'un seul. • Le quatrième macrobloc de CS est composé de deux partitions 8x16. La nouvelle partition de Cl sera 8x8 (règle 3). Bien entendu, cet exemple n'est pas limitatif et d'autres règles de dérivation des vecteurs de mouvement peuvent être mises en place. De plus, lorsque les règles de dérivation ci-dessus ne s'appliquent pas, la partition en cours de création pourra prendre en compte la corrélation des valeurs de vecteurs de mouvement pour déduire la nouvelle partition ainsi que les nouveaux vecteurs de mouvement associés. La figure 7b illustre un exemple d'absence de correspondance de partition. Le dessin montre que le découpage en macroblocs de la couche inférieure Cl est mis à l'échelle et est superposé en trait mixte fin sur les macroblocs de la couche supérieure CS. Les traits en pointillés correspondent à une partition hypothétique en 4x4. Il est évident que pour ce rapport particulier de RRS égal à [1,5;1,5], les règles évoquées plus haut sont plus difficiles à définir en raison de la mauvaise concordance des blocs entre la couche Cl et la 25 couche CS. Dans ce cas précis, la nouvelle partition pourrait être, par exemple, calculée à partir de la partition dominante, c'est-à-dire correspondant à la surface la plus importante, de la couche CS et en tirant parti de la corrélation des vecteurs de mouvement de la partition initiale CS. En effet, des partitions 30 ayant des vecteurs de mouvement fortement corrélés seront fusionnées. REVENDICATIONS1. Procédé de transcodage d'une séquence vidéo d'origine, codée selon un premier format, comportant une unique couche au sens d'un codage vidéo hiérarchique, correspondant à une unique résolution, vers une séquence vidéo codée selon un second format, comportant au moins deux couches au sens d'un codage vidéo hiérarchique, correspondant respectivement à deux résolutions, ledit procédé étant caractérisé en ce qu'il comporte des étapes suivant lesquelles : on crée (E306) au moins une couche inférieure codée selon le second format et ayant une résolution inférieure à la résolution de la couche de la séquence d'origine, en utilisant des données de la couche de la séquence d'origine ; on crée une couche supérieure codée selon le second format et ayant la même résolution que la couche de la séquence d'origine, en utilisant des données de la couche de la séquence d'origine ; et on modifie (E307) la couche supérieure en utilisant des données de la couche inférieure. 2. Procédé selon la revendication 1, caractérisé en ce que, à l'étape (E306) de création de la couche inférieure, on utilise des vecteurs de mouvement de la couche de la séquence d'origine. 3. Procédé selon la revendication 1 ou 2, caractérisé en ce que, à l'étape (E307) de modification de la couche supérieure, on utilise la prédiction inter-couche (E502, E503). 4. Procédé selon la revendication 3, caractérisé en ce que l'étape (E307) de modification de la couche supérieure comporte une étape (E505) consistant à comparer, pour un macrobloc courant de la couche supérieure (MBcs(j)), le coût du nouveau codage (CCnouv(MBcs(j))) utilisant la prédiction inter-couche et le coût de l'ancien codage (CCinitial(MBcs(j))) dudit macrobloc courant de la couche supérieure selon le premier format et à choisir pour le macrobloc courant de la couche supérieure le codage utilisant la prédictioninter-couche si le coût du nouveau codage (CCnouv(MBcs(j))) est inférieur au coût de l'ancien codage (CCinitial(MBcs(j))). 5. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que les résolutions sont des résolutions spatiales et les 5 couches sont des couches spatiales. 6. Procédé selon la revendication 5, dans lequel les données sont organisées en macroblocs de pixels, caractérisé en ce que l'étape (E306) de création de la couche inférieure comporte : une étape (E401) consistant à déterminer, pour un macrobloc 10 courant de la couche inférieure (MBc,(i)), les macroblocs de la couche supérieure qui lui correspondent et une étape (E402) consistant à choisir le type de codage INTRA ou INTER pour le macrobloc courant de la couche inférieure en fonction du type de codage INTRA ou INTER d'au moins un macrobloc correspondant de la couche 15 supérieure. 7. Procédé selon la revendication 6, caractérisé en ce que, si lesdits macroblocs correspondants comportent au moins un macrobloc de type INTRA, on choisit (E402) le type INTRA pour le macrobloc courant de la couche inférieure. 20 8. Procédé selon la revendication 6, caractérisé en ce que, si tous lesdits macroblocs correspondants sont de type INTER, on choisit (E402) le type INTER pour le macrobloc courant de la couche inférieure. 9. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que le premier format est H.264 et le second format est SVC 25 ("Scalable Video Coding"). 10. Dispositif de transcodage d'une séquence vidéo d'origine, codée selon un premier format, comportant une unique couche au sens d'un codage vidéo hiérarchique, correspondant à une unique résolution, vers une séquence vidéo codée selon un second format, comportant au moins deux couches au 30 sens d'un codage vidéo hiérarchique, correspondant respectivement à deux résolutions, ledit dispositif étant caractérisé en ce qu'il comporte : des moyens pour créer au moins une couche inférieure codée selon le second format et ayant une résolution inférieure à la résolution de la couche de la séquence d'origine, en utilisant des données de la couche de la séquence d'origine ; des moyens pour créer une couche supérieure codée selon le second format et ayant la même résolution que la couche de la séquence d'origine, en utilisant des données de la couche de la séquence d'origine ; et des moyens pour modifier la couche supérieure en utilisant des données de la couche inférieure. 11. Dispositif selon la revendication 10, caractérisé en ce que les moyens de création de la couche inférieure sont adaptés à utiliser des vecteurs de mouvement de la couche de la séquence d'origine. 12. Dispositif selon la revendication 10 ou 11, caractérisé en ce que les moyens de modification de la couche supérieure sont adaptés à utiliser la prédiction inter-couche. 13. Dispositif selon la revendication 12, caractérisé en ce que les moyens de modification de la couche supérieure sont adaptés à comparer, pour un macrobloc courant de la couche supérieure (MBcs(j)), le coût du nouveau codage (CCnouv(MBcs(j))) utilisant la prédiction inter-couche et le coût de l'ancien codage (CCinitial(MBcs(j))) dudit macrobloc courant de la couche supérieure selon le premier format et à choisir pour le macrobloc courant de la couche le codage utilisant la prédiction inter-couche si le coût du nouveau codage (CCnouv(MBcs(j))) est inférieur au coût de l'ancien codage (CCinitial(M Bcs(j ))) 14. Dispositif selon l'une quelconque des revendications 10 à 13, caractérisé en ce que les résolutions sont des résolutions spatiales et les couches sont des couches spatiales. 15. Dispositif selon la revendication 14, dans lequel les données sont organisées en macroblocs de pixels, caractérisé en ce que les moyens de création de la couche inférieure comportent : des moyens pour déterminer, pour un macrobloc courant de la couche inférieure (MBc,(i)), les macroblocs de la couche supérieure qui lui correspondent et des moyens pour choisir le type de codage INTRA ou INTER pour le macrobloc courant de la couche inférieure en fonction du type de codage INTRA ou INTER d'au moins un macrobloc correspondant de la couche supérieure. 16. Dispositif selon la revendication 15, caractérisé en ce que lesdits moyens de choix sont adaptés à choisir le type INTRA pour le macrobloc courant de la couche inférieure si lesdits macroblocs correspondants comportent au moins un macrobloc de type INTRA. 17. Dispositif selon la revendication 15, caractérisé en ce que lesdits moyens de choix sont adaptés à choisir le type INTER pour le macrobloc courant de la couche inférieure si tous lesdits macroblocs correspondants sont de type INTER. 18. Dispositif selon l'une quelconque des revendications 10 à 17, caractérisé en ce que le premier format est H.264 et le second format est SVC ("Scalable Video Coding"). 19. Moyen de stockage d'informations lisible par un ordinateur ou un microprocesseur conservant des instructions d'un programme informatique, caractérisé en ce qu'il permet la mise en oeuvre d'un procédé de transcodage selon l'une quelconque des revendications 1 à 9. 20. Produit programme d'ordinateur pouvant être chargé dans un appareil programmable, caractérisé en ce qu'il comporte des séquences d'instructions pour mettre en oeuvre un procédé de transcodage selon l'une quelconque des revendications 1 à 9, lorsque ce programme est chargé et exécuté par l'appareil programmable.