[0001] La présente invention concerne un dispositif pour l'obtention de tracés continus
sur l'écran d'une console de visualisation commandée par un processeur graphique.
[0002] Les consoles de visualisation adaptées pour le tracé d'images graphique forment des
images à partir d'une matrice ordonnée de points ou de pixels régulièrement répartis
à la surface de l'écran et dont la pigmentation est déterminée en fonction du dessin
ou du graphique qui est à exécuter. Cette matrice est généralement orthogonale et
est constituée par M x N pixels ou points placés sur la surface de l'écran de la console
aux intersections de M rangées et de N lignes. Le produit M x N représente le nombre
total de pixels ou de points visibles sur l'écran de la console, de lui dépendent
les performances du processeur. Dans les réalisations connues, les formats utilisés
vont des matrices de points constitués de 512 par 512 à 1024 par 1024 points ou pixels.
Ces images sont représentées sur les consoles de visualisation ou sur des moniteurs
de télévision noir et blanc ou couleurs à l'aide d'un système d'analyse "colonne-ligne".
[0003] Le mode de balayage de télévision par ligne et trame est apprécié dans ces dispositifs
pour présenter de nombreux avantages. Cependant la structure échantillonnée de la
mémoire graphique qui est interposée entre la console de visualisation et le processeur
provoque des défauts caractéristiques appelés globalement "défauts d'aliasing" dans
la littérature anglo-saxonne qui se présentent soit sous la forme d'un crénelage visible
sur les obliques et les courbes des tracés obtenus sur les écrans lorsque l'image
est fixe, soit par la disparition ou l'apparition brutale de détails en fonction d'un
faible déplacement de l'image. Ces défauts sont principalement dus à l'échantillonnage
du signal aux points discrets de la mémoire d'image interposée entre l'écran de la
console et le processeur.
[0004] Dans les équipements graphiques de hautes performances ces défauts sont corrigés
par diverses techniques consistant, par exemple, à augmenter la définition de l'image
visualisée ou à augmenter la capacité de la mémoire graphique en groupant corrélativement
chaque pixel ou point analysé avec ses points voisins, ou à compenser les arrondis
de position du tracé par une variation de teinte du pixel entourant le tracé ou encore,
en effectuant des traitements lors de la lecture de la mémoire graphique consistant
a opérer dés filtrages et des calculs d'interpolation sur les signaux lus dans la
mémoire graphique. En fait, les procédés qui consistent à augmenter les définitions
de l'image visualisée tendent à être remplacés par des procédés de traitement par
filtrage et interpolation qui apparaissent nettement plus efficaces et moins coûteux.
Ces méthodes de traitement ont toutefois pour inconvénient d'occuper beaucoup de temps
de cycles de calcul des processeurs graphiques ce qui rend ces méthodes de tracé relativement
lentes. Pour augmenter les vitesses de tracé, des logiques càblées sont utilisées
pour remplacer Tes logiciels des processeurs graphiques mais ces logiques ont pour
inconvénient d'être onéreuses et de nécessiter encore, pour obtenir des corrections
satisfaisantes, des traitements intermédiaires en utilisant par exemple des mémoires
caches, ces traitements étant exécutés à grande vitesse et à haute définition par
échange de données entre la mémoire cache et le processeur avant que les résultats
soient inscrits dans la mémoire graphique.
[0005] Le but de l'invention est de pallier les inconvénients précités.
[0006] A cet effet, l'invention a pour objet, un dispositif pour l'obtention de tracés continus
sur récran d'une console de visualisation commandée par un processeur graphique, l'image
étant constituée par une matrice ordonnée de points d'images ou pixels formés par
M rangées de N points ou pixels balayés suivant le principe de balayage des images
de télévision, le dispositif comprenant une mémoire graphique pour mémoriser sous
une forme binaire l'image de la matrice des points visualisés sur l'écran et une mémoire
d'attribut pour contenir les attributs de chacun des points de l'image, caractérisé
en ce qu'il comprend également une mémoire d'interpolation dans laquelle se trouve
mémorisée une table de calcul des attributs des points intermédiaires entre points
consécutifs de la matrice de points, la table du circuit d'interpolation étant adressée
sur une première entrée par la valeur pré-existante PA du pixel à modifier trouvée
dans la mémoire d'attribut, sur une deuxième entrée par la valeur nouvelle PN de l'attribut
des pixels à modifier pour les faire figurer sur le tracé et sur une troisième entrée
par une valeur d'interpolation F, calculée par le processeur, égale à la partie fractionnaire
de la position du point intermédiaire à modifier, chaque emplacement de la table contenant
une valeur d'attribut PM vérifiant la relation

