FR 2943201 A1 20100917 FR 0951568 A 20090312 PARAMETRAGE DU GRAIN D'IMAGE L'invention se rapporte à l'encodage d'images et plus particulièrement au paramétrage de grain d'image. Le grain est un signal aléatoire de faible amplitude relativement au reste du signal d'image ou vidéo. Contrairement au bruit, le grain ne constitue pas un artefact, mais fait partie intégrante de l'image. Le grain peut être dû à la pellicule utilisée lors de la prise d'images, ou bien encore être artificiellement rajouté afin de procurer aux utilisateurs les mêmes sensations qu'une image obtenue lors d'un tournage effectué avec une pellicule. Néanmoins, les images et les vidéos peuvent faire l'objet de compressions numériques risquant de dégrader le signal de grain, ce qui nuit à l'aspect visuel. En effet, le signal de grain étant peu corrélé et de relativement faible amplitude, les étapes de quantification mises en oeuvre par la plupart des algorithmes de compression conduisent à une dégradation du signal de grain, en particulier lorsque le débit d'encodage vidéo est bas. Or, outre le fait qu'il contribue à l'aspect visuel de l'image, le grain peut permettre de dissimuler certains artefacts générés du fait de la compression. Le standard de compression H264 (ITU-T Rec H.264 1 ISO/IEC 14496- 10 Advanced Video Coding, annexe D.2.20) définit plusieurs types de modélisation du grain. Ces modélisations permettent d'ajouter à un signal vidéo compressé des paramètres modélisant le grain, de façon à rendre possible lors du décodage la génération de grain à partir de ces paramètres. Parmi les modélisations définies par ce standard, on peut citer le modèle de grain fréquentiel additif. Selon ce modèle, plusieurs classes correspondant chacune à des intervalles de valeurs de pixel sont définies. Pour une image donnée, et pour chaque classe, on estime, à partir des macroblocs de pixels appartenant à cette classe, un jeu de 5 ou 6 paramètres modélisant le grain de cette image dans la classe considérée. Les procédés connus mettent en oeuvre des classes correspondant à des intervalles de valeurs de pixels prédéterminées. Une image globalement homogène, avec relativement peu de contrastes, risque de conduire à une répartition des paramètres modélisant le grain sur un nombre relativement faible de classes. Il existe un besoin pour une répartition des jeux de paramètres qui soit plus dynamique. Selon un premier aspect, il est proposé un procédé de modélisation du grain d'une image pour la compression de ladite image. On prévoit un nombre de classes d'intensité, chaque classe d'intensité correspondant à un intervalle de valeurs de pixels déterminé. Pour chaque classe d'intensité : - on recherche, à partir des valeurs de pixels de macroblocs de l'image, des macroblocs à affecter à cette classe d'intensité, - on estime des composantes fréquentielles du grain pour la classe d'intensité, à partir de valeurs de pixels des macroblocs affectés à la classe d'intensité. Ces valeurs de pixels peuvent provenir d'une image de grain obtenue par soustraction pixel par pixel d'une image filtrée à l'image source, ou bien provenir d'une autre image. Puis on regroupe les classes d'intensité en fonction des composantes fréquentielles estimées, de façon à limiter le nombre de classes d'intensité auxquelles est affecté au moins un macrobloc. Pour chacune de ces classes d'intensité ainsi regroupées, des composantes fréquentielles sont estimées, et un jeu de valeurs de paramètres de modélisation du grain est calculé en fonction de ces composantes fréquentielles correspondant à cette classe. On peut prévoir un nombre initial de classes qui soit relativement élevé. Puis on regroupe ces classes en fonction des composantes fréquentielles obtenues, les jeux de paramètres étant estimés pour chacune des classes ainsi regroupées. Aussi l'intervalle de valeurs de pixels correspondant à une classe regroupée est-il susceptible de varier selon l'image qui est traitée. Les paramètres modélisant le grain sont ainsi répartis de façon plus dynamique et adaptée que dans l'art antérieur. L'image peut être partitionnée en macroblocs, ou bien les macroblocs peuvent se recouvrir les uns les autres. On peut même prévoir des fenêtres glissantes, de sorte que le nombre de macroblocs est à peu prés égal au nombre de pixels de l'image. La taille des macroblocs peut être de 8x8, 16x16 pixels, ou autre. Ce procédé est mis en oeuvre à des fins de compression de l'image. Cette compression de l'image peut intervenir de manière isolée (compression d'image, par exemple pour obtenir des images au format JPEG, de l'anglais � Joint Photographic Experts Group �). Alternativement, la compression d'image peut être effectuée en utilisant des images précédentes et/ou suivantes d'une séquence vidéo (compression vidéo). Les pixels peuvent comprendre chacun trois valeurs, par exemple des valeurs de composantes RGB (de l'anglais � Red Green Blue �), des valeurs de composantes YUV, ou autre. Pour regrouper les classes d'intensité, on peut comparer une à une des composantes fréquentielles d'une première classe d'intensité avec des composantes fréquentielles correspondantes d'une deuxième classe d'intensité. Ainsi, la décision de regrouper ou non des classes d'intensité est effectuée en fonction des résultats des comparaisons fréquence par fréquence, permettant ainsi d'éviter le risque d'erreur associé à une prise de décision qui serait effectuée seulement à partir de paramètres globaux. On peut prévoir de prendre la décision de regrouper ou non des classes d'intensité en fonction de résultats de comparaison de paramètres estimés par classe d'intensité. Ces paramètres peuvent par exemple comporter des fréquences de coupure et un écart-type obtenus eux-mêmes à partir des composantes fréquentielles. Les calculs effectués avant la prise de décision sont ainsi plus rapides, mais on risque de biaiser la décision du fait de l'erreur de quantification qui intervient lors de l'obtention de ces paramètres. Ainsi, la décision de regrouper ou non des classes d'intensité est effectuée en prenant en compte des résultats de comparaisons de composantes fréquentielles et/ou des résultats de comparaisons de paramètres estimés par classe d'intensité. Par résultat de comparaison, on entend aussi bien une valeur de différence, une valeur d'un ratio, une valeur booléenne, une valeur de somme des différences absolues, ou autre. On peut prévoir : - des regroupements naturels, effectués sans objectif de nombre de classes d'intensité à atteindre, c'est-à-dire que les classes d'intensité sont regroupées en un nombre a priori indéterminé de classes d'intensité, et/ou - des regroupements forcés, effectués jusqu'à atteindre un objectif de classes d'intensité. Avantageusement, on effectue dans un premier temps des regroupements. Puis, si le nombre de classes ainsi regroupées dépasse un certain seuil, on procède à des regroupements forcés, et ce jusqu'à atteindre ce seuil. Ainsi, les regroupements sont par exemple d'abord effectués librement, sans la contrainte d'un objectif à atteindre, de sorte que ces regroupements sont avant tout fonction des valeurs des composantes fréquentielles des macroblocs des classes. Les regroupements forcés ne sont effectués que si ces regroupements naturels ne sont pas suffisants. Avantageusement, pour chaque classe d'intensité, la recherche des macroblocs à affecter à cette classe d'intensité est fonction, outre des valeurs de pixels de ce macrobloc, de résultats d'une détection de contours et/ou de bandes noires. Par exemple, si un macrobloc correspond à une zone de bande noire ou à une zone de contour, ce macrobloc n'est affecté à aucune classe d'intensité. Selon un autre exemple, si le nombre de pixels d'un macrobloc qui appartiennent à une zone de bande noire ou à une zone de contour dépasse un seuil, ce macrobloc n'est affecté à aucune classe d'intensité. Les bandes noires n'ont en effet pas de grain, et les zones de contours sont en général inexploitables, car l'extraction du grain est relativement peu fiable sur les contours. Ainsi, en refusant de prendre en compte les pixels d'une zone de contours ou d'une bande noire, on limite l'erreur de l'estimation des paramètres de grain. Avantageusement, les intervalles de valeurs de pixels correspondant aux classes d'intensité se recoupent les uns les autres. Ainsi, les macroblocs sont typiquement affectés chacun à plusieurs classes d'intensité, permettant ainsi une estimation des composantes fréquentielles relativement continue d'une classe à l'autre. Un tel chevauchement des classes d'intensité peut ainsi permettre un regroupement des intervalles plus pertinent que si chaque macrobloc ne pouvait être affecté qu'au plus à une seule classe. Bien entendu, on peut alternativement prévoir une partition des valeurs possibles de pixels en un nombre prédéfini d'intervalles ne se recoupant pas les uns les autres. 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 dispositif de modélisation de grain d'image, ce dernier dispositif étant par exemple intégré dans ou en communication avec un système de compression d'image. Selon un autre aspect, il est proposé un dispositif de modélisation du grain d'une image, comprenant : - une mémoire pour stocker un nombre prédéterminé d'identifiants de classes d'intensité et, pour chacune de ces classes d'intensité, une indication d'un intervalle de valeurs de pixels déterminé, - des moyens de sélection aptes, pour chaque classe d'intensité, à rechercher à partir des valeurs de pixels de macroblocs de l'image, des macroblocs à affecter à cette classe d'intensité, - un module d'analyse du grain apte, pour chaque classe d'intensité, à estimer des composantes fréquentielles du grain pour cette classe d'intensité, à partir de valeurs de pixels des macroblocs affectés à cette classe d'intensité, - un module de regroupement agencé pour regrouper les classes d'intensité en fonction des composantes fréquentielles estimées par le module d'analyse du grain, de façon à limiter le nombre de classes d'intensité auxquelles est affecté au moins un macrobloc, et - des moyens de traitement aptes, pour chacune de ces classes d'intensité ainsi regroupées, à estimer des composantes fréquentielles, et à calculer en fonction de ces composantes fréquentielles correspondant à cette classe un jeu de valeurs de paramètres de modélisation du grain. Ce dispositif peut permettre de mettre en oeuvre le procédé décrit ci-dessus. Les divers moyens décrits, à savoir la mémoire, les moyens de sélection et de traitement, les modules d'analyse et de regroupement, peuvent être intégrés en un ou plusieurs processeurs, par exemple des processeurs de traitement de signal numérique ou DSP (de l'anglais � Digital Signal Processor �). En outre, il est proposé un système de compression d'image comportant le dispositif de modélisation de grain décrit ci-dessus. Selon encore un autre aspect, il est proposé un système de compression d'une séquence vidéo comprenant un dispositif de modélisation du grain tel que décrit ci-dessus, pour modéliser le grain d'au moins une partie des images de la séquence vidéo en des jeux respectifs de valeurs de paramètres. D'autres particularités et avantages de la présente invention apparaîtront dans la description ci-après. La figure 1, montre un exemple de système de compression vidéo selon un mode de réalisation de l'invention. La figure 2A est un algorithme d'un exemple de procédé selon un mode de réalisation de l'invention. La figure 2B est un algorithme reprenant de façon détaillée l'étape 260 de la figure 2A. La figure 3 montre un exemple d'ensemble de composantes fréquentielles. La figure 4 illustre un procédé d'estimation de paramètres à partir de composantes fréquentielles. La figure 5 montre un exemple de système de compression vidéo 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, est représenté un système 100 de compression vidéo comportant : - un module de filtrage 110 agencé pour retirer un signal de bruit et/ou de grain d'une séquence d'images vidéo sources Ims(t), de façon à obtenir une séquence d'images filtrées ImF(t). Le filtrage mis en oeuvre par ce module 110 peut être spatial, temporel, spatio-temporel, bilatéral, ou autre. Ce module de filtrage peut mettre en oeuvre un procédé de filtrage connu de l'art antérieur. - Un dispositif de modélisation du grain 120, recevant en entrée la séquence d'images sources Ims(t) et la séquence d'images filtrées ImF(t). Ce dispositif de modélisation 120 permet d'estimer des paramètres de grain pour chacune des images de la séquence vidéo. - Un module d'encodage 130 pour encoder la séquence d'images filtrées ImF(t) en une séquence vidéo compressée, ce module d'encodage étant agencé pour inclure dans la séquence vidéo compressée les paramètres de grain reçus du dispositif 120. Le module d'encodage peut être agencé de façon conforme au standard de compression H264 (ITUT Rec H.264 1 ISO/IEC 14496-10 Advanced Video Coding). La séquence vidéo compressée comporte des images ImENC(t) destinées à être envoyées sur un canal, ou bien stockées sur un support. Cette séquence compressée est destinée à subir un décodage lors de sa 25 lecture, par un module de décodage non représenté. Ce décodage permet de régénérer d'une part la version filtrée de la vidéo, et d'autre part le grain de l'image. Cette régénération du grain est effectuée à partir des paramètres de grain obtenus par le dispositif 120. Le module de décodage est agencé de façon conforme au standard H264, et en particulier à l'annexe D.2.20 de ce 30 standard pour la génération de grain. Le dispositif de modélisation du grain 120 est agencé pour traiter chaque couple d'image source Ims(t) / image filtrée ImF(t) de manière indépendante des images précédentes ou suivantes de la séquence vidéo. 10 15 20 Le dispositif de modélisation du grain 120 comprend : - un module 121 de détection de contours et de bandes noires, prenant en entrée la version filtrée de l'image ImF(t). ce module permet d'obtenir pour chaque image ImF(t) un masque binaire M (ou bitmap en anglais) indiquant les zones de contours et de bandes noires. - un module de corrélation croisée 122 recevant en entrée une image bruitée Ims(t) et l'image filtrée ImF(t) correspondante. Ce module effectue une soustraction valeur de pixel par valeur de pixel de l'image filtrée à l'image bruitée afin d'obtenir une image de bruit, puis calcule des corrélations entre plans de pixels afin d'obtenir pour chaque pixel de l'image de bruit trois valeurs dé-corrélées les unes des autres. - un module de calcul 123, intégrant une mémoire, des moyens de sélection et un module d'analyse du grain, permettant d'obtenir un nombre de tableaux 8x8 de composantes fréquentielles du grain, et - un module de post-analyse 124, intégrant un module de regroupement pour regrouper ces tableaux en un nombre limité de tableaux de composantes fréquentielles, et des moyens de traitement aptes à, pour chaque tableau ainsi regroupé, calculer des paramètres de modélisation du grain. Les figures 2A et 2B montrent un exemple d'algorithme susceptible d'être mis en oeuvre par un dispositif de modélisation de grain d'image, par exemple le dispositif 120. Est d'abord mise en oeuvre une étape 250 de détection de contours, par le module 121 de la figure 1. Par exemple, lors de cette étape, on initialise à zéro l'ensemble des bits d'un masque de contour de luminosité, chaque bit correspondant à un pixel de l'image. Puis on calcule pour chaque pixel une nouvelle valeur de luminosité (plan Y) selon : Py (i, j) = Max{PFF (i + x, j + y)}{x,y _1,0,11 ù Min{PFF (i + x, j + y)}{x,y _1,o,i} où PFy(i,j) désigne la valeur de luminosité du pixel situé à la ième ligne et jème colonne de l'image filtrée ImF(t). Si cette nouvelle valeur Py;(i, j) est supérieure à un seuil, par exemple 20, alors le bit du correspondant masque de contour est mis à un 1. On peut de la même façon obtenir des masques de contours de chroma, à partir respectivement des valeurs de pixels U, V. Néanmoins, des masques de contours de chroma obtenus à partir des valeurs de pixels U, V risquent d'être d'une qualité inférieure à la qualité du masque de contours Y. Aussi peut-on prévoir d'obtenir les masques de contours U et V à partir du masque de contours Y plutôt qu'à partir des valeurs de pixels U, V. Comme la résolution des plans de chroma U et V peut différer de celle du plan de luminosité Y, on peut être amené à redimensionner le masque de contours Y pour créer les masques de contours U et V. Alternativement, ce module 121 peut mettre en oeuvre un algorithme de détection de contours connu de l'art antérieur. En référence à la figure 2A, une étape de détection de zones de bandes noires 251 est effectuée. Les trois plans de valeurs de pixels sont pris en compte. Les valeurs Y, U, V étant susceptibles de prendre des valeurs entre 0 et 255, un pixel est considéré comme noir si - sa valeur de luminosité Y est inférieure à 25, - sa valeur de chroma U est comprise entre 120 et 136, et si - sa valeur de chroma V est comprise entre 122 et 138. Une ligne ou une colonne est considérée comme noire si tous les pixels dont elle est constituée sont considérés comme noirs. La bande noire gauche se termine à la première colonne non noire, en partant de la gauche de l'image. Les bandes noires haute, droite et basse sont définies de manière similaire. On peut de cette façon détecter des bandes noires introduites lors de conversions d'un format d'image vers un autre, par exemple 16/9 et 4/3. Suit une étape de corrélation croisée 252, au cours de laquelle est calculée la corrélation entre un plan de grain Y et un plan de grain U (respectivement un plan de grain en V), la composante corrélée ainsi calculée étant ensuite soustraite de ce plan U (respectivement plan V). Cette étape peut être mise en oeuvre par le module 122 sur la figure 1. Chaque plan de grain Y, U, V est calculé par soustraction valeur de pixel par valeur de pixel de l'image filtrée ImF(t) à l'image source Ims(t) : Gy (i, j) = PY (i, j) - PFY (i, j) GU(i,J)=PU (i, j)ùPFU(i, j) Gv(i,J)=Pv(i,j)ùPFv(i,J) où Py(i,j), Pu(i,j), Pv(i,j) désignent les valeurs de pixel Y, U, V respectivement, du pixel (i,j) de l'image source Ims(t), PFy(i,j), PFu(i,j), PFv(i,j) désignent les valeurs de pixel Y, U, V respectivement, du pixel (i,j) de l'image filtrée ImF(t), et Gy(i,j), Gu(i,j), Gv(i,j) désignent les valeurs de pixel Y, U, V respectivement, du pixel (i,j) de l'image de grain. Pour calculer la corrélation entre le plan de grain de luminosité Y et le plan de grain de chroma U, on peut, en particulier si la résolution du plan de grain de chroma U diffère de la résolution du plan de grain de luminosité Y, redimensionner le plan de grain de luminosité en un plan G'y. Par exemple, pour chaque bloc de 2x2 pixels, on calcule une valeur moyenne, cette valeur moyenne étant affecté à un pixel de l'image redimensionnée et correspondant à ce bloc. Puis on calcule une valeur de corrélation, en excluant les pixels correspondant à des zones de contours ou de bandes noires. On peut à cet effet utiliser le masque binaire M reçu du module de détection de contours et bandes noires 121 sur la figure 1. La valeur de corrélation est calculée selon, pour le plan de chroma U : SumXY(GY,Gy) = Gy (1, j).GY(1,j ) M (i, j)=0 SumXY(G . , GU) = L Gy �i, j).GU (i, j) et M (i, j)=0 Corr(GY , Gu ) = SumXY(GY 'Gu) SumXY(GY, GY ) Ensuite, on soustrait au plan de chroma U la composante corrélée: 30 Gu �i, j) = Gu (i, j) - G; (i, j).Corr (GY ,Gu) On obtient ainsi un plan de grain de chroma U décorrélé G'u. En procédant de la même façon entre le plan de grain de chroma Gu et le plan de grain de chroma Gv, sans redimensionnement cette fois, selon : Corr (GU , Gv) = SummY(GU, Gv) , et SumXY(GU, GU ) Gv (i, j) = Gv (i, j) ù GU (i, j).Corr(GU, Gv) , on obtient le plan de grain décorrélé G'v. On a ainsi obtenu trois plans de grains dé-corrélés G'y, G'u, G'v. Les valeurs de corrélation Corr(GY,GU) et Corr(Gu,Gv) sont conservées en tant que paramètre de modélisation du grain pour les plans de chroma U et V. On notera qu'avec le procédé décrit ci-dessus, ces valeurs de corrélation sont identiques pour tous les intervalles de valeurs de pixels U et V. Le module de calcul 123 permet d'obtenir des ensembles de composantes fréquentielles. On prévoit un nombre initial de classes d'intensité, par exemple 31, chaque classe d'intensité correspondant à un intervalle de valeurs de pixels donné, par exemple [0,15], [8,23], [16, 31],..., [240,255]. Des identifiants de ces classes d'intensité et des indications des intervalles de valeurs de pixels correspondants peuvent être conservés dans une mémoire (non représentée sur la figure 1) du module de calcul 123. Pour chaque classe d'intensité, indicée m, on recherche des macroblocs de l'image filtrée ImF(t) à affecter à cette classe d'intensité, selon les valeurs de pixels de cette image filtrée. Puis pour chaque classe d'intensité à laquelle est affectée au moins un macrobloc, on compte le nombre de macroblocs N(m) affectés à cette classe et on estime un ensemble de composantes fréquentielles {Var(m)(i, j)} 1, i et j indiçant cette fois des fréquences spatiales. Les valeurs N(m) et {Var(m)(i, j)} 1 sont obtenues lors d'une étape 260. Une boucle, avec des étapes classiques d'initialisation, de test et d'incrémentation peut être mise en place afin de parcourir l'ensemble des classes. Cette étape 260 est détaillée sur la figure 2B. L'algorithme de la figure 2B permet ainsi d'obtenir, pour une classe m donnée, des valeurs N(m) et {Var (�(i, j)i,; Tout d'abord, un tableau {Sum(m)(i, j)}i, est initialisé à zéro, lors d'une étape 300. Egalement, un nombre N(m) est initialisé à zéro. Sur la figure 2B, les macroblocs sont indicés k,l et des boucles sont mises en place sur ces deux indices afin de parcourir l'ensemble des blocs, avec des étapes classiques d'initialisation des indices, de test et d'incrémentation. On notera que les macroblocs peuvent se recouvrir les uns les autres. En outre, bien que les figures 2A (à l'exception de l'étape 252) et 2B ne fassent pas mention des plans U, U, V, on notera que le procédé décrit ci-dessous est de fait appliqué à chacun de ces plans Y, U, V. A des fins de simplification, on parlera de valeur de pixel pour désigner l'une des valeurs Y,UouV. Pour classe d'intensité et pour chaque macrobloc MBk,I, on initialise un zéro un compteur d'un nombre de pixels nkl) . Puis on recherche lors d'une étape 310 les pixels de l'image filtrée ImF(t) appartenant à ce macrobloc et dont les valeurs de pixels appartiennent à l'intervalle correspondant à cette classe d'intensité. A chaque pixel ainsi trouvé, le compteur du nombre de pixels n(km,l) est incrémenté, sauf si ce pixel correspond à un bit à 1 sur le masque M obtenu suite à la détection de contours et de bandes noires. Une fois tous les pixels du macrobloc parcourus, on compare lors d'une étape 311 le nombre n(km,l) à un seuil, par exemple 50. Si le nombre n(km,l) est supérieur à ce seuil, le macrobloc est considéré comme affecté à cette classe d'intensité. Sinon, on peut passer au bloc suivant. Ainsi, plus un macrobloc comporte de pixels appartenant à une zone de contours ou de bandes noires, moins il est susceptible d'être affecté à une classe donnée. On notera qu'avec le procédé décrit ci-dessus, pour des macroblocs de 8x8 pixels, au-delà de 16 pixels considérés comme appartenant à une zone de contours ou de bandes noires, le macrobloc n'est affecté à aucune classe d'intensité. Lors de la régénération du grain, pour un macrobloc donné, le module de décodage recherche, à partir des valeurs de pixels de l'image en cours de décodage correspondant à ce macrobloc, à quelle classe appartient ce macrobloc. Puis une régénération de grain est effectuée à partir des paramètres correspondant à la classe ainsi trouvée. La régénération de grain sur un macrobloc correspondant à une zone de contour et/ou de bande noire n'est pas forcément préjudiciable. En effet, le grain régénéré peut être relativement peu visible du fait de la présence d'un contour, et les bandes noires sont généralement suffisamment sombres pour qu'un grain d'amplitude normal soit relativement difficile à détecter. Il est avantageux de ne pas prendre en compte les macroblocs correspondant ainsi à des zones de contours ou de bandes noires pour le calcul des composantes fréquentielles de grain d'une classe d'intensité. En effet, ces macroblocs correspondent à des parties de l'image par définition sans grain (bandes noires) ou avec un grain probablement entaché des artefacts de débruitage qui apparaissent classiquement sur les contours, de sorte qu'une modélisation du grain effectuée à partir de l'image de bruit correspondant à ces macroblocs serait probablement biaisée. Si, suite au test 311, le macrobloc est retenu, on effectue lors d'une étape 312 une transformée en cosinus discrète (DCT, de l'anglais � Discrete Cosine Transform �) sur les pixels de l'une des images de grain G'y, G'u, G'v qui correspondent à ce macrobloc. On rappelle que chaque image de grain est obtenue à partir de l'image source. Cette étape 312 conduit ainsi à obtenir un jeu de composantes fréquentielles de macrobloc. Par exemple, dans le cas d'un macrobloc de 8x8 pixels, l'étape 312 conduit à 8x8 valeurs de composantes fréquentielles de macrobloc DCT(i,j), i et j indiçant des fréquences spatiales. Puis, lors d'une étape 313, on met à jour les 8x8 valeurs du tableau {Sum(m)(i, j)11 en fonction des 8x8 composantes fréquentielles de macrobloc DCT(i,j) respectives obtenues à l'étape 312. Par exemple, chaque composante Sum(m)(i, j) du tableau est incrémentée de la valeur [DCT(i, �12. (m), de façon à accorder à chaque macrobloc un poids fonction du nombre de pixels correspondant réellement à la classe d'intensité m. En outre, lors d'une étape 315, le nombre N(m) est incrémenté du nombre n(m) . Une fois tous les macroblocs parcourus, le nombre N(m) fournit ainsi une indication de la représentativité de la classe d'intensité m en nombre de pixels, plutôt qu'en nombre de macroblocs affectés à cette classe. Lors d'une étape 314, des composantes fréquentielles du grain pour la classe d'intensité m sont calculées à partit des valeurs du tableau {Sum(m) (i, Chaque composante fréquentielle Var(m)(i,j) parmi les 8x8 composantes fréquentielles {Var(m)(i, j)}.1 est calculée suivant : Var(m) (i, j) Sum(m)(i,j) La figure 3 montre un exemple de tableau de 8x8 composantes fréquentielles. Le grain n'ayant théoriquement pas de composante continue, on peut s'attendre à ce que la valeur Var(m)(0,0) soit nulle ou relativement faible. En outre, sur cette figure 3, on a représenté en hachuré les blocs correspondant à des fréquences spatiales entre des fréquences de coupure. On peut en effet déterminer deux fréquences de coupure horizontales à partir des composantes Var(m)(0,1), Var(m)(0,2) ,..., Var(m)(0,7) , et deux fréquences de coupure verticales à partir des composantes Var(m)(1,0), Var(m)(2,0),..., Var(m)(7,0) . Par exemple, pour déterminer les fréquences de coupure horizontales, on calcule les valeurs suivantes : Varmed =1 LVar(m)(0, j) 7 ;_1 Varmax =Max{Var(m)(0, N(m) Var min = Min{Var(m) (09, )Ij=l,...,7 THR = Max Var med, 2 Les fréquences de coupure passe-bas et passe-haut horizontales sont définies comme respectivement les premières et dernières fréquences telles que les composantes fréquentielles correspondantes soient supérieures ou égales à ce seuil THR, comme illustré sur la figure 4. Sur cette figure 4, on a représenté les composantes Var(m)(O, j) en ordonnée, et les indices j en abscisse. Les proportions ne sont pas forcément respectées sur cette figure. Sur l'exemple des figures 3 et 4, les fréquences de coupure passe-bas et passe-haut horizontales sont les fréquences spatiales (0,2) et (0,4) respectivement. On peut procéder de la même façon pour déterminer les fréquences de coupure passe-bas et passe-haut verticales, respectivement (1,0) et (6,0) dans l'exemple des figures 3 et 4. Pour revenir à la figure 2A, une fois les valeurs {Var(m)(i, j)}.1 et N(m) affectées à chacune des classes d'intensité, on procède à des regroupements des classes d'intensité, lors d'une série d'étapes représentées sous la référence 200. Par exemple, on parcoure les classes d'intensité, au moyen d'une boucle avec les étapes classiques d'initialisation, de test et d'incrémentation, afin d'effectuer dans un premier temps des regroupements libres, sans la contrainte d'un objectif de nombre de classes. On procède à un premier test 212, portant sur les nombres N(m) et N(m+') pour deux classes d'intensité voisines. Si l'un de ces nombres est inférieur à un seuil, par exemple 6400, les classes m, et m+1 sont regroupées. On évite ainsi de conserver des classes d'intensité dont la représentativité est trop faible. Pour regrouper deux classes m, m+1, on recalcule 8x8 valeurs de composantes fréquentielles à partir des 8x8 valeurs de composantes fréquentielles de la classe m et des 8x8 valeurs de composantes 15 Var maxù Var min fréquentielles de la classe m+1, lors d'une étape 210. Chaque composante fréquentielle Var(m)(i, j) de la nouvelle classe regroupée, indicée m par convention, est calculée suivant : N(m) N(m+� Var(m)(i,j)=Var(m)(i,j)•N(m) +N(m+� +Var(m+� (i,j)•N(m)+N(m+� Egalement, on additionne les deux nombres N(m) et N('+') pour les deux classes d'intensité à regrouper pour obtenir un nombre pour la classe d'intensité regroupée, lors d'une étape 211. Enfin, on procède à une renumérotation des classes d'intensité, lors d'une étape 213. Typiquement, les classes d'intensité avec un indice inférieur à m conservent cet indice, tandis que les classes d'intensité avec un indice supérieur à (m+1) voient leur indice décrémenté de 1. En outre, le nombre de classes d'intensité MAX est décrémenté de un. Si le test 212 est négatif, on procède à un deuxième test 214, basé sur les valeurs de composantes fréquentielles de chacune des classes m, m+1. Plutôt que de comparer les fréquences de coupure des deux classes d'intensité, on procède à des comparaisons composante fréquentielle par composante fréquentielle, de façon à obtenir un résultat de comparaison relativement précis. Par exemple, on peut effectuer des comparaisons des composantes fréquentielles de la première ligne et de la première colonne, en exceptant la composante (0,0). Par exemple, on calcule la somme, pour i entre 1 et 7, des valeurs absolues des différences Var(m)(i3O) - Var(m+�(i3O) , ainsi que la somme, pour j entre 1 et 7, des valeurs absolues des différences Var(m) (0, j) - Var(m+� (0 j) Si ces deux sommes sont chacune inférieures à un seuil, par exemple 2, alors on regroupe les classes m, m+1, en effectuant les étapes 210, 211, 213 déjà décrites. Sinon, les classes m, m+1 sont considérées comme suffisamment différentes pour ne pas être regroupées. Une fois l'ensemble des classes ainsi parcouru de proche en proche, on compare lors d'une étape 215 le nombre de classes ainsi regroupées à un seuil THR'. Si ce nombre est inférieur ou égal au seuil THR', on calcule pour chaque classe regroupée un jeu de valeurs de paramètres de modélisation du grain, lors d'une étape 220. Une boucle est mise en place afin de parcourir les classes regroupées, avec les étapes classiques d'initialisation, de test et d'incrémentation. Cette étape 220 sera décrite plus loin. Si le seuil THR' est dépassé, on procède alors à des regroupements forcés, lors d'étapes 216, 217, 218. Pour chaque couple de classes voisines m et m'=m+1, on calcule une métrique de distance entre ces classes m, m', lors de l'étape 216. Par exemple, on calcule la valeur suivante : DF(m,m')= HH(m)-HH(m') + LH(m)-LH(m') + HV(m)-HV(m') + LV(m)-LV(m') où HH(m) et LH(m) désignent la valeur de j des fréquences de coupure horizontales passe-haut et passe-bas respectivement, pour la classe m, et HV(m) et LV(m) désignent la valeur de i des fréquences de coupure verticales passe-haut et passe-bas respectivement, pour la classe m. Ces fréquence de coupure peuvent être déterminées en utilisant le procédé décrit en référence aux figures 3 et 4, les composantes fréquentielles étant le cas échéant celles obtenues après regroupement(s) lors d'étape(s) 210. La valeur DF(m,m') représente ainsi une somme des écarts des fréquences de coupure. On calcule en outre : 1N(m) - N(m�) DC(m, m') =1û N(m) + N(m� Les valeurs N(m) et N(m') peuvent le cas échéant être obtenues lors d'étape(s) 211. Cette valeur DC(m,m') donne une indication de la disparité en nombre d'échantillons entre les classes m et m'. On calcule en outre : N(m) + N(m� DM(m,m') _ , NTOTAL étant le nombre de pixels de la totalité NTOTAL des macroblocs de 8x8 pixels de l'image. Cette valeur DM(m,m') donne une indication de la représentativité des classes m, m'. Enfin, on calcule : DE(m,m')= .4,Var(m)(i,f)ùLVar(m~)(i,j) 100 ~; i Cette valeur DE(m,m') représente un écart des variances entre les classes m et m'. La métrique de distance entre les classes est calculée en sommant ces quatre valeurs : D(m,m')=DF(m,m')+DC(m,m')+DM(m,m')+DE(m,m') La métrique de distance est ainsi obtenue à partir de paramètres estimés par classe d'intensité, par exemple les fréquences de coupure, les nombres N(m) et N(m'), ou bien encore les sommes LVar(m)(i, j), LVar(m')(i, j) . Les calculs de l'étape 216 sont ainsi relativement rapides. Lors de l'étape 217, on regroupe les deux classes correspondant à la plus faible valeur de métrique D. Ce regroupement comporte une étape non représentée d'estimation des composantes fréquentielles pour la nouvelle classe ainsi regroupée, similaire à l'étape 210, et une étape non représentée d'estimation du nombre N pour la nouvelle classe, similaire à l'étape 211. Puis les classes sont renumérotées lors d'une étape 218. Tant que le nombre de classes restantes est supérieur au seuil THR', on effectue des regroupements (étapes 216, 217, 218). On peut prévoir de conserver d'une boucle à l'autre les valeurs de métrique D(m,m') qui restent pertinentes afin d'éviter de répéter les calculs. Lorsque le nombre de classes atteint le seuil THR', on peut alors calculer pour chaque classe regroupée un jeu de valeurs de paramètres de modélisation du grain, lors de l'étape 220. Le jeu de valeurs de paramètres peut comporter : - Des valeurs de fréquences de coupure passe-bas et passe-haut, horizontales et verticales, soit quatre valeurs. Ces valeurs peuvent être déterminées en utilisant le procédé décrit en référence aux figures 3 et 4, les composantes 18 fréquentielles étant le cas échéant celles obtenues après regroupement lors d'étape(s) 210 et/ou similaires. - Un écart-type du grain, calculé suivant : L Var(`" (i, j) ET(� = (_,;),-(o,o) , les composantes fréquentielles LH(m) * LV (m) ù HH(m) * HV (m) Var(m)(i, j) et les fréquences de coupure associées à cette classe m étant le cas échéant obtenues après regroupement lors d'étape(s) 210 et/ou similaires. Le jeu de paramètres peut en outre comporter, en particulier pour les plans de chroma U, V, une sixième valeur, à savoir une valeur de corrélation Corr(GY,GU) (respectivement Corr(Gu,GV) ) entre le plan de chroma U (respectivement V) et le plan de luminosité Y (respectivement U). Les jeux de paramètres obtenus pour les plans Y, U, V, et pour chacune des classes regroupées, sont transmises en vue de l'encodage, par exemple au module 130 de la figure 1. On peut en outre prévoir de transmettre à ce module une indication, pour chaque classe d'intensité regroupée, de l'intervalle de valeurs de pixels correspondant à cette classe d'intensité. La figure 5 montre un exemple de système de compression vidéo, par exemple un serveur 400. Ce serveur 400 comporte une mémoire 401 permettant de stocker un nombre prédéterminé d'identifiants de classes d'intensité et, pour chacune de ces classes d'intensité, une indication d'un intervalle de valeurs de pixels déterminé. Le serveur 400 comporte en outre un processeur intégrant les modules de filtrage, d'analyse et d'encodage décrits en référence à la figure 1. Le serveur 400 est apte à communiquer avec un réseau 500, de type Internet, de sorte que la vidéo encodée peut être transmise sur le réseau. REVENDICATIONS1. Procédé de modélisation du grain d'une image pour la compression de ladite image, comprenant: prévoir un nombre de classes d'intensité, chaque classe d'intensité correspondant à un intervalle (lm) de valeurs de pixels déterminé, 10 pour chaque classe d'intensité : rechercher (310, 311), à partir des valeurs de pixels de macroblocs de l'image, des macroblocs à affecter à ladite classe d'intensité, estimer (312, 313, 314) des composantes fréquentielles du grain (Var(m)(i, j)) pour ladite classe d'intensité, à partir des valeurs de pixels 15 des macroblocs affectés à ladite classe d'intensité, regrouper (200) les classes d'intensité en fonction des composantes fréquentielles estimées, de façon à limiter le nombre de classes d'intensité auxquelles est affecté au moins un macrobloc, pour chacune des dites classes d'intensité ainsi regroupées, estimer 20 (210) des composantes fréquentielles pour ladite classe, et calculer (220) en fonction desdites composantes fréquentielles correspondant à ladite classe un jeu de valeurs de paramètres de modélisation du grain, ledit jeu de valeurs étant destiné à être encodé lors de la compression de l'image. 25 2. Procédé selon la revendication 1, dans lequel, pour regrouper les classes d'intensité, on compare (214) une à une des composantes fréquentielles (Var(m)(i3O),Var(m)(0, j)) d'une première classe d'intensité avec des composantes fréquentielles correspondantes (Var(m+�(i3O),Var(m+�(0 j)) d'une deuxième classe d'intensité. 30 3. Procédé selon l'une des revendications 1 à 2, comprenantregrouper (212, 214, 210,211, 213) dans un premier temps les classes d'intensité, si le nombre de classes d'intensité ainsi regroupées dépasse un certain seuil, procéder à des regroupages supplémentaires jusqu'à atteindre ledit seuil (216, 217, 218, 215). 4. Procédé selon l'une des revendications 1 à 3, comprenant en outre : effectuer une détection de contours de l'image (250), et dans lequel pour chaque classe d'intensité, la recherche (310) des macroblocs à affecter à ladite classe d'intensité est fonction en outre des résultats de ladite détection de contours. 5. Procédé selon l'une des revendications 1 à 4, comprenant en outre : effectuer une détection des bandes noires de l'image (251), et dans lequel pour chaque classe d'intensité, la recherche (310) des macroblocs à affecter à ladite classe d'intensité est fonction en outre des résultats de ladite détection de bandes noires. 6. Procédé selon l'une des revendications 1 à 5, dans lequel les intervalles de valeurs de pixels correspondant aux classes d'intensité se recoupent les uns les autres. 7. Procédé selon l'une des revendications 1 à 6, dans lequel l'image à compresser est dite image source, le procédé comprenant en outre soustraire valeur de pixel par valeur de pixel une image filtrée (ImF(t)) à l'image source (Ims(t) ), de façon à obtenir une image de grain, ladite image filtrée étant obtenue par un filtrage de ladite image source, et dans lequel, pour chaque classe d'intensité, les composantes fréquentielles du grain (Var(m)(i, j)) pour ladite classe d'intensité sont estimées à partir de valeurs de pixels de ladite image de grain et correspondant à des macroblocs affectés à ladite classe d'intensité. 8. Procédé selon la revendication 7, dans lequel l'image de grain correspond à trois plans de valeurs de pixels (Gy, Gu, Gv), le procédé comprenant en outre une étape de calcul à partir de l'image de grain d'une nouvelle image de grain, par soustraction à chaque valeur de pixel de deux desdits trois plans d'une valeur de corrélation croisée correspondante (Corr(GY,Gu),Corr(GU,Gv))• 9. Procédé selon l'une des revendications 1 à 8, dans lequel, pour chaque classe d'intensité, les composantes fréquentielles (Var(m)(i, j)) sont obtenues à partir de transformées en cosinus (DCT(i,j)) de pixels des macroblocs affectés à ladite classe d'intensité. 10. Procédé selon l'une des revendications 1 à 9, dans lequel les paramètres de modélisation du grain comportent des fréquences de coupure et un écart-type. 11. Programme d'ordinateur destiné à être stocké dans une mémoire d'un dispositif de modélisation de grain d'image d'un système de compression d'image, 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 modélisation de grain d'image. 12. Dispositif (120) de modélisation du grain d'une image, comprenant une mémoire (123) pour stocker un nombre prédéterminé d'identifiants de classes d'intensité et, pour chacune des dites classes d'intensité, une indication d'un intervalle de valeurs de pixels déterminé, des moyens de sélection (123) aptes, pour chaque classe d'intensité, à rechercher à partir des valeurs de pixels de macroblocs de l'image, des macroblocs à affecter à ladite classe d'intensité,un module d'analyse du grain (123) apte, pour chaque classe d'intensité, à estimer des composantes fréquentielles du grain pour ladite classe d'intensité, à partir de valeurs de pixels des macroblocs affectés à ladite classe d'intensité, un module de regroupement (124) agencé pour regrouper les classes d'intensité en fonction des composantes fréquentielles estimées par le module d'analyse du grain, de façon à limiter le nombre de classes d'intensité auxquelles est affecté au moins un macrobloc, et des moyens de traitement (124) aptes, pour chacune des dites classes d'intensité ainsi regroupées, à estimer des composantes fréquentielles pour ladite classe d'intensité, et à calculer en fonction desdites composantes fréquentielles correspondant à ladite classe d'intensité un jeu de valeurs de paramètres de modélisation du grain. 13. Système de compression d'une séquence vidéo, comprenant un dispositif de modélisation du grain selon la revendication 12 pour modéliser le grain d'au moins une partie des images de la séquence vidéo en des jeux respectifs de valeurs de paramètres.20