EP0187077B1 - Processeur de tracé de vecteur - Google Patents
Processeur de tracé de vecteur Download PDFInfo
- Publication number
- EP0187077B1 EP0187077B1 EP85402370A EP85402370A EP0187077B1 EP 0187077 B1 EP0187077 B1 EP 0187077B1 EP 85402370 A EP85402370 A EP 85402370A EP 85402370 A EP85402370 A EP 85402370A EP 0187077 B1 EP0187077 B1 EP 0187077B1
- Authority
- EP
- European Patent Office
- Prior art keywords
- register
- vector
- data
- address
- registers
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired
Links
- 239000013598 vector Substances 0.000 title claims description 86
- 239000011159 matrix material Substances 0.000 claims description 5
- 238000010200 validation analysis Methods 0.000 claims 3
- 239000000872 buffer Substances 0.000 description 8
- 230000000875 corresponding effect Effects 0.000 description 8
- 238000004364 calculation method Methods 0.000 description 7
- 230000002457 bidirectional effect Effects 0.000 description 6
- 238000000354 decomposition reaction Methods 0.000 description 6
- 235000021183 entrée Nutrition 0.000 description 6
- 230000001276 controlling effect Effects 0.000 description 4
- 238000013475 authorization Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000012800 visualization Methods 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000006073 displacement reaction Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 1
- 238000011960 computer-aided design Methods 0.000 description 1
- 239000003814 drug Substances 0.000 description 1
- 238000000034 method Methods 0.000 description 1
- 238000003909 pattern recognition Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
- G09G5/39—Control of the bit-mapped memory
- G09G5/393—Arrangements for updating the contents of the bit-mapped memory
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/20—Function-generator circuits, e.g. circle generators line or curve smoothing circuits
Definitions
- the present invention relates to a vector tracing processor for reading and for writing a vector into an image memory of a computer system.
- these display terminals are increasingly being replaced by graphic terminals which have a resolution of 256 x 256 dots or more.
- graphic terminals are particularly advantageous in fields where information can be advantageously represented by an image, such as in medicine, cartography, meteorology, pattern recognition or the like.
- a graphics terminal essentially comprises an image memory, a graphics processor and a display screen.
- the graphics processor, or graphics screen controller comprises a calculation processor for updating the content of the image memory as a function of the data received from the computer system, a video generator for delivering to the display screen a signal video corresponding to the content of the image memory, and a control means for managing the accesses to the memory by the calculation processor and the video generator.
- the known graphics processors are produced in the form of an integrated circuit in NMOS technology. In this regard, they have a limitation as to the maximum resolution of the displayable image, which is of the order of 1024 ⁇ 1024 dots. Indeed, for images comprising a larger number of points, the data rate from the image memory to the display screen requires the use of the fastest TTL components (FAST family), and for images of more than 2000 x 2000 points, only ECL technology allows the serialization of the video generator.
- the registration speed could be increased by using a graphics processor in ECL technology.
- a graphics processor in ECL technology would have the disadvantage of being expensive.
- certain configurations of the video generator can allow access of the calculation processor to the image memory, not only during the frame return time, but also one or more times per image line.
- the invention relates to a vector plot processor, or calculation processor, produced on a support distinct from the video generator.
- the originality of the vector plot processor of the invention resides in a particular architecture, based on a known type representation of a vector to be plotted.
- This architecture allows a very high writing speed, which can reach, for example, 5.10 6 pts / s in period of return of the frame of the video signal and in the absence of refreshment of the image memory. This registration speed is given for information only. It is indeed clear that the performance of the vector tracing processor of the invention is linked to the image memory used, in particular to the type of access cycle (read-write or read-modify-write) and to the presence or absence of refreshment.
- the vector plotting processor of the invention is more flexible on this point than the known graphics processors whose vector plotting is based on the BRE-SENHAM method which is especially advantageous for plotting straight line segments.
- a vector plot processor, where the vector consists of a line segment, is described e.g. in patent application FR-A 2 426 296.
- the vector tracing processor of the invention comprises a data register with parallel input and with serial output, said data register being loaded initially by the interface circuit with the state of the elementary points of the vector, the output of said register being connected to the data input of the image memory, the timing means timing the output of data from said register.
- the data register further comprises a serial input connected to the data output of the image memory and a parallel output connected to the interface circuit.
- the vector plot processor can simultaneously read and write a vector. This allows selective erasure of part of a previously registered image. It suffices in fact, when writing a vector in the image memory, to read and save the stored vector which is replaced by said vector written in the image memory. To then delete said written vector, simply re-register the saved vector.
- the vector tracing processor comprises n data registers, each data register being associated with an image plane.
- the counting means is a down counter, said down counter transmitting the authorization signal to the timing means as long as its content is not zero.
- the address control means comprises a transcoding matrix with four inputs and four outputs, the outputs being connected to the address increment and decrement control inputs, three inputs being connected to the octant register. and the fourth entry in the direction register.
- FIG. 1 shows a display terminal comprising a graphics processor 2 connected by a bidirectional channel 4 to a computer 6, and connected by a channel 8 to a screen 10.
- the bidirectional channel 4 comprises an address bus, a data bus and command lines to manage the transmission between the computer 6 and the graphics processor 2.
- the graphics processor 2 mainly comprises a vector tracing processor 12, in accordance with the invention, a video generator 14 and a control means 30. It is connected to an image memory 16.
- This memory 16 is organized in rows and columns. It can include one or more parallel planes, each plane comprising one bit per image point. Access to this memory is provided by the processor 12 and the video generator 14 by two address buses 18, 20 used respectively to designate the abscissa and the ordinate of a point of the image. Address management means 22 connected to memory 16 by an address bus 24 translates said abscissa and ordered into a physical address.
- the data transfer between the processor 12 or the video generator 14 and the memory 16 is carried out by a bidirectional data bus 26.
- the processor 12 can thus read or write a vector in the image memory 16.
- the control means 30 of the graphics processor is connected by a first bidirectional channel 32 to the vector tracing processor 12 and by a second bidirectional channel 34 to the video generator 14. By these channels, the control means 30 receives the access requests to the memory 16 of the processor 12 and of the generator 14 and returns acknowledgment signals when access to the memory is authorized. In the event of an access conflict between the processor 12 and the video generator 14, the control means 30 gives access to the video generator.
- the control means 30 is also connected to the memory 16 by a channel 36 which makes it possible to indicate the type of access: read, write, reset to zero or other.
- the image memory 16 is preferably a dynamic memory operating in "nibble" mode to accelerate the reading. This mode consists in reading several words of successive addresses in a single access cycle. These words are written in a buffer register of the video generator 14. This buffer register makes the reading of the memory by the video generator 14 and the video output asynchronous. It therefore makes it possible to insert an access to the memory 16 for reading or writing by the processor 12 between two access cycles by the video generator.
- the processor 12 can thus access the image memory 16 several times per screen line. For example, for an image comprising 1728 points per line, and organized in 64-bit words, one screen line corresponds to 27 words. If each access, in "nibble" mode, allows the reading of 4 words, 7 accesses are enough to read a line of screen.
- the vector tracing processor 12 can therefore access the image memory 16 during the frame return time, but also several times per image line. This is a factor authorizing a high speed of writing of a vector into the memory 16 by the processor 12.
- the particular structure of the vector tracing processor 12 of the invention also contributes to a high speed of writing a vector into the memory.
- a particular embodiment of this processor 12 will be described with reference to FIG. 3. We will first indicate the form in which a vector is stored in the processor 12.
- a vector is defined by several parameters which can be its origin coordinates, abscissa and ordinates, a direction, a length and, possibly, the state (gray level) of each image point constituting the vector.
- FIG. 2a shows a vector whose original abscissa is equal to 4, the ordinate of origin is equal to 1 and the length is equal to 10.
- the direction is obtained by combination of an octant number and the decomposition of the vector according to the ROTHMAN code.
- the octant number associated with a vector corresponds to the sector of space containing the direction of this vector. This breakdown into sectors is shown in Figure 2b.
- the octant associated with the vector represented in FIG. 2a is octant 2.
- This decomposition into octants is known to those skilled in the art. It simplifies the drawing of a vector because it can be reduced in all cases to a basic octant, in general octant 0, by symmetries around the X and Y axes. The drawing of a vector any brought back in the basic octant can be carried out very quickly by known algorithms such as the algorithm of BRESEN-HAM.
- the octant defines the general direction of the vector.
- the ROTHMAN decomposition defines the relative position of two successive points of the vector. This code consists in associating a first value when one passes in the basic octant from a point of the vector to the successive point by a horizontal displacement that is to say by incrementation of the abscissa and a second value if one passes from a vector point to the successive point by a displacement in diagonal, that is to say by incrementation of the abscissa and the ordinate. For example, if we denote "0" the first value and "1" the second value, the vector represented in FIG. 2a has for decomposition the sequence 0 1 0 1 1 0 0 0 0.
- the vector tracing processor of the invention uses this ROTHMAN decomposition and the octant splitting. We will now describe with reference to FIG. 3 an embodiment of this processor.
- Address registers 40 and 42 and octant register 46 are buffers with parallel input and output.
- Direction register 48 is a shift register with parallel input and serial output.
- the vector tracing processor 12 also includes a data register 52.
- This register allows the recording in the memory of a vector consisting of any sequence of bits, which facilitates the recording in memory of discontinuous vectors (mixed lines, dotted lines or other).
- the data register 52 is associated with a memory in which a bit is associated with an image point, that is to say in which the stored image is two-color.
- the memory can advantageously be made up of n parallel planes, each plane memorizing a bit of each image point.
- the vector tracing processor 12 then comprises a set of n data registers 52 controlled in parallel. In the case of this multi-plane memory, the address registers and the address control register remain unique.
- the data register 52 is preferably a shift register comprising parallel and serial inputs and outputs such as the TEXAS INSTRUMENTS circuit 54AS877.
- the serial input and output are used for read or write transfer with the image memory 16.
- the parallel input and output are used for transfer to the computer system to which the graphics processor is connected.
- the recording of a vector in the image memory consists in forcing the value of the binary elements of the memory corresponding to the points of the vector with a predetermined value.
- the vector can also be entered using an operator, for example of the EXCLUSIVE type, one input of which receives the value of the binary elements of the memory corresponding to the points of the vector, the other input receives either a predetermined value either data delivered by the data register 52, and the output of which, connected to the image memory, delivers the effective value of the points of the vector to be written.
- an operator for example of the EXCLUSIVE type, one input of which receives the value of the binary elements of the memory corresponding to the points of the vector, the other input receives either a predetermined value either data delivered by the data register 52, and the output of which, connected to the image memory, delivers the effective value of the points of the vector to be written.
- the different registers of the vector tracing processor 12 are loaded with data received from a computer by the bidirectional bus 4.
- An interface circuit 54 receives said data and control signals from the computer and delivers this data on a bus 56 internal to the processor 12.
- the interface circuit 54 may in particular comprise an input buffer register for storing several data or commands received from the computer and means for selecting each of the registers of the processor 12.
- the address control means 44 receives from the interface circuit 54 on the one hand a word representing the canonical form of the vector to be written according to the ROTHMAN code, this word being stored in the direction register 48, and on the other hand part, the octant number which is stored in the octant register 46.
- a vector to be plotted is broken down into 32-bit segments.
- An 8-bit word can therefore simultaneously indicate the length of a segment and the octant in which the vector is contained.
- This word is received by the interface circuit 54 and stored in a buffer register 58.
- the 5 bits corresponding to the length of the segment are then loaded into the counting means 50 and the 3 bits corresponding to the octant number are loaded into octant register 46.
- the counting means 50 is of the down-counter type. Its content is decremented in synchronism with a clock signal originating from a timing means 60.
- This timing means 60 is connected in a conventional manner to the various elements of the vector tracing processor 12. The purpose of this timing means is to synchronize the processing of data by the different elements of the processor.
- the clock signals are delivered on receipt of an authorization issued by the control means 30 and are blocked on a signal received from the downcounting means.
- the role of this timing means being well known to those skilled in the art, it was not considered useful to represent the links carrying the clock signals of this timing means to the elements of the vector plot processor 12.
- the latter transmits on a line 51 a signal to the timing means 60 to stop the transmission of the address and data signals to the memory d 'picture.
- This signal or a derived signal, can also be sent to the interface circuit 54 to indicate to the computer that the vector segment has been processed.
- the interface circuit 54 loads the address registers 40 and 42 with the coordinates of the point of origin of the segment, the data register 52 with the value to be written into the memory, the direction register 48 with the canonical form of the vector according to the ROTHMAN code and the register 58 with the length of the segment to be written and the octant number corresponding to the direction of this segment.
- the address control means 44 comprises a buffer 62 for storing the bit delivered by the register 48 during an offset, and a coding matrix 64 with 4 inputs and 4 kinds. The inputs of this matrix are respectively connected to the output of buffer 62 and to the 3 outputs of octant register 46; these outputs are respectively connected to the increment and decrement command inputs of the address registers 40 and 42.
- FIG. 4 shows the truth table of this matrix.
- the octant number, the corresponding binary code, the value of the RD bit contained in the buffer 62 and the corresponding action on the content of the address registers 40 and 42 are indicated respectively.
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
- Controls And Circuits For Display Device (AREA)
Description
- La présente invention a pour objet un processeur de tracé de vecteur pour lire et pour inscrire un vecteur dans une mémoire d'image d'un système informatique.
- En informatique, la transmission d'informations du système informatique vers l'opérateur est souvent réalisée par affichage sur un terminal de visualisation. Pendant longtemps, les capacités des terminaux de visualisation ont été limitées à l'affichage de caractères alphanumériques ou semi-graphiques.
- Pour répondre aux besoins de nombreux domaines tels que la conception assistée par ordinateur, ces terminaux de visualisation sont de plus en plus remplacés par des terminaux graphiques qui ont une résolution de 256 x 256 points ou davantage. Ces terminaux graphiques sont particulièrement intéressants dans les domaines où une information peut être avantageusement représentée par une image, tels qu'en médecine, en cartographie, en météorologie, en reconnaissance des formes ou autre.
- Un terminal graphique comporte essentiellement une mémoire d'image, un processeur graphique et un écran de visualisation. Le processeur graphique, ou contrôleur d'écran graphique, comprend un processeur de calcul pour mettre à jour le contenu de la mémoire d'image en fonction des données reçues du système informatique, un générateur vidèo pour délivrer à l'écran de visualisation un signal vidéo correspondant au contenu de la mémoire d'image, et un moyen de commande pour gérer les accès à la mémoire par le processeur de calcul et le générateur vidéo.
- Les processeurs graphiques connus sont réalisés sous forme de circuit intégré en technologie NMOS. Ils présentent à cet égard une limitation quant à la résolution maximale de l'image affichable, qui est de l'ordre de 1024 x 1024 points. En effet, pour des images comportant un nombre de points plus important, le débit de données de la mémoire d'image vers l'écran de visualisation nécessite l'emploi des composants TTL les plus rapides (famille FAST), et pour des images de plus de 2000 x 2000 points, seule la technologie ECL permet de réaliser le sérialiseur du générateur vidéo.
- Ainsi, dans les processeurs graphiques en technologie NMOS, l'accès à la mémoire est pratiquement accaparé par le générateur vidéo, dès lors que la résolution de l'image est importante. Ceci limite la vitesse d'inscription en mémoire par le processeur de calcul dont l'accès à la mémoire d'image est pratiquement réduit au temps de retour de trame du signal vidéo. En conséquence, la vitesse maximale d'inscription en mémoire n'est guère supérieure à 106 points/s.
- La vitesse d'inscription pourrait être augmentée par l'utilisation d'un processeur graphique en technologie ECL. Cependant une telle solution présenterait l'inconvénient d'être coûteuse.
- Il paraît plus judicieux, compte tenu de la très grande différence entre les débits de données supportés par le générateur vidéo et le processeur de calcul, de séparer ces deux moyens et de réaliser, par exemple, le générateur vidéo en technologie ECL et le processeur de calcul en technologie NMOS.
- Ceci permet de diminuer les contraintes d'accès du processeur de calcul à la mémoire d'image, sans qu'il en résulte une augmentation de coût importante pour le processeur graphique. En particulier, certaines configurations du générateur vidéo peuvent permettre un accès du processeur de calcul à la mémoire d'image,non seulement pendant le temps de retour de trame, mais aussi une ou plusieurs fois par ligne d'image.
- L'invention concerne un processeur de tracé de vecteur, ou processeur de calcul, réalisé sur un support distinct du générateur vidéo. L'originalité du processeur de tracé de vecteur de l'invention réside dans une architecture particulière, fondée sur une représentation de type connu d'un vecteur à tracer. Cette architecture autorise une vitesse d'inscription très importante, pouvant atteindre, par exemple, 5.106 pts/s en période de retour de la trame du signal vidéo et en absence de rafraichissement de la mémoire d'image. Cette vitesse d'inscription est donnée à titre indicatif. Il est clair en effet que les performances du processeur de tracé de vecteur de l'invention sont liées à la mémoire d'image utilisée, notamment au type de cycle d'accès (lecture- écriture ou lecture-modification-écriture) et à la présence ou l'absence de rafraîchissement.
- De manière précise, l'invention a pour objet un processeur de tracé de vecteur pour lire et inscrire un vecteur dans une mémoire d'image organisée en lignes et en colonnes, ledit vecteur étant défini par des coordonnées d'origine, une direction et une longueur, l'edit processeur étant caractérisé en ce qu'il comprend :
- - un registre d'adresse ligne et un registre d'adresse colonne, lesdits registres comprenant des entrées de commande d'incrémentation et de décrémentation,
- - un moyen de commande d'adresse comprenant un registre d'octant et un registre de direction, ledit moyen de commande d'adresse délivrant des signaux aux entrées de commande des registres d'adresse,
- - un moyen de comptage,
- - un moyen de cadencement délivrant un signal de synchronisation desdits registres et moyens et recevant du moyen de comptage un signal d'autorisation lorsque le contenu du moyen de comptage est différent d'une valeur prédéterminée,
- - un circuit d'interface relié auxdits registres et moyens pour charger initialement les registres d'adresse avec les coordonnées de l'origine du vecteur, le registre d'octant avec l'octant de la direction du vecteur, le registre de direction avec la forme canonique du vecteur selon le code de ROTHMAN et le moyen de comptage avec la longueur du vecteur.
- L'utilisation du code de ROTHMAN pour indiquer les points élémentaires constituant le vecteur à tracer offre la possibilité de tracer les segments de droite, mais aussi tout autre type de courbes : cercle, caractère ou autre. Le processeur de tracé de vecteur de l'invention est plus souple sur ce point que les processeurs graphiques connus dont le tracé de vecteur est fondé sur la méthode de BRE-SENHAM qui est surtout intéressante pour le tracé de segments de droite. Un processeur de tracé de vecteur, où le vecteur est constitué par un segment de droite, est décrit par ex. dans la demande de brevet FR-A 2 426 296.
- Selon un mode de réalisation préféré, le processeur de tracé de vecteur de l'invention comprend un registre de données à entrée parallèle et à sortie série, ledit registre de données étant chargé initialement par le circuit d'interface avec l'état des points élémentaires du vecteur, la sortie dudit registre étant reliée à l'entrée de données de la mémoire d'image, le moyen de cadencement rythmant la sortie des données dudit registre.
- De manière préférée, le registre de données comporte en outre une entrée série reliée à la sortie de données de la mémoire d'image et une sortie parallèle reliée au circuit d'interface.
- Avec cette structure, le processeur de tracé de vecteur peut simultanément lire et écrire un vecteur. Ceci permet l'effacement sélectif d'une partie d'une image inscrite antérieurement. Il suffit en effet, lors de l'écriture d'un vecteur dans la mémoire d'image, de lire et sauvegarder le vecteur mémorisé qui est remplacé par ledit vecteur écrit dans la mémoire d'image. Pour effacer ensuite ledit vecteur écrit, il suffit de réinscrire le vecteur sauvegardé.
- Cette possibilité d'effacement sélectif n'existe pas dans les processeurs graphiques connus qui effectuent uniquement l'opération d'écriture d'un vecteur mais qui ne peuvent pas lire un vecteur de la mémoire d'image.
- Selon une caractéristique de l'invention, pour une mémoire d'image à n plans parallèles, où n est un entier,le processeur de tracé de vecteur comprend n registres de données, chaque registre de données étant associé à un plan d'image.
- Selon un mode de réalisation préféré, le moyen de comptage est un décompteur, ledit décompteur émettant le signal d'autorisation au moyen de cadencement tant que son contenu n'est pas nul.
- De manière préférée, le moyen de commande d'adresse comprend une matrice de transcodage à quatre entrées et quatre sorties, les sorties étant reliées aux entrées de commande d'incrémentation et de décrémentation d'adresse, trois entrées étant reliées au registre d'octant et la quatrième entrée au registre de direction.
- Les caractéristiques et avantages de l'invention ressortiront mieux de la description qui va suivre donnée à titre illustratif mais non limitatif, en référence aux dessins annexés sur lesquels :
- - la figure 1 illustre schématiquement un système informatique comprenant un processeur graphique pour l'affichage d'une image numérique sur un écran de visualisation, ledit processeur graphique comportant un processeur de tracé de vecteur conforme à l'invention,
- - les figures 2a et 2b représentent respectivement la forme numérisée d'un vecteur sur un écran de visualisation et la décomposition en octant des directions possibles d'un vecteur dans le plan de l'écran de visualisation,
- - la figure 3 représente schématiquement un mode de réalisation du processeur de tracé de vecteur de l'invention, et
- - la figure 4 illustre les commandes d'incrémentation et de décrémentation des registres d'adresse en fonction du numéro d'octant et du contenu du registre de direction.
- On a représenté sur la figure 1 un terminal de visualisation comprenant un processeur graphique 2 relié par une voie bidirectionnelle 4 à un calculateur 6, et relié par une voie 8 à un écran 10. La voie bidirectionnelle 4 comprend un bus d'adresse, un bus de données et des lignes de commande pour gérer la transmission entre le calculateur 6 et le processeur graphique 2.
- Le processeur graphique 2 comprend principalement un processeur de tracé de vecteur 12, conforme à l'invention, un générateur vidéo 14 et un moyen de commande 30. Il est relié à une mémoire d'image 16.
- Cette mémoire 16 est organisée en lignes et en colonnes. Elle peut comprendre un ou plusieurs plans parallèles, chaque plan comportant un bit par point d'image. L'accès à cette mémoire est réalisé par le processeur 12 et le générateur vidéo 14 par deux bus d'adresse 18, 20 utilisés respectivement pour désigner l'abscisse et l'ordonnée d'un point de l'image. Un moyen de gestion d'adresse 22 relié à la mémoire 16 par un bus d'adresse 24 traduit lesdites abscisse et ordonnée en une adresse physique.
- Le transfert de données entre le processeur 12 ou le générateur vidéo 14 et la mémoire 16 est réalisé par un bus de données bidirectionnel 26. Le processeur 12 peut ainsi lire ou écrire un vecteur dans la mémoire d'image 16.
- Le moyen de commande 30 du processeur graphique est relié par une première voie bidirectionnelle 32 au processeur de tracé de vecteur 12 et par une seconde voie bidirectionnelle 34 au générateur vidéo 14. Par ces voies, le moyen de commande 30 reçoit les demandes d'accès à la mémoire 16 du processeur 12 et du générateur 14 et renvoie des signaux d'acquittement lorsque l'accès à la mémoire est autorisé. En cas de conflit d'accès entre le processeur 12 et le générateur vidéo 14, le moyen de commande 30 donne l'accès au générateur vidéo.
- Le moyen de commande 30 est en outre relié à la mémoire 16 par une voie 36 qui permet d'indiquer le type d'accès : lecture, écriture, remise à zéro ou autre.
- La mémoire d'image 16 est de préférence une mémoire dynamique fonctionnant en mode "nibble" pour accélérer la lecture. Ce mode consiste à lire plusieurs mots d'adresses successives en un seul cycle d'accès. Ces mots sont écrits dans un registre tampon du générateur vidéo 14. Ce registre tampon rend asynchrone la lecture de la mémoire par le générateur vidéo 14 et la sortie vidéo. Il permet donc d'intercaler un accès à la mémoire 16 en lecture ou en écriture par le processeur 12 entre deux cycles d'accès par le générateur vidéo.
- Le processeur 12 peut ainsi accéder à la mémoire d'image 16 plusieurs fois par ligne d'écran. A titre d'exemple, pour une image comportant 1728 points par ligne, et organisée en mot de 64 bits, une ligne d'écran correspond à 27 mots. Si chaque accès, en mode "nibble", permet la lecture de 4 mots, il suffit de 7 accès pour lire une ligne d'écran. Le processeur de tracé de vecteur 12 peut donc accéder à la mémoire d'image 16 pendant le temps de retour de trame, mais aussi plusieurs fois par ligne d'image. Ceci est un facteur autorisant une grande vitesse d'inscription d'un vecteur dans la mémoire 16 par le processeur 12.
- La structure particulière du processeur de tracé de vecteur 12 de l'invention contribue également à une grande vitesse d'inscription d'un vecteur dans la mémoire. On décrira en référence à la figure 3 un mode de réalisation particulier de ce processeur 12. On va tout d'abord indiquer la forme sous laquelle un vecteur est mémorisé dans le processeur 12.
- Un vecteur est défini par plusieurs paramètres qui peuvent être ses coordonnées d'origine, abscisse et ordonnées, une direction, une longueur et, éventuellement, l'état (niveau de gris) de chaque point d'image constituant le vecteur. A titre d'exemple, on a représenté sur la figure 2a un vecteur dont l'abscisse d'origine est égale à 4, l'ordonnée d'origine est égale à 1 et la longueur est égale à 10. La direction est obtenue par combinaison d'un numéro d'octant et de la décomposition du vecteur selon le code de ROTHMAN.
- Le numéro d'octant associé à un vecteur correspond au secteur de l'espace contenant la direction de ce vecteur. Cette décomposition en secteurs est représentée sur la figure 2b. L'octant associé au vecteur représenté sur la figure 2a est l'octant 2. Cette décomposition en octants est connue de l'homme de l'art. Elle permet de simplifier le tracé d'un vecteur car celui-ci peut être ramené dans tous les cas dans un octant de base, en général l'octant 0, par des symétries autour des axes X et Y. Le tracé d'un vecteur quelconque ramené dans l'octant de base peut être réalisé très rapidement par des algorithmes connus tels que l'algorithme de BRESEN-HAM.
- L'octant définit la direction générale du vecteur. La décomposition de ROTHMAN définit quant à elle la position relative de deux points successifs du vecteur. Ce code consiste à associer une première valeur lorsque l'on passe dans l'octant de base d'un point du vecteur au point successif par un déplacement horizontal c'est-à-dire par incrémentation de l'abscisse et une seconde valeur si l'on passe d'un point de vecteur au point successif par un déplacement en diagonale, c'est-à-dire par incrémentation de l'abscisse et de l'ordonnée. A titre d'exemple, si on note "0" la première valeur et "1" la deuxième valeur, le vecteur représenté sur la figure 2a a pour décomposition la séquence 0 1 0 1 1 0 0 0 0.
- Le processeur de tracé de vecteur de l'invention utilise cette décomposition de ROTHMAN et le découpage en octant. On va maintenant décrire en référence à la figure 3 un mode de réalisation de ce processeur.
- Ce processeur de tracé de vecteur 12 comprend principalement :
- - un registre d'adresse ligne 40 pour délivrer sur le bus d'adresse 18 l'abscisse d'un point d'image, ledit registre comportant une entrée INC de commande d'incrémentation de son contenu et une entrée DEC de commande de décrémentation de son contenu,
- - un registre d'adresse colonne 42 délivrant sur le bus d'adresse 20 l'ordonnée d'un point d'image, ledit registre comportant également une entrée INC de commande d'incrémentation de son contenu et une entrée DEC de commande de décrémentation de son contenu,
- - un moyen de commande d'adresse 44 comportant un registre d'octant 46 et un registre de direction 48 pour mémoriser la direction du vecteur à inscrire dans la mémoire selon le code de ROTHMAN,
- - un moyen de comptage 50 pour mémoriser la longueur du vecteur à traiter.
- Les registres d'adresse 40 et 42 et le registre d'octant 46 sont des tampons à entrée et sortie parallèles.Le registre de direction 48 est un registre à décalage à entrée parallèle et à sortie série.
- Dans le mode de réalisation représenté sur la figure 3, le processeur de tracé de vecteur 12 comporte également un registre de données 52. Ce registre permet l'inscription dans la mémoire d'un vecteur constitué d'une séquence quelconque de bits, ce qui facilite l'inscription en mémoire de vecteurs discontinus (traits mixtes, pointillés ou autre).
- Le registre de données 52 est associé à une mémoire dans laquelle un bit est associé à un point d'image, c'est-à-dire dans laquelle l'image mémorisée est bicolore. Dans le cas d'une mémoire où un ensemble de n bits est associé à chaque point d'image, la mémoire peut avantageusement être constituée de n plans parallèles, chaque plan mémorisant un bit de chaque point d'image. Le processeur de tracé de vecteur 12 comporte alors un ensemble de n registres de données 52 commandé en parallèle. Dans le cas de cette mémoire multiplan, les registres d'adresse et le registre de commande d'adresse restent uniques.
- Le registre de données 52 est de préférence un registre à décalage comprenant des entrées et des sorties parallèles et série tel que le circuit 54AS877 de TEXAS INSTRUMENTS. L'entrée et la sortie série sont utilisées pour le transfert en lecture ou en écriture avec la mémoire d'image 16. L'entrée et la sortie parallèles servent au transfert vers le système informatique auquel est relié le processeur graphique.
- Dans le cas où le registre de données 52 est omis, l'inscription d'un vecteur dans la mémoire d'image consiste à forcer la valeur des éléments binaires de la mémoire correspondant aux points du vecteur avec une valeur prédéterminée.
- L'inscription du vecteur peut également être réalisée au moyen d'un opérateur, par exemple de type OU-EXCLUSIF dont une entrée reçoit la valeur des éléments binaires de la mémoire correspondant aux points du vecteur, l'autre entrée reçoit soit une valeur prédéterminée soit des données délivrées par le registre de données 52, et dont la sortie, reliée à la mémoire d'image, délivre la valeur effective des points du vecteur à inscrire.
- Les différents registres du processeur de tracé de vecteur 12 sont chargés avec des données reçues d'un calculateur par le bus bidirectionnel 4. Un circuit d'interface 54 reçoit lesdites données et des signaux de commande du calculateur et délivre ces données sur un bus 56 interne au processeur 12. Le circuit d'interface 54 peut comprendre notamment un registre tampon en entrée pour mémoriser plusieurs données ou commandes reçues du calculateur et des moyens pour sélectionner chacun des registres du processeur 12.
- Le moyen de commande d'adresse 44 reçoit du circuit d'interface 54 d'une part un mot représentant la forme canonique du vecteur à inscrire selon le code de ROTHMAN, ce mot étant mémorisé dans le registre de direction 48, et d'autre part, le numéro d'octant qui est mémorisé dans le registre d'octant 46.
- Dans le mode de réalisation représenté sur la figure 3, un vecteur à tracer est décomposé en segments de 32 bits. Un mot de 8 bits peut donc indiquer simultanément la longueur d'un segment et l'octant dans lequel est contenu le vecteur. Ce mot est reçu par le circuit d'interface 54 et mémorisé dans un registre tampon 58. Les 5 bits correspondant à la longueur du segment sont ensuite chargés dans le moyen de comptage 50 et les 3 bits correspondant au numéro d'octant sont chargés dans le registre d'octant 46.
- Le moyen de comptage 50 est du type décompteur. Son contenu est décrémenté en synchronisme avec un signal d'horloge issu d'un moyen de cadencement 60. Ce moyen de cadencement 60 est relié de manière classique aux différents éléments du processeur de tracé de vecteur 12. Ce moyen de cadencement a pour rôle de synchroniser le traitement des données par les différents éléments du processeur.
- Les signaux d'horloge sont délivrés sur réception d'une autorisation délivrée par le moyen de commande 30 et sont bloqués sur un signal reçu du moyen de décomptage. Le rôle de ce moyen de cadencement étant bien connu de l'homme de l'art, on n'a pas jugé utile de représenter les liaisons acheminant les signaux d'horloge de ce moyen de cadencement vers les éléments du processeur de tracé de vecteur 12.
- Lorsque, par suite du dècomptage, le contenu du moyen de comptage 50 devient nul, celui-ci émet sur une ligne 51 un signal vers le moyen de cadencement 60 pour stopper l'émission des signaux d'adresse et de donnée vers la mémoire d'image. Ce signal, ou un signal dérivé, peut également être émis vers le circuit d'interface 54 pour signifier au calculateur que le segment de vecteur a été traité.
- On va maintenant expliquer le fonctionnement du processeur de tracé de vecteur 12. Dans un premier temps, le circuit d'interface 54 charge les registres d'adresse 40 et 42 avec les coordonnées du point d'origine du segment, le registre de données 52 avec la valeur à inscrire dans la mémoire, le registre de direction 48 avec la forme canonique du vecteur selon le code de ROTHMAN et le registre 58 avec la longueur du segment à inscrire et le numéro d'octant correspondant à la direction de ce segment.
- Le passage d'un point d'image à un autre est obtenu d'une part en commandant un décalage du contenu du registre de données 52 et d'autre part en modifiant les contenus des registres 40 et 42 en fonction du contenu du registre de direction 48 et du numéro d'octant contenu dans le registre 46. Pour réaliser cette mise à jour, le moyen 44 de commande d'adresse comprend un tampon 62 pour mémoriser le bit délivré par le registre 48 lors d'un décalage, et une matrice de codage 64 à 4 entrées et 4 sortes. Les entrées de cette matrice sont reliées respectivement à la sortie du tampon 62 et aux 3 sorties du registre d'octant 46 ; ces sorties sont reliées respectivement aux entrées de commande d'incrémentation et de décrémentation des registres d'adresse 40 et 42.
- On a représenté sur la figure 4 la table de vérité de cette matrice. Dans cette table, on a indiqué respectivement le numéro d'octant, le code binaire correspondant, la valeur du bit RD contenu dans le tampon 62 et l'action correspondante sur le contenu des registres d'adresse 40 et 42.
Claims (6)
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| FR8418896 | 1984-12-11 | ||
| FR8418896A FR2574575B1 (fr) | 1984-12-11 | 1984-12-11 | Processeur de trace de vecteur |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| EP0187077A1 EP0187077A1 (fr) | 1986-07-09 |
| EP0187077B1 true EP0187077B1 (fr) | 1989-11-08 |
Family
ID=9310462
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| EP85402370A Expired EP0187077B1 (fr) | 1984-12-11 | 1985-12-02 | Processeur de tracé de vecteur |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US4742343A (fr) |
| EP (1) | EP0187077B1 (fr) |
| DE (1) | DE3574190D1 (fr) |
| FR (1) | FR2574575B1 (fr) |
Families Citing this family (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| DE3620932A1 (de) * | 1986-06-23 | 1988-01-07 | Siemens Ag | Anordnung zum verarbeiten von bilddaten |
| US4837563A (en) * | 1987-02-12 | 1989-06-06 | International Business Machine Corporation | Graphics display system function circuit |
| US4878182A (en) * | 1987-10-30 | 1989-10-31 | International Business Machines Corporation | Multiple pixel generator |
| US4884220A (en) * | 1988-06-07 | 1989-11-28 | Honeywell Inc. | Address generator with variable scan patterns |
| WO1994016408A1 (fr) * | 1993-01-06 | 1994-07-21 | Palm Computing, Inc. | Procede et appareil de correction d'ecriture a l'encre electronique |
Family Cites Families (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| DE1936051C3 (de) * | 1969-07-16 | 1974-04-18 | Dr.-Ing. Rudolf Hell Gmbh, 2300 Kiel | Verfahren zur Aufzeichnung von Strichzeichnungen auf dem Bildschirm eines Elektronenstrahlrohres und Schaltungsanordnung zur Durchführung des Verfahrens |
| US3938130A (en) * | 1972-02-23 | 1976-02-10 | Hughes Aircraft Company | Direction coded digital stroke generator providing a plurality of symbols |
| FR2426296A1 (fr) * | 1978-05-18 | 1979-12-14 | Thomson Csf | Generateur de vecteurs pour console graphique |
| US4338673A (en) * | 1978-12-05 | 1982-07-06 | Compugraphic Corporation | Phototypesetting system and method |
| US4384286A (en) * | 1980-08-29 | 1983-05-17 | General Signal Corp. | High speed graphics |
| US4529978A (en) * | 1980-10-27 | 1985-07-16 | Digital Equipment Corporation | Method and apparatus for generating graphic and textual images on a raster scan display |
| US4507656A (en) * | 1982-09-13 | 1985-03-26 | Rockwell International Corporation | Character/vector controller for stroke written CRT displays |
| DE3379004D1 (en) * | 1983-06-30 | 1989-02-23 | Ibm | Method of storing characters in a display system |
-
1984
- 1984-12-11 FR FR8418896A patent/FR2574575B1/fr not_active Expired
-
1985
- 1985-12-02 DE DE8585402370T patent/DE3574190D1/de not_active Expired
- 1985-12-02 EP EP85402370A patent/EP0187077B1/fr not_active Expired
- 1985-12-10 US US06/807,277 patent/US4742343A/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| EP0187077A1 (fr) | 1986-07-09 |
| FR2574575A1 (fr) | 1986-06-13 |
| US4742343A (en) | 1988-05-03 |
| DE3574190D1 (en) | 1989-12-14 |
| FR2574575B1 (fr) | 1987-02-06 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5572335A (en) | Method and system for transferring image data between two devices having different bandwidths | |
| EP0528739B1 (fr) | Prédicteur d'image | |
| FR2544898A1 (fr) | Dispositif d'affichage video sur ecran d'affichage par balayage d'une trame ligne par ligne et point par point | |
| EP0202166B1 (fr) | Circuit de mémoire d'image virtuelle permettant le multifenêtrage | |
| FR2633426A1 (fr) | Procede et dispositif de commande de visualisation en couleur | |
| FR2539528A1 (fr) | Systeme a microprocesseur comportant deux processeurs | |
| FR2661019A1 (fr) | Livre ecran portatif. | |
| FR2579794A1 (fr) | Procede d'insertion et medaillons dans l'image fournie par un transformateur numerique d'images et transformateur numerique d'images mettant en oeuvre ce procede | |
| EP1402371A1 (fr) | Procede et systeme d'exportation de donnees associees a des entites geometriques bidimensionnelles ou tridimensionnelles | |
| EP0515238B1 (fr) | Dispositif et méthode pour la gestion de plusieurs files d'attente indépendantes dans un espace mémoire commun et banalisé | |
| EP0187077A1 (fr) | Processeur de tracé de vecteur | |
| CA1315005C (fr) | Generateur d'adresses a diagrammes de balayage variables | |
| EP0440301A1 (fr) | Procédé de stockage en mémoire pour le traitement d'images, et dispositif pour la mise en oeuvre du procédé | |
| EP0908828B1 (fr) | Procédé et système contrôle d'accès partagés à une mémoire vive | |
| FR2596890A1 (fr) | Systeme de traitement de l'information avec comparaison anticipee de la programmation | |
| FR2665542A1 (fr) | Procede de mise en óoeuvre d'une memoire tampon permettant de produire un schema de declenchement et appareil de memorisation tampon associe. | |
| EP0098667B1 (fr) | Dispositif de mémoire à inscription contrôlée destiné notamment à coopérer avec une unité de visualisation d'images radar | |
| BE1001069A3 (fr) | Systeme d'affichage a balayage de trame avec generateur de caracteres a memoire a acces aleatoire. | |
| EP0391755A2 (fr) | Système de visualisation d'images | |
| FR2676319A1 (fr) | Procede et dispositif de selection d'informations utilisables par une unite locale reliee a un systeme de transmission numerique. | |
| JPS6362083A (ja) | 射影デ−タ生成方式 | |
| FR2752964A1 (fr) | Systeme et procede de traitement d'image simple dans lesquels un temps systeme non souhaite est impossible | |
| JP2753349B2 (ja) | 任意角回転画像データ入出力方法及びその入出力回路並びにこれらを用いた電子ファイル装置 | |
| FR3166236A1 (fr) | Traitement de données de réalité immersive pour une rémanence temporelle | |
| FR2637144A1 (fr) | Procede et dispositif de reconnaissance de forme pour des images binarisees |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
| AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): DE GB |
|
| RAP1 | Party data changed (applicant data changed or rights of an application transferred) |
Owner name: OIDONNELL, CIARAN |
|
| 17P | Request for examination filed |
Effective date: 19861211 |
|
| RAP1 | Party data changed (applicant data changed or rights of an application transferred) |
Owner name: O'DONNELL, CIARAN |
|
| 17Q | First examination report despatched |
Effective date: 19890110 |
|
| GRAA | (expected) grant |
Free format text: ORIGINAL CODE: 0009210 |
|
| AK | Designated contracting states |
Kind code of ref document: B1 Designated state(s): DE GB |
|
| REF | Corresponds to: |
Ref document number: 3574190 Country of ref document: DE Date of ref document: 19891214 |
|
| GBT | Gb: translation of ep patent filed (gb section 77(6)(a)/1977) | ||
| PLBE | No opposition filed within time limit |
Free format text: ORIGINAL CODE: 0009261 |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: NO OPPOSITION FILED WITHIN TIME LIMIT |
|
| 26N | No opposition filed | ||
| PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: DE Payment date: 19911122 Year of fee payment: 7 |
|
| PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: GB Payment date: 19911129 Year of fee payment: 7 |
|
| PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: GB Effective date: 19921202 |
|
| GBPC | Gb: european patent ceased through non-payment of renewal fee |
Effective date: 19921202 |
|
| PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: DE Effective date: 19930901 |