B12416 - 12-GR2-0920 1 PROCÉDÉ DE MAPPAGE DE TONS Domaine La présente demande concerne le domaine du traitement d'images numériques de façon générale. Elle concerne plus particulièrement le domaine du mappage de tons (atone mapping" 5 en anglais), qui désigne un ensemble de techniques de traitement d'image numérique utilisées, par exemple, pour générer, à partir d'une image à grande gamme dynamique ("high dynamic range" en anglais) dans laquelle un grand nombre de tons (ou degrés d'intensité) distincts est disponible pour représenter une 10 scène, une image à plus faible gamme dynamique dans laquelle un plus petit nombre de tons est disponible pour représenter la scène. Exposé de l'art antérieur Les techniques de mappage de tons peuvent être 15 utilisées en combinaison avec des procédés d'obtention d'images à grande gamme dynamique dans lesquels on acquière successivement plusieurs images d'une même scène avec des durées d'intégration de capteur distinctes, puis on fusionne ces images en une image à grande gamme dynamique dans laquelle les valeurs 20 des pixels correspondant aux zones les plus sombres de la scène sont basées sur les valeurs des pixels correspondants des images acquises avec les durées d'intégration les plus élevées, et les B12416 - 12-GR2-0920 2 valeurs des pixels correspondant aux zones les plus lumineuses de la scène sont basées sur les valeurs des pixels correspondants des images acquises avec les durées d'intégration les plus faibles. L'image à grande gamme dynamique peut être 5 codée sur un nombre de bits relativement élevé. Pour rendre cette image compatible avec des équipements ne disposant que d'un nombre limité de tons pour représenter une scène (par exemple un dispositif d'affichage), on peut prévoir d'utiliser des techniques de mappage de tons pour réduire la gamme 10 dynamique de l'image tout en conservant l'apparence d'une image à grande gamme dynamique. Des techniques de mappage de tons peuvent aussi être utilisées pour modifier la répartition des tons dans une image sans en réduire la gamme dynamique, par exemple pour appliquer 15 des effets spéciaux, une fonction de gamma, etc. Résumé Ainsi, un mode de réalisation prévoit un procédé de génération, par un dispositif de traitement numérique, d'une première image numérique à partir d'une deuxième image 20 numérique, comportant : a) pour chaque pixel de la deuxième image, déterminer une luminance du pixel ; b) diviser l'intervalle allant de la plus petite à la plus grande luminance en une pluralité de sous-intervalles ; et c) déterminer la valeur d'au moins un pixel de la première image en multipliant 25 la valeur d'un pixel de la deuxième image par un gain déterminé par interpolation en tenant compte de la distance de la luminance du pixel de la deuxième image aux bornes du sous-intervalle dans lequel se situe cette luminance. Selon un mode de réalisation, le procédé comporte en 30 outre, entre l'étape a) et l'étape b), une étape de calcul d'un premier histogramme H représentatif de la distribution de valeurs de luminance dans la deuxième image. Selon un mode de réalisation, le premier histogramme est sous-échantillonné, c'est-à-dire qu'il comprend un nombre de 35 valeurs discrètes inférieur au nombre total de valeurs discrètes B12416 - 12-GR2-0920 3 que peuvent prendre les valeurs de luminance de la deuxième image. Selon un mode de réalisation, le procédé comprend en outre la détermination d'un deuxième histogramme cumulé à partir 5 du premier histogramme. Selon un mode de réalisation, à l'étape b), la division de l'intervalle en sous-intervalles est une division dichotomique dans laquelle, à chaque étape de division d'un intervalle ou sous-intervalle allant d'une valeur 4min à une 10 valeur 4max on détermine une valeur intermédiaire 13 de l'intervalle ou du sous-intervalle telle que : Lma. H(k) k=L,fl k=p 15 où k désigne les valeurs de luminance pour lesquelles une valeur d'histogramme H(k) a été calculée ; et on détermine une valeur de coupure C de l'intervalle ou du sous-intervalle de départ telle que : 20 Lmax + Lmin ( Lmaz Lmin C = /3 -H 2 2 où a désigne un paramètre de contrôle supérieur ou égal à 0 et inférieur ou égal à 1. Selon un mode de réalisation, le paramètre de contrôle 25 a est compris entre 0,4 et 0,6. Selon un mode de réalisation, à l'étape b), le nombre de sous-intervalles en lequel est divisé ledit intervalle est inférieur au nombre de valeurs que peut prendre chaque pixel dans la première image. 30 Selon un mode de réalisation, les première et deuxième images sont des images couleur en mosaïque dans lesquelles la valeur de chaque pixel représente le niveau d'une seule couleur d'une base de couleur, par exemple la base rouge, vert, bleu. Selon un mode de réalisation, les pixels des première 35 et deuxième images sont regroupés par macroblocs élémentaires de B12416 - 12-GR2-0920 4 pixels ayant le même motif de répartition des couleurs de la base. Selon un mode de réalisation, à l'étape a), la valeur de luminance déterminée pour chaque pixel est proportionnelle à 5 une moyenne pondérée des valeurs des pixels du macrobloc contenant ce pixel. Selon un mode de réalisation, à l'étape c), le même gain est appliqué à tous les pixels d'un même macrobloc de la deuxième image. 10 Selon un mode de réalisation, les valeurs des pixels de la première image sont codées sur un plus petit nombre de bits que les valeurs des pixels de la deuxième image. Un autre mode de réalisation prévoit un dispositif de génération d'une première image à partir d'une deuxième image, 15 comportant des circuits de traitement adaptés à mettre en oeuvre un procédé du type susmentionné. Brève description des dessins Ces caractéristiques et avantages, ainsi que d'autres, seront exposés en détail dans la description suivante de modes 20 de réalisation particuliers faite à titre non limitatif en relation avec les figures jointes parmi lesquelles : la figure 1 est un schéma illustrant, sous forme de blocs, un exemple d'un mode de réalisation d'un procédé de mappage de tons ; et 25 la figure 2 est un schéma illustrant, sous forme de blocs, un exemple d'un mode de réalisation d'un dispositif d'acquisition d'image comportant un dispositif de mappage de tons. Description détaillée 30 Un procédé de mappage de tons a été proposé dans l'article intitulé "Fast Tone Mapping for High Dynamic Range Images " de Jiang Duan et al. Dans ce procédé, on part d'une image d'entrée en couleur, dans laquelle la valeur de chaque pixel comprend trois 35 composantes représentant respectivement les niveaux de rouge, de B12416 - 12-GR2-0920 vert et de bleu du pixel, et on cherche à générer une image de sortie en couleur à plus faible gamme dynamique, dans laquelle le nombre de tons disponibles pour représenter chaque composante de couleur de chaque pixel de l'image est plus petit que dans 5 l'image d'entrée. Pour chaque pixel de l'image d'entrée, une valeur de luminance, c'est-à-dire une moyenne pondérée des composantes rouge, verte et bleue du pixel est calculée, puis le logarithme de la luminance est calculé. Un histogramme complet de l'image en luminance logarithmique est ensuite calculé, puis un histogramme cumulé complet de l'image en luminance logarithmique est calculé. L'intervalle de valeurs allant de la plus petite valeur de luminance logarithmique à la plus grande valeur de luminance logarithmique de l'image (ou intervalle dynamique de l'image en luminance logarithmique) est ensuite divisé, par dichotomie, en autant d'intervalles élémentaires que l'on dispose de tons pour représenter la scène dans l'image de sortie. A chaque étape de la division dichotomique, un intervalle de départ [Lmin, Lmax] est divisé en deux intervalles selon la méthode suivante : - Une valeur intermédiaire 13i de l'intervalle de départ est déterminée, telle que le nombre de pixels dans l'image d'entrée dont le logarithme de la luminance est compris dans la plage allant de la valeur Lmin à la valeur 13i soit égal au nombre de pixels dans l'image dont le logarithme de la luminance est compris dans la plage allant de la valeur 13i à la valeur 4max. - Une valeur de coupure Co de l'intervalle de départ est ensuite calculée selon la formule suivante : Lm' + Lmin ( /31 Lmax + Lm,r, Co = a 2 2 où a désigne un paramètre de contrôle supérieur ou égal à 0 et inférieur ou égal à 1. L'intervalle de départ [Lmin, Lmax] est alors divisé en deux intervalles [Lmin, Co] et [Co, Lmax].
B12416 - 12-GR2-0920 6 Une fois l'intervalle dynamique de l'image en luminance logarithmique divisé en autant d'intervalles élémentaires que l'on dispose de tons pour représenter la scène dans l'image de sortie, on prévoit d'affecter une même valeur de 5 luminance dans l'image de sortie à tous les pixels de l'image d'entrée dont le logarithme de la luminance tombe dans un même intervalle élémentaire. Dans chaque pixel de l'image de sortie, les composantes rouge, verte et bleue du pixel sont ensuite reconstruites en tentant compte de la valeur du pixel 10 correspondant dans l'image d'entrée et de la luminance affectée au pixel dans l'image de sortie. Un inconvénient de ce procédé est qu'il présente une complexité de calcul importante, ce qui le rend notamment incompatible avec une utilisation dans un système de mappage de 15 tons embarqué dans un dispositif d'acquisition d'image portatif, par exemple un téléphone portatif ou une tablette numérique comprenant un capteur d'image. En particulier, les étapes de génération d'une image en luminance logarithmique, de détermination de l'histogramme complet de l'image en luminance 20 logarithmique, et de division dichotomique de l'intervalle dynamique de l'image en luminance logarithmique, sont particulièrement coûteuses en termes de puissance de calcul. Un autre inconvénient de ce procédé est qu'il ne permet de réaliser un mappage de tons qu'à partir d'images 25 couleurs dans lesquelles la valeur de chaque pixel comprend trois composantes représentant respectivement les niveaux de rouge, de vert et de bleu du pixel. En pratique, les images numériques fournies directement en sortie d'un capteur d'image couleur sont des images en 30 mosaïque, dans lesquelles la valeur de chaque pixel représente le niveau d'une seule couleur d'une base de couleur, par exemple la base rouge, vert, bleu. En effet, dans un capteur d'image couleur, une matrice de photodétecteurs est recouverte d'une mosaïque ou matrice de filtres colorés, par exemple une matrice 35 de Bayer, affectant à chaque photodétecteur une unique couleur B12416 - 12-GR2-0920 7 d'une base de couleurs. Pour pouvoir être exploitées, les images en mosaïque fournies par le capteur peuvent subir des traitements, dits de dématriçage, visant à reconstruire, à partir des données fournies par chacun des photodétecteurs monochromes du capteur, une image dans laquelle la valeur de chaque pixel comporte une composante de chacune des couleurs de la base, ce qui permet de représenter un grand nombre de couleurs. Le procédé de mappage de tons décrit dans l'article susmentionné ne peut intervenir qu'après les traitements de dématriçage. Il existe toutefois un besoin pour un procédé de mappage de tons adapté à recevoir une image d'entrée dans laquelle la valeur de chaque pixel représente le niveau d'une seule couleur d'une base de couleurs, et à fournir une image de sortie à plus faible gamme dynamique ayant le même motif de répartition des couleurs de la base. La figure 1 est un schéma illustrant sous forme de blocs un exemple d'un mode de réalisation d'un procédé de mappage de tons. Dans cet exemple, on part d'une image couleur en mosaique IO dans laquelle la valeur de chaque pixel représente le niveau d'une seule couleur d'une base de couleur, par exemple la base rouge (R), vert (G), bleu (B), et on cherche à obtenir une image couleur en mosaïque Il à plus faible gamme dynamique, de même résolution et ayant le même motif de répartition des couleurs de base que l'image IO. On désigne ci après par nO le nombre de bits utilisés pour coder la valeur de chaque composante de couleur de chaque pixel de l'image IO, et par n1 le nombre de bits utilisé pour coder la valeur de chaque composante de couleur de chaque pixel de l'image Ii, avec nO et n1 entiers, et nO supérieur à n1 dans cet exemple. Le mode de réalisation décrit peut toutefois aussi être utilisé pour modifier la répartition des tons dans une image sans en réduire la gamme dynamique, c'est-à-dire avec nO égal à ni, par exemple pour appliquer des effets spéciaux, une fonction de gamma, etc.
Les pixels des images 10 et il sont regroupés par macroblocs B12416 - 12-GR2-0920 8 élémentaires de pixels voisins, chaque macrobloc comportant des pixels de toutes les couleurs de la base, et tous les macroblocs ayant le même motif de répartition des couleurs de la base. La répartition des couleurs de base dans les images IO et correspond par exemple à la répartition des couleurs dans un filtre de Bayer. A titre d'exemple, les pixels sont répartis par macroblocs matriciels de deux par deux pixels, les pixels de coordonnées (0, 0), (0, 1), (1, 0) et (1, 1) dans chaque macrobloc étant respectivement de couleur rouge, verte, verte et bleue, comme représenté en figure 1. Lors d'une étape 101, une image en luminance LO est déterminée à partir de l'image IO. Dans cet exemple, l'image LO a la même résolution, c'est-à-dire le même nombre de pixels que l'image IO. La valeur de chaque pixel de l'image LO est proportionnelle à une moyenne pondérée des valeurs des pixels du macrobloc contentant le pixel correspondant dans l'image IO (c'est-à-dire le pixel ayant la même position dans l'image IO). Les valeurs des pixels de l'image LO sont par exemple codées sur le même nombre de bits nO que les valeurs de chaque composante de couleur des pixels de l'image IO. Dans cet exemple, les valeurs des pixels d'un même macrobloc dans l'image LO sont identiques. On peut donc se contenter de calculer une seule valeur de luminance par macrobloc, ce qui permet de limiter le nombre d'opérations de calcul nécessaire à la construction de l'image LO. A titre de variante, on pourrait se contenter de générer une image en luminance comprenant un nombre de pixels égal au nombre de macroblocs de l'image IO, c'est-à-dire ayant une résolution inférieure d'un facteur deux en ligne et d'un facteur deux en colonne à celle de l'image IO dans le cas de macroblocs de 2x2 pixels. Lors d'une étape 103, un histogramme partiel ou sous-échantillonné H de l'image LO est déterminé. On entend ici par histogramme partiel ou sous-échantillonné, un histogramme représentant la distribution dans l'image d'un nombre de tons strictement inférieur au nombre total de tons disponibles pour B12416 - 12-GR2-0920 9 représenter une scène dans l'image LO (c'est-à-dire un histogramme représentant la distribution dans l'image d'un nombre de tons strictement inférieur à 2110 (deux puissance nO) dans cet exemple). A titre d'exemple, lors de l'étape 103, on détermine un histogramme H représentant la distribution dans l'image de 2110-2 (deux puissance (n0-2)) tons équidistants, c'est-à-dire d'un quart des tons disponibles pour représenter une scène dans l'image LO. Plus généralement, le rapport entre le nombre de tons représentés dans l'histogramme H et le nombre total de tons susceptibles d'être représentés dans l'image LO peut avoir toute autre valeur strictement comprise entre 0 et 1. Lors d'une étape 105, la plus petite valeur de luminance LOmin et la plus grande valeur de luminance LOmax de l'image LO sont déterminées, et l'intervalle allant de la valeur LOmin à la valeur LOmax est divisé, par dichotomie, en un nombre d'intervalles strictement inférieur au nombre total de tons dont on dispose pour représenter la scène dans l'image de sortie à savoir 2n1 (deux puissance n1) dans cet exemple. A titre d'exemple, lors de l'étape 105, on peut diviser l'intervalle [LOmin, LOmax] en un nombre d'intervalles inférieur d'un facteur 16 au nombre de tons disponible pour représenter la scène dans l'image Li. Plus généralement, le rapport entre le nombre total de tons disponibles pour représenter la scène dans l'image Li et le nombre d'intervalles déterminé à l'étape 105 peut avoir toute autre valeur strictement supérieure à 1. A titre d'exemple, à chaque étape de la division dichotomique de l'intervalle [LOmin, LOmax], un intervalle de départ d'une valeur Lmin à une valeur 4max supérieure à la valeur Lmin est divisé en deux intervalles selon la méthode suivante : - Déterminer, en se basant sur l'histogramme partiel H obtenu à l'étape 103, une valeur intermédiaire 13 de l'intervalle [Lmin, Lmax] telle que : Lma. H(k) k = k = 13 B12416 - 12-GR2-0920 10 où k est un nombre allant de LOmin à LOmax désignant les valeurs de luminance de l'image LO pour lesquelles une valeur d'histogramme H(k) a été calculée à l'étape 103. Pour cela, un histogramme partiel cumulé peut être déterminé. - Déterminer une valeur de coupure C de l'intervalle de départ selon la formule suivante : Lm' + Lmin ( /3 Lmax + Lm,r, C = + a 2 2 où a désigne un paramètre de contrôle supérieur ou égal à 0 et inférieur ou égal à 1, et de préférence strictement compris entre 0 et 1. Dans un mode de réalisation préféré, le paramètre de contrôle a est compris dans la plage allant de 0,4 à 0,6. L'intervalle de départ Lmax] est alors divisé en deux sous-intervalles [Lmin, C] et [C, Par la suite, on désigne par n le nombre d'intervalles en lequel est divisé l'intervalle dynamique [LOmin, LOmax] de l'image LO à l'étape 105, et par ki_i et ki les bornes respectivement inférieure et supérieure de chacun des n intervalles, avec i entier allant de 1 à n. On notera que les valeurs ki d'indices voisins ne sont pas nécessairement équidistantes, et dépendent de l'histogramme H déterminé à l'étape 103. Lors d'une étape 107, pour chacune des valeurs ki, on 25 détermine un gain Gi = i/ki, et on remplit une première table Tl de n gains avec les valeurs des gains Gi. Lors d'une étape 109, on détermine, par interpolation à partir de la première table de gain Tl, une deuxième table étendue 12 de gains comprenant un nombre de gains strictement 30 supérieur au nombre n de gains de la table Tl. Dans la table 12, les gains d'indices voisins correspondent à des valeurs équidistantes de tons de luminance disponibles pour représenter une scène dans l'image LO. Le nombre de gains de la table 12 est choisi au moins égal au nombre total de tons disponibles pour 35 représenter chaque couleur de la scène dans l'image de sortie B12416 - 12-GR2-0920 11 Il, soit 2n1 tons, et de préférence supérieur à ce nombre pour minimiser les erreurs d'approximation. Pour chaque valeur lx de luminance pour laquelle on souhaite générer un gain Glx à inscrire dans la table 12, on détermine dans quel intervalle [ki_l, ki] se trouve la valeur lx, puis on calcule le gain Glx selon la formule suivante : lx - ki_i Gi_i) + Gi_1. ki - Ainsi, le gain Glx tient compte de la distance de la valeur de luminance lx aux bornes du sous-intervalle dans lequel se situe cette luminance. La table 12 forme alors une table de correspondance définissant un fonction de transfert permettant de générer l'image il à partir de l'image IO.
Lors d'une étape 111, l'image il est générée en appliquant à l'image IO la fonction de transfert définie par la table de gains 12. Pour cela, pour chaque macrobloc de pixels de l'image IO, la valeur de luminance du macrobloc est lue dans l'image LO, et, en fonction de cette valeur de luminance, un gain correspondant à appliquer au macrobloc est lu dans la table 12. Pour chaque pixel du macrobloc, la valeur du pixel est multipliée par le gain lu dans la table 12, et la valeur résultante est codée sur n1 bits et inscrite dans le pixel correspondant de l'image Il. Ainsi, tous les pixels d'un même macrobloc sont multipliés par une même valeur de gain ce qui permet d'éviter des distorsions indésirables de l'image. Un avantage du procédé décrit en relation avec la figure 1 est qu'il peut être mis en oeuvre directement en sortie d'un capteur d'image couleur, avant dématriçage des images en mosaïque fournies par le capteur. A titre d'exemple, un tel procédé peut être utilisé en sortie d'un dispositif d'acquisition d'image adapté à générer une image couleur en mosaïque à grande gamme dynamique, pour réaliser un mappage de tons vers une image couleur en mosaïque compatible avec un équipement à plus faible gamme dynamique tel qu'une mémoire, un écran B12416 - 12-GR2-0920 12 d'affichage, etc. On peut par exemple prévoir que seule l'image de sortie à faible gamme dynamique soit soumise à un traitement de dématriçage, ce qui permet de réduire la complexité des opérations de dématriçage. De plus, on peut prévoir un capteur d'image couleur intégrant une fonction de mappage de tons intégrée sur la même puce semiconductrice que le capteur. Un autre avantage du procédé décrit en relation avec la figure 1 que la puissance de calcul nécessaire à sa mise en oeuvre est nettement inférieure à la puissance de calcul nécessaire à la mise en oeuvre du procédé décrit dans l'article susmentionné de Duan et al. Ceci résulte notamment du fait que le procédé décrit en relation avec la figure 1 comprend moins d'opérations de calcul de luminance que le procédé de Duan et al., ne comprend pas de calcul de logarithme, ne comprend pas la détermination d'un histogramme complet d'une image, ne comprend pas la détermination d'un histogramme cumulé complet d'une image, prévoit une division dichotomique de l'intervalle dynamique d'une image à plus faible résolution de subdivision que dans le procédé de Duan et al., et convertit des valeurs en gains. Un avantage du procédé décrit en relation avec la figure 1 est qu'il est compatible avec une utilisation dans un système de mappage de tons embarqué dans un dispositif d'acquisition d'image portatif, par exemple un téléphone portatif ou une tablette numérique comprenant un capteur d'image. On notera que les étapes 101, 103, 105, 107, 109 et 111 peuvent être mises en oeuvre par tout dispositif de traitement de signaux numériques adapté, par exemple un 30 dispositif comportant un microcontrôleur ou des circuits dédiés. La figure 2 illustre schématiquement, sous forme de blocs, un exemple d'un mode de réalisation d'un dispositif 200 comportant un dispositif d'acquisition d'image 201 (IMG) comportant un capteur couleur. Le dispositif d'acquisition 35 d'image 201 est adapté à générer une image couleur en mosaïque B12416 - 12-GR2-0920 13 IO à grande gamme dynamique. Le dispositif 200 comprend une mémoire 203 adaptée à stocker l'image IO. Le dispositif 200 comprend en outre un circuit de traitement 205 adapté à générer, à partir de l'image IO, une image couleur en mosaïque il à plus 5 faible gamme dynamique (ou à gamme dynamique identique mais ayant une répartition des tons différente), selon un procédé du type décrit en relation avec la figure 1. Le dispositif 200 comprend en outre une mémoire 207 adaptée à contenir l'image de sortie Il. A titre d'exemple, le dispositif d'acquisition 10 d'image 201 et le circuit de traitement 205 peuvent être formés sur une même puce de circuit intégré. Des modes de réalisation particuliers ont été décrits. Diverses variantes et modifications apparaîtront à l'homme de l'art. En particulier, les modes de réalisation décrits ne se 15 limitent pas au cas particulier mentionné ci-dessus dans lequel la fonction de mappage de tons est associée à un dispositif d'acquisition d'image. Les modes de réalisation décrits visent aussi le cas où la fonction de mappage de tons est dissociée d'un dispositif d'acquisition d'image, et est par exemple mise 20 en oeuvre sur un ordinateur au moyen d'un logiciel de traitement d'images.