Brevet FR2980325A1 — publié le 20130322

B10813 - 10-GR2-1056 1 CIRCUIT POUR TRAITEMENT D'IMAGE DOMAINE DE L'INVENTION La présente invention concerne un procédé et un dispositif destinés à modifier la saturation de couleur d'un ou plusieurs pixels d'une image. ARRIÈRE-PLAN DE L'INVENTION On peut utiliser divers modèles colorimétriques pour représenter les pixels d'une image en couleur. Le modèle colorimétrique RGB (rouge, vert, bleu) utilise trois valeurs R, G et B pour chaque pixel, représentant respectivement une inten- sité lumineuse rouge, verte et bleue. Une telle représentation correspond de très près à l'affichage d'images sur des afficheurs tels que des tubes cathodiques (CRT) et des afficheurs à cristaux liquides (LCD). Dans des applications de mémorisation et de traitement, le format RGB n'est pas optimal, et on peut utiliser des modèles de couleurs différents, tels que le modèle colorimétrique YUV ou des variantes de celui-ci, selon lesquels une valeur Y représente la luminance du pixel, et deux valeurs UV représentent la chrominance. En outre, le modèle colorimétrique HSV (teinte, saturation, valeur) comprend une valeur de couleur H représentant la teinte, une valeur de saturation S et une valeur V qui représente la luminance. B10813 - 10-GR2-1056 2 Un utilisateur peut définir une augmentation de saturation de couleur souhaitée à appliquer aux pixels d'une image. Cependant, il est facile de sursaturer une image, ce qui conduit à une dégradation de la qualité de l'image. Un problème est que les outils qui existent actuellement pour modifier la saturation de couleur dans une image n'aident pas de façon adéquate un utilisateur à sélectionner la saturation de couleur appropriée et sûre. RESUME DE MODES DE REALISATION DE L'INVENTION Un objet de modes de réalisation de la présente inven- tion est de résoudre au moins partiellement un ou plusieurs problèmes de l'art antérieur. Selon un aspect de la présente invention, on prévoit un procédé pour augmenter la saturation de couleur des valeurs RGB d'au moins un pixel d'une image, le procédé comprenant les étapes suivantes : calculer une valeur de luminance sur la base de valeurs RGB d'un premier pixel ; calculer une première auymentation maximum de la saturation de couleur sur la base de la plus élevée parmi les valeurs RGB et de la valeur de luminance ; calculer une deuxième augmentation maximum de la saturation de couleur sur la base de la plus faible parmi les valeurs RGB et de la valeur de luminance ; et augmenter la saturation de couleur du premier pixel sur la base des première et deuxième augmentations maximum. Selon un mode de réalisation, le procédé comprend en outre, avant l'étape d'augmentation de la saturation de couleur du premier pixel, une étape de calcul d'un facteur de saturation SFp à appliquer aux valeurs RGB selon la formule suivante : SFp = MIN(SFmaxL, SFmaxH, SFUSER), où SFmaxi, est la première 30 augmentation maximum, SFmaxH est la deuxième augmentation maximum, et SFUSER est une augmentation de saturation de couleur définie par l'utilisateur, la saturation de couleur du premier pixel étant augmentée du facteur SFp. B10813 - 10-GR2-1056 3 Selon un autre mode de réalisation la première augmentation maximum SFmaxii et la deuxième augmentation maximum SFmaxi, sont calculées sur la base des formules suivantes : SFmaxH = (Cmax-Y )/(max(Rp,Gp,Bp)-Y) SFmaxL = (Y -Cmin)/(Y -min(Rp,Gp,Bp)) où Cmax est la limite supérieure du code représentant chacune des valeurs RGB, Cmin est la limite inférieure du code représentant chacune des valeurs RGB, Y est la valeur de luminance, et Rp, Gp et B sont les valeurs RGB. Selon un autre mode de réalisation, la valeur de luminance Y est calculée par la formule Y = WRRp + WGGp + WBBp, où Rp, Gp et Bp sont les valeurs RGB, et WR, WG et WB sont des coefficients de pondération constants correspondant aux valeurs R, G et B, respectivement. Selon un autre mode de réalisation, l'étape d'augmen- tation de la saturation de couleur du premier pixel comprend les étapes suivantes : convertir les valeurs RGB en valeurs de luminance et de chrominance ; appliquer un gain aux valeurs de chrominance ; et convertir les valeurs de luminance et de chrominance pour revenir en valeurs RGB. Selon un autre mode de réalisation, l'augmentation de la saturation de couleur du premier pixel comprend la réalisation du calcul matriciel suivant : R' p WR (1 - WRWSFp WGx(1 - SFp) WBxa G' p = WRx(l - SFp) WG + - WGWSFp WRx(1 -SFp) G _B' p B' WRx(l - SFp) WGx(l - SFp) WB - WL0)5'.Fp_ _Bp_ où Rp, Gp et Bp sont les valeurs RGB, R'p, G'p, et B'p sont les valeurs RGB après l'augmentation de saturation de couleur, WR, WG et WB sont des coefficients de pondération constants correspondant aux valeurs R, G et B respectivement, et SFp est un facteur de saturation déterminé sur la base des première et deuxième augmentations de saturation maximum. Selon un autre aspect de la présente invention, on prévoit un procédé de correction de saturation de couleur d'une B10813 - 10-GR2-1056 4 image, comprenant l'augmentation de la saturation de couleur de chaque pixel de l'image selon le procédé susmentionné. Selon un autre aspect de la présente invention, on prévoit un dispositif pour augmenter la saturation de couleur des valeurs RGB d'au moins un pixel d'une image, le dispositif comprenant une mémoire agencée pour mémoriser ladite image, et un processeur agencé pour : calculer une valeur de luminance sur la base de valeurs RGB d'un premier pixel ; calculer une première augmentation maximum de la saturation de couleur sur la base de la plus élevée parmi les valeurs RGB et de la valeur de luminance ; calculer une deuxième augmentation maximum de la saturation de couleur sur la base de la plus basse parmi les valeurs RGB et de la valeur de luminance ; et augmenter la saturation de couleur du premier pixel sur la base des première et deuxième augmentations maximum. BRÈVE DESCRIPTION DES DESSINS Les objets, caractéristiques, aspects et avantages de l'invention précédents, et d'autres, apparaîtront clairement à la lecture de la description détaillée de modes de réalisation, donnée à titre d'illustration et non de limitation, en faisant référence aux dessins joints, dans lesquels : la figure 1 illustre schématiquement un module pour déterminer une augmentation de saturation de couleur à appliquer à un pixel selon un mode de réalisation de la présente 25 invention ; la figure 2 est un graphique illustrant un exemple de canaux RGB avant et après une augmentation de saturation de couleur selon un mode de réalisation de la présente invention ; la figure 3 illustre schématiquement un dispositif 30 pour augmenter la saturation de couleur d'un ou plusieurs pixels d'une image selon un mode de réalisation de la présente invention ; la figure 4 illustre schématiquement un dispositif pour modifier la saturation de couleur d'un ou plusieurs pixels B10813 - 10-GR2-1056 d'une image selon un autre mode de réalisation de la présente invention ; les figures 5A à 5C sont des graphiques représentant des exemples de courbes représentant des transformations faites 5 par un bloc de transformation de la figure 4 selon des modes de réalisation de la présente invention ; la figure 6 illustre schématiquement un dispositif pour modifier la saturation de couleur d'un ou plusieurs pixels d'une image selon un autre mode de réalisation de la présente 10 invention ; la figure 7 illustre schématiquement un dispositif pour modifier la saturation de couleur d'un ou plusieurs pixels d'une image selon encore un autre mode de réalisation de la présente invention ; 15 les figures 8A et 8B sont des graphiques représentant des exemples de courbes représentant des transformations faites par les blocs de transformation de la figure 7 selon des modes de réalisation de la présente invention ; la figure 9 est un graphique illustrant un exemple de 20 canaux RGB avant et après une modification de saturation à deux étages selon un mode de réalisation de la présente invention ; et la figure 10 illustre un dispositif de traitement d'image selon un mode de réalisation de la présente invention. 25 DESCRITTEli DÉDUMLÉE EES MIES LE RÉALISATION LE LA PRÉSENTE INVENTION Dans la description suivante, le terme YUV sera utilisé de façon générale pour faire référence à des modèles colorimétriques dans lesquels un pixel est représenté sous forme d'une valeur de luminance (Y) et de deux valeurs de chrominance 30 (UV). Cela couvre une plage de formats comprenant par exemple YCrCb et YPbPr. En outre, dans la suite, une modification de saturation de couleur est définie sur la base d'un facteur de saturation, qui représente par exemple la modification de 35 saturation sous forme d'un pourcentage de la saturation de cou- B10813 - 10-GR2-1056 6 leur d'origine, sous forme d'une augmentation en pourcentage, ou d'un gain, une valeur de 1 indiquant par exemple un gain unitaire. La figure 1 illustre un module 100 destiné à générer 5 un facteur de saturation à appliquer à un pixel de telle sorte que la teinte du pixel soit préservée. Une sur-saturation d'une image représentée dans l'espace colorimétrique RGB peut provoquer un écrêtage d'une ou plusieurs des valeurs RGB, qui provoque à son tour une dégradation de 10 l'image. En particulier, pour augmenter la saturation de couleur d'un pixel sans augmenter la luminance du pixel, les valeurs RGB sont par exemple converties dans un format YUV, de sorte qu'un gain de saturation de couleur peut être appliqué aux valeurs de chrominance sans affecter la valeur de luminance. Cependant, 15 lorsque les valeurs YUV modifiées sont reconverties en valeurs RGB, les limites de code supérieures ou inférieures d'une ou plusieurs des valeurs RGB peuvent avoir été dépassées. Cela entraîne une dégradation d'image, puisque l'écrêtage d'une ou plusieurs des valeurs RGB provoque une variation de la teinte du 20 pixel, qui en particulier devient apparente lorsqu'un certain nombre de pixels voisins sont écrêtés de la même façon. En référence à la figure 1, un module 100 détermine un facteur de saturation SF à appliquer à un pixel p d'une image. Le pixel p est représenté sous forme de valeurs RGB R Gp, et P' P' 25 Bp au niveau d'une entrée 102. Ces valeurs sont fournies à un bloc de calcul de luminance 104 (Y CALC) et à un bloc de calcul de facteur de saturation maximum 106 (MAX SF CALC). Le bloc 104 détermine la luminance Y du pixel p sur la base des valeurs RGB, par exemple sur la base de constantes WR, 30 WG et WB, qui sont des coefficients de pondération correspondant aux valeurs de couleurs R, G et B respectivement. De tels coefficients sont par exemple définis pour un moniteur d'affichage donné, et peuvent être mémorisés dans une mémoire. En particulier, la luminance est par exemple déterminée sur la base du 35 calcul suivant : B10813 - 10-GR2-1056 7 Y = WRRp + WGGp + WBBp Le bloc 106 reçoit la valeur de luminance Y du bloc 104, et aussi les valeurs RGB provenant de l'entrée 102, et calcule des facteurs de saturation maximum SFmaxH et SFmaxi, sur la base de ces valeurs. Le facteur de saturation SFmaxH est déterminé sur la base de la plus élevée des trois valeurs RGB, et de la valeur de luminance. Le facteur de saturation SFmaxi, est déterminé sur la base de la plus faible des valeurs RGB, et de la valeur de luminance Y. Les valeurs SFmaxH et SFmaxi, sont fournies à un bloc 108 (MIN), qui sélectionne la valeur la plus faible parmi ces valeurs pour fournir un facteur de saturation SFp pour le pixel courant p. Optionnellement, le bloc 108 reçoit aussi d'une entrée 112 une valeur SFUSER de saturation de couleur définie par un utilisateur, qui correspond à une augmentation de saturation qu'un utilisateur souhaite appliquer sur la totalité d'une image comprenant le pixel p. Dans ce cas, le bloc 108 sélectionne la valeur la plus faible des trois valeurs SFmaxH et SFmaxL et SFUSER, pour fournir le facteur de saturation pour le pixel courant SFp. Le facteur de saturation maximum SFmaxH est par exemple déterminé ainsi : SFmaxH=(Cmax-Y )/(max(Rp,Gp,Bp)-Y) -(1) où Cmax est la limite supérieure du code représentant chacune 25 des valeurs RGB, Y est la valeur de luminance, et Rp, Gp et Bp sont les valeurs RGB. Le facteur de saturation maximum SFmaxi, est par exemple déterminé ainsi : SFmaxL=(Y-Cmin)/(Y-min (Rp,Gp,Bp)) -(2) 30 où Cmin est la limite inférieure du code représentant chacune des valeurs RGB. Dans le cas où Cmin est nul, cela devient simplement : SFmaxL=Y/ (Y-min(Rp,Gp,Bp)) La limite de code supérieure Cmax dépend par exemple 35 du nombre de bits utilisés pour représenter chaque valeur RGB. B10813 - 10-GR2-1056 8 En supposant que chaque valeur est représentée par n bits, la limite de code supérieure est par exemple 2n-1, la limite de code inférieure est nulle. Si n est égal à 8, C x est alors égal à 255, et Cmin est égal à 0. En variante, en fonction de la façon dont les valeurs RGB sont définies, les limites supérieure et inférieure du code pourraient être différentes. Les facteurs de saturation SFmaxH et SFmaxi, représentent la valeur maximum avec laquelle la saturation de couleur du pixel, telle que définie par le modèle colorimétrique YUV, peut être augmentée avant qu'un écrêtage des valeurs RGB survienne. Dans le cas où le facteur de saturation défini par l'utilisateur SFUSER est sous forme d'une augmentation en pourcentage, les facteurs de saturation SFmaxH et SFmaxi, peuvent aussi être représentés sous forme d'un pourcentage, en multipliant chacun d'eux par 100. Avantageusement, en calculant le facteur de saturation sur la base du plus faible entre SFmaxH et SFmaxL, on peut éviter une sursaturation dans l'espace colorimétrique RGB, comme on va maintenant le décrire en relation avec la figure 2. La figure 2 est un graphique illustrant un exemple de valeurs RGB qui sont reçues sur des canaux A, B et C, et une valeur de luminance, avant et après l'application d'une augmentation de saturation. Le canal A (Channel A) représente la plus élevée des trois valeurs RGB, le canal C (Channel C) représente la plus faible des trois valeurs RGB, et le canal B (Channel B) représente la valeur RGB intermédiaire. Le présent inventeur a trouvé que, lorsqu'elle est représentée dans l'espace colorimétrique RGB, une augmentation de saturation YUV correspond à une augmentation d'un même facteur des distances entre chacune des valeurs RGB et la valeur de luminance. En outre, l'écrêtage de l'une des valeurs RGB va avoir lieu en premier dans le canal le plus élevé ou le canal le plus faible. La figure 2 illustre, au niveau d'une ligne en trait 35 interrompu 202, un exemple de valeurs RGB initiales des canaux B10813 - 10-GR2-1056 9 A, B et C, et une valeur de luminance correspondante, qui a une valeur comprise entre celle des canaux A et B. Lorsque la saturation de couleur est augmentée, les valeurs des canaux A et C s'éloignent de la valeur de luminance, en direction des 5 limites de code supérieure et inférieure, notées Cmax et 0 en figure 2. La valeur du canal A atteint la limite de code supérieure Cmax, au niveau d'une ligne en trait interrompu 204, avant que la valeur du canal C atteigne la limite de code inférieure. Ce point représente l'augmentation de saturation 10 optimale, juste avant qu'un écrêtage des valeurs RGB ait lieu. Le facteur de saturation SFmaxH décrit précédemment en référence à la figure 1 correspond au gain qui est appliqué à la valeur du canal A de telle sorte qu'elle atteigne juste la limite de code supérieure Cmax- En effet, en faisant référence à 15 la formule (1) précédente, la distance notée 206 en figure 2 entre Cmax et la valeur de luminance est égale Cmax-Y, et la distance notée 208 entre le canal A et la valeur de luminance est égale à max(Rp,Gp,Bp)-Y. Le rapport entre ces deux distances détermine le facteur de saturation à appliquer pour amener le 20 canal A à la limite de code supérieure Cmax- Si on appelle une telle saturation 100 pourcent, la saturation initiale peut être définie comme étant un pourcentage de cette saturation maximum permise, et dans l'exemple de la figure 2, la saturation est ainsi initialement à 50 pourcent. 25 Le facteur de saturation SFmaxi, calculé pour l'exemple de la figure 2 est supérieur à SFinaxH- Cependant, dans des exemples de variantes, la valeur du canal C pourrait atteindre la limite de code inférieure avant que la valeur du canal A n'atteigne la limite de code supérieure, et dans ce cas ce 30 serait la valeur de SFmaxi, qui serait la valeur déterminante. La figure 3 illustre un système 300 destiné à augmenter le niveau de saturation de couleur du pixel RGB p de la figure 1, reçu au niveau de l'entrée 102. Comme cela est illustré, les valeurs RGB sont fournies à un bloc de calcul 35 matriciel 302 (MATRIX CALC), qui reçoit aussi le facteur de B10813 - 10-GR2-1056 10 saturation SF généré par le module 100 (MAX SF CALC) de la figure 1, et aussi les coefficients de pondération WR, WG et WB. Le bloc 302 applique une opération matricielle sur les valeurs RGB sur la base d'un facteur de saturation et des coefficients de pondération, afin de fournir des valeurs RGB modifiées R'p, G' et B' sur une sortie 304 pour le pixel p. Par exemple, le calcul matriciel qui est appliqué par le bloc 302 est le suivant : R' WR + (1 - WR ) xSFp WG x(1 - SF,) NVe(1 - SFp) RP CP = WR x(1 - SFp ) WG + (1 - WG )x SFp WBx(1 - SFp ) G B' NyRxa -SFp) WG X (1 - SFp ) WB + (1 - WB )xSFp P _ _ P _ Un tel calcul matriciel correspond à une transfoLuation des valeurs d'entrée RGB Rp, Gp et Bp en valeurs de luminance et de chrominance, à l'application du facteur de saturation SFp aux valeurs de chrominance, et à la transformation des valeurs de chrominance modifiées et de luminance pour revenir dans le modèle colorimétrique RGB sous la forme de valeurs Rp', Gp' et 13P' Par exemple, si une augmentation de saturation de couleur doit être appliquée à une image complète comprenant des pixels 0 à P, chaque pixel p est fourni au module 100 et au bloc de calcul matriciel 302 de la figure 3 en parallèle, de sorte que, pour chaque pixel p, un facteur de saturation correspondant SF peut être généré et appliqué au pixel par le bloc de calcul matriciel 302. Dans le cas où un utilisateur définit aussi une augmentation de saturation de couleur pour l'image, chaque pixel va être modifié sur la base de la valeur SFmaxH, SFmaxi, ou SFUSER, selon celle qui est la plus faible. A titre de variante, on peut ne spécifier aucune aug- mentation de saturation d'utilisateur, mais à la place l'utili- sateur peut demander qu'une augmentation de saturation de cou- leur optimale soit appliquée à chaque pixel. Dans ce cas, la plus faible des valeurs maximum d'augmentation de saturation SFmaxH et SFmaxi, est par exemple appliquée à chaque pixel. B10813 - 10-GR2-1056 11 La figure 4 illustre un dispositif 400 destiné à modifier la saturation de couleur d'un ou plusieurs pixels selon un autre mode de réalisation. Une valeur entrante de pixel de couleur 402 (PIXIN) 5 peut être d'un format quelconque, y compris mais sans être limité à cela, les formats RGB, HSV (teinte, saturation, valeur), YUV, etc. La valeur de pixel est fournie à un bloc de calcul 404 (CALC SAT/HUE/LUM), qui détermine l'une des valeurs parmi la saturation, la teinte et la luminance du pixel. Dans le 10 cas où le pixel est dans le format HSV, cette information peut être extraite directement. A titre de variante, dans le cas où le signal est dans l'espace colorimétrique RGB, la luminance peut être calculée comme cela a été décrit précédemment. La saturation de couleur 15 dans l'espace colorimétrique YUV peut être déterminée en déterminant le facteur de saturation expliqué précédemment en référence à la figure 1, puis en prenant l'inverse de ce facteur. La teinte, sur une échelle de 0 à 360, peut être calculée par les équations suivantes sur la base des valeurs RGB : 20 IF max(R,G,B) = R : Teinte = 60*(G-B)/(R-min(R,G,B)) IF max(R,G,B) = G : Teinte = 120+60*(B-R)/(G-min(R,G,B)) IF max(R,G,B) = B : Teinte = 240+60*(R-G)/(B-min(R,G,B)) où sur l'échelle de 0 à 360, les valeurs 0 et 360 correspondent au rouge, la valeur 120 correspond au vert, et la valeur 240 25 correspond au bleu, et les valeurs intermédiaires correspondent à des formes de couleurs intermédiaires. La saturation de l'espace colorimétrique HSV peut être déterminée de la façon suivante : SATHSV = (max-min)/max 30 où max est égal à max (R,G,B) et min est égal à min(R,G,B). En outre, dans le cas où le pixel est dans l'espace colorimétrique YUV, la saturation de couleur et la teinte peuvent être extraites en convertissant d'abord les signaux dans l'espace colorimétrique RGB, puis de la façon décrite précé- 35 demment. B10813 - 10-GR2-1056 12 Le bloc 404 fournit une valeur W de saturation de couleur, de teinte ou de luminance à un bloc de transformation 406, qui transforme cette valeur W en un facteur de saturation SFp' à appliquer au pixel. Par exemple, le bloc 406 comprend une table de correspondance, qui fournit un certain facteur de saturation pour chaque valeur ou plage de valeurs de la valeur W. Cela est illustré par une courbe en figure 4, qui représente la relation entre la valeur W et le facteur de saturation. Une telle transformation est par exemple mise en oeuvre par une table de correspondance, ou par l'application d'une certaine formule décrivant la transformation. Dans certains cas, comme le cas où W est une valeur de saturation, le facteur de saturation correspondant au pic de la courbe est réglé par une augmentation de saturation définie par l'utilisateur SFUSER fournie par un bloc 408. Par exemple, des facteurs de saturation pour chaque valeur W sont définis sous forme d'une fraction ou d'un pourcentage du facteur de saturation défini par l'utilisateur, le pic de la courbe correspondant à 100 pourcent du facteur de saturation défini par l'utilisateur. A titre de variante, l'amplitude de la courbe pourrait être définie par l'utilisateur. Le facteur de saturation SFp' provenant du bloc 406 est fourni à un bloc de modification de saturation de couleur 410 (SAT MOD), qui reçoit aussi la valeur de pixel 402, et modifie sa saturation de couleur sur la base du facteur de saturation SFp'. Il fournit un pixel de sortie 412 (PIXouT). Les figures 5A, 5B et 5C sont des graphiques illustrant des exemples des relations entre la valeur V et le facteur de saturation SFp', dans le cas où la valeur est la saturation de 30 couleur, la teinte et la luminance respectivement. La figure 5A illustre le facteur de saturation SFp' pour des valeurs de saturation comprises entre 0 et 4095, en supposant une valeur de saturation de 12 bits, bien qu'on puisse utiliser une autre échelle, qui est par exemple définie par 35 l'utilisateur. Pour des saturations de couleur comprises entre 0 B10813 - 10-GR2-1056 13 et 1000, le facteur de saturation est approximativement proportionnel à la saturation de couleur, par exemple augmentant progressivement de 25 à 140 pourcent. Pour des valeurs de saturation de couleur comprises entre 1000 et 2000, le facteur de saturation est stable, par exemple à environ 140 pourcent. Entre les niveaux de saturation de couleur 2000 et 4000, le facteur de saturation est inversement proportionnel à la saturation de couleur, par exemple diminuant progressivement de 140 pourcent à 100 pourcent. De façon plus générale, la relation entre la satura- tion du pixel et le facteur de saturation est par exemple telle que, pour des saturations de couleur relativement basses, des facteurs de saturation relativement bas sont obtenus, pour des valeurs de saturation de couleur intermédiaires, un facteur de saturation relativement élevé est obtenu, et pour des saturations de couleur relativement élevées, des facteurs de saturation relativement bas sont obtenus. La figure 5B illustre le facteur de saturation SFp' pour des valeurs de teinte progressant du rouge vers le vert et vers le bleu et revenant de nouveau vers le rouge, par exemple sur une échelle de 0 à 360 comme cela a été décrit précédemment. A titre de variante, la teinte pourrait être remappée vers une puissance de 2, comme par exemple une échelle de 0 à 255, en d'autres termes sur 8 bits. Dans cet exemple, les teintes proches du rouge entraînent un facteur de saturation relativement bas, par exemple autour de 120 pourcent. En effet, de telles teintes correspondent souvent à des visages, qui préférablement ne sont pas fortement saturés. Des teintes proches du vert entraînent un facteur de saturation intermédiaire, par exemple autour de 150 pourcent, tandis que des teintes proches du bleu entraînent par exemple un facteur de saturation relativement élevé, par exemple autour de 180 pourcent. En effet, des verts et des bleus dans des images correspondent souvent à de la végétation et au ciel, qui bénéficient en général d'une saturation de couleur relativement élevée. B10813 - 10-GR2-1056 14 La figure 5C illustre le facteur de saturation SF ' pour des valeurs de luminance comprise entre 0 et 4095, en supposant des valeurs de luminance de 12 bits, bien qu'on puisse utiliser d'autres échelles. Pour des valeurs de luminance 5 comprises entre 0 et 500, le facteur de saturation est environ proportionnel à la saturation de couleur, augmentant par exemple progressivement de 30 à 100 pourcent. Pour des valeurs de saturation comprises entre 500 et 2000, le facteur de saturation est stable, par exemple à environ 100 pourcent. Entre les 10 niveaux de saturation de couleur de 2000 et de 3500, le facteur de saturation est inversement proportionnel à la saturation de couleur, diminuant par exemple progressivement de 100 à 35 pourcent, et entre 3500 et 4000, il est stable, par exemple à 35 pourcent. 15 Ainsi, pour de très faibles valeurs de luminance et pour des valeurs de luminance relativement élevées, le facteur de saturation est bas, tandis que pour des valeurs de luminance intermédiaires, des facteurs de saturation plus élevés sont obtenus. 20 La figure 6 illustre un dispositif 600 destiné à modifier la saturation de couleur d'un ou plusieurs pixels selon un autre mode de réalisation. Les caractéristiques cctimunes avec le dispositif 400 de la figure 4 ont été notées avec les mêmes références, et ne vont pas être décrites de nouveau en détail. 25 Plutôt qu'un seul bloc de calcul et un seul bloc de transformation, le circuit de la figure 6 comprend trois blocs de calcul 602 (CALC SAT), 604 (CALC HUE) et 606 (CALO LUM) pour déterminer la saturation de couleur, la teinte et la luminance du pixel respectivement, et trois blocs de transformation 608 30 (LUTsAT), 610 (LUTHUE) et 612 (LUTLUM) mis en oeuvre sous forme de tables de correspondance pour transformer les valeurs de saturation de couleur, de teinte et de luminance respectivement en facteurs de saturation SF- pSAT, SFpHUE et SFpLUM. Chaque bloc 608, 610, 612 est par exemple mis en oeuvre sous forme d'une 35 table de correspondance réalisant la transformation représentée B10813 - 10-GR2-1056 15 par les graphiques des figures 5A, 5B et 5C décrits précédemment. Les trois facteurs de saturation S7 --pSAT, SFpH et SFpLum sont fournis à un bloc 614 (MIN), qui détermine la valeur la plus faible de ces valeurs pour fournir le facteur de 5 saturation SFp' à appliquer au pixel, en utilisant le bloc 410. Optionnellement, un niveau de saturation défini par l'utilisateur SFUSER est fourni au bloc de transformation 608, pour déterminer le pic de saturation de couleur de la façon décrite précédemment. En plus ou à la place, le niveau de satu10 ration de couleur défini par l'utilisateur peut être fourni en tant qu'autre entrée du bloc 614, pour qu'il soit sélectionné s'il est inférieur à tous les autres facteurs de saturation. En outre, optionnellement, le module 100 décrit précédemment en référence à la figure 1 est aussi présent, et 15 reçoit le pixel d'entrée 402. Dans ce cas, le pixel d'entrée comprend des valeurs RGB, et le bloc 100 génère un autre facteur de saturation SFp' qui évite une variation de teinte de la valeur RGB, comme décrit précédemment. Ce facteur de saturation est par exemple fourni en tant qu'entrée additionnelle au bloc 20 614, pour qu'il soit sélectionné en tant que facteur de saturation SFp' s'il est inférieur aux autres entrées. Dans le cas où le pixel d'entrée 402 est dans le format RGB, les blocs 602, 604 et 606 pourraient être mis en oeuvre par un unique bloc qui réalise une conversion de RGB en 25 HSV. Dans des variantes de réalisation, un ou deux des blocs de calcul 602, 604, 606, et l'un ou les deux blocs de transformation correspondants 608, 610, 612, pourraient être supprimés. 30 La figure 7 illustre un dispositif 700 destiné à modifier la saturation de couleur d'un pixel selon un autre mode de réalisation. Un pixel d'entrée 702 est au format RGB, comprenant trois canaux RP' GP et B d'un pixel p. Le pixel d'entrée est B10813 - 10-GR2-1056 16 fourni à un bloc de conversion 704 (RGB TO HSV), qui convertit les valeurs RGB dans le format HSV. Dans l'exemple de la figure 7, il y a deux blocs de transformation 706 (LUTHUE), 708 (LUTSAT), qui reçoivent les valeurs de teinte et de saturation de couleur respectivement en provenance du bloc 704, et fournissent des facteurs de saturation sF --pHUE et SF- psAT. A titre de variante, il pourrait y avoir un ou trois des blocs de transformation 608, 610, 612 de la figure 6. Les blocs sont par exemple mis en oeuvre par des tables de correspondance, qui appliquent par exemple les trans- foLmations représentées par les courbes correspondantes des figures 5A, 5B et 5C. A titre de variante, les transformations sont celles qui sont représentées par les figures 8A et 8B, comme on va le décrire maintenant. La figure 8A illustre le facteur de saturation SFp SAT pour des valeurs de saturation comprises entre 0 et 255, en supposant une valeur de saturation de 8 bits, bien qu'on puisse utiliser une autre échelle, qui est par exemple définie par l'utilisateur. Pour des saturations de couleur comprises entre 0 et 50, aucune augmentation de saturation n'est appliquée. Ensuite, entre les saturations de couleur de 50 et 75, le facteur de saturation SF- pSAT augmente progressivement de 100 à 160 pourcent. Pour des valeurs de saturation de couleur comprises entre 75 et 150, le facteur de saturation SFpSAT est relativement stable à 160 pourcent, avant de redescendre progressivement vers 100 pourcent entre les saturations de couleur de 150 et 200. Entre les niveaux de saturation de couleur de 200 et 255, le facteur de saturation SF- pSAT est égal à 100 pourcent, ce qui implique l'absence d'augmentation de saturation. La figure 8B illustre le facteur de saturation SFp HUE pour des valeurs de teinte progressant du rouge vers le vert et vers le bleu puis revenant vers le rouge, par exemple sur une échelle de 0 à 360, ou sur une échelle basée sur une puissance de 2, comme une échelle de 0 à 255, en d'autres termes une échelle de 8 bits. Dans cet exemple, des teintes allant du rouge B10813 - 10-GR2-1056 17 au vert, par exemple comprises entre 0 et environ 100 sur une échelle de 0 à 255, entraînent un facteur de saturation relativement bas, par exemple à 100 pourcent. Ensuite, le facteur de saturation SF- pHUE monte progressivement et atteint environ 145 5 pourcent pour une teinte d'environ 120, qui est maintenue jusqu'à une teinte d'environ 140. Pour des teintes d'environ 140 à 175, le facteur de saturation SFp HUE augmente jusqu'à environ 170 %, avant de redescendre progressivement à 100 pourcent pour une teinte d'environ 200, correspondant au début du rouge de 10 nouveau. Les facteurs de saturation de couleur SFp SAT et SFpHuE sont fournis à un bloc 710 (MIN), qui déte Lmine la valeur la plus faible de ces facteurs de saturation afin de fournir un facteur de saturation de sortie SFp' utilisé pour augmenter la 15 saturation de pixel du pixel p. Le facteur de saturation SFp' provenant du bloc 710 est fourni à un bloc de modification de saturation de couleur 712 (SAT MOD (HSV IN RGB)). Plutôt que de recevoir directement le pixel d'entrée, le bloc 712 le reçoit après qu'une 20 modification initiale de saturation de couleur a aussi déjà été réalisée par un bloc 714 (SAT MOD(YUV)). Le bloc 714 applique par exemple le facteur de saturation SFp généré par le module 100 de la figure 1 décrit précédemment. Ainsi, ce facteur de saturation SFp correspond par exemple à l'augmentation de 25 saturation maximum sans écrêtage des valeurs RGB. A titre de variante, le bloc 714 pourrait appliquer un facteur de saturation défini par l'utilisateur. Les deux blocs 712 et 714 appliquent une saturation de couleur aux valeurs RGB, mais la saturation de couleur appliquée 30 par le bloc 714 est par exemple une modification de saturation de couleur définie conformément à l'espace colorimétrique YUV, dans laquelle la distance entre les valeurs RGB et la valeur de luminance est modifiée, tandis que le bloc 712 applique une modification de saturation de couleur selon l'espace colori- 35 métrique HSV, d'après lequel la distance entre la plus élevée B10813 - 10-GR2-1056 18 des valeurs RGB et les deux autres valeurs RGB est modifiée. Cela sera décrit plus en détail ci-après en référence à la figure 9. Optionnellement, le bloc 710 peut aussi recevoir un 5 facteur de saturation maximum SFmax provenant d'un bloc de calcul 716, qui détermine l'augmentation de saturation maximum qui peut être appliquée aux valeurs RGB telles que modifiées par le bloc 714, tout en évitant d'écrêter les valeurs RGB, comme cela sera décrit plus en détail ci-après. Dans ce cas, le bloc 710 10 fournit le plus faible des trois facteurs de saturation SFmax, SFpHJ et S FpSAT. Dans certains modes de réalisation, plutôt que d'appliquer le facteur de saturation SF ' fourni par le bloc 710, le bloc 712 pourrait appliquer un facteur de saturation défini d'une 15 façon différente, comme par exemple un facteur de saturation défini par l'utilisateur. Dans un tel cas, les blocs 704, 706, 708 et 710 pourraient être supprimés. La figure 9 est un graphique représentant un exemple de modification de saturation de couleur à deux étages. Comme 20 avec la figure 2, le canal A est la valeur la plus élevée des valeurs RGB, le canal C est la valeur la plus faible des valeurs RGB, et le canal B est la valeur médiane des valeurs RGB. Les valeurs initiales des canaux A, B et C du pixel d'entrée RGB, en un point représenté par une ligne en trait 25 interrompu 902, correspondent par exemple à 50 pourcent de l'augmentation de saturation maximum qui peut être appliquée dans l'espace colorimétrique YUV avant qu'un écrêtage des canaux RGB ne se produise. Dans l'exemple de la figure 9, le bloc 714 de la figure 7 applique l'augmentation de saturation maximum, 30 amenant la saturation de couleur à 100 pourcent, comme cela est représenté par des lignes en trait interrompu 904. Ainsi, la luminance reste constante, tandis que les canaux A, B et C s'écartent de la luminance. Ensuite, le bloc 712 de la figure 7 applique une modi35 fication de saturation de couleur dans l'espace colorimétrique B10813 - 10-GR2-1056 19 HSV. Par exemple, cela entraîne une augmentation de l'écart entre les canaux B et C par rapport au canal le plus élevé, qui est le canal A. En particulier, en supposant que les canaux A, B et C ont initialement des valeurs a, b et c, après l'application du facteur de saturation SFp', la valeur du canal A va rester à a, tandis que les valeurs modifiées b' et c' des canaux B et C deviennent : bl=a-(a-b).SFp' c'=a-(a-c).SFp' Si la valeur modifiée c' du canal C est choisie égale à zéro, on peut calculer la valeur de SFp' qui entraîne une augmentation de saturation maximum tout en évitant un écrêtage des valeurs RGB, en d'autres termes la valeur qui entraîne que le canal C atteint juste la valeur de code minimum, qui est par exemple égale à zéro. En d'autres termes, le calcul suivant peut être effectué : S7max= a/(a-c) où a est égal à max(Rp,Gp,Bp) et c est égal à min(Rp,Gp,Bp). On notera qu'avantageusement la teinte est préservée pendant cette 20 modification de saturation à deux étages. La figure 10 illustre un dispositif de traitement 1000 destiné à traiter des images selon les procédés décrits ici. Une mémoire d'image 1002 (IMAGE MEM) mémorise une ou plusieurs images, pour lesquelles une modification de saturation de cou- 25 leur est à appliquer. La mémoire d'image est couplée à un processeur 1004 (P), qui est sous le contrôle d'une mémoire d'instructions 1006 (INSTR MEM). Les instructions de la mémoire d'instruction 1006 commandent le processeur 1004 pour mettre en oeuvre l'augmentation de saturation de couleur décrite pré- 30 cédemment, et un afficheur 1008 (DISPLAY) est par exemple prévu pour afficher l'image résultante. Une entrée d'utilisateur 1010 (USER INPUT) permet par exemple à l'utilisateur de sélectionner une image dans la mémoire d'image 1002 pour traitement, et aussi pour définir optionnellement un facteur de saturation d'utili- 35 sateur. B10813 - 10-GR2-1056 20 Le dispositif 1000 est par exemple un PC (ordinateur personnel) ou un ordinateur portable, une caméra numérique, ou un autre dispositif électronique capable de traiter une image numérique. Dans certains modes de réalisation, les pixels d'une image à traiter selon les procédés décrits ici pourraient être fournis au dispositif 1000 en flux continu, auquel cas la mémoire d'image 1002 pourrait être omise. L'avantage de générer un facteur de saturation maximum 10 pour un pixel sur la base de la plus basse et de la plus élevée des valeurs RGB est qu'on peut éviter un écrêtage des valeurs RGB, et qu'ainsi la teinte du pixel peut être conservée. En outre, un avantage du fait de déterminer un facteur de saturation sur la base de l'une des valeurs parmi saturation 15 de couleur, teinte et luminance d'un pixel, est que la saturation de couleur peut être limitée automatiquement sur la base des caractéristiques de l'image. En outre, un avantage du fait de réaliser une modification de saturation de couleur à deux étages, d'abord en modi- 20 fiant la distance entre la luminance et chacun des canaux RGB tout en maintenant la luminance, et ensuite en modifiant la distance entre le plus élevé des canaux RGB et chacun des autres canaux RGB, est qu'on peut appliquer une plus large augmentation de saturation. En outre, la plus grande partie de l'augmentation 25 de saturation est appliquée d'une manière sûre, tout en préservant la luminance, puis une saturation de couleur additionnelle peut être appliquée à des teintes spécifiques, ce qui par exemple diminue la luminance tout en préservant la teinte, et conduisant à une qualité d'image améliorée, par 30 exemple des densités de couleur plus sombres et/ou plus profondes. Cela peut être particulièrement avantageux dans le cas de ciel bleu. Avec la description ainsi faite d'au moins un mode de réalisation de l'invention, diverses altérations, modifications 35 et améliorations apparaîtront facilement à l'homme de l'art. B10813 - 10-GR2-1056 21 Par exemple, il sera clair pour l'homme de l'art que, bien que les modes de réalisation décrivent ici la modification de la saturation de couleur d'un pixel ou de tous les pixels d'une image, dans des variantes de réalisation, seuls certains pixels d'une image peuvent être sélectionnés pour modification. En outre, il sera clair pour l'homme de l'art que, alors que la figure 10 concerne une mise en oeuvre logicielle des modes de réalisation décrits ici, à titre de variante, les modes de réalisation décrits ici pourraient être mis en oeuvre au moins partiellement sous forme de matériel. En outre, les diverses caractéristiques décrites en relation avec les modes de réalisation de la présente description pourraient être combinées dans des variantes de réalisation selon des combinaisons quelconques. REVENDICATIONS1. Procédé pour augmenter la saturation de couleur des valeurs RGB (rouge, vert, bleu) d'au moins un pixel d'une image, le procédé comprenant les étapes suivantes : calculer une valeur de luminance (Y) sur la base de 5 valeurs RGB d'un premier pixel ; calculer une première augmentation maximum (SFmaxH) de la saturation de couleur sur la base de la plus élevée parmi les valeurs RGB et de la valeur de luminance ; calculer une deuxième augmentation maximum (SFmaxL) de 10 la saturation de couleur sur la base de la plus faible parmi les valeurs RGB et de la valeur de luminance ; et augmenter la saturation de couleur du premier pixel sur la base des première et deuxième augmentations maximum. 2. Procédé selon la revendication 1, comprenant en 15 outre, avant l'étape d'augmentation de la saturation de couleur du premier pixel, une étape de calcul d'un facteur de saturation SF à appliquer aux valeurs RGB selon la formule suivante : SFp = MIN(SFmaxL, SFmaxH, SFUSER), où SFmaxi, est la première augmentation maximum, SFmaxH est la 20 deuxième augmentation maximum, et SFUSER est une augmentation de saturation de couleur définie par l'utilisateur, la saturation de couleur du premier pixel étant augmentée du facteur SF 10' 3. Procédé selon la revendication 1 ou 2, dans lequel la première augmentation maximum SFmaxH et la deuxième 25 augmentation maximum SFmaxi, sont calculées sur la base des formules suivantes : SFmaxH = (Cmax- Y)/(max(Rp,Gp,Bp) -Y) SFmaxL = (Y-Cmin)/(Y-min(Rp,Gp,Bp)) où Cmax est la limite supérieure du code représentant chacune 30 des valeurs RGB, Cmin est la limite inférieure du code représentant chacune des valeurs RGB, Y est la valeur de luminance, et RP' GP et B sont les valeurs RGB.B10813 - 10-GR2-1056 23 4. Procédé selon l'une quelconque des revendications 1 à 3, dans lequel la valeur de luminance Y est calculée par la formule suivante : Y = WRRp WGGp WBBp où Rp, Gp et Bp sont les valeurs RGB, et WR, WG et WB sont des coefficients de pondération constants correspondant aux valeurs R, G et B, respectivement. 5. Procédé selon l'une quelconque des revendications 1 à 4, dans lequel l'étape d'augmentation de la saturation de cou-10 leur du premier pixel comprend les étapes suivantes : convertir les valeurs RGB en valeurs de luminance et de chrominance ; appliquer un gain aux valeurs de chrominance ; et convertir les valeurs de luminance et de chrominance 15 pour revenir en valeurs RGB. 6. Procédé selon la revendication 5, dans lequel l'augmentation de la saturation de couleur du premier pixel comprend la réalisation du calcul matriciel suivant : où R' p G' p B' P_ Rp, = WR - WR).KSFp WGx(1 - SFp) WRx(1 - SFp) les Rp Gp Bp Gp WRx(1 - SFp) WG - WGWSFp WBX(1 - SF ) WRX(1 - SFp) WGx(1 - SFp) WB + - WRWSFp_ et Bp sont les valeurs RGB, R'p, G'p, et B'p sont 20 valeurs RGB après l'augmentation de saturation de couleur, WR, WG et WB sont des coefficients de pondération constants correspondant aux valeurs R, G et B respectivement, et SFp est un facteur de saturation déterminé sur la base des première et deuxième augmentations de saturation maximum. 25 7. Procédé de correction de saturation de couleur d'une image, comprenant l'augmentation de la saturation de couleur de chaque pixel de l'image selon le procédé de l'une quelconque des revendications 1 à 6. 8. Dispositif pour augmenter la saturation de couleur 30 des valeurs RGB (rouge, vert, bleu) d'au moins un pixel d'une image, le dispositif comprenant une mémoire agencée pour mémoriser ladite image, et un processeur agencé pour :B10813 - 10-GR2-1056 24 calculer une valeur de luminance (Y) sur la base de valeurs RGB d'un premier pixel ; calculer une première augmentation maximum (SFmaxH) de la saturation de couleur sur la base de la plus élevée palud_ les 5 valeurs RGB et de la valeur de luminance ; calculer une deuxième augmentation maximum (SFmaxL) de la saturation de couleur sur la base de la plus basse parmi les valeurs RGB et de la valeur de luminance ; et augmenter la saturation de couleur du premier pixel 10 sur la base des première et deuxième augmentations maximum.