FR 2824988 A1 20021122 FR 0106648 A 20010521 pour grossir ladite image vidéo. 1 2824988 L'invention concerne un procédé et dispositif de codage vidéo d'une séquence d'images, utilisant la norme MPEG 4. Elle traite plus particulièrement du choix des modes de prédiction des macroblocs (MB) des images de type P au regard du contenu spatio- temporel des images précédentes de type B. Le domaine technique est celui de la compression vidéo, le contexte celui des outils algorithmiques tels la transformation cosinus discrète (TCD), la quantification des coefficients transformés, I'estimation et la compensation de mouvement, les codages à longueurs fixe et variables. Les images à coder sont de type intra ou inter, de type P (prédictive) ou B (prédictive bidirectionnelle) en inter. Dans un but de clarté, les termes anglais de la norme correspondant aux termes français utilisés, pourront être rappelés entre parenthèses. Par la suite, on parlera indistinctement d'image ou de VOP (Video Object Plane), terme désignant, dans la norme MPEG 4, I'entité image qui n'est pas forcément rectangulaire. Les termes "macrobloc co-localisé" désignent le macrobloc qui se trouve à la même position spatiale dans une autre image. Le choix du mode de prédiction des macroblocs appartenant aux images de type B ou images B. de par la norme MPEG 4, se trouve très dépendant du mode de codage retenu pour les macroblocs "co-localisés" de la dernière image codée de référence prédite P. La norme MPEG 4 ISO/IEC 14496-2 relative au codage vidéo précise, en ce qui concerne la compensation en mouvement pour les macroblocs sautés ("skipped macroblocks", paragraphe 7. 6.9.6), que si le macrobloc co-localisé qui se trouve dans le plan objet vidéo I ou P (I-VOP ou P-VOP) le plus récemment décodé est sauté, le macrobloc appartenant aux images B est traité dans le mode prédictif anticipé ("forward prediction") avec le vecteur mouvement nul. En d'autres termes, si un macrobloc de l'image P est sauté, c'est à dire non codé, les macroblocs "co-localisés" appartenant aux images précédentes de type B. selon l'ordre d'affichage, sont obligatoirement reconstruits par un mode d'interpolation spécifique exploitant une image de référence antérieure, selon l'ordre d'affichage, via des vecteurs nuis. 2 2824988 Ce concept a été élaboré en partant du principe que le contenu d'une séquence d'images respecte un minimum de stationnarité temporelle entre deux images de types I ou P. Cela est vrai pour des contenus qu'on peut qualifier de classiques (scène iV, cinéma, visiophone, visioconférence). En revanche, dés que l'on est confronté à des montages, des vidéo clips, des résumés de films dotés d'effets spéciaux, cette stationnarité n'est plus respectée et il peut arriver qu'une image n'ait aucun rapport avec le contenu des images précédente et suivante. S'il s'avère que cette image isolée est de type B. la conséquence est que les macroblocs de cette image B. qui ont leurs homologues "sautés ("skipped") dans la dernière image P codée, sont inévitablement reconstruits avec une information qui n'a aucun lien avec l' i nformation i nitia le. Visuellement le résu ltat, certes fug itif, est catastroph iq ue et se caractérise par des défauts de la taille du macrobloc. La figure 1 illustre le problème qui peut se poser avec des macroblocs non-codés dans un P-VOP (image de type P). Une séquence d'images est par exemple constituée de quatre images successives VOP 1 à VOP 4. Les images VOP 1 et VOP 4 sont des images de type P (P-VOP), les images VOP 2 et VOP 3 sont des images de type B (B-VOP). Le P-VOP le plus récemment décodé est le VOP 4. Lorsque le B-VOP 3 est décodé, certains des macroblocs du P- VOP 1 sont recopiés tels quels dans le B-VOP 3, dans la mesure o les macroblocs co-localisés du P-VOP 4 n'ont pas été codés, ces macroblocs du P-VOP 4 étant alors également une recopie des macroblocs du P-VOP 1. On voit ainsi appara'^tre un certain nombre de macroblocs noirs dans ce B-VOP. L'invention a pour but de pallier les inconvénients précités. Elle a pour objet un procédé de codage vidéo utilisant la norme MPEG 4 d'une séquence d'images comportant des images de type 1, P et B. un groupe d'images de type B étant borné par une image de type I ou P précédente pour la borne inférieure et une image de type P suivante pour la borne supérieure en considérant l'ordre temporel ou d'afffichage, caractérisé en ce qu'il comporte: - un calcul d'un niveau de corrélation attribué à un bloc ou macrobloc d'une image de type B définissant sa corrélation avec le bloc ou macrobloc co-localisé de l'une ou l'autre des images bornant les images de type B. - une comparaison du niveau à un seuil prédéterminé, 3 2824988 - une interdiction du mode de codage "macrobloc sauté" d'un bloc ou macrobloc d'une image de type P de la borne supérieure, si le niveau de corrélation attribué au bloc ou macrobloc co-localisé d'une image de type B est inférieur au seuil. Selon un mode de réalisation particulier, le procédé est caractérisé en ce qu'il comporte, pour le codage d'un macrobloc d'une image de type P correspondant à la borne supérieure, - une étape de précodage déterminant si le codage est compatible du mode "macrobloc sauté", - dans l'affirmative, une étape de calcul d'un niveau de corrélation pour le macrobloc co-localisé de chacune des images de type B. -une étape de comparaison des niveaux obtenus à un seuil prédéterminé, -une étape de codage du macrobloc courant, soit en mode "macrobloc sauté" si le niveau est supérieur au seuil prédéfini pour chacun des macroblocs des images de type B. soit en mode de codage avec vecteur de mouvement nul dans le cas contraire. Selon un mode particulier de réalisation, le niveau de corrélation est calculé à partir d'un paramètre SAD: SADC'r = ( |Bcur (i' i)-IPprev (i' j) |) i,j=o avec i, j: indices lignes et colonnes des pixels contenus dans le macrobloc, cur: indices des images de type B situées entre les deux images I ou P et P. Bc7ér image de type B courante sur laquelle la mesure de différence est effectuée, Ppre image de type I ou P précédente selon l'ordre d'affichage, SADcur somme de la valeur absolue des différences. Selon un mode particulier de réalisation, le niveau de corrélation est calculé à partir d'un paramètre SAD: i,j=15 SADcur = |BCur (i, i)-Pnext (i' i)l, i,j=0 avec 4 2824988 i, j: indices lignes et colonnes des pixels contenus dans le macrobloc, cur: indices des images de type B situées entre les deux images I ou P et P. Bc7ir image de type B courante sur laquelle la mesure de différence est effectuée, PneX image de type P suivante selon l'ordre d'afffichage, SADcur somme de la valeur absolue des différences. Selon un mode particulier de réalisation, I'une ou l'autre des images bornant les images de type B à partir de laquelle est calculé le niveau de corrélation est l'image décodée locale de type I ou P précédant le groupe d'images de type B ou l'image décodée locale de type P suivant le groupe d'images de type B. selon l'ordre d'afffichage. L'invention a également pour objet un dispositif de codage utilisant la norme MPEG 4 pour le codage d'une séquence d'images, caractérisé en ce qu'il comporte des moyens pour empêcher le mode de codage "macrobloc sauté" d'un macrobloc d'une image de type P à partir d'une information de corrélation mesurant la corrélation de ce macrobloc ou du macrobloc co- localisé de l'image I ou P précédente avec le macrobloc co-localisé d'une image de type B suivante, selon l'ordre de codage. La présente invention a pour principal avantage d'éviter des défauts de visualisation consistant en l'apparition de macroblocs défectueux dans des conditions spécifiques de codage d'images. La qualité de restitution des images décodées en est améliorée. D'autres particularités et avantages de l'invention appara^'tront clairement dans la description suivante donnée à titre d'exemple non limitatif et faite en regard des figures annexées qui représentent: - la figure 1, une succession de quatre images d'une séquence d'images faisant appara^'tre des défauts d'affchage, - la figure 2 I'ordre de décodage et d'afffichage des différents types d'images, - la figure 3, le décodage d'un macrobloc courant, - la figure 4, un organigramme simplifié du procédé de codage. 2824988 La figure 2 représente, pour la partie supérieure, une succession d'images ou plans VOP selon leur ordre de décodage et donc codage, et, pour la partie inférieure, une succession d'images selon leur ordre d'affichage. On remarquera que le P-VOP (plan objet de type P) le plus récemment décodé est affiché après les B-VOPs qui s'y réfèrent. La figure 3 représente, d'une manière schématique, le décodage d'un macrobloc courant 1 d'un B-VOP référencé 3. Ce décodage tient compte du macrobloc co-localisé 2 du P-VOP référencé 4 précédemment décodé. Si le macrobloc co-localisé 2 est non-codé (mode "macrobloc sauté"), le macrobloc 1 est construit par simple prédiction "anticipée" ou "forward prediction" du macrobloc co-localisé, c'est-à-dire une simple recopie de ce macrobloc co-localisé. L'image référencée 3 correspond par exemple à la 3ième image de la suite d'images représentée à la partie supérieure de la figure 2, I'image référencée 4 correspond à la 2ième image, la prédiction anticipée ou "forward prédiction" venant alors de la première image soit le l-VOP dans cet exemple. L'idée de l'invention est de rendre conditionnel le choix du mode de codage des macroblocs appartenant aux images de type P. afin de supprimer les défauts de restitution sur les images de type B. En fait, on vérifie si les images intermédiaires de type B sont corrélées temporellement avec l'une ou les deux images extrêmes les encadrant. Lorsque qu'au niveau d'une image P. un macrobloc est candidat au mode "macrobloc sauté", on calcule sur le macrobloc co-localisé de chacune des images B précédentes selon l'ordre d'affichage ou ordre temporel, la somme, appelée SAD, de la valeur absolue des différences entre ce macrobloc co-localisé et le macrobloc homologue de l'image I ou P précédente selon l'ordre d'affichage. SADc'r = i |Bcur (i i)-IPprev (i j J avec i, j: indices lignes et colonnes des pixels contenus dans le macrobloc, cur: indices des images de type B situces entre les deux images I ou P et P. 6 2824988 Bcur image de type B courante sur laquelle la mesure de différence est effectuée, Ppre image de type I ou P précédente (selon l'ordre d'afffichage), SADcur somme de la valeur absolue des différences. Si parmi les différences SADcur correspondant aux macroblocs des images B. au moins une d'entre elles dépasse un seuil donné, traduisant ainsi un niveau insufffisant de corrélation, le macrobloc de l'image P à coder, candidat au mode "macrobloc sauté", est forcé en mode "codage", c'est dire que ses vecteurs sont codés, son contenu du point de vue coefficients DCT également. Ce macrobloc est généralement vide du fait de la corrélation ayant généré cette possibilité de codage en mode "macrobloc sauté", en particulier si le pas de quantification reste inchangé. Dans le cas contraire, c'est à dire lorsque toutes les valeurs SADcur sont inférieures ou égales au seuil, traduisant une corrélation des macroblocs, le macrobloc de l'image P est confirmé dans le mode "macrobloc sauté". En forçant le macrobloc de l'image P à être codé, c'est à dire à ne pas être "sauté", les macroblocs des images B sont également forcés en mode codage donc non "sautés". Le codage prend en compte le contenu rcel de ces macroblocs, évitant ainsi les défauts de visualisation. Le calcul de la somme SAD est bien sûr un exemple de réalisation et tout paramètre définissant un niveau de corrélation entre blocs ou macroblocs d'images, c'est à dire la variation du contenu d'un bloc ou macrobloc d'une image à une autre, peut ici être utilisé sans que l'on sorte du domaine de l'invention. Le calcul des sommes SAD des macroblocs peut prendre en compte une image source ou une image reconstruite. Il peut être effectué, par exemple, entre: - les images B et l'image I ou P source précédente, selon l'ordre d'afffichage, - les images B et l'image I ou P décodée locale de l'image I ou P source précédente, selon l'ordre d'afffichage, - les images B et l'image P décodée locale de l'image P source suivante, selon l'ordre d'affichage, c'est à dire la décodée précédente, 7 2824988 - les images B et l'image P source suivante selon l'ordre d'afffichage. L'évaluation du niveau de corrélation attribué à un macrobloc d'une image B peut en effet être effectué soit entre ce macrobloc et le macrobloc co- localisé de l'image I ou P précédente, soit entre ce macrobloc et le macrobloc co-localisé de l'image P suivante, en considérant l'ordre d'afffichage. Dans ce dernier cas, la formule de calcul de SAD est la même sauf à remplacer IPprev par Pnex, qui correspond à l'image de type P suivante, toujours selon l'ordre d'afffichage. Le calcul de la somme des différences peut être effectué d'autres manières qu'en réalisant la somme de la valeur absolue des différences. Il est ainsi tout aussi envisageable de réaliser: - la somme des carrés des différences, - la somme des 4 erreurs maximum trouvoes dans chacun des 4 blocs 8*8 composant le macrobloc. Ces exemples ne sont bien entendu pas limitatifs. Le critère de décision du mode de codage pour le codage d'un macrobloc d'une image de type P prend donc en compte les images précédentes de type B. selon l'ordre d'afffichage. Il s'agit de l'ensemble des images précédentes de type B comprises entre deux images de type P ou entre une image de type I et une image de type P. Le seuil auquel est comparé le niveau de corrélation peut être déterminé en fonction des pas de quantification utilisés pour le codage des blocs ou macroblocs d'image. Il est ainsi possible d'augmenter le nombre d'interdictions du mode "macrobloc sauté" en fonction d'un pas de quantification, par exemple le pas de quantification moyen sur l'image. Le fait que le pas de quantification est faible indique en effet que le codeur n'est pas en limite de codage (mémoire tampon non saturée...) et il est alors moins nécessaire de diminuer le coût de codage donc d'utiliser le mode "macrobloc sauté". Egalement, I'utilisation de pas de quantification élevés diminue la corrélation entre blocs, du fait de la résolution dans le codage des coefficients, et le seuil peut donc être diminué pour des pas de quantification plus élevés, nécessitant ainsi une corrélation moindre pour déclencher le mode "macrobloc sauté". 8 2824988 La figure 4 représente un organigramme simplifié du procédé de cod age pou r la détermi n ation des cho ix de codage. L'étape 5 reçoit un macrobloc d'index i de l'image à coder. L'étape suivante 6 calcule le mode de codage possible pour ce macrobloc, en particulier s'il peut être codé selon le mode "macrobloc sauté" et prend en compte le type d'image à laquelle il appartient. S'il s'agit d'une image autre qu'une image P ou si, dans le cas d'une image de type P. le mode "macrobloc sauté" n'est pas possible pour le codage, alors l'étape suivante est l'étape 7 qui effectue un codage classique du macrobloc selon la norme. S'il s'agit d'une image de type P et si le mode 'macrobloc sauté est retenu, alors l'étape suivante est l'étape 8. Cette étape effectue un calcul de la valeur SAD entre le macrobloc co-localisé de l'image précédente, selon l'ordre d'affichage, de type I ou P et le macrobloc colocalisé de chacune des images précédentes, selon l'ordre d'afffichage, de type B. Si les valeurs obtenues sont inférieures à un seuil prédéterminé, test effectué lors de l'étape suivante 9, le codage "macrobloc sauté" est effectivement effectué conformément à la norme MPEG 4, lors de l'étape 7. Si au moins une des valeurs SAD est supérieure à ce seuil, I'étape suivante est l'étape 10 qui effectue le codage du macrobloc selon le mode de codage avec vecteur mouvement nul. Le macrobloc d'index i codé selon l'étape 7 ou 10 est transmis vers une l'étape de traitement suivante alors que l'index i est incrémenté de 1, étape 11, pour le codage du macrobloc suivant de l'image. L'invention concerne également tout type de codeur de type MPEG4 ou dispositif exploitant un circuit de traitement ou un moyen mettant en _uvre un algorithme tel que décrit précédemment. Les applications de la présente invention concernent par exemple la transmission d'images numériques exploitant la norme de codage vidéo MPEG 4. 9 2824988 REVENDICATIONS 1. Procédé de codage vidéo utilisant la norme MPEG 4 d'une séquence d'images comportant des images de type 1, P et B. un groupe d'images de type B étant borné par une image de type I ou P précédente pour la borne inférieure et une image de type P suivante pour la borne supérieure en considérant l'ordre temporel ou d'affichage, caractérisé en ce qu'il comporte: - un calcul d'un niveau de corrélation (8) attribué à un bloc ou macrobloc d'une image de type B définissant sa corrélation avec le bloc ou macrobloc co-localisé de l'une ou l'autre des images bornant les images de type B. - une comparaison (9) du niveau à un seuil prédéterminé, - une interdiction du mode de codage "macrobloc sauté" (10) d'un bloc ou macrobloc d'une image de type P de la borne supérieure, si le niveau de corrélation (8) attribué au bloc ou macrobloc co-localisé d'une image de type B est inférieur au seuil (9). 2 Procédé selon la revendication 1, caractérisé en ce qu'il comporte, pour le codage d'un macrobloc d'une image de type P correspondant à la borne supérieure, - une étape de précodage déterminant si le codage est compatible du mode "macrobloc sauté", - dans l'affirmative, une étape de calcul d'un niveau de corrélation (8) pour le macrobloc co-localisé de chacune des images de type B. -une étape de comparaison (9) des niveaux obtenus à un seuil prédéterminé, -une étape de codage du macrobloc courant (7, 10), soit en mode "macrobloc sauté" si le niveau est supérieur au seuil prédéfini pour chacun des macroblocs des images de type B. soit en mode de codage avec vecteur de mouvement nul dans le cas contraire. 3 Procédé selon la revendication 1 ou 2, caractérisé en ce que le niveau de corrélation est calculé à partir d'un paramètre SAD: 1 0 2824988 SADCUr = |Bcur (i, j)-IPprev (i'i)|) l,j=o avec i, j: indices lignes et colonnes des pixels contenus dans le macrobloc, cur: indices des images de type B situées entre les deux images I ou P et P. Bcr image de type B courante sur laquelle la mesure de différence est effectuée, IPpreY image de type I ou P précédente selon l'ordre d'affichage, SADcr somme de la valeur absolue des différences. 4 Procédé selon la revendication 1 ou 2, caractérisé en ce que le niveau de corrélation est calculé à partir d'un paramètre SAD: SADcur = ( i lBcur (i' i) - Pnexf (i' j> i,j=0 avec i, j: indices lignes et colonnes des pixels contenus dans le macrobloc, cur: indices des images de type B situées entre les deux images I ou PetP, Bcur image de type B courante sur laquelle la mesure de différence est effectuée, PneX image de type P suivante selon l'ordre d'affichage, SADcir somme de la valeur absolue des différences. Procédé selon la revendication 1, caractérisé en ce que l'une ou l'autre des images bornant les images de type B à partir de laquelle est calculé le niveau de corrélation est l'image décodée locale de type I ou P précédant le groupe d'images de type B ou l'image décodée locale de type P suivant le groupe d'images de type B. selon l'ordre d'affichage. 6 Procédé selon la revendication 1, caractérisé en ce que le seuil est prédéterminé en fonction du pas de quantification d'un bloc ou macrobloc ou du pas de quantification moyen d'une image. 7 Dispositif de codage utilisant la norme MPEG 4 pour le codage d'une séquence d'images, caractérisé en ce qu'il comporte des moyens pour empêcher le mode de codage "macrobloc sauté" d'un macrobloc d'une image de type P à partir d'une information de corrélation mesurant la corrélation de ce macrobloc ou du macrobloc co-localisé de l'image I ou P précédente avec le macrobloc co-localisé d'une image de type B suivante, selon l'ordre de