(19)
(11) EP 1 096 383 A1

(12) DEMANDE DE BREVET EUROPEEN

(43) Date de publication:
02.05.2001  Bulletin  2001/18

(21) Numéro de dépôt: 00410126.7

(22) Date de dépôt:  24.10.2000
(51) Int. Cl.7G06F 12/02, H04N 1/41, G06T 9/00, G09G 5/06, G09G 5/02, G09G 1/16
(84) Etats contractants désignés:
AT BE CH CY DE DK ES FI FR GB GR IE IT LI LU MC NL PT SE
Etats d'extension désignés:
AL LT LV MK RO SI

(30) Priorité: 25.10.1999 FR 9913544

(71) Demandeur: STMicroelectronics S.A.
94250 Gentilly (FR)

(72) Inventeurs:
  • Laury, Marc
    38100 Grenoble (FR)
  • Seignert, Franck
    38140 Rives (FR)
  • Chiaruzzi, Emmanuel
    38000 Grenoble (FR)
  • Monnier, Philippe
    38190 Villard Bonnott (FR)

(74) Mandataire: de Beaumont, Michel 
1, rue Champollion
38000 Grenoble
38000 Grenoble (FR)

   


(54) Convertisseur de couleurs reconfigurable


(57) L'invention concerne un circuit de traitement d'image pour remplacer un code d'entrée associé à un pixel de l'image par un code de sortie choisi dans une première mémoire (36) contenant un ensemble de codes, comportant un bus d'entrée (IN) pour recevoir le code d'entrée, un bus de sortie (OUT) pour délivrer le code de sortie, ladite première mémoire, un moyen (40) de calcul d'adresse de la première mémoire, un moyen (42) de sélection d'adresse de la première mémoire entre le code d'entrée et un code d'adresse généré par le moyen de calcul d'adresse, une deuxième mémoire (38) pour contenir un code d'adresse généré par le moyen de calcul d'adresse, et un moyen (44) de sélection du code de sortie entre un code lu dans la première mémoire et ledit code contenu dans la deuxième mémoire.




Description


[0001] La présente invention concerne les circuits de traitement d'images numériques, et en particulier un circuit permettant de modifier le codage des couleurs associées aux pixels d'une image numérique.

[0002] Une image numérique est classiquement composée de rangées et de colonnes de pixels. Chaque pixel de l'image est associé notamment à une couleur. Un type de codage de couleur répandu est le codage dit RGB, dans lequel les couleurs sont représentées par trois composantes : rouge (R), verte (V) et bleue (B), dont chacune est classiquement codée sur un même nombre de bits. Dans un tel codage, le nombre de bits utilisés pour les coeposantes R, G et B détermine le nombre de couleurs possible pour chaque pixel. Par exemple, des composantes R, G et B codées sur 8 bits chacune permettent de décrire 23×8 c'est-à-dire plus de 16 millions de couleurs différentes. On notera que tous les pixels d'une même image sont classiquement codés avec un même nombre de bits. On ajoute parfois aux trois composantes R, G et B, une composante A correspondant à une information de transparence.

[0003] Dans certaines applications, on peut souhaiter réduire le nombre de bits utilisé pour coder les couleurs des pixels d'une image numérique. En effet, plus les couleurs des pixels d'une image sont codées sur un grand nombre de bits, plus cette image représente une grande quantité d'informations. Réduire le nombre de bits du codage des couleurs permet de réduire la quantité d'informations que représente une image, ce qui permet de stocker l'image dans un espace mémoire réduit, de la traiter plus rapidement ou bien de la transmettre, par exemple avec un modem, en un temps réduit.

[0004] Une solution connue pour réduire le nombre de bits codant une image consiste à créer une table de référence, ou palette de couleurs (Color Look Up Table, ou CLUT) contenant un nombre restreint de couleurs codées comme les couleurs d'origine des pixels de l'image. Le codage RGB de la couleur d'origine de chaque pixel est alors remplacé par un code CLUT correspondant à une adresse d'une couleur de la palette, qui est la plus proche de la couleur d'origine du pixel. Le nombre de couleurs de la palette étant restreint, le codage de ses adresses peut comporter un nombre de bits réduit par rapport à celui utilisé dans le codage RGB des couleurs d'origine. Ainsi, le code CLUT d'une couleur peut avoir un nombre de bits réduit par rapport au nombre de bits d'un code RGB. Par exemple, une adresse codée sur huit bits permet d'adresser complètement une palette de 28 = 256 couleurs. Si l'on reprend l'exemple précédent, et que l'on dispose d'une palette de 256 couleurs dont chacune est codée en RGB sur 24 bits, on peut remplacer le code RGB de 24 bits de la couleur d'origine de chaque pixel par une adresse de palette de 8 bits. Une telle substitution permet de réduire sensiblement (environ par trois dans cet exemple) la quantité d'informations représentée par une image.

[0005] Dans un dispositif de traitement d'images numériques, on retrouve des codages de couleur complets (de type RGB) et réduits (de type CLUT) décrits précédemment. Par exemple, une image peut être créée avec un codage de couleur complet, puis elle peut être transformée de manière à avoir un codage de couleur réduit, ce qui permet de rapidement la transmettre par modem ou la retoucher au moyen d'un logiciel. Enfin, une telle image peut être retransformée pour avoir à nouveau un codage de couleur complet, qui permette par exemple de l'afficher sur un écran d'ordinateur. Certains dispositifs de traitement d'images numériques sont destinés à recevoir plusieurs images et à les assembler en une image unique. A titre d'exemple, on considère par la suite un circuit de composition d'image, plus connu sous son appellation anglo-saxonne "blitter", classiquement utilisé pour créer une image à partir de plusieurs images de provenances diverses.

