FR 2750558 A1 19980102 FR 9608054 A 19960628 Procédé d'interpolation de trames pour compatibilité mode film L'invention concerne un procédé d'interpolation de trames avec conversion de fréquence trame à partir de signaux vidéo en mode caméra ou en mode film et permettant une réduction des saccades liées à l'exploitation du mode film en balayage entrelacé. La conversion de fréquence exploitant la compensation de mouvement, par exemple le passage du 50 Hz entrelacé au 100 Hz entrelacé, soulève en effet un problème particulier lors de l'exploitation de séquences en mode film. Le balayage en mode film est un balayage 25 Hz en mode progressif (le passage de 24 images par seconde à 25 Hz se faisant en doublant artificiellement une image tous les 24 images). Pour être i15 transformée au format standard de télévision 50 Hz entrelacé, I'image film est décomposée en deux trames intermédiaires, qui correspondent à la même image - c'est-à-dire au même instant - mais qui sont affichées à deux instants différents. La visualisation à 50 Hz entrelacé se traduit donc par un effet de saccade sur les objets en mouvement dans la scène, car leur mouvement n'est plus reproduit fidèlement mais subit une sorte de décomposition temporelle. Cet effet de saccade persiste après conversion de fréquence trame - à 75 Hz ou 100 Hz, par exemple - si on utilise un algorithme de conversion ne comportant qu'une seule mémoire de trame, et ceci même si l'interpolation est compensée en mouvement. La figure 1 décrit l'évolution d'un pixel appartenant à un objet ayant un mouvement rectiligne uniforme vertical, dans le cas d'une conversion de fréquence 50Hz à 1 00Hz, lorsque la séquence d'images en entrée est en mode film. L'axe des abscisses est gradué en numéros d'images (n-1, n, n + 1,... ), chaque numéro correspondant à un instant t divisé par la 2 2750558 période image T image. L'axe des ordonnées correspond au déplacement vertical y du pixel dans l'image divisé par le produit de la vitesse uniforme de déplacement du pixel et de la période trame T trame. Les deux trames d'une même image en entrée du convertisseur de fréquence sont appelées 1 et 3, les trames intermédiaires reconstituées par le convertisseur sont appelées 2 et 4, ce qui correspond à quatre cycles en sortie pour une image donnée. Les pixels d'entrée représentés par une croix proviennent des trames en mode film et se trouvent donc positionnés au même endroit pour deux trames successives 1 et 3 d'une image n correspondant aux cycles 1 et 3. La conversion en fréquence génère deux nouvelles trames 2 et 4 intercalées entre ces trames pour une même image n. Une estimation de mouvement entre deux trames d'entrée successives 1 et 3 d'une image, puis 3 d'une image et 1 de l'image suivante donnerait les pixels représentés par un rond sur la figure 1: - entre les trames 1 et 3, le vecteur mouvement calculé est nul et le pixel de la trame intermédiaire a même position que ceux correspondant aux trames voisines; - entre les trames 3 et 1, le vecteur mouvement calculé V V permet de positionner le pixel de la trame intermédiaire à la distance 2. L'effet de saccade, c'est-à-dire l'irrégularité dans le mouvement, se traduit ici par des "marches d'escalier" apparaissant sur la figure et générées par les pixels d'entrée reconduits en sortie et par les pixels interpolés pour les trames reconstituées. Un procédé de réduction de saccade connu est décrit à l'aide de la figure 2. Une estimation de mouvement est effectuée entre la trame 1 et 3 d'une image (en fait le vecteur mouvement est nul) et entre la trame 3 d'une image et la trame 1 de l'image suivante. Le vecteur mouvement V calculé entre la trame d'entrée 3 de I'image n et la trame 1 de l'image suivante n+1 est ici exploité pour 3 2750558 positionner les pixels par interpolation dans les trames de sortie 3 et 4 de l'image courante n (le pixel de la trame 3 n'est ici pas reconduit en sortie): - Le pixel de sortie de la trame 3 est déplacé d'une valeur V par rapport au pixel d'entrée de cette même trame. - Le pixel de sortie de la trame 4 est déplacé d'une valeur par rapport au pixel d'entrée de la trame 3. Le vecteur mouvement V' calculé entre la trame d'entrée 3 de J'image précédente et la trame 1 de l'image courante n est exploité pour positionner les pixels dans les trames de sortie de l'image courante: V' - Le pixel de sortie de la trame 2 en déplaçant d'une valeur - le pixel d'entrée de la trame 1. - Le pixel de sortie de la trame 1 est déplacé d'une valeur nulle par rapport au pixel d'entrée de cette même trame (pixel reconduit). On réalise donc ici une extrapolation à partir du vecteur mouvement calculé à partir d'une trame de l'image précédente et une trame de l'image courante et deux interpolations à partir du vecteur mouvement calculé à partir d'une trame de l'image courante et une trame de l'image suivante. Les pixels en sortie sont, comme le montre la figure, alignés, faisant disparaître cet effet de saccade. Ce procédé est cependant très coûteux. L'estimation des vecteurs mouvement qu'il entraîne nécessite un nombre important de lignes à retard, surtout si l'on s'impose comme contrainte d'implémentation matérielle, d'estimer le mouvement et d'interpoler les pixels de sortie des trames 3 de sortie dans l'intervalle de temps qui sépare deux trames de sortie. 4 2750558 Le fait d'utiliser une projection de vecteur (extrapolation), en supposant donc que le mouvement estimé entre deux trames se poursuit à la trame suivante, donne une qualité d'image dégradée en particulier lorsque les mouvements ne sont pas uniformes, hormis le phénomène de saccade. Des procédés basés sur une interpolation de mouvement calculé entre par exemple deux trames non successives existent également mais nécessitent alors plus d'une mémoire de trame et donc entraînent un coût de réalisation élevé. L'invention a pour but de résoudre les inconvénients précités. Elle concerne un procédé d'interpolation de trame de données numériques vidéo reçues sous forme de trames à la fréquence trame en mode film ou en mode normal, comportant une mémorisation de trame, une estimation de mouvement et une interpolation entre la trame mémorisée et une trame courante, caractérisé en ce qu'en mode film la mémorisation est effectuée à fréquence moitié de celle en mode caméra de telle manière que seule la deuxième des deux trames d'entrée correspondant à la même image film est mémorisée dans la mémoire trame pour être relue deux fois successivement pour être comparée aux deux trames d'entrée suivantes pour calculer les vecteurs mouvement. L'invention sera mieux comprise à l'aide des figures suivantes qui représentent: - la figure 1, l'évolution d'un pixel appartenant à un objet en mouvement rectiligne uniforme vertical, pixel provenant d'une image en mode film et faisant apparaître le phénomène de saccades - la figure 2, l'évolution du même pixel en sortie d'un dispositif de réduction de saccades selon l'art antérieur; - la figure 3, un dispositif d'interpolation et d'estimation de mouvement permettant une réduction de saccades et mettant en oeuvre le procédé selon l'invention; 2750558 - la figure 4, un chronogramme des signaux en sortie des différents modules du dispositif selon l'invention - la figure 5, I'évolution d'un pixel en sortie du dispositif selon l'invention; - la figure 6, deux modes de filtrage pour réaliser l'interpolation. Grâce à l'invention, le coût de réalisation est réduit, limitant le besoin en mémoire de trame et lignes à retard. En exploitant une seule mémoire trame, il est possible de calculer des trames intermédiaire entre deux trames d'une même image en mode film par interpolation. Le champ de vecteurs mouvement calculé est de meilleure qualité, aucune extrapolation n'étant nécessaire. Le mouvement visualisé en est donc amélioré, limitant les effets de blocs et donnant des vecteurs mouvement de meilleure qualité, contribuant par là même à la suppression de l'effet de saccades. i 5 La figure 3 représente un dispositif selon l'invention. L'entrée du dispositif est l'entrée d'une mémoire à fréquence de sortie double 1 dite mémoire d'accélération et plus connue sous le terme anglosaxon de "speed-up memory". La sortie de la mémoire 1 est reliée en parallèle à l'entrée d'une mémoire de trame 2, à l'entrée d'un estimateur de mouvement 3 et à l'entrée d'un interpolateur 4. La sortie de la mémoire de trame 2 est reliée à une deuxième entrée de l'estimateur de mouvement et à une deuxième entrée de l'interpolateur. L'estimateur de mouvement transmet à l'interpolateur les vecteurs mouvement par l'intermédiaire d'une liaison. La sortie de l'interpolateur 4 est la sortie du dispositif. La mémoire de trame 2 possède également une entrée de commande recevant un signal correspondant au mode, film ou caméra, des images en entrée du dispositif. Les signaux numériques reçus en entrée de la mémoire speed- up sont en mode film, c'est-à-dire en balayage progressif à la fréquence image de 25 Hz. 6 2750558 Ces signaux sont, comme expliqué précédemment, transposés à la fréquence 50 Hz en mode entrelacé avant d'être transmis à l'entrée du dispositif. Le fonctionnement du dispositif sera mieux compris à l'aide des courbes de la figure 4 qui représente trois repères avec en ordonnées, le balayage ligne y et en abscisses le temps t. F et F,2 sont les trames impaire et paire correspondant à l'image n. En se référant à la figure 2, les appellations F, ou F2 sont les cycles 1 ou 3 de l'image n. En mode film, les deux trames appartenant à la même image, par exemple F1 et F2 correspondent en fait à une même image. La courbe 5 correspond aux signaux y, en entrée de la mémoire speed-up, la courbe 6 aux signaux Y2 en sortie de cette mémoire et la courbe 7 aux signaux y3 en sortie de la mémoire trame 2. Le rôle de la mémoire speed-up est de fournir en sortie, à une fréquence double, la trame mémorisée en entrée, une première fois pendant la mémorisation de la deuxième moitié de la trame, une deuxième fois pendant la mémorisation de la première moitié de la trame suivante. Par la suite, on appellera période ou fréquence trame la période ou fréquence des trames de sortie de la mémoire speed-up. La mémoire de trame 2 mémorise, parmi les données provenant de la mémoire à fréquence de sortie double, celles correspondant à la deuxième trame dédoublée des seules trames paires, c'est-à-dire la deuxième des trames F2_, F2, etc. La mémoire de trame transmet sur sa sortie la trame mémorisée après sa mémorisation et la répète quatre fois avant de passer à la trame suivante comme le montre la courbe 7. Le rôle de cette mémoire est donc de sélectionner des trames parmi celles sortant de la mémoire d'accélération et de retarder ces trames sélectionnées, de la durée d'une trame à quatre trames en les présentant 7 2750558 quatre fois successives sur sa sortie, à la fréquence trame. L'estimateur de mouvement 3 compare les trames reçues sur chacune de ses entrées pour déterminer le champ de vecteurs mouvement. En comparant les courbes 6 et 7 correspondant aux signaux présents sur chacune des entrées de l'estimateur de mouvement, on remarque que le mouvement pris en compte pour le calcul est celui entre la trame paire de l'image n et la trame impaire de l'image suivante n + 1 pendant deux périodes trames puis entre la trame paire de l'image n et la trame paire de l'image n+1 pendant les deux périodes trame suivantes. Les deux trames comparées correspondent, en mode film, à deux instants différents puisqu'il s'agit toujours de trames d'images différentes. Le fonctionnement de l'estimateur de mouvement et de l'interpolateur sont précisés ci-après. Les circuits doivent être capable de traiter aussi bien le cas o i15 les trames disponibles sur leurs entrées sont de même parité que le cas o elles sont de parité opposée. Aussi, I'estimateur de mouvement réalise un filtrage vertical des trames en entrée permettant un calcul de vecteurs mouvement que les trames comparées soient de même parité ou de parité opposée. Pendant une première période trame correspondant à la première présentation des trames en entrée de l'estimateur de mouvement, une première estimation des vecteurs mouvements est effectuée en réalisant par exemple un appariement de blocs principaux en lesquels est découpée l'image (MB pour "main blocks"), par corrélation, procédé plus connu sous l'appellation anglo-saxonne de "block matching". Lors de la "deuxième passe" (les mêmes trames sont présentées lors d'une deuxième période trame), un affinage de ce calcul est effectué en calculant les vecteurs mouvement de sous-blocs (SB pour "sub-blocks") composant les blocs principaux. Cette méthode de calcul en 2 étapes (ou 2 cycles) permet de limiter le nombre de lignes à retard 8 2750558 nécessaires à ces calculs: en effet, du fait que le calcul d'un vecteur de SB nécessite la connaissance des vecteurs de MB avoisinants les plus proches, lorsqu'on calcule les SB lors du cycle suivant le cycle de calcul des MB, on évite l'introduction de retards de ligne supplémentaire; mais en contrepartie les vecteurs de SB ne sont disponibles qu'au cycle suivant. Ce dernier point n'étant pas gênant, car aucune interpolation compensée en mouvement n'est nécessaire lors du cycle o on ne dispose que des vecteurs de MB. Le tableau ci-dessous représente les différentes phases de calcul de l'estimateur de mouvement lorsque l'on traite des images en mode film et en mode caméra. Mode film: Y1 Fnl Fnz Fn+ 1 Fn+1 Y2 Fn-1 Fn Fnl Fnz FnZ' Fn+1' Fn+11 F z F iz y2 3 Fn-2 Fn- n-1 Fn-1 n-I Fn Fn estimation SB MB SB SB SB MB SB mouvement interpolationFn2 Fn-1 Fn 1 + Fn1 + Fn + Fn + + Fn + Fn1Fn1 Fn Fn2Fn +1Fn+i1 coefficient 3/4 O 1/4 1/2 3/4 O 1/4 sortie Cni Cn C n Cn; Cn+ Cn+1 Les sorties à la fréquence double sont appelées C' pour indiquer qu'il s'agit du numéro de cycle i de l'image n. Les sorties Cl et C3 correspondent ainsi aux entrées F1 et F2. 9 2750558 L'estimateur de mouvement calcule le champ de vecteurs mouvement pour les blocs principaux par exemple, pour C', à partir des trames F et F2,1. Les signaux des trames Y2 et Y3 sont ceux à partir desquels sont calculés les vecteurs mouvement et interpolées les trames de sortie, en utilisant les coefficients appropriés. Au cycle suivant C2, les trames présentées aux deux entrées de l'estimateur de mouvement sont à nouveau F.' et F2 l. Ce deuxième cycle va ainsi permettre à l'estimateur de mouvement d'affiner le calcul des vecteurs mouvement en agissant sur les sous-blocs. Lors du troisième et du quatrième cycle correspondant aux sorties C3 et C4, les trames en présence sont F.2 et F2-1. Le calcul des vecteurs mouvement se fait également au niveau des sous-blocs, les vecteurs mouvement calculés pour les blocs principaux MB lors du premier cycle étant ici exploités car toujours valables. En effet, seule la trame change entre le premier cycle et les suivants, la comparaison se faisant toujours entre l'image n-1 et n pour le calcul de ces vecteurs et l'on sait qu'en mode film, la trame paire et impaire correspondent à la même image, c'est à dire au même instant de l'image source. Le calcul est répété pour le quatrième cycle car cela évite de mémoriser le champ de vecteurs précédant, et donc de consommer de la mémoire. 2750558 Mode caméra Y,1 Fn= Fn z Fn + 1' F +l z z I 1 - Y2 Fnz F F Fn1 Fn+1 Fn+ FY3Fn2 Fn1 Fn. 1 F_12 Fl F_ ' Fn' Fn FnZ estimation MB SB MB SB MB SB MB SB mouvement interpolation Fn2 Fn2z Fn 1z Fn1Z+ Fnl + Fn' + Fnz+ FnZ+ + Fn. + Fn_ + Fn1 Fn1 Fn2 Fn2 Fn+11 Fn+11 2 2 1 1 coefficient O 1/2 O 1/2 O 1/2 O 1/2 sortie Cin4 0 1 z; 1 n+1 En mode caméra, deux trames F] et F2 d'une même image correspondent à deux instants différents de l'image source. Ainsi lors du premier cycle correspondant à Cn, un calcul des vecteurs mouvement est effectué sur les macroblocs principaux MB à partir des trames F2 _ et Fl et lors du deuxième cycle sur les sous-blocs pour ces mêmes trames. Pour le troisième cycle, les trames en présence sont Fl et F2 à partir desquelles peuvent donc être calculés les nouveaux vecteurs mouvement sur les blocs MB, le quatrième cycle permettant un affinage sur les sous- blocs. La différence entre les deux modes concerne la mémoire de trame. Un signal correspondant au mode traité est envoyé sur une entrée de commande de la mémoire de trame, entrée autorisant ou non la mémorisation de la trame se présentant sur son entrée. Sur la courbe 7 de la figure 4, on remarque que le signal Y2 disponible en entrée de la mémoire de trame est échantillonné en écriture à raison d'un cycle sur quatre en mode film, par exemple F l, F2, Fn+l, etc. La trame mémorisée est ensuite lue quatre fois pendant quatre cycles 11 2750558 successifs (ou quatre périodes trames successives). Tandis qu'en mode caméra, l'échantillonnage est à fréquence double et la trame mémorisée est donc répétée pendant deux cycles successifs. Le champ de vecteurs mouvement calculé pour une trame donnée est transmis à l'interpolateur 4. Celui-ci réalise une interpolation en fonction de la trame reçue sur sa première entrée et celle reçue sur sa deuxième entrée. Les coefficients appliqués aux vecteurs mouvements sont de 0 i et - en mode normal. En mode film, la figure 5 permet de mieux comprendre les valeurs choisies. Un vecteur mouvement Vl est calculé entre la trame F2 et F pour fournir le pixel de la trame intermédiaire à une distance i -x V1 de celui de la première trame et un vecteur mouvement V2 est calculé entre la trame F,_1 et F.2 pour fournir un pixel de la trame i15 intermédiaire à une distance -x V2 de celui de la première trame. Les trames F.' et F.2 correspondent à la même image film et les vecteurs V1 et V2 sont donc identiques, raison pour laquelle les calculs sont effectués sur les sous-blocs lors du troisième et quatrième cycle, en prenant en compte les vecteurs mouvements calculés sur les macroblocs lors du premier cycle. L'effet de saccade, comme le montre l'alignement des pixels représentés par des ronds (pixels de sortie), est supprimé. Un filtre d'interpolation classique fonctionne avec deux trames de parités opposées. Il est possible de se ramener à l'utilisation d'un tel filtre en réalisant un moyennage vertical sur une des deux trames d'entrée. Un filtrage par moyennage d'une des deux trames d'entrée permet de générer un champ de parité opposée. Le filtrage d'interpolation peut alors être réalisé de manière classique en effectuant un moyennage 12 2750558 sur trois pixels, à savoir deux pixels l'un sous l'autre d'une trame et celui sur la ligne intermédiaire de la trame suivante reconstituée de parité opposée. Cette solution peut cependant entraîner une perte de résolution dans le sens vertical. Une autre solution consiste à réaliser un filtrage à partir des deux trames paires présentées en entrée de l'interpolateur pour obtenir une trame impaire. On réalise par exemple un filtrage sur quatre pixels ou deux pixels, en utilisant un filtre linéaire / médian ou simplement linéaire. Un exemple est donné à la figure 6 qui représente les pixels de sortie (ronds) obtenus à partir de tels filtrages des pixels d'entrée (croix). Le choix de filtrage est à la fois fonction du vecteur mouvement attribué au pixel de la trame intermédiaire, et à la fois de la parité de la ligne sur laquelle se trouve le pixel à interpoler. i15 Le pixel de sortie Y qui a un vecteur mouvement nul peut être généré à partir des valeurs (luminances) des pixels d'entrée A, C d'une trame et des pixels d'entrée B, D de l'autre trame de même parité avec un filtre hybride linéaire/médian. Y= MEDIAN((A + B),MEDIAN(A,B,C,D),(C + D)). L'opérateur 2 2 médian de variables en nombre impair élimine les valeurs extrêmes pour ne sélectionner que la valeur centrale, I'opérateur médian de variables en nombre pair sélectionne les deux valeurs centrales pour en calculer leur valeur moyenne. Le pixel de sortie Z dont le vecteur mouvement est +2 peut être généré à partir des pixels E d'une trame et D de l'autre trame de même parité décalé d'une ligne avec un simple filtre linéaire. Z= (E+D) 13 2750558 L'invention ne se limite pas aux exemples décrits et peut très bien être appliquée à tout type de convertisseur de balayage trame nécessitant une interpolation. En particulier, selon le rapport entre la fréquence trame d'entrée et la fréquence trame de sortie, I'exploitation d'une mémoire de type "speed-up" n'est pas indispensable à la mise en oeuvre de l'invention. 14 2750558 Revendications 1. Procédé d'interpolation de trames de données numériques vidéo reçues sous forme de trames à la fréquence trame en mode film ou en mode normal, comportant une mémorisation de trame, une estimation de mouvement fournissant des vecteurs mouvement et une interpolation entre la trame mémorisée et une trame courante, caractérisé en ce qu'en mode film la mémorisation est effectuée à fréquence moitié de celle en mode caméra de telle manière que seule la deuxième des deux trames d'entrée correspondant à la même image film est mémorisée dans la mémoire trame pour être relue deux fois successivement afin d'être comparée aux deux trames d'entrée suivantes pour calculer les vecteurs de mouvement. 2. Procédé de conversion de fréquence trame de données numériques vidéo comportant une mémorisation de trame, une estimation de mouvement fournissant des vecteurs mouvement et une interpolation entre la trame mémorisée et une trame courante selon la revendication 1, caractérisé en ce que la trame courante est mémorisée une première fois pour être lue deux fois successivement à une fréquence double de la fréquence trame d'entrée pour fournir Y2, en ce que Y2 est mémorisé à raison d'une trame sur deux en mode normal et à raison d'une trame sur quatre en mode film, chaque fois la dernière de ces trames, pour être ensuite lue à la fréquence double de la fréquence trame d'entrée pour fournir y3, et en ce que l'estimation de mouvement et l'interpolation sont effectuées entre les trames Y2 et y3 lues à la fréquence double de la fréquence trame d'entrée. 2750558 3. Procédé selon la revendication 1 ou 2, caractérisé en ce que, l'interpolation réalise au préalable, lorsque les deux trames reçues sont de même parité, un pré-filtrage par moyennage vertical d'une des deux trames Y2 pour fournir une trame de parité opposée à y3. 4. Procédé selon la revendication 1 ou 2, caractérisé en ce que l'interpolation réalise, lorsque les deux trames reçues sont de même parité, un filtrage linéaire/médian sur quatre pixels mis en correspondance par le vecteur de mouvement du pixel à interpoler, les deux premiers pixels appartenant à deux lignes consécutives et les deux autres aux lignes consécutives correspondantes dans l'autre trame, les positions horizontale et verticale de ces pixels étant définies par la position du pixel à interpoler et par le vecteur de mouvement attribué à ce pixel. i15 5. Procédé selon la revendication 1 ou 2, caractérisé en ce que l'interpolation réalise lorsque les deux trames reçues sont de même parité un filtrage linéaire sur deux pixels mis en correspondance par le vecteur de mouvement du pixel à interpoler, un pixel d'une trame et le pixel correspondant de l'autre trame, les positions horizontale et verticale de ces pixels étant définies par la position du pixel à interpoler et par le vecteur de mouvement attribué à ce pixel. 6. Procédé selon la revendication 4 ou 5, caractérisé en ce que le choix de filtrage est fonction à la fois du vecteur mouvement attribué au pixel de la trame interpolée et à la fois de la parité de la ligne à laquelle appartient ce pixel. 7. Dispositif d'interpolation de trame de données numériques vidéo reçues sous forme de trames en mode film ou en mode normal comportant une mémoire trame (2) recevant des données numériques 16 2750558 vidéo, un estimateur de mouvement (3) et un interpolateur (4) ayant chacun deux entrées, leurs premières entrées recevant les mêmes données numériques vidéo que l'entrée de la mémoire trame, leurs deuxièmes entrées recevant la sortie de la mémoire trame, caractérisé en ce que les données numériques vidéo passent préalablement par une mémoire de type "speed-up" (1) fournissant en sortie les données vidéo à une fréquence double en répétant les trames deux fois, en ce que la mémoire trame écrit une trame sur deux puis lit cette trame deux fois à la fréquence double de la fréquence trame d'entrée en mode caméra et écrit une trame sur quatre puis lit quatre fois cette même trame à la fréquence double de la fréquence trame en mode film, la trame mémorisée par la mémoire trame étant chaque fois la deuxième des deux trames issues d'une même image.