Brevet FR2940696A1 — publié le 20100702

REDUCTION DU BRUIT D'UNE SEQUENCE VIDEO L'invention se rapporte à la réduction du bruit d'une séquence vidéo. Le bruit constitue un artéfact indésirable et dégrade la qualité visuelle de la vidéo. Il s'agit d'un signal aléatoire inhérent à tout procédé de conversion analogique/numérique, susceptible d'être aggravé par certains post-traitements numériques, par exemple l'augmentation du gain sur une caméra numérique pour pallier à l'absence d'éclairage. Il existe plusieurs types de filtrages visant à éliminer le bruit d'images d'une séquence vidéo. Le filtrage peut par exemple être spatial, c'est-à-dire que chaque valeur 10 de pixel est remplacée par une moyenne, éventuellement pondérée, des valeurs des pixels voisins, ou bien par un médian. Le filtrage peut par exemple être temporel, c'est-à-dire que chaque valeur de pixel est remplacée par une valeur obtenue des pixels d'images précédentes et/ou suivantes. Un algorithme de compensation de mouvement 15 peut être mis en oeuvre pour réaliser un tel filtrage. Il est également possible de combiner filtrage spatial et filtrage temporel, en considérant comme voisinage d'un pixel à la fois les pixels proches spatialement et les pixels proches temporellement. Le filtrage peut aussi être bilatéral, c'est-à-dire que chaque valeur de 20 pixel est remplacée par une moyenne des valeurs des pixels voisins spatialement, cette moyenne étant pondérée en fonction de la distance au pixel dont on souhaite remplacer la valeur et en fonction de l'écart entre valeurs de pixels. Le filtrage anisotropique constitue une amélioration du filtrage bilatéral 25 permettant de mieux respecter des contours éventuels dans l'image. Par exemple, on effectue récursivement un filtrage bilatéral de faible rayon. Ceci revient à prendre en compte des gradients locaux lors de la pondération de la moyenne. II existe en outre d'autres types de filtrage. Quelque soit le type de filtrage mis en oeuvre, un filtrage convenant pour le débruitage d'une séquence vidéo donnée, peut se révéler insatisfaisant pour le débruitage d'une autre séquence vidéo. Par exemple, si cette autre séquence vidéo est plus bruitée, il peut rester du bruit après filtrage. Si cette autre séquence vidéo est moins bruitée, les contours dans l'image peuvent être plus détériorés que nécessaire, du fait de la trop grande force de filtrage. Il est connu du document US 7,295,616 d'estimer le niveau de bruit en effectuant un pré-filtrage avec une force de filtrage connue d'une image bruitée, puis en comparant l'image pré-filtrée obtenue à l'image bruitée. Un filtrage de l'image bruitée est alors effectué, en tenant compte du niveau de bruit estimé. La présente invention vise à une meilleure adaptation de la force de filtrage et à une diminution ou suppression correspondante du niveau de bruit de l'image filtrée. Selon un premier aspect, l'invention a pour objet un procédé de débruitage d'une séquence vidéo d'images sources, comprenant, pour au moins une première image source et une deuxième image source distinctes de la séquence vidéo: - effectuer un pré-filtrage de la première et de la deuxième images sources, de façon à obtenir une première et une deuxième images pré-filtrées correspondantes, - estimer un jeu de vecteurs de mouvement, chaque vecteur de mouvement associant par adressage deux blocs respectifs des première et deuxième images sources et associant en outre deux blocs respectifs des premières et deuxième images pré-filtrées correspondantes. Pour au moins une adresse de bloc, on estime un paramètre de similitude des pixels du bloc de la première image source correspondant à cette adresse, avec les pixels du bloc de la deuxième image source associé par un vecteur de mouvement à cette adresse de bloc. De la même façon, on estime un paramètre de similitude des pixels du bloc de la première image pré-filtrée correspondant à cette adresse, avec les pixels du bloc de la deuxième image pré-filtrée associé par ce vecteur de mouvement à cette adresse de bloc. On détermine en fonction des paramètres de similitude estimés une valeur de force de filtrage, et on effectue un filtrage des pixels du bloc de la première image correspondant à cette adresse de bloc, ce filtrage étant adapté en fonction de la valeur de force de filtrage déterminée. On peut considérer que les images sources sont bruitées, et que le pré-filtrage, effectué avec une force déterminée, conduit à un débruitage plus ou moins satisfaisant. On évalue la force du bruit selon le résultat de ce pré-filtrage, et on peut ainsi adapter la force du filtrage à effectuer de façon à obtenir un débruitage plus satisfaisant. Le bruit n'est en effet pas corrélé temporellement : si le pré-filtrage a été effectué avec une force adaptée, les blocs des images pré-filtrées risquent d'être plus semblables entre eux que les blocs des images sources. En revanche, si le pré-filtrage a conduit à non seulement éliminer sensiblement le bruit mais aussi détériorer des détails des images, la similitude des blocs des images sources peut se rapprocher de la similitude des blocs des images pré-filtrées. Dans ce dernier cas, on peut alors choisir une valeur de force de filtrage plus faible, de façon à éviter ces détériorations de détails. Ce procédé permet ainsi, en utilisant des images passé et/ou futures, de mieux distinguer le bruit des détails d'image, lors de l'estimation de la force de filtrage. En effet, dans l'art antérieur, l'estimation du niveau de bruit risque d'être biaisée du fait de la difficulté à distinguer bruit supprimé et détails détériorés lors de la comparaison de l'image bruitée à l'image pré-filtrée. Le pré-filtrage peut être spatial, temporel, spatio-temporel, anisotropique, ou autre. L'estimation de vecteurs de mouvement permet d'associer à un bloc de la première image (source ou pré-filtrée) un bloc de la deuxième image (source ou pré-filtrée respectivement). Cette estimation est de préférence réalisée en utilisant des images pré-filtrées, afin de limiter l'influence du bruit des images sources. En effet, le bruit nuit à la stabilité de l'estimation de mouvement, de sorte qu'en utilisant des images pré-filtrées, on peut améliorer la qualité de l'estimation de mouvement. Alternativement, on peut utiliser des images sources pour effectuer cette estimation. La première et la deuxième image (source ou pré-filtrée) peuvent être consécutives. La première image (source ou pré-filtrée) peut précéder la deuxième image (source ou pré-filtrée) ou bien lui succéder dans la séquence. Avantageusement, on choisit une troisième image source de la séquence vidéo, telle que la première image soit suivie et précédée respectivement par la deuxième et la troisième images source, et on applique les étapes définies ci-dessus également à la troisième image source. Dit autrement, la troisième image source est pré-filtrée, un jeu supplémentaire de vecteurs de mouvements entre la première et la troisième image est estimé, et pour cette au moins une adresse de bloc, on estime : un paramètre de similitude des pixels du bloc de la première image source correspondant à cette adresse, avec les pixels du bloc de la troisième image source associé à cette adresse de bloc par un des vecteurs de mouvement du jeu supplémentaire, et un paramètre de similitude des pixels du bloc de la première image pré-filtrée correspondant à cette adresse, avec les pixels du bloc de la troisième image pré-filtrée associé par ce vecteur de mouvement à l'adresse de bloc. La force de filtrage est déterminée en fonction des paramètres de 25 similitude estimés à partir de la première et deuxième image, et également en fonction des paramètres de similitude estimés à partir de la première et troisième image. Ainsi, pour chaque première image, on utilise deux autres images sources, de sorte que l'on dispose de davantage d'informations. 30 Il est en outre intéressant d'utiliser une image précédente et une image suivante, puisque l'information dont on dispose peut mieux rendre compte de l'évolution dans le temps des images sources. Un tel procédé symétrique peut par exemple permettre d'éviter de prendre en compte l'une de ces deux images si elle est trop différente de la première image. L'invention n'est bien sûr pas limitée à un tel procédé symétrique. On peut utiliser une seule image précédente, une seule image suivante, deux images précédentes, deux images suivantes, ou bien plus de deux images sources de la séquence. Par � bloc � on entend aussi bien un macrobloc, chaque image étant partitionnée en macroblocs fixés, qu'un jeu d'au moins un bloc mémoire, chaque image étant stockée en mémoire sur une pluralité de blocs mémoire, ou bien un ensemble quelconque de pixels adjacents les uns aux autres. L'invention n'est pas non plus limitée par la taille des blocs, par exemple 16*16 pixels, 8*8 pixels, 16*8 pixels, 32*32 pixels ou autre. Avantageusement, le paramètre de similitude estimé est une corrélation entre les pixels de deux blocs. On peut bien entendu choisir un autre paramètre de similitude, par exemple, une somme des différences absolues de valeurs des pixels des blocs ou SAD (de l'anglais � Sum of Absolute Differences �). La valeur de force de filtrage peut comporter une valeur de force de filtrage spatial et/ou temporel, et/ou autre. Le filtrage effectué peut comprendre un filtrage spatial, et/ou temporel, et/ou anisotropique, et/ou d'un autre type. Le filtrage peut être effectué en une seule fois ou bien répété de façon itérative, en particulier si le filtrage est anisotropique. Les valeurs de pixels peuvent par exemple comprendre des valeurs de 25 composantes RGB (de l'anglais � Red Green Blue �), des valeurs de composantes YUV, ou autre. Selon un autre aspect, il est proposé un programme d'ordinateur comportant des instructions pour la mise en oeuvre du procédé exposé ci-dessus, lorsque ces instructions sont exécutées par un processeur d'un 30 dispositif de débruitage de séquence vidéo. Selon encore un autre aspect, il est proposé un dispositif de débruitage de séquence vidéo. Des moyens de pré-filtrage permettent d'effectuer un pré-filtrage d'une première et d'une deuxième images sources de la séquence vidéo, de façon à obtenir une première et une deuxième images pré-filtrées correspondantes. Le dispositif comporte en outre des moyens d'estimation d'un jeu de vecteurs de mouvement, chaque vecteur de mouvement associant par adressage deux blocs respectifs des première et deuxième images sources et associant en outre deux blocs respectifs des premières et deuxième images pré-filtrées correspondantes. Le dispositif comporte en outre des moyens d'évaluation de bruit, agencés pour, pour une adresse de bloc donnée, estimer un paramètre de similitude des pixels du bloc de la première image source correspondant à cette adresse de bloc, avec les pixels du bloc de la deuxième image source associé par un vecteur de mouvement à cette adresse de bloc, estimer un paramètre de similitude des pixels du bloc de la première image pré-filtrée correspondant à cette adresse, avec les pixels du bloc de la deuxième image pré-filtrée associé par ce vecteur de mouvement à cette adresse de bloc, et déterminer en fonction des paramètres de similitude estimés une valeur de force de filtrage. Des moyens de filtrage permettent de filtrer les pixels du bloc de la première image source correspondant à cette adresse de bloc, le filtrage étant adapté en fonction de la valeur de force de filtrage déterminée par les moyens d'évaluation de bruit. Ce dispositif de débruitage peut être par exemple un ordinateur, un serveur, un terminal, un dispositif d'encodage vidéo, ou autre. D'autres particularités et avantages de la présente invention apparaîtront dans la description ci-après. La figure 1 montre schématiquement un exemple de dispositif de 25 débruitage selon un mode de réalisation de l'invention. La figure 2 est un organigramme d'un exemple de procédé selon un mode de réalisation de l'invention. La figure 3 montre schématiquement deux images sources et deux images pré-filtrées, selon un mode de réalisation de l'invention. 30 Les figures 4 et 5 montrent deux fonctions utilisées pour la détermination de la valeur de la force de filtrage, selon un exemple de mode de réalisation de l'invention. La figure 6A montre un exemple d'une image bruitée tirée d'une séquence vidéo. Les figures 6B et 6C montrent des images correspondant à l'image de la figure 6A, après filtrage selon des procédés connus de l'art antérieur. La figure 6D montre une image correspondant à l'image de la figure 6A, après filtrage selon un exemple de procédé selon un mode de réalisation de l'invention. Des références identiques sont utilisées pour désigner des objets identiques ou similaires. En référence à la figure 1, un dispositif de débruitage 100 comporte : des moyens de pré-filtrage, par exemple un module de filtrage spatial non-adaptatif 101, - des moyens d'estimation de vecteurs de mouvement, par exemple un module d'estimation de mouvement 102, des moyens d'évaluation de bruit, par exemple un module de calcul de force de filtrage spatial et temporel 103, et - des moyens de filtrage, ici un module de filtrage spatio-temporel 104. Le dispositif de débruitage 100 reçoit en entrée une séquence vidéo d'images lms(t-1), lms(t), Ims(t+1).... Chaque image de la séquence vidéo, dite image source lms(t), est traitée par le module de filtrage spatial non-adaptatif 101. Ce module est avantageusement paramétré pour fournir une séquence avec relativement peu de bruit, la préservation des détails des images de la vidéo étant de moindre importance. On peut par exemple choisir un filtre spatial avec un relativement fort potentiel de filtrage. On obtient en sortie de ce module 101 des images pré-filtrées lmp(t-l), lmp(t), Imp(t+1).... Le module d'estimation de mouvement 102 permet d'obtenir un jeu de vecteurs de mouvements {Vt,t+1}j1 entre les blocs de l'image Imp(t) et les blocs de l'image Imp(t+1). Les images pré-filtrées lmp(t), Imp(t+1) étant obtenues partir des images ims(t), Ims(t+1), ce jeu de vecteurs de mouvements {Vt,t+I};i permet également d'associer par adressage les blocs de l'image source Ims(t) à des blocs de l'image source suivante Ims(t+1). Est également obtenu un jeu de vecteurs de mouvements supplémentaire {Vt,t_1};1, chaque vecteur de mouvement de ce jeu associant par adressage aux blocs de l'image Ims(t) des blocs de l'image Ims(t-1). Là encore, ce jeu de vecteurs de mouvements {Vt,t_1};ï permet également d'associer par adressage les blocs de l'image source lms(t) à des blocs de l'image source précédente Ims(t-1). Le module de calcul de force de filtrage spatial et temporel 103 permet de déterminer une valeur de force de filtrage temporel FT(t,i,j) et une valeur de force de filtrage spatial FS(t,i,j) pour chaque bloc de l'image source lms(t), selon par exemple l'algorithme décrit en référence à la figure 2. Enfin, le module de filtrage spatio-temporel 104 permet d'effectuer le filtrage proprement dit de l'image source Ims(t). Pour chaque bloc, le filtrage est effectué en tenant compte des valeurs de force de filtrage FT(t,i,j), FS(t,i,j). Dans cet exemple, le filtrage est itératif et anisotropique. Passés M cycles pour chaque bloc de l'image source Ims(t), on obtient une image filtrée Im,pu'(t) En référence à la figure 2, les images sources Ims(t), Ims(k) sont reçues lors d'une étape 200. L'image source Ims(t) est dite première image, tandis que par lms(k) on désigne une autre image source de la séquence. Par exemple k=t+1, t+2, t-1, t-2, ou autre. Lors d'une étape 201, on effectue un pré-filtrage des images sources lms(t), lms(k). On peut par exemple choisir un filtre bilatéral, de rayon R. Pour chaque image source lms(t), Ims(k), chaque pixel PP(i,j) de l'image pré- filtrée correspondante peut être obtenu suivant : x=R y=R E PS(i + x, j + y) . F(i, j, x, y) PP i x =-R y=-R Où: PS(i,j) est la valeur du pixel de l'image source situé à la ième ligne et jème colonne, F(i, j, x, y) = G(x, ospatial) G(y, 6spai,al) . G(PS(i + x, J + y) ù PS(i, .%), orange) 1 x=R y=R 1 1 F(i, j, x, y) x=-R y=-R (1) _X2 _ G(x, a) = e 2e' , 6spat,ar =2,4, a = 30,0 , range Et R=5. Ces valeurs de paramètres .paria/ , 6 et R correspondent à un range filtrage relativement fort et à une perte de détails éventuelle relativement importante. Pour revenir à la figure 2, des vecteurs de mouvements sont estimés lors d'une étape 202, par exemple en se conformant à l'enseignement du document Hye-Yeon Cheong, Alexis Michael Tourapis, � Fast motion estimation within H.264 codec �, IEEE International Conference on Multimedia & Expo, 2003. Pour chaque bloc de 16x16 pixels de la première image pré-filtrée Imp(t), on estime un vecteur de mouvement associant par adressage ce bloc à un bloc de l'image Imp(k). Si on prévoit d'utiliser une deuxième et une troisième image, on estime alors deux vecteurs de mouvements, l'un associant par adressage le bloc de la première image pré-filtrée lmp(t) à un bloc de la deuxième image, l'autre associant par adressage ce même bloc de la première image pré-filtrée lmp(t) à un bloc de la troisième image. La figure 3 montre une première image pré-filtrée lmp(t) et une deuxième image pré-filtrée Imp(k). La première image pré-filtrée lmp(t) est partitionnée en blocs BP(i, j, t). Pour chaque bloc BP(i, j, t), un vecteur de mouvement correspondant V,(k" associe par adressage ce bloc BP(i, j, t) à un bloc de la deuxième image pré-filtrée Imp(k). Par convention, ce dernier bloc est nommé BP(i, j, k), même si la position de ce bloc au sein de la deuxième image pré-filtrée Imp(k) n'est pas donnée par les indices i,j. Les blocs de la première image pré-filtrée lmp(t) ont des positions prédéfinies par la partition de l'image lmp(t) : par exemple, le pixel en haut à gauche de chaque bloc BP(i, j, t) est situé à la 16*ième ligne et 16*jème colonne de l'image lmp(t). En revanche, les blocs de la deuxième image associés à ces blocs par des vecteurs de mouvements sont susceptibles 9 d'avoir des positions autres que ces positions prédéfinies. Pour chaque bloc BP(i, j, k), le pixel en haut à gauche de ce bloc est susceptible de se situer à n'importe quelle ligne et n'importe quelle colonne de l'image Imp(k). Le vecteur de mouvement V,(,k°� associe par adressage chaque pixel PP(i',j',t) du bloc BP(i, j, t) à un pixel du bloc BP(i, j, k). De la même façon, par convention, on désigne ce dernier pixel par PP(i',j',k), même si sa position au sein de la deuxième image pré-filtrée Imp(k) n'est pas donnée par les indices i',j'. Les images pré-filtrées Ims(t), Imp(k) étant obtenues à partir des images sources correspondantes Ims(t), Ims(k), le vecteur de mouvement permet d'associer à chaque bloc BS(i, j, t) partitionnant l'image source lms(t) un bloc BS(i, j, k) de l'image source Ims(k), et d'associer à chaque pixel PP(i',j',t) de la première image source lms(t) un pixel PS(i',j',k) de la deuxième image source Ims(k). Pour revenir à la figure 2, lors de cette étape 202, pour chaque vecteur de mouvement estimé, on estime également une somme des différences absolues ou SAD. Cette somme SAD est calculée selon, pour un bloc BP(i,j,t) situé à la 16*ième ligne et 16*jème colonne de l'image Ims(t) : x=15 y=15 SAD(i, j, ,k) = 1 1 1PP(i.16 + x, j.16 + y, t) - PP(i.16 + x, j.16 + y, k)l (2) z=o y=o Les étapes permettant de déterminer des valeurs de force de filtrage sont représentées schématiquement sous la référence 203, toutes les étapes n'étant pas détaillées sur la figure 2. Les valeurs de force de filtrage FT(t,i,j) et FS(t,i,j) sont déterminées pour chaque bloc, indicé i, j, de la première image source lms(t), 25 indépendamment des autres blocs de cette image. Les étapes détaillées ci-dessous sont décrites pour un bloc BS(i, j,t) de l'image source Ims(t), mais l'homme du métier comprendra bien que ces étapes sont répétées de façon à parcourir l'ensemble des blocs de l'image source Ims(t). A cet effet, une initialisation 220, un test 221 et un changement 30 de bloc 222 peuvent être mis en place. Pour chaque bloc BS(i,j,t) de l'image source Ims(t) : - Est calculée une moyenne des valeurs de pixels du bloc BP(i, j,t) pour l'image pré-filtrée Imp(t): x=15 y=15 PP(i•16+x, j•16+y,t) MEAN(i, = x=0 y=o ' ~' 256 (3) VAR(i, j,t) 11 - Est en outre calculée une variance du bloc BP(i,j,t) pour l'image pré-5 filtrée lmp(t): x=15 y=15 EEPP(i .16+x, j .16+ y, t) - MEAN(i, j,t) x=0 y=-0 256 (4) - Est en outre calculée une métrique d'auto-corrélation inhérente au bloc BP(i, j,t), suivant la formule (5) ci-dessous : 15 15 A UTO(i, j, t) = (E E (PP(i.16 + x, j.16 + y, t) - PP(i.16 + x + 1, j.16 + y, t))2 + 512 x=0 y=0 15 15 E E(PP(i.16+x,j.16+y,t)-PP(i.16+x,j.16+y+1,t))2) x=0 y=0 10 La valeur de cette métrique AUTO(i,j,t) varie selon l'importance des hautes fréquences dans le bloc BP(i, j,t). - Est en outre calculée une différence des moyennes entre deux blocs BP(i,j,t) et BS(i,j,k) de deux images sources associés par un vecteur de mouvement. Pour les images sources Ims(t), Ims(k) : x=I5y=15 x=15y=15 11PS(i•16+x,j•16+y,t)û11PS(i.16+x,j.16+y,k) 15 DIFF(i, j,t,k) = 256 ra (6) Une valeur élevée de cette différence des moyennes indique un changement de luminosité entre l'image Ims(t), Ims(k). Lorsque le procédé décrit ci-dessus est appliqué à trois images de la séquence vidéo, la première image étant par exemple suivie par la deuxième 20 image et précédée par la troisième image, on calcule, en adaptant la formule (6), une différence des moyennes aval entre les blocs BP(i,j,t) et BP(i,j,t-a) et une différence des moyennes amont entre les blocs BS(i,j,t) et BS(i,j,t+b), a et b étant des entiers strictement positifs. - Enfin, on détermine lors d'une étape 210 des paramètres de similitude, ici des corrélations. Pour deux images pré-filtrées lmp(t), Imp(k) : x=15 y=15 SUMPP (i, j,t) = PP(i.16 + x, j.16 + y, t) (7) =o y=o x=1 5 y=15 SUMXYPP (i, j, t, k) _ PP(i.16 + x, j.16 + y, t) • PP(i.16 + x, j.16 + y, k) (8) x=o y=o VARXYYY (i, j, t, k) ~ SUMXYYP (i, j, t, k) .256- SUMYY (i, j, t) SUMY� (i, j, k) k) = VARXXYpp (i, j, t, k) CORRPY(i, j,t, k) (i, j, t, t) .\IVARXY,,P (i, j, k, k) On calcule de la même façon une corrélation CORRps(i,j,t,k) entre les blocs BS(i, j,t) et BS(i,j,k) des images sources Imp(t), Imp(k), lors d'une étape 211. Lorsque le procédé décrit ci-dessus est appliqué à trois images de la séquence vidéo, on calcule en adaptant les formules (7) à (10) : - une corrélation filtrée aval : CORRD (i,j,t, t-a) = CORRps(i,j,t,t-a) ; - une corrélation filtrée amont : CORRD (i,j,t, t+b) = CORRpp(i,j,t,t+b) ; - une corrélation bruitée aval : CORRB (i,j,t, t-a) = CORRps(i,j,t,t-a) ; une corrélation bruitée amont : CORRB (i,j,t,t+b) = CORRps(i,j,t,t+b) ; Pour revenir à la figure 2, on calcule lors d'une étape 212 une force temporelle FT(t,i,j) et une force spatiale FS(t,i,j). Dans ce qui suit, on suppose avoir appliqué le procédé à trois images de la séquence vidéo, de sorte qu'on détermine une force temporelle aval FT(i,j,t,t-a), une force temporelle amont FT(i,j,t,t+b) et une force spatiale FS(t,i,j). Les forces temporelles aval et amont sont susceptibles de prendre des valeurs entre un minimum, par exemple 0 (pas de filtrage), et un maximum, par exemple 3 (filtrage maximum). Ces forces sont calculées (9) (10) indépendamment l'une de l'autre, de la manière suivante, non détaillée sur la figure 2 : - Les forces temporelles FT(i,j,t,t-a) et FT(i,j,t,t+b) sont initialisées à 2 ; - On compare la longueur du vecteur de mouvement amont V,`;+h à deux seuils, par exemple 1,5% et 5% de la largeur de l'image. Si la longueur du vecteur de mouvement amont est inférieure à 1,5% de la largeur de l'image, la force temporelle amont reste inchangée. Si la longueur du vecteur de mouvement amont est supérieure à 5% de la largeur de l'image, la force temporelle amont est mise à zéro. Si la longueur du vecteur de mouvement amont se situe entre ces deux seuils, la force temporelle amont se voit affecter une valeur entre 0 et 2, calculée par interpolation linéaire. Ainsi, plus la longueur du vecteur de mouvement se rapproche de 5% de la largeur de l'image, plus la force temporelle se rapproche de zéro. Ainsi, on désactive le filtrage temporel en cas de mouvement trop grand. On procède de la même façon pour la force temporelle aval, en comparant la longueur du vecteur de mouvement aval V,`;'_Q à ces deux seuils. - Pour chaque valeur de k prise dans le doublet {t-a, t+b}, on calcule le SAD(i, j, t, k) rapport , à partir des formules (2) et (4) et on compare ce VAR(i, j,t) rapport à deux seuils, par exemple 0,5 et 2. Si ce rapport est supérieur à 2, la force temporelle correspondante (amont pour k=t+b, aval pour k=t-a) est mise à zéro. Si ce rapport est inférieur à 0,5, la force temporelle est inchangée. Si la valeur de ce rapport se situe entre ces deux seuils, la force temporelle se voit affecter une valeur entre 0 et 2, calculée par interpolation linéaire. La valeur de ce rapport SAD(i, j,t,k) fournissant une indication de la VAR(i, j, t) qualité de l'estimation de mouvement, on désactive le filtrage temporel si le rapport a des valeurs relativement élevées, c'est-à-dire si l'estimation de mouvement est jugée de piètre qualité. - De la même façon, pour chaque valeur de k prise dans le doublet {t-a, t+b}, on compare la valeur de DIFF(i,j,t,k) obtenue par la formule (6) à deux seuils, par exemple 0,5 et 2. Si cette valeur DIFF(i,j,t,k) est supérieure à 2, la force temporelle correspondante (amont ou aval) est mise à zéro. Si cette valeur DIFF(i,j,t,k) est inférieure à 0,5, la force temporelle est inchangée. Si la valeur DIFF(i,j,t,k) se situe entre ces deux seuils, la force temporelle se voit affecter une valeur entre 0 et 2, calculée par interpolation linéaire. Ainsi, on désactive le filtrage temporel si la valeur DIFF(i,j,t,k) indique un changement de luminosité conséquent. - Puis, pour chaque valeur de k prise dans le doublet {t-a, t+b} : Si la valeur CORRB(i,j,t,k) est inférieure à un seuil bas, par exemple 0,5 et la valeur CORRD(i,j,t,k) est supérieure à un seuil haut, par exemple 0,95, c'est-à-dire que l'on estime que le pré-filtrage a permis d'éliminer du bruit sans détériorer des détails, alors la force temporelle correspondante (amont ou aval selon la valeur de k) est augmentée. Par exemple, la force temporelle peut se voir incrémentée de (1-2*CORRB(i,j,t,k)). Sinon, si la valeur CORRB(i,j,t,k) est inférieure à un seuil bas, par exemple 0,5 et la valeur AUTO(i,j,t), calculée suivant la formule (5) est inférieure à un seuil haut, par exemple 100, (c'est-à-dire si l'on estime que le bloc comporte relativement peu de hautes fréquences, et donc relativement peu de détails), alors la force temporelle correspondante (amont ou aval selon la valeur de k) est augmentée. Par exemple, la force temporelle peut se voir incrémentée de 1-2*CORRB(i,j,t,k). On détermine ainsi en fonction des paramètres de similitude CORRB(i,j,t,t-a), CORRB(i,j,t,t+b), CORRD(i,j,t,t-a), CORRD(i,j,t,t+b), des valeurs de force de filtrage temporelles aval FT(i,j,t,t-a) et amont FT(i,j,t,t+b). La force spatiale FS(t,i,j) est également déterminée lors de cette étape 212. Cette force est susceptible de prendre des valeurs entre 0 et 4, et est calculée ainsi : - on choisit quelle image parmi l'image précédente et l'image suivante est la plus pertinente, en comparant les valeurs calculée suivant la formule (2) : si la valeur SAD(i,j,t,t-a) est inférieure à SAD(i,j,t,t+b), on choisit l'image précédente, indicée t-a, soit k=t-a. Dans le cas contraire, on choisit l'image suivante, indicée t+b, soit k=t+b. - On notera CORRMAX(i, j, t, k) (respectivement CORRMIN(i, j, t, k)) le maximum (respectivement le minimum) de CORRB(i,j,t,k) et CORRD(i,j,t,k). - la force spatiale FS(t,i,j) est initialisée à 3. - On compare CORRMAX(i, j, t, k) et CORRMIN(i, j, t, k) à deux seuils respectifs THR1, THR2, par exemple égaux chacun à 0,5. Si ces deux valeurs CORRMAX(i, j, t, k) et CORRMIN(i, j, t, k) sont chacune supérieures au seuil correspondant respectif, alors la force spatiale est réduite. Par exemple, la force spatiale FS(t,i,j) est décrémentée de (CORRMIN(i, j,t, k) - THR2).FT(i, j,t,k) CORRMAX(i, j, t, k) - THRI Dans le cas contraire, si la valeur de CORRMIN(i, j, t, k) est inférieure au seuil THR2 et que CORRMAX(i, j, t, k) est supérieur à un seuil haut de 0,95 par exemple, alors la force spatiale FS(t,i,j) est augmentée. Par exemple, la force spatiale est accrue de (1-2* CORRMIN(i, j, t, k)). Sinon, si la valeur de CORRMIN(i, j, t, k) est inférieure au seuil THR2 et que la valeur AUTO(i,j,t), calculée suivant la formule (5) est inférieure à un seuil haut, par exemple 25 (c'est-à-dire si l'on estime que le bloc comporte particulièrement peu de détails), alors la force spatiale est augmentée. Par exemple, la force spatiale est accrue de 1-2* CORRMIN(i, j, t, k). Sinon, si la valeur de CORRMIN(i, j, t, k) est inférieure au seuil THR2 et que la valeur AUTO(i,j,t), calculée suivant la formule (5) est inférieure à un autre seuil haut, par exemple 100, alors la force spatiale est augmentée. Par exemple, la force spatiale FS(t,i,j) est accrue de : (1 - 2 *CORRMIN(i, j, t, k)) • (100 - A UTO(i, j, t)) 75 Pour revenir à la figure 2, une fois les forces spatiales et temporelles 25 déterminées pour chaque bloc BS(i,j,t) de l'image source Ims(t), le filtrage proprement dit est effectué lors de l'étape 204. Dans cet exemple, il s'agit d'un filtrage spatio-temporel anisotropique avec compensation de mouvement, effectué de façon itérative avec des étapes classiques d'initialisation, de test et d'incrémentation. Chaque image 30 est filtrée M fois, par exemple 8 fois. Dans cet exemple, des vecteurs de mouvement ont été estimés entre une première image source Ims(t) et une deuxième image source Ims(t-F1), et également entre la première image source Ims(t) et une troisième image source Ims(t-1), soit a=b=1. Pour une itération donnée, indicée m, m variant de 1 à m, l'image Im,'"�t)est obtenue suite à une étape de filtrage 214 de l'image Im(Fm-')(t) obtenue après l'itération précédente, à partir de cette image Im' -�(t) , de l'image Imam-''(t+1) et de l'image Im~r'(t-1). Par convention, l'image Im~F) (t) est l'image source Ims(t). Dans les formules qui suivent, l'indice t peut être omis à des fins de clarté. Lors de l'étape 214, pour chaque bloc BS(m"l)(i,j,t) de l'image lm(;,"-�(t) à filtrer, on calcule des valeurs de pixels PF(m)(16*i+x, 16*j+y,t) pour un bloc BS(m)(i,j,t) de l'image ImF�(t), de la manière suivante : - Est d'abord effectué un filtrage passe-bas : PF0~°(i•16+x, j•16+y,t)= 6(PF("'-''(i.16+x-1, �16 +y-1,0 +2•PF(m')(i•16+x, j.16+y-1,t) +PF('� (i.16+x+1,j•16+y -1, t) + 2•PF("')(i 16+x-1,�16+y,t) + 4 . PF (m-!) (i • 16 + x, j16+ y, t) +2• PF(m-�(i •16+x+1, j •16+y,t) +PF(m-�(i•16+x-1,j•16+y+1,t) +2•PF("' (i .16+x,j•16+y+1,t) +PF("'-�(i•16+x+1,j•16+y+1,t)) Les valeurs des indices x et y sont à prendre entre 0 et 15 de façon à couvrir tous les pixels du bloc. - Puis on calcule un paramètre de changement spatial pour chaque 20 pixel du bloc : CS(m)(i•16+x,j•16+y)=PS,,,(FS(t,i,j),i•16+x,j• 16+y,1,0)+ PS,"(FS(t,i,j),i•16+x,j•16+y,-1,0)+ (12) PS,"(FS(t,i,j),i•16+x,j•16+y,0,1)+ PS,,,(FS(t,1, j),i •16+x, j.16+ y,O,-l) Où: PS,,,(F,x,y,d dy) = PF~'"'(x+dy+dy)-PFô'(x,Y) ~ 1+ .(PF~rnl)(x+dey+dy)-PF{m-)(x,y)) ( AS(F) ) les valeurs de pixels étant prises sur les images correspondant à l'instant t, et avec AS(F) une fonction linéaire par morceaux valant par exemple : - 0,1 pour F= 0, - 0,3 pour F=1, - 0,7 pour F=2, - 1,0 pour F=3 et - 3,O pour F=4. La figure 4 montre cet exemple de fonction AS(F). Ensuite, on calcule des blocs représentant le changement temporel de la manière suivante : Cl(m)(i•16+x,J•16+y,t,t-1) = PT(FT(i, j, t, t -1), PFm-� (i .16+x, J.16+ y, t), PFtm� (i .16+x, J.16+ y, t -1) + DIFT(i, j, t, t -1)) 15 et CI{m) (i .16+x, j .16+ y, t, t +1) =PI(FI(i, j,t,t+1),PFtm-�(i .16+x, j •16+y,t),PI (i.16+x, j 1 6+ y,t +1) +DIFI(i, j,t,t+1)) avec : 20 PT(F,P,Pk)= Pk 1 _P 2 •(Pk-P) 1+(AT(F)) PF('0(i•16+x, j•16+y,t-1) désignant par convention la valeur du pixel de l'image ImFm) (t -1) associé par adressage par un vecteur de mouvement au pixel situé en (i*16+x, j*16+y) sur l'image Im(Fm-� (t) , PF(m-1)(i•16+x, j•16+y,t+l) désignant par convention la valeur du 25 pixel de l'image Im(;-')(t+1) associé par adressage par un vecteur de mouvement au pixel situé en (i*16+x, j*16+y) sur l'image Im(Fm-� (t), et 17 AT(F) étant une fonction linéaire par morceaux, valant par exemple : - 0,001 pour F= 0, - 0,5 pour F=1, - 1,0 pour F=2, et - 2,0 pour F=3. La figure 5 montre cet exemple de fonction AT(F). Enfin, on calcule la valeur finale de chaque pixel selon la formule : PF("' (i•16+x,j•16+y,t)=PF(mù�(i•16+x,j•16+y,t) +.,,.par,o,•CS("')(i•16+x,j.16+y,t) +~,~ poYa, (CT(m)(i•16+x,j•16+y,t,tù1)+CT(m)(i•16+x,j•16+y,t, t+l)) Avec .spqäQ, et 'temporal valant par exemple 0,8. Pour chaque bloc, on effectue ainsi un filtrage adapté en fonction des valeurs de forces temporelles et spatiales déterminées pour ce bloc. La figure 6A montre un exemple d'une image tirée d'une séquence vidéo. La figure 6B montre une image correspondant à l'image de la figure 6A, après un filtrage spatial par convolution gaussienne de 11*11 pixels, connu de l'art antérieur. La figure 6C montre une image correspondant à l'image de la figure 6A, après un filtrage bilatéral connu de l'art antérieur. La figure 6D montre une image correspondant à l'image de la figure 6A, après un filtrage suivant un procédé selon un mode de réalisation de l'invention. On constate que ce procédé permet d'obtenir une image avec un bruit d'image réduit par rapport à l'image bruitée de la figure 6A, avec des contours d'image plus précis que les contours de la figure 6B, et sans suppression de détails du type irrégularité des murs, contrairement à l'image de la figure 6C. REVENDICATIONS1. Procédé de débruitage d'une séquence vidéo, incluant, pour au moins une première image source (Ims(t)) et une deuxième image source (Ims(k)) distinctes de la séquence vidéo, au moins les étapes consistant à: effectuer un pré-filtrage (201) de la première et de la deuxième images sources, de façon à obtenir une première (Imp(t)) et une deuxième (1mp(k)) images pré-filtrées correspondantes, estimer (202) un jeu de vecteurs de mouvement de blocs ({Vt,k};J), chaque vecteur de mouvement associant par adressage deux blocs respectifs (BP(i,j,t), BS(i,j,k)) des première et deuxième images sources et associant en outre deux blocs respectifs (BP(i,j,t), BP(i,j,k)) des premières et deuxième images pré-filtrées correspondantes, pour au moins une adresse de bloc, estimer (211) un paramètre de similitude (CORRp3(i,j,t,k)) des pixels du bloc de la première image source correspondant à ladite adresse, avec les pixels du bloc de la deuxième image source associé par un desdits vecteurs de mouvement à ladite adresse de bloc, estimer (210) un paramètre de similitude (CORRpp(i,j,t,k)) des pixels du bloc de la première image pré-filtrée correspondant à ladite adresse, avec les pixels du bloc de la deuxième image pré-filtrée associé par ledit vecteur de mouvement à ladite adresse de bloc, déterminer (212) en fonction des paramètres de similitude estimés une valeur de force de filtrage (FT(t,i,j), FS(t,i,j)), et effectuer un filtrage (204) des pixels du bloc de la première image source correspondant à ladite adresse de bloc, ledit filtrage étant adapté en fonction de la valeur de force de filtrage déterminée. 2. Procédé selon la revendication 1, dans lequel le paramètre de similitude estimé comprend une corrélation (CORRps(i,j,t,k), CORRpp(i,j,t,k)) entre les pixels de deux blocs respectifs. 3. Procédé selon l'une des revendications 1 ou 2, dans lequel la valeur de force de filtrage comporte une valeur de force de filtrage spatial (FS(t,i,j)), et le filtrage effectué comprend un filtrage spatial. 4. Procédé selon l'une des revendications 1 à 3, dans lequel la valeur de force de filtrage comporte une valeur de force de filtrage temporel (FS(t,i,j)), et le filtrage effectué comprend un filtrage temporel. 5. Procédé selon l'une des revendications 1 à 4, dans lequel le filtrage effectué comprend un filtrage anisotropique. 6. Procédé selon l'une des revendications 1 à 5, dans lequel l'estimation (202) des vecteurs de mouvement est effectuée à partir de la première image pré-filtrée et de la deuxième image pré-filtrée. 7. Procédé selon l'une des revendications 1 à 6, dans lequel, pour une troisième image source (Imp(t-1)) de la séquence vidéo précédent la première image source (Imp(t)), la deuxième image source (Imp(t+1)) suivant la première image source, on effectue un pré-filtrage de la troisième image source, de façon à obtenir une troisième image pré-filtrée correspondante (Imp(t-1)), on estime un jeu supplémentaire ({Vt,t_I};i) de vecteurs de mouvement de blocs, chaque vecteur de mouvement associant par adressage deux blocs respectifs des première et troisième images sources et associant en outre deux blocs respectifs des premières et troisième images pré-filtrées correspondantes, et, pour ladite au moins une adresse de bloc,on estime un paramètre de similitude (CORRB (i,j,t, t-1)) des pixels du bloc de la première image source correspondant à ladite adresse, avec les pixels du bloc de la troisième image source associé par un desdits vecteurs de mouvement à ladite adresse de bloc, on estime un paramètre de similitude (CORRD (i,j,t, t-1)) des pixels du bloc de la première image pré-filtrée correspondant à ladite adresse, avec les pixels du bloc de la troisième image pré-filtrée associé par ledit vecteur de mouvement à ladite adresse de bloc, et dans lequel, lors de la détermination de la valeur de force de filtrage (FT(i,j,t,t-1), FT(i,j,t,t+1), FS(i,j,t)), on prend en compte en outre lesdits paramètres de similitude. 8. Programme d'ordinateur destiné à être stocké dans une mémoire d'un dispositif de débruitage de séquence vidéo, et/ou stocké sur un support mémoire destiné à coopérer avec un lecteur dudit dispositif et/ou téléchargé via un réseau de télécommunication, caractérisé en ce qu'il comporte des instructions pour la mise en oeuvre du procédé selon l'une des revendications précédentes, lorsque lesdites instructions sont exécutées par un processeur dudit dispositif de 20 débruitage de séquence vidéo. 9. Dispositif de débruitage de séquence vidéo, comprenant - des moyens de pré-filtrage (101) d'une première et d'une deuxième images sources de la séquence vidéo, de façon à obtenir une première et 25 une deuxième images pré-filtrées correspondantes, - des moyens d'estimation (102) d'un jeu de vecteurs de mouvement, chaque vecteur de mouvement associant par adressage deux blocs respectifs des première et deuxième images sources et associant en outre deux blocs respectifs des premières et deuxième images pré-filtrées 30 correspondantes, - des moyens d'évaluation de bruit (103), agencés pour, pour une adresse de bloc donnée,estimer un paramètre de similitude des pixels du bloc de la première image source correspondant à ladite adresse, avec les pixels du bloc de la deuxième image source associé par un vecteur de mouvement à ladite adresse de bloc, estimer un paramètre de similitude des pixels du bloc de la première image pré-filtrée correspondant à ladite adresse, avec les pixels du bloc de la deuxième image pré-filtrée associé par ledit vecteur de mouvement à ladite adresse de bloc, et déterminer en fonction des paramètres de similitude estimés une valeur de force de filtrage, - des moyens de filtrage (104) pour filtrer les pixels du bloc de la première image source correspondant à ladite adresse de bloc, ledit filtrage étant adapté en fonction de la valeur de force de filtrage déterminée par les moyens d'évaluation de bruit.15