[0006] La figure 1 représente schématiquement sous forme de blocs un exemple d'un dispositif de traitement d'images 2, par exemple une carte graphique d'un ordinateur. Le dispositif 2 comprend une mémoire 4 dans laquelle sont stockées plusieurs images numériques pouvant avoir des codages de couleurs différents, complets ou réduits. La mémoire (MEM) 4 est connectée à un bus 6 de manière à recevoir des commandes d'écriture et de lecture et à fournir ou recevoir des données. Une unité centrale de traitement (CPU) 8 est connectée au bus 6 de manière à recevoir ou fournir des données ou des commandes. Le dispositif 2 comporte également un circuit de composition d'images 9 pourvu d'un circuit de calcul (BLITTER CORE) 10 et de deux mémoires intermédiaires ou tampons de mémoire (BUF1) 12 et (BUF2) 14. Le circuit 10 comprend une première et une seconde entrées d'image connectées respectivement à travers les mémoires intermédiaires 12 et 14 de manière à recevoir des données depuis le bus 6. Le circuit 10 comprend une sortie de données qui constitue la sortie du circuit de composition d'image 9. Cette sortie est reliée à travers une mémoire intermédiaire ou tampon de mémoire (BUF3) 16 à un dispositif d'affichage (DISP) 18. La mémoire intermédiaire 16 est également reliée au bus 6 de manière à recevoir des commandes ou des données depuis l'unité centrale de traitement et à lui fournir des données.

[0007] Classiquement, le circuit de calcul 10 du circuit de composition d'image 9 est prévu pour traiter des images ayant un codage de couleur donné, par exemple un codage CLUT. Des images ayant un codage de couleur différent, dans cet exemple un codage RGB ou semblable, doivent être converties pour avoir ce codage CLUT avant de pouvoir être fournies au circuit de calcul 10. Ainsi, des images ayant un codage de couleur non directement utilisable par le circuit de calcul sont lues dans la mémoire 4 par l'unité centrale ou processeur 8 qui convertit leur codage puis commande leur écriture dans une des mémoires intermédiaires 12 ou 14 du circuit de composition d'image 9. Lorsque les deux mémoires intermédiaires 12 et 14 contiennent des images ayant un codage de couleur utilisable par le circuit de calcul 10, le circuit 10 lit leurs contenus respectifs et produit une image qu'il fournit à la mémoire intermédiaire 16. On notera que les images produites par le circuit 10 peuvent ne pas être dans un code directement utilisable par le dispositif d'affichage 18. Dans un tel cas, l'image contenue dans la mémoire intermédiaire 16 devra être lue et son codage de couleur devra être converti par le processeur 8 avant qu'elle puisse être fournie au dispositif d'affichage 18 par l'intermédiaire de la mémoire intermédiaire 16.

[0008] Dans un tel fonctionnement, l'unité centrale de traitement doit fréquent être utilisée pour convertir des images au format accepté par le circuit de calcul du circuit de composition d'image. Une telle utilisation de l'unité centrale ne permet pas de l'utiliser à d'autres tâches, ce qui nuit aux performances du système dans lequel est intégré le circuit 10, par exemple un micro-ordinateur.

[0009] La seule solution pour accroître les performances du système consiste à utiliser une unité centrale de traitement plus rapide, mais une telle solution est coûteuse.

[0010] La présente invention vise à pallier les inconvénients des circuits connus de composition d'images.

[0011] La présente invention vise, en particulier, à proposer un circuit de traitement d'images permettant d'économiser du temps de travail de l'unité centrale de traitement du système dans lequel il est intégré.

[0012] La présente invention vise également à proposer un tel circuit de traitement d'images qui comporte un circuit ayant une fonction de conversion des codages de couleur et une fonction de composition d'images.

[0013] La présente invention vise en outre à proposer une solution particulièrement économique.

[0014] Pour atteindre ces objets, la présente invention prévoit un circuit de traitement d'image numérique propre à remplacer un code d'entrée associé à un pixel de l'image par un code de sortie choisi dans un premier moyen de mémorisation contenant un ensemble de codes, qui comporte un bus d'entrée propre à recevoir le code d'entrée, un bus de sortie propre à délivrer le code de sortie, ledit premier moyen de mémorisation, un moyen de calcul d'adresse du premier moyen de mémorisation, un moyen de sélection d'adresse du premier moyen de mémorisation entre le code d'entrée et un code d'adresse généré par le moyen de calcul d'adresse, un deuxième moyen de mémorisation propre à contenir un code d'adresse généré par le moyen de calcul d'adresse, et un moyen de sélection du code de sortie entre un code lu à l'adresse courante du premier moyen de mémorisation et ledit code contenu dans le deuxième moyen de mémorisation.

[0015] Selon un mode de réalisation de la présente invention, le moyen de calcul d'adresse comprend un générateur d'adresses propre à fournir des codes d'adresse prédéterminés au moyen d'adressage, et un circuit de comparaison de données prévu pour comparer le premier code et les codes stockés aux adresses prédéterminées dans le premier moyen de mémorisation, déterminer celui des codes comparés qui est le plus proche du premier code, et commander, au second moyen de mémorisation, de stocker le code de l'adresse à laquelle le code comparé le plus proche est stocké dans le premier moyen de mémorisation.

