Brevet FR2563024A1 — publié le 19851018

I Dispositif pour modifier l'aspect des points d'une image sur un écran d'une console de visualisation d'images graphiques. La présente invention concerne un dispositif pour modifier l'as- pect des points d'une image sur un écran d'une console de visualisation d'images graphiques, l'image étant analysée suivant le principe d'analyse des images de télévision, et la console étant commandée par un proces- seur graphique. Les consoles de visualisation commandées par un processeur graphique comportent une mémoire graphique à accès aléatoire interposée entre l'écran de la console et le processeur qui mémorise les données relatives à chaque point ou "pixel" du graphique apparaissant sur l'écran. La modification du graphique peut être obtenue à tout instant en changeant le contenu des données relatives à chaque point du graphique mémorisé à l'intérieur de la mémoire graphique, ce qui a pour effet d'agir sur la luminance et/ou la couleur de chaque point ou pixel du graphique qui est à modifier. La modification est habituellement effectuée par un opérateur qui introduit sur un clavier lié au processeur les instructions qui permettent la modification des données relatives à chacun des points modifiés. L'action de l'opérateur sur le clavier déclenche dans le proces- seur un cycle de modification, qui est exécuté soit par le lancement d'un programme particulier soit par la mise en action d'opérateurs logiques câblés. Si les méthodes de programmation utilisées permettent d'effec- tuer à faible coût un nombre très élevé et complexe d'opérations de remplacement, elles ont pour inconvénient d'occuper beaucoup de temps de cycle de calcul du processeur. Par contre, l'utilisation de logiques câblées permet de gagner en temps de traitement mais a pour inconvé- nient d'être onéreuse et d'être limitée à l'utilisation d'opérateurs logiques élémentaires ce qui réduit très nettement les possibilités des systèmes à logiques câblées. Le but de l'invention est de pallier les inconvénients précités. A cet effet, l'invention a pour objet, un dispositif pour modifier l'aspect d'une image sur l'écran d'une console de visualisation d'images graphiques analysées suivant le principe d'analyse des images de télévision commandée par un processeur graphique, du type comprenant, une mémoi- re graphique de tous les points de l'écran interposée entre l'écran de la console de visualisation et le processeur, la mémoire graphique étant organisée en mots de n bits, chaque bit étant représentatif de l'état d'un point de l'image et ayant une valeur 1 ou 0 suivant que le point qu'il représente sur l'image est visible ou est confondu avec le fond de l'image et une mémoire d'attribut contenant les attributs de chacun des points de l'image, caractérisé en ce qu'il comprend également un décodeur pour sélectionner un bit dans chaque mot lu dans la mémoire graphique et un circuit de modification relié au décodeur, à la mémoire d'attribut et au processeur pour modifier chaque attribut du point correspondant au bit sélectionné à l'aide de bits de modification fournis par le processeur et mémoriser chaque attribut modifié à l'intérieur de la mémoire d'attribut, et un circuit de reformation couplé au circuit de modification, au décodeur et à la mémoire graphique pour reconstituer le mot modifié et le mémoriser à l'intérieur de la mémoire graphique. Le dispositif selon l'invention a pour principal avantage qu'il permet d'optimiser la durée des cycles de lecture, de modification et d'écriture de chaque point ou pixel dont les données correspondantes sont mémorisées dans la mémoire graphique ainsi que la gamme des opérations qui peuvent être effectuées à l'intérieur de ce cycle. En offrant la possibilité de traiter en parallèle chaque mot contenu dans la mémoire graphique avec chacun des attributs correspondants des points ou pixels, le dispositif selon l'invention présente une grande souplesse de traitement, pratiquement identique à celle que l'on obtient avec des systèmes à traitement purement logiciel tout en permettant des traitements plus rapides. D'autres caractéristiques et avantages de l'invention apparaîtront au cours de la description faite au regard des dessins annexés donnés uniquement à titre d'exemple et dans lesquels: - la figure 1 est une représentation du dispositif selon l'invention; - la figure 2 est une représentation des diagrammes des temps du cycle de rafraichissement de l'écran d'une console de visualisation balayé suivant le principe de balayage des écrans de télévision, du cycle de lecture, de modification et d'écriture de la mémoire graphique ainsi que du cycle d'accès direct DMA à la mémoire graphique; - la figure 3 est une représentation d'une organisation parallèle du dispositif de la figure I permettant la modification en parallèle de l'ensemble des données relatives aux points ou pixels de l'image d'un graphique contenus dans un mot de la mémoire graphique. Le dispositif I pour modifier l'aspect des points d'une image inscrite sur un écran d'une console de visualisation selon l'invention est représenté sur la figure I à l'intérieur d'une ligne en pointillées, couplé entre un processeur 2 désigné par l'abréviation CPU qui est la contraction du terme anglo-saxon Central Processing Unit et une console de visualisa- tion 3. Le dispositif I comprend une mémoire graphique 4 qui contient une représentation binaire matricielle de tous les points caractéristiques de l'image graphique qui est visualisée sur la console de visualisation 3, chaque bit d'information contenu dans la mémoire graphique 4 ayant, par exemple, la valeur 0 lorsqu'il correspond au fond uniforme du graphique et la valeur binaire I lorsqu'il correspond à un point ou pixel du graphique qui se détache sur le fond de celui-ci. La mémoire graphique est organisée en mots de n bits représentant l'état de n pixels, chaque mot étant adressé soit par le processeur 2 ou par la console de visualisation 3 par l'intermédiaire d'un circuit multiplexeur d'adresse 5 à deux entrées de multiplexage, une première entrée de multiplexage étant reliée par la ligne d'adresse 6 à la sortie d'adresse du processeur 2 et une deuxième entrée d'adresse étant reliée par la ligne d'adresse 7 à la sortie d'adresse de la console de visualisation 3. La sortie du multiplexeur d'adresse 5 est reliée aux entrées d'adressage de la mémoire graphique 4 au moyen de la ligne d'adresse 8. Les données lues dans la mémoire graphique 4 aux emplacements de mémoire désignées par les mots d'adresse appliqués sur la ligne d'adresse 8 sont appliquées respectivement aux entrées d'un registre parallèle-série 10 et aux entrées d'un circuit multiplexeur I1. Le dispositif I comprend également une mémoire d'attribut 12 formée éventuellement par p plans de mémoires supplémentaires de la mémoire graphique 4 qui contient les attributs codés sur p bits respectifs à chacun des n pixels représentés dans chaque mot de n bits contenus dans la mémoire graphique 4, cette mémoire d'attribut 12 étant adressée simulta- nément à la mémoire graphique 4 par la ligne d'adresse 8. Les mots lus dans la mémoire graphique et dans la mémoire d'attribut 12 sont appliqués aux circuits non représentés de la console de visualisation 3, par l'inter- médiaire du registre 10, pour permettre la visualisation des pixels qu'ils représentent par la console de visualisation. Les mots d'attribut PA de chaque pixel, adressés par chacun des mots d'adresse appliqués sur la ligne d'adressage 8, sont appliqués ar une ligne de données 13 sur une première entrée d'un circuit de modification 14 au travers du multiplexeur Il et d'un décodeur 19 reliés en série. Le circuit de modification 14 est relié par des deuxième et troisième entrées aux sorties de données du proces- seur 2 au moyen d'une ligne de données 15 dans le but, d'appliquer. des données de modification notées FM et PN sur les deuxième et troisième entrées du circuit de modification 14, pour modifier les valeurs des attributs des points ou pixels PA lus dans la mémoire d'attribut 12 et qui sont appliqués sur la première entrée du circuit de modification 14 par la ligne de données 13. La sortie du circuit de modification 14 est reliée par une ligne de donnée 16, à une entrée de donnée d'un circuit de reformation 17 pour enregistrer chaque attribut modifié PM par le circuit de modifica- tion 14 à l'emplacement qu'il occupe dans la mémoire d'attribut 12. Le circuit de reformation 17 est également relié par une deuxième entrée, au moyen de la ligne 18, à la sortie du décodeur 19 adressé par la ligne d'adresse 8 et relié par son entrée à la sortie du multiplexeur 11. Le décodeur 19 adressé par la ligne d'adresse 8 a pour but de sélectionner, à l'intérieur du mot de n bits appliqué à l'entrée du multiplexeur 11 chaque bit désigné par le mot d'adresse appliqué sur son entrée et le mot d'attribut PA codé sur p bits qui lui correspond. Le bit représentatif du pixel sélectionné et son attribut PA sont appliqués respectivement à une quatrième entrée et à la première entrée du circuit de modification 14 dans le but de modifier éventuellement leurs valeurs en fonction des données de modification qui sont appliquées sur les deuxième et troisième entrée du circuit de modification 14. Les bits non sélectionnés par le décodeur 19 sont appliqués par la ligne 18 à l'entrée du circuit de reformation 17 qui reforme, en fonction de l'information modifiée ou non fournie à la sortie du circuit de modification 14, un nouveau mot binaire qui est appliqué à l'entrée d'un circuit démultiplexeur d'écriture 20 au moyen d'une ligne de données 21 pour écrire le mot éventuellement modifié et les attributs correspondants aux adresses qu'ils occupent normalement dans la mémoire graphique 4 et la mémoire d'attribut 12. Les données de modification de chacun des mots contenus dans la mémoire graphique 4 et la mémoire d'attribut 12 sont introduites à partir d'un clavier 22 qui est relié au processeur 2 par l'intermédiaire de la ligne de liaison 23. Une mémoire de masse 24 est éventuellement couplée par une ligne 25 au processeur 18 pour transférer à l'intérieur du processeur 2 les instructions de programme nécessaires au fonctionnement de l'ensem- ble. Le processeur 2 est également relié à une mémoire vive MMU 26 chargée de mémoriser en cours de fonctionnement les instructions et les données introduites à partir du clavier 22 ou de la mémoire de masse 24. La mémoire graphique selon l'invention est à double accès par partage de cycle. Un premier cycle est réservé au fonctionnement de la console de visualisation 3, un deuxième cycle est réservé au fonctionne- ment du processus de modification contrôlé par le processeur 2, ce cycle de modification étant caractérisé par un cycle de lecture, un cycle de modification et un cycle de ré-écriture des informations modifiées dans la mémoire graphique et un troisième cycle de lecture directe de la mémoire graphique, l'ensemble de ces cycles étant représenté par le diagramme des temps de la figure 2. Les cycles de la figure 2 sont exécutés par le processeur 2 qui applique des signaux de commande sur le bus de commande 27 pour rafraichir les points ou pixels du graphique visualisés sur l'écran de la console de visualisation et commander les cycles de lecture et d'écriture de la mémoire graphique 4 et de la mémoire d'attribut 12. Sur la figure 2 le cycle de rafraichissement marqué "VISU" de la console de visualisation est représenté avec une durée T sur une période de 2T, le cycle de lecture L des informations contenues dans la mémoire graphique 4 et dans la mémoire d'attribut 12 est représenté entrelacé pendant une durée T en dehors de la durée de rafraichissement de la console de visualisation 3 sur une période de durée 4T, le cycle de modification M suit le cycle de lecture L avec une même durée T et une même période égale de durée 4T, le cycle d'écriture E suit le cycle de modification M avec une même durée T durant une période égale à 4T et le cycle d'accès direct à la mémoire graphique et à la mémoire d'attribut a lieu pendant une durée T entre les instants de rafraîchissement de la console de visualisation 3. A titre d'exemple, ce mode de partage de cycles peut être avantageusement utilisé pour la visualisation de mots de 16 pixels pendant une durée de 1184 nanosecondes et l'exécution de cycles de lecture-modification-écriture de deux fois 1184 nanosecondes par pixel ou point à modifier ce qui permet, de couvrir des plages de fonctionne- ment élevées, par exemple, un traitement de 720 points d'image ou pixels par ligne de balayage sur 576 lignes en respectant les normes CCIR du balayage de télévision à 625 lignes, le débit de la console de visualisation correspondant dans ce cas au standard de télévision numérique de 13,5 MHZ pour 25 image/seconde et la durée de cycle T étant voisine de 400 nanosecondes. Ces résultats sont obtenus en organisant par exemple la mémoire graphique en mots de 16 pixels et la mémoire d'attribut 12 en mots d'attribut de 3 bits, chacun des mots étant adressé par le processeur 2 par les bits d'adresse appliqués sur le bus d'adresse 8. Chaque mot lu dans la mémoire graphique 4 et dans la mémoire d'attribut 12 est appliqué à l'entrée du multiplexeur 11. La place d'un bit dans le mot correspondant au point ou pixel à modifier est sélectionnée par le multiplexeur 11 et le décodeur 19 à partir des quatre bits de poids faible du mot d'adresse en même temps que 3 bits d'attribut correspondants sont adressés dans la mémoire d'attribut 12 par le bus d'adresse 8. Les bits du mot non désignés par le multiplexeur 11 et le décodeur 19 sont dirigés directement vers les entrées du dispositif de reformation du mot 17 tandis que le bit sélection- né est pris en compte par le circuit de modification 14. Les 3 bits d'attribut lus dans la mémoire d'attribut 12 correspondant au point ou au pixel à modifier sont appliqués sur la première entrée du circuit de modification 14 pendant que le processeur 2 applique simultanément par la ligne de données 15,4 bits de modification PN en même temps que 6 bits de fonction correspondant à la fonction de modification FM choisie par l'opérateur permettant ainsi l'exécution de 64 fonctions de modifica- tion. Le bit du mot mémoire sélectionné et l'attribut correspondant sont modifiés pour former un mot PM sur 4 bits qui est obtenu à la sortie du circuit de modification 14 qui est fonction de la valeur 0 ou 1 du bit du point ou du pixel à modifier lu dans la mémoire graphique 4, de l'attribut correspondant lu dans la mémoire d'attribut 12, des données de modifica- tion PN fournies par le processeur 2 à l'entrée du circuit de modification 14 et de la fonction de modification transmise également sur la troisième entrée du circuit de modification 14 par le processeur 2. Cette transfor- mation est effectuée à l'aide de mémoires mortes électriquement pro- grammables du type connu sous la désignation anglo saxonne "EPROM" ou des mémoires vives du type connu sous la désignation anglo saxonne "RAM" contenant des tables de fonctions de modification de l'aspect des points de l'image graphique adressés par le processeur 2 et par les bits d'attribut PA de chaque mot sélectionné de la mémoire d'attribut, pour remplir les multiples fonctions qui peuvent être données au circuit de modification, ces fonctions pouvant être des fonctions logiques simples du type ET logique, OU logique, OU EXCLUSIF, ou des fonctions plus compliquées permettant l'exécution, par exemple, d'interpolations linéai- res entre "pixels" anciens et "pixels" nouveaux, des opérations condition- nelles, des opérations d'interpolation linéaires pour l'attribut de luminance d'un pixel en fonction de l'adressage fractionnaire du pixel nouveau pour résoudre en particulier les phénomènes d'aliasing connus des processeurs graphiques, ou encore pour exécuter des contrôles de texture d'image en superposition etc... L'invention qui vient d'être décrite à l'aide du mode de réalisation représenté à la figure I n'est pas limitée à ce type de réalisation, il va de soi que d'autres modes de réalisation sont également possibles sans pour autant sortir du cadre même de l'invention, en particulier on concevra que l'invention s'applique également comme dans l'exemple représenté à la figure 3, à la réalisation de dispositifs plus complexes associant en parallèle le dispositif représenté à la figure I pour des versions de l'invention requérant un traitement rapide. Le dispositif représenté à la figure 3 se compose de quatre dispositifs du type représenté à la figure 1 composés en particulier respectivement de mémoires graphiques 41 y 42 y 43 et 44 et de 4 circuits de modification et reformation 29, 30, 31, 32 similaires à l'exemple décrit à la figure 1 et qui permettent de traiter les pixels PIXo, PIX1 PIX2, PIX3 consécutifs du mot de 16 pixels adressés dans les mémoires 4,...44. Le bus de données 15 agit sur les circuits de modification et reformation 29, 30, 31, 32 au travers d'un multiplexeur 28 qui dirige sur chacune des entrées des circuits placés à l'intérieur des circuits 29, 30, 31, 32 la donnée de modification PN et la fonction de modification FM. Cette organisation permet par exemple en mode de transfert conditionnel de modifier tous les pixels de la mémoire graphique concuremment avec la même fonction de modification FM appliquée sur chacun des circuits de modification et reformation 29, 30, 31, 32 tandis qu'en mode graphique, par exemple, en mode de trace de vecteurs, une seule fonction de modification FM correspondant au seul pixel adressé est activé. La vitesse de transfert conditionnel se trouve dans ces conditions très sensiblement accrue, en pratique il est possible avec une configura- tion parallèle permettant de traiter par exemple huit pixels parallèle- ment, et d'obtenir un temps d'accès équivalent à 1200ns soit: 150 nanosecondes par pixel, soit un temps de transfert conditionnel de l'ordre de 80 millisecondes pour une image de 512 x 512 pixels. REVENDICATIONS 1. Dispositif (1) pour modifier l'aspect des points d'une image sur un écran d'une console de visualisation (3) d'images graphiques analysées suivant le principe d'analyse des images de télévision commandée par un processeur graphique (2) du type comprenant, une mémoire graphique (4) de tous les points de l'écran interposée entre l'écran et la console de visualisation (3) et le processeur (2), la mémoire graphique (4) étant organisée en mots de n bits, chaque bit étant représentatif de l'état d'un point de l'image et ayant une valeur I ou 0 suivant que le point qu'il représente sur l'image est visible ou est confondu avec le fond de l'image, et une mémoire d'attribut (12) contenant les attributs de chacun des points de l'image, caractérisé en ce qu'il comprend également un décodeur (19) pour sélectionner un bit dans chaque mot lu dans la mémoire graphique (4) et un circuit de modification (14) relié au décodeur (19), à la mémoire d'attribut (12) et au processeur (2) pour modifier chaque attribut du point correspondant au bit sélectionné d'un mot à l'aide de bits de modification fournis par le processeur (2) et mémoriser chaque attribut modifié à l'intérieur de la mémoire d'attribut (12), et un circuit de reformation (17) couplé au circuit de modification (14), au décodeur (19) et à la mémoire graphique (4) pour reconstituer le mot modifié et le mémoriser à l'intérieur de la mémoire graphique. 2. Dispositif seion la revendication 1, caractérisé en ce que le circuit de modification (14) est constitué par des mémoires programma- bles contenant des tables de fonction de modification de l'aspect des points de l'image graphique, adressées par le processeur graphique (2) et par les bits d'attribut de chaque mot sélectionné de la mémoire d'attribut (12). 3. Dispositif selon l'une quelconque des revendications I et 2, caractérisé en ce que les bits de modification et d'adressage des fonctions de modification sont engendrés par le processeur graphique (2) à partir d'instructions entrées dans le processeur (2) à partir d'un clavier (22). 4. Dispositif selon l'une quelconque des revendications I à 3, caractérisé en ce que la mémoire graphique (4) est adressée d'une part, par la console de visualisation et d'autre part, par le processeur graphique (2) au travers un multiplexeur d'adresse commandé par le processeur pour partager les cycles d'accès à la mémoire graphique initialisés par la console de visualisation (3) et le processeur (2). 5. Dispositif selon la revendication 4, caractérisé en ce que la mémoire graphique (4) est organisée en mots de longueur fixe. 6. Dispositif selon les revendications 4 et 5, caractérisé en ce que le cycle d'accès du processeur (2) à la mémoire graphique (4) se décom- pose en un cycle de lecture de chaque mot dans lequel se trouve le bit d'un point d'image à modifier, et du mot d'attribut correspondant dans la mémoire d'attribut (12), suivi par un cycle de modification du bit du point correspondant à modifier identifié à l'intérieur du mot lu dans la mémoire graphique et de modification du mot d'attribut lu dans la mémoire d'attribut (12), également suivi par cycle de réécriture du mot contenant le bit modifié dans la mémoire graphique (4) et de réécriture du mot d'attribut modifié dans la mémoire d'attribut (12). 7. Dispositif selon l'une quelconque des revendications 2 à 6, caractérisé en ce que les mémoires programmables du circuit de modifi- cation sont des mémoires mortes électriquement programmables. 8. Dispositif selon l'une quelconque des revendications 2 à 6, caractérisé en ce que les mémoires vives programmables du circuit de modification sont des mémoires vives. 9. Dispositif pour modifier l'aspect des points d'une image sur un écran d'une console de visualisation (3) d'images graphiques analysées suivant le principe d'analyse des images de télévision, commandé par un processeur graphique (2), caractérisé en ce qu'il comprend plusieurs dispositifs selon l'une quelconque des revendications 1 à 8 couplés en parallèle. 10. Dispositif selon la revendication 9, caractérisé en ce que le couplage des dispositifs entre eux est obtenu à l'aide d'un circuit multiple- xeur (28) qui dirige sur chaque des entrées des circuits de modification, la donnée de modification et la fonction de modification pour permettre la modification de tous les points de l'image graphique avec la même fonction de modification.