FR2948522A1 - Procede et dispositif d'estimation d'un vecteur de mouvement - Google Patents

Procede et dispositif d'estimation d'un vecteur de mouvement Download PDF

Info

Publication number
FR2948522A1
FR2948522A1 FR0955068A FR0955068A FR2948522A1 FR 2948522 A1 FR2948522 A1 FR 2948522A1 FR 0955068 A FR0955068 A FR 0955068A FR 0955068 A FR0955068 A FR 0955068A FR 2948522 A1 FR2948522 A1 FR 2948522A1
Authority
FR
France
Prior art keywords
motion vector
block
current block
blocks
estimating
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR0955068A
Other languages
English (en)
Other versions
FR2948522B1 (fr
Inventor
Nael Ouedraogo
Benoit Vandame
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to FR0955068A priority Critical patent/FR2948522B1/fr
Publication of FR2948522A1 publication Critical patent/FR2948522A1/fr
Application granted granted Critical
Publication of FR2948522B1 publication Critical patent/FR2948522B1/fr
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/53Multi-resolution motion estimation; Hierarchical motion estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/56Motion estimation with initialisation of the vector search, e.g. estimating a good candidate to initiate a search
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Abstract

Un procédé d'estimation d'un vecteur de mouvement associé à un bloc courant d'une image courante dans une séquence d'images comprend, pour un ensemble de blocs voisins du bloc courant dans l'image courante, au sens d'un voisinage prédéterminé une étape d'obtention (S207), pour chaque bloc voisin, d'un nombre prédéterminé de paramètres représentatifs de valeurs de similarité calculées entre ledit bloc voisin et une pluralité de blocs de référence d'une zone de référence d'une image de référence ; et à partir de la caractérisation de la nature des blocs voisins en fonction de l'analyse des valeurs desdits paramètres obtenus, une étape de détermination (S208) d'un vecteur de mouvement associé au bloc courant à partir d'une fonction appliquée aux vecteurs de mouvement associés respectivement aux blocs voisins, ladite fonction étant dépendante de la nature des blocs voisins. Utilisation notamment lors du codage d'une séquence d'images.

Description

La présente invention concerne un procédé d'estimation d'un vecteur de mouvement associé à un bloc courant d'une image courante dans une séquence d'images. Corrélativement, elle concerne également un dispositif d'estimation d'un vecteur de mouvement adapté à mettre en oeuvre le procédé d'estimation.
De manière générale, la présente invention concerne la compression et décompression de séquences vidéo codées par blocs. Plus particulièrement, elle concerne les séquences vidéo codées par blocs telles que définies par le consortium Moving Picture Expert Group (MPEG), comme par exemple dans les normes MPEG4-Partie 2 et H.264.
Ces normes utilisent un codage prédictif permettant de coder les séquences d'images en éliminant la redondance temporelle entre les images. Ces redondances temporelles sont déterminées lors d'un procédé d'estimation de vecteurs de mouvement, chaque vecteur de mouvement permettant de mesurer le déplacement entre deux ensembles de pixels de deux images différentes. Dans la suite, ces ensembles de pixels sont nommés blocs. En pratique, un bloc est par exemple un carré de 16 pixels de côté. Dans de telles séquences d'image, les blocs d'une image courante sont calculés par translation relative à partir des blocs d'une ou de plusieurs 25 images de référence précédemment décodées. Le déplacement entre ces deux blocs est défini par un vecteur de mouvement. Chaque bloc d'une image courante de la séquence d'image est alors prédit à partir d'un bloc de référence d'une image de référence, identifié par le 30 vecteur de mouvement déterminé lors de l'estimation de mouvement.
L'ensemble des différences entre les pixels du bloc de référence et du bloc courant à coder constitue le résidu et représente ainsi l'erreur de prédiction entre les deux blocs. Plus les pixels du bloc à coder et du bloc de référence sont proches, plus le coût du codage du résidu est faible. Ainsi, le choix du bloc de référence, et donc du vecteur de mouvement, est déterminant pour augmenter l'efficacité de la compression de la séquence d'images. De manière générale, afin d'optimiser le choix du bloc de référence, une recherche exhaustive peut être mise en oeuvre sur l'ensemble des blocs candidats dans une zone de référence de l'image de référence. Les pixels du bloc courant à coder sont comparés successivement aux pixels de chaque bloc candidat par une mesure de similarité (ou mesure de distorsion).
Une mesure usuelle consiste à calculer la somme des différences absolues (appelée en terminologie anglo-saxonne "Sum of Absolute Differences" ou SAD) entre les pixels du bloc de référence et les pixels du bloc à coder. On retient alors comme bloc de référence celui pour lequel la valeur 20 de SAD est minimale sur l'ensemble des valeurs SAD calculées. Cette méthode de recherche exhaustive présente l'avantage d'optimiser le choix du bloc de référence et de sélectionner un vecteur de mouvement optimal pour le codage, c'est-à-dire le vecteur de mouvement minimisant le coût de codage du bloc courant. Toutefois, cette méthode est 25 coûteuse en temps de calcul. Afin d'accélérer l'estimation d'un vecteur de mouvement pour une image courante, on connaît dans le document US 6 377 623 un procédé de codage consistant à réduire la zone de recherche du bloc de référence en utilisant les vecteurs de mouvement des blocs voisins du bloc courant à coder. 30 Dans son principe, l'estimation de mouvement se fait d'abord sur un niveau de résolution supérieur, de manière à déterminer rapidement une ou plusieurs zones de recherche du bloc de référence, puis cette estimation du mouvement est raffinée dans des niveaux de résolution inférieurs. La mesure de distorsion employée est la moyenne des différences absolues (en terminologie anglo-saxonne "Mean Absolute Difference" ou MAD) entre les pixels du bloc courant et les blocs candidats d'une première zone de recherche. Les centres de deux zones de recherche sont alors identifiés aux valeurs minimales de MAD, permettant ainsi de définir deux vecteurs de mouvement entre ces zones de recherche et le bloc courant à coder.
Une troisième zone de recherche est obtenue à partir des vecteurs de mouvement des blocs voisins du bloc courant. Lorsque les vecteurs de mouvement des blocs voisins sont proches, un vecteur moyen définit le troisième centre d'une troisième zone de recherche. Grâce à ces vecteurs de mouvement identifiés, il est possible de calculer de nouveau dans un niveau de résolution inférieur la mesure de distorsion entre le bloc courant et les blocs situés dans les zones de recherche définies par les vecteurs de mouvement prédéterminés. Le bloc de référence ayant une valeur minimale de MAD définit alors une nouvelle zone de recherche dans un niveau de résolution inférieur.
Le vecteur de mouvement du bloc courant retenu est celui pour lequel la mesure de distorsion MAD est minimum dans cette nouvelle zone de recherche. Le document US 6 377 623 permet ainsi d'estimer un vecteur de mouvement pour un bloc courant en réduisant le nombre de calculs effectués sur les blocs de référence susceptibles de convenir. Toutefois, ce procédé ne tient pas compte de la nature des blocs voisins pour déterminer le vecteur de mouvement moyen de telle sorte que la précision dans l'estimation du vecteur de mouvement est diminuée. La présente invention a pour but de proposer un procédé d'estimation d'un vecteur de mouvement permettant de garantir un niveau de précision élevé dans la détermination d'un vecteur de mouvement associé à un bloc courant d'une image.
A cet effet, selon un premier aspect, la présente invention concerne un procédé d'estimation d'un vecteur de mouvement associé à un bloc courant d'une image courante dans une séquence d'images, le vecteur de mouvement faisant correspondre le bloc courant auquel il est associé à un bloc de référence d'une image de référence de la séquence d'images. Selon l'invention, ce procédé d'estimation de vecteur de mouvement comprend, pour un ensemble de blocs voisins du bloc courant, au sens d'un voisinage prédéterminé : - une étape d'obtention, pour chaque bloc voisin, d'un nombre prédéterminé de paramètres représentatifs de valeurs de similarité calculées entre ledit bloc voisin et une pluralité de blocs de référence d'une zone de référence de ladite image de référence ; - une étape de caractérisation de la nature des blocs voisins à partir de l'analyse des valeurs des paramètres obtenus ; et - une étape de détermination d'un vecteur de mouvement associé au bloc courant à partir d'une fonction appliquée aux vecteurs de mouvement associés respectivement aux blocs voisins, la fonction étant dépendante de la nature des blocs voisins. Ainsi, grâce aux valeurs de similarité calculées entre les blocs voisins de l'image courante et plusieurs blocs de référence des zones de référence de l'image de référence, il est possible de caractériser la nature des blocs voisins au niveau des pixels les composant. Le vecteur de mouvement associé au bloc courant peut ainsi être déterminé directement à partir d'une fonction appliquée aux vecteurs de mouvement associés aux blocs voisins, cette fonction dépendant de la nature du bloc voisin afin d'optimiser le choix du vecteur de mouvement. On notera en particulier que lorsque le procédé d'estimation de vecteur de mouvement est mis en oeuvre lors du codage d'une séquence d'images, l'étape d'obtention de paramètres représentatifs des valeurs de similarité mise en oeuvre sur un ensemble de blocs voisins peut avantageusement être réalisée à partir des valeurs de similarité calculées précédemment lors du codage de ces blocs voisins.
Par conséquent, le procédé d'estimation d'un vecteur de mouvement mis en oeuvre dans un procédé de codage d'une séquence d'images est moins coûteux en temps de calcul qu'un procédé d'estimation de mouvement classique.
En pratique, à l'étape de caractérisation, l'analyse des valeurs des paramètres est adaptée à caractériser la nature d'un bloc voisin parmi un bloc de pixels homogènes, un bloc de pixels texturés ou un bloc contenant un contour contrasté. En tenant compte de la nature du bloc voisin, il est possible 10 d'attribuer une information de confiance à la valeur du vecteur de mouvement déterminé. Selon un mode de réalisation avantageux de l'invention, à l'étape de détermination, la fonction appliquée aux vecteurs de mouvement est choisie parmi un ensemble de fonctions comprenant au moins le choix arbitraire d'un 15 des vecteurs de mouvement associés aux blocs voisins, la détermination d'un vecteur médian des vecteurs de mouvement associés aux blocs voisins et le calcul d'une moyenne pondérée des vecteurs de mouvement associés aux blocs voisins, le coefficient de pondération affecté à chaque vecteur de mouvement associé à un bloc voisin étant dépendant de la valeur des 20 paramètres définissant la carte de similarité modélisée associée au bloc voisin. En particulier, lorsque les blocs voisins sont des blocs de pixels homogènes, les blocs de référence sont alors très similaires et le choix de l'un par rapport à l'autre n'a que peu d'impact sur le coût de codage du bloc courant. Le choix d'un vecteur de mouvement égal au vecteur médian de 25 l'ensemble de ces vecteurs de mouvement permet en outre d'assurer une cohérence dans le champ de vecteurs de mouvement déterminés pour l'image courante. A contrario, lorsque les blocs voisins comportent au moins un ou plusieurs blocs de pixels texturés, l'utilisation d'une fonction de calcul d'une 30 moyenne pondérée des vecteurs de mouvement associés aux blocs voisins permet de privilégier les valeurs des vecteurs de mouvement associées aux blocs voisins de pixels texturés ou encore contenant un contour contrasté.
De manière pratique, l'étape d'obtention d'un nombre prédéterminé de paramètres comporte les sous-étapes suivantes : - construction d'une carte de similarité à partir des valeurs de similarité calculées entre le bloc voisin de l'image courante et une pluralité de blocs de référence d'une zone de référence de l'image de référence ; et - modélisation de la carte de similarité de façon à obtenir un modèle défini par un nombre prédéterminé de paramètres. Selon un mode de réalisation pratique de l'invention, à l'étape de modélisation, la carte de similarité est modélisée sous la forme d'une surface du type d'un paraboloïde elliptique défini par un demi-grand axe, un demi-petit axe, une orientation et un extrémum des valeurs de similarité. Dans ce cas, à l'étape de caractérisation, pour chaque carte de similarité modélisée, les valeurs du demi-grand axe et du demi-petit axe sont comparées à une première valeur seuil et la valeur de l'extrémum est comparée à une seconde valeur seuil. L'utilisation d'une première valeur seuil et d'une seconde valeur seuil permet de caractériser la nature des blocs voisins et notamment d'identifier les blocs de pixels homogènes et les blocs de pixels texturés ou contenant un contour contrasté.
En pratique, lorsque, pour chaque carte de similarité modélisée, les valeurs du demi-grand axe et du demi-petit axe sont supérieures à la première valeur seuil et la valeur de l'extrémum est inférieure à la seconde valeur seuil, à l'étape de détermination d'un vecteur de mouvement associé au bloc courant, le vecteur de mouvement est égal au vecteur médian des vecteurs de mouvement associés aux blocs voisins du bloc courant. Dans ce cas, afin de garantir que le bloc courant est aussi un bloc de pixels homogènes, le procédé d'estimation comprend en outre : - une étape de calcul d'une valeur de similarité entre le bloc courant et un bloc translaté de l'image de référence, le bloc translaté correspondant aux coordonnées spatiales du bloc courant translatées dans l'image de référence par le vecteur de mouvement déterminé ; - une étape de comparaison de la valeur de similarité calculée avec au moins une des valeurs d'extrémum associées aux blocs voisins ; et - une étape d'attribution audit bloc courant du vecteur de mouvement déterminé lorsque la valeur absolue de la différence entre la valeur de similarité et ladite au moins une des valeurs d'extrémum est inférieure à une valeur de seuil minimale. On peut ainsi vérifier que tant le bloc courant que ses blocs voisins sont similaires, c'est-à-dire de pixels homogènes. A contrario, lorsque pour au moins un bloc voisin de l'ensemble des blocs voisins, les valeurs du demi-grand axe ou du demi-petit axe sont inférieures à la première valeur de seuil, à l'étape de détermination d'un vecteur de mouvement associé au bloc courant, le vecteur de mouvement est égal à une moyenne pondérée des vecteurs de mouvement associés aux blocs voisins.
En pratique, afin de privilégier les vecteurs de mouvement associés aux blocs voisins de pixels non homogènes, le facteur de pondération associé à chaque bloc voisin est égal à l'inverse de la somme des valeurs du demi-grand axe et du demi-petit axe associées à la carte de similarité dudit bloc voisin. La présente invention concerne également un procédé de codage d'une séquence d'images, comprenant une étape d'estimation d'un vecteur de mouvement associé à un bloc courant d'une image courante de la séquence d'images, l'étape d'estimation d'un vecteur de mouvement étant adaptée à mettre en oeuvre le procédé d'estimation d'un vecteur de mouvement décrit précédemment.
De préférence, ce procédé de codage comprend, en outre, une étape de mémorisation des valeurs de similarité calculées entre un bloc de l'image courante et une pluralité de blocs de référence d'une zone de référence d'une image de référence. Ainsi, le procédé d'estimation d'un vecteur de mouvement mis en oeuvre sur un bloc courant peut utiliser les valeurs de similarité mémorisées lors de l'estimation du vecteur de mouvement associé à un bloc voisin.
Selon un second aspect, la présente invention concerne un dispositif d'estimation d'un vecteur de mouvement associé à un bloc courant d'une image courante dans une séquence d'images, le vecteur de mouvement faisant correspondre le bloc courant auquel il est associé à un bloc de référence d'une image de référence de la séquence d'images. Selon l'invention, ce dispositif d'estimation d'un vecteur de mouvement comprend : - des moyens d'obtention, pour chaque bloc voisin d'un ensemble de blocs voisins du bloc courant dans ladite image courante, au sens d'un voisinage prédéterminé, d'un nombre prédéterminé de paramètres représentatifs de valeurs de similarité calculées entre le bloc voisin et une pluralité de blocs de référence d'une zone de référence de ladite image de référence ; - des moyens de caractérisation de la nature des blocs voisins à 15 partir de l'analyse des valeurs des paramètres obtenus ; et - des moyens de détermination d'un vecteur de mouvement associé au bloc courant à partir d'une fonction appliquée aux vecteurs de mouvement associés respectivement aux blocs voisins, la fonction étant dépendante de la nature des blocs voisins. 20 Dans un même but, la présente invention vise aussi un moyen de stockage d'informations lisible par un ordinateur ou un microprocesseur conservant des instructions d'un programme informatique, adapté à mettre en oeuvre chacune des étapes du procédé d'estimation d'un vecteur de mouvement décrit ci-dessus, ou chacune des étapes du procédé de codage 25 décrit précédemment. Finalement, la présente invention vise aussi un produit programme d'ordinateur pouvant être chargé dans un appareil programmable, comportant des séquences d'instructions adaptées à mettre en oeuvre chacune des étapes du procédé d'estimation d'un vecteur de mouvement décrit ci-dessus, ou 30 chacune des étapes du procédé de codage décrit précédemment, lorsque ce programme est chargé et exécuté par l'appareil programmable.
Les caractéristiques particulières et les avantages du dispositif d'estimation d'un vecteur de mouvement, du moyen de stockage d'informations et du produit programme d'ordinateur étant similaires à ceux du procédé d'estimation d'un vecteur de mouvement, et du procédé de codage, ne sont pas répétés ici. D'autres particularités et avantages de l'invention apparaîtront encore dans la description ci-après. Aux dessins annexés, donnés à titre d'exemples non limitatifs : - la figure 1 représente de façon schématique le principe de l'estimation d'un vecteur de mouvement d'un bloc à coder d'une image courante en fonction d'une image de référence ; - la figure 2 est un organigramme illustrant les principales étapes du procédé d'estimation d'un vecteur de mouvement selon un mode de réalisation particulier de l'invention ; - la figure 3 est un organigramme détaillant une étape de construction d'une carte de similarité ; - la figure 4 illustre un exemple particulier de carte de similarité ; - la figure 5 illustre un exemple particulier d'un modèle parabolique pour la carte de similarité de la figure 4 ; - la figure 6 est un organigramme illustrant l'étape de détermination d'un vecteur de mouvement de l'organigramme de la figure 2 ; et - la figure 7 représente de façon schématique un mode particulier de réalisation d'un appareil susceptible de mettre en oeuvre la présente invention.
On va décrire tout d'abord en référence à la figure 1 le principe de l'estimation d'un vecteur de mouvement dans le cadre du codage ou décodage d'une séquence d'images, en encore séquence vidéo. On considère dans la description qui suit une vidéo codée par blocs au sens défini par le consortium Moving Picture Expert Group (MPEG), comme 30 par exemple dans les normes MPEG 4-part2 et H.264. On a illustré à la figure 1 une séquence vidéo composée de deux images 100, 101.
Ces images sont découpées en blocs de pixels 102. D'une manière générale, la taille d'un bloc 102 correspond à la taille d'une unité de codage de la norme de compression. Dans la suite de la description, on envisagera le cas particulier où les blocs sont de taille 16 x 16. Bien entendu, la taille des blocs peut être variable, et par exemple prendre des valeurs 4 x 4, 4 x 8, 8 x 4, 8 x 8, 16x8ou8x16. L'image courante 101 est prédite à partir de l'image de référence 100.
L'estimation d'un vecteur de mouvement entre un bloc courant Bc, référencé 102 à la figure 1, dans l'image courante 101 consiste à déterminer un bloc de référence Bxy, référencé 103 à la figure 1, dans l'image de référence 100 le plus similaire selon une métrique de similarité s. Un vecteur de mouvement Vxy, référencé 104, de coordonnées (x,y) correspond à la translation entre les coordonnées du bloc courant Bc et du bloc de référence Bxy. Les blocs Bxy de l'image de référence 100 sont librement positionnés et sont de la même taille que le bloc à coder Bc. Le codeur recherche le bloc Bxy tel que la mesure de similarité Sxy = 20 s (Bxy,Bc) entre Bxy et Bc soit minimale ou maximale par rapport à tous les blocs candidats Bxy. La métrique de similarité s est dite directe ou inverse selon que l'auto-similarité s (Bc,Bc) est maximale ou nulle, respectivement. Par exemple, la métrique de similarité SAD est une mesure inverse 25 dès lors que SAD (Bc,Bc) = O. On notera que le bloc de référence Bxy n'est pas nécessairement aligné sur la grille de blocs de l'image de référence 100. De plus, certaines normes déterminent le mouvement à une résolution inférieure à la résolution des pixels en interpolant les images de 30 référence. Par exemple, dans la norme H.264, les vecteurs de mouvement peuvent être déterminés avec une précision au quart de pixel.
On a illustré à la figure 2 dans son principe général le procédé d'estimation d'un vecteur de mouvement selon un mode de réalisation de l'invention. Dans la suite de la description, on considérera que le procédé 5 d'estimation d'un vecteur de mouvement est mis en oeuvre lors du codage d'une séquence d'images. Le procédé d'estimation de mouvement conforme à l'invention peut également mis en oeuvre lors du décodage d'une séquence d'images, notamment en cas de perte de blocs. Cet aspect sera brièvement décrit 10 ultérieurement. Les étapes illustrées à la figure 2 sont appliquées à chaque image 101 de la séquence d'images à coder par prédiction à partir d'une image de référence 100. Une étape d'obtention S202 permet tout d'abord de sélectionner 15 successivement chaque bloc à coder Bc de l'image courante 101. Comme illustré à la figure 1, selon un mode de réalisation particulier de l'invention, l'obtention des blocs à coder se fait ligne par ligne dans l'image à coder 101, en commençant par exemple par le coin supérieur gauche de l'image 101. 20 Bien entendu, l'invention n'est pas limitée à ce type de parcours et peut être adaptée à d'autres parcours de blocs à coder dans l'image courante 101. Une étape de test S203 permet de vérifier si les blocs voisins, au sens d'un voisinage prédéterminé, du bloc courant Bc ont été traités par le 25 procédé d'estimation d'un vecteur de mouvement. Un bloc fait partie du voisinage du bloc courant Bc de coordonnées (kc, lc) dans la grille de blocs de l'image courante 101, si ses coordonnées (k,,lä) sont telles que IkX kcI<d et III I,I<d avec d une valeur entière. Ici, on considère d égale à l'unité. Ainsi les blocs voisins sont les blocs situés à une distance d'un 30 bloc du bloc courant.
Dans l'exemple de réalisation illustré à la figure 1, le voisinage prédéterminé correspond aux blocs V1, V2, V3, V4, V5, V6, V7, V8 situés directement autour du bloc à coder Bc. L'étape de test S203 permet de vérifier si les blocs voisins du bloc courant Bc ont déjà été traités, afin d'utiliser les vecteurs de mouvement déterminés sur ces blocs voisins dans la suite du procédé d'estimation d'un vecteur de mouvement. Afin de mettre en oeuvre le procédé d'estimation de mouvement sur le bloc courant Bc, il est nécessaire d'avoir un nombre minimum de blocs voisins déjà traités. A titre d'exemple non limitatif, ce nombre minimum de blocs voisins peut ici être égal à 3. Ainsi, si à l'issue de l'étape de test S203, le nombre de blocs voisins déjà traités est inférieur à 3, un processus d'estimation de vecteur de mouvement classique est alors mis en oeuvre sur le bloc courant Bc. On notera en particulier en référence à la figure 1 que tel est le cas pour les blocs situés en bordure de l'image de référence 101, et par exemple les blocs V1, V2, V3 et V4,. De manière classique, l'étape d'estimation du vecteur de mouvement est mise en oeuvre à partir d'une étape de calcul de mesures de similarité S204. Un ensemble de mesures de similarité est alors réalisé entre le bloc courant Bc et les blocs Bxy d'une zone de recherche prédéfinie dans l'image de référence, de manière à déterminer un vecteur de mouvement pour le bloc courant Bc. La mesure de similarité employée dans un mode de réalisation particulier de l'invention peut être une mesure SAD, c'est-à-dire la somme des différences absolues calculées entre les pixels du bloc courant Bc et des blocs candidats Bxy. Afin de permettre l'utilisation ultérieure des valeurs de SAD ainsi calculées sur le bloc courant Bc, une étape de mémorisation S205 est adaptée à stocker dans une mémoire les valeurs SAD calculées à l'étape de calcul S204.
Une étape de détermination S206 d'un vecteur de mouvement est ensuite mise en oeuvre de manière classique pour attribuer un vecteur de mouvement au bloc courant Bc. Le vecteur de mouvement et le bloc de référence sont déterminés de telle sorte que la valeur SAD est minimale sur l'ensemble des valeurs calculées sur les blocs candidats de l'image de référence. Le procédé d'estimation d'un vecteur de mouvement sur l'image courante est alors réitéré pour un bloc suivant obtenu à l'étape d'obtention S202.
Si à l'issue de l'étape de test S203, un nombre minimum de blocs voisins du bloc courant Bc ont été traités, et ici au moins égal à 3, une étape d'obtention d'un nombre prédéterminé de paramètres représentatifs des valeurs de similarité SAD est mise en oeuvre. Ici, en pratique, une étape de construction S207 est adaptée à construire une carte de similarité à partir des valeurs SAD calculées et mémorisées sur les blocs voisins déjà traités. Cette étape de construction S207 est détaillée ci-dessous en référence à la figure 3 et suivantes. Une étape de détermination S208 d'un vecteur de mouvement pour le bloc courant Bc à partir de la carte de similarité construite et des vecteurs de mouvement des blocs voisins est ensuite mise en oeuvre et sera décrite en référence à la figure 6. On va décrire à présent pour chaque bloc voisin identifié au bloc courant Bc l'étape de construction d'une carte de similarité.
On notera que selon le critère de voisinage prédéterminé utilisé ici, le nombre de blocs voisins déjà traités pour le bloc courant Bc peut être compris entre 3 et 8 blocs. Dans le mode de réalisation particulier de parcours illustré à la figure 1, le bloc à coder G est associé à quatre blocs voisins déjà traités V1, V2, V3 et 30 V4. Comme illustré à la figure 3, pour chaque bloc voisin Bv obtenu successivement à une étape d'obtention S300, une étape d'acquisition S302 est adaptée à acquérir l'ensemble des valeurs SAD déterminées lors du calcul du vecteur de mouvement sur ce bloc voisin. Pour rappel, ces valeurs SAD ont été de préférence mémorisées à l'étape de mémorisation S205 lors de l'estimation du vecteur de mouvement sur ce bloc voisin.
On notera que l'invention exploite ainsi les différentes valeurs de mesure de similarité calculées par le codeur lorsque ce dernier calcule les vecteurs de mouvement pour chaque bloc de pixels à coder. Dans un codage classique, ces valeurs de similarité calculées servent uniquement à trouver un extremum (par exemple cet extremum est un minimum lorsque la mesure de similarité est la SAD), cet extremum correspondant au vecteur de mouvement à retenir dans un codage classique, pour le bloc considéré. Les valeurs de similarité Sxy définissent un échantillonnage partiel d'une surface 306 (voir figure 4) à deux dimensions nommée carte de similarité (en anglais "Similarity map"). Ainsi, dans la représentation de la figure 4, l'axe vertical z correspond à la valeur de similarité Sxy correspondant au bloc situé aux coordonnées (x, y). La forme de carte de similarité est complexe et dépend de la nature du bloc voisin Bv considéré.
Au point (xs, ys), la carte de similarité est minimale ou maximale en fonction du type inverse ou direct de la mesure de similarité utilisée. A l'étape d'obtention S302 des valeurs Sxy, seules les valeurs Sxy de la carte de similarité autour de l'extremum (xs, ys), sont retenues. On choisit alors un critère de proximité. Par exemple, on retient uniquement les valeurs Sxy tel que Ix-xsl inférieure à m et Iy-ysI inférieure à m où m est une distance définissant une fenêtre de sélection. Le paramètre m est typiquement égal à 1. Le nombre ns de points Sxy sélectionnés par le critère de proximité dépend du nombre de calculs intermédiaires effectués par le codeur lors du traitement du bloc voisin Bv. L'étape suivante de modélisation S304 d'une carte de similarité consiste à modéliser les valeurs de Sxy calculées autour de l'extremum (xs, ys).
Cette étape de modélisation S304 consiste à modéliser la carte de similarité de façon à obtenir un modèle Sxy défini par un nombre prédéterminé de paramètres. Afin de déduire les paramètres du modèle Sxy, il est nécessaire 5 d'avoir un nombre minimum de mesures de similarité Sxy. Par exemple, un modèle parabolique à deux dimensions est défini par six paramètres. Si le nombre ns est inférieur à 6, il est nécessaire alors de calculer d'autres valeurs de similarité Sxy non calculées par le codeur et proches de 10 l'extremum (xs, ys) selon le critère de proximité retenu. Ces calculs supplémentaires sont rapides, car l'implémentation de la mesure de similarité dans le codeur est optimisée. Il est à noter que la plupart des codeurs fournissent typiquement ns = 9 valeurs, pour les vecteurs de mouvement de coordonnées entières ; d'autres 15 mesures sont effectuées à des résolutions sub-pixels. Aussi, est il fréquent que les valeurs de similarité selon le critère de proximité soient suffisantes et, dans l'exemple ci-dessus, supérieures à 6. On va décrire à présent en référence à la figure 5 plus précisément l'étape de modélisation d'un modèle Sxy à partir des valeurs de la surface Sxy 20 de la carte de similarité illustrée à la figure 4. Afin de simplifier l'écriture des indices, on considère le changement de repère suivant : i = x - xe et j = y - ye, xe et ye étant les valeurs entières des coordonnées xs et ys. Il s'agit d'une translation par le vecteur (xeiye). La mesure de similarité Sxy devient donc Sij, l'extremum en coordonnées entières (xe,ye) 25 devient (0,0) et l'extremum en coordonnées non entières (xs,ys) devient (is,js). Pour cet exemple particulier de réalisation, on définit les paramètres et conditions suivants : • La mesure de similarité utilisée par le codeur est la SAD (ou encore la MAD). 30 • Le modèle Sij est une fonction parabolique à deux dimensions qui est décrite par 6 paramètres A, B, C, D, E, F, de la forme : =A.i2+B.j2+C.i.j+D.i+E.j+F (1) • On ne retient que les similarités Sij pour des valeurs entières de i et j. • La fenêtre de sélection contient les 9 valeurs Sij où i et j prennent indépendamment les valeurs (-1 ; 0 ; 1). Si le codeur ne fournit pas toutes ces valeurs, il convient de les calculer. Les 6 paramètres du modèle parabolique Sij décrit par l'équation (1) se calculent à l'aide des 9 valeurs Sij par la méthode classique des moindres carrés. Le modèle parabolique est en fait une surface paraboloïde elliptique, comme illustré sur la figure 5. Le plan P coupe la surface paraboloïde elliptique en une ellipse, qui est caractérisée par un demi-grand axe a, un demi-petit axe b et une orientation O. Les paramètres a, b et 0 de l'ellipse se déduisent du système d'équations suivant : 1 0 = ùArc tan( a n C 2 A ùB~ a =1/(AcosO+Bsin6ùCcos0sin0)2 (2) b = 1/(Asin6+ BcosO+ Ccos0sin0)2 où A, B et C sont les paramètres du modèle parabolique Sij décrit par l'équation (1) ci-dessus. Le système d'équations (2) illustre les propriétés bien connues des paraboloïdes elliptiques et permet le calcul de l'orientation 0, du demi-grand axe a et du demi-petit axe b.
Ces paramètres permettent de caractériser la nature de chaque bloc voisin Bv du bloc courant Bc. On observe en effet que : • L'ellipse est orientée selon le contour principal des pixels du bloc voisin Bv ; • L'ellipse est très petite (a et b petits) si les pixels du bloc voisin Bv sont très texturés (beaucoup de hautes fréquences) ; • L'ellipse est très large (a et b grands) si les pixels du bloc voisin Bv sont très homogènes (pas de hautes fréquences) ; et • L'ellipse est très aplatie (ou très orientée) (a b) si un contour contrasté apparaît sur le bloc voisin Bv. Ainsi, la courbe de la figure 5 représente la surface modélisée selon le procédé décrit précédemment. Les quatre paramètres a, b, e et Smin = Sxe,ye permettent de caractériser le bloc voisin Bv considéré. On va décrire à présent l'étape de détermination S208 d'un vecteur de mouvement, telle que détaillée à la figure 6. Cette étape de détermination S208 comporte tout d'abord une étape de caractérisation S500 de la nature des blocs voisins. Dans son principe, cette étape de caractérisation S500 est réalisée à partir de l'analyse des valeurs des paramètres a, b, e et Smin définissant les cartes de similarité modélisées pour chaque bloc voisin Bv. Une comparaison est mise en oeuvre pour comparer les cartes de similarité modélisées pour chaque bloc voisin Bv.
On utilise dans la suite les références suivantes : chaque carte de similarité du ième bloc voisin Bv,i est modélisée par quatre paramètres : le demi-grand axe a;, le demi-petit axe b;, l'orientation 6; et la valeur d'extremum (ici minimum du fait de l'utilisation des valeurs SAD) Smin;. Dans son principe, cette étape de caractérisation S500 permet à partir de l'analyse des valeurs des paramètres a;, b;, 6; et Smin,; de caractériser la nature d'un bloc voisin Bv parmi un bloc de pixels homogènes, un bloc de pixels texturés ou un bloc contenant un contour contrasté. On compare ainsi les demi-grands axes a; et les demi-petits axes b; à une première valeur seuil Ta et les valeurs de l'extremum Smin,; à une seconde valeur seuil Ts. Les blocs voisins Bv,i sont considérés comme homogènes lorsque, pour tous les blocs voisins Bv,i, les demi-grands axes a; et les demi-petits axes b; sont supérieurs à la première valeur seuil Ta et les valeurs d'extremum Smin; sont inférieures à la seconde valeur seuil Ts V, ai>Ta, bi > Ta, Smin; < Ts Si ces trois inégalités sont vérifiées, à l'issue de l'étape de test S502, on en déduit que les blocs voisins Bv,i sont homogènes. On en déduit alors que le voisinage du bloc courant Bc est de type homogène.
Lorsque le voisinage du bloc courant Bc est de type homogène, la probabilité pour que le bloc courant Bc soit lui-même homogène est forte. Dans ce cas, un vecteur de mouvement similaire au vecteur de mouvement des blocs voisins Bv,i ou un des vecteurs de mouvement de ces blocs voisins Bv,i est un bon choix.
Ainsi, à l'étape de détermination S208 d'un vecteur de mouvement associé au bloc courant Bc, le choix arbitraire d'un des vecteurs de mouvement associés aux blocs voisins Bv,i, dans le cas où ces derniers sont homogènes, est une bonne approximation du vecteur de mouvement. Dans un mode de réalisation préféré de l'invention, la détermination du vecteur de mouvement, dans le cas où les blocs voisins Bv,i sont homogènes, est déterminé à partir d'un vecteur médian des vecteurs de mouvement associés aux blocs voisins. Une étape de calcul S504 est alors mise en oeuvre pour calculer le vecteur de mouvement médian MVo ()c0, yo) de l'ensemble des vecteurs de mouvement des blocs voisins Bv,i. L'avantage du choix d'un vecteur médian est de maintenir une certaine cohérence dans le champ des vecteurs de mouvement de l'image. En effet, lorsque les pixels de la zone de référence sont homogènes, les blocs de référence sont très similaires et le choix d'un des blocs par rapport à un autre n'a que peu d'impact sur le coût du codage du bloc et l'optimisation du vecteur de mouvement. Les étapes suivantes S506 à S510 sont adaptées à garantir que le bloc courant Bc est aussi dans une zone homogène et donc que le vecteur médian MVo est un vecteur de mouvement permettant une bonne compensation de mouvement. Afin de confirmer cette hypothèse, une étape de calcul S506 d'une valeur de similarité So = s (Bc, Bt) est mise en oeuvre entre le bloc courant Bc et le bloc translaté Bt de l'image de référence, le bloc translaté Bt étant situé aux coordonnées du bloc courant Bc translatées par le vecteur de mouvement estimé MVo. Une étape de comparaison S508 est adaptée à comparer la valeur de similarité calculée So aux valeurs d'extrémum Smin,; associées aux blocs voisins Bv,i. En pratique, à l'étape de comparaison S508, on vérifie l'inégalité ISo ù Smin,;I < s, avec c égale à une valeur faible. On peut choisir à titre d'exemple non limitatif une valeur des égale à 30.
Ainsi, lorsque l'inégalité ci-dessus est vérifiée pour tous les blocs voisins Bv,i, le bloc courant Bc et les blocs voisins Bv,i sont similaires. De manière alternative, il est possible de ne vérifier l'inégalité ci-dessus que pour un seul des blocs voisins Bv,i, ce qui présente l'avantage de réduire le nombre de calculs.
L'étape d'attribution S510 est alors mise en oeuvre pour attribuer au bloc courant Bc le vecteur de mouvement estimé à l'étape de calcul d'un vecteur médian S504. En pratique, ce vecteur de mouvement est stocké pour être codé ultérieurement selon le format de codage.
Le vecteur de mouvement du bloc courant Bc est alors égal au vecteur médian MV0 et, afin de limiter le nombre de calculs, les paramètres a, b et 8 de la carte de similarité du bloc courant Bc sont définis comme égaux aux valeurs médianes des paramètres des blocs voisins a;, b; et 8;. Ces valeurs médianes sont alors mémorisées pour être réutilisées ultérieurement pour le codage d'un autre bloc de l'image à coder. Si à l'issue de l'étape de comparaison S508, la valeur de similarité So n'est pas comparable aux valeurs d'extremum Smin,; des blocs voisins Bv,i, le bloc courant Bc est alors de nature différente des blocs voisins Bv,i et le vecteur de mouvement médian MVo n'est pas une solution adéquate.
Dans ce cas, une étape d'estimation d'un vecteur de mouvement classique S512 est mise en oeuvre comme décrit précédemment en référence aux étapes S204 à S206 de la figure 2.
Par ailleurs, si à l'issue de l'étape de test S502, pour au moins un bloc voisin Bv,i de l'ensemble des blocs voisins, les valeurs du demi-grand axe a; ou du demi-petit axe b; sont inférieures à la première valeur seuil Ta, on en déduit que les blocs voisins Bvi ne sont pas homogènes.
Dans ce cas, le calcul du vecteur de mouvement du bloc courant Bc est réalisé lors d'une étape de calcul S514. Cette étape de calcul S514 consiste à déterminer le vecteur de mouvement du bloc courant Bc à partir des vecteurs de mouvement des blocs voisins Bv,i en privilégiant les valeurs des vecteurs de mouvement correspondant à des cartes de similarité de forme resserrée ou allongée. Le calcul du vecteur de mouvement associé au bloc courant Bc correspond alors à une moyenne pondérée des vecteurs de mouvement associés aux blocs voisins Bv,i, le coefficient de pondération affecté à chaque vecteur de mouvement associé à un bloc voisin Bv,i étant dépendant de la valeur des paramètres a;, b; définissant la carte de similarité modélisée associée à ce bloc voisin Bv,i. A titre d'exemple non limitatif, le calcul du vecteur de mouvement V, du bloc courant Bc est réalisé selon l'équation suivante : EZ(1/(al +bz)*V) Ei (1 /(agi + bi)) où le vecteur V correspond au vecteur de mouvement du bloc voisin Bv,i. Ainsi, le facteur de pondération associé à un bloc voisin Bv,i est égal à l'inverse de la somme des valeurs du demi-grand axe a; et du demi-petit axe b; associée à la carte de similarité de ce bloc voisin Bv,i.
Ce cas particulier correspond à la présence de pixels texturés sur un ou plusieurs des blocs voisins Bv,i du bloc courant Bc. L'utilisation d'une moyenne pondérée permet de privilégier des vecteurs de mouvement associés aux blocs voisins ayant des pixels texturés. Le choix de la fonction de calcul utilisée pour déterminer le vecteur de mouvement associé au bloc courant Bc peut encore être perfectionné lorsque la carte de similarité modélisée est allongée dans une direction unique, c'est-à-dire lorsque l'ellipse telle qu'illustrée à la figure 5 possède par exemple un demi-grand axe a important et un demi-petit axe b inférieur à la première valeur seuil Ta. Dans ce cas, le bloc voisin considéré contient un contour orienté suivant le demi-grand axe a de l'ellipse. Dans un tel cas, la composante du vecteur de mouvement normale à ce demi-grand axe a est plus significative pour le mouvement que la composante colinéaire à ce demi-grand axe a et le calcul du vecteur de mouvement du bloc courant Bc peut être réalisé par une moyenne pondérée des composantes normales des vecteurs de mouvement associés aux blocs voisins. La formule de calcul du vecteur de mouvement V, décrite précédemment peut ainsi être adaptée en conséquence en ne retenant que les composantes normales des vecteurs de mouvements associés aux blocs voisins, pondérées d'un facteur de pondération égal à l'inverse de la valeur du demi-grand axe a. Ainsi, grâce à la caractérisation de la nature des pixels des blocs voisins Bv,i, le vecteur de mouvement d'un bloc courant Bc est calculé suivant des fonctions différentes à partir des vecteurs de mouvement des blocs voisins et de la modélisation de la carte de similarité associée à ces blocs voisins. Dans le cadre du procédé de codage décrit précédemment, grâce à l'étape de mémorisation des valeurs de similarité calculées lors de l'estimation du vecteur de mouvement de chaque bloc de l'image courante, il est possible d'utiliser les calculs déjà effectués pour réaliser la carte de similarité.
L'invention permet ainsi de diminuer le temps de calcul du procédé d'estimation d'un vecteur de mouvement tout en conservant une précision élevée dans la détermination de ce vecteur de mouvement. Cette caractéristique permet également d'accélérer le procédé d'estimation d'un vecteur de mouvement mis en oeuvre dans un procédé de 30 codage d'une séquence d'image. La figure 7 montre un mode particulier de réalisation d'un dispositif de traitement d'informations apte à fonctionner comme dispositif d'estimation de mouvement, et notamment un dispositif de codage d'une séquence vidéo conforme à la présente invention. Le dispositif illustré à la figure 7 peut comporter tout ou partie des moyens de mise en oeuvre de chacune des étapes du procédé d'estimation de mouvement décrit précédemment, ou encore du procédé de codage d'une séquence vidéo. Dans ce mode de réalisation, ce dispositif peut être par exemple un micro-ordinateur ou une station de travail 700 connecté(e) à différents périphériques, par exemple une caméra numérique 701 (ou un scanner ou tout autre moyen d'acquisition de stockage d'images) reliée à une carte graphique (non représentée) et fournissant ainsi des informations à traiter selon l'invention. Le micro-ordinateur 700 comporte de préférence une interface de communication 702 reliée à un réseau 703 apte à transmettre des informations 15 numériques. Le micro-ordinateur 700 comporte également un moyen de stockage permanent 704 avec un disque dur, ainsi qu'un lecteur de moyens de stockage temporaire tel qu'un lecteur de disquette 705 pour coopérer avec une disquette 706. La disquette 706 et le disque dur 704 peuvent contenir des données 20 d'implantation logicielle de l'invention ainsi que le code du ou des programme(s) d'ordinateur dont l'exécution par le micro-ordinateur 700 met en oeuvre la présente invention. Ce code est donc par exemple mémorisé sur le disque dur 704 une fois qu'il a été lu par le micro-ordinateur 700. En variante, le ou les programme(s) permettant au dispositif 700 de 25 mettre en oeuvre l'invention sont stockés dans une mémoire morte (par exemple du type ROM) 707. Selon une autre variante, ce ou ces programme(s) sont reçus totalement ou partiellement à travers le réseau de communication 703 pour être stockés comme indiqué. 30 Le micro-ordinateur 700 comprend également un écran 709 pour visualiser les informations à traiter et/ou servir d'interface avec l'utilisateur, afin que l'utilisateur puisse par exemple paramétrer certains modes de traitement à l'aide du clavier 710 ou de tout autre moyen approprié de pointage et/ou de saisie tel qu'une souris, un crayon optique, etc. Une unité de calcul ou unité centrale de traitement (CPU) 711 exécute les instructions relatives à la mise en oeuvre de l'invention, ces instructions étant stockées dans la mémoire morte ROM 707 ou dans les autres éléments de stockage décrits. En particulier, l'unité centrale de traitement 711 est adaptée à mettre en oeuvre l'algorithme illustré sur l'organigramme de la figure 2. Lors de la mise sous tension du dispositif 700, les programmes et méthodes de traitement stockés dans une des mémoires non volatiles, par exemple la ROM 707, sont transférés dans une mémoire vive (par exemple du type RAM) 712, qui contient alors le code exécutable de l'invention ainsi que les variables nécessaires à la mise en oeuvre de l'invention. En variante, le procédé conforme à l'invention peut être stocké dans différents emplacements de stockage. De façon générale, un moyen de stockage d'information lisible par un ordinateur ou par un microprocesseur, intégré ou non au dispositif, éventuellement amovible, peut mémoriser un ou plusieurs programme(s) dont l'exécution met en oeuvre chacune des étapes du procédé décrit précédemment.
On peut faire évoluer le mode particulier de réalisation choisi pour l'invention, par exemple en ajoutant des méthodes de traitement actualisées ou améliorées ; dans un tel cas, ces nouvelles méthodes peuvent être transmises au dispositif 700 par le réseau de communication 703, ou chargées dans le dispositif 700 par l'intermédiaire d'une ou de plusieurs disquettes 706. Bien entendu, les disquettes 706 peuvent être remplacées par tout support d'information jugé approprié (CD-ROM, carte mémoire, etc.). Un bus de communication 713 permet la communication entre les différents éléments du micro-ordinateur 700 et les éléments reliés à celui-ci. On notera que la représentation du bus 713 n'est pas limitative. En effet, l'unité centrale CPU 711 est, par exemple, susceptible de communiquer des instructions à tout élément du micro-ordinateur 700, directement ou par l'intermédiaire d'un autre élément du micro-ordinateur 700.
En particulier, ce dispositif 700 est adapté à mémoriser les valeurs de similarité calculées au fur et à mesure du codage des blocs d'une image à coder. Par ailleurs, la présente invention n'est pas limitée à la mise en 5 oeuvre d'un procédé d'estimation de mouvement dans le cadre du codage d'une séquence d'images. Ce procédé d'estimation d'un vecteur de mouvement peut également être mis en oeuvre dans la cadre du décodage d'une séquence vidéo, notamment après son transfert sur un réseau de communication en cas de 10 perte de données. Ainsi, lorsqu'un bloc courant à décoder est perdu au niveau de la transmission de la séquence vidéo, il est possible, à partir des vecteurs de mouvement décodés pour les blocs voisins et en reconstruisant les cartes de similarité modélisées pour chacun de ces blocs voisins, de déterminer le 15 vecteur de mouvement associé au bloc courant corriger. Dans ce cas, il est nécessaire de recalculer les valeurs de similarité pour l'ensemble des blocs voisins déjà décodés du bloc courant. Les pixels du bloc de référence défini par le vecteur de mouvement ainsi déterminé remplacent les pixels du bloc courant à corriger.
20 On notera que le bloc courant à corriger n'étant pas décodable, les étapes de validation S504 à S508 et S512 ne peuvent être appliquées sur des pixels valides. Par conséquent, lorsque les blocs voisins sont homogènes, le vecteur médian MVo des vecteurs de mouvement des blocs voisins est directement attribué au bloc courant à corriger, en omettant les étapes de 25 validation S504 à S508 et S512 précédemment décrites. Ainsi, ce procédé d'estimation de mouvement permet de traiter l'erreur au décodage lors de la perte d'un bloc au moment de la transmission de la séquence vidéo, sous réserve d'un temps de calcul légèrement augmenté.

Claims (15)

  1. REVENDICATIONS1. Procédé d'estimation d'un vecteur de mouvement associé à un bloc courant (Bc) d'une image courante (101) dans une séquence d'images, ledit vecteur de mouvement faisant correspondre ledit bloc courant (Bc) auquel il est associé à un bloc de référence d'une image de référence (100) de ladite séquence d'images, caractérisé en ce qu'il comprend, pour un ensemble de blocs voisins (Bv,i) dudit bloc courant (Bc) dans ladite image courante (101), au sens d'un voisinage prédéterminé : - une étape d'obtention (S207, S304), pour chaque bloc voisin (Bv,i), d'un nombre prédéterminé de paramètres représentatifs de valeurs de similarité calculées entre ledit bloc voisin (Bv,i) et une pluralité de blocs de référence d'une zone de référence de ladite image de référence (100) ; - une étape de caractérisation (S500) de la nature desdits blocs voisins (Bv,i) à partir de l'analyse des valeurs desdits paramètres obtenus ; et - une étape de détermination (S208) d'un vecteur de mouvement associé audit bloc courant (Bc) à partir d'une fonction appliquée aux vecteurs de mouvement associés respectivement auxdits blocs voisins (Bv,i), ladite fonction étant dépendante de la nature desdits blocs voisins (Bv,i).
  2. 2. Procédé d'estimation conforme à la revendication 1, caractérisé en ce que à ladite étape de caractérisation (S500), l'analyse des valeurs des paramètres est adaptée à caractériser la nature d'un bloc voisin parmi un bloc de pixels homogènes, un bloc de pixels texturés ou un bloc contenant un contour contrasté.
  3. 3. Procédé d'estimation d'un vecteur de mouvement conforme à l'une des revendications 1 ou 2, caractérisé en ce qu'à l'étape de détermination (S208), ladite fonction appliquée aux vecteurs de mouvement est choisie parmi un ensemble de fonctions comprenant au moins le choix arbitraire d'un des vecteurs de mouvement associés auxdits blocs voisins, la détermination d'un vecteur médian desdits vecteurs de mouvement associés auxdits blocs voisins et le calcul d'une moyenne pondérée desdits vecteurs de mouvement associés auxdits blocs voisins, le coefficient de pondération affecté à chaque vecteur de mouvement associé à un bloc voisin étant dépendant de la valeur des paramètres définissant la carte de similarité modélisée associée audit bloc voisin.
  4. 4. Procédé d'estimation d'un vecteur de mouvement conforme à l'une des revendications 1 à 3, caractérisé en ce que ladite étape d'obtention d'un nombre prédéterminé de paramètres comporte les sous-étapes suivantes : - construction (S207) d'une carte de similarité à partir des valeurs de similarité calculées entre ledit bloc voisin (Bv,i) de l'image courante (101) et une pluralité de blocs de référence d'une zone de référence de ladite image de référence (100) ; et - modélisation (S304) de ladite carte de similarité de façon à obtenir un modèle défini par un nombre prédéterminé de paramètres.
  5. 5. Procédé d'estimation d'un vecteur de mouvement conforme à la revendication 4, caractérisé en ce qu'à l'étape de modélisation (S304), la carte de similarité est modélisée sous la forme d'une surface du type d'un paraboloïde elliptique défini par un demi-grand axe (a), un demi-petit axe (b), une orientation (0) et un extrémum (Smin) des valeurs de similarité.
  6. 6. Procédé d'estimation d'un vecteur de mouvement conforme à la revendication 5, caractérisé en ce qu'à l'étape de caractérisation (S500), pour chaque carte de similarité modélisée, les valeurs du demi-grand axe (a) et du demi-petit axe (b) sont comparées à une première valeur seuil (Ta) et la valeur de l'extrémum (Smin) est comparée à une seconde valeur seuil (Ts).
  7. 7. Procédé d'estimation d'un vecteur de mouvement conforme à la revendication 6, caractérisé en ce que lorsque, pour chaque carte de similarité modélisée, les valeurs du demi-grand axe (a;) et du demi-petit (b;) axe sont supérieures à ladite première valeur seuil (Ta) et la valeur de l'extrémum (Smin,;) est inférieure à ladite seconde valeur seuil (Ts), à l'étape de détermination (S208) d'un vecteur de mouvement associé audit bloc courant, ledit vecteur de mouvement est égal au vecteur médian des vecteurs de mouvement associés auxdits blocs voisins (Bv,i) dudit bloc courant (Bc).
  8. 8. Procédé d'estimation d'un vecteur de mouvement conforme à la revendication 7, caractérisé en ce qu'il comprend en outre : - une étape de calcul (S506) d'une valeur de similarité (Sc)) entre ledit bloc courant (Bc) et un bloc translaté (Bt) de ladite image de référence, ledit bloc translaté (Bt) correspondant aux coordonnées spatiales dudit bloc courant (Bc) translatées dans ladite image de référence par le vecteur de mouvement déterminé ; - une étape de comparaison (S508) de ladite valeur de similarité calculée (Sc)) avec au moins une desdites valeurs d'extrémum (Smin,;) associées auxdits blocs voisins (Bv,i) ; et - une étape d'attribution (S510) audit bloc courant (Bc) dudit vecteur de mouvement déterminé lorsque la valeur absolue de la différence entre ladite valeur de similarité (Sc)) et ladite au moins une desdites valeurs d'extrémum (Smin,;) est inférieure à une valeur de seuil minimale (c).
  9. 9. Procédé d'estimation d'un vecteur de mouvement conforme à la revendication 6, caractérisé en ce que lorsque pour au moins un bloc voisin (Bv,i) dudit ensemble des blocs voisins, les valeurs du demi-grand axe (a;) ou du demi-petit axe (b;) sont inférieures à ladite première valeur seuil (Ta), à l'étape de détermination (S208) d'un vecteur de mouvement associé audit bloc courant (Bc), ledit vecteur de mouvement est égal à une moyenne pondérée des vecteurs de mouvement associés auxdits blocs voisins (Bv,i).
  10. 10. Procédé d'estimation d'un vecteur de mouvement conforme à la revendication 9, caractérisé en ce que le facteur de pondération associé à un bloc voisin (Bv,i) est égal à l'inverse de la somme des valeurs du demi-grand axe (a;) et du demi-petit axe (b;) associées à la carte de similarité dudit bloc voisin (Bv,i).
  11. 11. Procédé de codage d'une séquence d'images, caractérisé en ce qu'il comprend une étape d'estimation d'un vecteur de mouvement associé à un bloc courant (Bc) d'une image courante (101) de ladite séquence d'images, ladite étape d'estimation d'un vecteur de mouvement étant adaptée à mettre en oeuvre le procédé d'estimation d'un vecteur de mouvement conforme à l'une des revendications 1 à 10.
  12. 12. Procédé de codage conforme à la revendication 11, caractérisé en ce qu'il comprend en outre une étape de mémorisation (S205) des valeurs de similarité calculées entre un bloc de l'image courante (101) et une pluralité de blocs de référence d'une zone de référence d'une image de référence (100).
  13. 13. Dispositif d'estimation d'un vecteur de mouvement associé à un bloc courant (Bc) d'une image courante (101) dans une séquence d'images, ledit vecteur de mouvement faisant correspondre ledit bloc courant (Bc) auquel il est associé à un bloc de référence d'une image de référence (100) de ladite séquence d'images, caractérisé en ce qu'il comprend : - des moyens d'obtention (700), pour chaque bloc voisin d'un ensemble de blocs voisins (Bv,i) dudit bloc courant (Bc) dans ladite image courante (101), au sens d'un voisinage prédéterminé, d'un nombre prédéterminé de paramètres représentatifs de valeurs de similarité calculées entre ledit bloc voisin (Bv,i) et une pluralité de blocs de référence d'une zone de référence de ladite image de référence (100) ; - des moyens de caractérisation (700) de la nature desdits blocs voisins (Bv,i) à partir de l'analyse des valeurs desdits paramètres obtenus ; et - des moyens de détermination (700) d'un vecteur de mouvement associé audit bloc courant (Bc) à partir d'une fonction appliquée aux vecteurs de mouvement associés respectivement auxdits blocs voisins (Bv,i), ladite fonction étant dépendante de la nature desdits blocs voisins (Bv,i).
  14. 14. Moyen de stockage d'informations lisible par un ordinateur ou un microprocesseur conservant des instructions d'un programme informatique, caractérisé en ce qu'il est adapté à mettre en oeuvre un procédé d'estimation d'un vecteur de mouvement selon l'une quelconque des revendications 1 à 10 ou un procédé de codage selon l'une quelconque des revendications 11 ou 12.
  15. 15. Produit programme d'ordinateur pour être chargé dans un appareil programmable, caractérisé en ce qu'il comporte des séquences d'instructions pour mettre en oeuvre un procédé d'estimation d'un vecteur de mouvement selon l'une quelconque des revendications 1 à 10, ou un procédé de codage selon l'une quelconque des revendications 11 ou 12, lorsque ce programme est chargé et exécuté par l'appareil programmable.