[0016] Selon un mode de réalisation de la présente invention, les bus d'entrée et de sortie comprennent chacun un premier, un deuxième, un troisième et un quatrième sous-bus ayant un même nombre de bits, le moyen de sélection d'adresse comprend un premier, un deuxième, un troisième et un quatrième multiplexeurs dont les premières entrées sont respectivement connectées aux premier, deuxième, troisième et quatrième sous-bus d'entrée, la sortie du premier multiplexeur étant reliée aux secondes entrées des deuxième, troisième et quatrième multiplexeurs, le premier moyen de mémorisation comprend un premier, un deuxième, un troisième et un quatrième circuits de mémoire identiques dont les entrées d'adressage sont respectivement connectées aux sorties des premier, deuxième, troisième et quatrième multiplexeurs, et le moyen de sélection du code de sortie comprend un cinquième multiplexeur dont la première entrée est connectée à la sortie de données du premier circuit de mémoire et dont la sortie est connectée au premier sous-bus de sortie, les deuxième, troisième et quatrième sous-bus de sortie étant connectés respectivement aux sorties de données des deuxième, troisième et quatrième circuits de mémoire.

[0017] Selon un mode de réalisation de la présente invention, le générateur d'adresses est formé d'un compteur propre à fournir une série prédéterminée de codes d'adresse à la seconde entrée du premier multiplexeur, et le circuit de comparaison de données comprend : un calculateur connecté pour recevoir respectivement les codes fournis aux trois premiers sous-bus d'entrée et les codes fournis par les trois premiers circuits de mémoire, et prévu pour fournir un signal numérique égal à la différence entre ces codes, et un comparateur à mémoire connecté pour conserver le signal numérique de différence le plus faible calculé pour la série prédéterminée de codes d'adresse et pour commander au second moyen de mémorisation de stocker le code de l'adresse à laquelle les codes correspondant à la différence la plus faible sont stockés dans le premier moyen de mémorisation.

[0018] La présente invention vise également un procédé de traitement d'image au moyen d'un circuit de traitement d'image numérique selon l'un des modes de réalisation précédents, qui consiste à recevoir des images dont les codes de couleurs correspondent chacun à une adresse d'une table de référence de couleurs, et à remplacer chaque adresse par le code de couleur désigné par cette adresse dans la table de référence.

[0019] Selon un mode de mise en oeuvre de la présente invention, le procédé consiste à recevoir des images dont les couleurs sont codées d'une manière prédéterminée, et à remplacer le code de chaque couleur de l'image par une adresse d'une table de référence de couleurs.

[0020] Selon un mode de mise en oeuvre de la présente invention, le procédé comprend les étapes consistant à stocker, dans les premier, deuxième, troisième et quatrième circuits de mémoire, des codes respectivement de couleurs rouge, verte et bleue et de transparence, à fournir un code respectivement de couleur rouge, verte et bleue et de transparence aux premier, deuxième, troisième et quatrième sous-bus d'entrée, et à commander les multiplexeurs du moyen de sélection d'adresse et du moyen de sélection de sortie pour fournir aux premier, deuxième, troisième et quatrième circuits de mémoire les codes reçus sur les premier, deuxième, troisième et quatrième sous-bus d'entrée, et pour fournir aux quatre sous-bus de sortie les codes respectifs fournis par les quatre circuits de mémoire.

[0021] Selon un mode de mise en oeuvre de la présente invention, le procédé comprend les étapes consistant à stocker, dans les premier, deuxième, troisième et quatrième circuits de mémoire, des codes respectivement de couleurs rouge, verte et bleue, et de transparence, à fournir un code d'adresse au premier sous-bus d'entrée, et à commander les multiplexeurs du moyen de sélection d'adresse et du moyen de sélection de sortie pour fournir, aux premier, deuxième, troisième et quatrième circuits de mémoire, le code reçu sur le premier sous-bus d'entrée, et pour fournir, aux quatre sous-bus de sortie, les codes respectifs fournis par les quatre circuits de mémoire.

[0022] Selon un mode de mise en oeuvre de la présente invention, le procédé comprend les étapes consistant à stocker dans les premier, deuxième, troisième et quatrième circuits de mémoire des codes respectivement de couleurs rouge, verte et bleue, et de transparence, à fournir un code d'adresse au premier sous-bus d'entrée, à fournir un code de transparence au quatrième sous-bus d'entrée, et à commander les multiplexeurs du moyen de sélection d'adresse et du moyen de sélection de sortie pour fournir aux premier, deuxième et troisième circuits de mémoire le code reçu sur le premier sous-bus d'entrée, pour fournir au quatrième circuit de mémoire le code reçu sur le quatrième sous-bus d'entrée, et pour fournir aux quatre sous-bus de sortie les codes respectifs fournis par les quatre circuits mémoire.

[0023] Selon un mode de mise en oeuvre de la présente invention, le procédé comprend les étapes consistant à stocker dans les premier, deuxième, troisième et quatrième circuits de mémoire des codes respectivement de couleurs rouge, verte et bleue, et de transparence, à fournir aux premier, deuxième et troisième sous-bus d'entrée respectivement des codes de couleurs rouge, verte et bleue, à activer le compteur, et à commander les multiplexeurs du moyen de sélection d'adresse et du moyen de sélection de sortie pour fournir, aux trois premiers circuits de mémoire les codes d'adresse fournis par le compteur, et pour fournir au premier sous-bus de sortie le code d'adresse fourni par le second moyen de mémorisation.

[0024] Ces objets, caractéristiques et avantages, ainsi que d'autres de la présente invention seront exposés en détail dans la description suivante de modes de réalisation particuliers faite à titre non-limitatif en relation avec les figures jointes parmi lesquelles :

