FR2642867A1 - DEVICE FOR IMPLEMENTING BY MATERIAL A DIGITAL COMPARISON LOGIC IN A GRAPHIC VIDEO DISPLAY SUBSYSTEM - Google Patents
DEVICE FOR IMPLEMENTING BY MATERIAL A DIGITAL COMPARISON LOGIC IN A GRAPHIC VIDEO DISPLAY SUBSYSTEM Download PDFInfo
- Publication number
- FR2642867A1 FR2642867A1 FR8914576A FR8914576A FR2642867A1 FR 2642867 A1 FR2642867 A1 FR 2642867A1 FR 8914576 A FR8914576 A FR 8914576A FR 8914576 A FR8914576 A FR 8914576A FR 2642867 A1 FR2642867 A1 FR 2642867A1
- Authority
- FR
- France
- Prior art keywords
- coordinate
- registers
- coordinates
- register
- framing
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/30—Clipping
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Geometry (AREA)
- Computer Graphics (AREA)
- Human Computer Interaction (AREA)
- General Engineering & Computer Science (AREA)
- Image Generation (AREA)
Abstract
Ce dispositif effectue des comparaisons entre des couples de coordonnées d'un objet à afficher qui est soit un quadrilatère à tracer soit un bloc d'image à déplacer. On définit une fenêtre de cadrage par des coordonnées de cadrage de haut, de bas, de droite et de gauche, et une fenêtre de test avec des décalages X et Y prédéterminés. Selon l'invention, le dispositif comprend : a) des moyens de chargement, pour charger une pluralité de registres de coordonnées d'objet 37 par lesdites coordonnées d'objets (XO, YO à X3, Y3) une pluralité de registres de coordonnées de cadrage 39 par lesdites coordonnées de cadrage (XClipMin, XClipMax, YclipMin, YClipMax) et une pluralité de registres de décalage 41 par lesdits décalages prédéterminés (XRasOff, YRasOff); b) des moyens comparateurs, reliés aux moyens de chargement, pour effectuer lesdites comparaisons; c) des moyens de calcul, reliés aux registres de décalage et aux registres de coordonnées de cadrage, pour calculer les limites de la fenêtre de test par rapport aux limites de la fenêtre de cadrage; d) des moyens multiplexeurs, pour sélectionner certaines desdites comparaisons; e) des moyens formant registres, pour mémoriser ces comparaisons que l'on a sélectionnées; et f) des moyens de commande de comparaison 49; pour commander le fonctionnement des moyens comparateurs, des moyens multiplexeurs et des moyens formant registres.This device makes comparisons between pairs of coordinates of an object to be displayed which is either a quadrilateral to be drawn or an image block to be moved. A registration window is defined by top, bottom, right, and left registration coordinates, and a test window with predetermined X and Y offsets. According to the invention, the device comprises: a) loading means, for loading a plurality of object coordinate registers 37 by said object coordinates (X0, YO to X3, Y3) a plurality of coordinate registers of framing 39 by said framing coordinates (XClipMin, XClipMax, YclipMin, YClipMax) and a plurality of shift registers 41 by said predetermined offsets (XRasOff, YRasOff); b) comparator means, connected to the loading means, for performing said comparisons; c) calculating means, connected to the shift registers and to the registration coordinate registers, for calculating the limits of the test window with respect to the limits of the registration window; d) multiplexer means, for selecting some of said comparisons; e) register means for storing these comparisons which have been selected; and f) comparison control means 49; to control the operation of the comparator means, the multiplexer means and the register means.
Description
La présente invention concerne un dispositif permettant de mettre enThe present invention relates to a device making it possible to
oeuvre, par matériel, une logique de comparaison de cadrage dans un soussystème d'affichage graphique. Le cadrage est nécessaire lorsque l'on définit qu'un objet à afficher doit être contenu sur un affichage vidéo de façon partielle seulement, dans les limites d'une fenêtre prédéterminée. Par exemple, si l'on définit une fenêtre rectangulaire dans le coin supérieur gauche d'un affichage vidéo, et que l'on a défini une ligne s'étendant du coin supérieur gauche au coin inférieur droit de l'affichage, on n'affichera pas la partie de la ligne qui se trouve à l'extérieur de la fenêtre définie; en d'autres termes, on devra la "cadrer", c'est-à-dire la retailler ou recouper. En outre, si une ligne de texte est plus large que la fenêtre, la partie de la ligne de texte qui se situe hors de la implement, by hardware, a framing comparison logic in a graphic display subsystem. Framing is necessary when it is defined that an object to be displayed must be contained on a partial video display only, within the limits of a predetermined window. For example, if you define a rectangular window in the upper-left corner of a video display, and you have defined a line from the upper-left corner to the lower-right corner of the display, you do not want will not display the part of the line that is outside the defined window; in other words, we will have to "frame" it, that is to say the re-cut or cut. Also, if a line of text is wider than the window, the part of the line of text that is outside the
fenêtre doit également être "cadrée" (recoupée). window must also be "framed" (cut).
Le cadrage est généralement exécuté par logiciel. La présente invention, au contraire, exécute les calculs, opérés par un sous-système graphique, relatifs aux comparaisons nécessaires au cadrage des images à afficher sur un affichage vidéo, autant que possible par matériel, le logiciel n'étant mis en oeuvre que pour celles des images, ou des parties d'images, qui ne peuvent pas être cadrées Framing is usually done by software. The present invention, on the contrary, executes the calculations, operated by a graphics subsystem, relating to the comparisons necessary for the framing of the images to be displayed on a video display, as far as possible by hardware, the software being implemented only for those of images, or parts of images, which can not be framed
convenablement par le matériel du sous-système graphique. appropriately by the hardware of the graphics subsystem.
L'invention assure également l'obtention de toutes -les comparaisons entre coordonnées nécessaires pour obtenir la restitution d'objets constitués de quadrilatères quelconques et l'exécution de transferts de bloc d'image ou BLITs (BLock The invention also ensures obtaining all the comparisons between coordinates necessary to obtain the restitution of objects consisting of arbitrary quadrilaterals and the execution of block image transfers or BLITs (BLock
Image Transfers) par le sous-système graphique. Image Transfers) by the graphics subsystem.
A cet effet, l'invention propose un dispositif pour effectuer des comparaisons entre des couples de coordonnées - d'un objet à afficher au moyen d'un sous-système graphique, cet objet étant soit un quadrilatère à tracer soit un bloc d'image à déplacer, ce dispositif comportant une fenêtre de cadrage aveoc des coordonnées de cadrage prédéterminées de haut, de bas, de droite et de gauche et une fenêtre de test avec des décalages X et Y prédéterminés par rapport audit haut et audit bas, et par rapport à ladite droite et à ladite gauche, les coordonnées de l'objet, les coordonnées de cadrage et les décalages servant à des calculs destinés à For this purpose, the invention proposes a device for making comparisons between pairs of coordinates - of an object to be displayed by means of a graphic subsystem, this object being either a quadrilateral to be plotted or an image block. to move, this device having a registration window with predetermined top, bottom, right and left registration coordinates and a test window with predetermined X and Y offsets relative to said top and bottom, and with respect to said right and left, the coordinates of the object, the framing coordinates and the offsets for calculations intended for
l'exécution du cadrage de l'objet avant son affichage. the execution of the framing of the object before its display.
Selon l'invention, ce dispositif comprend: a) des moyens de chargement, pour charger (i) une pluralité de registres de coordonnées d'objet par lesdites coordonnées d'objets, (ii) une pluralité de registres de coordonnées de cadrage par lesdites coordonnées de cadrage, et (iii) une pluralité de registres de décalage par lesdits décalages prédéterminés, b) des moyens comparateurs, reliés aux moyens de chargement, -pour effectuer lesdites comparaisons, c) des moyens de calcul, reliés aux registres de décalage et aux registres de coordonnées de cadrage, pour calculer les limites de la fenêtre de test par rapport aux limites de la fenêtre de cadrage, d) des moyens multiplexeurs, pour sélectionner certaines desdites comparaisons, e) des moyens formant registres, pour mémoriser ces comparaisons que l'on a sélectionné, f) des moyens de commande de comparaison, pour commander le fonctionnement des moyens comparateurs, des moyens According to the invention, this device comprises: a) loading means, for loading (i) a plurality of object coordinate registers by said object coordinates, (ii) a plurality of coordinate coordinate registers by said coordinate coordinates, and (iii) a plurality of offset registers by said predetermined offsets, b) comparator means, connected to the loading means, -to perform said comparisons, c) calculation means, connected to the shift registers and to the coordinate coordinate registers, for calculating the limits of the test window with respect to the boundaries of the registration window, d) multiplexer means, for selecting some of said comparisons, e) register means, for storing such comparisons as f) comparison control means for controlling the operation of the comparator means, means for controlling
multiplexeurs et des moyens formant registres. multiplexers and register means.
On va maintenant décrire un exemple de réalisation, We will now describe an example embodiment,
illustré sur les figures annexées. illustrated in the accompanying figures.
La figure 1 est un diagramme d'ensemble par blocs d'un sous-système graphique pour station de travail selon la FIG. 1 is a block diagram of a workstation graphics subsystem according to FIG.
présente invention.present invention.
La figure 2 est un schéma par blocs de la partie d'étagement des coordonnées du sous-système graphique selon FIG. 2 is a block diagram of the coordinate step portion of the graphics subsystem according to
l'invention.the invention.
La figure 3 est un schéma détaillé par blocs de Figure 3 is a detailed block diagram of
l'additionneur 31 et du multiplexeur 35. the adder 31 and the multiplexer 35.
La figure 4 est un schéma détaillé par blocs des Figure 4 is a detailed block diagram of
registres de coordonnées X/Y 37.X / Y coordinate registers 37.
La figure 5 est. un schéma détaillé par blocs des Figure 5 is. a detailed block diagram of
registres de coordonnées de cadrage 39. coordinate coordinate registers 39.
La figure 6 est un schéma détaillé par blocs du registre Figure 6 is a detailed block diagram of the register
de décalage de trame 41.frame offset 41.
La figure 7 est un schéma détaillé par blocs du circuit Figure 7 is a block diagram of the circuit
de commande de la fenêtre de texte 45. to control the text window 45.
La figure 8 est un schéma détaillé par blocs de la Figure 8 is a detailed block diagram of the
logique de comparaison et mémoire de résultat 47. comparison logic and result memory 47.
La figure 9 est un tableau montrant les séquencements relatifs de la machine à états de commande de chargement 35 et les comparaisons exécutées par la logique de comparaison Fig. 9 is a table showing the relative sequencing of the load control state machine 35 and the comparisons performed by the comparison logic
et mémoire de résultat 47.and result memory 47.
La figure 10 est une table de vérité utilisant les Figure 10 is a truth table using the
résultats de comparaison pour la coordonnée XO. comparison results for the XO coordinate.
Les figures lla et llb sont des tables de vérité utilisant les comparaisons entre chacun des quatre sommets X et chacun des quatre sommets Y. Les figures 12a à 12d définissent une table de vérité utilisant les comparaisons entre les quatre sommets X et les FIGS. 11a and 11b are truth tables using comparisons between each of the four vertices X and each of the four vertices Y. FIGS. 12a to 12d define a truth table using comparisons between the four vertices X and the
quatre sommets Y et les limites de cadrage. four Y vertices and framing boundaries.
La figure 13 définit une table de vérité utilisant les comparaisons entre les quatre sommets X et Y et les limites Figure 13 defines a truth table using comparisons between the four X and Y vertices and the boundaries
de fenêtres de test.test windows.
La figure 14 définit une table de vérité donnant la direction dans laquelle on dessinera les objets ou dans Figure 14 defines a truth table giving the direction in which objects will be drawn or in
laquelle on exécutera les transferts de bloc d'image. which will perform the block image transfers.
00
La présente invention concerne un sous-système graphique d'une station de travail d'ingénierie, et elle concerne plus particulièrement une mise en oeuvre par matériel permettant d'obtenir les informations nécessaires à l'exécution des opérations indispensables pour cadrer les parties d'images The present invention relates to a graphic subsystem of an engineering work station, and more particularly to a hardware implementation that makes it possible to obtain the information necessary for carrying out the operations required to frame the parts of the workstation. imagery
et de texte qui dépassent une fenêtre que l'on a défini. and text that goes beyond a window that has been defined.
Les blocs logiques d'étagement des coordonnées et de comparaison des coordonnées (voir figure 1) sont destinés à assurer la mémorisation et la comparaison nécessaires des informations indispensables pour restituer des quadrilatères quelconques avec cadrage, ainsi que pour les transferts de bloc d'image avec cadrage. Dans l'un ou l'autre cas, il est nécessaire de spécifier quatre couples de coordonnées X/Y et The logical blocks of coordinate staging and comparison of coordinates (see FIG. 1) are intended to ensure the necessary storage and comparison of the information necessary to restore arbitrary quadrilaterals with framing, as well as for image block transfers with framing. In either case, it is necessary to specify four pairs of X / Y coordinates and
de spécifier les limites de la fenêtre de cadrage. to specify the boundaries of the frame window.
La possibilité de restituer des quadrilatères implique que l'on dispose de quatre sommets qui définiront le quadrilatère. Le mode de réalisation de la présente invention décrit ici impose très peu de contraintes sur ces sommets. Ceux-ci sont mémorisés dans quatre paires de registres (une paire de registres étant constituée d'un registre pour la coordonnée X et d'un registre pour la coordonnée Y), et sont référencés par les numéros de sommet O à 3. Le sommet O est implicitement rattaché au sommet 1, le sommet 1 au sommet 2, 'le sommet 2 au sommet 3 et le sommet 3 au sommet 0. On ne prévoit aucun rattachement entre les sommets O et 2, ou 1 et 3 par exemple. La logique d'étagement des coordonnées et de comparaison forme les étages initiaux d'un pipeline qui, en bout de chaîne, opérera la restitution dans la mémoire d'affichage du quadrilatère spécifié. Les étages suivants du pipeline ont besoin d'informations concernant la relation entre chaque sommet adjacent et ses voisins (par exemple, pour le sommet 1: Xl par rapport à XO, Y1 par rapport à YO, Xl par rapport à X2 et Y1 par rapport à Y2). Cette information est nécessaire pour délivrer convenablement au bloc fonctionnel d'adressage une série de trapèzes qui, lorsqu'ils seront combinés, représenteront exactement le quadrilatère original. La décomposition d'un quadrilatère quelconque est The possibility of restoring quadrilaterals implies that we have four vertices that will define the quadrilateral. The embodiment of the present invention described here imposes very few constraints on these vertices. These are stored in four pairs of registers (a pair of registers consisting of a register for the X coordinate and a register for the Y coordinate), and are referenced by the vertex numbers O to 3. The vertex O is implicitly attached to the vertex 1, the vertex 1 to the vertex 2, 'the vertex 2 to the vertex 3 and the vertex 3 to the vertex 0. No attachment between the vertices O and 2, or 1 and 3 for example, is expected. The coordinate and comparison staging logic forms the initial stages of a pipeline which, at the end of the chain, will perform the rendering in the display memory of the specified quadrilateral. The following stages of the pipeline need information about the relationship between each adjacent vertex and its neighbors (for example, for the vertex 1: X1 with respect to XO, Y1 with respect to Y0, X1 with respect to X2 and Y1 with respect to at Y2). This information is necessary to properly deliver to the addressing functional block a series of trapezes which, when combined, will represent exactly the original quadrilateral. The decomposition of any quadrilateral is
réalisée par la logique de séquencement des coordonnées. realized by the logic of sequencing of the coordinates.
En outre, pour permettre dans les étages suivants du pipeline le cadrage du quadrilatère sur les limites de cadrage, on a besoin des relations entre les sommets et les limites appropriées de cadrage. Ceci signifie, par exemple, que l'on comparera tous les sommets X à la limite de cadrage minimum X ainsi qu'à la limite de cadrage maximum X. Une série semblable de comparaisons est, de la même façon, nécessaire pour les sommets Y. Dans certains cas, ces comparaisons peuvent indiquer si un objet possède des parties visibles (non cadrées), ou s'il n'en possède pas du tout-. En identifiant à l'avance les objets qui ne seront pas visibles, on peut éviter l'utilisation des étages suivants du pipeline, car on aura identifié qu'aucun pixel visible ne devra être inscrit dans la mémoire d'affichage. Ceci est avantageux eu égard aux performances, du fait que la restitution du quadrilatère peut être considérée comme ayant eu lieu immédiatement après analyse des informations de cadrage. Le mode de réalisation préféré du système graphique que l'on décrit ici utilise, lors de la détermination du pixel associé à un segment de ligne, une opération de complémentation à deux sur seize bits. Cette opération signifie que l'on prend la différence entre les deux sommets X et les deux sommets Y du segment de ligne. Pour éviter un débordement mathématique, on doit limiter la gamme des valeurs numériques des sommets X et Y de manière à pouvoir les représenter sur quinze bits, c'est-à-dire qu'ils devront être compris entre -214 et 214-1l. Pour permettre ceci, la logique de comparaison des coordonnées effectue un contrôle In addition, to allow the quadrilateral framing on the framing boundaries in subsequent stages of the pipeline, the relationships between the vertices and the appropriate framing boundaries are needed. This means, for example, that all X vertices will be compared to the X minimum framing limit and the X maximum framing limit. A similar set of comparisons is similarly needed for Y vertices. In some cases, these comparisons can indicate whether an object has visible parts (not framed), or if it does not have any at all. By identifying in advance the objects that will not be visible, it is possible to avoid the use of the following stages of the pipeline, because it has been identified that no visible pixel will have to be written in the display memory. This is advantageous in terms of performance, since the quadrilateral restitution can be considered to have taken place immediately after analysis of the registration information. The preferred embodiment of the graphical system described herein uses, in determining the pixel associated with a line segment, a two-by-sixteen bit complementation operation. This operation means that we take the difference between the two vertices X and the two vertices Y of the line segment. To avoid a mathematical overflow, we must limit the range of the numerical values of the vertices X and Y so as to be able to represent them on fifteen bits, that is to say that they will have to be between -214 and 214-1l. To enable this, the coordinate comparison logic performs a control
de l'étendue numérique des sommets. of the numerical extent of the vertices.
La possibilité d'effectuer des transferts de bloc d'image nécessite également quatre sommets, dont deux spécifient les angles opposés. d'un rectangle source et les deux autres spécifient les angles opposés d'un rectangle destination. Le but de l'opération de transfert de bloc d'image est de recopier dans le rectangle destination les pixels contenus dans le rectangle source. Dans le mode de réalisation actuel, l'angle supérieur gauche du rectangle source est mémorisé au sommet 0, tandis que l'angle inférieur droit du rectangle source se trouve au sommet 1. De la même façon, l'angle supérieur gauche du rectangle destination se trouve au sommet 2 et l'angle inférieur droit du rectangle au sommet 3. Pour recopier convenablement le rectangle source vers le rectangle destination, on doit faire attention au cas o les deux rectangles se chevauchent. Si tel est le cas, on doit recopier les pixels dans un certain ordre si l'on veut obtenir le résultat correct. Ce problème est bien connu des spécialistes de cette technique. Les informations nécessaires pour déterminer convenablement les contraintes de recopie des pixels impliquent la comparaison des limites The ability to perform block image transfers also requires four vertices, two of which specify opposite angles. of a source rectangle and the two others specify the opposite angles of a destination rectangle. The purpose of the image block transfer operation is to copy in the destination rectangle the pixels contained in the source rectangle. In the current embodiment, the upper left corner of the source rectangle is stored at vertex 0, while the bottom right corner of the source rectangle is at vertex 1. In the same way, the upper left corner of the destination rectangle is located at the top 2 and the lower right corner of the rectangle at the top 3. To correctly copy the source rectangle to the destination rectangle, we must be careful if the two rectangles overlap. If this is the case, we must copy the pixels in a certain order if we want to obtain the correct result. This problem is well known to those skilled in this art. The information needed to properly determine pixel copy constraints involves comparing the limits
du rectangle source et des limites du rectangle destination. the source rectangle and the bounds of the destination rectangle.
Ceci est nécessaire aussi bien pour les coordonnées X que This is necessary for both X coordinates and
pour les coordonnées Y concernées. for the relevant Y coordinates.
En outre, pour permettre le cadrage aussi bien du rectangle source que du rectangle destination dans les étages suivants du pipeline, on a besoin des relations entre les sommets source et destination et les limites de cadrage appropriées. Ici encore, on peut déterminer que l'un ou l'autre des rectangles source ou destination est totalement caché (invisible), ce qui évite le recours aux étages suivants du pipeline. Ceci est avantageux en ce qui concerne les performances, car on pourra considérer que l'exécution du transfert de bloc d'image a eu lieu immédiatement après In addition, to allow both the source rectangle and the destination rectangle to be framed in subsequent stages of the pipeline, the relationships between the source and destination vertices and the appropriate framing boundaries are needed. Here again, it can be determined that either of the source or destination rectangles is totally hidden (invisible), thus avoiding the use of subsequent stages of the pipeline. This is advantageous in terms of performance, since it can be considered that the execution of the image block transfer took place immediately after
l'analyse des informations de cadrage. the analysis of the framing information.
La logique de commande de l'étagement des coordonnées permet d'obtenir de plusieurs manières les valeurs de coordonnées. A cet égard, la logique de comparaison des coordonnées conserve les informations de comparaison nécessaires indépendamment de la manière dont sont délivrées les valeurs de coordonnées. Les différents procédés d'obtention des coordonnées peuvent être désignés, en abrégé : procédé en valeur absolue, procédé en valeur indexée et procédé en valeur relative. Le procédé particulier que l'on utilisera est déterminé par l'adresse du registre que l'unité centrale de traitement utilisera pour identifier le The control logic of the coordinate layering makes it possible to obtain the coordinate values in several ways. In this respect, the coordinate comparison logic retains the necessary comparison information regardless of how the coordinate values are delivered. The various methods of obtaining the coordinates can be designated abbreviated as absolute value process, indexed value method and relative value method. The particular method that will be used is determined by the address of the register that the central processing unit will use to identify the
ou les registres à charger.or the registers to load.
On charge une valeur absolue de coordonnée en mémorisant la valeur effective délivrée par l'unité centrale de traitement dans le registre adressé. Ce procédé de chargement est utilisé pour charger les registres de limites de cadrage et les registres de décalage de trame que l'on An absolute coordinate value is loaded by storing the actual value delivered by the central processing unit in the addressed register. This loading method is used to load the framing limits registers and the frame shift registers that are
Z642867Z642867
-7 décrira plus bas, ainsi que les registres de coordonnées individuels. Le second procédé, celui en valeur indexée, est utilisé pour charger de façon performante une pluralité de coordonnées par les mêmes valeurs. Dans ce cas, la valeur délivrée par l'unité centrale de traitement est tout d'abord ajoutée au registre de décalage de trame approprié (soit le registre de décalage de trame X, soit le registre de décalage de trame Y) avant de la mémoriser dans un ou plusieurs registres de coordonnées. L'addition du décalage de trame permet de décaler vers une zone différente de la mémoire d'affichage le domaine X/Y adressé donné par l'unité centrale de traitement. Le processus de chargement en valeur indexée utilise pour son repérage un index sur deux bits et détermine le nombre et l'identité des registres de -7 will describe below, as well as the individual coordinate registers. The second method, that in indexed value, is used to efficiently load a plurality of coordinates by the same values. In this case, the value delivered by the central processing unit is first added to the appropriate frame shift register (either the frame shift register X or the field offset register Y) before storing it. in one or more coordinate registers. The addition of the frame offset makes it possible to shift the addressed X / Y domain given by the central processing unit to a different area of the display memory. The indexed load process uses a two-bit index for its registration and determines the number and identity of
coordonnées à charger au cours d'un cycle quelconque donné. coordinates to be loaded during any given cycle.
C'est grâce à ce processus que l'unité centrale de traitement peut se contenter de spécifier un seul couple X/Y pour identifier un quadrilatère dégénéré, c'est-à-dire un point, ou deux couples X/Y pour un segment, ou trois couples X/Y pour un triangle. Lorsque l'un de ces quadrilatères dégénérés est chargé dans les quatre registres de sommet, on peut dupliquer un ou plusieurs sommets. Ceci est nécessaire pour que les étages suivants du pipeline puissent toujours interpréter l'objet défini comme étant un quadrilatère (même s'il est dégénéré> et ne pas traiter comme cas particuliers tout les objets de rang inférieur (c'est-à-dire les points, les segments ou les triangles). Le processus de chargement avec indexation permet également de n'introduire que les angles opposés d'un rectangle pour définir convenablement It is thanks to this process that the central processing unit can simply specify a single X / Y pair to identify a degenerate quadrilateral, ie a point, or two X / Y couples for a segment , or three X / Y couples for a triangle. When one of these degenerate quadrilaterals is loaded into the four vertex registers, one or more vertices can be duplicated. This is necessary so that the next stages of the pipeline can always interpret the object defined as being a quadrilateral (even if it is degenerate> and not treat as special cases all the objects of lower rank (that is to say points, segments or triangles.) The indexing loading process also allows to introduce only the opposite angles of a rectangle to define properly
les quatre angles du quadrilatère correspondant. the four angles of the corresponding quadrilateral.
Le dernier procédé de chargement, en valeur relative, est utilisé pour permettre à l'unité centrale de traitement de ne spécifier que la différence entre la dernière coordonnée The last loading method, in relative value, is used to allow the CPU to specify only the difference between the last coordinate
introduite et la nouvelle valeur de coordonnée envisagée. introduced and the new coordinate value considered.
Dans ce cas, avant chargement dans un ou plusieurs registres, on ajoute à la coordonnée précédemment chargée un écart ou décalage délivré par l'unité centrale de traitement. L'index sur deux bits est utilisé pour identifier, pour l'addition que l'on doit effectuer, la dernière coordonnée introduite [sommet (index-1) modulo 4] et pour identifier également celui ou ceux des registres que l'on doit charger, comme dans le cas du chargement indexé. En fin de compte, l'unité centrale de traitement est libre de choisir, parmi toutes les manières possibles, celles par laquelle le chargement des registres de coordonnées sera effectué. Lorsqu'une opération, qu'il s'agisse de la restitution d'un quadrilatère ou d'un transfert de bloc d'image, est effectivement demandée (après que les coordonnées aient déjà été chargées), on utilise directement l'état courant des quatre sommets, quelle que soit la manière dont ils ont été obtenus. Ceci assure à l'unité centrale de traitement la plus extrême souplesse de fonctionnement. La figure 1 est une vue d'ensemble d'un sous-système graphique dans lequel on peut utiliser la présente invention. Une logique d'interfaçage de bus 11 est reliée à une unité centrale de traitement (non représentée) par l'intermédiaire de bus d'adresses, de données et de commandes. Les composants fonctionnels du sous-système graphique sont l'interface de routage des données et mémoire 13, la section d'étagement des coordonnées 15, la section de séquencement des coordonnées 17, le bloc d'adressage fonctionnel 19, le bloc générateur de masque 21 et le In this case, before loading into one or more registers, a difference or offset delivered by the central processing unit is added to the coordinate previously loaded. The two-bit index is used to identify, for the addition that must be made, the last coordinate entered [vertex (index-1) modulo 4] and also to identify the one or those of the registers that must be load, as in the case of indexed loading. In the end, the central processing unit is free to choose, from all possible means, those by which the loading of the coordinate registers will be carried out. When an operation, whether it is the rendering of a quadrilateral or an image block transfer, is actually requested (after the coordinates have already been loaded), the current state is used directly. of the four summits, regardless of how they were obtained. This provides the CPU with the utmost flexibility of operation. Fig. 1 is an overview of a graphics subsystem in which the present invention can be used. A bus interfacing logic 11 is connected to a central processing unit (not shown) via address, data and command buses. The functional components of the graphics subsystem are the data and memory routing interface 13, the coordinate staging section 15, the coordinate sequencing section 17, the functional addressing block 19, the mask generating block 21 and the
générateur d'adresse linéaire 23. linear address generator 23.
L'interface de routage des données et mémoire 13 met à jour un tampon de trame (non représenté), qui est une mémoire conservant les informations graphiques à afficher sur un afficheur.vidéo tel qu'un tube cathodique. En d'autres termes, les données chargées dans le-tampon de trame seront accédées par les circuits vidéo qui convertiront ces données en signaux électriques appropriés qui, quant à eux, produiront l'illumination ou l'extinction des différents pixels de l'affichage vidéo. Les données provenant de la logique d'interfaçage de bus sont modifiées par le bloc générateur de masque 21 et le générateur d'adresse linéaire 23 en fonction du traitement exécuté par la section d'étagement des coordonnées 15, la section de séquencement des coordonnées 17 et l'étage d'adressage fonctionnel 19. L'étage d'adressage fonctionnel 19 effectue également une partie du cadrage nécessaire à l'adaptation d'objets graphiques particuliers à la fenêtre de cadrage o ils doivent être affichés, puis transfère ensuite les signaux à l'étage générateur de masque 21, qui configure les informations en seize fractions de pixel qui vont, pour chaque ligne de balayage, du début à la fin de l'objet visible et sont utilisées pour adresser l'interface de The data routing interface and memory 13 updates a frame buffer (not shown), which is a memory retaining the graphic information to be displayed on a video display such as a cathode ray tube. In other words, the data loaded in the frame buffer will be accessed by the video circuits which will convert these data into appropriate electrical signals which, in turn, will produce the illumination or extinction of the different pixels of the display. video. The data from the bus interface logic is modified by the mask generator block 21 and the linear address generator 23 as a function of the processing performed by the coordinate staging section 15, the coordinate sequencing section 17 and the functional addressing stage 19. The functional addressing stage 19 also performs a part of the registration necessary for the adaptation of particular graphic objects to the registration window where they must be displayed, and then transfers the signals. at the mask generator stage 21, which configures the information in sixteen pixel fractions which, for each scanning line, go from the beginning to the end of the visible object and are used to address the interface of
routage des données et mémoire 13. data routing and memory 13.
Les signaux de génération de masque sont également délivrés au générateur d'adresse linéaire 23, qui traduit les adresses délivrées par l'étage générateur de masque 21 en signaux permetttant d'adresser linéairement le tampon de trame pour transfert en sortie vers l'afficheur. Des modes de réalisation du bloc d'interface mémoire et de routage des données 13, de la logique de séquencement des coordonnées 17, du bloc d'adressage fonctionnel 19 et du générateur d'adresse linéaire sont exposés dans d'autres demandes, en The mask generation signals are also delivered to the linear address generator 23, which translates the addresses delivered by the mask generator stage 21 into signals making it possible to linearly address the frame buffer for output transfer to the display. Embodiments of the memory interface and data routing block 13, the coordinate sequencing logic 17, the functional addressing block 19 and the linear address generator are disclosed in other applications, including
cours de délivrance, appartenant à la Demanderesse. course of issue, belonging to the Applicant.
La présente invention concerne les circuits du bloc d'étagement des coordonnées 15 qui exécutent certaines opérations en fonction des entrées qui lui sont appliquées, et dont on décrira les particularités ci-dessous en référence aux figures 2 à 14, pour produire des informations ayant la nature de signaux de commande et destinées à permettre à un sous-système graphique d'exécuter une restitution de quadrilatères quelconques avec cadrage, et des transferts de bloc d'image avec cadrage. La présente invention concerne donc les circuits particuliers situés à The present invention relates to the circuits of the coordinate staging block 15 which perform certain operations according to the inputs applied thereto, the features of which will be described below with reference to FIGS. 2 to 14, to produce information having the nature of control signals and intended to allow a graphics subsystem to perform a restitution of arbitrary quadrilaterals with framing, and image block transfers with framing. The present invention thus relates to the particular circuits located at
l'intérieur de la section d'étagement des coordonnées 15. inside the coordinate staging section 15.
La mise en oeuvre des divers signaux de séquencement et de commande nécessaire au fonctionnement correct des blocs fonctionnels indiqués plus haut qui constituent un sous-système d'afficheur vidéo sont bien connus des spécialistes de cette technique et ne seront donc pas décrits ici, à l'exception des éléments nécessaires à la The implementation of the various sequencing and control signals necessary for the proper operation of the above-mentioned functional blocks which constitute a video display subsystem are well known to those skilled in the art and will therefore not be described here at exception of the elements necessary for
compréhension de la présente invention. understanding of the present invention.
Si l'on se réfère maintenant à la figure 2, on y a représenté un diagramme d'ensemble par blocs de la section d'étagement des coordonnées. La section d'étagement des coordonnées 15 comporte un additionneur 31, une machine à états de commande de chargement 33, un multiplexeur 35, des registres de coordonnées XY 37, des registres de coordonnées de cadrage 39, des registres de décalage de trame 41, une logique d'indexation 43, une logique de commande de la fenêtre de test 45, une logique de comparaison et mémoire de résultat 47, une machine à états de commande de comparaison Referring now to FIG. 2, there is shown a block assembly diagram of the coordinate staging section. The coordinate staging section 15 comprises an adder 31, a loading control state machine 33, a multiplexer 35, XY coordinate registers 37, framing coordinate registers 39, frame shift registers 41, an indexing logic 43, a control logic of the test window 45, a comparison logic and result memory 47, a comparison control state machine
49 et une logique de génération d'états 51. 49 and a state generation logic 51.
Avant d'indiquer les particularités de la présente invention, on va brièvement décrire ci-dessous la manière dont les objets sont représentés, afin de mieux comprendre Before indicating the particularities of the present invention, the manner in which the objects are represented will be briefly described below in order to better understand
la façon dont est mise en oeuvre la présente invention. the manner in which the present invention is implemented.
Des couples XY de sommets représentent des coordonnées d'affichage vidéo. Pour un affichage de type courant, X varie entre 0 et 1151 et Y varie entre 0 et 899. Chaque coordonnée X et chaque coordonnée Y est mémorisée dans un registre de 32 bits distinct ou dans un ensemble de deux registres de seize bits. Bien que seize bits soient plus que suffisant pour conserver la valeur de coordonnée d'écran la plus élevée (la valeur pouvant aller jusqu'à 65 535, ou être comprise entre -32 768 et +32 767), on mémorise 32 bits d'information car il s'agit là du type de données que l'on trouve le plus souvent dans les logiciels graphiques, et ceci procure une plage de valeurs suffisamment étendue pour pouvoir gérer la plupart des objets réels, qui peuvent se situer sur des étendues beaucoup plus larges que celle du XY pairs of vertices represent video display coordinates. For a current type display, X varies between 0 and 1151 and Y varies between 0 and 899. Each X coordinate and Y coordinate is stored in a separate 32-bit register or in a set of two 16-bit registers. Although sixteen bits are more than sufficient to maintain the highest screen coordinate value (the value up to 65,535, or between -32,768 and +32,767), 32 bits of information because this is the type of data that is most commonly found in graphics software, and this provides a range of values large enough to handle most real objects, which can be on large scales. wider than that of
seul affichage vidéo.only video display.
Les objets constitués par des quadrilatères sont représentés sous forme de combinaisons de quatre couples de sommets (XO,Y0), (Xl,Yl), (X2,Y2) et (X3,Y3). Si l'objet est un point, les quatre couples de-sommets sont alors tous identiques, c'est-à-dire que l'on obtient trois des points par simple répétition. Si l'objet est un segment, on obtient alors par répétition deux des quatre couples de sommets (ou trois des quatre couples de sommets). Si l'objet est un triangle, l'un des couples de sommet sur les quatre est obtenu par répétition d'un autre. Si l'objet est un quadrilatère, les quatre couples sont alors différents. Ces objets (c'est-à-dire le point, le segment, le triangle ou le quadrilatère) sont, de la manière la plus efficace, définis en utilisant le nombre minimum de sommets différents nécessaires pour définir de façon complète l'objet, c'est-à-dire un sommet pour un point, deux sommets pour un segment, trois sommets pour un triangle, quatre sommets pour un quadrilatère et deux sommets pour un rectangle (angles opposés). Si l'on doit exécuter une opération de transfert de bloc d'image, les quatre registres X/Y sont interprétés de la manière suivante (et sont chargés en conséquence): - X0: coordonnée X du coin supérieur gauche du bloc source; - YO: coordonnée Y du coin supérieur gauche du bloc source; - Xl: coordonnée X du coin inférieur droit du bloc source; - Y1: coordonnée Y du coin inférieur droit du bloc source; - X2: coordonnée X du coin supérieur gauche du bloc destination; - Y2: coordonnée Y du coin supérieur gauche du bloc destination; - X3: coordonnée X du coin inférieur droit du bloc destination; - Y3: coordonnée Y du coin inférieur droit du bloc destination; Les images à afficher sur un afficheur tel qu'un tube cathodique sont formées de pixels distincts qui sont conservés dans une mémoire vive appelée "tampon de trame" en un ou plusieurs plans (ou bits), le nombre de plans étant habituellement de huit pour un système en couleurs. Les données conservées dans le tampon de trame sont adressées par un couple de coordonnées X et Y, un couple (X,Y) identifiant un pixel donné dans tous les plans, X correspondant à la rangée et Y correspondant à la colonne. Quadrilateral objects are represented as combinations of four pairs of vertices (X0, Y0), (X1, Y1), (X2, Y2), and (X3, Y3). If the object is a point, then all four vertex pairs are identical, that is, three points are obtained by simple repetition. If the object is a segment, then two of the four pairs of vertices (or three of the four vertex pairs) are obtained by repetition. If the object is a triangle, one of the four vertex pairs is obtained by repeating another. If the object is a quadrilateral, then the four couples are different. These objects (ie the point, the segment, the triangle or the quadrilateral) are, in the most efficient way, defined by using the minimum number of different vertices necessary to completely define the object, that is, a vertex for a point, two vertices for a segment, three vertices for a triangle, four vertices for a quadrilateral, and two vertices for a rectangle (opposite angles). If an image block transfer operation is to be performed, the four X / Y registers are interpreted as follows (and loaded accordingly): - X0: X coordinate of the upper left corner of the source block; - YO: Y coordinate of the upper left corner of the source block; X: X coordinate of the lower right corner of the source block; Y1: Y coordinate of the lower right corner of the source block; X2: X coordinate of the upper left corner of the destination block; Y2: Y coordinate of the upper left corner of the destination block; X3: X coordinate of the lower right corner of the destination block; Y3: Y coordinate of the lower right corner of the destination block; The images to be displayed on a display such as a cathode ray tube are formed of distinct pixels which are kept in a random access memory called "frame buffer" in one or more planes (or bits), the number of planes being usually eight to a color system. The data stored in the frame buffer are addressed by a pair of X and Y coordinates, a pair (X, Y) identifying a given pixel in all the planes, X being the row and Y being the column.
Un pixel est défini par un bit isolé dans chacun des plans. A pixel is defined by an isolated bit in each of the planes.
Ainsi, si l'on utilise huit plans, chaque pixel affiché est défini par huit bits dans le tampon de trame. De cette manière, on peut utiliser un bit d'un pixel pour spécifier s'il est illuminé ou éteint, les sept autres bits spécifiant la couleur du pixel, ou bien on peut utiliser les huit pixels pour spécifier la couleur, l'une des couleurs étant la même que la couleur de fond de l'affichage, de manière à Thus, if eight planes are used, each displayed pixel is defined by eight bits in the frame buffer. In this way, one bit of one pixel can be used to specify whether it is illuminated or off, the other seven bits specify the color of the pixel, or the eight pixels can be used to specify the color, one of the colors being the same as the background color of the display, so as to
éteindre le pixel.turn off the pixel.
La présente invention réside principalement dans la mise en oeuvre de la logique d'indexation 43, de la logique de comparaison et mémoire de résultat 47 et de la machine à états de commande de comparaison 49, qui coordonne l'obtention des informations de comparaison des coordonnées entre elles et par rapport aux coordonnées de la fenêtre de cadrage. C'est pourquoi le fonctionnement et la mise en oeuvre des autres blocs fonctionnels illustrés figure 2 ne seront décrits qu'à l'égard des détails nécessaires à une The present invention resides mainly in the implementation of the indexing logic 43, the comparison logic and result memory 47 and the comparison control state machine 49, which coordinates the obtaining of the comparison information of the coordinates with each other and with the coordinates of the framing window. This is why the operation and implementation of the other functional blocks illustrated in FIG. 2 will only be described with regard to the details necessary for a
bonne compréhension de la présente invention invention. good understanding of the present invention.
Additionneur 31 et multiplexeur 35 L'additionneur 31 est un additionneur binaire sur seize ou trente-deux bits à complémentation à deux comportant deux entrées, à savoir une entrée référencée "DataIn" recevant de la logique d'interfaçage de bus 11 les données incidentes en provenance de l'unité centrale de traitement, et une autre entrée reliée à la sortie du multiplexeur 35 qui sélectionne, parmi plusieurs entrées, l'une des entrées provenant des registres de décalage de trame 47, des registres de coordonnées X/Y 37 ou des registres de coordonnées de cadrage 39. L'entrée du multiplexeur 35 est sélectionnée par des signaux produits par la machine à états Adder 31 and Multiplexer 35 The adder 31 is a 16-bit or 32-bit two-complement complement binary adder having two inputs, namely a "DataIn" referenced input receiving bus interfacing logic 11, the incident data in the form from the central processing unit, and another input connected to the output of the multiplexer 35 which selects, from among several inputs, one of the inputs from the frame shift registers 47, X / Y coordinate registers 37 or register of coordinate coordinates 39. The input of the multiplexer 35 is selected by signals produced by the state machine
de commande de chargement 33 qui sera décrite plus loin. loading control 33 which will be described later.
On va maintenant décrire les détails de l'additionneur 31 et du multiplexeur 35, en référence à la figure 3. Sur la figure 3, l'additionneur 31 a été représenté sous forme d'un additionneur sur seize bits. A cet égard, bien que l'on puisse utiliser un additionneur sur 32 bits du fait que, dans le mode de réalisation préféré, l'entrée DataIn est sur The details of the adder 31 and the multiplexer 35 will now be described with reference to FIG. 3. In FIG. 3, the adder 31 has been represented as a 16-bit adder. In this respect, although a 32-bit adder can be used because, in the preferred embodiment, the DataIn input is on
32 bits, la description ci-dessous sera donnée pour un 32 bits, the description below will be given for a
additionneur sur seize bits, ce qui permettra d'économiser de l'espace sur le circuit intégré o la présente invention sera mise en oeuvre, et en raison du fait qu'une addition en deux étapes satisfait les contraintes de séquencement du pipeline utilisé par la présente invention. Les différences d'utilisation par rapport à un additionneur sur 32 bits apparaîtront sans difficulté au spécialiste de cette 16-bit adder, which will save space on the integrated circuit where the present invention will be implemented, and because a two-step addition satisfies the sequencing constraints of the pipeline used by the present invention. The differences in use with respect to a 32-bit adder will be readily apparent to the specialist of this
technique, et ne seront donc pas décrites. technical and therefore will not be described.
Le multiplexeur 35 est, en fait, constitué de deux multiplexeurs 35a et 35b et d'un troisième multiplexeur 36 utilisé pour appliquer en entrée les seize bits de rang supérieur et de rang inférieur venant de DataIn. Les multiplexeurs 35a et 35b reçoivent, respectivement, les seize bits de rang supérieur et de rang inférieur en provenance de sept entrées sur trente-deux bits, de la manière suivante: une valeur d'entrée sur seize bits (étendue en signe à trente-deux bits) en provenance des registres de décalage de trame 41, quatre valeurs d'entrée sur trente-deux bits en provenance des registres de coordonnées X/Y 37 et deux valeurs d'entrée sur seize bits (étendues en signe à trente-deux bits) -en provenance des registres de coordonnées de cadrage 39. Les sorties des multiplexeurs 35a et 35b sont combinées pour former le signal référencé "DataOut" (qui permettra à l'unité centrale - de traitement d'accéder en lecture à ces valeurs de registre), et sont également appliquées en entrée à un troisième multiplexeur 40 qui transmet la valeur de sortie du multiplexeur 35a chaque fois que l'on accède aux bits de rang supérieur provenant de X0-X3 ou Y0-Y3; dans le cas contraire, le multiplexeur 40 sélectionne la valeur de sortie du multiplexeur 35b. La sortie du multiplexeur 40 constitue l'une des entrées de la porte logique 42 qui laisse passer soit la valeur de seize bits en sortie du multiplexeur 40, soit seize bits à zéro. A cet égard, les zéros sont forcés par la porte logique 42 chaque fois que les bits de DataIn sont transmis par le multiplexeur 32 pour chargement direct (chargement absolu) dans un registre se trouvant dans les registres de décalage de trame 47, les registres de coordonnées X/Y 37 ou les registres de coordonnées de cadrage 39. On a également représenté sur la figure 3 les circuits logiques 44 et 46 qui exécutent la fonction suivante: lorsqu'a lieu l'addition des seize bits d'ordre inférieur, la porte ET 44 a sa sortie forçée au niveau bas, ce qui provoque le report d'un "0" en entrée de l'additionneur 31. Le report en sortie de cet additionneur est sauvegardé dans la bascule 46. Lors de l'addition des seize bits supérieurs, la sortie de la bascule 46 est transférée, par commande d'une porte ET 44, vers l'entrée de report de l'additionneur 31.Cette configuration permet d'avoir l'équivalent en deux cycles d'une addition sur The multiplexer 35 is, in fact, composed of two multiplexers 35a and 35b and a third multiplexer 36 used to input the sixteen bits of higher rank and lower rank from DataIn. The multiplexers 35a and 35b receive, respectively, the sixteen upper and lower rank bits from seven thirty-two bit inputs, as follows: a sixteen bit input value (sign range at thirty-two bits); two bits) from the frame shift registers 41, four thirty-two bit input values from the X / Y coordinate registers 37 and two sixteen bit input values (extended as a sign to thirty-two). bits) -from the frame coordinate registers 39. The outputs of the multiplexers 35a and 35b are combined to form the signal referenced "DataOut" (which will allow the CPU - processing to read access to these values of register), and are also inputted to a third multiplexer 40 which transmits the output value of the multiplexer 35a whenever the higher order bits from X0-X3 or Y0-Y3 are accessed; in the opposite case, the multiplexer 40 selects the output value of the multiplexer 35b. The output of the multiplexer 40 constitutes one of the inputs of the logic gate 42 which passes either the value of sixteen bits at the output of the multiplexer 40, or sixteen bits at zero. In this respect, the zeros are forced by the logic gate 42 each time the DataIn bits are transmitted by the multiplexer 32 for direct loading (absolute loading) into a register in the frame shift registers 47, the registers X / Y coordinates 37 or the coordinate coordinate registers 39. FIG. 3 also shows the logic circuits 44 and 46 which perform the following function: when the addition of the sixteen lower order bits takes place, the AND gate 44 has forced its output low, which causes the carryover of a "0" at the input of the adder 31. The output of this adder is saved in the latch 46. When adding the sixteen bits higher, the output of the flip-flop 46 is transferred, by control of an AND gate 44, to the transfer input of the adder 31.This configuration makes it possible to have the equivalent in two cycles of an addition sure
trente-deux bits en un seul cycle.thirty-two bits in one cycle.
Le fonctionnement de l'additionneur 31, des registres de décalage de trame 41, des registres de coordonnées X/Y 37, des registres de coordonnées de cadrage 39, du circuit de commande de la fenêtre de test 45 et de la logique de comparaison et mémoire de résultat 47 est coordonné par la machine à états de commande de chargement 33 et par la machine à états de logique de comparaison 49 qui déclenchent le fonctionnement des blocs fonctionnels précités de façon à permettre le transfert en pipeline des données. Ainsi, bien que l'on n'ait pas représenté toutes les lignes de commande en provenance de la machine à états de commande de chargement 33 et de la machine à états de logique de comparaison 49, les détails de cette configuration apparaîtront aisément au spécialiste de cette technique The operation of the adder 31, the frame shift registers 41, the X / Y coordinate registers 37, the frame coordinate registers 39, the control circuit of the test window 45 and the comparison logic and result memory 47 is coordinated by the load control state machine 33 and the comparison logic state machine 49 which triggers the operation of the aforementioned functional blocks so as to allow the pipeline data transfer. Thus, although not all the control lines from the load control state machine 33 and the comparison logic state machine 49 have been shown, the details of this configuration will readily be apparent to the skilled artisan. of this technique
d'après la description de la machine à états de commande de according to the description of the control state machine of
chargement 33 et de la machine à états de logique de loading 33 and the logic state machine of
comparaison 49 que l'on va donner ci-dessous. comparison 49 that we will give below.
Registres de coordonnées X/Y 37 Les registres de coordonnées X/Y 37 sont constitués, comme on peut le voir en se référant la figure 4, d'un ensemble de registres sur seize bits qui mémorisent les sommets (X0,YO) à (X3,Y3) d'un objet à représenter graphiquement. L'un des registres de seize bits est utilisé pour mémoriser les seize bits supérieurs de chaque coordonnée X, et un autre registre de seize bits est utilisé pour mémoriser les seize bits inférieurs de chaque coordonnée X. De la même façon, un autre registre de seize bits conserve les seize bits supérieurs de chaque coordonnée Y et un autre registre de seize bits conserve les seize bits inférieurs de chaque coordonnée Y. Ces registres ont été illustrés figure 4, XOL (L pour Lower, inférieur) représentant les seize bits inférieurs de la coordonnée XO et XOU (U pour Upper, inférieur) représentant les seize bits supérieurs de la coordonnée X0. Les registres XlL à X3L et X1U à X3U représentent, respectivement, les seize bits supérieurs et inférieurs des coordonnées Xl à X3. Des registres semblables Y0L à Y3L et YOU à Y3U mémorisent les seize bits inférieurs et supérieurs des coordonnées Y0 à Y3 de l'objet. Les références XO, YO, etc. indiqueront la valeur de 32 bits mémorisée dans la paire de registres X / Y coordinate registers 37 The X / Y coordinate registers 37 are constituted, as can be seen by referring to FIG. 4, of a set of sixteen bit registers which store the vertices (X0, Y0) at X3, Y3) of an object to graphically represent. One of the sixteen bit registers is used to store the top sixteen bits of each X coordinate, and another sixteen bit register is used to store the bottom sixteen bits of each X coordinate. Likewise, another register of sixteen bits retains the upper sixteen bits of each Y coordinate, and another sixteen bit register retains the sixteen lower bits of each Y coordinate. These registers have been illustrated in Figure 4, XOL (L for Lower, Lower) representing the sixteen lower bits of the XO and XOU coordinate (U for Upper, lower) representing the top sixteen bits of the X0 coordinate. The registers X1L to X3L and X1U to X3U represent, respectively, the sixteen upper and lower bits of the coordinates X1 to X3. Similar registers Y0L to Y3L and YOU to Y3U store the lower and upper sixteen bits of the Y0 to Y3 coordinates of the object. References XO, YO, etc. will indicate the 32-bit value stored in the register pair
correspondante, c'est-à-dire (XOU,X0L) et (YOU,YOL). corresponding, that is to say (XOU, X0L) and (YOU, YOL).
Chaque paire de registres (X0L,YOL) à (X3L,Y3L) est reliée à une paire de multiplexeur utilisés pour sélectionner soit le registre X soit le registre. Y correspondant. Par exemple, les registres XOL et YOL sont reliés aux multiplexeurs 61a et 61b. La machine à états de commande de chargement 33 produit un signal qui ordonne au multiplexeur 61a de sélectionner l'entrée provenant soit du registre XOL soit du registre YOL, selon que l'on doit travailler sur les coordonnées X ou bien sur les coordonnées Y. Chacun des multiplexeurs 62a, 62b à 64a, 64b opère, respectivement, de la même manière pour les couples de registre (XlL,YlL) à (X3L,Y3L). Les sorties des multiplexeurs 61a à 64a vont vers le multiplexeur 35b, tandis que les sorties des multiplexeurs 61b à 64b vont à la Each pair of registers (X0L, YOL) to (X3L, Y3L) is connected to a pair of multiplexers used to select either the X-register or the register. Y corresponding. For example, the XOL and YOL registers are connected to the multiplexers 61a and 61b. The load control state machine 33 produces a signal which instructs the multiplexer 61a to select the input from either the XOL register or the YOL register, depending on whether one has to work on the X coordinates or on the Y coordinates. Each of the multiplexers 62a, 62b to 64a, 64b operate, respectively, in the same way for the register pairs (XlL, YlL) to (X3L, Y3L). The outputs of the multiplexers 61a to 64a go to the multiplexer 35b, while the outputs of the multiplexers 61b to 64b go to the
logique de comparaison et mémoire de résultat 47. comparison logic and result memory 47.
Les blocs 67, 69, 71 et 73, référencés "tout à zéro" ou "tout à un" sont constitués chacun par des circuits logiques qui examinent les 18 bits supérieurs du couple de coordonnées X, Y correspondant pour déterminer s'ils sont entièrement à zéro ou entièrement à un. Seize des bits proviennent des registres (XOU,YOU) à (X3U,Y3U), le dix-septième et le dix-huitième bit provenant des deux bits de rang supérieur du registre correspondant du groupe (XOL,YOL) à (X3L,Y3L). Le dix-septième et le dixhuitième bit appliqués en entrée n'ont pas été représentés sur la Blocks 67, 69, 71 and 73, referenced "all zero" or "all at one" are each constituted by logic circuits which examine the upper 18 bits of the pair of corresponding X, Y coordinates to determine whether they are entirely to zero or entirely to one. Sixteen bits are from the registers (XOU, YOU) to (X3U, Y3U), the seventeenth and eighteenth bits from the two higher order bits of the corresponding register of the group (XOL, YOL) to (X3L, Y3L ). The seventeenth and eighteenth input bits were not represented on the
figure 4 pour éviter d'embrouiller inutilement la figure. Figure 4 to avoid unnecessarily confusing the figure.
Les paires de registres (X0U,YOU) à (X3U,Y3U) sont reliées, respectivement, aux entrées des multiplexeurs 75 à 78 qui sélectionnent soit la coordonnée X soit la coordonnée Y, de la même manière que pour les couples de multiplexeur 61a, 61b à 64a, 64b. Les sorties des multiplexeurs 75 à 78 vont au multiplexeur 35a. L'une des sorties sur quatre bits de chacun des blocs logiques 67 à 73 est, dans chaque cas, un "un" si les dix-huit bits supérieurs du registre correspondant sont entièrement à zéro ou entièrement à un; The pairs of registers (X0U, YOU) to (X3U, Y3U) are respectively connected to the inputs of the multiplexers 75 to 78 which select either the X coordinate or the Y coordinate, in the same way as for the multiplexer pairs 61a, 61b to 64a, 64b. The outputs of the multiplexers 75 to 78 go to the multiplexer 35a. One of the four-bit outputs of each of the logic blocks 67 to 73 is, in each case, a "one" if the eighteen upper bits of the corresponding register are entirely zero or all one;
dans le cas contraire, chacun des quatre bits est à zéro. otherwise, each of the four bits is zero.
Les quatre sorties sur quatre bits des blocs 67 à 73 sont The four four-bit outputs of blocks 67 to 73 are
appliquées en entrée à la logique de génération d'états 51. applied as input to the state generation logic 51.
Registres de coordonnées de cadrage 39 Les registres de coordonnées de cadrage, illustrés figure 5, comportent quatre registres, à savoir XClipMin, XClipMax, YClipMin et YClipMax, et des multiplexeurs 81a, 81b, 83a et 83b. Les valeurs XClipMin, XClipMax, YClipMin et YClipMax, conservées dans les registres précités du même nom, définissent, respectivement, la gauche, la droite, le haut et le bas de la fenêtre active courante. Ces valeurs sont produites par l'unité centrale de traitement et sont appliquées en entrée à l'additionneur 31 qui ajoute un zéro à ces valeurs pour charger les registres XClipMin, XClipMax, YClipMin et YClipMax, comme décrit plus haut. Les multiplexeurs 81a et 83a, d'une part, et les multiplexeurs 81b et 83b, d'autre part, sélectionnent XClipMin et XClipMax, ou YClipMin et YClipMax, en fonction des signaux de commande produits, respectivement, par la machine à états de commande de chargement 33 et par la machine à états de commande de comparaison 49. Les valeurs- provenant des multiplexeurs 81a et 83a sont envoyées au multiplexeur 35, tandis que les valeurs des multiplexeurs 81b et 83b sont envoyées à la logique de comparaison et mémoire de résultat The coordinate coordinate registers, illustrated in FIG. 5, comprise four registers, namely XClipMin, XClipMax, YClipMin and YClipMax, and multiplexers 81a, 81b, 83a and 83b. The values XClipMin, XClipMax, YClipMin and YClipMax, kept in the aforementioned registers of the same name, define, respectively, the left, right, top and bottom of the current active window. These values are produced by the central processing unit and are inputted to the adder 31 which adds a zero to these values to load the XClipMin, XClipMax, YClipMin and YClipMax registers, as described above. The multiplexers 81a and 83a, on the one hand, and the multiplexers 81b and 83b, on the other hand, select XClipMin and XClipMax, or YClipMin and YClipMax, as a function of the control signals produced, respectively, by the state machine. 33 and by the comparison control state machine 49. The values from the multiplexers 81a and 83a are sent to the multiplexer 35, while the values of the multiplexers 81b and 83b are sent to the comparison logic and result memory.
47 et à la commande de fenêtre de test 45. 47 and the test window control 45.
Registres de décalage de trame 41 Les registres de décalage de trame 41, qui sont illustrés figure 6, comportent deux registres XRas.Off (X Raster Frame Shift Registers 41 The frame shift registers 41, which are illustrated in FIG. 6, comprise two registers XRas.Off (X Raster
Offset) et YRasOff (Y Raster Offset), et un multiplexeur 53. Offset) and YRasOff (Y Raster Offset), and a multiplexer 53.
Les valeurs XRasOff et YRasOff qui sont conservées dans les registres précités du même nom définissent, respectivement, le décalage X et Y à ajouter (si on le veut) à DataIn avant mémorisation dans chacun des quatre jeux de coordonnées X, Y des registres de coordonnées X/Y 37. Ces valeurs sont produites par l'unité centrale de traitement pour mémorisation dans XRasOff et YRasOff. Le multiplexeur 53 sélectionne soit XRasOff soit YRasOff en fonction des signaux de commande produits par la machine à états de commande.de chargement 33. La valeur sélectionnée par le The values XRasOff and YRasOff that are stored in the aforementioned registers of the same name define, respectively, the X and Y offset to be added (if desired) to DataIn before storage in each of the four coordinate sets X, Y of the coordinate registers. X / Y 37. These values are generated by the central processing unit for storage in XRasOff and YRasOff. The multiplexer 53 selects either XRasOff or YRasOff based on the control signals generated by the load control state machine 33. The value selected by the
multiplexeur 53 est envoyée au multiplexeur 35. multiplexer 53 is sent to the multiplexer 35.
Commande de la fenêtre de test 45 On va maintenant décrire, en référence à la figure 7, la commande de fenêtre de test 45. L'unité centrale de traitement produit les valeurs TestXVal et TestYVal qui servent à effectuer un décalage d'une distance prédéterminée, c'est-à-dire d'un nombre prédéterminé de pixels, vers le haut et vers le bas (pour TestYVal) et vers la droite et vers la gauche (pour TestXVal) de la fenêtre de cadrage active en cours. C'est-à-dire que, pour une fenêtre donnée d'un affichage, on a un AX et un AY qui définissent Control of the test window 45 With reference to FIG. 7, the test window control 45 will be described. The central processing unit produces the values TestXVal and TestYVal which serve to carry out an offset by a predetermined distance , that is, a predetermined number of pixels, up and down (for TestYVal) and to the right and to the left (for TestXVal) of the current active framing window. That is, for a given window of a display, we have an AX and an AY that define
une fenêtre de test entourant la fenêtre de cadrage réelle. a test window surrounding the actual framing window.
Le but de cette fenêtre de test est d'empêcher, chaque fois que cela peut être avantageux, le matériel de calculer la position d'objets ou de parties d'objets situés hors de la fenêtre de cadrage. Des détails concernant l'utilisation de la fenêtre de test sont décrits dans une autre demande de The purpose of this test window is to prevent, whenever it may be advantageous, the hardware to calculate the position of objects or parts of objects located outside the frame window. Details concerning the use of the test window are described in another application for
brevet, en cours de délivrance, au nom de la Demanderesse. patent, pending, on behalf of the Claimant.
Les valeurs sur quatre bits TestXVal et TestYVal sont conservées, respectivement, dans les registres de quatre bits TestX et TestY. Le multiplexeur 91 sélectionne l'un des registres TestX ou TestY, selon que l'on doit opérer sur les coordonnées X ou sur les coordonnées Y, en fonction du signal MUX Enable d'activation du multiplexeur produit par la machine à états de commande de chargement 33. La sortie du multiplexeur 91 est appliquée en entrée au registre à décrémentation 93 et au registre à incrémentation 95. Le registre à décrémentation 93 reçoit sur sa seconde entrée la valeur XClipMin ou YClipMin et le registre à incrémentation reçoit sur sa seconde entrée la valeur XClipMax ou YClipMax, ici encore en fonction du signal MUX Enable d'activation du multiplexeur. Les valeurs de sortie produites par le registre à décrémentation 93 et le registre à incrémentation 95 seront désignées par XTestMin, YTestMin, et XTestMax, YTestMax, respectivement. Le registre à décrémentation 93 donne les valeurs XTestMin et YTestMin en retranchant de XClipMin et YClipMin une valeur égale à 2 The four-bit TestXVal and TestYVal values are maintained in the four-bit TestX and TestY registers, respectively. The multiplexer 91 selects one of the registers TestX or TestY, depending on whether one has to operate on the X coordinates or the Y coordinates, as a function of the MUX Enable signal for activating the multiplexer produced by the control state machine. The output of the multiplexer 91 is input to the decrement register 93 and the incremental register 95. The decrement register 93 receives on its second input the value XClipMin or YClipMin and the incremental register receives on its second input the value XClipMax or YClipMax, again depending on the MUX Enable signal for activating the multiplexer. The output values produced by the decrement register 93 and the incremental register 95 will be designated XTestMin, YTestMin, and XTestMax, YTestMax, respectively. The decrement register 93 gives the values XTestMin and YTestMin by subtracting from XClipMin and YClipMin a value equal to 2
élevé à la puissance (TestX-1) et (TestY-1), respectivement. raised to the power (TestX-1) and (TestY-1), respectively.
De la même façon, le registre à incrémentation 95 détermine les valeurs XTestMax et YTestMax en ajoutant à XClipMax et YClipMax une valeur égale à 2 élevé à la puissance (TestX-1) et (TestY-l), respectivement (c'est-àdire 2TestX-l et 2TestY-1) Machine à états de commande de chargement 33 et logique d'indexation 43 La machine à états de commande de chargement 33 produit les signaux de commande "MUX Enable"', "Index" et "Register Enable". "MUX Enable" est un ensemble de signaux de commande dont l'un provoque la sélection, par les divers multiplexeurs des registres de décalage de trame 41, des registres de coordonnées X/Y 37 et des registres de coordonnées de cadrage 39, de leurs entrées X ou Y respectives, et dont un autre signal provoque la sélection par le multiplexeur 35 de l'une des entrées provenant des registres de décalage de trame 41, des registres de coordonnées X/Y 37 ou des registres de coordonnées de cadrage 39. "Index" est un signal de commande isolé qui provoque l'incrémentation d'une unité d'un registre d'index dans la logique d'indexation 43 pour chacune des valeurs 0, In the same way, the incremental register 95 determines the values XTestMax and YTestMax by adding to XClipMax and YClipMax a value equal to 2 raised to the power (TestX-1) and (TestY-1), respectively (i.e. 2TestX-1 and 2TestY-1) Load control state machine 33 and indexing logic 43 Load control state machine 33 produces the control signals "MUX Enable", "Index" and "Register Enable" . "MUX Enable" is a set of control signals, one of which causes the various multiplexers to select frame shift registers 41, X / Y coordinate registers 37 and frame coordinate registers 39 from their respective axes. respective X or Y inputs, and another signal causes the multiplexer 35 to select one of the inputs from the frame shift registers 41, X / Y coordinate registers 37, or frame coordinate registers 39. "Index" is an isolated control signal that increments one unit of an index register in the indexing logic 43 for each of the values 0,
1 et 2 et, si la valeur est 3, sa remise à zéro (modulo 4). 1 and 2 and, if the value is 3, its resetting (modulo 4).
"Register Enable" est un ensemble de signaux de commande, avec un signal pour chacun des registres de décalage de trame 41, des registres de coordonnées X/Y 37 et des registres de coordonnées X/Y 39, permettant à chacun de ces registres de charger la valeur sur seize bits présente sur "Register Enable" is a set of control signals, with a signal for each of the frame shift registers 41, X / Y coordinate registers 37 and X / Y coordinate registers 39, allowing each of these registers to load the value on sixteen bits present on
la ligne provenant de l'additionneur 31. the line coming from the adder 31.
On va maintenant décrire, à titre d'exemple, le fonctionnement de la machine à états de commande de chargement 33 et de la logique d'indexation 43, dont les détails de mise en oeuvre ressortiront aisément. Comme indiqué plus haut, les images à représenter graphiquement sont définies sous la forme d'un ou plusieurs objets présentant quatre couples de sommets (X0,Y0) à (X3,Y3).. Les objets peuvent être des points, des segments, des triangles, des rectangles ou des quadrilatères. Pour des points, les quatre couples de sommets sont identiques. Pour des We will now describe, by way of example, the operation of the load control state machine 33 and the indexing logic 43, the details of implementation will emerge easily. As indicated above, the images to be graphically represented are defined as one or more objects having four pairs of vertices (X0, Y0) to (X3, Y3). The objects can be points, segments, triangles, rectangles or quadrilaterals. For points, the four pairs of vertices are identical. For some
segments, on a seulement deux couples de sommets différents. segments, we only have two pairs of different vertices.
Les quadrilatères quelconques présentent quatre sommets différents. Un rectangle correspond à un cas particulier de quadrilatère ou l'on n'a que deux coordonnées X différentes et deux coordonnées Y différentes (les rectangles pouvant être définis par un couple de sommets définissant les angles diagonalement opposés). Pour les triangles, on n'a que trois Any quadrilateral has four different vertices. A rectangle corresponds to a particular case of quadrilateral where one has only two different X coordinates and two different Y coordinates (the rectangles can be defined by a pair of vertices defining the diagonally opposite angles). For triangles, we only have three
couples de sommets différents.couples of different peaks.
La valeur d'index indique celui des registres que l'on doit activer en fonction du type d'objet à définir. Pour un fonctionnement correct, les valeurs Y précédent les valeurs X. A l'exception des rectangles, le registre d'index est incrémenté après que les valeurs X aient été chargées dans les registres appropriés. Pour les rectangles, le registre d'index est incrémenté après les deux valeurs X et Y. A cet égard, le tableau I ci-dessous donne, pour chaque type d'objet, les registres X qui sont activés pour chaque valeur de registre d'index. Bien qu'on ne les ait pas représentés, les registres Y activés correspondent aux registres X activés. The index value indicates which of the registers to activate according to the type of object to be defined. For correct operation, the Y values preceding the X values. With the exception of the rectangles, the index register is incremented after the X values have been loaded into the appropriate registers. For rectangles, the index register is incremented after the two X and Y values. In this respect, Table I below gives, for each type of object, the X registers that are activated for each register value. 'index. Although not shown, the activated Y registers correspond to the activated X registers.
TABLEAU ITABLE I
Type Valeur de l'index lors du chargement d'objet 0 1 2 3 point X0,Xl,X2, X3 Xl,X2,X3,X0 X2,X3,XO,X1 X3,XO,Xl,X2 segment XO,Xl,X2 Xl,X2,X3 X2,X3,X0 X3,XO,X1 quadril. X0 Xl X2 X3 rectangle X0,Xl Xl,X2 X2,X3 X3,XO Une caractéristique importante que l'on peut voir sur le tableau I est que l'on inscrit toujours la coordonnée sur laquelle pointe le registre d'index. Le mode d'écriture (point, segment, triangle, etc.), indique également dans combien de registres (modulo 4) on devra ensuite écrire. Par exemple, si l'index vaut 2 à l'instant o l'on reçoit l'ordre d'inscription d'un segment selon X, on écrira dans trois registres, à savoir X2, (X2+1) modulo 4 et (X2+2) modulo 4, soit X2, X3 et X0. Une écriture de quadrilatère Type Value of the index when loading object 0 1 2 3 point X0, X1, X2, X3 X1, X2, X3, X0 X2, X3, X0, X1 X3, X0, X1, X2 XO segment, X1, X2 X1, X2, X3 X2, X3, X0 X3, X0, X1 quadril. X0 X1 X2 X3 rectangle X0, X1 X1, X2 X2, X3 X3, XO An important characteristic that can be seen in Table I is that the coordinate on which the index register is pointed is always written. The writing mode (point, segment, triangle, etc.), also indicates in how many registers (modulo 4) one will then have to write. For example, if the index is 2 at the moment when we receive the order of inscription of a segment according to X, we write in three registers, namely X2, (X2 + 1) modulo 4 and ( X2 + 2) modulo 4, ie X2, X3 and X0. A quadrilateral writing
selon Y n'affectera que Y2.according to Y will only affect Y2.
Les exemples 1 à 3 donnés ci-dessous expliqueront le rôle du registre d'index lors de la définition d'un objet. Chaque ligne de l'exemple indique l'opération d'écriture envisagée, la valeur du registre d'index utilisée par la machine à états de commande de chargement pour piloter le chargement des registres de coordonnées, les valeurs conservées dans les registres de coordonnées après l'inscription, ainsi que Examples 1 to 3 below will explain the role of the index register when defining an object. Each line of the example indicates the intended write operation, the value of the index register used by the load control state machine to drive the loading of the coordinate registers, the values stored in the coordinate registers after the inscription, as well as
la valeur d'index après achèvement- du cycle d'inscription. the index value after completion- the registration cycle.
Les mnémoniques des ordres d'écriture sont PntX ou PntY pour indiquer l'opération d'écriture d'un point, LineX ou LineY pour indiquer l'opération d'écriture d'un segment, TriX et TriY pour indiquer l'opération d'écriture d'un triangle, QuadX et QuadY pour indiquer l'opération d'écriture d'un quadrilatère et RectX et RectY pour indiquer l'opération The mnemonics of the write commands are PntX or PntY to indicate the operation of writing a point, LineX or LineY to indicate the writing operation of a segment, TriX and TriY to indicate the operation of writing a triangle, QuadX and QuadY to indicate the operation of writing a quadrilateral and RectX and RectY to indicate the operation
d'écriture d'un rectangle. L'opération effective d'inscrip- writing a rectangle. The actual registration operation
tion identifiée par chaque ordre d'inscription est en fait une opération sur plusieurs cycles d'horloge, comme on le décrira plus loin. Cependant, pour ces exemples, la durée The identification identified by each registration order is in fact an operation over several clock cycles, as will be described later. However, for these examples, the duration
d'exécution de l'ordre n'a pas d'importance. execution of the order does not matter.
Pour faciliter l'interprétation de ces exemples, on en décrira le premier. L'interprétation des exemples 2 et 3 se To facilitate the interpretation of these examples, we will describe the first. The interpretation of Examples 2 and 3 is
déduira facilement de cette description. will easily deduce from this description.
A l'instant o l'on reçoit l'ordre PntY(6), touts les registres de coordonnées contiennent la valeur "0" et l'index est égal à "1". L'ordre PntY(6) indique qu'un point de valeur 6 doit être chargé dans les registres de coordonnées Y. Comme l'index est un "1", le tableau I indique que la valeur en entrée (6) doit être mémorisée dans Y1, Y2, Y3 et YO. L'ordre suivant que l'on reçoit, qui est PntX(3) indique que l'on doit ensuite charger le point 3 At the instant we receive the order PntY (6), all the coordinate registers contain the value "0" and the index is equal to "1". The order PntY (6) indicates that a point of value 6 must be loaded in the Y coordinate registers. As the index is a "1", Table I indicates that the input value (6) must be memorized in Y1, Y2, Y3 and Y0. The next order we receive, which is PntX (3) indicates that we must then load point 3
dans Xl, X2, X3 et X0. Comme cela est le cas après toute- in X1, X2, X3 and X0. As is the case after all
inscription de coordonnées X indexées, on incrémente (modulo 4) l'index à la fin du cycle d'inscription. L'ordre d'inscription suivant est LineY(9). Pour ce chargement, l'index vaut 2, et le tableau I indique que l'on chargera 9 dans Y2, Y3 et YO. Le dernier ordre d'inscription est, dans cet exemple, LineX(7). Le tableau I indique que l'on chargera 7 dans X2, X3 et XO, après quoi on incrémentera à nouveau le registre d'index. L'état final des registres de coordonnées identifie deux sommets différents (trois sommets en (7, 9) et un sommet en (3,6)). Géométriquement, ceci correspond à un segment dont les extrémités se trouvent en (7,9) et en (3,6), comme on le souhaitait. inscription of indexed X coordinates, the index is incremented (modulo 4) at the end of the registration cycle. The next order of registration is LineY (9). For this loading, the index is worth 2, and the table I indicates that one will load 9 in Y2, Y3 and YO. The last order of registration is, in this example, LineX (7). Table I indicates that 7 will be loaded into X2, X3 and XO, after which the index register will be incremented again. The final state of the coordinate registers identifies two different vertices (three vertices at (7, 9) and a vertex at (3,6)). Geometrically, this corresponds to a segment whose extremities are in (7,9) and (3,6), as desired.
Exemple 1:Example 1
on veut spécifier un segment (3,6) (7,9) Index Index avant apres Ordre X0 Xl X2 X3 Y0 Y1 Y2 Y3 écriture écriture we want to specify a segment (3,6) (7,9) Index Index before order X0 Xl X2 X3 Y0 Y1 Y2 Y3 write write
- 0000 0 0 0 0 01 01-- 0000 0 0 0 0 01 01-
Écr. PntY(6) 0 0 0 0 6 6 6 6 01 01 Écr. PntX(3) 3 3 3 3 6 6 6 6 01 02 Écr. LineY(9) 3 3 3 3 9 6 9 9 02 02 Écr. LineX(7) 7 3 7 7 9 6 9 9 02 03 Esq. PntY (6) 0 0 0 0 6 6 6 6 01 01 Ecr. PntX (3) 3 3 3 3 6 6 6 6 01 02 Ecr. LineY (9) 3 3 3 3 9 6 9 9 02 02 Ecr. LineX (7) 7 3 7 7 9 6 9 9 02 03
Exemple 2Example 2
on veut spécifier un triangle (1,5) (9,3) (4,6) Index Index avant apres Ordre X0 Xl X2 X3 Y0 Y1 Y2 Y3 écriture écriture we want to specify a triangle (1,5) (9,3) (4,6) Index Index before order X0 Xl X2 X3 Y0 Y1 Y2 Y3 write writing
- 7 3 7. 7 9 6 9 9 03 03- 7 3 7. 7 9 6 9 9 03 03
Écr. TriY(5) 7 3 7 7 5 6 9 5 03 03 Écr. TriX(l) 1 3 7 1 5 6 9 5 03 00 Ecr. TriY(3) 1 3 7 1 3 3 9 5 00 00 Écr. TriX(9) 9 9 7 1 3 3 9 5 00 01 Écr. TriY(6) 9 9 7 1 3 6 6 5 01 01 Ecr. TriX(4) 9 4 4 1 3 6 6 5 01 02 Esq. TriY (5) 7 3 7 7 5 6 9 5 03 03 Ecr. TriX (l) 1 3 7 1 5 6 9 5 03 00 Ecr. TriY (3) 1 3 7 1 3 3 9 5 00 00 Ecr. TriX (9) 9 9 7 1 3 3 9 5 00 01 Ecr. TriY (6) 9 9 7 1 3 6 6 5 01 01 Ecr. TriX (4) 9 4 4 1 3 6 6 5 01 02
Exemple 3:Example 3
on veut spécifier un rectangle (0,7) (8,7) (8,1) (0,1) Index Index avant après Ordre X0 Xl X2 X3 Y0 Y1 Y2 Y3 écriture écriture we want to specify a rectangle (0,7) (8,7) (8,1) (0,1) Index Index before order X0 Xl X2 X3 Y0 Y1 Y2 Y3 write writing
-- 9 4 4 1 3 6 6 5 02 02- 9 4 4 1 3 6 6 5 02 02
Ecr. RectY(1) 9 4 4 1 3 6 1 1 02 03 Ecr. RectX(0) 0 4 4 0 3 6 1 1 03 00 Ecr. RectY(7) 0 4 4 O 7 7 1 1 00 01 Écr. RectX(8) 0 8 8 0 7 7 1 1 01 02 Bien que, dans l'exemple 1, le registre d'index soit arbitrairement à 1 lorsque l'on reçoit la première coordonnée, le registre d'index de la logique d'indexation 43 pourra être initialisé en fonction d'une valeur placée sur DataIn, si l'ordre en est donné ainsi par l'unité centrale de traitement (il y a lieu de remarquer que le fonctionnement correct du dispositif de la présente invention est totalement indépendant de la valeur initiale du registre d'index lorsque l'on déclenche une séquence de chargement). On suppose également, dans cet exemple, que XRasOff et YRasOff contiennent la valeur 0, afin de ne pas Esq. RectY (1) 9 4 4 1 3 6 1 1 02 03 Ecr. RectX (0) 0 4 4 0 3 6 1 1 03 00 Ecr. RectY (7) 0 4 4 O 7 7 1 1 00 01 Ecr. RectX (8) 0 8 8 0 7 7 1 1 01 02 Although, in example 1, the index register is arbitrarily set to 1 when the first coordinate is received, the index register of the logic d The indexing 43 may be initialized according to a value placed on DataIn, if the order is so given by the central processing unit (it should be noted that the correct operation of the device of the present invention is totally independent of the initial value of the index register when a loading sequence is triggered). It is also assumed in this example that XRasOff and YRasOff contain the value 0, so as not to
compliquer la description du fonctionnement de ces circuits. complicate the description of the operation of these circuits.
La machine à états de commande de chargement 33, qui coopère avec la machine à états de logique de comparaison 49, commande un processus en pipeline qui, outre le chargement des divers registres décrits plus haut, commande également la sélection des registres et des multiplexeurs nécessaire au fonctionnement 'correct de la logique de comparaison et mémoire de résultat 47 et de la logique de génération d'états 51. En outre, lorsque l'on souhaite ne pas utiliser l'option de décalage de trame que permet la présente invention, il est nécessaire, avant d'exécuter les comparaisons par la logique de comparaison et mémoire de résultats 47, de forcer l'addition de zéros aux données incidentes pour mémorisation dans les registres de coordonnées X et Y. A cet égard, les signaux de commande "MUX Enable" et "Register Enable" produits par la machine à états de commande de chargement 33 et par la machine à états de logique de comparaison 49 peuvent être dérivés de la table de séquencement de la figure 9 et de la liste ci-dessous montrant l'ordre d'exécution, par la section d'étagement, des coordonnées 15 pour cbaque coordonnée Y introduite: i0 1. Réception sur DataIn de la coordonnée Y. 2. Ajout des 16 bits inférieurs de la cordonnée Y recue a) à YRasOff (16 bits inférieurs), ou b) aux 16 bits inférieurs de YOL à Y3L référencés par (index-1), The load control state machine 33, which cooperates with the comparison logic state machine 49, controls a pipeline process which, in addition to loading the various registers described above, also controls the selection of the necessary registers and multiplexers. the correct operation of the comparison logic and result memory 47 and the state generation logic 51. In addition, when it is desired not to use the frame shift option that the present invention allows, It is necessary, before performing comparisons by the comparison logic and result memory 47, to force the addition of zeros to the incident data for storage in the X and Y coordinate registers. In this respect, the control signals " MUX Enable "and" Register Enable "produced by the load control state machine 33 and the compare logic state machine 49 may be derived from the FIG. 9 and the list below showing the order of execution, by the staging section, of the coordinates 15 for each introduced Y coordinate: i0 1. DataIn reception on the Y coordinate. 2 Adding the lower 16 bits of the Y-string received a) to YRasOff (16 lower bits), or b) to the lower 16 bits of YOL to Y3L referenced by (index-1),
ou c) à des zéros.or c) zeros.
3. Ajout des 16 bits supérieurs de la cordonnée Y recue: a) à YRasOff (16 bits supérieurs étendu en signe), ou b) aux 16 bits supérieurs de YOH à Y3H référencés par (index-1), ou c) à des zéros, et comparaison du résultat de l'étape (2) aux 3. Adding the top 16 bits of the Y-string received: a) to YRasOff (upper 16 bits extended in sign), or b) to the upper 16 bits of YOH to Y3H referenced by (index-1), or c) to zeros, and comparing the result of step (2) with
autres coordonnées.other coordinates.
4. Comparaison du résultat de l'étape (2) à YClipMin, YTestMin, YClipMax et YTestMax et examen des 18 bits supérieurs du résultat des étapes (2) et (3) pour 4. Comparison of the result of step (2) with YClipMin, YTestMin, YClipMax and YTestMax and examination of the upper 18 bits of the result of steps (2) and (3) for
détecter s'ils sont ou non tous à '1' ou à '0'. detect whether or not they are all '1' or '0'.
Aux étapes 2 et 3 ci-dessus, les choix (a), (b) ou (c) sont opérés de la manière suivante: pour des inscriptions non relatives dans un registre indexé (PNT, LINE, TRI, QUAD, RECT), on fait le choix (a). Pour une inscription relative dans un registre indexé (RELPNT, RELLINE, RELTRI, RELQUAD, RELRECT), on fait le choix (b). Pour toutes les autres inscriptions, on sélectionne le choix (c). Le chargement In steps 2 and 3 above, the choices (a), (b) or (c) are made as follows: for non-relative entries in an indexed register (PNT, LINE, TRI, QUAD, RECT), we make the choice (a). For a relative inscription in an indexed register (RELPNT, RELLINE, RELTRI, RELQUAD, RELRECT), one makes the choice (b). For all other inscriptions, select the choice (c). The loading
d'une coordonnée X se déroule de la même façon. an X coordinate is the same.
En gardant à l'esprit les descriptions et définitions Keeping in mind the descriptions and definitions
énoncées plus haut, et en supposant que la valeur du registre d'index de la logique d'indexation 43 est "01" et que les registres (XO,Y0) à (X3,Y3) décrits plus haut à propos de la figure 4 sont tous entièrement à zéro, la séquence d'événements que l'on va maintenant décrire permet de charger les registres de manière à définir un segment dont les extrémités ont pour coordonnées X,Y (3,6) et (7,9), above, and assuming that the value of the index register of the indexing logic 43 is "01" and that the registers (XO, Y0) to (X3, Y3) described above with respect to FIG. are all entirely zero, the sequence of events that will now be described makes it possible to load the registers so as to define a segment whose ends have for coordinates X, Y (3,6) and (7,9),
comme dans le cas de l'exemple 1.as in the case of Example 1.
Au cycle d'horloge n 0O, l'ordre d'écriture PntY(6) place la valeur "6" sur DataIn, et fait en sorte que l'adresse de registre appliquée en entrée à la machine à états de commande de chargement 33 contienne une valeur indiquant que la donnée incidente est un point Y. Au cycle d'horloge n l (on se référera à la figure 3), le multiplexeur 36 reçoit l'ordre de sélectionner les seize bits de rang inférieur de DataIn et les multiplexeurs 35 (c'est-à-dire les multiplexeurs 35a et 35b) et 40, et la porte logique 42, reçoivent l'ordre de transmettre les seize bits inférieurs de YRasOff. Ainsi, pendant le cycle d'horloge n l, l'additionneur 31 ajoute entre elles les valeurs de sortie du multiplexeur 36 et de la porte logique 42 et délivre le résultat sur sa sortie. A la fin du cycle d'horloge n l, les registres Y0L à Y3L sont activés et chargés par la valeur provenant de l'additionneur 31, c'est-à- dire la valeur 6, qui représente les bits d'ordre At clock cycle n 0O, the write command PntY (6) sets the value "6" to DataIn, and causes the register address inputted to the load control state machine 33 contains a value indicating that the incident data is a point Y. At the clock cycle n1 (refer to FIG. 3), the multiplexer 36 receives the order to select the sixteen lower-order bits of DataIn and the multiplexers 35. (i.e., the multiplexers 35a and 35b) and 40, and the logic gate 42, are instructed to transmit the lower sixteen bits of YRasOff. Thus, during the clock cycle n 1, the adder 31 adds the output values of the multiplexer 36 and the logic gate 42 to each other and delivers the result on its output. At the end of the clock cycle n1, the registers Y0L to Y3L are activated and loaded by the value coming from the adder 31, that is to say the value 6, which represents the order bits
inférieur de la valeur 6 qui se trouvait sur DataIn. lower than the value 6 that was on DataIn.
Au cycle d'horloge n 2, le multiplexeur 36 reçoit l'ordre de sélectionner les seize bits de rang supérieur de DataIn, et les multiplexeurs 35 et 40, ainsi que la porte logique 42, reçoivent l'ordre de transmettre les seize bits supérieurs, étendus en signe, de YRasOff. Ainsi, pendant le cycle d'horloge n 2, l'additionneur 31 ajoute entre elles les sorties du multiplexeur 36 et de la porte logique 42 et délivre sur sa sortie le résultat. A la fin du cycle d'horloge n 2, les registres YOH à Y3H sont activés et chargés par la valeur provenant de la sortie de At clock cycle n 2, multiplexer 36 receives the order to select the top sixteen bits of DataIn, and multiplexers 35 and 40, as well as logic gate 42, are instructed to transmit the upper sixteen bits. , extended in sign, of YRasOff. Thus, during the clock cycle n 2, the adder 31 adds between them the outputs of the multiplexer 36 and the logic gate 42 and delivers on its output the result. At the end of the clock cycle n 2, the registers YOH to Y3H are activated and loaded by the value coming from the output of
l'additionneur 31.the adder 31.
Au cycle d'horloge n 3, l'ordre d'écriture PntX(3) place la valeur 3 sur DataIn, et fait en sorte que l'adresse de registre appliquée en entrée à la machine à états de commande de chargement 33 contienne une valeur indiquant que la donnée incidente est un point X. Egalement au cycle d'horloge n 3, le multiplexeur 36 reçoit l'ordre de sélectionner les seize bits de rang inférieur de DataIn et les multiplexeurs 35 et 40, ainsi que la porte logique 42, reçoivent l'ordre de transmettre les seize bits inférieurs de XRasOff. Lors du cycle d'horloge n 3, l'additionneur 31 ajoute entre elles les sorties du multiplexeur 36 et de la porte logique 42 et délivre sur sa sortie le résultat. A la fin du cycle d'horloge n 3, les registres X0L à X3L sont activés et chargés par la valeur provenant de l'additionneur 31, c'est-à-dire la valeur 3 qui représente les bits d'ordre At clock cycle n 3, the PntX write command (3) sets the value 3 to DataIn, and causes the register address inputted to the load control state machine 33 to contain a value indicating that the incident data is a point X. Also at clock cycle n 3, the multiplexer 36 receives the order to select the sixteen lower rank bits of DataIn and the multiplexers 35 and 40, as well as the logic gate 42 , receive the command to transmit the lower sixteen bits of XRasOff. During the clock cycle n 3, the adder 31 adds between them the outputs of the multiplexer 36 and the logic gate 42 and delivers on its output the result. At the end of the clock cycle n 3, the registers X0L to X3L are activated and loaded by the value coming from the adder 31, that is to say the value 3 which represents the order bits
inférieur de la valeur 3 qui se trouvait sur DataIn. lower than the value 3 that was on DataIn.
Au cycle d'horloge n 4, le multiplexeur 36 reçoit l'ordre de sélectionner les seize bits de rang supérieur de DataIn et les multiplexeurs 35 et 40, ainsi que la porte logique 42, reçoivent l'ordre de laisser passer les seize bits At clock cycle 4, the multiplexer 36 receives the order to select the sixteen high order bits of DataIn and the multiplexers 35 and 40, as well as the logic gate 42, are instructed to pass the sixteen bits.
supérieurs étendus en signe de XRasOff. superiors extended in sign of XRasOff.
Au cycle d'horloge n 4, l'additionneur 31 ajoute entre elles les sorties du multiplexeurs 36 et de la porte logique 42 et délivre sur sa sortie le résultat. Au cours du cycle d'horloge n 4, les registres XOH à X3H sont activés et chargés par la valeur provenant de la sortie de At the clock cycle n 4, the adder 31 adds between them the outputs of the multiplexers 36 and the logic gate 42 and delivers on its output the result. During the clock cycle n 4, the registers XOH to X3H are activated and loaded by the value coming from the output of
l'additionneur 31, et l'on incrémente'le registre d'index. the adder 31, and the index register is incremented.
Au cycle d'horloge n05, l'ordre d'inscription LineY(9) place la valeur 9 sur DataIn, et fait en sorte que l'adresse de registre appliquée en entrée à la machine à états de commande de chargement 33 contiennent une valeur indiquant que la donnée en entrée est un segment Y. Au cycle d'horloge n 5, le multiplexeur 36 reçoit l'ordre de sélectionner les seize bits d'ordre inférieur sur DataIn et les multiplexeurs 35 et 40, ainsi que la porte logique 42, reçoivent l'ordre de transférer les seize bits inférieurs de YRasOff. Lors du cycle d'horloge n 5, l'additionneur 31 ajoute entre elles les valeurs en sortie du multiplexeur 36 et de la porte logique 42 et délivre sur sa sortie le résultat. A la fin du cycle d'horloge n 5, les registres Y2L, Y3L et Y0L sont activés et chargés par la valeur provenant de l'additionneur 31, c'est-à-dire 9, qui représente les bits d'ordre inférieur de la valeur 9 qui se trouvait sur DataIn. Au cycle d'horloge n 6, le multiplexeur 36 reçoit l'ordre de sélectionner les seize bits de rang supérieur de DataIn et les multiplexeurs 35 et 40, ainsi que la porte logique 42, reçoivent l'ordre de transmettre les seize bits supérieurs, étendus en signe, de YRasOff. Au cycle d'horloge n 6, l'additionneur 31 ajoute entre elles les sorties du multiplexeur 36 et de la porte logique 42 et délivre le résultat sur sa sortie. Lors du cycle d'horloge-n 6, les registres Y2H, Y3H et Y0H sont activés et chargés par la At clock cycle n05, the registration order LineY (9) sets the value 9 to DataIn, and causes the register address inputted to the load control state machine 33 to contain a value indicating that the input data is a Y segment. At clock cycle n 5, the multiplexer 36 receives the order to select the sixteen lower order bits on DataIn and the multiplexers 35 and 40, as well as the logic gate 42. , receive the command to transfer the lower sixteen bits of YRasOff. During the clock cycle n 5, the adder 31 adds between them the output values of the multiplexer 36 and the logic gate 42 and delivers on its output the result. At the end of the clock cycle n 5, the registers Y2L, Y3L and Y0L are activated and loaded by the value coming from the adder 31, that is to say 9, which represents the lower order bits of the value 9 that was on DataIn. At clock cycle 6, the multiplexer 36 receives the order to select the sixteen top-rank bits of DataIn and the multiplexers 35 and 40, as well as the logic gate 42, receive the order to transmit the upper sixteen bits, extended in sign, of YRasOff. At the clock cycle n 6, the adder 31 adds between them the outputs of the multiplexer 36 and the logic gate 42 and delivers the result on its output. During the clock-n cycle 6, the registers Y2H, Y3H and Y0H are activated and loaded by the
valeur provenant de la sortie de l'additionneur 31. value from the output of the adder 31.
Au cycle d'horloge n:7, l'ordre d'inscription LineX(7) place la valeur 7 sur DataIn, et fait en sorte que l'adresse de registre appliquée en entrée à la machine à états de commande de chargement 33 contienne une valeur indiquant que la donnée en entrée est un segment X. De façon semblable, les registres X2L, Y3L et Y0L sont, en fin de compte, activées de manière à charger la valeur 7, après quoi on incrémente le registre d'index de 2 à 3 de la manière At clock cycle n: 7, the LineX (7) registration command places the value 7 on DataIn, and causes the register address inputted to the load control state machine 33 to contain a value indicating that the input data is a segment X. Similarly, the registers X2L, Y3L and Y0L are ultimately activated to load the value 7, after which the index register of 2 to 3 of the way
exposée plus haut.exposed above.
Le chargement des registres de coordonnées X/Y pour d'autres objets suit le même processus en pipeline que celui que l'on vient de décrire. Pour des triangles et des rectangles, des exemples sont donnés aux exemples 2 et 3 ci-dessus. On charge également de la même manière les objets Loading X / Y coordinate registers for other objects follows the same pipeline process as the one just described. For triangles and rectangles, examples are given in Examples 2 and 3 above. Objects are also loaded in the same way
constitués par des quadrilatères.constituted by quadrilaterals.
Les registres de décalage de trame 41 et les registres de coordonnées de cadrage 39 sont chargés d'une manière semblable à celle, décrite plus haut, des registres de coordonnées X/Y 37; cependant, la porte logique 42 reçoit pour chaque cycle d'addition un ordre de forçage à zéro Frame shift registers 41 and frame coordinate registers 39 are loaded in a manner similar to that described above for X / Y coordinate registers 37; however, the logic gate 42 receives for each addition cycle a forcing order at zero
(c'est-à-dire que l'on a un chargement absolu). (that is, we have an absolute load).
La présente invention, en utilisant le registre d'index de la logique d'indexation 43, exécute également un adressage relatif qui permet de disposer d'une procédure The present invention, by using the index register of the indexing logic 43, also executes a relative addressing which makes it possible to have a procedure
efficace pour afficher des duplicata d'objets. effective for displaying duplicate objects.
L'adressage relatif sera mieux décrit au moyen de Relative addressing will be best described by means of
l'exemple suivant.the following example.
Les trois sommets d'un triangle peuvent être définis par (XO,Y0), (Xl,Y1) et (X2,Y2). Pour dupliquer 50 fois cet objet en différents endroits de l'affichage, il serait nécessaire de mémoriser 150 couples de coordonnées X,Y. En utilisant un adressage relatif, un sommet est défini en tant qu'origine (XO,YO), et le second et le troisième sommet sont définis en tant que décalages par rapport au sommet précédent, c'est-à-dire sous la forme (AX01, AYO1) et (AX23, AY23). Pour dupliquer 50 fois l'objet, on n'aura besoin de mémoriser que les deux couples de décalages et une nouvelle valeur (X0,YO) pour chaque duplicata (ce qui correspondra, au total, à cinquante origines d'objet plus The three vertices of a triangle can be defined by (XO, Y0), (Xl, Y1) and (X2, Y2). To duplicate this object 50 times in different places of the display, it would be necessary to store 150 pairs of X, Y coordinates. By using relative addressing, a vertex is defined as an origin (XO, YO), and the second and third vertex are defined as offsets from the previous vertex, i.e., in the form of (AX01, AYO1) and (AX23, AY23). To duplicate the object 50 times, it will be necessary to memorize only the two pairs of offsets and a new value (X0, YO) for each duplicate (which will correspond, in total, to fifty object origins plus
deux couples de décalage).two offset pairs).
Ceci peut être réalisé, avec la présente invention, en commençant par mémoriser le sommet du couple de coordonnées d'origine dans l'un des couples de registres des registres de coordonnées X/Y 37 par utilisation d'une instruction de chargement indexé (par exemple PntY, PntX). Les deux sommets décalés sont ensuite mémorisés par rapport aux sommets sur lequel pointe la valeur courante du registre d'index. On obtient ceci en sélectionnant le sommet sur lequel pointe (index-l) et en l'ajoutant à DataIn avant chargement du registre. On sera certain que le sommet référencé par (index-1) aura été chargé sur l'inscription précédemment indexée indépendamment du type d'inscription (PNT, LINE, etc.), et donc qu'il constituera le sommet par rapport This can be achieved, with the present invention, by first storing the vertex of the original coordinate pair in one of the pairs of registers of the X / Y coordinate registers 37 by using an indexed loading instruction (by example PntY, PntX). The two offset vertices are then stored relative to the vertices on which the current value of the index register points. This is done by selecting the vertex on which it is pointing (index-1) and adding it to DataIn before loading the register. We will be sure that the vertex referenced by (index-1) will have been loaded on the previously indexed registration regardless of the type of inscription (PNT, LINE, etc.), and therefore it will be the top relative to
auquel le décalage relatif s'applique. to which the relative offset applies.
Logique de comparaison et logique de mémorisation de résultat 47 On va maintenant décrire la logique de comparaison et logique de mémorisation de résultat 47, en référence aux figures 7 et 8. La logique de comparaison etlogique de szneITA xnap saT azZua uosT=22dmoO aun,p syFq xnap rns qvinsez un es$Tz:ouI 94pTsuoO azsTBa ali 'JTq un ans Teilnse un qUasTOUXuXo tnb 'xelsaL/uTwseA; xe,4seAX /UTwqSlX 'XTNdTiOX/uTNdTTO.X 'xeWdTTDOX/uTWdTTDX u-u;Duoo SZ suosT'eeduoo sap uoT;deDxaT 1 'II nelaTqe aT sunC úX:' ZA gx X- úX: ZXZZ EX:x ú úX:TIX ITZ Zx:lx gtP ZX:IX Ozu Oú úX:ox IPU úX:OX 6TU zX:oX o0 ZX:'OX 8Te TX:0X 6EU IX:ox LIU xweNsaLI:ex 8úE xewsalX:úX 9IH xNdTITOX: X LEU xedTTIDX:úX I' SZ uTNdTIDX:úX E uTWdTiOX:úX EúT Xe4salx:ExPeuE XNqsaix:Ex giu xeNldTTD,: ZúE xewdTTOX:ZX TII uTsoaI: z ZEU uTr;salx:gx 0IE OZ uTdtIDA:Z Z EU uTdTTIDX:ZX 6U xesaX:ITx 0OU xvqsajX:TX 8U xedTTIDX:IX6ZE xeNdTIDX:IX LU uTKsqaLX:I 8ZE uT sIX:IX 9U uTdtIDX: TXLZt uTdTTIDX:IX Su Sl xewsaix: 0X 9ZU xexsalx:ox fe xeWdTID:OX ZE xeWdTTIDX:OX úe uTNsaX:-0oxPZE uTWsZax:0Ox Z uTWdIDTT:0 úZE UTdTIOdX:OX lu snossap-To II neplqe; eI suep flnbTPUT e2a-ueUI tl aP bZI e IZI sanaeedwoD sGT ed seaanDe;;a suoTIeZGdo sap seinsgz sal 'u9ss:OUIUI pU e I1 salqSTB7a sa ú * nbT IT A) OA U ? Ta SGIISTbeZ sep la 9bl 1ú1 san@xa[d nul sap 'bEI e IZI s.in 2duioD sGp la (L GnBTg ZTOA) 601 la L0oI '01 'ú0I '10I sznaXaTdTInuI sap eanqTqsuoo qsa LP TelnsaI ap uoTq2STZou1UI 6Z indiquées. Si la valeur à gauche des ":" est supérieure à la valeur à droite des ":", la valeur binaire mémorisée dans le registre correspondant sera "10"; si la valeur à gauche des "-:" est inférieure à la valeur à droite des ":", la valeur binaire mémorisée dans le registre correspondant sera "01"; si les deux valeurs sont égales, la valeur binaire mémorisées dans le registre correspondant sera "00". Pour XClipMin, YClipMin, XTestMin et YTestMin, si la valeur de coordonnée comparée est inférieure, on mémorise un "1", et dans le cas contraire on mémorise un "0". Pour XClipMax et YClipMax, XTestMax et YTestMax, si la valeur comparée est supérieure, on mémorise un "1", et dans le cas contraire on Comparison logic and result storage logic 47 The comparison logic and result storage logic 47 will now be described with reference to FIGS. 7 and 8. The comparison logic and logic of szneITA xnap saT azZua uosT = 22dmoO aun, p • • • • • ••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• xe, 4seAX / UTwqSlX 'XTNdTiOX / uTNdTTO.X' xeWdTTDOX / uTWdTTDX uu; Duoo SZ suosT'eeduoo sap uoT; deDxaT 1 'II nelTaTe aT sunC úX:' ZA gx X- úX: ZXZZ EX: x ú úX: TIX ITZ Zx: lx gtP ZX: IX Ozu Where úX: ox IPU úX: OX 6TU zX: oX o0 ZX: 'OX 8Te TX: 0X 6EU IX: ox LIU xweNsaLI: ex 8uE xewsalX: úX 9IH xNdTITOX: X LEU xedTTIDX: úX I 'SZ uTNdTIDX: ÜX UTWdTiOX: úX EÜT Xe4salx: ExPéE XNqsaix: Ex giu xeNldTTD ,: ZúE xewdTTOX: ZX TII uTsoaI: z ZEU uTr; salx: gx 0IE OZ uTdtIDA: ZZ EU uTdTTIDX: ZX 6U xesaX: ITx 0OU xvqsajX: TX 8U xedTTIDX: IX6ZE xeNdTIDX: IX LU uTKsqaLX: I 8ZE uT sIX: IX 9U uTdtIDX: TXLZt uTdTTIDX: IX Su Sl xewsaix: 0X 9ZU xexsalx: ox fe xeWdTID: OX ZE xeWdTTIDX: OX úe uTNsaX: -0oxPZE uTWsZax: 0Ox Z uTWdIDTT: 0 úZE UTdTIOdX: OX read snossap-To II neplqe; eI suep flnbTPUT e2a-ueUI tl aP bZI e IZI sanaeedwoD sGT ed seaanDe ;; suoTIeZGdo sap breastsgz sal 'u9ss: YES TO HIS ILLQSTB7a sa ú * nbT IT A) OA U? Ta SGIISTbeZ sep la 9bl 1ú1 san @ xa [of no sap 'BEE IZI s.in 2duioD sGp the (LGnBTg ZTOA) 601 the L0oI '01' ú0I '10I sznaXaTdTInuI sap eanqTqsuoo qsa LP TelnsaI ap uoTq2STZou1UI 6Z indicated. If the value to the left of ":" is greater than the value to the right of ":", the binary value stored in the corresponding register will be "10"; if the value to the left of "-:" is less than the value to the right of ":", the binary value stored in the corresponding register will be "01"; if the two values are equal, the binary value stored in the corresponding register will be "00". For XClipMin, YClipMin, XTestMin and YTestMin, if the value of the compared coordinate is lower, a "1" is memorized, and in the contrary case a "0" is memorized. For XClipMax and YClipMax, XTestMax and YTestMax, if the compared value is higher, we memorize a "1", and in the contrary case we
mémorise un "0".memorize a "0".
Les valeurs appliquées en entrée aux multiplexeurs 101, 103, 105, 107 et 109 proviennent des registres de coordonnées X/Y 37, à savoir XOL,YOL à X3L,Y3L, des registres de coordonnées de cadrage 39, à savoir XClipMin, YClipMin et XClipMax,YClipMax, et de la commande de fenêtre de test 45, à savoir XTestMin, YTestMin, XTestMax et YTestMax. Bien entendu, à tout instant donné, les valeurs appliquées en entrée aux multiplexeurs 101, 103, 105, 107 et 109 sont soit des valeurs X soit des valeurs Y, comme expliqué plus haut, en fonction d'un signal "MUX Enable" produit par la machine à états de commande de comparaison The input values to the multiplexers 101, 103, 105, 107 and 109 are derived from the X / Y coordinate registers 37, namely XOL, YOL to X3L, Y3L, framing coordinate registers 39, namely XClipMin, YClipMin and XClipMax, YClipMax, and test window control 45, namely XTestMin, YTestMin, XTestMax and YTestMax. Of course, at any given instant, the values applied to the inputs of the multiplexers 101, 103, 105, 107 and 109 are either X values or Y values, as explained above, as a function of a "MUX Enable" signal. by the comparison control state machine
49.49.
Le comparateur 121 compare la sortie du multiplexeur 101 et celle du multiplexeur 109. De la même façon, les comparateurs 122 à 124 comparent les sorties des multiplexeurs 103, 105 et 107, d'une part, et celles-du multiplexeur 109, d'autre part. Les sorties des comparateurs 121 à 124 sont appliquées en entrée aux multiplexeurs 131 à 146, qui dirigent les données appropriées vers les registres Ri à R44, qui seront chargés de la manière que l'on va The comparator 121 compares the output of the multiplexer 101 and that of the multiplexer 109. In the same way, the comparators 122 to 124 compare the outputs of the multiplexers 103, 105 and 107, on the one hand, and those of the multiplexer 109, on the other hand. somewhere else. The outputs of the comparators 121 to 124 are input to the multiplexers 131 to 146, which direct the appropriate data to the registers Ri to R44, which will be loaded in the manner that one is going to.
maintenant indiquer.now indicate.
La sortie du comparateur 121 est reliée aux multiplexeurs 131 à 135, 139 et 143, qui sont utilisés pour charger les registres Ri, R2, R3, R4, R5, R9, R13, R17, R18 et R19 par des valeurs X, et les registres R23, R24, R25, R25, R26, The output of the comparator 121 is connected to the multiplexers 131 to 135, 139 and 143, which are used to load the registers Ri, R2, R3, R4, R5, R9, R13, R17, R18 and R19 by X values, and the registers R23, R24, R25, R25, R26,
264286Y264286Y
R27, R31, R35, R39, R40 et R41 par des valeurs Y, comme illustré sur la figure 8 et sur le tableau III plus bas. Sur le tableau III, A, B, C et D renvoient aux comparateurs 121, R27, R31, R35, R39, R40 and R41 by Y values, as illustrated in Figure 8 and in Table III below. In Table III, A, B, C and D refer to comparators 121,
122, 123, et 124, respectivement.122, 123, and 124, respectively.
La sortie du comparateur 122 est reliée au multiplexeur 132, 135, 136, 137, 138, 140, et 144 qui sont utilisées pour charger les registres R2, R5, R6, R7, R8, R10, R14, R17, R20 et R21 pour les valeurs X et les registres R24, R27, R28, R29, R30, R32, R36, R39, R42 et R43 pour les valeurs Y, The output of the comparator 122 is connected to the multiplexer 132, 135, 136, 137, 138, 140, and 144 which are used to load the R2, R5, R6, R7, R8, R10, R14, R17, R20 and R21 registers for the values X and the registers R24, R27, R28, R29, R30, R32, R36, R39, R42 and R43 for the values Y,
comme illustré sur la figure 8 et sur le tableau III. as shown in Figure 8 and Table III.
La sortie du comparateur 12-3 est reliée aux multiplexeurs 133, 137, 139, 140, 142 et 145, qui sont utilisés pour charger les registres R3, R7, R9, R10, R12, R15, R18, R20, et R22 par des valeurs X et les registres R25, R29, R31, R32, R34, R37, R40, R42 et R44 par des valeurs Y, comme The output of the comparator 12-3 is connected to the multiplexers 133, 137, 139, 140, 142 and 145, which are used to load the registers R3, R7, R9, R10, R12, R15, R18, R20, and R22 by values X and the registers R25, R29, R31, R32, R34, R37, R40, R42 and R44 by Y values, as
illustré sur la figure 8 et sur le tableau III. illustrated in Figure 8 and Table III.
La sortie du comparateur 124 est reliée aux multiplexeurs 134, 138, 142, 143, 144, 145, et 146, qui sont utilisés pour charger les registres R4, R8, R12, R13, R14, R15, R16, R19, R21 et R22 par des valeurs X et les registres R26, R30, R34, R35, R36, R37, R38, R41, R43 et R44 par des valeurs Y, comme The output of the comparator 124 is connected to the multiplexers 134, 138, 142, 143, 144, 145, and 146, which are used to load the registers R4, R8, R12, R13, R14, R15, R16, R19, R21 and R22. by X values and the registers R26, R30, R34, R35, R36, R37, R38, R41, R43 and R44 by Y values, as
illustré sur la figure 8 et le tableau III. illustrated in Figure 8 and Table III.
Les comparaisons effectuées et mémorisées sont celles dont a besoin le bloc de séquencement des coordonnées 17 et le bloc d'adressage fonctionnel 19 pour exécuter correctement les opérations possibles (restitution d'un quadrilatère ou transfert de bloc d'image) et effectuer le The comparisons made and stored are those required by the coordinate sequencing block 17 and the functional addressing block 19 to correctly execute the possible operations (rendering of a quadrilateral or image block transfer) and performing the
cadrage approprié.appropriate framing.
Machine à états de commande de comparaison 49 La machine à états de commande de comparaison 49 est une logique qui active les divers comparateurs, multiplexeurs et registres de la logique de comparaison et mémoire de résultat 47. Le tableau III ci-dessous donne une table de vérité pour le chargement absolu des registres de coordonnées et de cadrage par la machine à états de commande de comparaison 49 pour les cycles d'horloge n 0O et n l, les comparateurs 121 à 124 étant référencés respectivement A, B, C et D. Le tableau III donne la sortie de chaque comparateur 121 à 124 pour chacune des entrées XOL à X3L, XClipMin, XClipMax, XTestMin et XTestMax. A cet égard, on notera que la figure 8 montre que les sorties des multiplexeurs 101, 103, 105, et 107 sont appliquées en entrée d'un côté des comparateurs 121 à 124, tandis que la sortie du comparateur 109 est appliquée en entrée de l'autre côté. Pour l'homogénéité, il est- nécessaire de mémoriser les comparaisons de XOL avec XlL, de XlL avec X2L et de X2L avec Comparative control state machine 49 The comparison control state machine 49 is a logic that activates the various comparators, multiplexers, and registers of the comparison logic and result memory 47. Table III below gives a table of truth for the absolute loading of the coordinate and framing registers by the comparison control state machine 49 for the clock cycles n 0 0 and n 1, the comparators 121 to 124 being referenced respectively A, B, C and D. The Table III gives the output of each comparator 121 to 124 for each of the XOL inputs X3L, XClipMin, XClipMax, XTestMin and XTestMax. In this regard, it will be noted that FIG. 8 shows that the outputs of the multiplexers 101, 103, 105, and 107 are input to one side of the comparators 121 to 124, while the output of the comparator 109 is applied to the input of the other side. For homogeneity, it is necessary to memorize comparisons of XOL with XlL, XlL with X2L and X2L with
X3L, etc. et non l'inverse (par exemple, de X1L avec XOL). X3L, etc. and not the other way around (for example, X1L with XOL).
Pour cette raison, lorsque la colonne référencée "inversion" contient un "oui", on inverse les sorties des comparateurs 121 à 124. Ceci est géré par l'entrée droite des multiplexeurs 131 à 146. La sortie des comparateurs 121 à 124 indiqués est directement appliquée en entrée du côté gauche des multiplexeurs 131 à 146. L'entrée droite du multiplexeur reçoit, dans l'ordre inverse des bits, la For this reason, when the column referenced "inversion" contains a "yes", the outputs of the comparators 121 to 124 are reversed. This is managed by the right input of the multiplexers 131 to 146. The output of the comparators 121 to 124 indicated is directly applied to the input of the left side of the multiplexers 131 to 146. The right input of the multiplexer receives, in the inverse order of the bits, the
valeur sur deux bits en sortie du comparateur indiqué. value on two bits at the output of the indicated comparator.
Ainsi, la colonne désignée "inversion" devient la table de vérité pour les lignes de sélection de multiplexeur des multiplexeurs 131 à 146, pour un chargement en coordonnées absolues. Thus, the column designated "inversion" becomes the truth table for the multiplexer selection lines of the multiplexers 131 to 146, for a loading in absolute coordinates.
TABLEAU IIITABLE III
Comparateur Comparaison 'Inversion N cycle Inscription dans XO B XOL:X1L oui O C XOL:X2L oui O D XOL:X3L oui O A XOL:XClipMin oui 1 B XOL:XTestMin oui 1 C XOL:XClipMax oui 1 D XOL:XTestMax oui 1 I uou EX:uTw4SeLX a I Iuou qIX:UTNqsaLX a 0 uou UEX:UTNdTTOX O uou TlX:UTWdtTOX a 0 uou 7IX:UTWdT DX X 0 uou l0X:UTdTiToX V uTNdITTOX sup uoTqdTZDsuI Oú I i Fno xefNsaix: úx a t -Fnoa TriFno xeNdTIOX:LX 0 I Tno u-$sex:qúx a i TFno uTdTIDX:ILX V sz o uou zX:IEX 0 o uou IIX:IúX 0 uou IoX:IúX úX suVp UoTqdToSui I Fno x2dIsoX:ZX a I uFnoTex^d x:qzx D I Fno UT qaI@X:qZX Z I Fno UT dTIDX:ZX V 0 Tfno lúX:ZX a 0 uou IIX:ZX 0 uou loX:ZX ZX suep UOTqdTZDSuI I Fno xedNsaX: lîX a I Fno xexdTiOX:UlX 0 I Tno UTIsaIX:IlX s I Tno uTNdTTIDX:IX V 0 Fno lX:qiX a O fno IZX:IX D S 0 uou qoX:IIX IX suep uoTqdT2DsuI UOTSA oNAUI uosTeuIUOS eduioD ana na-duioD 198tZ9úú Comparator Comparison 'Inversion N cycle Inscription in XO B XOL: X1L yes OC XOL: X2L yes OD XOL: X3L yes OA XOL: XClipMin yes 1 B XOL: XTestMin yes 1 C XOL: XClipMax yes 1 D XOL: XTestMax yes 1 I or EX: uTw4SeLX to I uou qIX: UTNqsaLX to 0 uou UEX: UTNdTTOX O uou TlX: UTWdtTOX to 0 uou 7IX: UTWdT DX X 0 uou l0X: UTdTiToX V uTNTITTOX sup uoTqdTZDsuI o I i Fno xefNsaix: úx a t -Fnoa TriFno xeNdTIOX : LX 0 I Tno u- $ sex: q ux ai TFno uTdTIDX: ILX V sz o u or zX: IEX 0 o u or IIX: IUX 0 uou IoX: IUX úX suVp UoTqdToSui I Fno x2dIsoX: ZX to I uFnoTex ^ dx: qzx DI Fno UT qaI @ X: qZX ZI Fno UT dTIDX: ZX V 0 Tfno lxX: ZX to 0 or IIX: ZX 0 uo or loX: ZX ZX suep UOTqdTZDSuI I Fno xedNsaX: lIx to I Fno xexdTiOX: UlX 0 I Tno UTIsaIX: IlX s I Tno uTNdTTIDX: IX V 0 Fno lX: qiX to O fno IZX: IX DS 0 uou qoX: IIX IX suep uoTqdT2DsuI UOTSA oNAUI uosTeuIUOS eduioD ana na-duioD 198tZ9úú
Z98393Z98393
Comparateur Comparaison Inversion N cycle inscription dans XClipMax A XClipMax:XOL non O B XClipMax:XlL non 0 C XClipMax:X2L non O D XClipMax:X3L non 0 A XTestMax:X0L non 1 B XTestMax:XlL non 1 C XTestMax:X2L non 1 D XTestMax:X3L non 1 Les résultats du tableau III sont répétés de la même manière pour YOL à Y3L, YClipMin, YClipMax, YTestMin et YTestMax. La figure 9 montre les séquencements relatifs des signaux sur DataIn et des chargements de registres exécutés sur les registres de décalage de trame 41, les registres de coordonnées X/Y 37, les registres de coordonnées de cadrage Comparator Comparison Inversion N cycle XClipMax registration XClipMax: XOL no OB XClipMax: XlL no 0 C XClipMax: X2L no OD XClipMax: X3L no 0 A XTestMax: X0L no 1 B XTestMax: XlL no 1 C XTestMax: X2L no 1 D XTestMax The results in Table III are repeated in the same way for YOL at Y3L, YClipMin, YClipMax, YTestMin and YTestMax. Figure 9 shows the relative sequencing of the signals on DataIn and the register loadings performed on the frame shift registers 41, the X / Y coordinate registers 37, the frame coordinate registers
39 et la logique de comparaison et mémoire de résultat 47. 39 and the comparison logic and result memory 47.
La machine à états de commande de comparaison permet de procéder à un chargement indexé de la manière indiquée plus haut, en utilisant à la fois la valeur de registre d'index associée à un cycle d'écriture et le tableau IV donné plus bas. Comme le registre sur lequel pointe la valeur de registre d'index est toujours inscrit indépendamment du type d'inscription indexée, les signaux de commande "MUX Enable" appropriés des multiplexeurs 101, 103, 105 et 107 sont sélectionnés par la machine à états de commande de comparaison en supposant que l'on n'a qu'une seule inscription de registre pour cette coordonnée. Par exemple, si l'on reçoit une inscription d'un rectangle en X avec un index de 3, la logique de comparaison va opérer comme si l'on avait reçu un ordre explicite d'inscription de X3, et effectuera, en tant que de besoin, les comparaisons de X3L par rapport à (XOL, X1L, X2L, XClipMin, XClipMax, XTestMin, XTestMax). La différence entre un chargement absolu d'un registre et un chargement indexé (ou indexé relatif) est que, dans le cas d'un chargement indexé, on peut avoir I Tno SNII úX:ZX a I Tno NI. X:IX a I Tno ENII ZX:IX O I uou 3NIr EX:OX v S I uou NII lX: Ox V I uou NII IX:0X V O Fn NIa úX:ZX a 0 Fno SNII eX:IX a Oú 0 Fno SNII ZX:IX D 0 mno SNII eX:0X a O TflO HNII ZX:OX Q 0 Trno xNIUEX:ox O O Fno SNII- IX:OX s SZ Tno LNa úX:ZX a -- Tri-Fo INCI EX:X lxc Tno LNd EX:IX a T $loNa úX:OX a -no JNc ZX: OX 3 oz -Fno iNa IXTXOX xapuI uoTsXAuI d uosTwdwoD naGdwoo Slt AI flMEIL uosUZdwoo ap slanpTATpuT- slelnsTlS suiui sal quolaesT-ouaW (9lu >eu) qe (Slu 'ú1U) '(>1EU 'Z-) J(úEU '-EU) (ZZg u8Il) '(IZE 'L/l) sazzsTbaz ap sa-dnoD sa ' TZU 01 61U F úl '9gH e ClU 'úH F? IH (8 sn6T; no II nualq2q ztoA) uosTVwdUIoD ap sG$STB6aa saT qTDSuT uo 'E ap xapuT un DoAe X atBu9eoez un,p uoTqdTJDsuT,T ap 9TDo9d aldUIGX,l su-e *III neelqe ne quauiauaouuoz uO3,1 ap naTI ne AI neelq-e ne queuiawlo;uoo saTnpozd saoIe qu-e-4 99I,e úI1 sxnaxa-IdTqnu sa- anod nsxGTdTTnm P a suoTolgs sI 'uosTeieduoD ap seqlnsea s9T:ToAeoe anod s9ATIoe, 4ueAno2- eS Tnb seauuopzooo ap uoTqesT=oUam 3p s9ZZsTbal sanassnld Lú ua quauleTanquaAa z 9 8.gg 9E 1 9 8.z 9 Z Tnro AOSU/IUl úX: ZX a z uou loú/Il úX:IX s z uou IOD/IWT ZX:TX S z uou Zos/IU úX: OX V z uou loT/Iul ZX:OX V Oú I -TFno L0S/IL úX:ZX a I -Fno IDSU/IUZ EX:tIX a I Fno ZD:R/I)IL ZX: IX:) I uou aD/IMiZX:OX SZ I uou log/Iul IX:oX V T -FoU ISiu x:lx V o Fn Ds/IEú X:0 X a ci 0 TFno 10S/Iui ZX:OX D 0 Fno ZS/IMi IX:ox a ú uou xNIIEX:ZX S ú Uno ENII úX:IX c ú Tno sNII ZX:IX 3 ú Fno sNII úX:0X G ú TFnO SsNI ZX:OX D ú Fno sNII IX:OX V 0I Cl Z -FnO ENIri úX:ZX O Z uou sNII EX:-IX 9 z uou sNII ZX:IX Z -Fno ENII úX:OX a Z -jno SNII ZX:OX S Z Fno ENII IX:ox xapul uoTs1auI GdX uosTGId'oD znaqwed:oo 9e qsa quewenbTqdd aaq.B m;e g e q qo, Ts quenbTpuT! sqTq xnap ns TvuBfs un qsa (-TqTsTA/uappTH) SIA/CIIH '4sTOP eI szeA aqoneB eT ap no aqoneb PT szea aqTOp eT ap 'Jneq eI s=aT SE seq np 'seq aI smaA nelq np aelnopxa a$9 -TFoP uo-FqDado,t The comparison control state machine enables indexed loading as described above, using both the index register value associated with a write cycle and the given table IV below. Since the register on which the index register value is pointing is always inscribed independently of the indexed registration type, the appropriate "MUX Enable" control signals of the multiplexers 101, 103, 105 and 107 are selected by the state machine. comparison command assuming that there is only one register record for this coordinate. For example, if we receive an inscription of an X rectangle with an index of 3, the comparison logic will operate as if we had received an explicit order of X3 registration, and will perform, as as needed, comparisons of X3L with respect to (XOL, X1L, X2L, XClipMin, XClipMax, XTestMin, XTestMax). The difference between an absolute loading of a register and an indexed (or indexed) loading is that, in the case of an indexed loading, one can have I Tno SNII úX: ZX to I Tno NI. X: IX to I Tno ENII ZX: IX OI uou 3NIr EX: OX v SI or NII lX: Ox VI or NII IX: 0X VO Fn NIa úX: ZX to 0 Fno SNII eX: IX to Where 0 Fno SNII ZX: IX D 0 mno SNII eX: 0X a O TflO HNII ZX: OX Q 0 Trno xNIUEX: ox OO Fno SNII-IX: OX s SZ Tno LNa úX: ZX a - Tri-Fo INCI EX: X lxc Tno LNd EX: IX at T $ loNa úX: OX a -no JNc ZX: OX 3 oz -Fno iNa IXTXOX xapuI uoTsXAuS dUosTwdwoD naGdwoo wiTh wiTiNg uosUZdwoo ap slanpTATpuT- slelnsTlS suiui sal quolaesT-ouaW (9lu> eu) qe (Slu 'ú1U)' (> 1EU 'Z-) J (ÜEU' -EU) (ZZg u8Il) '(IZE' L / l) sazzsTbaz ap sa-dnoD its' TZU 01 61U F úl '9gH e ClU' úH F? IH (8 sn6T; no II nualq2q ztoA) uosTVwdUIoD ap sG $ STB6aa saT qTDSuT uo 'apapaTe a DoAe X atBu9eoZ a, p uoTqdTJDsuT, T ap 9TDo9d aldUIGX, lon-e * III neelqe only quauiauaouuoz uO3,1 ap naTI do not know that this is the case for 4-year-olds, that is, that it is not possible to use the following methods: Toooe anod s9ATIoe, 4uAno2-eS Tnb seauuopzooo ap uoTqesT = oUam 3p s9ZZsTbal sanassnld Lú ua quauleTanquaAa z 9 8.gg 9E 1 9 8.z 9 Z Tnro AOSU / IUl úX: ZX az uou loú / There úX: IX sz uou IOD / IWT ZX: TX S z uor Zos / IU úX: OX V z ooo loT / Iul ZX: OX V Where I -TFno L0S / IL úX: ZX to I -Fno IDSU / IUZ EX: tIX to I Fno ZD: R / I) IL ZX: IX :) I or aD / IMiZX: OX SZ I uou log / Iul IX: oX VT -FoU Isiu x: lx V o Fn Ds / IEu X: 0 X a ci 0 TFno 10S / Iii ZX: OX D 0 Fno ZS / IMi IX: ox a ú ou x: o o o o o o IX IX IX::::::::::::::::::::::::::::::::::::::::::::::::::::::::: or EXIX: -IX 9 zu or sNII ZX: IX Z -Fno ENII úX: OX to Z - jno SNII ZX: OX SZ Fno ENII IX: ox xapul uoTs1auI GdX uosTGId'oD znaqwed: oo 9e qsa quewenbTqdd aaq.B m; e g e q qo, Ts quenbTpuT! sqTq xnap ns TvuBfs a qsa (-TqTsTA / uappTH) SIA / CIIH '4sTOP eI szeA aqoneB and ap no aqoneb PT szea aqTOp and ap' Jneq eI s = a se seq np 'seq aI smaA nelq np aelnopxa a $ 9 -TFoP uo -FqDado, t
* Fs uunbTPuTs;Tq xnep ans ieu65Ts un;se (<;;eg -o -* * * * * * * * * * * * * * * * * * * * * * * * * * *!
-4tZBE/dfl) 'I-oq-u/dn *TeIDFBoT med no 'uoT-4ueatu aquesaad e e ZuaulawuzoguoD 'lieT2vux ad aanqog;;ge vaes uoTqzGdo,T Fs quenbTpuF sq-q xnapans reu6Fs un 4se (e-rm:os Oú /eP.mPH) MS/MH.SIA/GIH q 'I-Oq-E/dfl 'MS/MH apu'euuooD ap xnreu.frs sGT q.npozd Tg sqevqp uoqaemuea ap enbIboî ev r s9W,1p uorqeT u,9a ap enblT5o7 c uou (Ivigo XEX ú uou CQnO EX:IX D ú uou avnO úX:OX Z -Fn avno úX:ox a oz z uou aïIg zX:IX E z uou cvnc zx:Ox a Ino oFng úv X:IX a ú TnoE X:IX D Sl I uou CY0 IX:OX v 0 Trio GfgO eX:0X c 0 Tno úIOúX:OX a ú Tno ADEZ/IHL. EX:OX D ú Tno IDSî/IMi IX:OX l xapu UOS UI uoTsTaauI Od C uosTqdmoDnQaedulDoo Lú cadrage active, ou s'il est visible. Pour produire ces signaux, la logique de génération d'état 51 reçoit en entrée le contenu des registres Rl à R22, pour les registres de coordonnées X, et R23 à 44, pour les coordonnées Y, et les quatre signaux de quatre bits indiquant que les dix-huit positions supérieures en provenance des registres de TZBE / dfl) 'I-oq-u / dn * TeIDFBoT med no' uoT-4ueatu aquesaad ee ZuaulawuzoguoD 'tieT2vux ad aanqog ;; gees uoTqzGdo, T Fs quenbTpuF sq-q xnapans reu6Fs a 4se (e-rm: os Where /eP.mph) MS / MH.SIA / GIH q'I-Oq-E / dfl 'MS / MH apu'euuooD ap xnreu.frs sGT q.npozd Tg sqevqp uoqaemuea ap enbIboi ev r s9W, 1p uorqeT u, 9a ap enblT5o7 c uou (Ivigo XEX ú uou CQnO EX: IX D ú uou or avnO úX: OX Z -Fn avno úX: ox a oz z uou aïIg zX: IX E z uou cvnc zx: Ox a Ino oFng úv X: IX a ú TnoE X: IX D Sl I or CY0 IX: OX v 0 Trio GfgO eX: 0X c 0 Tno úIOúX: OX a ú Tno ADEZ / IHL.EX: OX D ú Tno IDSI / IMi IX: OX l xapu UOS UI uoTsTaUI Od C uosTqdmoDnQaedulDoo The active frame, or if it is visible To produce these signals, the state generation logic 51 receives as input the contents of the registers R1 to R22, for the coordinate registers X, and R23 to 44 , for the Y coordinates, and the four four-bit signals indicating that the eighteen upper positions from the
coordonnées X/Y 37 sont toutes entièrement à "1" ou à "0". X / Y coordinates 37 are all fully "1" or "0".
On va maintenant expliquer, en référence aux figures 10 à 14 qui sont des tables de vérité des opérations logiques exécutées par la logique de génération d'états 51, la manière dont la logique de génération d'états produit ces signaux de commande; Les circuits logiques nécessaires pour mettre en oeuvre les tables de vérité des figures 10 à 14 sont tout à fait à la portée du spécialiste de cette Reference will now be made to FIGS. 10 to 14 which are truth tables of the logic operations performed by the state generation logic 51, the manner in which the state generation logic produces these control signals; The logic circuits necessary to implement the truth tables of FIGS. 10 to 14 are quite within the reach of the specialist of this
technique.technical.
La figure 10 est une table de vérité utilisant les Figure 10 is a truth table using the
résultats de comparaison pour la coordonnée X0 (X0L et XOH). comparison results for the X0 coordinate (X0L and XOH).
Les tables de vérité utilisant les résultats de comparaison pour les coordonnées X1 à X3 et Y0 à Y3 substituent ces coordonnées à X0 et, pour les coordonnées Y, utilisent YClipMin, YClipMax, YTestMin et YTestMax à la place de XClipMin, XClipMax, XTestMin et XTestMax. La partie gauche de la table est constituée par les entrées, et la partie The truth tables using the comparison results for X1 to X3 and Y0 to Y3 substitute these coordinates for X0 and, for Y coordinates, use YClipMin, YClipMax, YTestMin, and YTestMax instead of XClipMin, XClipMax, XTestMin, and XTestMax . The left part of the table is constituted by the entries, and the part
droite par les sorties. Dans la table, le symbole "-" right by the exits. In the table, the symbol "-"
signifie "indifférent", O et!O signifient que les valeurs binaires sur le bus sont toutes à 1 ou, respectivement quelles ne sont pas toutes à 1 (d'après les registres de coordonnées X/Y 37), et Z et!Z signifient que les valeurs binaires sur le bus sont toutes à 0 ou, respectivement quelles ne sont pas toutes à 0 (d'après les registres de coordonnées X/Y 37). "X0 inside 214"t signifie que la coordonnée X0 sur 32 bits peut être représentée sur 15 bits, "X0 inside clip" signifie que X0 est à la limite de la fenêtre de cadrage ou à l'intérieur de cette fenêtre et "X0 inside test" signifie que X0 est à la limite de la fenêtre de test ou à l'intérieur de cette fenêtre. Les valeurs de sortie "X0 < XClipMin", "X0 < XTestMin", "X0 > XClipMax" et "X0 > XTestMax" sont rebouclées et constituent de nouvelles valeurs d'entrée. Pour obtenir les valeurs de sortie, on effectue un ET logique sur les valeurs d'entrée d'une ligne horizontale, et un OU logique sur les valeurs de sortie d'une colonne. Ainsi, si l'on se réfère par exemple aux deux premières lignes de la figure 10, si XO[31] (c'est-à-dire, son bit de signe) vaut 0 ET si XO[30:14] (c'est-à-dire, les bits supérieurs 14 à 30) est entièrement à zéro, OU si XO[31] vaut 1 ET si XO[30:14] est entièrement à 1, alors XO est dans les limites de 214 ("X0 inside 21411 est VRAI). De la même façon, si l'on se réfère à la dernière ligne de la figure 10, si X0 < XTestMin vaut O (c'est-à-dire est FAUX) ET si X0 > XTestMax vaut 0, alors X0 est à l'intérieur de la means "indifferent", O and! O mean that the binary values on the bus are all 1 or, respectively, not all of them at 1 (according to X / Y coordinate registers 37), and Z and! Z mean that the binary values on the bus are all 0 or, respectively, not all 0 (based on X / Y coordinate registers 37). "X0 inside 214" t means that the X0 coordinate on 32 bits can be represented on 15 bits, "X0 inside clip" means that X0 is at the limit of the framing window or inside this window and "X0 inside test "means that X0 is at the limit of the test window or within this window. The output values "X0 <XClipMin", "X0 <XTestMin", "X0> XClipMax" and "X0> XTestMax" are looped back and constitute new input values. To obtain the output values, a logical AND is performed on the input values of a horizontal line, and a logical OR on the output values of a column. Thus, if one refers for example to the first two lines of Figure 10, if XO [31] (that is, its sign bit) is 0 AND if XO [30:14] (c that is, the upper bits 14 to 30) is entirely zero, OR if XO [31] is 1 AND if XO [30:14] is all 1, then XO is within the limits of 214 (" X0 inside 21411 is TRUE.) Similarly, referring to the last line of Figure 10, if X0 <XTestMin is 0 (that is, FALSE) AND X0> XTestMax is 0, then X0 is inside the
fenêtre de test ("XO inside test" est VRAI). test window ("XO inside test" is TRUE).
Les figures lia et 11b constituent une table de vérité utilisant des comparaisons entre chacun des quatre sommets X et chacun des quatre. sommets Y. Comme dans le cas de la figure 10, on effectue un ET logique sur toutes les valeurs d'une ligne d'entrée horizontale, le résultat étant un 1 logique (VRAI) ou un O logique (FAUX), et les sorties indiquées (à l'exception de "top", "bot", "right" et "left") sont obtenues en effectuant un OU logique sur la colonne correspondante. Les sorties "top", "bot", "right" et "left", qui correspondent aux valeurs 0, 1, 2 ou 3, sont interprétées de la manière suivante: la valeur 0, 1, 2 ou 3 Figures 11a and 11b constitute a truth table using comparisons between each of the four vertices X and each of the four. vertices Y. As in the case of FIG. 10, a logical AND is performed on all the values of a horizontal input line, the result being a logical 1 (TRUE) or a logical O (FALSE), and the outputs indicated (except for "top", "bot", "right" and "left") are obtained by performing a logical OR on the corresponding column. The outputs "top", "bot", "right" and "left", which correspond to the values 0, 1, 2 or 3, are interpreted in the following way: the value 0, 1, 2 or 3
spécifie celles des coordonnées XO à X3 ou Y0 à Y3 qui est - specifies those of the coordinates XO to X3 or Y0 to Y3 which is -
la plus haute ("top"), la plus basse ("bot", pour bottom), la plus à droite ("right") et la plus à gauche (I"left"l). Les symboles "<", ">", "E", "L" et "G" du côté des entrées indiquent que le résultat de comparaison spécifiée est, respectivement, "inférieur à", "supérieur à", "égal à", "inférieur ou égal à" (L pour Less), ou "supérieur ou égal the highest ("top"), the lowest ("bot", for bottom), the rightmost ("right") and the most left (I "left" l). The "<", ">", "E", "L" and "G" symbols on the input side indicate that the specified comparison result is, respectively, "less than", "greater than", "equal to" , "less than or equal to" (L for Less), or "greater than or equal to
à" (G pour Greater).to "(G for Greater).
On va maintenant expliciter la signification des valeurs de sortie données par la table: "illegal" signifie que, si on trace une ligne horizontale traversant l'objet défini par les quatre couples de sommets, elle pourrait en couper plus de deux côtés. Un objet en forme de noeud papillon est un exemple d'objet pour lequel "illegal" prendrait la valeur "VRAI"; "horiz" signifie que les quatre sommets ont tous la même valeur Y; "vert" signifie que les quatre sommets ont tous la même valeur X; "rect" signifie que l'objet défini par les quatre coordonnées constitue un rectangle; "line" signifie que l'objet défini par les quatre coordonnées constitue un segment; "EQ_01" signifie que le sommet 0 est identique au sommet 1 (il définit le même point); "EQ_12" signifie que le sommet 1 est identique au sommet 2 (il définit le même point); "EQ_23" signifie que - le sommet 1 est identique au sommet 3 (il définit le même point); et "EQ_30" signifie que 'le sommet 3 est identique au We will now explain the meaning of the output values given by the table: "illegal" means that, if we draw a horizontal line crossing the object defined by the four pairs of vertices, it could cut more than two sides. A bow tie object is an example of an object for which "illegal" would take the value "TRUE"; "horiz" means that the four vertices all have the same Y value; "green" means that the four vertices all have the same value X; "rect" means that the object defined by the four coordinates constitutes a rectangle; "line" means that the object defined by the four coordinates constitutes a segment; "EQ_01" means that vertex 0 is identical to vertex 1 (it defines the same point); "EQ_12" means that vertex 1 is identical to vertex 2 (it defines the same point); "EQ_23" means that - vertex 1 is identical to vertex 3 (it defines the same point); and "EQ_30" means that 'vertex 3 is identical to
sommet 0 (il définit le même point). vertex 0 (it defines the same point).
Les figures 12a à 12d définissent une table de vérité utilisant des comparaisons entre les quatre sommets X et les quatre sommets Y et les limites de cadrage. Les entrées "top", "bottom", "right" et "left" proviennent de la table de vérité des figures lla et 11b. Lorsque les sorties "top visible" (haut visible), bottom visible" (bas visible), "right visible" (droite visible) et "left visible" (gauche visible) sont à 1 (c'est-à-dire sont à la valeur VRAI), l'objet défini par les quatre couples de coordonnées se trouve à l'intérieur de la fenêtre de cadrage. Lorsque "surround clip" (entoure le cadrage) vaut 1, l'objet se Figures 12a to 12d define a truth table using comparisons between the four X vertices and the four Y vertices and the framing boundaries. The entries "top", "bottom", "right" and "left" come from the truth table of figures 11a and 11b. When the "top visible", "bottom visible", "right visible" and "left visible" outputs are at 1 (that is, are at TRUE value), the object defined by the four pairs of coordinates is inside the frame window.When "surround clip" (surround the framing) is 1, the object is
trouve hors de la fenêtre de cadrage mais l'entoure. finds out of the frame window but surrounds it.
"hidden" (caché) n'est applicable qu'aux quadrilatères et indique que les sommets sont tous quatre à droite, à gauche, "hidden" is only applicable to quadrilaterals and indicates that the vertices are all four on the right, on the left,
au-dessus ou au-dessous de la fenêtre de cadrage. above or below the frame window.
"hidden_01" (qui concerne le rectangle source pour un transfert de bloc d'image) et "hidden_23" (qui concerne le rectangle destination pour un transfert de bloc d'image) ont "hidden_01" (which concerns the source rectangle for an image block transfer) and "hidden_23" (which concerns the destination rectangle for an image block transfer) have
2642'8672642'867
une signification semblable, pour les transferts de blocs d'image. La figure 13 définit une table de vérité utilisant des comparaisons entre les quatre sommets X et les quatre sommets Y et les limites de la fenêtre de test. Les sorties "top within test" (haut dans les limites du test) et "bottcs within test" (bas dans les limites du test), lorsqu'elles ont la valeur VRAI, signifient que le bord de l'objet se trouve à l'intérieur des limites supérieure et inférieure, a similar meaning, for image block transfers. Figure 13 defines a truth table using comparisons between the four X vertices and the four Y vertices and the limits of the test window. The "top within test" and "bottoms within test" outputs, when they are TRUE, mean that the edge of the object is within the limits of the test. inside the upper and lower limits,
- respectivement, de la fenêtre de test. - respectively, of the test window.
La figure 14 définit une table de vérité montrant la direction suivant laquelle on ira tracer les objets ou exécuter les transferts de blocs d'image ou BLITs (BLock Image Transfers) de manière à minimiser les changements de page et le traitement des pixels cadrés, en produisant les signaux "blit r-to-l" (BLIT de droite à gauche), "blit up" (BLIT vers le haut), "draw r-to-l" (traçage de droite à gauche) et "draw up" (traçage vers le haut). Ces signaux constituent le signal "direction de traçage" représenté figure 2. D'autres détails concernant cet aspect de l'invention peuvent être trouvés dans une demande de brevet Figure 14 defines a truth table showing the direction in which objects are to be traced or to execute image block transfers or BLICs (BLock Image Transfers) in order to minimize page changes and the processing of framed pixels by producing the signals "blit r-to-l" (BLIT from right to left), "blit up" (BLIT upwards), "draw r-to-l" (drawing from right to left) and "draw up" (tracing upwards). These signals constitute the "tracing direction" signal shown in FIG. 2. Further details concerning this aspect of the invention may be found in a patent application.
en cours de délivrance, au nom de la Demanderesse. currently being issued on behalf of the Claimant.
D'après les tables de vérité des figures 10 à 14, la logique de génération d'états 51 produit de la manière suivante les signaux HW, SW, HID et VIS représentés figure 2: Pour des objets constitués par des quadrilatères: HW = "hidden" OU "surround clip" OU (NON "hidden" ET NON "illegal" ET tous les sommets en-deçà de 214 ET (tous les sommets dans la fenêtre de test OU ("line" ET au moins une extrémité dans la fenêtre de test) OU (X0 à X3 dans la fenêtre de test ET sommet supérieur ou inférieur dans la fenêtre de test) OU According to the truth tables of FIGS. 10 to 14, the state generation logic 51 produces in the following manner the signals HW, SW, HID and VIS shown in FIG. 2: For objects constituted by quadrilaterals: HW = " hidden "OR" surround clip "OR (NOT" hidden "AND NOT" illegal "AND all vertices below 214 AND (all vertices in the test window OR (" line "AND at least one end in the window test) OR (X0 to X3 in the test window AND top or bottom vertex in the test window) OR
"rect t")."rect t").
SW = NON "HW".SW = NO "HW".
HID = "hidden".HID = "hidden".
VIS =NON "hidden".VIS = NO "hidden".
Pour des transferts de blocs d'image HW = "hid 23" OU ("hid_01" ET "BLITSRC_CHK" = 10) OU (NON "hid 01" ET For image block transfers HW = "hid 23" OR ("hid_01" AND "BLITSRC_CHK" = 10) OR (NOT "hid 01" AND
"BLITSRCCHK" = 10 ET"BLITSRCCHK" = 10 AND
NON "hid_23" ET le rectangle source est en-deçà de 214 ET le rectangle destination est en-deçà de 24 OU NO "hid_23" AND the source rectangle is below 214 AND the destination rectangle is below 24 OR
("BLITSRC_CHK" = 01 ET("BLITSRC_CHK" = 01 AND
NON "hid_23" ET le rectangle source est en-deçà de 214 ET NO "hid_23" AND the source rectangle is below 214 ET
le rectangle destination est en-deçà de 214). the destination rectangle is below 214).
"BLITSRCCHK" (BLIT SouRCe CHecK: contrôle de la source du BLIT) étant une valeur sur deux bits, donnée par l'unité centrale de traitement, qui est à "10" lorsque l'on souhaite considérer le rapport "BLITSRCCHK" (BLIT SouCe CHecK: control of the source of the BLIT) being a two-bit value, given by the central processing unit, which is at "10" when one wishes to consider the report
entre le rectangle source et la fenêtre de cadrage. between the source rectangle and the frame window.
Ceci est rendu nécessaire par le fait que les divers logiciels graphiques que peut utiliser la présente invention ne traitent pas de façon homogène le rectangle source et les limites de cadrage. Pour cette raison, dans le mode de réalisation préféré la vérification du cadrage du rectangle source pour les transferts de blocs d'image est une option sélectionnable par logiciel (BLITSRC_CHK = 01 désactive la vérification du cadrage source et BLIT_SRC_CHK = 10 active la vérification du cadrage source). This is necessitated by the fact that the various graphics programs that can be used by the present invention do not homogeneously process the source rectangle and framing boundaries. For this reason, in the preferred embodiment the checking of the source rectangle framing for image block transfers is a software selectable option (BLITSRC_CHK = 01 disables source framing verification and BLIT_SRC_CHK = 10 enables framing verification source).
SW = NON "HW".SW = NO "HW".
HID = "hid 23".HID = "hid 23".
VIS = NON "hid 23".VIS = NO "hid 23".
Dans le mode de réalisation préféré de la présente invention, on a utilisé une étape opérant le chargement des coordonnées sur deux cycles d'horloge, suivie d'une étape de In the preferred embodiment of the present invention, a step of loading the coordinates on two clock cycles has been used, followed by a step of
comparaison opérant également sur deux cycles d'horloge. comparison also operating on two clock cycles.
Bien que ces deux étapes puissent, comme indiqué, se recouvrir, le temps de latence général est de trois cycles d'horloge, les nouvelles données d'entrée pouvant être reçues (ou les nouveaux résultats étant disponibles) un cycle d'horloge sur deux (c'est-à-dire que l 'on a un débit élémentaire de deux cycles d'horloge}. Dans les exemples, on a également montré une logique d'étagement des coordonnées qui reçoit des données à la plus grande vitesse possible pour ce mode de réalisation préféré. Le spécialiste de cette technique notera cependant que les circuits décrits peuvent gérer une vitesse plus lente d'arrivée des données (données moins fréquentes). Il sera également évident que, au prix d'une logique supplémentaire, on pourrait avoir un temps de latence général plus faible et un débit plus élevé par une Although these two steps may, as indicated, overlap, the overall latency is three clock cycles, with the new input data being received (or the new results available) one out of two clock cycles (ie, one elementary rate of two clock cycles.) In the examples, coordinate alignment logic has also been shown which receives data at the highest speed possible for This specialist will note however that the circuits described can handle a slower rate of data arrival (less frequent data) It will also be obvious that, at the cost of additional logic, it would be possible to have a lower overall latency and higher throughput
simple extension des circuits de la présente invention. simple extension of the circuits of the present invention.
Claims (7)
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US29747589A | 1989-01-13 | 1989-01-13 |
Publications (2)
Publication Number | Publication Date |
---|---|
FR2642867A1 true FR2642867A1 (en) | 1990-08-10 |
FR2642867B1 FR2642867B1 (en) | 1994-01-07 |
Family
ID=23146475
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR8914576A Expired - Fee Related FR2642867B1 (en) | 1989-01-13 | 1989-11-07 | DEVICE FOR HARDWARE IMPLEMENTATION OF A FRAMING COMPARISON LOGIC IN A GRAPHIC VIDEO DISPLAY SUBSYSTEM |
Country Status (5)
Country | Link |
---|---|
KR (1) | KR940003610B1 (en) |
CA (1) | CA1320584C (en) |
FR (1) | FR2642867B1 (en) |
GB (1) | GB2227147B (en) |
HK (1) | HK126494A (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2251771B (en) * | 1991-01-09 | 1995-01-25 | Du Pont Pixel Systems | Computer graphics system with synchronization with display scan |
KR100324755B1 (en) * | 1999-08-19 | 2002-02-20 | 구자홍 | Clipping apparatus and method for graphic processor |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0210554A2 (en) * | 1985-08-02 | 1987-02-04 | International Business Machines Corporation | A method of windowing image data in a computer system |
EP0232005A2 (en) * | 1986-01-21 | 1987-08-12 | International Business Machines Corporation | Curve drawing in a graphics display system |
EP0278526A2 (en) * | 1987-02-13 | 1988-08-17 | Nec Corporation | Graphics diplay controller having clipping function |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2030827B (en) * | 1978-10-02 | 1982-06-16 | Ibm | Video display terminal with partitioned screen |
JPS6120128A (en) * | 1984-07-07 | 1986-01-28 | Daikin Ind Ltd | Clipping circuit of crt display device |
-
1989
- 1989-09-13 GB GB8920728A patent/GB2227147B/en not_active Expired - Fee Related
- 1989-09-22 CA CA000612523A patent/CA1320584C/en not_active Expired - Fee Related
- 1989-11-07 FR FR8914576A patent/FR2642867B1/en not_active Expired - Fee Related
- 1989-11-15 KR KR1019890016548A patent/KR940003610B1/en not_active IP Right Cessation
-
1994
- 1994-11-17 HK HK126494A patent/HK126494A/en not_active IP Right Cessation
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0210554A2 (en) * | 1985-08-02 | 1987-02-04 | International Business Machines Corporation | A method of windowing image data in a computer system |
EP0232005A2 (en) * | 1986-01-21 | 1987-08-12 | International Business Machines Corporation | Curve drawing in a graphics display system |
EP0278526A2 (en) * | 1987-02-13 | 1988-08-17 | Nec Corporation | Graphics diplay controller having clipping function |
Also Published As
Publication number | Publication date |
---|---|
GB2227147B (en) | 1994-04-13 |
GB2227147A (en) | 1990-07-18 |
KR900012151A (en) | 1990-08-03 |
KR940003610B1 (en) | 1994-04-25 |
HK126494A (en) | 1994-11-25 |
FR2642867B1 (en) | 1994-01-07 |
CA1320584C (en) | 1993-07-20 |
GB8920728D0 (en) | 1989-10-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0319430B1 (en) | Buffer memory device and method, particularly for matrix transposition of data sequences | |
FR2632434A1 (en) | METHOD AND DEVICE FOR DISPLAYING TWO AND THREE-DIMENSIONAL GRAPHIC INFORMATION WITHIN A WINDOW OF A DISPLAY SYSTEM | |
FR2604019A1 (en) | COLOR VIDEO DISPLAY DEVICE FOR COMPUTER SYSTEM, AND METHOD FOR CONVERTING COLOR VIDEO SIGNALS THEREFOR | |
FR2543721A1 (en) | DEVICE FOR GENERATING IMAGES ON A SCREEN IN A COMPUTER-CONTROLLED VISUALIZATION SYSTEM | |
FR2599873A1 (en) | VIDEO DISPLAY SYSTEM | |
US20080008402A1 (en) | Method and apparatus of removing opaque area as rescaling an image | |
JPH05506737A (en) | An image scaling method that performs digital image scaling by combining pixels in a pixel block with varying group sizes with each other by logical operations or by duplicating pixels within the pixel block. | |
FR2554256A1 (en) | APPARATUS AND METHOD FOR REGENERATING A HIGH-SPEED WORKING RANGE BUFFER | |
FR2686438A1 (en) | CIRCUITRY FOR MANIPULATING DATA STREAMS. | |
FR2657987A1 (en) | METHOD FOR CONTROLLING A MATRIX SCREEN COMPRISING TWO INDEPENDENT PARTS AND DEVICE FOR ITS IMPLEMENTATION. | |
FR2964236A1 (en) | DEVICE AND METHOD FOR GENERATING VARIABLE PRIORITY MULTIFERENCE IMAGES | |
FR2617307A1 (en) | MICROCALCULATOR COMPRISING PERFECTED ADDRESSING POSSIBILITIES | |
FR2646540A1 (en) | IMPROVED DEVICE FOR QUICK ERASING OF THE OUTPUT DISPLAY OF A COMPUTER SYSTEM | |
FR2642867A1 (en) | DEVICE FOR IMPLEMENTING BY MATERIAL A DIGITAL COMPARISON LOGIC IN A GRAPHIC VIDEO DISPLAY SUBSYSTEM | |
FR2637706A1 (en) | DEVICE FOR QUICK ERASING OF THE DISPLAY SCREEN OF A COMPUTER, PARTICULARLY FOR CREATING MOVIE IMAGES | |
FR2678462A1 (en) | REAL TIME DEVICE FOR PRESENTING TELEVISION TYPE IMAGES ON A DISPLAY SCREEN. | |
EP0161175B1 (en) | Device for modifying the aspect of picture elements in the screen of a graphical display terminal | |
FR2458863A1 (en) | VIDEO DISPLAY TERMINAL AND MIXED GRAPHIC AND ALPHANUMERIC DISPLAY METHOD | |
FR2587520A1 (en) | MEMORY DIRECT ACCESS WINDOW DISPLAY APPARATUS AND METHODS | |
FR2631474A1 (en) | CIRCUIT AND METHOD FOR CONTROLLING THE PRESENTATION OF COLOR INFORMATION TO A DISPLAY DEVICE OF A COMPUTER SYSTEM | |
CN114581472A (en) | Image edge detection method and device, electronic equipment and storage medium | |
EP0325509B1 (en) | Device for the block-wise permutation of television lines | |
FR2563025A1 (en) | DEVICE FOR OBTAINING CONTINUOUS TRACES ON THE SCREEN OF A VISUALIZATION CONSOLE CONTROLLED BY A GRAPHIC PROCESSOR | |
JPS62173492A (en) | Image processor | |
JP5128045B2 (en) | Digital display method and digital display device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
ST | Notification of lapse |