Brevet FR2642867A1 — publié le 19900810

La présente invention concerne un dispositif permettant de mettre en 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 fenêtre doit également être "cadrée" (recoupée). 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 convenablement par le matériel du sous-système graphique. 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 Image Transfers) par le sous-système graphique. 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 à l'exécution du cadrage de l'objet avant son affichage. 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 multiplexeurs et des moyens formant registres. On va maintenant décrire un exemple de réalisation, illustré sur les figures annexées. La figure 1 est un diagramme d'ensemble par blocs d'un sous-système graphique pour station de travail selon la présente invention. La figure 2 est un schéma par blocs de la partie d'étagement des coordonnées du sous-système graphique selon l'invention. La figure 3 est un schéma détaillé par blocs de l'additionneur 31 et du multiplexeur 35. La figure 4 est un schéma détaillé par blocs des registres de coordonnées X/Y 37. La figure 5 est. un schéma détaillé par blocs des registres de coordonnées de cadrage 39. La figure 6 est un schéma détaillé par blocs du registre de décalage de trame 41. La figure 7 est un schéma détaillé par blocs du circuit de commande de la fenêtre de texte 45. La figure 8 est un schéma détaillé par blocs de la logique de comparaison et mémoire de résultat 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 et mémoire de résultat 47. La figure 10 est une table de vérité utilisant les résultats de comparaison pour la coordonnée XO. 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 quatre sommets Y et les limites de cadrage. La figure 13 définit une table de vérité utilisant les comparaisons entre les quatre sommets X et Y et les limites de fenêtres de test. La figure 14 définit une table de vérité donnant la direction dans laquelle on dessinera les objets ou dans laquelle on exécutera les transferts de bloc d'image. 0 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 et de texte qui dépassent une fenêtre que l'on a défini. 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 de spécifier les limites de la fenêtre de cadrage. 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 réalisée par la logique de séquencement des coordonnées. 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 de l'étendue numérique des sommets. 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 du rectangle source et des limites du rectangle destination. Ceci est nécessaire aussi bien pour les coordonnées X que pour les coordonnées Y concernées. 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 l'analyse des informations de cadrage. 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 ou les registres à charger. 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 Z642867 -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 coordonnées à charger au cours d'un cycle quelconque donné. 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 les quatre angles du quadrilatère correspondant. 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 introduite et la nouvelle valeur de coordonnée envisagée. 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 générateur d'adresse linéaire 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 routage des données et mémoire 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 cours de délivrance, appartenant à la Demanderesse. 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 à l'intérieur de la section d'étagement des coordonnées 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 compréhension de la présente 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 49 et une logique de génération d'états 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 la façon dont est mise en oeuvre la présente invention. 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 seul affichage vidéo. 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. Un pixel est défini par un bit isolé dans chacun des plans. 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 à éteindre le 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 bonne compréhension de la présente invention 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 de commande de chargement 33 qui sera décrite plus loin. 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 32 bits, la description ci-dessous sera donnée pour un 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 technique, et ne seront donc pas décrites. 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 trente-deux bits en un seul 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 d'après la description de la machine à états de commande de chargement 33 et de la machine à états de logique de comparaison 49 que l'on va donner ci-dessous. 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 correspondante, c'est-à-dire (XOU,X0L) et (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 logique de comparaison et mémoire de résultat 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 figure 4 pour éviter d'embrouiller inutilement la 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; dans le cas contraire, chacun des quatre bits est à zéro. Les quatre sorties sur quatre bits des blocs 67 à 73 sont appliquées en entrée à la logique de génération d'états 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 47 et à la commande de fenêtre de test 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 Offset) et YRasOff (Y Raster Offset), et un multiplexeur 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 multiplexeur 53 est envoyée au multiplexeur 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 une fenêtre de test entourant la fenêtre de cadrage réelle. 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 brevet, en cours de délivrance, au nom de la Demanderesse. 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 élevé à la puissance (TestX-1) et (TestY-1), respectivement. 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, 1 et 2 et, si la valeur est 3, sa remise à zéro (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 la ligne provenant de l'additionneur 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 segments, on a seulement deux couples de sommets différents. 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 couples de sommets différents. 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. TABLEAU 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 selon Y n'affectera que 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 la valeur d'index après achèvement- du cycle d'inscription. 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 d'écriture d'un rectangle. L'opération effective d'inscrip- 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 d'exécution de l'ordre n'a pas d'importance. Pour faciliter l'interprétation de ces exemples, on en décrira le premier. L'interprétation des exemples 2 et 3 se déduira facilement de cette 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 dans Xl, X2, X3 et X0. Comme cela est le cas après toute- 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. Exemple 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 - 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 Exemple 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 - 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 Exemple 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 -- 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 compliquer la description du fonctionnement de ces 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), ou c) à des zéros. 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 autres coordonnées. 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 détecter s'ils sont ou non tous à '1' ou à '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 d'une coordonnée X se déroule de la même façon. En gardant à l'esprit les descriptions et définitions é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), comme dans le cas de l'exemple 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 inférieur de la valeur 6 qui se trouvait sur 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 l'additionneur 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 inférieur de la valeur 3 qui se trouvait sur 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 supérieurs étendus en signe de 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 l'additionneur 31, et l'on incrémente'le registre d'index. 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 valeur provenant de la sortie de l'additionneur 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 exposée plus haut. 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 constitués par des quadrilatères. 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 (c'est-à-dire que l'on a un chargement absolu). 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 efficace pour afficher des duplicata d'objets. L'adressage relatif sera mieux décrit au moyen de l'exemple suivant. 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 deux couples de décalage). 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 auquel le décalage relatif s'applique. 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 mémorise un "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 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 maintenant indiquer. 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, 264286Y 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, 122, 123, et 124, respectivement. 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, comme illustré sur la figure 8 et sur le tableau 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 illustré sur la figure 8 et sur le tableau 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 illustré sur la figure 8 et le tableau 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 cadrage approprié. 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 X3L, etc. et non l'inverse (par exemple, de X1L avec 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 valeur sur deux bits en sortie du comparateur indiqué. 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. TABLEAU 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úú Z98393 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 39 et la logique de comparaison et mémoire de résultat 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 * Fs uunbTPuTs;Tq xnep ans ieu65Ts un;se ( -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 coordonnées X/Y 37 sont toutes entièrement à "1" ou à "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 technique. La figure 10 est une table de vérité utilisant les résultats de comparaison pour la coordonnée X0 (X0L et 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 droite par les sorties. Dans la table, le symbole "-" 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 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 XTestMax vaut 0, alors X0 est à l'intérieur de la fenêtre de test ("XO inside test" est VRAI). 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 spécifie celles des coordonnées XO à X3 ou Y0 à Y3 qui est - 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 à" (G pour 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 sommet 0 (il définit le même 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 trouve hors de la fenêtre de cadrage mais l'entoure. "hidden" (caché) n'est applicable qu'aux quadrilatères et indique que les sommets sont tous quatre à droite, à gauche, au-dessus ou au-dessous de la fenêtre de cadrage. "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 2642'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, - respectivement, de la fenêtre de test. 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 en cours de délivrance, au nom de la Demanderesse. 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 "rect t"). SW = NON "HW". HID = "hidden". VIS =NON "hidden". Pour des transferts de blocs d'image HW = "hid 23" OU ("hid_01" ET "BLITSRC_CHK" = 10) OU (NON "hid 01" ET "BLITSRCCHK" = 10 ET NON "hid_23" ET le rectangle source est en-deçà de 214 ET le rectangle destination est en-deçà de 24 OU ("BLITSRC_CHK" = 01 ET NON "hid_23" ET le rectangle source est en-deçà de 214 ET le rectangle destination est en-deçà de 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 entre le rectangle source et la fenêtre de cadrage. 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). SW = NON "HW". HID = "hid 23". VIS = NON "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 comparaison opérant également sur deux cycles d'horloge. 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 simple extension des circuits de la présente invention. REVENDICATIONS 1. 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 avec 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 à l'exécution du cadrage de l'objet avant son affichage, dispositif caractérisé en ce qu'il comprend: a) des moyens de chargement, pour charger: (i) une pluralité de registres de coordonnées d'objet (37) par lesdites coordonnées d'objets (XO,Y0 à X3,Y3), (ii) une pluralité de registres de coordonnées de cadrage (39) par lesdites coordonnées de cadrage (XClipMin, XClipMax, YClipMin, YClipMax), et (iii) 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 (Ri à R44), pour mémoriser ces comparaisons que l'on a sélectionné, et f) des moyens de commande de comparaison (49), pour commander le fonctionnement des moyens comparateurs, des moyens multiplexeurs et des moyens formant registres. 2. L'appareil de la revendication 1, dans lequel lesdits moyens de chargement comprennent: - a) des moyens de commande de chargement (33), reliés à un registre d'indexation (43), b) des moyens d'entrée, reliés aux moyens de commande de chargement, aux registres de coordonnées d'objet et aux registres de coordonnées de cadrage, recevant d'une source extérieure à l'appareil les coordonnées de l'objet et les coordonnées de cadrage et mémorisant ces coordonnées reçues dans les registres de coordonnées d'objet (37) et dans les registres de coordonnées de cadrage (39) sous le contrôle des moyens de commande de chargement et du registre d'indexation. 3. L'appareil de la revendication 1, dans lequel les moyens comparateurs comprennent: a) un premier ensemble de multiplexeurs (101, 103, 105, 107) pour effectuer une sélection entre des coordonnées d'objet, des coordonnées de cadrage et des coordonnées de cadrage ajustées par lesdits décalages, b) un multiplexeur (109) pour effectuer une sélection entre les coordonnées de cadrage et les coordonnées de cadrage ajustées par les décalages, c) une pluralité de comparateurs (121, 122, 123, 124), reliés audit premier ensemble de multiplexeurs et audit multiplexeur, d) un second ensemble de multiplexeurs (131 à 146), chacun étant relié à au moins l'un des comparateurs ou moyens formant registres. 4. L'appareil de la revendication 1, dans lequel les moyens de calcul comportent un registre à incrémentation (95) relié au registre de décalage (41) et au registre de coordonnées de cadrage (39), ce registre à incrémentation délivrant une valeur supérieure à ladite coordonnée de cadrage de haut (YClipMax) et à ladite coordonnée de cadrage de- droite (XClipMax) en fonction, respectivement, du décalage Y (YRasOff) et du décalage X (XRasOff), et un registre à décrémentation (93), relié au registre de décalage (41) et au registe de coordonnées de cadrage (39), ce registre à décrémentation délivrant une valeur inférieure à ladite coordonnée de cadrage de bas (YClipMin) et à ladite coordonnée de cadrage de gauche (XClipMin), en fonction, respectivement, du décalage Y (YRasOff) et du décalage X (XRasOff). i0 5. L'appareil de la revendication 1, dans lequel les moyens multiplexeurs comprennent un multiplexeur:qui sélectionne une entrée parmi huit. 6. L'appareil de la revendication 3, dans lequel les moyens formant registre comprennent une pluralité de registres (RI à R44), chacun étant relié à l'un des multiplexeurs du second ensemble de multiplexeurs (131 à 146), chacun de ces registres mémorisant le résultat d'une comparaison prédéterminée desdites comparaisons. 7. L'appareil de la revendication 3, dans lequel les moyens de commande de comparaison (49) comprennent des moyens pour produire des signaux de commande pour commander le fonctionnement desdits premier et second ensembles de multiplexeurs (101, 103, 105, 107; 131 à 146) et dudit multiplexeur (109), de ladite pluralité de comparateurs (121, 122, 123, 124) et d'une pluralité de registres comprenant lesdits moyens formant registres (R1 à R44).