la figure 1, décrite précédemment, représente schématiquement un dispositif classique de traitement d'images numériques ;

la figure 2 représente schématiquement un dispositif de traitement d'images numériques comportant un circuit de composition d'images selon un mode de réalisation de la présente invention ;

la figure 3 représente, de façon schématique sous forme de blocs, un mode de réalisation d'un convertisseur de couleurs du circuit de composition d'image selon la présente invention ;

les figures 4A à 4E représentent, sous forme de blocs et de façon plus détaillée qu'à la figure 3, un mode de réalisation d'un convertisseur de couleurs selon la présente invention ; et

les figures 4B, 4C, 4D et 4E représentent le convertisseur de la figure 4 respectivement dans quatre modes de fonctionnement.



[0025] Les mêmes éléments ont été désignés par les mêmes références aux différentes figures. Pour des raisons de clarté, seuls les éléments nécessaires à la compréhension de l'invention ont été représentés. En particulier, les détails constitutifs du circuit de calcul n'ont pas été spécifiés et ne font pas l'objet de la présente invention. De plus, le circuit de composition d'image de l'invention ne sera décrit que pour ses éléments qui diffèrent du circuit classique.

[0026] La figure 2 représente un dispositif de traitement d'images tel que celui de la figure 1, comportant un circuit de composition d'image (BLITTER) 20 selon la présente invention. Dans l'exemple de la figure 2, le dispositif de traitement comprend, comme précédemment, une unité centrale de traitement (CPU) 8, une mémoire (MEM) 4, un bus 6, un dispositif d'affichage (DISP) 18 et une mémoire intermédiaire (BUF3) 16. Le circuit 20 comprend également un circuit de calcul (BLITTER CORE) 10 classique dont les deux entrées sont reliées aux sorties de deux mémoires intermédiaires (BUF1) 12 et (BUF2) 14.

[0027] Selon l'invention, le circuit de composition d'image 20 comprend un convertisseur de couleurs (CONV) 22 connecté de manière à pouvoir convertir les codages de couleur des images fournies aux mémoires intermédiaires 12 et 14, et ceux des images fournies par le circuit 10. Ainsi, l'entrée (IN) du convertisseur 22 est connectée à un multiplexeur d'entrée (MUX1) 26 de manière à pouvoir recevoir des données depuis le bus 6 ou depuis la sortie du circuit de calcul 10, et la sortie (OUT) du convertisseur 22 est connectée à un démultiplexeur (DEMUX) 28 de manière à pouvoir fournir des données à l'une ou l'autre des mémoires intermédiaires 12 et 14, ou à une première entrée d'un multiplexeur de sortie (MUX2) 30. Une seconde entrée du multiplexeur 30 est connectée à la sortie du circuit de calcul 10, et sa sortie est connectée en entrée de la mémoire intermédiaire 16. On notera que la sortie du circuit 10 pourrait, dans un autre mode de réalisation, être connectée au bus 6 de manière à pouvoir écrire directement dans la mémoire 4. Les éléments d'aiguillage tels que les multiplexeurs 26 et 30 et le démultiplexeur 28, le convertisseur 22 ainsi que le circuit de calcul 10 sont tous connectés de manière à être commandés par l'unité centrale de traitement 8. Les connexions de commande nécessaires, ainsi que leur gestion, sont classiques et elles ne seront pas détaillées plus avant. Ainsi connecté, le convertisseur 22 a pour fonction de modifier le codage des couleurs des images fournies au circuit de calcul 10 ou par le circuit de calcul 10. Ainsi, les codages des couleurs des images destinées aux première et deuxième entrées du circuit 10 peuvent être modifiés par le convertisseur 22 avant que ces images ne soient stockées dans les mémoires intermédiaires 12 et 14. De même, le codage des couleurs d'une image produite par le circuit de calcul peut être modifié de manière que cette image soit directement utilisable par le circuit d'affichage 18. Dans le présent exemple, cette image est stockée dans la mémoire intermédiaire 16.

[0028] On notera que les éléments d'aiguillage 26, 28 et 30 permettent de réaliser un circuit économique qui n'utilise qu'un seul convertisseur 22 pour convertir le format des images écrites dans les mémoires intermédiaires 12, 14 et 16. A titre de variante, on pourra utiliser trois circuits de conversion distincts, ce qui est moins économique mais qui permet d'obtenir une vitesse de travail plus élevée.

[0029] La figure 3 représente un mode de réalisation du convertisseur de couleur 22 de la figure 2. Ce circuit comprend un bus d'entrée (IN) 32 propre à recevoir un code d'entrée qui est le codage de la couleur d'un pixel d'une image d'entrée, et un bus de sortie (OUT) 34 propre à délivrer un code de sortie qui est le codage de la couleur du même pixel d'une image de sortie. Le circuit 22 comprend également un premier moyen de mémorisation ou mémoire (MEM1) 36 stockant un nombre prédéterminé de codes de sortie, qui constitue une table de référence de couleurs, par exemple une palette de couleurs, un deuxième moyen de mémorisation ou mémoire (MEM2) 38 dont le rôle sera expliqué par la suite, un calculateur d'adresse (ADC) 40, connecté pour recevoir le code d'entrée ainsi que les codes fournis par la mémoire 36. Le calculateur d'adresse 40 est en outre connecté pour fournir un code d'adresse et une commande d'écriture à la mémoire 38. Le circuit de conversion 22 comprend également un sélecteur d'adresse (ADR) 42 connecté pour fournir, à la mémoire 36, un code d'adresse reçu soit du bus d'entrée 32, soit du calculateur d'adresse 40. Le circuit 22 comprend en outre un sélecteur du code de sortie (SEL) 44 prévu pour fournir, au bus de sortie 34, un code de sortie correspondant soit aux codes fournis par la mémoire 36 soit aux codes fournis par la mémoire 38. On notera que, pour des raisons de clarté, on a omis de représenter une troisième entrée du sélecteur 44, reliée directement au bus 32 et permettant de traverser le circuit 22 lorsque le codage des couleurs de l'image d'entrée ne doit pas être changé.

