Brevet FR2902216A1 — publié le 20071214

PROCEDE ET DISPOSITIF DE GENERATION DE CHAMPS DE MOUVEMENT ET DISPOSITIF DE CODAGE IMPLEMENTANT LEDIT PROCEDE 1. Domaine de l'invention L'invention concerne un dispositif et un procédé de génération de champs de mouvement entre une première image et une seconde image d'une séquence d'images. L'invention concerne également un dispositif de codage d'une séquence d'images implémentant ledit procédé de génération de champs de mouvement. 2. Etat de l'art La plupart des procédés de codage de séquence d'images, tel que MPEG ou tel que les procédés basés sur un schéma ondelettes t+2D (i.e. utilisant une étape d'analyse temporelle t et une étape d'analyse spatiale 2D), comprennent une première étape d'analyse temporelle qui permet de réduire la redondance temporelle entre images successives. Préalablement au codage, la séquence d'images est généralement divisée en groupes d'images ( GOP - Group Of Pictures ou GOF - Group Of Frames en anglais). En référence à la figure 1, l'étape 10 du procédé de codage consiste en une analyse temporelle des images de la séquence. A cet effet, les images sont généralement compensées en mouvement à partir de vecteurs de mouvement MV, par exemple par filtrage temporel compensé en mouvement ("MCTF"- Motion Compensated Temporal Filtering en anglais) afin d'obtenir différentes bandes de fréquence temporelles ou bien par prédiction comme cela est le cas dans les schémas de codage basés sur la norme MPEG2 définie dans le document ISO/IEC 13818-2 (intitulé en anglais Information technology -- Generic coding of moving pictures and associated audio information: Video ). Une image est compensée en mouvement en utilisant des vecteurs de mouvement MV préalablement générés par une étape d'estimation de mouvement 11. Cette étape 11 peut, par exemple, mettre en oeuvre une estimation classique par appariement de blocs ( block matching en anglais) ou une estimation de type pel-récursif. Les images résultantes de cette analyse temporelle sont ensuite codées lors d'une étape 12. Lors d'une étape de multiplexage 13, les données de mouvement préalablement codées lors d'une l'étape 14 sont combinées aux données codées relatives aux coefficients spatio-temporels afin de créer un unique train de données codées. La figure 2 illustre une méthode d'analyse temporelle selon l'état de l'art d'un GOF de 4 images référencées A1, B1, C1 et D1 par un filtrage type Haar sans étape de mise à jour ( update step en anglais). Une telle méthode permet de générer à partir des 4 images du GOF une image basse résolution L et 3 images haute résolution H1, H2 et H3. En l'occurrence, l'image basse résolution est l'image A1. L'image H1 est générée à partir de l'image B1 et de l'image Al préalablement compensée en mouvement (MC) par rapport à B1 à l'aide d'un premier champ de mouvement estimé (ME) entre Al et B1. Plus précisément, Hl = BlûM B~(A1) où MCAlBl(Al) correspond à la compensation de mouvement de l'image Al à partir du champ de mouvement estimé de B1 vers A1. L'image H2 est générée à partir de l'image D1 et de l'image C1 préalablement compensée en mouvement (MC) par rapport à D1 à l'aide d'un deuxième champ de mouvement estimé (ME) entre C1 et D1. Plus précisément, H2= DlûMC D1 (Cl) où MCciDI(Cl) correspond à la compensation de mouvement de l'image C1 à partir du champ de mouvement estimé de D1 vers C1. Enfin, l'image H3 est générée à partir de l'image C1 et de l'image Al préalablement compensée en mouvement (MC) par rapport à ci à l'aide d'un troisième champ de mouvement estimé (ME) entre Al et D1. Plus précisément, H3 - Cl ûM ci (Al) où MCAlci(Al) correspond à la compensation de mouvement de l'image Al à partir du champ de mouvement estimé de C1 vers A1. Un tel procédé de codage nécessite de générer pour chaque GOF trois champs de mouvement entre des images séparées d'une distance temporelle qui varie. En effet, la distance temporelle entre les images Al et C1 est égale à deux fois la distance temporelle entre Al et B1. 3. Résumé de l'invention L'invention a pour but de pallier au moins un des inconvénients de l'art antérieur. A cet effet, l'invention concerne un dispositif de génération d'un champ de mouvement entre une première image et une seconde image d'une séquence d'images, les première et seconde images étant espacées d'une première distance temporelle. Le dispositif comprend : - des premiers moyens pour estimer un champ de mouvement entre la première image et une troisième image précédant la seconde image, la troisième image étant espacée de la première image d'une deuxième distance temporelle supérieure ou égale à la première distance temporelle; et - des seconds moyens pour déduire un champ de mouvement entre la première image et la seconde image à partir du champ de mouvement estimé par les premiers moyens. Préférentiellement, les premiers moyens sont adaptés pour estimer un champ de mouvement entre deux images espacées d'une distance temporelle prédéterminée et fixe égale à la deuxième distance temporelle. Avantageusement, les premiers moyens sont un estimateur de mouvement adapté pour estimer un champ de mouvement entre deux images espacées d'une distance temporelle prédéterminée et fixe égale à la deuxième distance temporelle. Selon une caractéristique particulière, cet estimateur de mouvement opère séquentielleme nt sur les images de la séquence des images. Cet estimateur de mouvement peut avantageusement être un estimateur utilisant la propagation temporelle d'un champ de mouvement pour estimer un champ de mouvement courant à partir de champs de mouvement estimés précédemment. L'invention concerne également, un dispositif de codage d'une séquence d'images qui comprend un dispositif d'estimation de mouvement selon l'invention. L'invention concerne en outre un procédé de génération du champ de mouvement entre une première image et une seconde image d'une séquence d'images, la seconde image précédant la première image, les première et seconde images étant espacées d'une première distance temporelle. Le procédé comprend les étapes suivantes : - estimer un champ de mouvement entre la première image et une troisième image précédant la seconde image, la troisième image étant espacée de la première image d'une deuxième distance temporelle; et - en déduire un champ de mouvement entre la première image et la seconde image. Selon une caractéristique particulière, le champ de mouvement généré est utilisé par un procédé de codage pour coder la séquence d'images. Préférentiellement, le procédé de codage comprend une étape de filtrage temporel compensé en mouvement. 4. Listes des figures L'invention sera mieux comprise et illustrée au moyen d'exemples de modes de réalisation et de mise en oeuvre avantageux, nullement limitatifs, en référence aux figures annexées sur lesquelles : la figure 1 illustre un procédé de codage selon l'état de l'art; la figure 2 illustre un procédé d'analyse temporelle basé ondelettes d'une séquence d'images structurée en GOF de 4 images selon l'état de l'art; la figure 3 illustre les états successifs de la mémoire dans laquelle sont stockées les images à partir desquelles son estimés des champs de mouvement; la figure 4 représente un vecteur V1 d'un champ de mouvement estimé et un vecteur V2 d'un champ de mouvement déduit du champ de mouvement auquel appartient V1; la figure 5 illustre un procédé d'analyse temporelle basé ondelettes d'une séquence d'images structurée en GOF de 4 images selon l'invention; la figure 6 illustre un module d'estimation de mouvement selon l'invention ; et la figure 7 illustre un dispositif de codage d'une séquence d'images selon l'invention. 5. Description détaillée de l'invention L'invention concerne un procédé de génération de champs de mouvement entre deux images non nécessairement consécutives d'une séquence d'images ordonnées selon un ordre prédéfini appelé ordre d'affichage. Les images de la séquence à partir desquelles un champ de mouvement est généré sont stockées dans leur ordre d'affichage dans une mémoire de longueur N images. En référence à la figure 3 et pour N=3, les images DO, Al et B1 sont stockées en mémoire (Etat 1). Un premier champ de mouvement MVDO où Ti est la distance temporelle entre les images Al et B1 et T2 est la distance temporelle entre les images DO et B1. Ensuite, les images stockées en mémoire sont décalées de telle sorte que l'image Al occupe la place précédemment occupée par l'image DO, l'image B1 occupe la place précédemment occupée par l'image Al et l'image C1 occupe la place précédemment occupée par l'image B1, l'image DO n'étant alors plus stockée en mémoire (Etat 2). Un troisième champ de mouvement MVA1 De ce cinquième champ de mouvement MVB1 Préférentiellement, le procédé de génération de champs de mouvement selon l'invention est utilisé par un procédé de codage d'une séquence d'images. Le procédé de codage selon l'invention comprend une étape l'analyse temporelle de la séquence. Selon un mode de réalisation particulier, cette étape d'analyse temporelle est effectuée par un filtrage de type Haar sans étape de mise à jour ( update step en anglais). Préférentiellement, la séquence est divisée en groupes d'images ou GOF, chacun des groupes comprenant un nombre prédéterminé (p. ex. 4) d'images consécutives. En référence à la figure 5, dans le cas particulier de groupes de 4 images, l'analyse temporelle génère à partir de 4 images A1, B1, C1, D1 de la séquence initiale 3 images haute fréquence H1, H2, H3 et une image basse fréquence L . Dans le cas particulier d'une étape d'analyse temporelle ne faisant pas intervenir d'étape de mise à jour l'image basse fréquence L est l'image A1. Le procédé de codage selon l'invention met en oeuvre le procédé d'estimation de mouvement selon l'invention. Ainsi, le premier champ de mouvement MVpo mouvement par rapport à B1 à partir du deuxième champ de mouvement MVA1 L'estimateur de mouvement estime ensuite le troisième champ de mouvement MVA1 L'image C1 est ensuite compensée en mouvement par rapport à D1 à partir du sixième champ de mouvement MVC1 Les images stockées en mémoire sont alors décalées de telle sorte que l'image A2 occupe la place précédemment occupée par l'image D1, l'image D1 occupe la place précédemment occupée par l'image C1 et l'image C1 occupe la place précédemment occupée par l'image B1, l'image B1 n'étant alors plus stockée en mémoire (Etat 4 sur la figure 3). Il n'est cependant pas nécessaire d'estimer le champ de mouvement entre la première image C1 stockée en mémoire et la dernière image stockée en mémoire A2. En effet, dans le mode de réalisation particulier décrit, le champ de mouvement MVC1 effectuée par une unité 110 d'estimation d'un champ de mouvement. L'unité 110 met en oeuvre un procédé classique d'estimation de mouvement par exemple par appariement de blocs ou pel-récursif. Le module 1 comprend en outre une unité 120 adaptée pour déduire les autres champs de mouvement MVA1 estimés par l'unité d'estimation 110. Selon une variante le module 1 comprend également une unité 130 permettant de multiplexer les champs de mouvement générés par l'unité d'estimation 110 et par l'unité 120. Selon une caractéristique avantageuse, l'unité 110 opère séquentiellement et entre des images espacées d'une distance temporelle fixe prédéterminée. Préférentiellement, l'unité 110 met oeuvre un procédé d'estimation de mouvement de type pel-récursif utilisant une propagation temporelle du mouvement, i.e. ledit procédé utilise un champ de mouvement précédemment estimé pour initialiser le champ de mouvement courant. Avantageusement, le module d'estimation de mouvement 1 est utilisé par un dispositif de codage 2 d'une séquence d'images illustré par la figure 7. Le dispositif de codage 2 comprend un module d'estimation de mouvement 1 permettant de générer des champs de mouvement selon le procédé de l'invention. Il comprend en outre un module d'analyse temporelle 20 utilisant les champs de mouvement générés par le module d'estimation de mouvement 1. Par ailleurs, il comprend un module de codage 21 permettant de générer un train de données codées à partir des données générées par le module d'analyse temporelle 20. Selon un mode de réalisation particulier, le module de codage 21 comprendre une unité d'analyse spatiale mettant en oeuvre une transformée spatiale (p.ex. une transformée en cosinus discret) et une unité de codage entropique. Selon une caractéristique particulière, le dispositif de codage 2 comprend également un module de multiplexage 22 permettant de combiner les données générés par le module de codage 21 et les données de mouvement générées par une unité de codage des vecteurs de mouvement 23 afin de générer un unique train de données codées. Sur les figures 6 et 7, les modules représentés sont des unités fonctionnelles, qui peuvent ou non correspondre à des unités physiquement distinguables. Par exemple, ces modules ou certains d'entre eux peuvent être regroupés dans un unique composant, ou constituer des fonctionnalités d'un même logiciel. A contrario, certains modules peuvent éventuellement être composés d'entités physiques séparées. Bien entendu, l'invention n'est pas limitée aux exemples de réalisation mentionnés ci-dessus. En particulier, l'homme du métier peut apporter toute variante dans les modes de réalisation exposés et les combiner pour bénéficier de leurs différents avantages. Notamment l'invention décrite pour des groupes de 4 images peut être appliquée à des groupes de plus de 4 images ou de moins de 4 images. L'invention décrite pour être utilisée par un procédé de codage comprenant une étape d'analyse temporelle basée ondelettes peut avantageusement s'appliquer à tout procédé de codage comprenant une étape d'analyse temporelle nécessitant la génération de champs de mouvement entre des images espacées d'une distance variable (par exemple entre des images espacées d'une distance Ti et entre d'autres images espacées d'une distance T2). Ainsi, l'invention peut avantageusement être utilisée par un procédé de codage basé sur la norme H.264 lorsque le procédé utilise la possibilité offerte par la norme d'utiliser plusieurs images de référence ( multiple reference frame en anglais). Dans ce cas, selon l'invention, une estimation du champ de mouvement entre l'image courante d'indice k et l'image précédente d'indice k-N est effectuée. Les champs de mouvement intermédiaires entre l'image courante et les images d'indice k-I avec I Revendications 1. Dispositif de génération d'un champ de mouvement (1) entre une première image (BI) et une seconde image (Al) d'une séquence d'images, lesdites première et seconde images étant espacées d'une première distance temporelle (T1), caractérisé en ce qu'il comprend: - des premiers moyens (110) pour estimer un champ de mouvement entre ladite première image (BI) et une troisième image (DO) précédant ladite seconde image (Al), ladite troisième image (DO) étant espacée de ladite première image (BI) d'une deuxième distance temporelle (T2) supérieure ou égale à ladite première distance temporelle (Ti); et - des seconds moyens (120) pour déduire un champ de mouvement entre ladite première image (BI) et ladite seconde image (Al) à partir du champ de mouvement estimé par lesdits premiers moyens. 2. Dispositif selon la revendication 1, caractérisé en ce que lesdits premiers moyens (110) sont un estimateur de mouvement adapté pour estimer un champ de mouvement entre deux images de ladite séquence espacées d'une distance temporelle prédéterminée et fixe égale à ladite deuxième distance temporelle (T2). 3. Dispositif selon la revendication 2, caractérisé en ce que ledit estimateur de mouvement est adapté pour opérer séquentiellement sur les images de ladite séquence. 4. Dispositif de codage (2) d'une séquence d'images caractérisé en ce qu'il comprend un dispositif de génération d'un champ de mouvement_(1) selon l'une des revendications 1 à 3. 30 5. Procédé de génération d'un champ de mouvement entre une première image (BI) et une seconde image (Al) d'une séquence d'images, ladite seconde image (Al) précédant ladite première image (BI), lesdites première et seconde images étant espacées d'une première distance temporelle (T1) caractérisé en ce qu'il comprend les étapes suivantes :25FR0652045 12 -estimer un champ de mouvement entre ladite première image (BI) et une troisième image (DO) précédant ladite seconde image (Al), ladite troisième image (DO) étant espacée de ladite première image (BI) d'une deuxième distance temporelle (T2) supérieure ou égale à ladite première distance temporelle (T1); et - en déduire un champ de mouvement entre ladite première image (B1) et ladite seconde image (Al). 6. Procédé selon la revendication 5, caractérisé en ce que ledit champ de 10 mouvement généré est utilisé par un procédé de codage pour coder ladite séquence d'images. 7. Procédé selon la revendication 6, caractérisé en ce que ledit procédé de codage comprend une étape de filtrage temporel compensé en mouvement. 15