FR0955068A 2009-07-21 2009-07-21 Procede et dispositif d'estimation d'un vecteur de mouvement Expired - Fee Related FR2948522B1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR0955068A FR2948522B1 (fr) 2009-07-21 2009-07-21 Procede et dispositif d'estimation d'un vecteur de mouvement

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR0955068A FR2948522B1 (fr) 2009-07-21 2009-07-21 Procede et dispositif d'estimation d'un vecteur de mouvement

Publications (2)

Publication Number Publication Date
FR2948522A1 true FR2948522A1 (fr) 2011-01-28
FR2948522B1 FR2948522B1 (fr) 2011-07-29

Family

ID=41720603

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0955068A Expired - Fee Related FR2948522B1 (fr) 2009-07-21 2009-07-21 Procede et dispositif d'estimation d'un vecteur de mouvement

Country Status (1)

Country Link
FR (1) FR2948522B1 (fr)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109495738A (zh) * 2017-09-12 2019-03-19 华为技术有限公司 一种运动信息的编解码方法和装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002071758A2 (fr) * 2001-03-07 2002-09-12 Pts Corporation Contraintes locales pour l'adaptation cinematique

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002071758A2 (fr) * 2001-03-07 2002-09-12 Pts Corporation Contraintes locales pour l'adaptation cinematique

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
DANE G ET AL: "Smooth motion vector resampling for standard compatible video post-processing", SIGNALS, SYSTEMS AND COMPUTERS, 2004. CONFERENCE RECORD OF THE THIRTY- EIGHTH ASILOMAR CONFERENCE ON PACIFIC GROVE, CA, USA NOV. 7-10, 2004, PISCATAWAY, NJ, USA,IEEE, vol. 2, 7 November 2004 (2004-11-07), pages 1731 - 1735, XP010781187, ISBN: 978-0-7803-8622-8 *
JIANDONG SHEN ET AL: "Benefits of adaptive motion accuracy in H.26L video coding", IMAGE PROCESSING, 2000. PROCEEDINGS. 2000 INTERNATIONAL CONFERENCE ON SEPTEMBER 10-13, 2000, IEEE, PISCATAWAY, NJ, USA, vol. 1, 10 September 2000 (2000-09-10), pages 1012 - 1015, XP010530789, ISBN: 978-0-7803-6297-0 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109495738A (zh) * 2017-09-12 2019-03-19 华为技术有限公司 一种运动信息的编解码方法和装置
CN109495738B (zh) * 2017-09-12 2023-02-07 华为技术有限公司 一种运动信息的编解码方法和装置