la valeur PM obtenue étant transférée dans la mémoire d'attribut pour mettre à jour
le contenu de l'emplacement correspondant à l'adresse du pixel modifié.
[0007] 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 :
- les figures 1 à 3 sont les représentations des défauts de reconstitution de tracés
sur des écrans de consoles graphiques engendrés par l'échantillonnage de points ou
pixels de la matrice d'image enregistrés dans la mémoire graphique ;
- les figures 4 à 5 illustrent des procédés connus mis en oeuvre dans certains processeurs
graphiques pour obtenir des tracés ne présentant pas de discontinuité ;
- la figure 6 est une représentation du dispositif selon l'invention pour obtenir
des tracés sans discontinuités ;
- la figure 7 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 ou d'écriture de la mémoire
graphique ainsi que du cycle d'accès direct DMA à la mémoire graphique ;
- la figure 8 illustre la méthode d'interpolation linéaire mise en oeuvre par l'invention
pour corriger les discontinuités de tracés.
[0008] La théorie de l'information montre que l'échantillonnage d'un signal S(t) dépendant
du temps, à une cadence C. donne des défauts appelés globalement "défauts d'aliasing"
si le spectre en fréquence du signal S(t) dépasse la moitié de la fréquence d'échantillonnage
du signal d'échantillonnage. Ce défaut traduit le recouvrement entre la moitié supérieure
du spectre du signal S(t) et la moitié inférieure lorsque ce dernier est replié autour
de la fréquence