[0030] Selon le mode de réalisation de la figure 3, le calculateur d'adresse 40 comprend un générateur d'adresse (GEN) 46 prévu pour générer et fournir une adresse au sélecteur 42 et à la mémoire 38. Le calculateur 40 comprend également un circuit de comparaison de codes (COMP) 47 prévu pour comparer les codes reçus sur le bus 32 avec les codes fournis par la mémoire 36, et pour fournir, à la mémoire 38, une commande d'écriture lorsque la différence entre les codes comparés satisfait à des conditions prédéterminées. On notera que la mémoire 36 est connectée de manière que son contenu soit modifiable par l'unité centrale 8.

[0031] Une caractéristique de l'invention est que le circuit de conversion 22 est prévu pour fonctionner dans plusieurs modes. Les sélecteurs 42 et 44, ainsi que le calculateur d'adresse 40 sont connectés de manière à pouvoir être commandés par l'unité centrale 8 en fonction des modes de fonctionnement du circuit 22. Les connexions existant entre l'unité centrale et les éléments du circuit de conversion 22 sont à la portée de l'homme de l'art et ne seront pas décrites plus avant.

[0032] Selon son mode de fonctionnement, le circuit 22 de l'invention fournit des codes complets tels que des codes RGB ou des codes réduits tels que des codes CLUT.

[0033] La figure 4 représente de façon plus détaillée un mode de réalisation du circuit 22 de la figure 3. Ce circuit est prévu pour recevoir ou fournir des données de couleur codées, par exemple, sur 32 bits en un format appelé RGBA, comprenant trois composantes R, G et B codées chacune sur 8 bits et une composante A de transparence codée sur 8 bits. On notera que ce circuit peut également recevoir ou fournir des données de couleur codées en RGB sur 24 bits, comprenant trois composantes R, G et B codées sur 8 bits chacune. Dans un tel cas, la composante A précédente sera simplement ignorée. Le circuit 22 peut en outre recevoir ou fournir des données de couleurs sous la forme d'un code CLUT de 8 bits correspondant à une adresse d'une palette de 256 couleurs.

[0034] Selon le mode de réalisation de la figure 4, le bus d'entrée 32 comprend quatre sous-bus de 8 bits 321 à 324. Le sélecteur 42 comprend quatre multiplexeurs 421 à 424 recevant respectivement, sur une première entrée, les sous-bus 321 à 324. La mémoire 36 comprend quatre circuits de mémoire 361 à 364 ayant chacun 256 emplacements mémoires de 8 bits, repérés par une adresse comprise entre 0 et 255. Les entrées d'adressage des circuits de mémoire 361 à 364, sur 8 bits, sont respectivement reliées aux sorties des multiplexeurs 421 à 424. Le bus de sortie 34 comprend quatre sous-bus de 8 bits 341 à 344. Le sélecteur 44 comprend un multiplexeur 441 dont une première entrée est reliée à la sortie du circuit de mémoire 361, et dont la sortie est reliée au sous-bus 341. Les sous-bus 342 à 344 sont reliés respectivement aux sorties des circuits de mémoire 362 à 364. La sortie du multiplexeur 421 est reliée aux secondes entrées des multiplexeurs 422 à 424. Le générateur d'adresse 46 est un compteur propre à fournir une série prédéterminée de codes d'adresse de 8 bits à la seconde entrée du multiplexeur 421 ainsi qu'à l'entrée de la mémoire 38. La mémoire 38 comporte un seul emplacement mémoire de 8 bits. La sortie de la mémoire 38 est reliée à la seconde entrée du multiplexeur 441.

[0035] Le circuit de comparaison 47 comprend un calculateur (CAL) 471, dont une première, une deuxième et une troisième entrées, sont respectivement connectées aux sous-bus 321, 322 et 323 et dont une quatrième, une cinquième et une sixième entrées sont respectivement connectées aux sorties des trois circuits de mémoire 361, 362 et 363. Le calculateur 471 est prévu pour fournir un signal numérique dit "de différence" égal à la somme des valeurs absolues des différences, respectivement des codes reçus sur la première et la quatrième entrée, la deuxième et la cinquième entrée, et la troisième et la sixième entrée. Le circuit de comparaison 47 comprend en outre un comparateur à mémoire (C/M) 472 connecté pour stocker le signal de différence le plus faible des signaux de différence calculés par le calculateur 471 pour la série prédéterminée de codes d'adresse. Le comparateur 472 est en outre connecté de manière à, lorsqu'il stocke ce signal de différence, commander à la mémoire 38 de stocker le code de l'adresse fournie par le compteur 46. Une première borne de commande 500 est reliée aux bornes de sélection d'entrées des multiplexeurs 422 et 423. Une seconde borne de commande 501 est reliée à la borne de sélection d'entrées du multiplexeur 424. Enfin, une troisième borne de commande 502 est reliée aux bornes de sélection d'entrées des multiplexeurs 421 et 441, ainsi qu'à une borne de commande du compteur 46. Ces trois bornes de commande sont connectées de manière classique, par exemple à un registre de commande de l'unité centrale. Les circuits de mémoire 361 à 364 sont également connectés de manière que l'unité centrale puisse changer leur contenu.

