Brevet FR2933520A1 — publié le 20100108

La présente invention se rapporte à un procédé et à un dispositif de restauration d'une séquence vidéo. Plus précisément, la présente invention concerne la restauration d'une séquence d'images sur la base de calculs de similarité entre images lors 5 d'un codage vidéo par blocs. Par restauration d'images, on entend une technique d'amélioration de la qualité des images. Parmi les diverses techniques connues d'amélioration d'images, on distingue notamment le débruitage, le ré-échantillonnage, le remplissage de 10 portions manquantes d'images (en anglais "image inpainting"), le rehaussement de détails, etc. La restauration d'images est un problème non trivial, car les images à traiter présentent de nombreuses caractéristiques très variées, telles que des bords francs ou contours (en anglais "edges"), des coins ou points saillants, des 15 textures, du bruit, etc. Chacune de ces caractéristiques a des propriétés spatiales et fréquentielles très différentes. Une restauration de type débruitage fournit une image avec moins de bruit, tout en préservant les autres caractéristiques. Une restauration de type rehaussement de détails fournit une image avec des 20 détails plus marqués, tout en maintenant le niveau de bruit inchangé. Les différentes caractéristiques d'une image sont difficiles à discriminer et seuls des algorithmes complexes permettent une restauration de qualité. En pratique, une restauration est souvent imparfaite. Par exemple, le débruitage d'une image s'accompagne généralement d'un lissage partiel des 25 textures et/ou d'une légère diffusion des contours. Certaines méthodes de restauration utilisent des convolutions dites anisotropes : un noyau de convolution est calculé pour chaque pixel en fonction de ses pixels voisins. De telles approches permettent d'adapter la convolution localement pour tenir compte des caractéristiques de l'image traitée. Ces 30 algorithmes impliquent de nombreux calculs et le temps de traitement pour de petites images se mesure typiquement en secondes. La restauration d'une séquence vidéo en temps réel est particulièrement utile pour la transmission d'une vidéo codée à la volée avec une réception la plus instantanée possible. Il s'agit alors de restaurer chacune des images de la séquence au rythme du codage. Dans le cas d'une restauration de type débruitage, on cherche par exemple à mieux comprimer le signal vidéo pour une même qualité visuelle. La présente invention vise à permettre la restauration en temps réel des images d'une séquence vidéo, c'est-à-dire au moins aussi rapidement que la durée moyenne de codage d'une image de la séquence. Cela implique une accélération drastique des méthodes de restauration actuelles. La restauration d'images par filtrage local peut se décomposer en deux étapes : tout d'abord, pour chaque pixel, un noyau de convolution est calculé en fonction des caractéristiques locales du pixel ; puis le noyau de convolution est appliqué sur le pixel considéré et son voisinage. Ces étapes sont toutes deux complexes et impliquent de nombreux calculs. Néanmoins, on peut considérer que le temps de calcul de l'étape d'application du noyau de convolution peut être diminué de façon significative en utilisant des processeurs spécifiques, comme par exemple les processeurs dits multicceurs (en anglais "multi-core") ou encore les unités de traitement graphique (en anglais GPU, "Graphical Processor Unit"). En revanche, l'étape de calcul du noyau de convolution, difficilement portable sur des processeurs spécifiques de par sa complexité, reste très coûteuse en temps de calcul. La présente invention cherche principalement à accélérer le calcul du noyau de convolution local. On connaît différentes méthodes pour le calcul du noyau de convolution pour un pixel donné : les filtres anisotropes, les méthodes à base d'équations aux dérivées partielles (en anglais PDE, "Partial Differential Equation"), ou encore les moyennes non locales (en anglais "NL-means" ou "Non-Local means"). Pour certaines méthodes fondées sur les PDE, le noyau de convolution, défini pour un pixel, est égal à une fonction de Gauss à deux dimensions caractérisée par trois paramètres : le demi-grand axe, le demi-petit axe et l'orientation du demi-grand axe. Il est à noter que l'amplitude n'est pas un paramètre du modèle, car l'intégrale du noyau de convolution doit être égale à l'unité afin de préserver l'intensité moyenne des pixels de l'image à restaurer. Pour un pixel proche d'un contour contrasté, le noyau de convolution gaussien est très allongé et orienté dans le sens du contour. Pour un pixel d'une zone homogène, le noyau de convolution est large et isotrope (mêmes demi-grand et demi-petit axes). Pour un pixel d'une zone texturée, le noyau de convolution est choisi petit et isotrope. L'action de la convolution est de diffuser les pixels selon la fonction de Gauss de façon que les détails soient préservés et que le bruit soit lissé. Le lissage gaussien sera donc intense dans une zone homogène, faible dans une zone texturée afin de ne pas perdre les détails fins, et étalé le long de contours contrastés. Dans le cas des méthodes fondées sur les PDE, le calcul des trois paramètres caractérisant la fonction de Gauss se fait par le calcul des gradients locaux au pixel considéré. Les gradients permettent de calculer l'orientation et l'intensité, c'est-à-dire le contraste, des contours locaux. Le noyau de convolution est alors construit par échantillonnage de cette fonction de Gauss. L'article de A. BUADES et al. intitulé "A review of image denoising algorithms, with a new one", publié dans Multiscale Modeling & Simulation, vol. 4, n° 2, pages 490 à 530, 2005, décrit en particulier un algorithme des moyennes non locales pour la restauration de type débruitage. Cependant, la technique décrite dans ce document n'est pas compatible avec le codage en temps réel des séquences vidéo. La présente invention a pour but de remédier aux inconvénients de l'art antérieur. Dans ce but, la présente invention propose un procédé de restauration d'une séquence vidéo constituée d'une pluralité d'images comportant chacune au moins un bloc de pixels, remarquable en ce qu'il comporte des étapes suivant lesquelles : on calcule la valeur de la similarité, au sens d'une métrique de similarité, entre un bloc de pixels à restaurer de l'image courante et une pluralité de blocs d'une image de référence liée à l'image courante par un champ de vecteurs de mouvement ; on détermine le bloc de l'image de référence pour lequel la valeur de la similarité avec le bloc précité de l'image courante est un extremum ; on construit une carte de similarité autour de l'extremum, à partir des valeurs de la similarité des blocs de l'image de référence proches, au sens d'un critère de proximité, du bloc pour lequel la valeur de la similarité est un extremum ; on modélise la carte de similarité, de façon à obtenir un modèle 10 défini par un nombre prédéterminé de paramètres ; on construit un filtre local de restauration à partir des paramètres du modèle ; et on filtre les pixels du bloc à restaurer en leur appliquant le filtre local de restauration. 15 Ainsi, l'invention permet de restaurer les pixels des blocs à coder en utilisant les calculs intermédiaires de l'estimation de mouvement réalisée par le codeur. En effet, l'estimation de mouvement mesure des similarités entre le bloc de pixels à coder et des blocs de pixels de l'image de référence. 20 L'invention propose d'exploiter ces mesures de similarité afin d'en déduire un filtre spécifique à la restauration des pixels du bloc à coder, évitant ainsi les nombreux calculs qui seraient nécessaires pour caractériser les pixels du bloc à coder et appliquer un filtre qui dépendrait des caractéristiques calculées. Dans un mode particulier de réalisation, lors de l'étape de 25 modélisation, on modélise la carte de similarité sous la forme d'une surface. Une surface constitue en effet la modélisation la plus simple de la carte de similarité. Dans un mode particulier de réalisation, la métrique de similarité consiste à calculer la somme ou la moyenne des valeurs absolues des 30 différences entre les valeurs des pixels d'un bloc de l'image de référence et les valeurs des pixels correspondants du bloc à restaurer de l'image courante et l'extremum est un minimum. La somme ou la moyenne des valeurs absolues des différences est une quantité très rapide à calculer, notamment grâce aux processeurs incluant à cet effet des instructions machine dédiées. Dans un mode particulier de réalisation, dans lequel un bloc est défini par ses coordonnées (x,y) et le bloc pour lequel la valeur de la similarité est un extremum a pour coordonnées (xs,ys), le critère de proximité consiste à sélectionner les blocs dont les coordonnées vérifient x û xs La méthode des moindres carrés est rapide en termes de temps de calcul et permet de résoudre des systèmes surdéterminés, c'est-à-dire comportant plus d'équations que d'inconnues. Dans un mode particulier de réalisation, l'image de référence est l'image précédant l'image courante dans la séquence vidéo. En effet, dans un tel cas, les mouvements entre images sont minimum. Les extremums des cartes de similarité sont donc plus marqués et les filtres de restauration plus précis. Selon une caractéristique particulière, la pluralité précitée de blocs de l'image de référence est incluse dans une fenêtre de recherche de taille prédéterminée. Cela permet d'appliquer l'invention à un codeur vidéo qui calcule les vecteurs de mouvement d'une façon limitative et non exhaustive. Le filtre local peut être un noyau de convolution ou un filtre médian ou un filtre orienté. Ces trois types de filtres sont faciles à mettre en oeuvre et présentent un coût calculatoire relativement faible. Dans un mode particulier de réalisation, le modèle est une fonction parabolique à deux dimensions et le filtre local est un noyau de convolution à deux dimensions défini par une fonction de Gauss. Il y a en effet une adéquation de paramètres entre le modèle parabolique et la fonction de Gauss. Dans un autre mode particulier de réalisation, le modèle consiste en quatre fonctions paraboliques à une dimension. Cette variante est particulièrement avantageuse car le coût calculatoire des quatre paraboles à une dimension est négligeable. Selon une caractéristique particulière, les blocs de pixels sont des carrés de 16 pixels de côté. Cela permet d'appliquer l'invention à un codeur vidéo classique au sens du consortium MPEG. Dans le même but que celui indiqué plus haut, la présente invention propose également un dispositif de restauration d'une séquence vidéo constituée d'une pluralité d'images comportant chacune au moins un bloc de pixels, remarquable en ce qu'il comporte : un module pour calculer la valeur de la similarité, au sens d'une métrique de similarité, entre un bloc de pixels à restaurer de l'image courante et une pluralité de blocs d'une image de référence liée à l'image courante par un champ de vecteurs de mouvement ; un module pour déterminer le bloc de l'image de référence pour lequel la valeur de la similarité avec le bloc précité de l'image courante est un extremum ; un module pour construire une carte de similarité autour de l'extremum, à partir des valeurs de la similarité des blocs de l'image de référence proches, au sens d'un critère de proximité, du bloc pour lequel la valeur de la similarité est un extremum ; un module pour modéliser la carte de similarité, adapté à obtenir un 30 modèle défini par un nombre prédéterminé de paramètres ; un module pour construire un filtre local de restauration à partir des paramètres du modèle ; et un module pour filtrer les pixels du bloc à restaurer, adapté à appliquer à ces pixels le filtre local de restauration. Toujours dans le 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, remarquable en ce qu'il permet la mise en oeuvre d'un procédé de restauration tel que succinctement décrit ci-dessus. Toujours dans le même but, la présente invention vise aussi un produit programme d'ordinateur pouvant être chargé dans un appareil programmable, remarquable en ce qu'il comporte des séquences d'instructions pour mettre en oeuvre un procédé de restauration tel que succinctement décrit ci-dessus, lorsque ce programme est chargé et exécuté par l'appareil programmable. Les caractéristiques particulières et les avantages du dispositif de restauration, du moyen de stockage d'informations et du produit programme d'ordinateur étant similaires à ceux du procédé de restauration, ils ne sont pas répétés ici. D'autres aspects et avantages de l'invention apparaîtront à la lecture de la description détaillée qui suit de modes particuliers de réalisation, donnés à titre d'exemples non limitatifs. La description se réfère aux dessins qui l'accompagnent, dans lesquels : - la figure 1 est un organigramme illustrant les principales étapes d'un procédé de restauration d'une séquence vidéo conforme à la présente invention, dans un mode particulier de réalisation ; - la figure 2 représente de façon schématique le calcul de l'estimation de mouvement d'un macrobloc à coder de l'image courante en fonction d'une image de référence ; - la figure 3 illustre un exemple particulier de carte de similarité calculée par un codeur d'images ; - la figure 4 illustre un exemple particulier de carte de similarité pour 9 pixels autour d'un extremum ; - les figures 5 et 6 illustrent un exemple particulier d'un modèle parabolique pour la carte de similarité ; - la figure 7 illustre une variante améliorée de la modélisation de la carte de similarité ; - la figure 8 illustre un détail du calcul de l'orientation dans la variante améliorée de la figure 7 ; et - la figure 9 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 considère une vidéo codée par blocs au sens défini par le consortium Moving Picture Experts Group (MPEG), comme par exemple dans les normes MPEG4 - Part 2 et H.264. Le codeur dispose de plusieurs modes pour coder une image d'une séquence vidéo, appelée image courante. Une image de la séquence est découpée en blocs carrés de pixels 15 dénommés macroblocs (en anglais "macroblock"). Un macrobloc sera désigné dans toute la suite par le sigle MB. En mode "P", l'image courante est associée à un champ de vecteurs de mouvement. Un vecteur de mouvement traduit pour chaque MB de l'image courante une translation relative pointant sur une image de référence. 20 Le MB à coder est alors soustrait du MB pointé de l'image de référence. Cette soustraction définit le résidu. Il est quasiment nul si le mouvement entre l'image de référence et l'image courante est nul ou correctement approché par une translation. Ce procédé, bien connu en soi, est appelé compensation de mouvement. 25 Pour un MB de type P, le codeur code le vecteur de mouvement, le numéro de l'image de référence et le résidu transformé par la transformée en cosinus discrète (en anglais DCT, "Discrete Cosine Transform"). En pratique, un MB est généralement un carré de 16 pixels de côté (avec des possibilités de sous-blocs notamment pour les formats MPEG4 et H.264) et l'image de 30 référence est souvent l'image précédant l'image courante. La compensation de mouvement permet donc d'obtenir une approximation de l'image courante à partir de la ou des image(s) de référence selon un champ de vecteurs traduisant la translation de chacun des MBs de l'image courante. Le calcul des vecteurs de mouvement est complexe et représente une part importante du temps du codage. Il s'agit de trouver, pour un MB de l'image courante, un MB de l'image de référence tel que le résidu, c'est-à-dire la soustraction des deux MBs, soit minimum. Ainsi, le vecteur de mouvement optimal correspond à la translation entre les deux MBs produisant un résidu minimum. En d'autres termes, les deux MBs doivent être les plus similaires au sens d'une métrique de similarité. Il est à noter que les vecteurs de mouvement peuvent être calculés avec une précision sub-pixel : la précision est de 1/2 pixel pour la norme MPEG4 - Part 2 et de 1/4 de pixel pour la norme H.264. Un vecteur de mouvement non entier correspond à un MB de référence interpolé d'une fraction de pixel, selon la norme utilisée, afin de rendre possibles les calculs de similarité avec le MB de l'image courante. L'intérêt de calculer les vecteurs de mouvement avec une précision sub-pixel est de diminuer l'amplitude des résidus. En pratique, la métrique de similarité utilisée est le plus souvent la somme des valeurs absolues des différences (en anglais SAD, "Sum of Absolute Difference") ou encore la moyenne des valeurs absolues des différences (en anglais MAD, "Mean Absolute Difference"). La MAD correspond à une SAD normalisée et présente les mêmes propriétés que la SAD. La SAD est nulle si les deux MBs sont identiques, très importante s'ils diffèrent énormément. La SAD est donc une métrique de similarité inverse. Afin d'accélérer le codage, les processeurs incluent désormais des instructions assembleur capables de calculer la SAD entre plusieurs pixels (typiquement 8 ou 16) en un temps minimum. Les instructions assembleur spécialisées permettent un codage en temps réel. Les plus courantes sont décrites par la norme "Streaming SIMD Instruction" (SSE) développée pour les unités de traitement (CPU) de la famille x86. La norme SSE s'est imposée aussi à d'autres familles de processeurs embarqués. Ainsi, l'invention propose de déterminer les trois paramètres caractérisant la fonction de Gauss présentée en introduction (qui va servir au filtrage de la séquence vidéo en vue de sa restauration) en utilisant des calculs de similarité effectués lors du codage de la séquence vidéo. Lors de la recherche d'un vecteur de mouvement optimal pour un MB de l'image courante, le codeur teste différents MBs candidats de l'image de référence. Les candidats sont généralement inclus dans une zone de recherche délimitée. Pour chaque candidat, qui est associé à un vecteur de mouvement, une valeur de SAD est calculée. Chacune de ces valeurs définit un point d'une surface dite d'erreur de SAD (en anglais "SAD error shape") traduisant la valeur de la SAD en fonction du vecteur de mouvement. Plus généralement, on parle de carte de similarité. Certains formats vidéo (H.264, SVC) permettent le libre choix d'une image de référence par rapport à un MB de l'image courante. Le codeur sélectionne la meilleure image de référence selon une stratégie propre. L'image de référence étant définie, la recherche par le codeur du vecteur de mouvement optimal s'applique comme décrit précédemment. La carte de similarité a une forme complexe. Le codeur cherche son minimum absolu. La recherche peut être exhaustive (tous les points de cette fonction sont calculés) ou itérative, avec recherche partielle indispensable pour un codage en temps réel. On peut appliquer une méthode de recherche multirésolution à trois étapes (en anglais "three-step search algorithm"), où la recherche se fait pour des translations divisibles par 8, puis autour du minimum trouvé, la recherche se poursuit à des translations divisibles par 4, et ainsi de suite jusqu'à une résolution de 1, 1/2 ou 1/4 de pixel. La forme locale de la carte de similarité ou "SAD error shape" autour du minimum détecté par le codeur donne une indication sur la nature des MBs. Par exemple, si les MBs comparés sont très texturés, alors la forme de la carte de similarité autour du minimum est très resserrée (les valeurs de la carte de similarité autour du minimum sont très supérieures à ce minimum) et à l'opposé, pour des MBs aux pixels quasiment constants, la forme de la carte de similarité autour du minimum est très évasée (les valeurs de la carte de similarité autour du minimum sont très légèrement supérieures à ce minimum). Conformément à la présente invention, on analyse la forme de la carte de similarité autour du minimum détecté par le codeur. L'analyse de cette forme conduit à déterminer les trois paramètres pour le calcul du noyau de convolution local de type gaussien utilisé pour la restauration de l'image courante. Par exemple, un MB texturé est très peu ou pas débruité afin de ne pas dégrader les détails de la texture. Dans ce cas, le filtrage utilisé est défini par un lissage gaussien étroit, c'est-à-dire s'approchant du Dirac. Un MB homogène est débruité plus fortement, car aucun détail de haute fréquence n'apparaît. Dans ce cas, le filtrage est défini par un lissage gaussien large. Pour des MBs présentant un contour, le filtrage est défini par un lissage gaussien orienté selon le contour. L'organigramme de la figure 1 illustre les principales étapes 12, 14, 16 et 18 du procédé de restauration conforme à la présente invention ainsi que l'étape 10 effectuée par le codeur. Ces étapes sont détaillées ci-après. L'étape 10 consiste en un calcul de similarité effectué par le codeur pour le calcul du vecteur de mouvement, comme suit. Pour un macrobloc Mc à coder de l'image courante Ic, le codeur teste différents macroblocs Mxy de l'image de référence Ir, afin de trouver le macrobloc Mxsys le plus similaire à Mc selon une métrique de similarité notée s. Le vecteur de mouvement Vxy = (x,y) correspond à la translation entre les coordonnées de Mc et Mxy. On rappelle que les MBs à coder sont alignés sur une grille selon la norme vidéo utilisée. En pratique, un MB est typiquement de la taille d'un carré de 16 pixels de côté et les MBs à coder sont alignés sur une grille de 16 pixels de côté. Certaines normes vidéo récentes permettent de coder des MBs en plusieurs sous-MBs de taille inférieure, comme par exemple 8x8, 4x4, 4x8, 8x4 pixels pour la norme H.264. Les macroblocs Mxy de l'image de référence Ir sont librement positionnés et sont de la même taille que le macrobloc à coder Mc. Le codeur recherche le macrobloc Mxy tel que la mesure de similarité Sxy = s(Mxy,Mc) entre Mxy et Mc soit minimale ou maximale par rapport à tous les Mxy candidats. L'estimateur s est dit direct ou inverse selon que l'auto-similarité s(Mc,Mc) est nulle ou maximale, respectivement. Par exemple, la SAD est un estimateur de similarité inverse, tandis que l'intercorrélation est un estimateur direct. L'ensemble de recherche est défini par le codeur. Une fenêtre de recherche est définie afin de préciser les coordonnées maximales et minimales des vecteurs de mouvement recherchés, par exemple (x,y)E R2 /x Pour calculer les similarités avec des translations non entières, il convient tout d'abord de translater les pixels de l'image de référence Ir selon une interpolation précisée par la norme utilisée. Le codeur procède généralement par des recherches itératives en commençant par des coordonnées entières telles que (x,y) E N2, où N désigne l'ensemble des entiers naturels. Lorsque le macrobloc Mxeye de translation entière (xe,ye) le plus similaire à Mc est trouvé, le codeur recherche à une résolution sub-pixel le macrobloc Mxsys de translation non entière (xs,ys) le plus similaire à Mc. On observe généralement que xe û xs Comme le montre l'organigramme de la figure 1, l'étape 12 consiste à obtenir les valeurs Sxy de la carte de similarité autour de l'extremum (xs,ys). Pour cela, on choisit un critère de proximité. Par exemple, on retient uniquement les valeurs Sxy telles que x û xs Il est à noter que la plupart des codeurs fournissent typiquement ns = 10 valeurs pour les vecteurs de mouvement de coordonnées entières ; d'autres mesures sont effectuées à des résolutions sub-pixel. Aussi est-il fréquent que les valeurs de similarité pour les coordonnées entières (xe+i,ye+j) soient naturellement calculées par le codeur, le couple (i,j) définissant les 4 ou 8 voisins les plus proches de (xe,ye), comme illustré sur la figure 4. L'étape suivante 16 consiste à construire un filtre local dédié à la restauration des pixels du macrobloc Mc. On extrait du modèle ,,, les paramètres de ce filtre local. En effet, le modèle ,,, est choisi tel que ses paramètres puissent être convertis en paramètres caractérisant le filtrage local. Le filtre local f est construit pour débruiter, restaurer les contrastes ou lisser les pixels de Mc. Le filtre f peut prendre différentes formes, comme par exemple un masque de convolution fait de coefficients, ou un filtre médian, ou un filtre orienté. Le filtre f est défini pour tous types d'actions de restauration, comme par exemple le débruitage, le rehaussement de contraste, etc. Le filtre f n'est pas contraint par l'invention. Il est caractérisé complètement ou partiellement par rapport au modèle ),y . Quelques exemples non limitatifs du filtre f sont donnés ci-dessous : - Une fonction de Gauss à deux dimensions définie par trois paramètres (orientation, grand et petit demi-axes). Ceux-ci sont caractérisés par le modèle S . La fonction de Gauss est alors échantillonnée sur un masque de convolution. Un tel filtre s'apparente aux noyaux de convolution des méthodes PDE : la fonction de Gauss est orientée en fonction du contour observé, l'aplatissement de la fonction de Gauss est fonction du contraste du contour observé. - La soustraction de deux fonctions de Gauss à deux dimensions, de même orientation, de grands demi-axes proportionnels, de petits demi-axes proportionnels, d'amplitudes différentes. Ce filtre est analogue à un filtre dit "masque flou" (en anglais "unsharp mask"), connu de l'homme du métier, orienté selon une direction privilégiée. La différence d'amplitude est analogue au paramètre de renforcement du masque flou. Les paramètres (orientation, grand et petit demi-axes) sont caractérisés par le modèle ),y . L'ensemble est échantillonné sur un masque de convolution. Ce filtre permet un rehaussement contrôlé du contraste. - Un noyau de convolution à une dimension orienté selon l'orientation privilégiée du modèle Sy . L'orientation privilégiée est égale à l'orientation du contour observé sur le MB à coder. Les pixels du masque de convolution à une dimension sont alors associés, soit à des coefficients de convolution égaux à 1 pour un lissage moyen, égaux à l'échantillonnage d'une fonction de Gauss pour un lissage orienté gaussien, soit à des méthodes non linéaires, comme le médian des pixels du masque. - Un noyau de convolution dans lequel les pixels utilisés pour le filtrage sont circonscrits par une ellipse caractérisée par le modèle Sy . L'orientation, l'élongation et l'excentricité de l'ellipse sont issues du modèle . Les pixels circonscrits par l'ellipse sont dits pixels supports. Ils sont utilisés pour le filtrage. Le pixel filtré est égal par exemple au médian des pixels supports, ou encore à la moyenne des pixels supports. Comme le montre la figure 1, l'étape 18 qui suit l'étape 16 d'extraction des paramètres du filtre f à partir du modèle consiste à filtrer les pixels du MB à coder Mc au moyen du filtre f. On applique donc le filtre f à ces pixels, sans effet de bords. Si le support du filtre f dépasse de Mc, alors les pixels voisins sont utilisés pour le calcul. Chaque MB est donc filtré par un filtre propre caractérisé par la carte de similarité. L'image courante ainsi filtrée peut alors être utilisée pour la suite du codage. Les vecteurs de mouvement calculés par le codeur à partir de l'image courante non filtrée sont inchangés. On décrit à présent plus en détail un exemple particulier de réalisation. Afin de simplifier l'écriture des indices, on considère le changement de repère suivant : i = x - xe et j = y - ye. Il s'agit d'une translation par le vecteur (xe,ye). La mesure de similarité Sxy devient donc Sij, l'extremum en coordonnées entières (xe,ye) 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 : • L'estimateur de similarité utilisé par le codeur est la SAD (ou encore la MAD). • Le modèle est une fonction parabolique à deux dimensions qui est décrite par 6 paramètres A, B, C, D, E, F, de la forme : S;. = A.i2 + B.j2 + C.i.j + D.i + E.j + F (1) • Le filtre f est un noyau de convolution à deux dimensions caractérisé par une fonction de Gauss. f est l'échantillonnage d'une fonction de Gauss G(0,61,62) définie par 3 paramètres : l'orientation 0, l'écart-type maximum 6, dans l'orientation 0 et l'écart-type minimum 62 dans l'orientation 0+n/2. • 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. La figure 4 illustre les 9 valeurs retenues autour de l'extremum de la SAD. Les 6 paramètres du modèle parabolique décrit par l'équation (1) se calculent à l'aide des 9 valeurs Sij par la méthode classique des moindres carrés. La figure 5 illustre les 9 valeurs de SAD pour des MBs représentant des 20 portions d'images de nature différente (allongées dans la zone 1, homogènes dans la zone 2, texturées dans la zone 3). Le modèle parabolique est en fait une surface paraboloïde elliptique, comme illustré sur la figure 6. 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 25 b, une orientation 0, qui est la même que l'orientation du filtre de lissage de type gaussien, comme expliqué plus loin. Les paramètres a, b et 0 doivent être calculés à partir des paramètres A, B, C, D, E, et F afin d'en déduire les paramètres 6,, 62 et 0 du filtre f. Les paramètres a, b et 0 de l'ellipse se déduisent du système d'équations suivant : 15 1 0 = ùArc tan( a n C 2 Aù13j a =1/(AcosO+BsinOùCcos0sin0)2 b =1/(Asin0+BcosO+Ccos0sin0)2 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. Afin de convertir les paramètres de l'ellipse en paramètres du filtre f, on observe les points suivants : • L'ellipse est orientée selon le contour principal des pixels du MB à coder Mc ; • L'ellipse est très petite (a et b petits) si les pixels de Mc sont très texturés ; • L'ellipse est très large (a et b grands) si les pixels de Mc sont très homogènes (pas de hautes fréquences) ; • L'ellipse est très orientée (a � b) si un contour contrasté apparaît sur Mc. La fonction de Gauss caractérisant le filtre f doit se comporter de la même façon que les paramètres de l'ellipse : les paramètres 6, et 62 doivent être proportionnels, selon une fonction monotone croissante, à respectivement a et b. On pose par exemple 6, = k.ln(a+1) et 62 = k.ln(b+1), où k est un paramètre d'échelle à définir par l'utilisateur. Cette formulation permet de ramener les variations de 6, et 62 dans un intervalle plus petit que celui des valeurs de a et b. Le filtre f ainsi caractérisé est ensuite utilisé pour l'étape de filtrage. Il est appliqué aux pixels du macrobloc Mc. Pour cela, un noyau de convolution de taille 3x3 ou 5x5 ou d'une taille supérieure librement choisie est calculé par échantillonnage de la fonction de Gauss caractérisant le filtre f. Chaque point m(i,j) du noyau de convolution de taille N.N est égal à l'échantillonnage de la fonction de Gauss au point (i - N/2,j - N/2). Le noyau de (2) convolution est normalisé de façon que l'intégrale soit égale à 1, afin de préserver les intensités moyennes des pixels filtrés. Le masque de convolution est appliqué à tous les pixels du macrobloc Mc. Comme décrit plus haut, la convolution s'applique sans effet de bords ; les pixels connexes à Mc sont utilisés lorsque le noyau de convolution déborde du macrobloc Mc. Afin de traiter les différents plans de luminance et chrominance (Y,U,V) de la séquence vidéo, on applique le filtre f sur le macrobloc Mc ainsi que sur les pixels correspondants des plans U et V. Il convient, bien évidemment, de tenir compte des résolutions des différents plans en fonction du format de codage (comme par exemple 4:2:0 ou 4:4:4). Afin d'accélérer encore les calculs, il est possible de simplifier l'exemple particulier décrit ci-dessus. La variante améliorée proposée consiste à modéliser les 9 valeurs Sij par 4 fonctions paraboliques à une dimension. Les paramètres des 4 fonctions paraboliques sont ensuite utilisés conjointement afin d'en déduire la forme de la carte de similarité qui est modélisée par 3 paramètres : orientation, concavité maximale et concavité minimale. En premier lieu, il s'agit de modéliser chaque triplet défini pour les orientations o = 0°, 45°, 90° et 135° par une fonction parabolique du type SADo(t) = Aot2 + Bot + Co, où t représente la distance parcourue sur la ligne d'orientation o centrée sur le milieu des 9 valeurs de SAD. SADo(t) représente la valeur de la SAD le long de cette ligne. On ne retient que les Ao qui représentent les concavités des 4 paraboles à une dimension précédemment définies. Le calcul des Ao est extrêmement simple connaissant SADo(t) pour t = -1, 0 et 1. On a Ao = (SAD0(-1) + SADo(1))12 + SADo(0). Les valeurs des concavités A0 , A45., A90. et A135. se calculent de la façon suivante en fonction des 9 valeurs c1 à c9 des SAD (ces valeurs sont représentées dans la partie supérieure de la figure 7) : Ao. = (c6 + c4)/2 - c5 A45. = (c3 + c7)/2 - c5 (3) A90. = (c2 + c8)/2 - c5 A135. = (ci + c9)/2 - c5 La partie inférieure de la figure 7 illustre un exemple des différentes concavités calculées pour un MB représentant un contour orienté à environ 45°. On remarque que la valeur de la concavité A45. est très faible par rapport aux concavités pour les autres orientations (ce qui correspond à une parabole à une dimension bien plus évasée que les trois autres paraboles à une dimension). L'orientation om, associée à la concavité minimale, n'est pas une mesure précise. Afin d'obtenir une orientation or précise à quelques degrés près, on procède à une interpolation. Soit Aom la concavité minimale d'orientation om et soit A0,,+45 la concavité en (om + 45°). L'orientation or de la carte de similarité se calcule comme illustré sur la figure 8 : 0 = Aom-45 ù AOm 1 (4) Aom 45 ù 2A0,, + A0,,+45 2 or = om + 450 A E [-1/2 ; 1/2] représente le "décentrement" de or par rapport à om : A = 0 si Aom_45 = Aom+45 ; A = -1/2 si Aom_45 = Aom . Il convient de préciser qu'on considère les valeurs de om de façon circulaire : si om = 0° alors om - 45° = -45° mod(180°) = 135°. La concavité minimale Amin et la concavité maximale Amax sont calculées selon le système d'équations suivant : A. =max(A0)Vo (5) Amin = AOm ù (Amax ù AOm ) ' A Amax est la valeur maximale des 4 concavités mesurées. Amin est adaptée en fonction du décentrement A. En cas de décentrement (A ≠ 0), la mesure de Aom est supérieure à la concavité Amin qui est le minimum absolu recherché. La formulation proposée permet de tenir compte de la variation de concavité et du décentrement. L'expérience montre que la formulation de Amin correspond mieux à la mesure de concavité minimale absolue. Si le calcul de Amin donne des résultats négatifs, on retient la valeur nulle. Les relations entre or, Amin, Amax et le filtre f sont décrites comme suit : 6=or = Ge-Am�P (6) = e -A'' P où p est un paramètre d'échelle librement choisi. Cette formulation permet d'obtenir de petites variations pour 61 et 62 , alors que Amin et Amax ont de grandes amplitudes. On note que la concavité se comporte comme l'inverse du demi-axe définissant une ellipse. Une concavité très faible correspond à une ellipse de grand demi-axe ; dans ce cas, le noyau de convolution doit être large, car le MB associé est une zone homogène. Les relations entre concavités minimale et maximale sont donc inversées par rapport aux paramètres 61 et 62. La fonction de filtrage f étant définie, l'étape de filtrage, dans cette variante améliorée, est similaire à celle de l'exemple particulier décrit précédemment. La figure 9 montre un mode particulier de réalisation d'un dispositif de traitement d'information apte à fonctionner comme dispositif de restauration d'une séquence vidéo conforme à la présente invention. Le dispositif illustré sur la figure 9 peut comporter tout ou partie des moyens de mise en oeuvre d'un procédé de restauration conforme à la présente invention. Selon le mode de réalisation choisi, ce dispositif peut être par exemple un micro-ordinateur ou une station de travail 900 connecté à différents périphériques, par exemple, une caméra numérique 901 (ou un scanner, ou tout autre moyen d'acquisition ou 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 900 comporte de préférence une interface de 30 communication 902 reliée à un réseau 903 apte à transmettre des informations numériques. Le micro-ordinateur 900 comporte également un moyen de stockage permanent 904, tel qu'un disque dur, ainsi qu'un lecteur de moyens de stockage temporaire tel qu'un lecteur de disquettes 905 pour coopérer avec une disquette 906. La disquette 906 et le disque dur 904 peuvent contenir des données 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 900 met en oeuvre la présente invention, ce code étant par exemple mémorisé sur le disque dur 904 une fois qu'il a été lu par le micro-ordinateur 900. En variante, le ou les programme(s) permettant au dispositif 900 de mettre en oeuvre l'invention sont stockés dans une mémoire morte (par exemple du type ROM) 907. Selon une autre variante, ce ou ces programme(s) sont reçus totalement ou partiellement à travers le réseau de communication 903 pour être 15 stockés comme indiqué. Le micro-ordinateur 900 comprend également un écran 909 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 910 ou de tout autre moyen approprié de pointage et/ou de 20 saisie tel qu'une souris, un crayon optique, etc. Une unité de calcul ou unité centrale de traitement (CPU) 911 exécute les instructions relatives à la mise en oeuvre de l'invention, ces instructions étant stockées dans la mémoire morte ROM 907 ou dans les autres éléments de stockage décrits. En particulier, l'unité centrale de traitement 911 25 est adaptée à mettre en oeuvre l'algorithme illustré sur l'organigramme de la figure 1. Lors de la mise sous tension du dispositif 900, les programmes et méthodes de traitement stockés dans une des mémoires non-volatiles, par exemple la ROM 907, sont transférés dans une mémoire vive (par exemple du 30 type RAM) 912, 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, la méthode de restauration du signal numérique peut être stockée 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 le procédé de restauration d'une séquence vidéo 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 900 par le réseau de communication 903, ou chargées dans le dispositif 900 par l'intermédiaire d'une ou de plusieurs disquettes 906. Bien entendu, les disquettes 906 peuvent être remplacées par tout support d'information jugé approprié (CD-ROM, carte mémoire, etc.). Un bus de communication 913 permet la communication entre les différents éléments du micro-ordinateur 900 et les éléments reliés à celui-ci. On notera que la représentation du bus 913 n'est pas limitative. En effet, l'unité centrale CPU 911 est, par exemple, susceptible de communiquer des instructions à tout élément du micro-ordinateur 900, directement ou par l'intermédiaire d'un autre élément du micro-ordinateur 900. REVENDICATIONS1. Procédé de restauration d'une séquence vidéo constituée d'une pluralité d'images comportant chacune au moins un bloc de pixels, caractérisé en ce qu'il comporte des étapes suivant lesquelles : on calcule (10) la valeur de la similarité, au sens d'une métrique de similarité, entre un bloc de pixels à restaurer (Mc) de l'image courante (Ic) et une pluralité de blocs d'une image de référence (Ir) liée à l'image courante (Ic) par un champ de vecteurs de mouvement ; on détermine le bloc de l'image de référence (Ir) pour lequel la valeur de la similarité avec ledit bloc de l'image courante (Ic) est un extremum ; on construit (12) une carte de similarité autour dudit extremum, à partir des valeurs de la similarité des blocs de l'image de référence (Ir) proches, au sens d'un critère de proximité, du bloc pour lequel la valeur de la similarité est un extremum ; on modélise (14) la carte de similarité, de façon à obtenir un modèle (Sn,) défini par un nombre prédéterminé de paramètres ; on construit (16) un filtre local de restauration (f) à partir des paramètres du modèle (Sn,) ; et on filtre (18) les pixels du bloc à restaurer (Mc) en leur appliquant ledit filtre local de restauration (f). 2. Procédé selon la revendication 1, caractérisé en ce que, lors de l'étape de modélisation (14), on modélise la carte de similarité sous la forme d'une surface. 3. Procédé selon la revendication 1 ou 2, caractérisé en ce que la métrique de similarité consiste à calculer la somme ou la moyenne des valeurs absolues des différences entre les valeurs des pixels d'un bloc de l'image de référence (Ir) et les valeurs des pixels correspondants du bloc à restaurer de l'image courante (Ic) et en ce que l'extremum est un minimum. 4. Procédé selon la revendication 1, 2 ou 3, dans lequel un bloc est défini par ses coordonnées (x,y) et le bloc pour lequel la valeur de la similarité est un extremum a pour coordonnées (xs,ys), caractérisé en ce que le critère deproximité consiste à sélectionner les blocs dont les coordonnées vérifient x ù xs 5. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que, lors de l'étape de modélisation (14), on utilise la méthode 5 des moindres carrés. 6. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que l'image de référence (Ir) est l'image précédant l'image courante (Ic) dans la séquence vidéo. 7. Procédé selon l'une quelconque des revendications précédentes, 10 caractérisé en ce que ladite pluralité de blocs de l'image de référence (Ir) est incluse dans une fenêtre de recherche de taille prédéterminée. 8. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que le filtre local est un noyau de convolution ou un filtre médian ou un filtre orienté. 15 9. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que le modèle (S) est une fonction parabolique à deux dimensions et le filtre local (f) est un noyau de convolution à deux dimensions défini par une fonction de Gauss. 10. Procédé selon l'une quelconque des revendications 1 à 8, 20 caractérisé en ce que le modèle (Sxy ) consiste en quatre fonctions paraboliques à une dimension. 11. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que les blocs de pixels sont des carrés de 16 pixels de côté. 12. Dispositif de restauration d'une séquence vidéo constituée d'une 25 pluralité d'images comportant chacune au moins un bloc de pixels, caractérisé en ce qu'il comporte : des moyens pour calculer la valeur de la similarité, au sens d'une métrique de similarité, entre un bloc de pixels à restaurer (Mc) de l'image courante (Ic) et une pluralité de blocs d'une image de référence (Ir) liée à 30 l'image courante (Ic) par un champ de vecteurs de mouvement ; des moyens pour déterminer le bloc de l'image de référence (Ir) pour lequel la valeur de la similarité avec ledit bloc de l'image courante (Ic) est un extremum ; des moyens pour construire une carte de similarité autour dudit extremum, à partir des valeurs de la similarité des blocs de l'image de référence (Ir) proches, au sens d'un critère de proximité, du bloc pour lequel la valeur de la similarité est un extremum ; des moyens pour modéliser la carte de similarité, adaptés à obtenir un modèle (x,) défini par un nombre prédéterminé de paramètres ; des moyens pour construire un filtre local de restauration (f) à partir des paramètres du modèle (x,) ; et des moyens pour filtrer les pixels du bloc à restaurer (Mc), adaptés à appliquer auxdits pixels ledit filtre local de restauration (f). 13. Dispositif selon la revendication 12, caractérisé en ce que les moyens de modélisation sont adaptés à modéliser la carte de similarité sous la forme d'une surface. 14. Dispositif selon la revendication 12 ou 13, caractérisé en ce que la métrique de similarité consiste à calculer la somme ou la moyenne des valeurs absolues des différences entre les valeurs des pixels d'un bloc de l'image de référence (Ir) et les valeurs des pixels correspondants du bloc à restaurer de l'image courante (Ic) et en ce que l'extremum est un minimum. 15. Dispositif selon la revendication 12, 13 ou 14, dans lequel un bloc est défini par ses coordonnées (x,y) et le bloc pour lequel la valeur de la similarité est un extremum a pour coordonnées (xs,ys), caractérisé en ce que le critère de proximité consiste à sélectionner les blocs dont les coordonnées vérifient x ù xs 16. Dispositif selon l'une quelconque des revendications 12 à 15, caractérisé en ce que les moyens de modélisation sont adaptés à utiliser la méthode des moindres carrés. 17. Dispositif selon l'une quelconque des revendications 12 à 16, caractérisé en ce que l'image de référence (Ir) est l'image précédant l'image courante (Ic) dans la séquence vidéo. 18. Dispositif selon l'une quelconque des revendications 12 à 17, caractérisé en ce que ladite pluralité de blocs de l'image de référence (Ir) est incluse dans une fenêtre de recherche de taille prédéterminée. 19. Dispositif selon l'une quelconque des revendications 12 à 18, caractérisé en ce que le filtre local est un noyau de convolution ou un filtre médian ou un filtre orienté. 20. Dispositif selon l'une quelconque des revendications 12 à 19, caractérisé en ce que le modèle (x,) est une fonction parabolique à deux dimensions et le filtre local (f) est un noyau de convolution à deux dimensions défini par une fonction de Gauss. 21. Dispositif selon l'une quelconque des revendications 12 à 19, caractérisé en ce que le modèle (Sxy ) consiste en quatre fonctions paraboliques à une dimension. 22. Dispositif selon l'une quelconque des revendications 12 à 21, caractérisé en ce que les blocs de pixels sont des carrés de 16 pixels de côté. 23. 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 permet la mise en oeuvre d'un procédé de restauration selon l'une quelconque des revendications 1 à 11. 24. Produit programme d'ordinateur pouvant ê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é de restauration selon l'une quelconque des revendications 1 à 11, lorsque ce programme est chargé et exécuté par l'appareil programmable.