moitié de la fréquence C
i de cadencement du signal d'échantillonnage.
[0009] Dans un espace à deux dimensions, les coordonnées X et Y échantillonnées et discrètes
de la position de chaque point ou pixel d'une mémoire graphique organisée à la façon
d'une matrice orthogonale ayant des colonnes et des lignes obéissent aux mêmes critères,
à la différence toutefois que pour le signal graphique la variable se trouve située
dans le domaine spatial et non pas dans le domaine temporel. Si le spectre spatial
du signal graphique dépasse la demi fréquence spatiale d'échantillonnage les mêmes
défauts "d'aliasing" se retrouvent pour les signaux graphiques de la même façon que
pour les signaux dépendant du temps.
[0010] A titre d'exemple, la figure 1 illustre les défauts de reconstitution d'un signal
sinusoïdal A échantillonné à des instants T
n à T
n+3 régulièrement espacés les uns des autres et le signal B reconstitué qui en résulte
et qui apparait crénelé sous la forme de marches d'escalier, chaque palier ayant une
amplitude constante entre deux instants d'échantillonnage.
[0011] La figure 2 illustre les "défauts d'aliasing" spatiaux engendrés par des signaux
d'échantillonnage à cadence fixe d'un signal rectangulaire S représentant la position
d'un point sur un tracé qui est représenté à l'entrée d'une console graphique dont
la mémoire est organisée suivant la forme d'une matrice de points. Suivant la position
du signal S par rapport aux instants d'échantillonnage T
n et T
n+1 on peut constater sur la figure 2 que ce signal est ou n'est pas mémorisé à l'intérieur
de la mémoire. Dans le cas par exemple du signal S qui est représenté à la ligne F
entre les instants d'échantillonnage T
n et T
n+1 l'image de ce signal (ligne F
2) n'est pas enregistrée dans la mémoire graphique puisque le point qu'elle représente
est intermédiaire entre la position P
n et P
n+1 de la mémoire graphique correspondant aux instants d'échantillonnage T
n à T
n+1 et que par conséquent ce signal ne peut être visualisé sur la console de visualisation.
[0012] Une manière de remédier à ce défaut est représentée à la figure 3 et consiste à filtrer
chaque signal d'entrée pour le transformer en un signal S
F sur les graphes H
l à M
1 avant de l'échantillonner pour l'inscrire dans la mémoire graphique. Les constantes
de filtrage sont définies pour que, quelque soit la position du signal filtré par
rapport aux instants d'échantillonnage T et T
n+1, il y ait toujours un échantillon de signal qui puisse être mémorisé à l'intérieur
de la mémoire graphique, on profite ensuite des constantes de réponse de l'écran qui
opère un filtrage naturel, signal S
v sur les graphes H
2 à M
2, sur la grandeur des échantillons restitués par la mémoire graphique.
[0013] - S'il est relativement simple de filtrer un signal dans le domaine temporel, le
filtrage spatial qui vient d'être décrit est cependant plus complexe à réaliser et
nécessite en particulier de multiples accès à la mémoire graphique dans la direction
des lignes et des colonnes lorsque le filtrage mis en oeuvre est bidimensionnel. Les
figures 4 et 5 illustrent un procédé moins compliqué et donnant de bons résultats
qui est quelque fois employé pour obtenir des traces sans discontinuité sur un écran
d'une console graphique de visualisation. La figure 4 montre une trace oblique dirigée
selon la direction D obtenue en accolant deux mots M, et M
2 de sept pixels chacun, de même teinte T
16, disposés respectivement sur les lignes L
n et L
n+1. La trace représentée montre une discontinuité au point 0 au passage de la ligne
supérieure L
n à la ligne directement inférieure L
n+1. Pour remédier à cette difficulté les dispositifs connus de correction "d'anti-aliasing"
opèrent suivant le principe représenté à la figure 5 qui montre la même trace que
celle figurée à la figure 4 qui est obtenue, à la différence de ce qui est représenté
à la figure 4, en corrigeant la teinte des pixels autour de la droite A de direction
D. La teinte des pixels entourant la droite A de direction D est pondérée par une
fonction d'interpolation qui a pour argument l'erreur de position de chaque pixel
par rapport à la droite Δ de direction D. La perte de modulation est négligeable dans
ce cas et est largement compensée par des contours plus nets. Ce procédé présente
toutefois l'inconvénient de nécessiter l'emploi d'un logiciel ce qui pénalise la vitesse
avec laquelle les tracés peuvent être effectués. Le procédé selon l'invention permet
de remédier à ces difficultés et consiste à utiliser un dispositif câblé pour exécuter
les fonctions d'interpolation linéaire nécessaires en cours de tracé pour supprimer
les discontinuités, le principe de ces interpolations consistant à modifier chaque
valeur pré-existante d'un pixel situé sur ou à proximité du tracé en fonction de la
nouvelle valeur des pixels du tracé et de la position du pixel par rapport à la direction
du tracé.
[0014] Le dispositif pour la mise en oeuvre du procédé selon l'invention est représenté
à l'intérieur d'une ligne en pointillés 1 sur la figure 6. Le dispositif 1 est 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 visualisation 3.
[0015] Le dispositif 1 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 1 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 mots lues dans la mémoire graphique 4 aux emplacements de mémoire désignés 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
11. Le dispositif 1 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 simultané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'intermé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 par une ligne
de données 13, sur une première entrée d'un circuit d'interpolation 14 au travers
du multiplexeur 11 et d'un décodeur 19 reliés en série. Le circuit d'interpolation
14 est relié par des deuxième et troisième entrées aux sorties de données du processeur
2 au moyen d'une ligne de données 15. Les données de modification notées FM et PN
sont appliquées par la ligne de donnée 15 sur les deuxième et troisième entrées du
circuit d'interpolation 14, pour modifier les valeurs des attributs PA appliqués sur
la première entrée du circuit d'interpolation 14 par la ligne de données 13. La sortie
du circuit d'interpolationl4 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 PM modifié
par le circuit d'interpolation 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 d'interpolation 14 dans le but de modifier
éventuellement leurs valeurs en fonction des données d'interpolation qui sont appliquées
sur les deuxième et troisième entrées du circuit d'interpolation 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 d'interpolation 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'ensemble. 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.
[0016] 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 fonctionnement 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 7. Les cycles
de la figure 7 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
des différents plans de la mémoire graphique 4 qui contiennent les attributs 12 de
chaque pixel et qui constituent la mémoire d'attribut 12. Sur la figure 7 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 rafraichissement 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-modilication-écriture de deux fois 1184 nanosecondes
par pixel ou point à modifier ce qui permet, de couvrir des plages de fonctionnement
é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 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 Il 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électionné est
pris en compte par le circuit d'interpolation 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 d'interpolation 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 d'interpolation FM choisie par l'opérateur
permettant ainsi l'exécution de 64 fonctions d'interpolation. 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 d'interpolation 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 modification
PN fournies par le processeur 2 à l'entrée du circuit d'interpolation 14 et de la
fonction d'interpolation transmise également sur la troisième entrée du circuit d'interpolation
14 par le processeur 2.
[0017] Pour des commodités de réalisation le circuit d'interpolation est constitué par des
mémoires mortes électriquement programmables 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" qui contiennent en mémoire des tables de fonction de modification de la teinte
des points de l'image pour la mise en oeuvre du procédé d'interpolation selon l'invention.
A chaque modification de pixel ces tables sont adressées par les bits du mot PA lu
dans la mémoire d'attribut représentant la valeur pré-existante du pixel modifié,
par la nouvelle valeur PN du pixel que l'on cherche à obtenir pour les points appartenant
au tracé et par une valeur d'interpolation qui représente une valeur intermédiaire
d'adresse entre deux pixels adjacents de la matrice d'image pour permettre la détermination
de la teinte des points de l'écran situés dans l'espace intermédiaire entre la position
des pixels de la matrice d'image. Le procédé d'interpolation est inscrit dans un programme
d'interpolation qui est exécuté par le processeur 2 et dont les étapes peuvent être
exécutées de la façon suivante :
Dans une première étape le processeur 2 calcule l'adresse fractionnaire correspondant
à la position du pixel à modifier à l'intérieur des points de la matrice d'image,
cette adresse étant déterminée en nombre F de pas d'interpolation dans les directions
horizontale et verticale de l'image compris entre deux pixels P et Pn+1 successifs de la matrice d'image à la manière représentée à la figure 8. A titre
d'exemple trois bits fractionnaires pourront être utilisés pour adresser les points
intermédiaires situés entre deux pixels de la matrice d'image ce qui correspond à
huit pas d'interpolation successifs. Le procédé consiste ensuite à calculer dans une
deuxième étape la valeur PM du pixel ou point correspondant à l'adresse fractionnaire
calculée suivant la relation
PM = F . PA + (I-F) . PN
[0018] Ce procédé peut s'appliquer à l'exécution de tracés quelconques sur l'écran de la
console de visualisation, ces tracés pouvant être obtenus à partir, par exemple, du
tracé de plusieurs vecteurs successifs reliant des points de coordonnées bien définies
sur l'écran.
[0019] Ce procédé a l'avantage d'être simple à mettre en oeuvre car le tracé d'un vecteur
reliant deux points rapprochés de coordonnées (X
0 , Y
0) et (X
1 et Y
1) de l'écran situés aux axes orthonormés X et Y n'exige l'écriture que de quelques
lignes de programme. En adoptant les notations DX = X
1 - X
0 et DY = Y
1 - Y
0 avec DX ) 0 et DY) 0 et en supposant que la position de deux points est telle que
les valeurs absolues 1 DX et |DY| des écarts DX et DY vérifient entre elles les relations
|DX|>|DY| l'exécutiez du programme est assurée dans une première phase par le calcul
de l'incrément qu'il faut donner dans la direction verticale de l'écran (axe Y) à
chaque pas d'incrémentation exécuté dans la direction horizontale (axe X). Cette première
phase de calcul est suivie par une deuxième phase d'initialisation et une troisième
phase d'exécution, l'ensemble de ces trois phases exigeant la suite des instructions
suivantes :

