Brevet FR2751454A1 — publié le 19980123

Procédé d'estimation de mouvement La présente invention concerne la compression de données numériques d'une image vidéo. Elle a plus particulièrement trait au calcul des vecteurs de mouvements effectués par un estimateur de mouvement. Les procédés de compression de données réalisent, d'une manière connue, un découpage de l'image en blocs d'images, une transformée cosinus discrète de ces blocs pour fournir des macroblocs de coefficients de luminance et de chrominance, une quantification de ces coefficients, un codage en longueur variable. Des codages de type inter réalisent une estimation de mouvement entre par exemple l'image précédente et l'image courante pour compenser en mouvement l'image précédente fournissant ainsi une image prédite, le codage étant alors effectué sur la différence entre l'image courante et l'image prédite. La transformée cosinus permet de réduire la redondance spatiale et la compensation de mouvement la redondance temporelle. L'estimation de mouvement utilise le procédé connu sous l'appellation "block matching". Ce procédé réalise une comparaison des valeurs de luminance des pixels du bloc courant de l'image courante avec les valeurs de luminance des pixels de chacun des blocs de l'image précédente se trouvant dans une fenêtre de recherche pour en déterminer celui qui permet d'obtenir la meilleure corrélation. Un vecteur de mouvement correspondant au déplacement du bloc est déduit. L'estimation de mouvement dans un codeur permet de réduire notablement la redondance temporelle entre l'image courante (celle à coder) et la précédante (image reconstruite). Dans cette configuration, un bloc d'image va être transmis à l'aide du vecteur mouvement précédemment calculé puis de l'erreur de prédiction temporelle codée. II arrive fréquemment que ces vecteurs mouvement ne reflètent pas le mouvement réel dans l'image, par exemple - dans le cas de variation plus ou moins lente de luminosité, connue sous le nom de fading en langue anglaise, la corrélation de blocs d'une image à l'autre étant alors perturbée par cette variation de luminance, - dans le cas de flash entraînant une très forte variation de la luminance, quasi instantanée, d'une zone d'image ou de l'image complète, - lors de travelling ou plus généralement lors de disparition ou d'apparition de zones. Les techniques classiques de "block matching" ne permettent pas d'obtenir des vecteurs de mouvement "fiables" quand à l'aspect mouvement de la scène. Les variations de luminance mènent à des corrélations de blocs qui ne représentent plus le mouvement réel de la scène. Le fait que le champ de vecteurs que constituent les vecteurs de mouvement d'une image ne reflète pas la réalité du mouvement ne permet pas une compression de données optimale, en particulier dans le cas de codage des vecteurs en différentiel; pour des macroblocs correspondant à des zones à mouvement uniforme, le coût de transmission de vecteurs identiques ou peu différents, en codage différentiel, est évidemment plus faible que le coût de transmission de vecteurs aléatoires. D'autre part, le fait que les vecteurs de mouvement obtenus selon le procédé classique de "block matching" ne reflètent pas le mouvement réel ne permet pas une exploitation du champ de vecteurs pour réaliser des interpolations ou extrapolations d'images lors par exemple de conversion de fréquence, de mode ralenti (à partir de stockage numérique sur DVD, magnétoscope, etc.). Un champ de vecteurs de mouvement incorrect ne permet pas, également, d'exploiter les nouvelles techniques de codage utilisant les informations de contour d'une image plutôt que les macroblocs. En effet, la compression de données selon ces nouvelles techniques est basée, entre autres, sur la segmentation d'image et le déplacement réel de ces segments définissant les zones uniformes. L'invention a pour but de pallier les inconvénients précités. A cet effet, elle a pour objet un procédé d'estimation de mouvement entre deux images vidéo comportant une corrélation à partir de valeurs de luminance, des pixels de l'image courante avec des pixels d'une image précédente ou suivante, caractérisé en ce que les valeurs de luminance prises en compte sont des valeurs de luminance relatives de ces pixels référencées à la valeur moyenne de luminance dans une zone définie autour de chaque pixel mis en correspondance. Selon un mode de réalisation particulier, elle a également pour objet un procédé d'estimation de mouvement comportant un découpage de l'image vidéo en blocs d'image et une corrélation sur les valeurs de luminance du bloc courant d'une image avec un bloc d'une image précédente ou suivante se trouvant dans une fenêtre de recherche, caractérisé en ce que les zones définies autour des pixels sont les blocs d'image auxquels appartiennent ces pixels. Cette invention s'applique par exemple aux procédés de compression de données exploitant de telles estimations de mouvement. La prise en compte de la valeur moyenne de la luminance des blocs permet de réaliser une corrélation sur la structure de l'image, c'est à dire les contours plutôt que sur les seules informations brutes de luminance de chaque pixel d'un bloc. Grâce à l'invention, la corrélation effectuée reflète plus précisément le déplacement dans l'image et le champ de vecteurs de mouvement est plus fidèle au mouvement réel dans l'image. Le champ de vecteurs mouvement est valide même dans les cas de fading, flash, etc. qu'ils affectent l'image entière ou qu'ils soient localisés. La compression des données en est améliorée, les interpolations d'images pour la conversion de fréquence, la fonction ralenti (magnétoscope, DVD etc.) sont possibles et/ou de meilleure qualité. Ainsi, grâce à l'invention, une modification mineure des algorithmes de calcul permet d'obtenir des champs de vecteurs de mouvement représentatifs du mouvement réel et ceci sans mettre en oeuvre des circuits de calcul complexes nécessitant une réalisation matérielle coûteuse. La figure 1 représente un organigramme du procédé selon l'invention. La première étape 1 prend en compte le bloc courant de luminance de l'image à traiter, le bloc étant constitué de N x N pixels. L'étape 2 calcule la valeur moyenne de luminance sur tout ce bloc d'image. Si SRC(i, j) est la valeur de luminance du pixel de la ligne i et la colonne j du bloc, la valeur moyenne MOY~SRC est alors La troisième étape 3 va remplacer la valeur de luminance absolue de chaque pixel du bloc courant par sa valeur relative obtenue en défalquant la valeur moyenne précédemment calculée. Les étapes 4, 5, 6 et 7 concernent les blocs de luminance de la fenêtre de recherche de l'image de référence qui sont traités comme explicité plus loin. Selon le type d'image traité, prédictive P ou bidirectionnelles B selon la norme MPEG, une image précédente ou suivante appelée image de référence est choisie, à partir de laquelle est effectué le calcul de mouvement de l'image courante. Dans cette image et de manière connue, est définie une fenêtre de recherche comportant un certain nombre de blocs de luminance, U blocs horizontaux et V blocs verticaux, le bloc (u, v) se trouvant à la ligne u et la colonne v de cette fenêtre. L'étape 4 correspond à une initialisation dans la fenêtre de recherche de l'image de référence, en forçant les variables u et v à 1. Les étapes 5, 6 et 7 correspondent aux étapes 1, 2, 3 mais appliquées à un bloc de la fenêtre de recherche. L'étape 5 prend en compte le bloc (u, v) de luminance de l'image de référence, constitué de N x N pixels. L'étape 6 calcule la valeur moyenne de luminance sur tout le bloc d'image (u, v). Si REFU,v(i, j) est la valeur de luminance du pixel de la ligne i et la colonne j du bloc (u, v), la valeur moyenne MOY~REFU,v de ce bloc est alors: L'étape suivante 7 relative à ce bloc d'image remplace la valeur de luminance absolue de chaque pixel du bloc (u, v) par sa valeur relative, obtenue en défalquant de cette valeur de luminance absolue la valeur moyenne précédemment calculée. L'étape 8 récupère les valeurs de luminance relatives à la valeur moyenne et calculées pour chacun des pixels (i, j) du bloc courant et du bloc (u, v) pour les soustraire pixel à pixel puis les sommer sur l'ensemble du bloc, fournissant ainsi l'erreur moyenne absolue EMA pour le bloc (u, v) Cette valeur est mémorisée et l'étape suivante permet de passer au bloc de luminance suivant dans la fenêtre de recherche. L'étape 9 effectue un test sur la variable u et tant que la ligne de blocs de luminance de la fenêtre de recherche n'est pas entièrement traitée, la variable u est incrémentée à l'étape 10. Cette étape 10 est reliée à l'étape 5 précédente qui va alors prendre en compte le bloc de luminance suivant. Lorsque u=U, on passe à la ligne suivante de macroblocs en incrémentant, étape 11, la variable v et en réinitialisant la variable u. L'étape 12 effectue le test sur la variable v et se connecte à l'étape 10 tant que v est inférieur ou égal à V. Dans le cas contraire, L'étape suivante est l'étape 1 3 qui choisit, parmi toutes les valeurs EAM (u, v) calculées à l'étape 8, le couple (u, v) qui correspond à la valeur minimale. Ce couple correspond au vecteur mouvement pour le bloc courant. Ensuite un nouveau bloc courant et une nouvelle fenêtre de recherche sont transmis aux entrées 1 et 4 de l'organigramme. Le procédé, dans cet exemple, réalise un calcul de la valeur absolue moyenne mais il serait tout aussi envisageable d'effectuer un calcul de l'erreur quadratique moyenne pour déterminer le vecteur mouvement. Le calcul est effectué sur une fenêtre de recherche de l'image de référence. Un codage exploitant la décomposition hiérarchique est également compatible de ce procédé. La décomposition hiérarchique consiste en un traitement des images à différents niveaux de résolution, ceci afin de limiter, lors de la corrélation, les calculs d'erreur dont la complexité est directement liée à la taille de la fenêtre de recherche. Des premières corrélations sont effectuées sur des images de résolution moindre afin de travailler sur des fenêtres de recherche de grande taille tout en limitant les calculs liés au nombre de pixels dans la fenêtre donc à la résolution. Une fois déterminé le macrobloc de meilleure corrélation dans l'image de faible résolution, on travaille sur une position de fenêtre liée à celle de ce macrobloc, pour une résolution supérieure. L'invention telle que précédemment décrite, I'exploitation des luminances relatives, peut être mise en oeuvre pour chacune des étapes correspondant aux différentes résolutions d'image. Un autre procédé calcule les vecteurs mouvement sans exploiter la décomposition en macroblocs et est connu sous l'appellation PEL récursif. On travaille ici au niveau du pixel pour le calcul des vecteurs mouvement, par exemple en calculant la différence inter-image déplacée ou DFD (Displaced Frame Difference en langue anglaise). Cette différence de luminance entre deux pixels, I'un de l'image courante, L'autre de l'image de référence, peut ainsi, selon l'invention, être remplacée par une différence de valeurs de luminance relative en définissant une fenêtre autour des pixels, fenêtre dans laquelle est calculée la luminance moyenne. L'invention s'applique, entre autres, aux procédés de compression de données exploitant l'estimation de mouvement. La description est basée sur la comparaison de blocs de luminance et il est indifférent, pour l'exploitation de l'invention, qu'un ou plusieurs de ces blocs soient groupés en macroblocs. L'invention s'applique aussi à l'interpolation ou l'extrapolation d'images ou de trames à partir de vecteurs mouvements, par exemple pour la conversion de standards. Elle s'applique également à tout type de procédé de détection de zones d'image (par exemple la segmentation) basé en tout ou partie sur l'uniformité du champ de vecteurs mouvement. REVENDICATIONS 1. Procédé d'estimation de mouvement entre deux images vidéo comportant une corrélation à partir de valeurs de luminance, des pixels de l'image courante avec des pixels d'une image précédente ou suivante, caractérisé en ce que les valeurs de luminance prises en compte sont des valeurs de luminance relatives de ces pixels (3, 7), référencées à la valeur moyenne de luminance (2, 6) dans une zone définie autour de chaque pixel mis en correspondance. 2. Procédé selon la revendication 1, caractérisé en ce que la corrélation est effectuée en comparant les valeurs de luminance relatives des pixels mis en correspondance. 3. Procédé selon la revendication 1, caractérisé en ce que la corrélation est effectuée en calculant la différence inter-trame déplacée (DFD pour Displaced Frame Difference en anglais) à partir des valeurs de luminance relatives. 4. Procédé selon la revendication 1 comportant un découpage de l'image vidéo en blocs d'image et une corrélation sur les valeurs de luminance du bloc courant d'une image avec un bloc d'une image précédente ou suivante se trouvant dans une fenêtre de recherche, caractérisé en ce que les zones définies autour des pixels sont les blocs d'image auxquels appartiennent ces pixels. 5. Procédé selon la revendication 4, caractérisé en ce que la corrélation est effectuée en calculant l'erreur moyenne absolue EMA (8) qui est la somme, sur le bloc, des erreurs entre les luminances relatives des pixels du bloc courant (3) et celles des pixels du bloc de la fenêtre de recherche mis en correspondance (7). 6. Procédé selon la revendication 4, caractérisé en ce que la corrélation est effectuée en calculant l'erreur quadratique moyenne qui est la somme, sur le bloc, du carré des erreurs entre les luminances relatives des pixels du bloc courant et celles des pixels du bloc de la fenêtre de recherche mis en correspondance. 7. Procédé de compression de données comportant une estimation de mouvement selon l'un quelconque des procédés précédemment revendiqués.