Also Published As

Publication number Publication date
FR2948522B1 (fr) 2011-07-29

Similar Documents

Publication Publication Date Title
US9558712B2 (en) Unified optimization method for end-to-end camera image processing for translating a sensor captured image to a display image
WO2020188403A1 (fr) Remplissage de géométrie d&#39;un nuage de points
US9454806B2 (en) Efficient approximate-nearest-neighbor (ANN) search for high-quality collaborative filtering
EP3225029B1 (fr) Procede d&#39;encodage d&#39;image et equipement pour la mise en oeuvre du procede
FR2894421A1 (fr) Procede et dispositif de decodage d&#39;un flux video code suivant un codage hierarchique
EP0406074A1 (fr) Procédé de segmentation du champ de mouvement d&#39;une image pour le codage d&#39;images vidéo
EP2347590B1 (fr) Prediction d&#39;une image par compensation en mouvement en avant
EP2392141A1 (fr) Procede et dispositif de codage d&#39;une image utilisant un masque de prediction, procede et dispositif de decodage, signal et programmes d&#39;ordinateur correspondants
EP2446630B1 (fr) Codage et décodage d&#39;une séquence d&#39;images vidéo par zones d&#39;image
FR3019338A1 (fr) Systeme et un procede de traitement de donnees
FR2963190A1 (fr) Procede et dispositif de codage d&#39;une sequence d&#39;images
EP0545475B1 (fr) Méthodes et dispositifs de synthèse de signaux de texture
FR2608864A1 (fr) Procedes de codage et de transmission d&#39;un signal numerique, par rafraichissement temporel selectif d&#39;un quantificateur vectoriel
FR2948522A1 (fr) Procede et dispositif d&#39;estimation d&#39;un vecteur de mouvement
FR2933520A1 (fr) Procede et dispositif de restauration d&#39;une sequence video
FR2945698A1 (fr) Procede et dispositif de codage d&#39;une sequence video
EP1596607B1 (fr) Procédé et dispositif de génération de vecteurs candidats pour les systèmes d&#39;interpolation d&#39;images par estimation et compensation de mouvement
EP3646597B1 (fr) Procédé de décodage d&#39;une image, procédé de codage, dispositifs, équipement terminal et programmes d&#39;ordinateurs associés
FR2934453A1 (fr) Procede et dispositif de masquage d&#39;erreurs
EP3491825B1 (fr) Procédé de décodage d&#39;une image, procédé de codage, dispositifs, équipement terminal et programmes d&#39;ordinateurs associés
WO2015044581A1 (fr) Codage et décodage vidéo par héritage d&#39;un champ de vecteurs de mouvement
FR3092426A1 (fr) Procédé dynamique d’imagerie tridimensionnelle
WO2023050381A1 (fr) Codage d&#39;image et de vidéo au moyen d&#39;une collaboration à capteurs multiples
FR2888346A1 (fr) Procede et dispositif d&#39;obtention d&#39;une sequence d&#39;images stereoscopiques a partir d&#39;une sequence d&#39;images monoscopiques
EP2364552A1 (fr) Dispositif d&#39;encodage d&#39;un flux d&#39;images numeriques et dispositif de decodage correspondant avec approximation du voisinage d&#39;un bloc par le voisinage elargi du bloc

Legal Events

Date Code Title Description
ST Notification of lapse

Effective date: 20140331