[0036] Les figures 4A à 4D représentent avec de mêmes références les éléments du circuit de la figure 4 dans différents modes de fonctionnement pris pour exemple. Pour faciliter la lecture de ces figures, les éléments inutilisés dans chacun des modes sont hachurés.

[0037] La figure 4A représente le circuit de la figure 4 dans un premier mode de fonctionnement, dit de transposition de couleurs, où les codes de couleurs sont modifiés mais pas la nature du codage. Les sous-bus 321 à 323 reçoivent respectivement des composantes R, G et B codées sur 8 bits d'un pixel et le sous-bus 324 reçoit une composante A de transparence codée sur 8 bits de ce même pixel. Les multiplexeurs 421 à 424 sont commandés de manière à fournir aux circuits de mémoire 361 à 364 les codes reçus sur les sous-bus 321 à 324. Les composantes R, G, B et A sont ainsi utilisées directement comme adresses par chacun des circuits 361 à 364. Le sélecteur de sortie 44 est commandé de manière que le code fourni par le circuit 361 soit fourni au sous-bus 341. Ainsi, les codes fournis à chacun des sous-bus 341 à 344 sont les codes fournis par les circuits respectifs 361 à 364. Les circuits de mémoire 361 à 364 sont respectivement chargés avec 256 composantes R, G, B et A codées sur 8 bits chacune, qui constituent une palette de couleurs et de transparence.

[0038] Un tel mode de fonctionnement permet de soumettre les images à une correction de couleurs dite γ (gamma) . Il est connu que certains tubes cathodiques, de par leur géométrie, modifient certaines couleurs lors de l'affichage des images. Cette modification varie en fonction des couleurs et de la géométrie des tubes. La correction γ consiste à remplacer une couleur d'origine dont on sait qu'elle sera modifiée à l'affichage par une couleur proche qui, modifiée à l'affichage par le tube, correspondra à la couleur d'origine.

[0039] Classiquement, la correction γ est effectuée par le dispositif d'affichage, généralement de façon analogique. Un inconvénient est que toute l'image à afficher subit la correction, même si cette image est composée de plusieurs sous-images dont certaines n'ont pas besoin de correction. En effet, selon leur provenance, certaines images reçues par le circuit de composition d'image peuvent déjà avoir subi une correction γ, par exemple, selon le site Internet d'où elles sont téléchargées.

[0040] Le circuit de composition d'image de la présente invention permet d'harmoniser le niveau de correction γ des images produites. Il est en effet possible de stocker, dans la mémoire 36, une table de couleurs comportant une correction γ ou éventuellement une table de correction γ inverse, selon qu'on veut produire en sortie du circuit de composition d'image une image comportant ou ne comportant pas de correction γ, à partir d'images comportant déjà une correction γ ou non. On notera que la sélection du mode de fonctionnement peut être modifiée en cours de composition d'une image à afficher de sorte qu'il est possible de n'affecter la correction γ que de parties de l'image composite.

[0041] La figure 4B représente le circuit de la figure 4 dans un second mode de fonctionnement de conversion d'une image en code réduit vers une image en code complet. Les multiplexeurs 422 à 424 sont commandés pour fournir les codes reçus sur leurs secondes entrées, et le multiplexeur 421 est commandé pour fournir en sortie les codes reçus sur sa première entrée. Ainsi, dans ce mode, les circuits de mémoire 361 à 364 reçoivent, comme adresse, les 8 bits de code reçus sur le sous-bus 321. Egalement, le multiplexeur 441 est commandé de manière que le sous-bus 341 est relié à la sortie du circuit de mémoire 361, d'où il résulte que les sous-bus de sortie 341 à 344 reçoivent respectivement les sorties des circuits de mémoire 361 à 364. Les circuits de mémoire 361 à 364 sont respectivement chargés avec 256 composantes R, G, B et A codées sur 8 bits chacune, qui constituent une palette de couleurs et de transparence. Dans ce mode de fonctionnement, on fournit un code CLUT de 8 bits au sous-bus 321, et le circuit lui associe un code de couleur RGBA codé sur 32 bits. Ce mode de fonctionnement correspond, par exemple, à une conversion CLUT/RGBA classique. On notera que, selon l'invention, les couleurs de la palette de couleurs peuvent être modifiées pour intégrer des fonctions de correction γ telles que décrites précédemment.

[0042] La figure 4C représente le circuit de la figure 4 dans une variante du deuxième mode de fonctionnement de la figure 4B. La seule différence est que le multiplexeur 424 est commandé de manière à fournir au circuit de mémoire 364 les codes reçus sur le sous-bus 324. De cette manière, on associe à un code CLUT de 8 bits reçu sur le sous-bus 321 un code de couleur RGB codé sur 24 bits, et à une information A de transparence reçue sur le sous-bus 324, une information de transparence codée sur huit bits fournie sur le sous-bus 344. Cette variante permet, par exemple, d'utiliser une palette de transparence comportant un nombre réduit de valeurs qui recevra une composante A ayant un nombre de bit réduit, par exemple 4 bits, et qui fournira une composante de transparence codée sur 8 bits au sous-bus 344.

[0043] La figure 4D représente le circuit de la figure 4A dans un quatrième mode de fonctionnement de conversion d'une image en code complet vers une image en code réduit. Dans ce mode, les multiplexeurs 421 à 424 sont commandés de manière à fournir aux circuits de mémoire 361 à 364 les codes reçus sur leurs secondes entrées respectives. Pour chaque pixel, le compteur 46 est commandé pour générer successivement 256 codes correspondant aux adresses 0 à 255. Ces codes d'adresse sont fournis aux circuits 361 à 364 par le biais des multiplexeurs 421 à 424, ainsi qu'à la mémoire 38. Ainsi, pour chaque pixel, chaque circuit 361 à 364 fournit successivement les codes contenus dans ses 256 emplacements mémoires.

