Brevet FR2894422A1 — publié le 20070608

PROCEDE DE PREDICTION DE DONNEES MOUVEMENT ET DE TEXTURE 1. Domaine de l'invention L'invention concerne un procédé pour générer, pour des images d'une séquence haute résolution progressive, au moins un prédicteur de mouvement et éventuellement au moins un prédicteur de texture à partir de données de mouvement et éventuellement de données de texture associées à des images d'une séquence basse résolution entrelacée. 2. Etat de l'art Les procédés de codage hiérarchique avec graduation ou scalabilité spatiale ( spatial scalability en anglais) sont du domaine connu. La graduation représente la capacité d'échelonner l'information pour la rendre décodable à plusieurs niveaux de résolution et/ou de qualité. Plus précisément, un flux de données généré par ce type de procédé de codage est divisé en plusieurs couches, notamment une couche de base et une ou plusieurs couches d'amélioration. Ces procédés permettent notamment d'adapter un unique flux de données à des conditions de transport variables (bande passante, taux d'erreurs,...), ainsi qu'aux attentes des clients et aux capacités variées de leurs récepteurs (CPU, caractéristiques du dispositif de visualisation, ...). Dans le cas particulier de la graduation spatiale, la partie du flux de données correspondant à des images basse résolution de la séquence pourra être décodée indépendamment de la partie du flux de données correspondant aux images haute résolution. En revanche, la partie du flux de données correspondant à des images haute résolution de la séquence ne pourra être décodée qu'à partir de la partie du flux de données correspondant aux images basse résolution. Le codage hiérarchique avec graduation spatiale permet de coder une première partie de données appelée couche de base, relative aux images basse résolution, et à partir de cette couche de base une deuxième partie de données appelée couche d'amélioration, relative aux images haute résolution. Généralement, chaque macrobloc de l'image haute résolution est prédit temporellement selon un mode de prédiction classique (par exemple mode de prédiction bidirectionnel, mode de prédiction direct, mode de prédiction anticipé ...) ou bien est prédit selon un mode de prédiction inter-couche. Dans ce dernier cas, des données de mouvement (par exemple un partitionnement du macrobloc en blocs, éventuellement des vecteurs de mouvement et des indices d'images de référence) et éventuellement des données de texture associées à un bloc de pixels de l'image haute résolution sont déduites ou héritées des données de mouvement respectivement des données de texture associées à des blocs de pixels d'une image basse résolution. Les procédés connus ne permettent pas de générer de tels prédicteurs dans le cas où la séquence basse résolution est entrelacée et la séquence haute résolution est progressive. 3. Résumé de l'invention L'invention a pour but de pallier au moins un de ces inconvénients de l'art antérieur. L'invention concerne en particulier un procédé pour générer pour au moins un bloc de pixels d'une image d'une séquence d'images progressives haute résolution, dite séquence haute résolution, au moins un prédicteur de mouvement à partir de données de mouvement associées aux images d'une séquence d'images entrelacées basse résolution, dite séquence basse résolution, de même fréquence temporelle que la séquence haute résolution. Chaque image entrelacée comprend une trame supérieure entrelacée avec une trame inférieure et peut être codée en mode bi-trame ou en mode mono-trame. A chaque image progressive et à chaque trame d'une image entrelacée est associée une référence temporelle. Selon l'invention, au moins un prédicteur de mouvement est généré pour un bloc de pixels de l'image haute résolution à partir des données de mouvement associées à au moins un bloc de pixels de la trame supérieure ou inférieure d'une image basse résolution de même référence temporelle que l'image haute résolution si l'image basse résolution est codée en mode mono-trame. Si l'image haute résolution a la même référence temporelle que la trame supérieure d'une image basse résolution et si l'image basse résolution est codée en mode bi- trame, un prédicteur de mouvement est généré pour un bloc de pixels de l'image haute résolution à partir des données de mouvement associées à au moins un bloc de pixels de l'image basse résolution. Sinon aucun prédicteur de mouvement n'est généré. Préférentiellement, si l'image basse résolution est codée en mode mono-trame, un prédicteur de mouvement est généré en sous échantillonnant lesdites données de mouvement associées au moins un bloc de pixels de la trame supérieure ou inférieure de l'image basse résolution de même référence temporelle que l'image haute résolution avec un rapport inter-couche horizontal dans la direction horizontale de l'image et un premier rapport inter-couche vertical dans la direction verticale de l'image. Avantageusement, si l'image basse résolution est codée en mode bi-trame et si l'image haute résolution est de même référence temporelle que la trame supérieure de l'image basse résolution, un prédicteur de mouvement est généré en sous échantillonnant lesdites données de mouvement associées au moins un bloc de pixels de l'image basse résolution avec le rapport inter-couche horizontal dans la direction horizontale de l'image et un deuxième rapport inter-couche vertical dans la direction verticale de l'image. Préférentiellement, un prédicteur de texture est généré pour un bloc de pixels de l'image haute résolution à partir des données de texture associées à au moins un bloc de pixels de la trame supérieure ou inférieure d'une image basse résolution de même référence temporelle que l'image haute résolution. Avantageusement, le prédicteur de texture est généré en sous échantillonnant lesdites données de texture associées au moins un bloc de pixels de la trame supérieure ou inférieure de l'image basse résolution de même référence temporelle que l'image haute résolution avec le rapport inter-couche horizontal dans la direction horizontale de l'image et le premier rapport inter-couche vertical dans la direction verticale de l'image. Selon une caractéristique particulière, le rapport inter-couche horizontal est égal à la largeur des images haute résolution divisée par la largeur des trames des images basse résolution, le premier rapport inter-couche vertical est égal à la hauteur des images haute résolution divisée par la hauteur des trames des images basse résolution et le deuxième rapport inter-couche vertical est égal à la hauteur des images haute résolution divisée par la hauteur des images basse résolution. Préférentiellement, les données de mouvement associées aux images basse résolution comprennent des vecteurs de mouvement et les vecteurs de mouvement associées à une image basse résolution codées en mode bitrame ou à chacune des trames supérieure et inférieure d'une image basse résolution codée en mode mono-trame ont la même parité. Selon un mode de réalisation particulier, le procédé est utilisé par un procédé de codage d'images haute résolution à partir d'images basse résolution. Avantageusement, les images basse résolution sont codées conformément à la norme MPEG-4 AVC. Selon un mode de réalisation particulier, le procédé est utilisé par un procédé de décodage d'images haute résolution à partir d'images basse résolution. 4. Listes des fiqures L'invention sera mieux comprise et illustrée au moyen d'exemples de modes de réalisation et de mise en ceuvre avantageux, nullement limitatifs, en référence aux figures annexées sur lesquelles : la figure 1 représente une séquence d'images basse résolution entrelacée et une séquence d'images haute résolution progressive de même fréquence temporelle; la figure 2 illustre le procédé de génération de prédicteurs de texture selon l'invention dans le cas où la séquence d'images basse résolution est entrelacée et la séquence d'images haute résolution est progressive; la figure 3 illustre le procédé de génération de prédicteurs de mouvement selon l'invention dans le cas où la séquence d'images basse résolution est entrelacée et la séquence d'images haute résolution est progressive ; la figure 4 illustre le sous-échantillonnage par un facteur 2 dans la direction horizontale de l'image de deux macroblocs MB1 et MB2 d'une image basse résolution et le partitionnement résultant pour le macrobloc prédicteur MB_pred correspondant. 5. Description détaillée de l'invention L'invention concerne un procédé de prédiction inter-couche qui consiste à générer des prédicteurs de mouvement et éventuellement des prédicteurs de texture pour des images d'une séquence d'images progressives haute résolution, dite séquence haute résolution, à partir d'images d'une séquence d'images entrelacées basse résolution, dite séquence basse résolution. Les séquences sont découpées en groupe d'images appelés GOP ( Group Of Pictures en anglais). Chaque image basse résolution comprend une trame supérieure ( top field en anglais) entrelacée avec une trame inférieure ( bottom field en anglais). Sur la figure 1, une image entrelacée d'indice k est composée d'une trame supérieure référencée kT et d'une trame inférieure référencée kB et une image progressive est référencée par son indice k. Une référence temporelle est associée à chaque image de la séquence haute résolution et à chaque trame de la séquence basse résolution. Une image haute résolution et une trame d'une image basse résolution, dite trame basse résolution, ayant la même référence temporelle coïncident verticalement. Les images basse résolution, également référencées images BR, ont une largeur w (w représentant un nombre de pixels ou de colonnes) et une hauteur de 2h (2h représentant un nombre de pixels ou de lignes et signifie 2 multiplié par h). Chaque trame d'une image basse résolution entrelacée a une largeur w et une hauteur h. Les images haute résolution, également référencées images HR, ont une largeur W (W représentant un nombre de pixels ou de colonnes) et une hauteur de 2H (2H représentant un nombre de pixels ou de lignes et signifie 2 multiplié par H). Dans le mode de réalisation décrit, les images entrelacées peuvent être codées soit en mode mono-trame ( field picture en anglais), i.e. chaque trame est codée comme une image à part entière, ou bien en mode bi-trame ( frame picture en anglais), i.e. les deux trames sont codées ensemble. Les lignes d'une image sont numérotées à partir de 0 et donc la première ligne est une ligne paire et la deuxième ligne (numérotée 1) est une ligne impaire. L'invention consiste donc à générer pour des images de la séquence haute résolution ou pour au moins un bloc de pixels de celles-ci, au moins un prédicteur de mouvement et éventuellement au moins un prédicteur de texture. Un prédicteur de texture associé à une image haute résolution ou à au moins un bloc de pixels d'une image haute résolution est une image ou un bloc de prédiction qui associe à chacun de ses pixels des données de texture (par exemple une valeur de luminance et éventuellement des valeurs de chrominance) qui sont générées à partir de données de texture associées à au moins une image (ou trame) ou à au moins un bloc de pixels d'une image (ou à au moins un bloc de pixels d'une trame) basse résolution selon un procédé de sous échantillonnage de la texture tel que le procédé ESS appliqué à la texture (ESS est l'acronyme de l'anglais de Extended Spatial Scalability) qui est décrit dans le document ISO/IEC MPEG & ITU-T VCEG intitulé Joint Scalable Video Model JSVM3 Annex-S référencé JVT-P202, J.Reichel, H.Schwarz, M.Wien. Ce document est référencé JSVM3 dans la suite. Un prédicteur de mouvement associé à une image haute résolution ou à au moins un bloc de pixels d'une image haute résolution est défini comme une image de prédiction ou un bloc de prédiction auxquels sont associés des données de mouvement (p.ex. un type de partitionnement, éventuellement des indices d'images de référence permettant d'identifier les images de référence vers lesquelles pointent les vecteurs de mouvement). Le prédicteur de mouvement est généré à partir de données de mouvement associées à au moins une image (ou trame) ou à au moins un bloc de pixels d'une image (ou à au moins un bloc de pixels d'une trame) basse résolution selon un procédé de sous échantillonnage du mouvement tel que le procédé ESS appliqué au mouvement qui est décrit dans JSVM3 ou tel que le procédé ESS modifié, décrit ci-après, dérivé du procédé ESS appliqué au mouvement. Le procédé ESS modifié, référencé MESS sur la figure 3 permet notamment de traiter des séquences haute et/ou basse résolution entrelacées. Plus particulièrement, il permet de traiter le cas où la hauteur ou la largeur de l'image haute résolution est inférieure à celle de l'image basse résolution. En outre, il permet avantageusement d'éviter que les prédicteurs de mouvement comprennent des vecteurs de mouvement invalides, i.e. qui pointent vers des images de référence non disponibles, lorsque le procédé de prédiction selon l'invention est utilisé par un procédé de codage ou décodage hiérarchique. Selon le procédé ESS modifié, un prédicteur de mouvement intermédiaire est généré en sous échantillonnant par 2 les données de mouvement associées à l'image basse résolution, plus particulièrement les données de mouvement associées à chacun des macroblocs de l'image basse résolution, dans la direction verticale de l'image, dans la direction horizontale de l'image ou dans les deux directions,. Le procédé de sous échantillonnage par 2 est réitéré dans la direction verticale de l'image tant que la hauteur dudit prédicteur intermédiaire est supérieure à la hauteur de l'image haute résolution et il est réitéré dans la direction horizontale de l'image tant que la largeur dudit prédicteur intermédiaire est supérieure à la largeur de l'image haute résolution. Le sous échantillonnage consiste notamment à diviser par deux les coordonnées des vecteurs de mouvement associés aux blocs de pixels. Par exemple, en référence à la figure 4, à partir de deux macroblocs MB1 ou MB2 de l'image basse résolution éventuellement divisés en bloc de pixels, un macrobloc MB du prédicteur de mouvement intermédiaire est généré. La taille des blocs de pixels dans un macrobloc est indiquée au dessus dudit macrobloc. Par exemple, sur la deuxième ligne de la figure 4, le macrobloc MB1 n'est pas divisé, le macrobloc MB2 est divisé en deux blocs de taille 8 par 16 pixels (notée 8x16) et le macrobloc MB généré à partir de ces deux macroblocs est divisé en 4 bloc 8x8 dont deux sont divisés en blocs 4x8. L'homogénéisation des indices d'images de référence entre les blocs de taille 8 par 8 pixels à l'intérieur d'un macrobloc MB et la suppression des blocs de type intra isolés à l'intérieur d'un macrobloc MB sont effectuées de la même manière que dans le procédé de prédiction inter-couche ESS appliqué au mouvement et décrit dans JSVM3. Le prédicteur de mouvement associé à l'image haute résolution est généré à partir du dernier prédicteur de mouvement intermédiaire ainsi généré, en appliquant le procédé ESS avec un rapport inter-couche égal à W selon la wl direction horizontale de l'image et 2H selon la direction verticale de l'image, 2hz où w; est largeur et 2h; est la hauteur du dernier prédicteur de mouvement intermédiaire généré. En outre, pour chaque macrobloc de prédiction, le procédé d'héritage des vecteurs de mouvement est modifié pour ne pas générer des vecteurs de mouvement invalides, i.e. qui pointent vers des trames ou des images bi-trames non disponibles dans le processus de décomposition temporelle. En l'occurrence, si tous les vecteurs de mouvements associés à un macrobloc de prédiction MB_pred sont invalides alors la prédiction de mouvement inter-couche n'est pas autorisée pour ce macrobloc. Dans le cas contraire (i.e. au moins un des vecteurs est valide), le procédé de prédiction ESS appliqué au mouvement est utilisé. Le procédé selon l'invention, illustré par les figures 1 à 3, est décrit pour une image mais peut s'appliquer à une partie d'image et notamment à un macrobloc. Il permet par exemple de gérer le cas d'une séquence basse résolution entrelacée au format SD, i.e. de dimension 720 par 288 pixels, 60 Hz et d'une séquence haute résolution progressive au format 720p, i.e. 1280 par 720 pixels, 60 Hz ou bien le cas d'une séquence basse résolution entrelacée au format 1080i, i.e. de dimension 1920 par 540 pixels, 60 Hz et d'une séquence haute résolution progressive au format 1080p, i.e. 1920 par 1080 pixels, 60 Hz . Des prédicteurs de texture associés à des images haute résolution d'indice 2k et 2k+1 sur la figure 1 sont générés de la manière suivante tel qu'illustré par la figure 2: • Un prédicteur de texture bi-trame de dimension W par 2H associé à l'image haute résolution d'indice 2k est généré 20 à partir des données de texture de la trame supérieure de l'image basse résolution d'indice k en appliquant le procédé ESS avec un rapport inter-couche égal à W w selon la direction horizontale de l'image et 2 selon la direction verticale de l'image. • Un prédicteur de texture bi-trame de dimension W par 2H associé à l'image haute résolution d'indice 2k+1 est généré 21 à partir des données de texture de la trame inférieure de l'image basse résolution d'indice k en appliquant le procédé ESS avec un rapport inter-couche égal à W selon la direction horizontale de l'image et 2H selon la w h direction verticale de l'image. Si l'image basse résolution d'indice k est codée en mode bi-trame, aucun prédicteur de mouvement bi-trame associé à l'image haute résolution d'indice 2k+1 n'est généré et un prédicteur de mouvement bi-trame de dimension W par 2H associé à l'image haute résolution d'indice 2k sur la figure 1 est généré 30 à partir des données de mouvement associées à l'image basse résolution bi-trame d'indice k tel qu'illustré par la figure 3 en appliquant le procédé ESS modifié avec un rapport inter-couche égal à W w selon la direction horizontale de l'image et Zh selon la direction verticale de l'image. Dans les autres cas, i.e si l'image basse résolution d'indice k est codée en mode mono-trame, des prédicteurs de mouvement associés aux images haute résolution d'indice 2k et 2k+1 sur la figure 1 sont générés de la manière suivante tel qu'illustré par la figure 3: • Un prédicteur de mouvement bi-trame de dimension W par 2H associé à l'image haute résolution d'indice 2k est généré 31 à partir des données de mouvement de la trame supérieure de l'image basse résolution d'indice k en appliquant le procédé ESS modifié avec un rapport inter-couche égal à W selon la direction w horizontale de l'image et 2H ù selon la direction verticale de l'image. • Un prédicteur de mouvement bi-trame de dimension W par 2H associé à l'image haute résolution d'indice 2k+1 est généré 32 à partir des données de mouvement de la trame inférieure de l'image basse résolution d'indice k en appliquant le procédé ESS modifié avec un rapport inter-couche égal à W selon la direction w horizontale de l'image et 2H ù selon la direction verticale de l'image. Selon une caractéristique particulière, il est possible de n'autoriser pour coder les images basse résolution que les vecteurs de mouvement de même parité afin de pouvoir supprimer une trame sur deux dans la séquence basse résolution et une image bi-trame sur deux dans la séquence haute résolution afin que les données numériques générées par un procédé de codage utilisant le procédé de prédiction selon l'invention soient temporellement scalables ( temporal scalability en anglais). Bien entendu, l'invention n'est pas limitée aux exemples de réalisation mentionnés ci-dessus. En particulier, l'homme du métier peut apporter toute variante dans les modes de réalisation exposés et les combiner pour bénéficier de leurs différents avantages. Par exemple, le procédé selon l'invention peut s'appliquer à une partie de l'image haute résolution. En effet, il est possible de générer des prédicteurs de mouvement et/ou de texture pour des blocs de pixels (p.ex. des macroblocs de taille 16 par 16 pixels) de l'image haute résolution à partir de données de mouvement et/ou de texture associées à des blocs de pixels des images basse résolution. De même, l'invention a été décrite dans le cas où la trame supérieure d'une image entrelacée est affichée en premier (cas top field first en anglais) et peut être étendue de manière directe au cas où la trame inférieure est affichée en premier (cas bottom field first en anglais) en inversant les trames supérieure et inférieure. Par ailleurs, l'invention peut également être étendue au cas de plusieurs séquences haute résolution (i.e. plusieurs couche d'amélioration). En outre, l'invention est avantageusement utilisée par un procédé de codage ou de décodage d'une séquence d'images ou vidéo. Préférentiellement, la séquence d'images basse résolution est codée conformément à la norme de codage MPEG4 AVC définie dans le document ISO/IEC 14496-10 (intitulé en anglais Information technology -- Coding of audio-visual objects -- Part 10: Advanced Video Coding ). Revendications 1. Procédé pour générer pour au moins un bloc de pixels d'une image d'une séquence d'images progressives haute résolution, dite séquence haute résolution, au moins un prédicteur de mouvement à partir de données de mouvement associées aux images d'une séquence d'images entrelacées basse résolution, dite séquence basse résolution, de même fréquence temporelle que ladite séquence haute résolution, chaque image entrelacée comprenant une trame supérieure entrelacée avec une trame inférieure et pouvant être codé en mode bi-trame ou en mode mono-trame, à chaque image progressive et à chaque trame d'une image entrelacée étant associée une référence temporelle caractérisé en ce que ledit au moins un prédicteur de mouvement est généré (31, 32) pour ledit au moins un bloc de pixels de ladite image haute résolution à partir des données de mouvement associées à au moins un bloc de pixels de la trame supérieure ou inférieure d'une image basse résolution de même référence temporelle que ladite image haute résolution si ladite image basse résolution est codée en mode mono-trame et en ce que, si ladite image haute résolution a la même référence temporelle que la trame supérieure d'une image basse résolution et si ladite image basse résolution est codée en mode bi-trame, ledit au moins un prédicteur de mouvement est généré (30) pour ledit au moins un bloc de pixels de ladite image haute résolution à partir des données de mouvement associées à au moins un bloc de pixels de ladite image basse résolution, et sinon aucun prédicteur de mouvement n'est généré. 2. Procédé selon la revendication 1, caractérisé en ce que, si ladite image basse résolution est codée en mode mono-trame, ledit au moins un prédicteur de mouvement est généré en sous échantillonnant (31, 32) lesdites données de mouvement associées audit au moins un bloc de pixels de ladite trame supérieure ou inférieure de ladite image basse résolution de même référence temporelle que ladite image haute résolution avec un rapport inter-couche horizontal dans la direction horizontale de l'image et un premier rapport inter-couche vertical dans la direction verticale de l'image. 3. Procédé selon l'une des revendications 1 et 2, caractérisé en ce que, si ladite image basse résolution est codée en mode bi-trame et si ladite image haute résolution est de même référence temporelle que la trame supérieure de ladite image basse résolution, ledit au moins un prédicteur de mouvement est généré en sous échantillonnant lesdites données de mouvement associées audit au moins un bloc de pixels de ladite image basse résolution avec ledit rapport inter-couche horizontal dans la direction horizontale de l'image et un deuxième rapport inter-couche vertical dans la direction verticale de l'image. 4. Procédé selon l'une des revendications 1 à 3, caractérisé en ce qu'un prédicteur de texture est généré (20, 21) pour ledit au moins un bloc de pixels de ladite haute résolution à partir des données de texture associées à au moins un bloc de pixels de la trame supérieure ou inférieure d'une image basse résolution de même référence temporelle que ladite image haute résolution. 5. Procédé selon la revendication 4 elle-même dépendant de la revendication 3, caractérisé en ce que ledit prédicteur de texture est généré en sous échantillonnant (20, 21) lesdites données de texture associées audit au moins un bloc de pixels de la trame supérieure ou inférieure de ladite image basse résolution de même référence temporelle que ladite image haute résolution avec ledit rapport inter-couche horizontal dans la direction horizontale de l'image et ledit premier rapport inter-couche vertical dans la direction verticale de l'image. 6. Procédé selon l'une des revendications 3 et 5, caractérisé en ce que ledit rapport inter-couche horizontal est égal à la largeur des images haute résolution divisée par la largeur des trames des images basse résolution, en ce que le premier rapport inter-couche vertical est égal à la hauteur des images haute résolution divisée par la hauteur des trames des images basse résolution et en ce que le deuxième rapport inter-couche vertical est égal à la hauteur des images haute résolution divisée par la hauteur des images basse résolution. 7. Procédé selon l'une des revendications 1 à 6, caractérisé en ce que les données de mouvement associées aux images basse résolution comprennent des vecteurs de mouvement. 8. Procédé selon la revendication 7, caractérisé en ce que les vecteurs de mouvement associées à une image basse résolution codées en mode bitrame ou à chacune des trames supérieure et inférieure d'une image basse résolution codée en mode mono-trame ont la même parité. 10 9. Procédé selon l'une des revendications 1 à 8, caractérisé en ce que ledit procédé est utilisé par un procédé de codage d'images haute résolution à partir d'images basse résolution. 15 10. Procédé selon la revendication 9, caractérisé en ce que les images basse résolution sont codées conformément à la norme MPEG-4 AVC. 11. Procédé selon la revendication 1 à 8, caractérisé en ce que ledit procédé est utilisé par un procédé de décodage d'images haute résolution à partir 20 d'images basse résolution. 12. Produit programme d'ordinateur caractérisé en ce qu'il comprend des instructions de code de programme pour l'exécution des étapes du procédé selon l'une quelconque des revendications 1 à 8, lorsque ledit programme est 25 exécuté sur un ordinateur.5