Brevet FR2977054A1 — publié le 20121228

PROCEDE D'AMELIORATION DE LA PERCEPTION VISUELLE D'UNE IMAGE NUMERIQUE Domaine technique de l'invention L'invention est relative à un procédé d'amélioration de la perception visuelle d'une image numérique, notamment de sa luminosité et/ ou de son contraste. État de la technique Une photographie de bonne qualité est une photographie dont le contraste et la luminosité sont correctement dosés. io Or, dans un appareil de prise de vue, le capteur d'image peut seulement être réglé de manière globale en fonction de zones de mesure de la scène. Il en résulte souvent une sur-exposition de certaines zones de l'image et/ou une sous-exposition de certaines autres zones de l'image. Pour améliorer la luminosité d'une image numérique, il est possible de modifier 15 de manière globale la courbe de tonalité de l'image. Sur la figure 1, la courbe de tonalité correspond à une droite se présentant sous la forme d'une diagonale de carré. La droite comporte une première extrémité représentative d'une valeur minimale de pixel et une seconde extrémité représentative d'une valeur maximale de pixel dans l'image considérée. Les 20 bornes 0 et MaxCode représentent les valeurs que peuvent prendre les pixels en fonction de leur codage, par exemple si un pixel est codé sur 8 bits, il pourra prendre 256 valeurs différentes. En fonction du codage, la valeur minimale des pixels de l'image, dont les coordonnées sont (0,0), représente un pixel noir, et la valeur maximale 25 représente un pixel blanc dont les coordonnées sont (MaxCode, MaxCode). En déformant la droite entre sa première extrémité (0,0) et sa seconde extrémité (MaxCode, MaxCode), il est possible de modifier les ombres, les tons moyens (gamma), et les hautes lumières. Ainsi, si l'on veut accentuer le détail des ombres, on les éclaircit en courbant vers le haut la partie initiale de la 30 droite. Si l'on veut accentuer les détails des hautes lumières, on les assombrit en courbant vers le bas la partie finale de la droite. La première méthode a tendance à faire apparaître du bruit dans les ombres, tandis que la seconde méthode a tendance à réduire le contraste de l'image. Afin de régler le contraste sur une image numérique, il est possible de modifier de manière globale l'histogramme de l'image. Sur la figure 2, l'histogramme permet de visualiser et de comptabiliser le nombre de pixels en fonction de leurs valeurs. Les pixels foncés de l'image sont sur la gauche de l'histogramme, et les pixels clairs sont sur la droite de l'histogramme. En général, chaque barre de l'histogramme comptabilise les pixels de l'image ayant une même valeur représentative de la barre associée. Afin d'améliorer le contraste, on pratique souvent l'étirement de l'histogramme de l'image. Sur l'exemple représenté à la figure 2, l'histogramme comporte peu de pixels ayant des valeurs proches de 0 et peu de pixels ayant des valeurs proches de MaxCode. L'étirement d'histogramme (aussi appelé "linéarisation d'histogramme" ou "expansion de la dynamique") consiste à étaler la plage centrale, la plus « peuplée », sur toute la plage de l'histogramme. On répartit ainsi au mieux les intensités les plus représentatives sur l'échelle des valeurs disponibles. Ceci a pour conséquence de rendre les pixels clairs encore plus clairs, et les pixels foncés proches du noir. Cette méthode a néanmoins pour conséquence de réduire le détail des ombres et des hautes lumières. En général, pour améliorer la perception visuelle, on souhaite qu'une image soit contrastée tout en offrant un niveau de détail suffisant dans les ombres et les hautes lumières. Cela revient à améliorer la luminosité et le contraste selon les deux techniques exposées ci-dessus. Toutefois, dans des conditions difficiles d'exposition (par exemple en contre-jour) l'une des techniques peut détruire le bienfait de l'autre, notamment lorsqu'elles sont utilisées de manière globale sur l'image. Pour améliorer cette situation, on connaît des techniques qui agissent de manière locale. Il s'agit par exemple des techniques de « masquage flou » ou USM (du terme anglais « UnSharp Masking ») et de l'amélioration locale de contraste, variante de la technique USM. Ces techniques basées sur la détection de contours sont toutefois complexes à mettre en oeuvre, spécialement en temps réel dans un appareil de prise de vue. Résumé de l'invention On constate qu'on a besoin d'une technique de traitement local d'images numériques qui offre des résultats satisfaisants tout en étant utilisable en temps réel avec des moyens de calcul peu puissants. On tend à satisfaire ce besoin en prévoyant un procédé d'amélioration de la perception visuelle d'une image numérique comportant les étapes suivantes : diviser l'image numérique en une pluralité de zones répétitives simples ; modifier la courbe de tonalité et/ou l'histogramme de chaque zone en vue d'améliorer la perception visuelle de la zone correspondante, et ; lisser les raccords entre les zones adjacentes. De préférence, la modification de la courbe de tonalité d'une zone comporte les étapes suivantes : déterminer un premier ensemble de pixels correspondant à des parties sous-exposées de la zone et un second ensemble de pixels correspondant à des parties sur-exposées de la zone ; déterminer un premier point de contrôle représentatif de la valeur moyenne des pixels du premier ensemble de pixels ; déterminer un second point de contrôle représentatif de la valeur moyenne des pixels du second ensemble de pixels, et ; faire tendre la courbe de tonalité vers une courbe de Bézier fonction des premier et second points de contrôle. De préférence, l'étape de modification de l'histogramme d'une zone comporte les étapes suivantes : déterminer un histogramme à partir des valeurs des pixels de la zone ; déterminer une première valeur de référence des pixels, en dessous de laquelle se trouve un premier pourcentage de référence de pixels de la zone ; déterminer une seconde valeur de référence des pixels, au dessus de laquelle se trouve un second pourcentage de référence de pixels de la zone, et ; étirer l'histogramme en répartissant sur la largeur de l'histogramme les fréquences d'apparition des pixels situés entre les première et seconde valeurs de référence. Description sommaire des dessins D'autres avantages et caractéristiques ressortiront plus clairement de la description qui va suivre de modes particuliers de réalisation donnés à titre d'exemples non limitatifs et illustrés à l'aide des dessins annexés, dans lesquels : 3 la figure 1 représente une courbe de tonalité d'une image numérique, la figure 2 représente un histogramme d'une image numérique, la figure 3 illustre schématiquement les différentes étapes d'un procédé d'amélioration de perception visuelle d'une image, la figure 4 illustre une image divisée en zones selon une étape du procédé, la figure 5 illustre schématiquement différentes étapes d'un procédé pour améliorer la luminosité, la figure 6 illustre un histogramme d'une zone de l'image, ~o les figures 7 à 9 illustrent différentes courbes de tonalité utilisées pour modifier le rendu d'une zone correspondante, les figures 10 à 14 illustrent des histogrammes permettant de déterminer de manières différentes une valeur de référence des pixels sombres et une valeur de référence des pixels clairs, et 15 - les figures 15 et 16 illustrent des courbes de pondération des valeurs de références de pixels. Description de modes préférentiels de réalisation. Les procédés décrits ci-après diffèrent de l'art antérieur en ce que l'image est 20 divisée en zones répétitives simples, par exemple une matrice de carrés, et que le contraste ou la luminosité de chaque zone est modifié de manière indépendante. La division de l'image en zones répétitives simples augmente la probabilité pour que les pixels de chaque zone soient de valeurs proches. Dès lors, les modifications apportées à la zone ne présentent pas les défauts de 25 l'approche globale où tous les pixels de l'image sont modifiés. La division en zones simples répétitives, puis la modification des courbes de tonalité ou des histogrammes dans chaque zone nécessite nettement moins de ressources de calcul que les algorithmes de la technique USM. Après modifications, il reste à effacer les transitions entre les zones adjacentes, ce qui est également prévu dans les procédés décrits ici. Sur la figure 3, le procédé d'amélioration de la perception visuelle d'une image numérique comporte une première étape E1 dans laquelle l'image numérique est divisée en une pluralité de zones répétitives simples. Un exemple de division en zones est décrit ultérieurement en relation avec la figure 4. Dans une étape E2, on modifie la courbe de tonalité et/ou l'histogramme de chaque zone en vue d'améliorer la perception visuelle de la zone correspondante. Par amélioration de la perception visuelle, on entend que la ~o modification de la courbe de tonalité permet d'améliorer la luminosité et de faire ressortir les détails de parties sous-exposées et de parties sur-exposées de la zone, et que la modification de l'histogramme permet d'augmenter le contraste de la zone. Dans une étape E3, les raccords entre les zones adjacentes sont lissés en vue 15 d'obtenir une image cohérente. Par image cohérente, on entend que les zones traitées indépendamment se raccordent sans que l'ceil humain puisse déceler les bords des zones. L'étape de lissage peut être réalisée par des algorithmes connus de raccordement d'images du point de vue de la luminosité et des couleurs. Un tel 20 algorithme peut être l'interpolation bilinéaire utilisée dans la réalisation d'images panoramiques à partir de plusieurs prises de vues. Par exemple, un pixel donné pourra être modifié en fonction de pixels adjacents. Les étapes de lissage entre deux images, ou lors d'une transformation d'une image, utilisent classiquement l'interpolation bilinéaire. L'interpolation peut se faire entre différents pixels, un 25 même pixel peut être transformé de quatre façons différentes. En fait, il est possible d'interpoler les transformations de chacune des quatre zones adjacentes sur un pixel courant. Autrement dit, à partir d'un seul pixel on obtient quatre pixels. Suivant la distance du pixel courant à la zone considérée, le poids de chacune des quatre transformations est différent pour pondérer le pixel à 30 traiter. À la sortie de l'étape E3 de lissage, chaque pixel de l'image d'origine a été modifié selon au moins un gain/Offset déterminé par les étapes du procédé. 2977054 s Ces étapes d'amélioration de la perception visuelle de l'image peuvent être appliquées sur une image individuelle, ou sur un ensemble d'images d'un flux d'un capteur d'appareil de prise de vue. Les images du flux étant très rapprochées les unes des autres, elles sont représentatives d'une même scène, 5 et sont considérées comme identiques du point de vue des réglages de perception visuelle à utiliser. Ainsi, chaque modification d'un pixel (par exemple une modification de la courbe de tonalité et/ou de l'histogramme, et le lissage) de la première image de la scène peut être enregistrée sous la forme d'un gain à appliquer à un même pixel de toutes les images de la scène. Chaque étape peut aussi être réalisée sur une image différente du flux. La figure 4 illustre un exemple de division en zones. L'image représentative par exemple d'une scène comportant un cercle, une croix et un arc de cercle, est divisée en une matrice 3x4 de carrés 1 ou de rectangles, d'autres formes pourront néanmoins être envisagées. La division sous forme de matrice est beaucoup plus simple à définir que la détection de contours utilisée dans l'art antérieur. De préférence, il est possible de considérer que les zones répétitives simple sont des zones de dimensions identiques se répétant dans l'image de sorte que chaque pixel de l'image appartienne au moins à une zone qui lui est associée. La figure 5 illustre un mode de mise en oeuvre particulier du procédé, dans lequel on cherche à améliorer la luminosité par modification de la courbe de tonalité d'une zone. Cette mise en oeuvre est, de préférence réalisée pour chaque zone. L'étape de modification de la courbe de tonalité comporte une étape E4 de détermination d'un premier ensemble de pixels représentatif de parties sous-exposées de la zone, et d'un second ensemble de pixels représentatif de parties sur-exposées de la zone. Autrement dit, on divise virtuellement la zone en deux sous-zones différentes, l'une sur-exposée, ci- après dénommée « zone claire » et l'autre sous-exposée, ci-après dénommée « zone sombre ». Les deux sous-zones peuvent éventuellement se chevaucher sur une bande de transition formant une intersection. Autrement dit, les zones claire et sombre peuvent avoir des pixels en commun. Le chevauchement permet de limiter les distorsions dans les tons moyens de l'image, particulièrement présent avec des gains forts mais inversés dans chacune des zones claire et sombre. Le chevauchement évite de modifier les courbes de tonalité au-delà du raisonnable, ce qui aurait pour conséquence de dénaturer l'image finale. Une étape E5 permet de déterminer un point de contrôle P, représentatif de la valeur moyenne Vmi des pixels de la zone sombre, et un point de contrôle P2 5 représentatif de la valeur moyenne Vm2 des pixels de la zone claire. Ces points de contrôle P1 et P2 sont ensuite utilisés dans une étape E6 pour faire tendre, et donc ajuster, la courbe de tonalité de la zone vers une courbe de Bézier fonction des points de contrôle P1, P2. Selon un exemple, un pixel est considéré comme faisant partie de la zone 10 sombre si sa valeur est comprise entre 0 et 660/0 de MaxCode. De manière analogue, un pixel est considéré comme faisant partie de la zone claire si sa valeur est comprise entre MaxCode moins 660/0 de MaxCode et MaxCode. La figure 6 permet d'illustrer à titre d'exemple comment les pixels d'une même zone sont répartis dans les zones claire et sombre. Etant donné que l'on parle 15 d'un pourcentage de pixels de la dynamique entre 0 et MaxCode, il n'y a pas besoin d'établir au préalable l'histogramme de la figure 6 pour déterminer la répartition. Sur la figure 7, la courbe de tonalité, avant son ajustement, se présente sous la forme d'une droite dont l'une des extrémités représente le point (0, 0), par 20 exemple représentatif d'un pixel noir, et l'autre extrémité le point (MaxCode, MaxCode), par exemple représentatif d'un pixel blanc. Les points de contrôle P, et P2 peuvent, en plus des valeurs moyennes associées Vmi et Vm2, être représentatifs de valeurs d'exposition cible Vc des pixels. La valeur d'exposition cible Ve peut être celle utilisée par une boucle 25 d'auto-exposition d'un capteur ayant enregistré l'image, ou une valeur supérieure à celle donnée par la boucle pour simuler un éclairement plus important de la scène photographiée. Cette valeur d'exposition cible Vc est, de préférence, égale à 270/0 de MaxCode lorsque la plage de la dynamique s'étend de 0 à MaxCode. 30 Sur la figure 7, le point de contrôle P, a pour coordonnées la valeur moyenne Vmi des pixels de la zone sombre, et la valeur d'exposition cible Vc des pixels. Le point de contrôle P2 a pour coordonnées la valeur moyenne Vm2 des pixels de la zone claire, et la valeur MaxCode - Vc. Sur la figure 8, la courbe de tonalité a été remplacée par une courbe de Bézier construite à partie des points de contrôle P, et P2, et des mêmes extrémités que la courbe de la figure 7. Le détail des ombres a été accentué en courbant vers le haut la partie initiale de la droite (partie sur la gauche à la figure 8), et le détail des hautes lumières a été accentué en courbant vers le bas la partie finale de la droite (partie de droite à la figure 8). Ces courbures dépendant des points P, et P2 sont donc fonction des propriétés de la zone, et non de l'ensemble de l'image. Selon une variante illustrée à la figure 9, les points de contrôle P, et P2 sont obtenus à l'aide de points intermédiaires respectifs Pi, et Pie. Ces points intermédiaires Pi, et Pie sont obtenus selon la méthodologie décrite ci-dessus pour les points P, et P2. Le point de contrôle P, sera placé sur la droite passant par les coordonnées (0,0) et le point Pii. Le point de contrôle P2 sera placé sur la droite passant par les coordonnées (MaxCode,MaxCode) et le point Pie. La position du point de contrôle P, peut alors être déterminée en fonction d'une valeur supplémentaire représentative d'une force Fnoir partant du point (0,0) et pondérant la position du premier point de contrôle P, sur la droite associée. En fait, dans l'exemple, plus on cherchera à accentuer le détail des ombres plus la force Fno;r sera grande.Typiquement, il sera possible de proposer à l'utilisateur différentes forces. Ces forces peuvent être adaptées en fonction des caractéristiques du capteur d'image utilisé comme par exemple son bruit. En fonction du capteur, pour une valeur d'illumination de ce dernier, on pourra associer un seuil de bruit toléré, les valeur des forces pouvant varier tant que le seuil n'est pas atteint. De la même manière, le point de contrôle P2 peut être déterminé en fonction d'une valeur supplémentaire représentative d'une force Fblanc partant du point (MaxCode,MaxCode) et pondérant la position du point de contrôle P2 sur la droite associée. De préférence, les valeurs moyennes Vmi et Vm2 utilisées pour déterminer les points de contrôle P, et P2, ou les points intermédiaires Pi, et Pie, sont calculées en prenant en compte la valeur en luminance ou la valeur de la composante verte des pixels qui est souvent la plus proche de la luminance. Selon une variante, il est possible de calculer une valeur moyenne pour chacun des canaux (par exemple les composantes Rouge, Verte, Bleue) des pixels de la zone claire et pour chacun des canaux des pixels de la zone sombre. Pour déterminer le point de contrôle P, ou le point intermédiaire Pii, on prend la valeur maximum des valeurs moyennes des canaux de la zone sombre. Pour déterminer le point de contrôle P2 ou le point intermédiaire Pie, on prend la valeur minimum des valeurs moyennes des canaux de la zone claire. Ceci permet de préserver les nuances de ton de l'image, même avec une image localement à dominante bleue ou rouge. Lorsque tous les points de contrôle sont déterminés pour toutes les zones, il est possible, avant l'étape de modification des courbes de tonalité des zones, d'ajuster les valeurs des points de contrôles P1, P2 d'une zone par rapport à une zone adjacente pour limiter les écarts relatifs entre les deux zones. Pour ajuster les points de contrôle P1, il est possible de déterminer pour chaque zone une droite dont les extrémités sont définies par les points (0,0) et P1. Les pentes des droites obtenues sont alors triées de la pente la plus proche de y=x (soit une pente de 1) à la pente la plus éloignée de y=x. En considérant la zone dont la pente est la plus proche de 1, les pentes des zones adjacentes à la zone considérée sont modifiées pour qu'un critère de différence de pente soit respecté. La modification des pentes entraîne la modification des points de contrôle P, des zones adjacentes en fonction de la valeur du point de contrôle P, de la zone considérée et du critère de différence. Par exemple, si une zone adjacente de la zone considérée a une valeur de point de contrôle P1 comprise entre la valeur du point de contrôle P1 de la zone considérée et la valeur du point de contrôle P, de la zone considérée plus le critère de différence, la valeur du point de contrôle P1 de la zone adjacente ne sera pas modifiée, sinon la valeur du point de contrôle P, de la zone adjacente sera modifiée de sorte à être égale à la valeur du point de contrôle P, de la zone considérée plus le critère de différence. Les pentes des différentes zones sont ensuite re-triées, et on change de zone considérée en prenant la zone ayant la valeur de pente associée la plus proche de la zone considérée précédente. Le point de contrôle d'une zone déjà considérée ne peut être modifié. Le même principe est appliqué aux points de contrôles P2 pour des pentes définies par des droites dont les extrémités sont définies par les points P2 et (MaxCode, MaxCode). Dans l'exemple, les pentes sont toutes supérieures ou égales à 1. De préférence, le critère de différence susmentionné est une différence de pente de 100/0 maximum par rapport à la valeur de la zone considérée. Le procédé d'amélioration de la luminosité permet entre autres d'améliorer le 35 rendu des images ayant une dynamique élevée, ou dont la prise de vue est réalisée en contre-jour. En sous-exposant, le procédé permet notamment de diminuer le nombre de pixels saturés (pixels blancs) dans les hautes lumières, tout en retrouvant de l'information dans les basses lumières en réeexposant les pixels concernés. Le procédé d'amélioration de la perception visuelle de l'image peut aussi comporter de manière indépendante, ou en combinaison avec les étapes relatives à l'amélioration de la luminosité (traitement de la courbe de tonalité), des étapes d'amélioration du contraste de l'image par traitement d'histogramme. Lorsqu'il est pris de manière indépendante, le procédé d'amélioration du contraste comporte, à la sortie de l'étape E1 de la figure 3, la détermination, pour chaque zone d'un histogramme à partir des valeurs des pixels de la zone. Sur la figure 10 à partir de l'histogramme H1, on détermine, pour la zone correspondante, une valeur de référence Prefi, correspondant à une valeur en dessous de laquelle se trouve un pourcentage de référence de pixels de la zone, et une autre valeur de référence Pref2, correspondant à une valeur au-dessus de laquelle se trouve le pourcentage de référence de pixels de la zone. Le pourcentage de référence de pixels visé ci-dessus est, de préférence, compris entre 0,2 °/O et 1 °/O du nombre de pixels de la zone. Une plage plus grande peut être préférée en fonction du capteur et/ou de l'optique utilisée pour photographier la scène représentative de l'image. Les valeurs de référence Prefi et Pref2 peuvent également être déterminées à partir de pourcentages de référence de pixels différents. Le pourcentage de référence de pixels correspond aux modifications appliquées typiquement aux images à partir des valeurs issues d'un capteur pour en améliorer le contraste par modification de l'histogramme. L'histogramme H1 représentatif d'une zone comporte une borne inférieure indiquée par 0 et une borne supérieure indiquée par MaxCode. Ces bornes permettent de coder les différentes valeurs que peuvent prendre un pixel sur la largeur de l'histogramme. Tous les pixels de la zone concernée sont répartis dans cet histogramme H1. 0 peut représenter un pixel noir et MaxCode un pixel blanc, dès lors la valeur de référence Prefi est représentative des pixels sombres, et la valeur de référence Prefi est représentative des pixels clairs. Il Ainsi, si on veut préserver les hautes lumières, on choisira un pourcentage de référence associé à Pref2 très faible dans la partie haute de l'histogramme. Dans la partie basse de l'histogramme représentative de la partie sombre, on aura tendance à garder les pixels sombres ou faire tendre les pixels gris vers le noir, le pourcentage de référence choisi pour être associé a Prefi sera donc de préférence plus important que celui associé à Pref2. Après avoir déterminé les valeurs de référence Prefi et Pref2, l'histogramme de la zone associée peut être étiré de sorte à répartir les fréquences d'apparition des pixels situés entre les valeurs de référence Prefi et Pref2 des pixels sur la largeur de l'histogramme. À titre d'exemple, l'étirement d'histogramme d'une zone peut être réalisé en modifiant chaque pixel de la zone en appliquant la formule output.,y = (inpuÇ,y - Prefl) x MaxCode Pref 2 - Pref 1 où outputx,y est la valeur de sortie du pixel de coordonnées x et y après 15 étirement, et inputxs est la valeur du pixel de coordonnées x et y avant étirement. Les étapes de détermination de l'histogramme, des valeurs de référence Prefi et Pref2, et d'étirement de l'histogramme peuvent être réalisées successivement pour une zone déterminée, avant de passer à une zone suivante. II est aussi 20 possible d'établir dans un premier temps tous les histogrammes, dans un deuxième temps toutes les valeurs de référence, et enfin dans un troisième temps d'étirer tous les histogrammes. Ceci permet, si on le souhaite, de modifier les deux valeurs de référence Prefi et Pref2 d'une zone donnée en fonction des valeurs de références d'une, ou de zones adjacentes afin d'éviter 25 une trop grande disparité des histogrammes étirés de deux zones adjacentes qui deviendraient alors difficiles à lisser. Cette étape peut être réalisée en limitant les écarts relatifs entre zones adjacentes pour chacune des valeurs de référence Prefi et Pref2. Pour Prefi, les zones sont triées de manière croissante en fonction de la valeur de référence Prefi, puis en partant de la valeur minimale 30 (appelée « zone considérée »), les valeurs Prefi des zones adjacentes sont modifiées en fonction de la valeur Prefi de la zone considérée. Par exemple, si une zone adjacente a une valeur Prefi supérieure à la valeur Frei de la zone considérée plus un seuil prédéterminé, on ajustera la valeur de Pref1 de la zone adjacente à la valeur Pref1 de la zone considérée plus le seuil, et si la zone adjacente a une valeur Pref1 comprise entre la valeur Pref1 de la zone considérée et Prefi de la zone considérée plus le seuil on ne changera pas la valeur Pref1 de la zone adjacente. Ensuite, les zones sont re-triées de manière croissante selon Pref1 et l'on change de zone considérée en prenant une nouvelle zone considérée dont la valeur de Pref1 est la plus proche de celle la zone considérée précédente. Une valeur de référence Pref1 d'une zone considérée déjà traitée ne sera pas modifiée. Ainsi, l'ordre des valeurs Pref1 des zones considérées ne change pas avec le tri. Le fait de commencer par la plus petite valeur permet de préserver la valeur qui étire le moins. Pour Pref2, le principe est le même sauf que les zones sont triées de manière décroissante selon Pref2 puis considérées de la plus grande à la plus petite valeur Pref2. L'ajustement commence alors à partir de la zone considérée associée à plus grande valeur de référence Pref2, le seuil (pouvant être différent de celui de Pref1) étant à ce moment soustrait à la valeur Pref2 de la zone considérée pour réaliser l'ajustement des valeurs Pref2 des zones adjacentes à la zone considérée. Une valeur Pref2 d'une zone adjacente à la zone considérée et comprise entre la valeur Pref2 de la zone considérée et la valeur Pref2 de la zone considérée moins le seuil n'est pas changée, et une valeur Pref2 d'une zone adjacente inférieure à la valeur de la zone considérée moins le seuil étant ajustée à la valeur de Pref2 de la zone considérée moins le seuil. Le seuil susmentionné peut correspondre à une différence de 5% de la valeur considérée. À la suite de l'étirement de l'histogramme des différentes zones, ces dernières 25 sont traitées pour lisser le passage entre deux zones adjacentes en vue d'obtenir une image cohérente. Sur la figure 10, chaque barre de l'histogramme H1 comptabilise les occurrences d'une seule valeur spécifique de pixel. Typiquement chaque barre de l'histogramme est associée à un registre mémoire stockant le nombre 30 d'occurrences dans la zone d'une valeur de pixel associée. Ainsi, en fonction du pourcentage de référence de pixels et connaissant le nombre de pixels de la zone, les valeurs de référence Pref1 et Pref2 peuvent être déterminées avec précision. Cependant, si on applique cette méthodologie sans optimisation, on a besoin 35 d'autant de registres que de valeurs possibles pour l'histogramme H1, c'est-à- dire MaxCode+1, ce qui n'est pas envisageable dans un appareil de prise de vue grand public. Dès lors, il existe un besoin d'optimiser la détermination des valeurs de référence Pref, et Pref2 pour limiter le nombre de registres nécessaires. Les étapes décrites ci-après, basées sur l'utilisation d'un histogramme compact et d'un histogramme partiel, répondent à ce besoin. Sur la figure 11, la détermination de l'histogramme comprend la formation d'un histogramme compact Hp prenant en compte tous les pixels de la zone correspondante. Chaque barre de l'histogramme compact Hp consolide, c'est-à-dire comptabilise, les occurrences de pixels dans une gamme de valeur bornée entre une valeur minimum et une valeur maximum associées. Dans l'exemple particulier de la figure 11, l'histogramme compact Hp comprend dix barres consolidées, chaque barre étant associée à 10 valeurs, dans le cadre où les valeurs des pixels de chaque zone sont codées sur 100 valeurs (de 0 à 99). 15 À la lecture de cet histogramme compact Hp et connaissant le nombre de pixels de la zone, il est possible de déterminer dans quelle barre consolidée bref, de l'histogramme compact Hp est située la valeur de référence Prefi. En effet, on sait que le pourcentage de référence de pixels représente, en partant de la gauche de l'histogramme, l'ensemble des pixels de la première barre, de la 20 seconde barre, et d'une partie de la troisième barre. Cependant, la lecture de l'histogramme compact Hp ne permet d'associer qu'une valeur approchée de la valeur de référence cherchée. Il est juste possible, dans l'exemple considéré, de savoir que la valeur exacte est comprise dans la barre consolidée bref, entre les bornes 20 et 29. 25 La figure 12 illustre la réalisation d'un histogramme partiel (dans le sens où il est détaillé de manière localisée seulement) permettant de raffiner la détermination de la valeur de référence Prefi. Dans cet histogramme partiel Hp, les pixels dont la valeur est strictement inférieure à la borne minimum de la barre bref, sont comptabilisés dans une seule barre consolidée bo. La barre bref, 30 est alors segmentée pour raffiner la répartition des valeurs des pixels. Par « raffiner », on entend que la barre bref, est divisée en une pluralité de barres, chaque barre de ladite pluralité de barres correspondant, de manière classique, à une valeur de pixel unique, on saura alors déterminer la valeur exacte de la valeur de référence Pref, dans l'histogramme partiel parmi les quelques barres issues de la segmentation de la barre bref,. Selon une variante, par « raffiner » on entend chacune des barres de la pluralité de barres correspond à quelques valeurs de pixels de la barre bref,, on saura alors déterminer une valeur approchée de la valeur de référence Prefi. Cette détermination de l'histogramme réalisée à partir d'un histogramme compact Hc et d'un histogramme partiel Hp permet de limiter les registres nécessaires pour déterminer la valeur de référence Prefi - La réalisation de l'histogramme compact Hc tel que défini permet, dans l'exemple particulier des figures 11 et 12, de limiter le nombre de registres à 10 pour l'histogramme compact. La réalisation de l'histogramme partiel nécessite 11 registres, dont 10 pouvant être réutilisés de l'histogramme compact. Dans la réalisation de l'histogramme partiel de la figure 12, les pixels dont les valeurs sont situées au-dessus de la borne maximum de la barre brefs n'ont pas besoin d'être comptabilisés dans l'histogramme partiel. Le même principe s'applique à la détermination de la valeur de référence Pref2 a l'aide d'une barre déterminée bref2 en partant de la droite de l'histogramme Hc. Sur la figure 13, dans un histogramme partiel Hp aidant à déterminer la valeur de référence Pref2, les pixels dont les valeurs sont strictement supérieures à la borne maximum de la barre bref2 sont comptabilisés dans une seule barre bn (pixels dont les valeurs sont comprises entre 90 et 99) et la barre déterminée bref2 (pour les valeurs de 80 à 89) est segmentée pour raffiner la répartition des valeurs afin de sélectionner avec précision à partir de l'histogramme partiel Hp la valeur de référence Pref2. Les pixels de la zone dont les valeurs sont situées en-dessous de la borne minimum de la barre déterminée bref2 ne sont pas comptabilisés dans l'histogramme partiel Hp. Selon une variante optimisée, un unique histogramme complet Hc et un unique histogramme partiel sont nécessaires pour déterminer les deux valeurs de référence Prefi et Pref2. Dans cette variante, à partir de l'histogramme compact Hc de la figure 11 une 3o barre bref, comportant la valeur de référence Prefi, et une barre bref2 comportant la valeur de référence Pref2 sont déterminées comme décrit ci-dessus. La figure 14 illustre l'histogramme partiel unique réalisé par la suite. Cet histogramme partiel Hp est réalisé de la manière suivante : les pixels de valeur strictement inférieure à la valeur minimum de la barre bref, sont comptabilisés dans une seule barre bo, les pixels de valeur strictement supérieure à la valeur maximum de la barre bref2 sont comptabilisés dans une seule barre bn, les pixels de valeur comprise au dessus la borne maximum de la barre brefl et en dessous de la borne minimum de la barre bref2 ne sont pas comptabilisés, et, les barres brefl et bref2 sont raffinées, comme décrit précédemment, de sorte à déterminer au plus juste les valeurs de référence Prefl et Pref2. Dès lors, dans cette variante, il est possible de limiter le nombre de registres à 10 lors d'une première passe des pixels de la zone pour déterminer l'histogramme complet Hc, puis à 22 lors d'une seconde passe des pixels de la zone pour déterminer l'histogramme partiel Hp, alors que dans le mode de réalisation de la figure 10, 100 registres auraient été nécessaires. De plus, cette variante limite à deux passes l'analyse des pixels alors que pris indépendamment, les déterminations de Pref1 et Pref2 auraient nécessité quatre passes des pixels, les ressources sont donc économisées. De préférence, lors de la réalisation du ou des histogrammes, la valeur d'un pixel correspond à sa valeur en luminance. La valeur en luminance est préférée car elle permet de pondérer les trois composantes de couleur pour obtenir une unique valeur, et donc de réaliser un seul histogramme. À la place de la valeur en luminance, il est aussi possible d'utiliser la valeur de la composante verte de l'image lorsque cette dernière est codée en RGB (canaux rouge, vert, bleu). Selon une variante, le pixel ayant trois composantes de couleurs rouge, vert, et bleu, ayant chacune une valeur propre, comprise entre 0 et MaxCode , qui lui est associée, il est possible de réaliser pour chaque zone un histogramme par composante de couleur, et traiter chaque histogramme de la zone indépendamment de la manière décrite ci-dessus, ceci permet d'obtenir de meilleurs résultats, mais a l'inconvénient de multiplier les calculs et le nombre d'histogrammes, ainsi le mode de réalisation utilisant la valeur en luminance ou la composante verte sera préféré. II est aussi possible de comptabiliser dans un premier histogramme compact pour chaque pixel la valeur minimale des composantes RGB du pixel, et dans un second histogramme compact pour chaque pixel la valeur maximale des trois composantes RGB du pixel. La valeur Pref1 est alors ensuite déterminée à partir du premier histogramme compact comptabilisant les valeurs minimales, par exemple en formant un histogramme partiel comme vu précédemment. La valeur Pref2 est alors ensuite déterminée à partir du second histogramme compact comptabilisant les valeurs maximales, par exemple en formant un histogramme partiel comme vu précédemment. Cette approche est particulièrement utile pour des cas où, par exemple, une zone a son canal bleu proche de la saturation (Maxcode) mais une luminance faible. Dans ce cas, si on utilise pas les deux histogrammes compacts, l'étirement par le haut d'un unique l'histogramme utilisant la luminance écraserait les tons bleus. Selon un perfectionnement, afin d'éviter de dénaturer l'image, les valeurs de référence Pref1 et Pref2 déterminées à partir du ou des histogrammes peuvent être corrigées selon des abaques. Les figures 15 et 16 illustrent de tels abaques. La figure 15 illustre l'évolution d'un coefficient de pondération de la valeur de référence Pref1 en fonction des valeurs de pixels (de 0 à MaxCode). La courbe de la figure 15 comporte trois tronçons. Si la valeur de référence Pref1 déterminée par lecture de l'histogramme est comprise dans le tronçon T1, la valeur effective utilisée pour l'étirement sera celle déterminée par lecture de l'histogramme (coefficient de pondération de 100 %). Si la valeur de référence Pref1 déterminée est comprise dans le tronçon T2, la valeur effective utilisée pour l'étirement sera un pourcentage compris entre 100% et 0% de la valeur déterminée par lecture de l'histogramme. Si la valeur de référence Prefi déterminée est comprise dans le tronçon T3, la valeur effective utilisée pour l'étirement sera O. La figure 16 illustre l'évolution d'un coefficient de pondération de la valeur de référence Pref2 en fonction des valeurs de pixels (de 0 à MaxCode). La courbe de la figure 16 comporte aussi trois tronçons. De la gauche vers la droite, si la valeur de référence Pref2 déterminée est comprise dans le tronçon T1, la valeur effective utilisée pour l'étirement sera égale à MaxCode. Si la valeur de référence Pref2 déterminée est comprise dans le tronçon T2, la valeur effective utilisée pour l'étirement sera un pourcentage compris entre 00/o et 100% de la valeur déterminée. Si la valeur de référence Pref2 déterminée est comprise dans le tronçon T3, la valeur effective utilisée pour l'étirement sera la valeur déterminée par la lecture de l'histogramme. Ces corrections permettent de limiter les calculs qui risqueraient de dénaturer les images. Pour éviter de dénaturer les images, on prend de préférence pour la valeur Prefi une valeur maximale Tmax1 du tronçon TI égale à 100/0 de MaxCode et une valeur maximale Tmax2 du tronçon T2 égale à 500/0 de MaxCode. Par ailleurs, on prend de préférence pour la valeur Pref2 une valeur maximale Tmaxi du tronçon TI égale à 500/0 de la dynamique (c'est-à-dire MaxCode) et une valeur maximale Tmax2 du tronçon T2 égale à 90% de la dynamique (c'est-à-dire MaxCode). Ces valeurs peuvent ensuite être adaptées aux caractéristiques de la source d'image et de l'application visée. De préférence, lorsqu'on combine pour chaque zone les réglages de contraste et de la luminosité, l'étape d'amélioration de la luminosité est réalisée avant l'étape destinée à l'amélioration du contraste, car les étirements d'histogramme peuvent entraîner une perte d'information. Autrement dit, pour chaque zone on modifie d'abord la courbe de tonalité avant de modifier le ou les histogrammes, puis on lisse de manière unique les raccords entre les zones après modification de la courbe de tonalité et du ou des histogrammes. II est aussi possible après avoir modifié les courbes de tonalité de toutes les zones de lisser les raccords puis de modifier les histogrammes de toutes les zones avant d'effectuer une nouvelle étape de lissage. Ceci permet de séparer les deux traitement et d'avoir, si on le souhaite, un découpage en zones différentes pour améliorer le résultat final. Bien entendu, un seul lissage permet aussi d'obtenir un résultat satisfaisant, bien que de qualité inférieure. Les zones traitées lors de l'amélioration de la luminosité et du contraste peuvent être identiques, dès lors l'étape de division de l'image en zones peut n'être réalisée qu'une seule fois. Il est néanmoins possible de diviser de manière différente les zone en fonction du type de procédé (amélioration de la luminosité ou du contraste). Dans ce cas, les courbes de tonalité sont modifiées, les zones sont raccordées par lissage de sorte à former des pixels intermédiaires. Un pixel intermédiaire peut par la suite être pris en compte dans une zone différente et sera modifié en contraste selon cette zone. Cette séparation des étapes avec deux lissages permet de garantir que les points de contrôles et les valeurs de référence sont associés au traitement en contraste, respectivement en luminosité. De préférence, avant la division de l'image en zones, et les étapes de l'amélioration de la luminosité et/ou du contraste des zones, on prévoit une étape préliminaire d'amélioration globale du contraste. L'étape d'amélioration globale du contraste peut comporter toutes les étapes réalisées pour améliorer le contraste d'une zone à la différence près que tous les pixels de l'image sont impactés. L'avantage de cette étape préliminaire est de garantir que les références des blancs et des noirs soient correctes. Selon une variante, après division de l'image en zones, les zones adjacentes peuvent se superposer localement. Dans ce cas, les statistiques permettant de générer par analyse des zones les points de contrôle ou les valeurs de référence sont réalisées sur tous les pixels de la zone. Par contre, les modifications des pixels (histogramme et/ou courbe de tonalité) sont réalisées sur des portions de zones non superposées. Selon une mise en oeuvre particulière, l'image finale obtenue à la fin des procédés décrits ci-dessus peut être modifiée de manière globale par une fonction de conversion décrite ci-après prenant en entrée une valeur d'un canal de couleur du pixel (canal rouge, vert ou bleu RGB pour « Red, Green, Blue » en anglais) et la valeur en luminance du pixel. Le traitement qui va suivre est appliqué sur les trois composantes rouge, verte et bleue de chaque pixels. Tout d'abord, on calcule une différence diffRGB entre la valeur d'entrée du canal de couleur à traiter et la valeur de luminance du pixel : diffRGB = PixeIRGB - Pixelhu' où PixeIRGB est représentatif de la valeur d'un canal de couleur du pixel d'entrée, et Pixel,. est représentatif de la valeur en luminance du pixel d'entrée. ensuite un gainRGB d'entrée est calculé de la manière suivante : gainRGB = gain. x (PixeIRGB + Pixell. ) où gainam correspond au gain du pixel obtenu à la suite de l'étape de lissage des zones adjacentes après les étapes de modification de l'histogramme et/ou de courbes de tonalité pour toutes les zones. Puis la valeur de sortie du PixelOutRGB est obtenue de la manière suivante : PixelOutRGB = diffRGB + gainRCB 2 Un tel traitement permet d'éviter la saturation des valeurs des pixels de l'image. La valeur PixelOutRGB correspond à la valeur finale d'un pixel après amélioration de l'image. Le procédé d'amélioration de la perception tel que décrit ci-dessus peut être mis en ceuvre dans tout dispositif de prise de vue, ou dans tout dispositif de traitement d'une image numérique comprenant une source d'image. La source d'image peut être un capteur d'image, une mémoire ou un flux d'images. Si la source d'image est un capteur ou un autre élément donnant une version brute dite « Raw » de l'image, avant l'étape de division de l'image en plusieurs zones, les données associées à l'image brute sont envoyées dans un convertisseur transformant l'image brute en image RGB. Les différentes étapes du procédé d'amélioration de la perception peuvent ensuite être réalisées par un module de traitement relié à une mémoire de stockage pour y stocker l'image de sortie définitive sur laquelle les modifications on été appliquées. Le procédé d'amélioration de la perception permet par exemple de séparer la dynamique d'une image en tons sombres et clairs pour améliorer le contraste et la luminosité de manière indépendante pour chacune des sous-dynamiques. La combinaison d'un traitement indépendant par zone et le cas échéant par zones claire et sombre d'une même zone permet de régler plus finement le contraste et la luminosité. Le procédé permet de limiter les effets dus aux transitions entre zones et à l'écrasement des tons moyens. Préférentiellement, le procédé est particulièrement efficace pour des zones très larges tout en permettant un traitement simple et significatif d'amélioration du contraste et de la luminosité. REVENDICATIONS1. Procédé d'amélioration de la perception visuelle d'une image numérique comportant les étapes suivantes: diviser (E1) l'image numérique en une pluralité de zones (1) répétitives simples, modifier (E2) la courbe de tonalité et/ou l'histogramme de chaque zone en vue d'améliorer la perception visuelle de la zone correspondante, et lisser (E3) les raccords entre les zones (1) adjacentes. 2. Procédé selon la revendication 1, dans lequel l'étape de modification de la courbe de tonalité d'une zone comporte les étapes suivantes : déterminer (E4) un premier ensemble de pixels correspondant à des parties sous-exposées de la zone (1) et un second ensemble de pixels correspondant à des parties sur-exposées de la zone, déterminer (E5) un premier point de contrôle (P1) représentatif de la valeur moyenne (V,1) des pixels du premier ensemble de pixels, déterminer (E5) un second point de contrôle (P2) représentatif de la valeur moyenne (Vm2) des pixels du second ensemble de pixels, et faire tendre (E6) la courbe de tonalité vers une courbe de Bézier fonction des premier et second points de contrôle (P1, P2). 3. Procédé selon la revendication 2, dans lequel le premier point de contrôle (P1) et le second point de contrôle (P2) sont également représentatifs d'une valeur d'exposition cible (Vc) des pixels. 20 20 25 4. Procédé selon l'une des revendications 2 à 3, dans lequel le premier ensemble de pixels et le second ensemble de pixels comportent une intersection. 5. Procédé selon l'une des revendications 2 à 4, dans lequel la valeur moyenne (Vmi) des pixels du premier ensemble est calculée en prenant en compte la luminance ou la composante verte des pixels associés, et la valeur moyenne (Vm2) des pixels du second ensemble est calculée en prenant en compte la luminance ou la composante verte des pixels 1 o associés. 6. Procédé selon la revendication 1, dans lequel l'étape de modification de l'histogramme d'une zone (1) comporte les étapes suivantes : déterminer un histogramme (HI, Ho, Hp) à partir des valeurs des pixels de la zone (1), déterminer une première valeur de référence des pixels (Prefi), en dessous de laquelle se trouve un premier pourcentage de référence de pixels de la zone (1), déterminer une seconde valeur de référence des pixels (Pref2), au dessus de laquelle se trouve un second pourcentage de référence de pixels de la zone (1), et étirer l'histogramme en répartissant sur la largeur de l'histogramme les fréquences d'apparition des pixels situés entre les première et seconde valeurs de référence (Prefi, Pref2)- 7. Procédé selon la revendication 6, dans lequel les étapes de détermination 25 de l'histogramme et de la première valeur de référence des pixels comprennent les étapes suivantes : former un histogramme compact (Hp) prenant en compte tous les pixels de la zone correspondante, chaque barre de l'histogramme compact (Hp) comptabilisant les pixels dont les valeurs sont 30 comprises entre une borne minimum et une borne maximum associées à la barre, 15 20déterminer la barre (brefs) de l'histogramme compact (Hc) dans laquelle est située la première valeur de référence (Prefi), - réaliser un histogramme partiel (Hp) dans lequel: o les valeurs des pixels strictement inférieures à la borne minimum de la barre déterminée (brefs ) sont comptabilisées dans une seule barre (bo), o la barre déterminée (brefs) est segmentée pour raffiner la répartition des valeurs des pixels, trouver dans histogramme partiel (Hp) la première valeur de référence des pixels (Prefi). 8. Procédé selon la revendication 7, dans lequel, lors de la réalisation de l'histogramme partiel, les pixels de la zone dont les valeurs sont situées au dessus de la borne maximum de la barre déterminée (brefs) ne sont pas comptabilisés dans l'histogramme partiel (Hp). 9. Procédé selon la revendication 6, dans lequel les étapes de détermination de l'histogramme et de la seconde valeur de référence comprennent les étapes suivantes : former un histogramme compact (Hc) prenant en compte tous les pixels de la zone (1) correspondante, chaque barre de l'histogramme compact (Hc) comptabilisant les pixels dont les valeurs sont comprises entre une borne minimum et une borne maximum associées à la barre, déterminer la barre (bref2) de l'histogramme compact (Hc) dans laquelle est située la seconde valeur de référence (Pfef2), - réaliser un histogramme partiel dans lequel: o les valeurs des pixels strictement supérieures à la borne maximum de la barre déterminée (bref2) sont comptabilisées dans une seule barre (bn), o la barre déterminée (bref2) est segmentée pour raffiner larépartition des valeurs des pixels, et trouver dans l'histogramme partiel (Hp) la seconde valeur de référence (Pref2). 10. Procédé selon la revendication 9, dans lequel lors de la réalisation de l'histogramme partiel, les pixels de la zone dont les valeurs sont situées au dessous de la borne minimum de la barre déterminée ne sont pas comptabilisés dans l'histogramme partiel (Hp). 11.Procédé selon la revendication 1, dans lequel pour chaque zone l'histogramme est modifié après la modification de la courbe de tonalité. i o 12. Procédé selon la revendication 11, dans lequel avant la division en zones de l'image, le contraste de l'image est ajusté de manière globale.