[0020] Naturellement l'exécution du procédé selon l'invention n'est pas limitée au programme
de tracé de vecteurs qui vient d'être décrit ni au format des bits d'attribut et pixels
qui peut comporter un nombre très étendu de bits. Au niveau de la programmation l'homme
de l'art pourra concevoir très facilement d'autres programmes de tracés pour permettre
l'exécution d'arcs de cercles, d'ellipses ou de courbes paramétriques interpolées
en utilisant des fonctions du type BSPLINE ou BEZIERS sans pour autant s'écarter du
procédé d'interpolation selon l'invention. Egale- ment comme le procédé "anti-aliasing"
décrit ci-dessus repose sur la valeur en amplitude du pixel, il est évident que les
résultats corrects ne pourront être obtenus que si l'attribut défini par exemple sur
quatre bits peut décrire les seize couleurs d'un pixel à l'intérieur d'une palette
à définir par une autre table de couleurs. Le processus "anti-aliasing" qui vient
d'être décrit ne concerne en fait que les systèmes sur lesquels au moins trois bits
d'attributs ou pixels sont réservés à l'intensité lumineuse ce qui les différencie
des systèmes à quatre bits ne disposant que d'un seul bit d'intensité. On conçoit
que le procédé "anti-aliasing" de l'invention ne devient réellement performant lorsque
les attributs sont définis sur des longueurs supérieures à quatre bits et plus typiquement
pour des systèmes où l'attribut comporte huit bits et plus.
1. Dispositif pour l'obtention de tracés continus sur l'écran d'une console de visualisation
(3) commandée par un processeur graphique (2) l'image étant constituée par une matrice
ordonnée de points d'images ou pixels formés par M rangées de N points ou pixels balayés
suivant le principe de balayage des images de télévision, le dispositif comprenant
une mémoire graphique (4) pour mémoriser sous une forme binaire l'image de la matrice
des points visualisés sur l'écran et une mémoire d'attribut (12) pour contenir les
attributs de chacun des points de l'image, caractérisé en ce qu'il comprend également
un circuit d'interpolation (14) dans lequel se trouve mémorisée une table de calcul
des attributs des points intermédiaires entre points consécutifs de la matrice de
points, la table du circuit d'interpolation étant adressée sur une première entrée
par la valeur pré-existante PA du pixel à modifier trouvée dans la mémoire d'attribut,
sur une deuxième entrée par la valeur nouvelle PN de l'attribut des pixels à modifier
pour les faire figurer sur le tracé et sur une troisième entrée par une valeur d'interpolation
F calculée par le processeur égale à la partie fractionnaire de la position du point
intermédiaire à modifier, chaque emplacement de la table contenant une valeur d'attribut
PM vérifiant la relation
PM = F . PA + (1-F). PN
la valeur PM obtenue étant transférée dans la mémoire d'attribut (12) pour mettre
à jour le contenu de l'emplacement correspondant à l'adresse du point ou pixel modifié.
2. Dispositif selon la revendication 1, caractérisé en ce que le circuit d'interpolation
est constitué par au moins une mémoire programmable pour contenir la table du circuit
d'interpolation, la mémoire étant adressée par le processeur graphique (2) et par
les bits d'attribut de chaque mot d'attribut sélectionné dans la mémoire d'attribut
(12).
3. Dispositif selon l'une quelconque des revendications 1 et 2, caractérisé en ce
que le circuit d'interpolation est commandé 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 1 à 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émaire 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écompose 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 un 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 d'interpolation (14) 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 programmables du circuit d'interpolation (14) sont des mémoires vives.