PROCEDE DE CLASSIFICATION DES PIXELS D'UNE IMAGE ET D' INTERPOLATION TEMPORELLE UTILISANT LADITE CLASSIFICATION.
La présente invention se rapporte au traitement d'images, notamment au traitement d'images vidéo telles que des images de type télévision.
En général, dans le cas d'images vidéo, notamment dans le cas d'images de télévision, on affiche le plus souvent des séquences d'images représentant des scènes en mouvement. De ce fait, le pixel ne doit plus être considéré comme un simpie élément d'image mais plutôt comme un élément d'objet, cet élemen d' objet pouvant évoluer dans l'image au cours du temps, c'est-a- dire apparaître, se déplacer, changer de luminance et/ou dis¬ paraître. Il est donc essentiel de pouvoir prendre en compte ce mouvement au niveau des pixels, ce mouvement étant une cause très fréquente de changement au cours du temps.La prise en compte du mouvement permet donc de traiter efficacement la plupart des situations possibles dans une scène.
Pour réaliser une analyse de scène la plus correcte possible, il est donc important de pouvoir classifier les pixels en leur affectant une étiquette donnant des informations sur l'évolution du mouvement du pixel. Les étiquettes donnant une analyse de scène correcte sont les étiquettes choisies parmi celles appartenant à l'une des classes appelées "normal".
"occluant", "apparaissant" ou "disparaissant". En effet, l'étiquette "normal" signifie que l'élément d'image est présent dans les deux images successives considérées, l'étiquette "apparaissant" signifie que l'élément image est présent dans l'image courante mais absent de l'image précédente. L'étiquette
"disparaissant" signifie que l'élément d'image est aûsent de l'image courante mais présent dans l'image précédente, tandis que l'étiquette "occluant" signifie que l'image courante comporte des objets d'avant plan qui occluent des zones d'arrière plan d'une
image précédente .Ces quatre classes répondent, tout à fait bien, aux différents événements pouvant survenir au niveau du pixel.
Le fait d'affecter une étiquette à chaque pixel d'une image se présente donc comme un complément indispensable à l'estimation de mouvement et à l'interpolation d'images utilisées dans le cadre du traitement des images vidéo, notamment à l'interpolation temporelle d' images comme décrit dans la demande de brevet français N°87 07814 au nom de THOMSON GRAND PUBLIC ou à l'inter¬ polation temporelle d' images à compensation de mouvement corrigé comme décrit dans la demande de brevet français N°8904256 déposé au nom de Thomson Consumer Electronics.
En effet, bien que l'interpolation à compensation de mou¬ vement permette de reconstituer les pixels en mouvement avec précision, des problèmes subsistent au niveau des pixels apparaissant ou disparaissant d'une image à l'autre. En général, l'estimateur est perturbé par la présence de tels pixels qui n'ont pas de correspondant dans l'autre image. D'autre part, l'interpolation des pixels ne devrait s'effectuer qu'à partir de l'image d'entrée qui les contient, ce qui constitue une procédure particulière qui ne peut s'appliquer que si les pixels ont été identifiés.
En conséquence, la présente invention a pour but de remédier à ces inconvénients en proposant, tout d'abord, un procédé de classification des pixels d'une image courante qui permettent de détecter les pixels ou éléments d' image apparaissant et dispa¬ raissant d'une image à l'autre dans le cas où l'image courante est obtenue par projection temporelle du champ de mouvement de l'image précédente appartenant à une séquence d'images animées.
Ainsi, la présente invention a pour objet un procédé de classification des pixels d'une image courante t(j+l) obtenue par projection temporelle du champ de mouvement d'une image pré¬ cédente t(j) appartenant à une séquence d'images animées, les
pixels de l'image précédente possédant un vecteur-mouvement et une étiquette, l'étiquette appartenant à une classe définie parmi au moins trois classes appelées "normal", "occluant" ou "appa¬ raissant", ledit procédé étant caractérisé en ce que : - avant projection, tous les pixels de l'image courante t(j+l) sont étiquetés "apparaissant" ;
- puis, lors de la projection temporelle réalisée de manière connue, l'étiquetage est modifié en tenant compte de l'étiquetage des pixels de l'image t(j) de telle sorte que : - si un pixel étiqueté "apparaissant" reçoit un vecteur-mouvement, son étiquette devient "normal" ;
- si un pixel étiqueté "normal" reçoit un vecteur-mouvement, son étiquette devient "occluant" et on lui affecte le vecteur-mouvement à !DFD! (pour displaced frame différence en langue anglaise) minimale ;
- si un pixel étiqueté "occluant" reçoit un vecteur-mouvement, son étiquette reste "occluant" et on lui affecte le vecteur-mouvement à !DFD! minimale ; et
- si un pixel étiqueté "apparaissant" ne reçoit aucun vecteur-mouvement, il reste étiqueté "apparaissant".
Dans ce cas, le champ de mouvement de l'image courante t(j+l) est obtenue par projection temporelle du champ de mou¬ vement d'une image précédente t(j) comme décrit dans la demande de brevet N"88 12468 au nom de THOMSON-CSF. En prenant en compte le champ d'étiquettes de l'image précédente t(j), on obtient donc pour l'image courante t(j+l) un champ de prédiction temporelle du mouvement et un champ de prédiction d'étiquettes.
La présente invention a aussi pour but de proposer un nouveau procédé d' interpolation d' image exploitant la classification ci-dessus donnée aux pixels. Le procédé d' interpolation est basé sur une technique d' interpolation à
compensation du mouvement inter-image qui consiste à interpoler les pixels dans la direction de leur mouvement à partir des deux trames ou images d'entrée les encadrant.
De tels procédés d' interpolation à compensation de mouvement sont décrits par exemple dans les demandes de brevets français N°87 07814 et N"89 04256.
En conséquence, la présente invention a pour objet un procédé d' interpolation temporelle d' image à compensation de mouvement, comportant notamment une phase d'estimation du champ de mouvement et du champ d'étiquettes d'une image à interpoler T(j) à partir d'au moins deux images connues t(j), t(j+l) l'encadrant, les caractéristiques de chaque pixel de l'image t(j) étant déterminées à partir des caractéristiques des pixels associés des images t(j), tCj +1) définis chacun par un vecteur-mouvement et par une étiquette, dans lequel on définit le champ de mouvement de l'image à interpoler T(j) par projection temporelle du champ de mouvement estimé à l'image connue t(j +1) obtenue en utilisant le procédé de classification décrit ci-dessus, caractérisé en ce que : - avant projection, tous les pixels de l'image à interpoler T(j) sont étiquetés "trous" ;
- puis, au cours de la projection temporelle, l'on examine les étiquettes et les vecteurs-mouvement affectés aux pixels de l'image t(j+l) et l'on donne une étiquette et un vecteur- mouvement au pixel de l'image à interpoler T(j) selon le tableau ci-après :
Le procédé ci-dessus permet de définir le champ de mouvement et le champ d'étiquettes de l'image à interpoler T(j) en utilisant le champ de mouvement estimé à l'image connue t(j+l). Une fois ces éléments connus, différents procédés peuvent être utilisés pour interpoler la luminance des pixels.
La présente invention a aussi pour objet un procédé d' interpolation temporelle basé sur le procédé décrit ci-dessus mais caractérisé en ce que :
- lors de la projection du champ de mouvement de l'image connue t(j+l) sur l'image à interpoler T(j), on ne projette pas le vecteur-mouvement des pixels de l'image t(j+l) étiquetés "apparaissant" ;
- ensuite, on réalise la projection du champ de mouvement de l'image t(j) sur l'image à interpoler T(j) en utilisant le même procédé que pour la projection de l'image t(j+l), mais en étiquetant "disparaissant" un pixel "trous" rempli par un vecteur-mouvement ;
- puis l'on réalise la projection du champ de mouvement d'une
image t(j+2) suivant une image t(j+l) sur l'image à interpoler T(j), en utilisant le même procédé que pour la projection de l'image t(j+l) mais en étiquetant "apparaissant" un pixel "trous" rempli par un vecteur-mouvement de manière à prendre en compte les pixels "apparaissant" et "disparaissant".
D'autres caractéristiques et avantages de la présente invention apparaîtront à la lecture de la description de différents modes de réalisation faite ci-après avec référence aux dessins ci-annexés dans lesquels : - la figure 1 est une vue éclatée de plusieurs trames successives avec une trame fictive intercalée entre deux trames successives pour illustrer le procédé de prédiction temporelle mis en oeuvre dans la présente invention ;
- les figures 2 et 3 sont des représentations schématiques illustrant différents types de déplacement entre trames successives ;
- la figure 4 est un organigramme donnant les différentes étapes du procédé permettant de réaliser une interpolation adaptative à compensation de mouvement avec détection et prise en compte de l'étiquetage des pixels conformément à la présente invention ;
- la figure 5 est un schéma expliquant l'étiquetage des pixels de l'image courante t(j+l) obtenue par projection temporelle du champ de mouvement de t(j) ;
- la figure 6 est un schéma donnant le champ de mouvement de l'image interpolée, l'interpolation étant basée sur l'étiquette
"occluant" sur les images courantes t(j) et t(j+l) ; et
- la figure 7 est un schéma illustrant le procédé d' interpolation de T(j) par projection des champs de mouvement de t(j +1), t(j+2) et t(j). La présente invention concerne donc un procédé de clas¬ sification des pixels d'une image courante permettant de recons¬ tituer avec précision les zones en mouvement dans l' image et
notamment de déterminer les zones "apparaissant" ou "dispa¬ raissant" d'une image à l'autre. La présente invention concerne aussi un procédé d' interpolation à compensation de mouvement avec prise en compte de cette classification des pixels. Toutefois, la classification des pixels est effectuée sur les pixels d'une image courante obtenue par projection temporelle du champ de mouvement d'une image précédente appartenant à une séquence d'images animées. Dans ce cas, la projection temporelle du mouvement est effectuée selon le procédé décrit dans la demande de brevet N°88 12468 et dans la demande de brevet français N°87 07814. En conséquence, nous ne redécrirons pas complètement l'objet de ces deux brevets. Toutefois, l'on décrira brièvement les parties qui concernent la projection temporelle en se référant à la figure 1. La présente invention sera décrite en se référant à des images à format progressif. Toutefois, Ll est évident pour l'homme de l'art d'appliquer le procédé à un format entrelacé en tenant compte des décalages de lignes comme cela est expliqué dans la demande de brevet français N"87 07814. D'autre part, on emploiera ci-après indifféremment le terme "trame" ou "image".
Sur la figure 1, on a représenté, dans un repère orthonormé OXYZ dans lequel l'axe des Z correspond au temps, différentes trames t(j -1), t(j), t(j +1) appartenant à une séquence d'images animées ainsi qu'une trame fictive T(j-l) correspondant à une trame interpolée entre les deux images t(j-l), t(j). Dans ce cas, on part du champ de mouvement calculé pour les pixels de la trame t(j). Ce champ de mouvement est composé par un ensemble de vecteurs-mouvement affectés respectivement à chaque pixel de l'image t(j). Soit D = (DX, DY), le vecteur-mouvement d'un pixel B de la trame ou image t(j), si l'on suppose que le mouvement est linéaire, le vecteur- mouvement du pixel B de coordonnées spa¬ tiales (x,y) peut être attribué au point C de la trame ou image
t(j+l) de coordonnées spatiales xl, yl qui est le point d'impact sur cette image du vecteur-mouvement attribué à B : (xl, yl) = (x + DX, y + DY)
Toutefois, le point C ne correspond en général pas à un pixel. Conformément au procédé décrit dans la demande de brevet français Nβ87 07814, on attribue au pixel P le plus proche du point C, le vecteur-mouvement D. De ce fait, on obtient : D ((P, t(j+D) = D ((B, t(j)), et P = (xp, yp) pixel le plus proche de C. De même, le vecteur-mouvement du pixel B de coordonnées spatiales (x,y) peut aussi être attribué au point C de la trame fictive T(j-l), de coordonnées spatiales (xl' , yl'), ce point C étant le point d'impact sur cette image du vecteur-mouvement attribué à B : (xl' , yl' ) = (x - a.DX, Y - a DY) a < 1 est un facteur prenant en compte la distance relative de la trame t(j) à la trame T(j-l).
De ce fait, le point C ne correspondant généralement pas à un pixel, nous attribuons au pixel P' le plus proche du point C le vecteur-mouvement D :
D (P', T(j-D) = D (B, t(j)), et
P' = (xP' , yP' ) pixel le plus proche de C .
Au cours de cette projection, plusieurs vecteurs-mouvement peuvent être proposés à un même pixel. C'est le cas en analyse d' images,lorsque deux objets se croisent. Nous sommes donc en présence d'un conflit comme expliqué dans la demande de brevet français Nβ88 12468. Dans cette demande de brevet, différentes solutions ont été proposées pour résoudre le conflit. L'une des solutions retenue consiste à comparer les valeurs absolues de la !DFD! (Displaced frame différence en langue anglaise ou dif¬ férence inter-image déplacée). Cette solution sera utilisée dans la présente invention.
Dans le cas de la projection temporelle de l'image courante t(j+l), c'est la différence de luminance entre le pixel P de coordonnées spatiales (xP, yP) sur l'image t(j+l). et le point Qi de coordonnées spatiales (xP - Dxi , yP - Dyi), extrémité sur l'image t(j) du vecteur Di qui donne la ÎDFDI.
En projection temporelle sur la trame fictive T(j-l), c'est la différence de luminance entre les points Q' i et Q"i, extrémités sur les images ou trames t(j) et t(j-l) du vecteur Di passant par P' qui donne cette ÎDFD! appelée !DFDϋ. En cas de conflit, le vecteur sélectionné est celui qui fournit la valeur minimale de !DFDϋ. Si plusieurs vecteurs ont des valeurs !DFDi! égales, on fait en général un choix arbitraire pour affecter un vecteur-mouvement au pixel. D'autre part, une fois la projection de l'ensemble des vecteurs-mouvement terminée, il est possible que certains pixels n'aient pas de vecteurs- mouvement associés, on se trouve alors dans le cas où le champ de mouvement présente des "trous".
Si ce champ de mouvement projeté est utilisé comme prédic- teur temporel, notamment dans un procédé d'estimation de mou- vement d'images, ces "trous" peuvent être soit conservés tels quels, soit remplis par interpolation spatiale des vecteurs- mouvement, par exemple selon le procédé décrit dans la demande de brevet N"88 12468.
Ces "trous" peuvent avoir différentes origines. Ainsi, lorsque l'on réalise un zoom, les objets grossissent et des détails apparaissent. Dans ce cas, les trous peuvent être remplis par une interpolation spatiale. D'autre part, dans des images successives, des zones précédemment cachées peuvent apparaître sur une nouvelle image. Dans ce cas, un simple procédé d' inter- polation spatiale peut conduire, dans certains cas, à des défauts visibles dans l' image, car les vecteurs-mouvement affectés aux pixels de cette zone ne sont pas fiables.
En appliquant le procédé de projection temporelle décrit ci-dessus à l'ensemble des pixels de la trame t(j), on peut obtenir un champ de mouvement tel que représenté schématiquement sur les figures 2 et 3. Ces figures sont des vues bi- dimensionnelles simplifiées des séquences d' images représentées à la figure 1 selon le plan XZ. Comme représenté sur les figures 2 et 3, un vecteur-mouvement relie chaque pixel Pi de l'image courante t(j) à un point de l'image précédente t(j- 1) que si il existe en chaque point de la trame t(j) un point correspondant dans la trame t(j-l). On a, dans ce cas, défini un champ de mou¬ vement pour tous les pixels de la trame t(j). En fait, le cas idéal de la projection temporelle est une bijection des pixels de la trame t(j-l) vers ceux de la trame t(j), chaque pixel de la trame t(j) possédant dans ce cas un et un seul correspondant dans la trame de t(j-l). Dans le cas d'analyse de séquence d'images animées de type télévision, ceci est rarement le cas. En effet, on observe souvent des objets en mouvement par rapport à un fond. Ceci est le cas représenté sur les figures 2 et 3. Il faut alors en général déterminer qu'elle est la place de l'objet par rapport au fond. Dans les images t(j) des figures 2 et 3, les pixels Po reçoivent deux vecteurs-mouvement. Il y a donc conflit et il faut déterminer quel est le vecteur-mouvement qui doit être maintenu, ceci est en général réalisé en calculant la !DFDÎ minimale comme mentionné dans les demandes de brevet antérieures. Ces pixels Po correspondent en fait à un objet d'avant-plan qui passe sur le fond F. Ces pixels Po correspondent donc à une zone "occluant" référencée 0. D'autre part, le fond en mouvement F se retrouve dans les deux images t(j) et t(j-l) par une simple translation comme représenté clairement sur les figures 2 et 3. Toutefois, pour les pixels se trouvant aux limites de l'objet, à savoir les pixels PI dans l'image t(j) ou les pixels P2 dans l'image t(j-l), certains sont recouverts dans l'image t(j) et les autres décou-
verts entre t(j-l) et t(j). Ils correspondent donc à une zone "apparaissant" référencée A ou à une zone "disparaissant" réfé¬ rencée D. D'autre part, si l'on examine l'image T(j-l) à inter¬ poler et si l'interpolation des pixels de cette image est ef- fectuée à partir des deux trames d'entrée encadrantes t(j) et t(j-l), on observe sur l'image interpolée des défauts du type écho au bord des objets. Ces zones sont, en général, mentionnées "trous" et référencées T dans les figures 2 et 3. De plus, comme représenté sur la figure 3, certains vecteurs-mouvement comme ceux des pixels P3 croisent des pixels Po affectés d'un vecteur- mouvement. Il en résulte des difficultés pour déterminer quel est le vecteur-mouvement qui convient aux pixels, c'est-à-dire quel objet est un objet de premier plan. Il en est de même pour les pixels des zones "apparaissant" ou "disparaissant" qui sont des pixels auxquels il est difficile d'affecter un vecteur-mouvement correct.
Or, comme mentionné ci-dessus, lorsqu'on utilise une projection temporelle soit d'une image courante t(j) vers une image courante t(j+l) soit d'une image courante t(j) vers une image à interpoler T(j-l), ces projections sont porteuses d'informations sur les zones dites "occluant", "apparaissant" ou "disparaissant" d'une image à l'autre. En conséquence, la présente invention utilise ces informations notamment pour réaliser l'interpolation d'images. Le fonctionnement du procédé de la présente invention sera décrit maintenant de manière détaillée en se référant aux figures 4 et 5.
Dans la présente invention, on réalise donc une classification des pixels de chaque nouvelle image d'entrée t(j+l) en se basant sur la classification des pixels de l'image d'entrée t(j). En effet, pour l'image d'entrée t(j), chaque pixel comporte un vecteur-mouvement et une étiquette de manière à
définir le champ de mouvement estimé et le champ d'étiquettes de l'ensemble des pixels t(j) y compris pour les pixels étiquetés "apparaissant". La classification des pixels de t(j) s'effectue au cours de la projection temporelle sur la trame t(j+l) du champ de mouvement estimé en t(j), en utilisant la procédure décrite ci-dessus, à savoir la procédure de projection temporelle décrite notamment dans la demande de brevet français N"88 12468.
Selon un premier stade du procédé, on constitue un champ de prédiction des étiquettes de la trame t(j+l) au cours de la pro- jection temporelle. Avant projection, ce champ est vide et ini- tialisé "apparaissant". Conformément à la présente invention, lors de la projection temporelle, les vecteurs-mouvement de l'image t(j), se projettent les uns après les autres sur t(j+l). Si un pixel Pi étiqueté initialement comme "apparaissant" reçoit un seul vecteur- mouvement de la trame t(j), son étiquette devient "normal". Si un pixel tel que les pixels Po reçoivent deux vecteurs-mouvement projetés à partir de la trame t(j), il y a conflit. Dans ce cas, on suppose que deux objets opaques ont des mouvements qui les amènent au point courant. Pour identifier le vecteur-mouvement et l'étiquette qui vont être gardés, on compare les valeurs de !DFD! et l'on retient le vecteur-mouvement à !DFD! minimale et ce pixel est étiqueté "occluant" s'il ne l'est pas déjà. D'autre part, une fois que tous les vecteurs de t(j) ont été projetés, on identifie les pixels qui n'ont reçu aucun vecteur et on les étiquette "apparaissant" après projection temporelle, comme représenté par les pixels PI sur la figure 5. La procédure décrite ci-dessus peut être résumée ainsi :
- un pixel étiqueté "apparaissant" reçoit un vecteur : son étiquette devient "normal" ; - un pixel étiqueté "normal" reçoit un vecteur : son étiquette devient "occluant" ;
- un pixel étiqueté "occluant" reçoit un vecteur : son étiquette
est conservée "occluant".
On obtient donc un champ de mouvement prédictif et un champ d'étiquettes sur t(j+l) qui ne prend pas en compte le champ des étiquettes de t(j). Toutefois, au moment de la projection temporelle de la trame t(j) sur la trame de t(j+l), il est important de prendre en compte les étiquettes des pixels de la trame t(j). En effet, les pixels appartenant à des zones nouvelles dans la trame t(j), à savoir les pixels étiquetés "apparaissant" sur la figure 5, ont peu de chance de posséder un vecteur-mouvement exact. Deux solu¬ tions peuvent être envisagées.
Selon la première solution, aucun vecteur-mouvement n' est défini pour les pixels étiquetés "apparaissant" ou bien le vecteur mouvement est défini mais on ne le projette pas. Dans les deux cas, il est nécessaire de pouvoir identifier ces pixels dans la trame t(j). En conséquence, en cours de projection on va examiner le champ d'étiquettes de la trame t(j) et abandonner les pixels avec une étiquette "apparaissant".
Selon une seconde solution, un vecteur-mouvement est défini pour tous les pixels de t(j) et projeté sur la trame t(j +1). Toutefois, comme le vecteur-mouvement défini pour les pixels étiquetés "apparaissant" dans la trame t(j) n'est pas fiable, on considère que ce vecteurs-mouvement ne peut pas donner naissance à un pixel étiqueté "occluant". En conséquence, si au cours de la projection temporelle de la trame t(j) sur la trame t(j+l) il y a un conflit entre un tel vecteur-mouvement et un autre vecteur- mouvement étiqueté "normal" ou "occluant", le vecteur-mouvement étiqueté "normal" ou "occluant" sera retenu avec son étiquette. On considère dans ce cas qu'il n'y a pas de phénomène d'occlusion et que le conflit est accidentel. La projection de tous les vecteurs-mouvement de la trame t(j) y compris ceux étiquetés "apparaissant" a pour but de combler les zones qui sont apparues
sur la trame t(j) et sont présentes sur la trame t(j+l).
Un tel vecteur-mouvement se distingue des autres vecteurs- mouvement de la trame t(j), car il est étiqueté "apparaissant" . Par contre, pour le distinguer des autres vecteurs-mouvement dans la trame t(j+l), on l'étiquette différemment, soit par exemple "comblé" comme représenté sur la figure 5. Ainsi, la projection temporelle et la comparaison des vecteurs-mouvement de la trame t(j) par rapport à la trame de t(j+l) s'effectue selon les dif¬ férents cas suivants comme illustré sur la figure 5 : - si le pixel de t(j+l) est étiqueté "apparaissant", et
- si le pixel de t(j) est étiqueté "normal" ou "occluant", alors le vecteur-mouvement de ce pixel est associé au pixel de la trame t(j+l) dont l'étiquetage devient "normal".
- mais, si l'étiquette du pixel de t(j) est "apparaissant" , le vecteur-mouvement de t(j) est associé au pixel de t(j+l) dont l'étiquette devient "comblé" ;
- si l'étiquette du pixel de t(j+l) est "normal" ; et
- si l'étiquette du pixel de t(j) est "normal" ou "occluant", alors il y a conflit et l'on compare les vecteurs- mouvement comme mentionné ci-dessus, le vecteur-mouvement retenu est alors "occluant" et l'étiquette du pixel de t(j+l) devient "occluant" ;
- si l'étiquette du pixel de t(j) est "apparaissant", alors on abandonne le vecteur-mouvement qui lui est associé car il est moins pertinent que celui qui est déjà associé au pixel de t(j+l) et l'étiquette de t(j+l) est "normal" ;
- si l'étiquette du pixel de t(j+l) est "comblé" ; et si l'étiquette du pixel de t(j) est "normal" ou "occluant" .alors le vecteur-mouvement de ce pixel remplace l'ancien car il est plus pertinent et l'étiquette du pixel de t(j+l) devient "normal" ;
- si l'étiquette du pixel de t(j) est "apparaissant", alors
on compare les deux vecteurs-mouvement et on sélectionne celui à !DFD! minimale, l'étiquette de t(j+l) reste "comblé" ; - si l'étiquette du pixel de t(j+l) est "occluant" ; et si l'étiquette du pixel de t(j) est "normal" ou "occluant", alors on compare les deux vecteurs-mouvement, on sélectionne celui à !DFD! minimale et l'étiquette de t(j+l) reste "occluant" ;
- si, au contraire, l'étiquette de t(j) est "apparaissant" , alors on ne prend pas en compte le vecteur-mouvement issu de la trame t(j) et la situation reste la même, l'étiquette de t(j+l) reste "occluant".
On obtient donc ainsi en même temps qu'un champ de prédiction temporelle du mouvement un champ de prédiction d'étiquettes pour la trame t(j+l) mentionné "marq-2" sur la figure 4. Les différentes étapes sont résumées dans le tableau 1 ci- après :
On notera que, dans ce cas, on tient compte de la notion de conflit dès la première image, même si le champ de mouvement est bruité. Le bruit dans le champ d'étiquettes est proportionnel au bruit présent dans le champ de mouvement. Employé avec par exemple, l'estimateur récurslf à prédiction temporelle décrit dans la demande de brevet N
β88 12468, le champ d'étiquettes est de moins en moins bruité au fur et à mesure que le champ de mou¬ vement devient plus précis et plus lisse sous l'effet de la pré¬ diction temporelle. Une fois obtenus, le champ de mouvement prédictif et le champ d'étiquettes de la trame t(j+l) en employant le procédé décrit ci-dessus, il est nécessaire de remplir les "trous" restant dans le champ de mouvement de prédiction, c'est-à-dire de définir un vecteur-mouvement pour les pixels étiquetés "apparaissant", puis de réaliser l'estimation du mouvement en tout point de la trame t(j+l) et enfin la définition du champ d'étiquettes pour la trame t(j+l).
Différentes solutions peuvent être envisagées. Pour le remplissage des "trous", en vue de l'estimation du mouvement au niveau de tous les pixels de la trame t(j+l), les "trous" peuvent être conservés tels quels. Dans ce cas, les pixels correspondant ne disposeront pas de vecteur-mouvement à savoir de prédicteur temporel. D'autre part, les trous peuvent aussi être remplis par interpolation spatiale des vecteurs-mouvement affectés aux pixels encadrant le point concerné en utilisant, par exemple, le procédé décrit dans la demande de brevet français N"88 12468.
Une fois cette opération terminée, on dispose pour l'image t(j+l) d'un champ de prédiction temporelle du mouvement. L'opé¬ ration suivante consiste donc à estimer le mouvement pour les pixels de l'image t(j+l). On peut par exemple utiliser l'esti¬ mateur récurslf avec prédiction temporelle décrit dans la demande de brevet français N°88 12468. L'estimateur fournit ainsi un
champ de mouvement estimé pour l'image t(j+l).
Une fois l'estimation de mouvement réalisée, on définit conformément au présent procédé un nouveau champ d'étiquettes pour l'image t(j+l) en tenant compte du champ de mouvement estimé et du champ d'étiquettes obtenus au cours de la projection tem¬ porelle. Les différentes étiquettes apparaissant à ce moment pour les pixels de t(j+l) sont les étiquettes "normal", "occluant", "comblé", "apparaissant". Cette classification des pixels est basée sur le champ de prédiction du mouvement. Comme le champ de mouvement estimé est en principe plus précis que le champ de prédiction temporelle, pour obtenir des étiquettes plus précises, on réalise une comparaison des deux champs de mouvement pour chaque pixel et on modifie l'étiquetage du pixel si les vecteurs sont très différents. En fait, la modification concerne princi- paiement les pixels étiquetés "occluant". En effet, si le vecteur-mouvement d'un pixel donné est modifié de façon impor¬ tante lors de l'estimation du mouvement, on considère que ce vecteur-mouvement était en fait imprécis et que l'étiquetage "occluant" n'était pas fiable. Pour obtenir la bonne information, on observe la différence en valeurabsolue entre le vecteur- mouvement obtenu lors de la prédiction temporelle et le vecteur- mouvement estimé pour chacune des composantes horizontale et verticale : - soit le vecteur prédit Dp = (dxp, dyp) et le vecteur estimé De ≈ (dxe, dye). On calcule alors : diff-x = !dxe - dxp! et diff-y = !dye - dyp!. Si l'une des deux différences diff-x et diff-y est supérieure à un seuil S, l'étiquette associée "occluant" devient "normal".
Si l'on emploie l'estimateur décrit dans le brevet N°89 0673, cette opération de modification de la classification est effectuée après filtrage médian du champ de mouvement et avant projection sur l'image à interpoler T(j).
D'autre part, l'étiquetage "comblé" qui servait à la distinction entre les vecteurs-mouvement projetés issus du rem¬ plissage et les autres, ne sert plus lors de l'estimation de mouvement ou lors de la projection temporelle sur l'image à interpoler T(j). En conséquence, l'étiquette "comblé" sera rem¬ placée par l'étiquette "normal". De ce fait, on obtient pour le champ d'étiquettes de t(j+l) la nouvelle classification :
- si l'étiquette de t(j+l) est "normal", elle reste "normal" ;
- si l'étiquette de t(j+l) est "apparaissant" , elle reste "apparaissant" ;
- si l'étiquette de t(j+l) est "occluant" et si diff-x < S et diff-y < S, l'étiquette reste "occluant", sinon l'étiquette devient "normal" ; et
- si l'étiquette de t(j+l) est "comblé", elle devient "normal". Une fois cette opération réalisée, on dispose donc d'un champ de mouvement estimé pour l'image t(j+l) ainsi qu'un nouveau champ d'étiquettes des pixels de t(j+l) du même type que ceux de l'image d'entrée t(j) ; à savoir un champ d'étiquette à trois classes. Ces deux champs peuvent donc être utilisés en projection temporelle sur l'image à interpoler T(j). Ils peuvent aussi être utilisés dans la projection temporelle vers une image d'entrée suivante t(j+2) selon le procédé décrit ci-dessus pour la projection temporelle de l'image t(j) sur l'image t(j+l).
Il est possible d'envisager d'autres modifications lors des différentes phases décrites ci-dessus. Ainsi, il est possible de ne valider l'étiquette "occluant" que lorsque le pixel que l'on suit le long de la séquence d' images animées a été marqué "occluant" au moins n fois avec n strictement supérieur à 1. Cela nécessite une mise en mémoire de l'ancienneté de l'étiquette "occluant".
Selon une autre modification, au moment de la projection temporelle du champ de mouvement de l'image t(j) sur l'image
t(j+l), il est possible de détecter les zones "disparaissant" de t(j) à t(j+l). Un pixel de l'image t(j) dont le vecteur-mouvement projeté sur l'image t(j+l) se trouve en conflit avec un autre pixel et n'est pas retenu, est alors étiqueté "disparaissant". Dans ce cas, une nouvelle classe est introduite et l'on obtient quatre types d'étiquettes sur l'image t(j), à savoir "normal", "occluant", et "apparaissant", "disparaissant".
On décrira maintenant, plus particulièrement avec référence à la figure 6, l'application du procédé de classification des pixels d'une image courante décrit ci-dessus à l'interpolation temporelle d'une image T(j). L'interpolation d'image est utilisée en traitement d' image notamment pour réaliser un changement de fréquence, par exemple le passage de la fréquence 50Hz à la fréquence 60Hz ou en télévision haute définition pour transmettre un maximum d'informations.
Différents procédés d' interpolation temporelle ont déjà été décrits notamment dans la demande de brevet français N°87 07814 et dans la demande de brevet français N°89 04256. La prise en compte de la classification donnée ci-dessus permet d'améliorer les procédés décrits dans ces demandes de brevet en permettant d'estimer correctement les vecteurs-mouvement affectés aux zones "apparaissant" et "disparaissant" et de déterminer aisément les zones de premier plan croisant celles d'arrière plan d'une image à l'autre. Dans le cas d'une interpolation avec prise en compte des zones "apparaissant" et "disparaissant", il s'agit de définir pour chaque pixel de l'image à interpoler T(j) située entre les images courantes t(j) et t(j+l), son vecteur-mouvement et son étiquette, puis d'en interpoler la luminance en prenant compte ledit vecteur-mouvement et ladite étiquette.
L'image à interpoler T(j) se trouvant entre deux images courantes t(j) et t(j+l) pour lesquelles ont déjà été définis,
comme décrit ci-dessus, un champ de mouvement et un champ d'étiquettes, les étiquettes possibles pour l'image à interpoler T(j) sont les suivantes :
- "normal" : le pixel est présent dans les deux images d'entrée encadrantes t(j) et t(j+l) ; il est donc interpolé à partir des deux extrémités de son vecteur-mouvement sur les images t(j) et t(j+l), en utilisant par exemple le procédé décrit dans la demande de brevet français Nβ8707814 ;
- "apparaissant" : le pixel est présent uniquement dans l'image d'entrée t(j+l), sa luminance est alors égale à la luminance du point d'extrémité de son vecteur-mouvement sur l'image t(j+l), la luminance de ce point pouvant être calculée par interpolation bilinéaire selon le procédé décrit dans la demande de brevet français mentionnée ci-dessus : - "disparaissant" : le pixel est présent uniquement dans l'image d'entrée t(j), sa luminance est alors égale à la luminance du point extrémité de son vecteur-mouvement sur l'image t(j) ; la luminance de ce point peut être calculée par interpolation bilinéaire comme mentionné ci-dessus. Concernant la définition du champ de mouvement de l'image à interpoler T(j), les principales difficultés sont d'estimer correctement les vecteurs dans les zones "apparaissant" et "disparaissant" ainsi que sur les zones de premier plan croisant celles d'arrière plan d'une image à l'autre comme mentionné ci- dessus. Pour obtenir une bonne définition du champ de mouvement de l'image à interpoler T(j), on peut donc exploiter, conformément à la présente invention, la classification des pixels effectuée pour l'image courante t(j+l) comme mentionné ci-dessus. Différents procédés de définition du champ de mouvement et du champ d'étiquettes pour l'image à interpoler T(j) peuvent être utilisés.
Le premier procédé consiste à définir le champ de mouvement de l'image à interpoler T(j) par projection temporelle du champ de mouvement estimé pour l'image courante t(j+l) et en utilisant son champ d'étiquettes à trois classes, à savoir "normal", "apparaissant" et "occluant". Ce procédé sera décrit de manière plus détaillée avec référence à la figure 6. La classification des pixels de l'image à interpoler T(j) s'effectue au cours de la projection temporelle du champ de mouvement de l'image courante t(j+l) sur l'image à interpoler T(j). Initialement, tous les points de l'image à interpoler T(j) sont étiquetés "trous". Puis, les vecteurs-mouvement de l'image courante t(j+l) sont projetés les uns après les autres sur l'image à interpoler T(j) de manière connue. Ensuite l'affectation d'une étiquette et d'un vecteur-mouvement pour tous les pixels de l'image à interpoler T(j) est effectuée de la manière suivante :
- si le pixel de l'image à interpoler T(j) est étiqueté "trou", et
- si le pixel de l'image courante t(j+l) est étiqueté "occluant" et si sa valeur de !DFD! < à seuil, l'étiquette du pixel de T(j) devient "occluant" ; si le pixel de t(j+l) est étiqueté "normal" ou "apparaissant" ou "occluant" et si la valeur !DFD! > à seuil, alors l'étiquette du pixel de T(j) devient "normal" ; - si l'étiquette du pixel de T(j) est "normal", et - si l'étiquette du pixel de t(j+l) est "occluant" et si la valeur !DFD! < à seuil, alors on remplace le vecteur-mouvement déjà attribué au pixel de l'image à interpoler T(j) par le nouveau vecteur qui est "occluant" et la nouvelle étiquette pour le pixel de T(j) devient "occluant" ; - si le pixel de t(j+l) est étiqueté "normal", ou "apparaissant" ou "occluant" et si la valeur !DFD! > à seuil, alors les deux vecteurs-mouvement sont comparés sur la base des
valeurs de !DFD! et l'étiquetage n'est pas modifié, à savoir l'étiquette du pixel de T(j) reste "normal" mais on attribue à ce pixel le vecteur-mouvement à !DFD! minimale ; - si le pixel de T(j) est étiqueté "occluant", et - si le pixel de t(j+l) est étiqueté "occluant" et si sa valeur !DFD! < à seuil, alors les vecteurs-mouvement sont comparés sur la base des valeurs de !DFD! et l'étiquetage n'est pas modifié à savoir l'étiquette du pixel de T(j) reste "occluant" mais on attribue à ce pixel le vecteur-mouvement à !DFD! minimale ;
- si le pixel de t(j+l) est étiqueté "normal" ou "apparaissant" ou "occluant" et si la valeur !DFD! > à seuil, alors on conserve l'ancien vecteur-mouvment et l'étiquetage n'est pas modifié, à savoir l'étiquette du pixel de T(j) reste "occluant".
Ainsi, quand un pixel de l'image à interpoler T(j) reçoit un vecteur de l'image courante t(j+l), on compare tout d'abord leurs étiquettes respectives, puis selon les cas, on compare les valeurs de !DFD! du vecteur de l'image courante t(j+l) projeté et du pixel de l'image à interpoler T(j) recevant ce vecteur. Une fois la projection réalisée, les étiquettes des pixels de l'image à interpoler T(j) appartiennent à l'une des trois classes "normal", "occluant", "trou". Les pixels étiquetés "trou" ne possèdent pas de vecteurs associés. La distinction entre "normal" et "occluant" a donc permis de résoudre les ambiguïtés dues au croisement d'objets entre deux images d'entrée. Cette distinction disparaît donc par la suite. Le procédé décrit ci-dessus a donc essentiellement servi à définir le champ de mouvement des pixels de l'image à interpoler T(j) supposés présents dans les images courantes t(j) et t(j+l). A ce stade, les étiquettes "apparaissant" et "disparaissant" n'existent pas encore dans l'image à interpoler T(j). Ces pixels
sont supposés être présents parmi ceux actuellement étiquetés "trou". On dispose donc d'un champ de mouvement incomplet sur l'image à interpoler T(j). Il faut donc remplir les trous dans le champ de mouvement de l'image à interpoler T(j). Ce remplissage peut être effectué par interpolation spatiale, par exemple selon le procédé décrit dans la demande de brevet français N°88 12468. Une fois cette interpolation spatiale réalisée, chaque pixel de l'image à interpoler T(j) possède un vecteur-mouvement passant par le pixel et dont les extrémités se trouvent sur les deux images courantes t(j) et t(j+l).
Une fois ce remplissage réalisé, on effectue la classi¬ fication des pixels et une interpolation adaptative par une prise en compte uniquement des extrémités "non-occluantes" des vecteurs-mouvement sur les images courantes t(j) et t(j+l). Ce procédé spécifique est illustré plus particulièrement sur la figure 6. Le champ de mouvement de l'image à interpoler T(j) après remplissage des trous est filtré médian conformément au procédé décrit dans la demande de brevet français N"89 04256, par exemple. De ce fait, les pixels de l'image à interpoler T(j) étiquetés "normal" ou "occluant" vont être interpolés à partir des deux images courantes t(j) et t(j+l). En ce qui concerne les pixels étiquetés "trou" sur l'image à interpoler T(j), on observe les deux extrémités du vecteur-mouvement en examinant l'étiquette de chacun des quatre pixels encadrant chacune desdites extré- mités. Si l'un au moins de ces pixels est étiqueté "occluant", l'extrémité considérée est dite "occluante" et est abandonnée à moins que les extrémités soient dans cette situation, ce qui annule leur effet, le pixel étiqueté "trou" sur l'image à inter¬ poler T(j) n'étant interpolé qu'à partir des extrémités "non- occluantes" .
Dans ce cas, on observe pour chacun des vecteurs-mouvement le type du pixel le plus proche des extrémités dans les images
courantes t(j+l) et t(j) :
- si à l'extrémité se trouvant sur l'image t(j+l), l'un des quatre pixels encadrant l'extrémité du vecteur est "occluant" et si au niveau de l'extrémité se trouvant sur l'image t(j) aucun des quatre pixels encadrant l'extrémité du vecteur n'est "occluant", alors on ne reconstruit le vecteur-mouvement du pixel de l'image à interpoler T(j) qu'à partir de l'image courante t(j) ;
- si au niveau de l'extrémité se trouvant sur l'image t(j), l'un des quatre pixels encadrant l'extrémité du vecteur-mouvement est
"occluant" et si au niveau de l'extrémité se trouvant sur l'image t(j+l), aucun des quatre pixels encadrant l'extrémité du vecteur-mouvement n'est "occluant", alors on ne reconstruit le vecteur-mouvement de l'image à interpoler T(j) qu'à partir de t(j+l) ;
- si aux deux extrémité du vecteur-mouvement, l'un des quatre pixels encadrant les extrémités des vecteurs-mouvement issus de l'image à interpoler T(j) est "occluant", alors on reconstruit à partir des deux images de manière classique, et - si aux deux extrémités du vecteur, aucun des quatre pixels encadrant n'est "occluant", alors on reconstruit aussi à partir des deux images.
Dans ce cas, l'identification des pixels "apparaissant" et "disparaissant" est réalisée au moment de l'interpolation sur les pixels "trou". On s'appuit donc sur l'étiquetage "occluant" des images t(j) et t(j+l) pour détecter les pixels de l'image à interpoler T(j) "apparaissant" ou "disparaissant". Cette infor¬ mation est la plus fiable car elle a été filtrée comme décrit ci-dessus. D'autre part, il est possible de réaliser aussi un filtrage temporel puisqu'un pixel "occluant" le reste géné¬ ralement sur plusieurs images.
Un autre procédé pouvant être utilisé dans ce cas consiste à
prendre en compte en plus de l'étiquetage "occluant" les étiquettes "apparaissant" sur l'image courante t(j+l) et "disparaissant" sur l'image courante t(j). On dispose dans ce cas des champs d'étiquettes suivants : sur l'image courante t(j+l), les étiquettes "normal", "occluant", "apparaissant", "disparaissant" et sur l'image à interpoler T(j) les étiquettes "normal", "occluant" et "trou".
Comme précédemment, les pixels de l'image à interpoler T(j) étiquetés "normal", ou "occluant" sont interpolés de manière connue à partir des images courantes t(j) et t(j+l). Quand aux pixels étiquetés "trou", ils sont interpolés de la façon suivante :
- si au niveau de l'image courante t(j), l'un des quatre pixels encadrant l'extrémité du vecteur-mouvement est "occluant" et aucun n'est "disparaissant", etsi au niveau de l'image courante t(j+l) l'un des quatre pixels encadrant l'extrémité du vecteur- mouvement est "apparaissant", alors on ne reconstruit le pixel de l'image à interpoler T(j) qu'à partir de t(j+l) ;
- si au niveau de l'image à interpoler t(j+l), l'un des quatre pixels encadrant l'extrémité du vecteur-mouvement est étiqueté
"occluant" et aucun n'est "apparaissant" et au niveau de l'image courante t(j), l'un des quatre pixels encadrant l'extrémité du vecteur-mouvement est étiqueté "disparaissant", alors on ne re¬ construit le pixel de l'image à interpoler T(j) qu'à partir de t(j) ;
- dans tous les autres cas, le pixel est reconstruit à partir des deux extrémités sur les images courantes t(j+l) et t(j).
On décrira maintenant l'ensemble des différentes étapes permettant de réaliser l'interpolation d'une image T(j) par projection temporelle du champ de mouvement de t(j+l) sur l'image à interpoler T(j) en prenant la classification des pixels réalisée sur l'image courante t(j+l) à partir de la
classification des pixels de l'image courante t(j) en se référant notamment à la figure 4. Comme représenté sur cette figure 4, on a en entrée les images t(j) et t(j+l). On connaît le champ de mouvement estimé sur t(j) symbolisé par la référence 10 et le champ d'étiquettes de t(j) symbolisé par la référence 11. Par projection temporelle sur t(j +1), comme représenté en 12, on obtient un champ de mouvement prédictif pour l'image t(j+l) en 13, ainsi qu'un champ d'étiquettes pour t(j+l) en 14. Les informations obtenues en 13 et en 14 sont utilisées pour réaliser le remplissage des trous dans l'image t(j+l) comme représenté par la référence 15. Puis une fois ce remplissage réalisé, on obtient un champ de mouvement prédictif sur l'image courante t(j+l) en 16 qui est utilisé pour réaliser une estimation de mouvement en association avec des informations sur l' image d'entrée t(j), comme représenté par la référence 17. Une fois cette estimation de mouvement réalisée, on dispose du champ de mouvement estimé sur t(j+l) en 18 et les éléments contenus en 18, en 16 et en 14 sont utilisés pour réaliser une modification de l'étiquetage des pixels de t(j+l) comme référencé en 19 de manière à obtenir le champ d'étiquettes de t(j+l) en 20. Ce champ d'étiquettes de t(j+l) ainsi que le champ de mouvement estimé de t(j+l) en 18 sont utilisés en association avec les éléments con¬ cernant l'image d'entrée t(j) pour réaliser une projection tem¬ porelle sur une image à interpoler T(j), comme représenté par la référence 21. Une fois cette projection temporelle réalisée, on obtient un champ de mouvement pour l'image à interpoler T(j) ainsi qu'un champ d'étiquettes référencé respectivement 22 et 23. Dans le champ de mouvement de l'image à interpoler T(j), on réa¬ lise le remplissage des trous en 24 de manière à obtenir un nouveau champ de mouvement pour l'image à interpoler T(j) en 25. Ce nouveau champ de mouvement issu de 25 ainsi que le champ d'étiquettes issu de 23, puis le champ d'étiquettes concernant
l'image courante t(j+l) issu de 20, et le champ d'étiquettes concernant l'image courante t(j) issu de 11 sont utilisés pour réaliser une interpolation adaptative à compensation de mouvement donnant l'image à interpoler T(j) comme référencé par 26 et 27. On décrira maintenant en se référant plus particulièrement à la figure 7, un autre procédé d'interpolation d'une image T(j) par projection des champs de mouvement de trois images courantes t(j+l), t(j+2) et t(j). Dans ce cas, les vecteurs-mouvement des pixels étiquetés "trou" de l'image à interpoler T(j) sont définis par projection temporelle des vecteurs-mouvement t(j) et t(j+2). La nouvelle classe des pixels étiquetés "trou" est directement déduite de cette projection comme représentée clairement sur la figure 7. Dans ce cas, on procède donc de la façon suivante :
-1. Projection du champ de mouvement de l'image courante t(j+l) sur l'image à interpoler T(j) selon le procédé décrit ci-dessus concernant la projection d' image mais sans projeter les vecteurs-mouvement étiquetés "apparaissant" ;
- 2. Projection du champ de mouvement de l'image courante t(j) sur T(j) à l'exception des vecteurs-mouvement étiquetés "apparaissant" . Cette projection est destinée aux pixels étiquetés "trou" uniquement, comme représenté par les pixels P4 sur la figure 7. En conséquence, les vecteurs-mouvement dont le point d'impact est au plus près d'un pixel étiqueté "trou" sont retenus. Lorsqu'un pixel "trou" est ainsi rempli, son étiquette devient "disparaissant" .
- 3. Projection du champ de mouvement de l' image courante t(j+2) sur l'image à interpoler T(j), à l'exception des vecteurs- mouvement étiquetés "apparaissant" .Cette projection est destinée aux pixels encore étiquetés "trou" à la fin de l'étape précédente. En conséquence, les vecteurs-mouvement dont le point d'impact est au plus près d'un pixel étiqueté "trou" tel que le pixel P5 sont retenus. Lorsqu'un pixel étiqueté "trou" est ainsi
rempli, son étiquette devient "apparaissant". On réalise ensuite une interpolation spatiale des vecteurs-mouvement pour les pixels restant sans vecteur-mouvement associé et, dans ce cas, on remplace l'étiquette "trou" par "normal". Puis on réalise une interpolation dans l'ensemble des pixels avec prise en compte de l'étiquette associée de la façon suivante :
- à partir de deux images courantes t(j) et t(j+l) si le pixel est étiqueté "normal" ;
- à partir de l'image courante t(j) uniquement si le pixel est étiqueté "disparaissant" ;
- à partir de l'image courante t(j+l) uniquement si le pixel est étiqueté "apparaissant".
Toutefois, ce procédé d'interpolation nécessite un bon champ de mouvement du fait de la projection temporelle de champs de mouvement lointains tels que celui de1' image courante t(j) mais surtout celui de l'image courante t(j+2), car les erreurs s'amplifient.