[0044] Le calculateur 471 calcule les différences entre les codes reçus sur les sous-bus d'entrée et les codes fournis par les circuits 361 à 364 en réponse aux 256 codes d'adresse produits par le compteur 46.

[0045] Dans un premier temps, le comparateur 472 mémorise la différence calculée pour le premier code d'adresse (0) fourni par le compteur 46. Puis, à chaque fois que la différence entre les codes reçus sur le bus d'entrée et les codes fournis par la mémoire 36 est inférieure à cette première différence mémorisée, le comparateur 472 fournit un signal d'écriture à la mémoire 38. La mémoire 38 reçoit également les 256 codes d'adresse fournis à la mémoire 36. On mémorise ainsi le code de l'adresse à laquelle est stockée, dans les circuits 361 à 364, la couleur dont le code est le plus proche du code de couleur reçu sur le bus 32. Dans ce mode de fonctionnement, le multiplexeur 441 est commandé de manière à fournir, au sous-bus de sortie 341, l'adresse fournie par la mémoire 38.

[0046] Ce mode de fonctionnement permet, par exemple, d'associer à une couleur codée en RGB sur 24 bits, un code CLUT de 8 bits associé à une palette de couleurs stockée dans la mémoire 36.

[0047] On notera que bien que les données stockées dans les circuits 361 à 364 soient toujours des codes de 8 bits, respectivement de couleurs rouge, verte et bleue et de transparence, ces données peuvent varier en fonction des modes de fonctionnement. La présente invention prévoit que le contenu de la mémoire 36 peut être changé entre chaque mode de fonctionnement.

[0048] On notera que le circuit de conversion de la figure 4 peut être utilisé dans d'autres modes de fonctionnement que ceux décrits en relation avec les figures 4A à 4D pour convertir des images ayant des codes de couleurs différents de ceux décrits, par exemple des codages RGB utilisant moins de 24 bits.

[0049] Bien entendu, la présente invention est susceptible de diverses variantes et modifications qui apparaîtront à l'homme de l'art. En particulier, la figure 4 décrit un mode de réalisation utilisant des multiplexeurs, mais d'autres modes de réalisation utilisant des éléments équivalents pourront être utilisés. Egalement, l'homme du métier adaptera sans difficultés le circuit de composition d'image selon la présente invention de manière qu'il accepte d'autres formats de données. A titre d'exemple, on pourra ajouter, au circuit de conversion décrit précédemment, un circuit pour convertir un codage RGB en un autre codage classique, par exemple un codage dit "YCbCr", et réciproquement.


Revendications

1. Circuit de traitement d'image numérique propre à remplacer un code d'entrée associé à un pixel de l'image par un code de sortie choisi dans un premier moyen de mémorisation (36) contenant un ensemble de codes, caractérisé en ce qu'il comporte :

un bus d'entrée (IN) propre à recevoir le code d'entrée ;

un bus de sortie (OUT) propre à délivrer le code de sortie ;

ledit premier moyen de mémorisation ;

un moyen (40) de calcul d'adresse du premier moyen de mémorisation ;

un moyen (42) de sélection d'adresse du premier moyen de mémorisation entre le code d'entrée et un code d'adresse généré par le moyen de calcul d'adresse ;

un deuxième moyen de mémorisation (38) propre à contenir un code d'adresse généré par le moyen de calcul d'adresse ; et

un moyen (44) de sélection du code de sortie entre un code lu à l'adresse courante du premier moyen de mémorisation et ledit code contenu dans le deuxième moyen de mémorisation.


 
2. Circuit de traitement d'image numérique selon la revendication 1, caractérisé en ce que le moyen de calcul d'adresse (40) comprend :

un générateur d'adresses (46) propre à fournir des codes d'adresse prédéterminés au moyen d'adressage,

un circuit (47) de comparaison de données prévu pour :

comparer le premier code et les codes stockés aux adresses prédéterminées dans le premier moyen de mémorisation (36), déterminer celui des codes comparés qui est le plus proche du premier code, et

commander, au second moyen de mémorisation (38), de stocker le code de l'adresse à laquelle le code comparé le plus proche est stocké dans le premier moyen de mémorisation.


 
3. Circuit de traitement d'image numérique selon la revendication 1 ou 2, caractérisé en ce que

les bus d'entrée (IN) et de sortie (OUT) comprennent chacun un premier (321, 341), un deuxième (322, 342), un troisième (323, 343) et un quatrième (324, 344) sous-bus ayant un même nombre de bits,

le moyen de sélection d'adresse (42) comprend un premier (421), un deuxième (422), un troisième (423) et un quatrième (424) multiplexeurs dont les premières entrées sont respectivement connectées aux premier, deuxième, troisième et quatrième sous-bus d'entrée, la sortie du premier multiplexeur étant reliée aux secondes entrées des deuxième, troisième et quatrième multiplexeurs,

le premier moyen de mémorisation (36) comprend un premier (361), un deuxième (362), un troisième (363) et un quatrième (364) circuits de mémoire identiques dont les entrées d'adressage sont respectivement connectées aux sorties des premier, deuxième, troisième et quatrième multiplexeurs, et

