Brevet FR2828977A1 — publié le 20030228

La présente invention est relative à un dispositif et à un procédé d'estimation du niveau de bruit ainsi qu'à un système de réduction de bruit et à un système de codage comprenant un tel dispositif. Elle concerne les techniques d'estimation de niveau de bruit appliquées à des signaux vidéo numériques. Ces techniques d'estimation du niveau de bruit sont utilisées dans les techniques de réduction de bruit. Les techniques de réduction de bruit s'appliquent généralement à des images vidéo numériques se présentant sous la forme d'une matrice d'échantillons ; chaque échantillon est composé d'un signal de luminance et, pour un signal en couleur, d'un signal de chrominance. L'acquisition des séquences d'images vidéo est encore aujourd'hui largement réalisée sous une forme analogique de sorte que les images, une fois acquises et éventuellement transmises et stockées dans des formats analogiques, présentent une part sensible de bruit dans leur contenu. Une fois numérisées, ces images sont également souvent soumises à des opérations de stockage/édition qui, à leur tour, introduisent un bruit de nature numérique, cette fois. En final, une séquence d'images subit généralement une succession de transformations ayant pour résultat un bruit patio-temporel de nature fortement aléatoire. Pour obtenir un fonctionnement performant, les méthodes de réduction de bruit faisant appel à un filtrage récursif considèrent la très forte corrélation temporelle des images d'une séquence vidéo. Par conséquent, les notions de mouvement et de déplacement sont importantes pour la mise au point d'une réduction de bruit efficace. Par déplacement , on entend le changement de position d'un objet dans une scène, ce changement de position étant localisé et propre à cet objet. Par mouvement , on entend l'ensemble des déplacements d'objets dans une séquence vidéo. Le mouvement est classiquement détecté soit par simple différence d'images à images, soit en utilisant un estimateur de mouvement. Lorsque l'on utilise un estimateur de mouvement, on tient compte des déplacements en effectuant des différences d'images à des instants distincts ainsi qu'en se déplaçant spacialement dans les trames. Ces déplacements sont représentés par des champs de vecteurs de mouvement appliqués à des pixels (estimation de mouvement au pixel) ou à des blocs (estimation de mouvement par blocs). On obtient ainsi des différences d'images compensées en mouvement, appelées DFDs (Displacement Frame Differences), par pixels ou par blocs. Dans des systèmes connus, l'estimation du niveau de bruit est faite au niveau des trames d'images. Cette estimation conduit à uniformiser le bruit sur la trame et par voie de conséquence le filtrage ce qui peut engendrer certains défauts tels la perte de définition sur certaines zones non bruitées, l'apparition de flou ou le lissage de certaines textures (les pelouses par exemple). De tels systèmes sont par exemple décrits dans la demande de brevet Français 009684 déposée le 24 juillet 2000 au nom de la société Thomson Multimédia. La présente invention concerne un dispositif d'estimation du niveau de bruit fondé sur une estimation locale du bruit tenant ainsi compte de son caractère fortement aléatoire. Les effets négatifs exposés ci-dessus sont alors considérablement réduits contribuant à l'augmentation de la qualité d'image. L'invention est également relative à un système de réduction de bruit et à un système de codage comprenant un tel dispositif ainsi qu'à un procédé de filtrage récursif compensé en mouvement correspondant. A cet effet, l'invention a trait à un dispositif d'estimation du niveau de bruit d'images vidéo avant codage comportant : - des moyens de stockage d'au moins une image d'entrée, - un module d'estimation de mouvement par blocs, prévu pour produire par blocs des grandeurs représentatives de variations d'images compensées en mouvement, à partir d'une image d'entrée courante et d'au moins une image d'entrée stockée antérieurement dans lesdits moyens de stockage, - des moyens d'estimation d'un niveau de bruit global pour chaque image en fonction d'au moins lesdites grandeurs représentatives de variations d'images compensées en mouvement, Selon l'invention ce dispositif comprend : - des moyens d'estimation d'un niveau de bruit local pour chaque bloc de l'image en fonction de grandeurs représentatives de variations d'images compensées en mouvement et du niveau de bruit global. Par grandeurs représentatives de variations d'images compensées en mouvement , on entend des grandeurs qui quantifient des modifications temporelles dans une séquence d'images (préférentiellement par blocs) en tenant compte de l'estimation de mouvement. Ces grandeurs consistent avantageusement en les DFDs. Les DFDs sont assez bien représentatives de la quantité de bruit contenue dans une séquence vidéo. Les DFDs en donnent même une expression exacte si la compensation de mouvement est idéale (c'est-à-dire si la compensation est parfaite, quelles que soient la nature du mouvement et les déformations). En tenant compte de la nature fortement aléatoire du bruit, l'estimation d'un niveau de bruit local permet la diminution des artefacts de filtrage ; ces derniers sont la conséquence directe d'un niveau de bruit uniforme sur la trame synonyme d'un filtrage identique sur un bloc bruité et sur un bloc non bruité. Ainsi l'estimation du niveau de bruit au niveau local permet de réduire notamment la forte perte de définition sur les zones de l'image non bruitées, l'apparition de flou et le lissage de certaines textures, par exemple, les pelouses. En estimant le niveau de bruit local en fonction du niveau de bruit global de la trame, il est possible de situer le niveau de bruit du bloc courant par rapport au niveau de bruit global de la trame et ainsi d'améliorer l'estimation du niveau de bruit global. Préférentiellement, lesdites grandeurs représentatives de variations d'images compensées en mouvement pour déterminer ledit niveau de bruit global sont une grandeur minimale et une grandeur moyenne calculées par le module d'estimation de mouvement par bloc. Préférentiellement, lesdites grandeurs représentatives de variations d'images compensées en mouvement pour déterminer ledit niveau de bruit local sont une grandeur locale et une grandeur moyenne calculées par le module d'estimation de mouvement par bloc. Selon un mode de réalisation préféré, les moyens d'estimation d'un niveau de bruit local sont prévus pour déterminer le niveau de bruit local en fonction de la différence entre la DFD moyenne et la DFD locale et en fonction du rapport de ladite différence sur la DFD moyenne. De façon préférée, le niveau de bruit local est ajusté différemment en fonction de la comparaison entre les valeurs de ladite différence et au moins une valeur de seuil prédéterminée. Ceci permet d'ajuster le niveau de bruit en fonction de seuils prédéterminés et ainsi de limiter les fluctuations du niveau de bruit local en interdisant au niveau de bruit local de sortir d'une plage de valeurs prédéfinies. L'invention concerne également un dispositif de réduction du bruit comprenant un dispositif d'estimation du niveau de bruit conforme à l'invention. L'invention est également relative à un système de codage comprenant un dispositif d'estimation du niveau de bruit conforme à l'invention. Elle s'applique également à un procédé d'estimation du niveau de bruit d'images vidéo avant codage dans lequel : - on stocke au moins une image d'entrée courante, - on effectue une estimation de mouvement par blocs de façon à produire par blocs des grandeurs représentatives de variations d'images compensées en mouvement, à partir d'une image d'entrée courante et d'au moins une image d'entrée stockée antérieurement dans lesdits moyens de stockage, - on détermine un niveau de bruit global pour chaque image en fonction d'au moins lesdites grandeurs représentatives de variations d'images compensées en mouvement, Selon l'invention, - on détermine un niveau de bruit local pour chaque bloc de l'image en fonction de grandeurs représentatives de variations d'images compensées en mouvement et du niveau de bruit global. L'invention sera mieux comprise et illustrée au moyen d'exemples de modes de réalisation et de mise en oeuvre avantageux, nullement limitatifs, en référence aux figures annexées sur lesquelles : - la figure 1 représente un dispositif d'estimation de niveau de bruit comprenant un module d'estimation de niveau de bruit local conformément à l'invention, - la figure 2 montre un organigramme de fonctionnement du module d'estimation d'un niveau de bruit local pour un bloc, et - la figure 3 représente un schéma montrant les modifications apportées au niveau de bruit global pour obtenir le niveau de bruit local en fonction de seuils prédéterminés. On note : - x, y et t respectivement l'abscisse, l'ordonnée et le temps, - u (x, y ; t) un signal d'entrée courant, - u (x, y ; t-T) un signal d'entrée retardé d'un délai T (T représente un délai d'une trame vidéo par exemple), - d (dx, dy) un vecteur de déplacement, dx désignant le décalage (offset) de déplacement suivant l'axe des abscisses et dy le décalage de déplacement suivant l'axe des ordonnées, - v (x, y ; t) la sortie du filtre, - cyglobal un niveau de bruit estimé pour l'image entière, - local un niveau de bruit estimé pour un bloc de l'image, - DFD (x, y ; t) : DFD (x, y ; t) = u (x, y ; t)-u (x+dx, y+dy ; t-T) appliquée sur un pixel ou sur un bloc de pixels. Le dispositif de filtrage comprend une mémoire 1, prévue pour stocker une image d'entrée (signal u (x, y ; t)) et un estimateur de mouvement par blocs 2, prévu pour produire par blocs des vecteurs de mouvement d (dx, dy) et des DFDs, à partir d'une image d'entrée courante (signal u (x, y ; t)) et d'une image d'entrée stockée antérieurement (signal u (x, y ; t-T)) dans la mémoire 1. Le dispositif est également pourvu d'un module 3 d'estimation d'un niveau de bruit global à l'image en fonction des DFDs moyenne (DFDmoy) et minimale (DFDmin). Il comprend également une mémoire 5 pour mémoriser les DFDs locales de l'instant t. La DFD moyenne est calculée après avoir parcouru toutes les DFDs locales de la trame. Il comprend également un module d'estimation 4 d'un niveau de bruit local pour un bloc en fonction du niveau de bruit crglobal calculé par le module 3 d'estimation d'un niveau de bruit global à l'image, de la DFD locale (DFD (x, y ; t)) et de la DFD moyenne (DFDmoy). Le fonctionnement de ce module est détaillé dans la figure 2. La DFD moyenne (DFDmoy) et la DFD minimale (DFDmin) sont calculées au préalable, avant de calculer la DFD locale (DFD (x, y ; t)). Il comprend enfin un module 6 de réduction du niveau de bruit compensé et/ou adapté en mouvement, en fonction du vecteur de déplacement d (dx, dy) et du niveau de bruit local local (x, y ; t). Le module 6 produit en sortie l'image filtrée courante v (x, y ; t). Le module 6 peut être un module de filtrage appliqué à la réduction du bruit ou plus généralement un module de traitement d'images. La DFD minimale (DFDmin) en sortie du module d'estimation de mouvement par bloc 2 peut être calculée de différentes manières. Selon un premier mode de réalisation, elle peut représenter la DFD minimale de la trame. Cette solution est simple et peu onéreuse mais peu précise car il suffit que l'une des DFDs soit faible pour avoir une DFD minimale faible. Cela donne donc : avec - resX (respectivement resY) la résolution horizontale (respectivement verticale), - block (respectivement blocY) la taille du bloc horizontale en général de taille 16 pixels (respectivement verticale en général de taille 8 pixels). Selon un second mode de réalisation, la DFDmin représente un pourcentage des DFDs minimales de la trame. Dans ce mode de réalisation, la DFDmin est donc calculée à partir d'un ensemble de valeurs et ne représente donc pas une seule valeur comme dans le mode précédent. Cette solution est donc plus précise mais plus complexe car elle nécessite de classer toutes les DFDs de la trame. La DFD moyenne, DFDmoy. représente la moyenne de toutes les DFDs de la trame. La DFD moyenne est donc la somme des DFD locales sur le nombre de DFDs dans la trame. Cela donne donc : A titre d'exemple illustratif, pour une trame de résolution 720*288 et des blocs de 16*8, il y a (720/16) * (288/8) DFDs soit 1620 DFDs. Dans ce cas, la moyenne est effectuée sur ces 1620 DFDs et est affectée à la DFD moyenne. Ce module reçoit en entrée la DFD locale du bloc en cours de traitement DFD (x, y ; t), la DFD moyenne DFDmoy ainsi que le niveau de bruit global global Ce module réalise une adaptation locale du niveau de bruit en fonction de la DFD moyenne DFDmoy et de la DFD locale DFD (x, y ; t) du bloc courant. Cette adaptation est contrôlée d'une part par la différence (ERREURDFD) entre la DFD moyenne et la DFD locale et d'autre part par le rapport (RapportDFD) de cette différence sur la DFD moyenne. La différence entre la DFD moyenne et la DFD locale détermine le sens de variation de l'adaptation ; en effet, lorsque l'erreur est positive (signifiant que la DFD locale est inférieure à la DFD moyenne) le niveau de bruit doit être diminué. Par contre, lorsque l'erreur est négative, elle provoque une augmentation du niveau de bruit. Le rapport de la différence entre la DFD moyenne et la DFD locale sur la DFD moyenne qualifie, sous forme normalisée par rapport à la DFD moyenne, l'erreur commise. Afin de ne pas faire une correction binaire qui créerait des artefacts visibles sur l'image, une solution est de faire une correction en fonction de seuils. La plage de variation de l'erreur ERREURDFD est donc découpée en plusieurs zones. L'exemple, donné à titre illustratif dans la suite, définit deux seuils découpant cette plage en quatre zones, comme représenté sur la figure 3. - Lorsque l'erreur est comprise entre 0 et Seuil1 (SI), la DFD locale est inférieure à la DFD moyenne. Le niveau de bruit doit donc être diminué ; pour une erreur proche de 0, la diminution est faible et pour une erreur proche de Seuil1 la diminution est maximale sur cet intervalle, comme indiqué lors de l'étape E9 de la figure 2. - Lorsque l'erreur est comprise entre 0 et Seuil2 (S2), la DFD locale est supérieure à la DFD moyenne. Le niveau de bruit doit donc être augmenté ; pour une erreur proche de 0, l'augmentation est faible et pour une erreur proche de Seuil2 (S2) l'augmentation est maximale sur cet intervalle comme indiqué lors de l'étape E4 de la figure 2. - Lorsque l'erreur est supérieure à Seuil1 (S1), la diminution du niveau de bruit est limitée à une valeur maximale en fonction de paramètres comme indiqué lors de l'étape E10 de la figure 2. - Lorsque l'erreur est inférieure à Seuil2 (S2), la DFD locale est supérieure à la DFD moyenne, le niveau de bruit local doit donc être augmenté. Pour réaliser l'adaptation locale du niveau de bruit, on considère 2 cas : - en présence d'un mouvement fort, on fait l'hypothèse que l'estimateur de mouvement a effectué une mauvaise compensation. La DFD locale représente donc un mélange de bruit et de signal utile. L'augmentation du niveau de bruit locale est alors limitée par une valeur maximale comme indiqué lors de l'étape E6 de la figure 2. - dans le cas contraire, c'est à dire en présence d'un faible mouvement, on considère que l'estimateur de mouvement est très fiable. La compensation de mouvement est jugée de bonne qualité. Par conséquent, la DFD locale représente du bruit. L'augmentation du niveau de bruit local n'est donc pas limitée comme indiqué lors de l'étape E7 de la figure 2. Des coefficients de pondération ss1 et dz permettent d'accentuer plus ou moins l'effet de l'ajustement local. Différentes manières de faire cette pondération sont possibles et l'exemple de réalisation proposé n'est donné qu'à titre illustratif. Nous allons maintenant décrire la figure 2 décrivant un mode de réalisation du module 4 d'estimation d'un niveau de bruit local pour un bloc. Le module 4 reçoit en entrée la DFD moyenne DFDmoy et la DFD locale (DFD (x, y ; t)) et calcule lors de l'étape E1 la différence entre la DFD moyenne et la DFD locale appe ! ée ERREURDFD. Au cours de l'étape E2, il effectue un test de comparaison pour déterminer si cette différence est positive ou négative. Si cette différence est négative, il passe à l'étape E3 de comparaison de cette différence avec le seuil S2. Si ERREUR~DFD est supérieure ou égale au seuil S2, alors il passe à l'étape E4. Au cours de l'étape E4, le niveau de bruit local est augmenté. A titre illustratif, l'augmentation peut être effectuée en utilisant la formule suivante : Glocal=cyglobal-Rapport-DFDxP2 Si ERREUR~DFD est inférieure à S2, alors il passe à l'étape E5. Au cours de l'étape E5, il effectue un test et compare la valeur du vecteur de déplacement d (x, y) à un seuil de mouvement S3. Si d (x, y) est supérieure à S3, alors il passe à l'étape E7. Au cours de l'étape E7, le niveau de bruit local est augmenté et seuillé. A titre illustratif, ceci peut-être fait de la façon suivante : OElocal=cîglobal + P2/2 Si d (x, y) est inférieur ou égal à S3, alors il passe à l'étape E6 au cours de laquelle le niveau de bruit local est augmenté. A titre illustratif, ceci peut- être fait de la façon suivante : Si, au cours de l'étape E2, ERREUR~DFD est négative, alors il passe à l'étape E8 de comparaison de cette différence avec le seuil S1. Si ERREURDFD est inférieure ou égale au seuil S1, alors il passe à l'étape E9. Au cours de l'étape E9, le niveau de bruit local est diminué. A titre illustratif, la diminution peut être effectuée en utilisant la formule suivante : #local=#global - Rapport~DFD#ss 1 Si ERREURDFD est supérieure au seuil S1, alors il passe à l'étape E10. Au cours de l'étape E10, le niveau de bruit local est diminué et un seuillage effectué selon la formule suivante donnée à titre illustratif #local=#global - ss1/2 Ensuite il passe à l'étape E11 au cours de laquelle la valeur du niveau de bruit local est lissée en imposant une valeur minimale amin et une valeur maximale amax. La valeur finale du niveau de bruit obtenue est soit la valeur obtenue lors des étapes E4, E6, E7, E9 ou E10 ou amax si cette valeur est supérieure à amax ou amin si cette valeur est inférieure à amin- Dans certains modes de réalisation particuliers, à titre illustratif, on pourra prendre les valeurs suivantes pour les différents seuils. Pour faire apparaître une symétrie, on pourra prendre 81 =1821 et ss2=ss1. 81 = 0. 5xDFD~moyenne, S2 =-0. 5xDFD~moyenne, ss2=ss1= 6, (on assimile ces coefficients à ss) S3 = 20. amin = 3.5 amax = 15.5 REVENDICATIONS 1. Dispositif d'estimation du niveau de bruit d'images vidéo avant codage comprenant : - des moyens de stockage (1) d'au moins une image d'entrée u (x, y ; t) - un module (2) d'estimation de mouvement par blocs, prévu pour produire par blocs des premières grandeurs représentatives de variations d'images compensées en mouvement (DFD), à partir d'une image d'entrée courante (u (x, y ; t)) et d'au moins une image d'entrée stockée antérieurement (u (x, y ; t-T)) dans lesdits moyens de stockage (1), - des moyens (3) d'estimation d'un niveau de bruit global (aglobal) pour chaque image en fonction d'au moins certaines desdites premières grandeurs représentatives de variations d'images compensées en mouvement (DFD), caractérisé en ce que ledit dispositif comprend - des moyens (4) d'estimation d'un niveau de bruit local (6local) pour chaque bloc de l'image en fonction de secondes grandeurs représentatives de variations d'images compensées en mouvement (DFD) et du niveau de bruit global (global). 2. Dispositif selon la revendication 1 caractérisé en ce que lesdites certaines premières grandeurs représentatives de variations d'images compensées en mouvement (DFD) pour déterminer ledit niveau de bruit global (oglobal) sont une grandeur minimale (DFDmin) et une grandeur moyenne (DFDmoy) calculées par le module (4) d'estimation de mouvement par bloc. 3. Dispositif selon la revendication 2 caractérisé en ce que lesdites secondes grandeurs représentatives de variations d'images compensées en mouvement (DFD) pour déterminer ledit niveau de bruit local (local) sont une grandeur locale (DFD (x, y ; t)) et une grandeur moyenne (DFDmoy) calculées par le module (2) d'estimation de mouvement par bloc. 4. Dispositif selon l'une des revendications 1 ou 2 caractérisé en ce que les moyens (4) d'estimation d'un niveau de bruit local (local) sont prévus pour déterminer le niveau de bruit local en fonction de la différence (ERREURDFD) entre la DFD moyenne (DFDmoy) et la DFD locale (DFD (x, y ; t)) et en fonction du rapport de ladite différence sur la DFD moyenne (DFDmoy). 5. Dispositif selon la revendication 4 caractérisé en ce que le niveau de bruit local (6local) est ajusté différemment en fonction de la comparaison entre les valeurs de ladite différence (ERREURDFD) et au moins une valeur de seuil prédéterminée (S1, S2, S3). 6. Système de réduction du bruit caractérisé en ce qu'il comporte un dispositif d'estimation du niveau de bruit selon l'une des revendications 1 à 5. 7. Système de codage comprenant un dispositif d'estimation du niveau de bruit selon l'une des revendications 1 à 5. 8. Procédé d'estimation du niveau de bruit d'images vidéo avant codage dans lequel : - on stocke au moins une image d'entrée courante (u (x, y ; t)), on effectue une estimation de mouvement par blocs de façon à produire par blocs des premières grandeurs représentatives de variations d'images compensées en mouvement (DFD), à partir d'une image d'entrée courante (u (x, y ; t)) et d'au moins une image d'entrée stockée antérieurement (u (x, y ; t-T)) dans lesdits moyens de stockage (1), on détermine un niveau de bruit global (global) pour chaque image (u (x, y ; t)) en fonction d'au moins certaines desdites grandeurs représentatives de variations d'images compensées en mouvement (DFD), caractérisé en ce que - on détermine (E4, E6, E7, E9, E10, E11) un niveau de bruit local (6local) pour chaque bloc de l'image en fonction de secondes grandeurs représentatives de variations d'images compensées en mouvement (DFD) et du niveau de bruit global (6global)