le moyen de sélection du code de sortie (44) comprend un cinquième multiplexeur (441) dont la première entrée est connectée à la sortie de données du premier circuit de mémoire (361) et dont la sortie est connectée au premier sous-bus de sortie (341), les deuxième (342), troisième (343) et quatrième (344) sous-bus de sortie étant connectés respectivement aux sorties de données des deuxième (362), troisième (363) et quatrième (364) circuits de mémoire.


 
4. Circuit de traitement d'image numérique selon les revendications 2 et 3, caractérisé en ce que :

le générateur d'adresses (46) est formé d'un compteur propre à fournir une série prédéterminée de codes d'adresse à la seconde entrée du premier multiplexeur (421), et

le circuit de comparaison de données (47) comprend :

un calculateur (471) connecté pour recevoir respectivement les codes fournis aux trois premiers sous-bus d'entrée (321, 322, 323) et les codes fournis par les trois premiers circuits de mémoire (361, 362, 363), et prévu pour fournir un signal numérique égal à la différence entre ces codes, et

un comparateur à mémoire (472) connecté pour conserver le signal numérique de différence le plus faible calculé pour la série prédéterminée de codes d'adresse et pour commander au second moyen de mémorisation (38) de stocker le code de l'adresse à laquelle les codes correspondant à la différence la plus faible sont stockés dans le premier moyen de mémorisation (36).


 
5. Procédé de traitement d'image au moyen d'un circuit selon l'une quelconque des revendications 1 à 4, caractérisé en ce qu'il consiste à recevoir des images dont les codes de couleurs correspondent chacun à une adresse d'une table de référence de couleurs, et à remplacer chaque adresse par le code de couleur désigné par cette adresse dans la table de référence.
 
6. Procédé de traitement d'image au moyen d'un circuit selon les revendications 2 ou 4, caractérisé en ce qu'il consiste à recevoir des images dont les couleurs sont codées d'une manière prédéterminée, et à remplacer le code de chaque couleur de l'image par une adresse d'une table de référence de couleurs.
 
7. Procédé de traitement d'image au moyen d'un circuit selon la revendication 3 ou 4, caractérisé en ce qu'il comprend les étapes consistant à :

stocker, dans les premier (361), deuxième (362), troisième (363) et quatrième (364) circuits de mémoire, des codes respectivement de couleurs rouge, verte et bleue et de transparence,

fournir un code respectivement de couleur rouge, verte et bleue et de transparence aux premier (321), deuxième (322), troisième (323) et quatrième (324) sous-bus d'entrée, et

commander les multiplexeurs (421, 422, 423, 424, 441) du moyen de sélection d'adresse (42) et du moyen de sélection de sortie (44) pour fournir aux premier, deuxième, troisième et quatrième circuits de mémoire les codes reçus sur les premier, deuxième, troisième et quatrième sous-bus d'entrée, et pour fournir aux quatre sous-bus de sortie (341, 342, 343, 344) les codes respectifs fournis par les quatre circuits de mémoire.


 
8. Procédé de traitement d'image au moyen d'un circuit selon la revendication 3 ou 4, caractérisé en ce qu'il comprend les étapes consistant à :

stocker, dans les premier (361), deuxième (362), troisième (363) et quatrième (364) circuits de mémoire, des codes respectivement de couleurs rouge, verte et bleue, et de transparence,

fournir un code d'adresse au premier sous-bus d'entrée (321), et

commander les multiplexeurs (421, 422, 423, 424, 441) du moyen de sélection d'adresse (42) et du moyen de sélection de sortie (44) pour fournir, aux premier (361), deuxième (362), troisième (363) et quatrième (364) circuits de mémoire, le code reçu sur le premier sous-bus d'entrée (321), et pour fournir, aux quatre sous-bus de sortie, les codes respectifs fournis par les quatre circuits de mémoire.


 
9. Procédé de traitement d'image au moyen d'un circuit selon la revendication 3 ou 4, caractérisé en ce qu'il comprend les étapes consistant à :

stocker dans les premier (361), deuxième (362), troisième (363) et quatrième (364) circuits de mémoire des codes respectivement de couleurs rouge, verte et bleue, et de transparence,

fournir un code d'adresse au premier sous-bus d'entrée (321),

fournir un code de transparence au quatrième sous-bus d'entrée (324), et

commander les multiplexeurs (421, 422, 423, 424, 441) du moyen de sélection d'adresse (42) et du moyen de sélection de sortie (44) pour fournir aux premier, deuxième et troisième circuits de mémoire le code reçu sur le premier sous-bus d'entrée, pour fournir au quatrième circuit de mémoire le code reçu sur le quatrième sous-bus d'entrée, et pour fournir aux quatre sous-bus de sortie les codes respectifs fournis par les quatre circuits mémoire.


 
10. Procédé de traitement d'image au moyen d'un circuit selon la revendication 4, caractérisé en ce qu'il comprend les étapes consistant à :

stocker dans les premier (361), deuxième (362), troisième (363) et quatrième (364) circuits de mémoire des codes respectivement de couleurs rouge, verte et bleue, et de transparence,

fournir aux premier (321), deuxième (322) et troisième (323) sous-bus d'entrée respectivement des codes de couleurs rouge, verte et bleue,

activer le compteur (46), et

commander les multiplexeurs (421, 422, 423, 424, 441) du moyen de sélection d'adresse (42) et du moyen de sélection de sortie (44) pour fournir, aux trois premiers circuits de mémoire les codes d'adresse fournis par le compteur, et pour fournir au premier sous-bus de sortie (341) le code d'adresse fourni par le second moyen de mémorisation (38).


 




Dessins

























Rapport de recherche