FR 2599873 A1 19871211 FR 8707688 A 19870602 La présente invention concerne les affichages vidéo, et en particulier le traitement des données permettant de produire des signaux vidéo. De nombreux systèmes existent sur le marché qui proposent une interface entre un calculateur numérique et un affichage vidéo à balayage ligne par ligne; de très nombreux autres systèmes sont également décrits dans des publications imprimées. La conversion d'une information de calculateur numérique en données de pixel utilisées par un tube cathodique 10 classique à balayage ligne par ligne nécessite un traitement considérable des données, en particulier pour un affichage graphique complexe et en couleurs. Dans de nombreux ordinateurs personnels, une partie importante du temps de fonctionnement du microprocesseur est utilisée à traiter des données dans ce seul but, car il est habituellement nécessaire 15 de déplacer une quantité considérable de données pour produire chaque trame. L'importance du problème peut être appréciée par le fait que, avec les techniques habituelles, l'obtention d'un affichage graphique ayant la qualité, par exemple, d'un film 20 35 mm, nécessite une puissance de calcul bien au delà de celle des microprocesseurs habituels, et même au delà de celle de la plupart des mini-ordinateurs et ordinateurs centraux, si l'on souhaite des performances satisfaisantes d'interactivité. On a beaucoup mis l'accent sur le développement de circuits qui permettent d'améliorer les affichages au moyen de circuits 25 spécifiques, "unités graphiques" et analogues, qui évitent de surcharger l'unité centrale du calculateur. La présente invention entre dans cette catégorie, en ce qu'elle propose une unité graphique qui, bien que fonctionnant sous le 30 contrôle général d'une unité centrale, produit les données de pixel de façon essentiellement indépendante de cette unité centrale. Dans de nombreux systèmes graphiques habituellement rencontrés, une mémoire de mappe de bits (c'est-à-dire un tampon de trame) est utilisée pour mémoriser les données de pixel avant que ces données ne soient affichées. Les données contenues dans ces mémoires sont souvent déplacées pour chaque trame sous contrôle de l'unité centrale. Dans certains cas, les données de pixel sont composées à l'intérieur du tampon de trame et, par exemple, on écrit les données plusieurs fois aux mêmes emplacements jusqu'à obtenir les.données de pixel finales. Un tampon de trame typique est décrit en relation avec la figure 2b, et la différence entre cette technique de mémorisation de l'art antérieur et la présente invention est décrite en relation avec la figure 2c. De façon générale, la présente invention permet un affichage graphique amélioré en s'aidant principalement d'une capacité 10 mémoire supplémentaire plutôt que d'une vitesse de traitement plus grande. En effet, avec la baisse continuelle du prix des mémoires, on pense que cette manière de procéder est nettement plus économique que celle qui se fonde sur l'augmentation de la vitesse de traitement. En effet, ces dernières années le 15 coût des mémoires en termes de centimes par bit a diminué bien plus vite que n'a augmenté la vitesse des microprocesseurs, ou que n'a diminué le coût des circuits permettant d'obtenir un traitement -plus rapide. A cet effet, selon l'invention, il est proposé un système 20 perfectionné d'affichage vidéo permettant de produire des données de pixel pour un affichage à tube cathodique ou analogue. On utilise une première mémoire pour mémoriser les données représentatives d'une pluralité d'objets que l'on souhaite afficher. Les données correspondant à chaque objet 25 sont mémorisées dans des positions de cette première mémoire accessibles de façon contigUe. Les besoins d'allocation dans cette première mémoire sont variables pour chacun des objets, c'est-à-dire qu'un objet peut être mémorisé sur un nombre d'emplacements différent de celui d'un autre objet. Une 30 seconde mémoire, qui peut être incluse dans la première mémoire, est utilisée pour mémoriser des attributs pour chacun des objets. Ces attributs peuvent comprendre des informations telles que la position sur l'écran, la priorité de l'objet (depuis l'arrière-plan jusqu'à l'avantplan), l'emplacement de l'objet dans la première mémoire, le découpage aux dimensions de la lucarne de visualisation, ainsi qu'une instruction pour la première ligne d'affichage de cet objet. De préférence, la première et la seconde mémoire sont toutes deux une mémoire unique. Cette mémoire unique possède deux ports de données, l'un pour produire des mots série pour le tampon, et l'autre pour recevoir des données en provenance d'une unité centrale. On utilise un tampon de ligne pour composer chaque ligne de données vidéo. De préférence, on utilise des doubles tampons de lignes pour produire un flux continu de données de pixel vidéo. Un premier moyen de contrôle (répartiteur) reçoit les attibuts en provenance de la seconde mémoire et contrôle l'accés des données à la première mémoire. Un second moyen de 10 contrôle (contrôleur de tampon de ligne) contrôle le chargement des données dans le tampon de ligne. Dans certains cas, on mémorise des instructions à l'intérieur de la première mémoire en même temps que les données, et le premier et le second contrôleurs fonctionnent tous deux en réponse à ces 15 instructions. En général, en fonctionnement, on lit une ligne de données pour chaque objet vers le tampon de ligne de manière à composer une ligne de données de pixel pour l'affichage. En ce qui concerne le tampon, il est organisé en une 2O pluralité de cellules, de sorte que les données puissent être transférées, lorsque l'on utilise par exemple un bit par pixel, à une vitesse plus élevée que lorsque l'on utilise plusieurs bits pour définir un seul pixel. Les données du 25 tampon de ligne peuvent représenter, pour chaque pixel, différents types de données de pixel, par exemple des données RVB, ou une donnée d'indexation dans une table de recherche de couleur. En outre, le tampon de ligne assure le masquage, permettant d'afficher des objets de forme quelconque. 30 D'autres caractéristiques et avantages de la présente invention, ainsi que son fonctionnement, vont maintenant être décrits en détails, en référence aux figures annexées, sur lesquelles: - la figure la est une vue perspective montrant plusieurs 35 objets que l'on souhaite afficher avec leur priorité relative, c'est-à-dire leur position entre l'avant-plan et l'arrière-plan, - la figure lb illustre un écran de tube cathodique affichant les objets de la figure la, - la figure 2a illustre plusieurs objets affichés sur un tube cathodique, et elle sera expliquée en liaison avec les figures 2b et 2c, - la figure 2b est un diagramme utilisé pour illustrer la manière dont les objets montrés sur l'affichage de la figue 2a sont mémorisés dans un tampon de ligne de l'art antérieur, - la figure 2c est un diagramme utilisé pour montrer la manière dont les données nécessaires pour afficher les objets 10 de la figure 2a sont mémorisées dans la mémoire selon la présente invention. Cette figure montre également le contenu typique d'une table de répartition des objets, - la figure 3 est un diagramme permettant d'illustrer la mémorisation des données de configuration, des données de 15 table de répartition des objets et des données d'objets, - la figure 4 est un diagramme utilisé pour illustrer la relation existant dans la mémoire entre la table de répartition des objets et les données d'objets, pour les 20 objets de-la figure 3, - la figure 5 est un diagramme par blocs du système de la présente invention, comprenant une RAM vidéo tampon optionnelle, - la figure 6 est un diagramme illustrant la configuration du tampon de ligne et un contenu typique de cellule, 25 - la figure 7 est un diagramme illustrant l'architecture de la cellule dans le tampon de ligne, - la figure 8 est un diagramme illustrant la configuration d'une cellule individuelle, et en particulier de la cellule mémoire de groupe 0, - la figure 9 est un schéma par blocs du contrôleur de tampon de ligne, - la figure 10 illustre le format de table de répartition préférentiel, -la figure 11 est un schéma par blocs du répartiteur, 35 - la figure 12a illustre un affichage, et permet de décrire le fonctionnement de la présente invention pour afficher une mappe de bits rectangulaire, - la figure 12b est un diagramme utilisé pour illustrer le volume mémoire nécessaire pour obtenir l'affichage de la figure 12a, - la figure 13a illustre un affichage, et permet de décrire le fonctionnement de la présente invention en ce qui concerne le positionnement horizontal, - la figure 13b est un diagramme permettant d'illustrer le volume mémoire utilisé pour obtenir l'affichage de la figure 13a, - la figure 14a illustre un affichage, et permet de décrire 10 le fonctionnement de la présente invention en ce qui concerne le positionnement vertical, - la figure 14b est un diagramme utilisé pour illustrer le volume mémoire nécessaire pour obtenir l'affichage de la 15 figure 14a, -. la figure 15a illustre un affichage, et permet de décrire le fonctionnement de la présente invention en ce qui concerne la lucarne de visualisation horizontale, - la figure 15b est un diagramme utilisé pour illustrer le volume mémoire nécessaire pour obtenir l'affichage de la 20 figure 15a, la figure 16a illustre un affichage, et permet de décrire le fonctionnement de la présente invention en ce qui concerne le défilement horizontal, - la figure 16b est un diagramme utilisé pour illustrer le 25 volume mémoire nécessaire pour obtenir l'affichage de la figure 16a, - la figure 17a illustre un affichage, et permet de décrire le fonctionnement de la présente invention en ce qui concerne la lucarne de visualisation verticale, 30 - la figure 17b est un diagramme utilisé pour illustrer le volume mémoire nécessaire pour obtenire l'affichage de la figure 17a, - la figure 18a illustre un affichage, et permet de décrire le fonctionnement de la présente invention en ce qui concerne 35 le défilement vertical, la figure 18b est un diagramme utilisé pour illustrer le volume mémoire nécessaire pour obtenir l'affichage de la figure 18a, - la figure 19a illustre un affichage, et permet de décrire le fonctionnement de la présente invention en ce qui concerne une lucarne de visualisation de contour quelconque, - la figure 19b est un diagramme utilisé pour illustrer le volume mémoire nécessaire pour obtenir l'affichage de la figure 19a, - la figure 19c est une illustration complémentaire d'un affichage utilisé pour décrire la lucarne de visualisation de 0 contour quelconque de la figure 19a, 10 - la figure 20a illustre un affichage et permet de décrire le fonctionnement de la présente invention en ce qui concerne le masque d'incrustation, - la figure 20b est un diagramme utilisé pour illustrer le volume mémoire nécessaire pour obtenir l'affichage de la 15 figure 20a, - la figure 20c est un diagramme complémentaire utilisé pour décrire le masque d'incrustation de la figure 20a, - la figure 21a illustre un affichage, et permet de décrire le fonctionnement de la présente invention pour un objet 20 complexe, - la figure 21b est un-diagramme utilisé pour illustrer le volume mémoire nécessaire pour obtenir l'affichage de la figure 21a, - la figure 21c est un diagramme complémentaire utilisé pour 25 décrire l'objet complexe de la figure 21a, - la figure 21d est un diagramme utilisé à propos de la description de la configuration mémoire de l'objet complexe des figures 21a, 21b et 21c, - la figure 22 est un diagramme montrant le format 30 préférentiel du mot de commande, - la figure 23 est un diagramme montrant la mappe de bit préférentielle et les formats préférentiels de mots de données d'éxécutions séquentielles, - la figure 24 est un chronogramme utilisé pour décrire le 35 fonctionnement de la présente invention. On va maintenant décrire un système d'affichage vidéo permettant de produire des données de pixel pour un affichage à balayage ligne par ligne. Dans la description qui suit,on donnera un certain nombre de détails particuliers tels que le nombre particulier de bits,... pour permettre une compréhension complète de l'invention. Il est cependant évident pour l'homme du métier que la présente invention peut être mise en oeuvre sans ces détails particuliers. Par ailleurs, les structures bien connues telles que les registres, les processeurs,... ne sont pas montrées en détail pour ne pas obscurcir de façon 10 inutile la présente invention. Aperçu général de l'organisation de la mémoire de données d'affichage de la présente invention, et 15 comparaison avec l'art antérieur Sur la figure lb, on a illustré un affichage 25 produit par un tube cathodique à balayage ligne par ligne, comprenant une pluralité d'objets ou de fenêtres, en particulier les objets 20 26, 27, 28 et 29. Chaque objet affiche des données différentes, par exemple du texte, de la couleur,... L'affichage 25 avec ses fenêtres superposées est typique des affichages utilisés dans certains ordinateurs personnels tels que par exemple le MACINTOSH de APPLE COMPUTER. L'affichage 25 25 représente en fait ce qu'un observateur verrait si l'on assignait une priorité (depuis l'avant- plan jusqu'à l'arrière-plan) aux différents objets depuis le point de vision de l'utilisateur. Ceci est illustré figure la, sur laquelle les objets 26 à 29 ont été représentés sur des plans 30 différents espacés en direction z. L'affichage 25 peut donc être considéré comme constitué d'une pluralité d'objets séparés, chacun relevant une priorité dans la direction z, et chacun ayant une origine suivant les axes x et y. Comme on le verra, la présente invention est particulièrement utile pour obtenir un affichage tel que l'affichage 25, outre d'autres affichages. Dans la description qui suit, on décrira par commodité le système de l'invention comme opérant sur des objets ou fenêtres généralement rectangulaires; les enseignements de la présente invention peuvent être cependant appliqués pour former par exemple des polygones, et ces polygones peuvent être utilisés pour former des images complexes, comme on sait le faire dans la technique. L'utilisation du système décrit pour former des affichages complexes est décrit à propos de figures ultérieures telles que les figures 21a, 21b, 21c et 21d. On utilise fréquemment des tampons de trame dans les affichages de l'art antérieur. Le tampon de trame mémorise les données à afficher sous forme de mappe en relation biunivoque avec la position d'affichage. Les données d'affichage sont mémorisées pour chaque pixel. Les données sont lues, au cours de balayages successifs, dans le tampon de trame à une vitesse synchronisée avec la vitesse de synchronisation horizontale du tube cathodique. Par exemple, un tampon de trame peut contenir 15 24 bits de mémoire pour chaque pixel, permettant de représenter chacune des couleurs rouge, vert et bleu par 8 bits. Un affichage 30 similaire à l'affichage 25 de la figure lb 20 est illustré sur la figure 2a. On a représenté de façon imagée les objets constituant l'affichage 30 dans un tampon de trame 34 typique de l'art antérieur. On peut voir que les positions des objets sur l'affichage ont des emplacements correspondants dans le tampon de trame, comme illustré pour les objets 31 et 25 33. À Le plus souvent, le tampon de trame comprend une mémoire RAM accessible pour chaque pixel de l'affichage. La RAM permet de mémoriser pour tous les pixels un nombre prédéterminé de bits correspondants à l'intensité de la couleur (nombre de bits par 30 pixel) de la fenêtre de l'affichage ayant la couleur la plus intense ("profondeur" de la fenêtre). Si l'on se reporte & la figure 2c, on a illustré de façon imagée par la RAM 35 une RAM utilisée par la présente invention pour mémoriser des données d'affichage (descriptions 35 d'objet). Les données des objets de l'affichage 30 de la figure 2 a- sont mémorisées à l'intérieur de cette RAM. A -la différence des tampons de trame de l'art antérieur, les données de chaque objet sont mémorisées dans des emplacements consécutifs à l'intérieur de la RAM 35. C'est-à-dire que, par exemple pour l'objet 33, les données sont mémorisées dans des positions de mémoire accessible de façon contigue. Ceci est à l'opposé du tampon de la figure 2 b, dans lequel les données de -'objet 33 sont mémorisées dans des positions correspondantes à la position de l'objet sur l'affichage. Egalement, comme on peut le voir pour l'objet 31, les données représentant cet objet sont mémorisées dans des positions adjacentes à l'intérieur de la mémoire, et, ici encore, les 10 positions mémoire ne ressemblent pas à la position x-y de cet objet sur l'affichage. La "profondeur" de la mémoire 35 est choisie à une valeur convenable. Par exemple, si l'on utilise un système avec un bus de données à 32 bits, la mémoire peut avoir une 15 "profondeur" de 32 bits. Ici encore, la situation est différente de celle de la figure 2b o la "profondeur" de la mémoire était choisie de manière à être égale au nombre de bits utilisé pour chaque pixel. Il est important, dans la présente invention, que l'on puisse utiliser un nombre de bits 20 différent d'un pixel à l'autre pour décrire chacun des pixels. En d'autres termes, pour un objet donné, on peut utiliser un bit pour décrire certains des pixels de l'objet (par exemple blanc ou noir), tandis que pour d'autres pixels on peut utiliser un nombre important de bits pour définir une couleur 25 complexe. Le nombre de bits dans une ligne d'affichage (rangée horizontale de pixels) d'un objet donné peut également être différent d'une ligne d'affichage de l'objet à l'autre. De la sorte, pour un objet donné, on peut se trouver en présence d'une variation à la fois du nombre de bits utilisés pour 30 définir chaque pixel et du nombre de pixels utilisé pour définir chaque ligne d'afffichage. En plus des données d'affichage montrées à l'intérieur de la RAM 35, on mémorise des attributs pour chaque objet dans une table de répartition des objets. Cette table peut être 35 mémorisée dans une section de la RAM 35 ou dans une mémoire séparée. Dans le mode de réalisation actuellement préféré, la table de répartition des objets est mémorisée à l'intérieur de la RAM 35, quoiqu'elle soit déplacée vers une autre mémoire ' située à l'intérieur d'un bloc fonctionnel appelé "répartiteur" (figure 11) lors de son utilisation. Les attributs mémorisés pour chaque objet sont montrés de façon globale figure 2c et comprennent: la position de l'objet dans l'affichage (incluant l'origine, la hauteur de l'objet,...); la priorité de l'objet, c'est-à-dire la position de l'objet dans la direction z comme illustré figure la; l'emplacement dans la mémoire 35 ou l'objet est mémorisé; le découpage aux dimensions de la fenêtre de visualisation, y compris l'origine de la fenêtre de visualisation, la limite de la fenêtre de visualisation,... (ces différents paramètres seront expliqués plus loin); et l'instruction de première liste d'affichage, qui sera explicitée également plus loin. Par exemple, pour une mappe de bits- rectangulaire simple, les attributs d'objets décriraient la taille de l'objet, sa position, le nombre de 15 bits par pixels et sa première position consécutive dans la RAM 35. La figure 3 montre la RAM 35 avec une section de données de configuration 36, une table de répartition des objets 37, et les données de description d'objet telles qu'illustrées figure 20 2c. La section des données de configuration 36 contient des informations telles que l'endroit o doit être placée la table de répartition des objets, les données d'initialisation telle que les informations concernant la manière dont le système de l'invention doit assurer l'interface avec une unité centrale,... 25 La table de répartition des objets précitée pourrait avoir des rubriques telle que l'endroit o chaque objet est mémorisé dans la mémoire 35. Les flèches provenant de la table de répartition des objets 37 sur la figure 3 pointent donc vers les données correspondant aux objets 40 à 44. Comme indiqué, 30 la table de répartition des objets 37 est recopiée dans une mémoire à l'intérieur du répartiteur. Les adresses sélectionnant les objets eux-mêmes dans la RAM 35 sont produites par le répartiteur. La table est déplacée vers le répartiteur pendant la durée du retour de trame vertical. 35 Les pointeurs de la table de répartition des objets vers les données de description d'objet sont illustrés figure 4. La table de répartition des objets 37 est illustrée comme contenant les attributs des objets 41 à 45. L'un des attributs de chaque objet est un pointeur d'adresse de départ qui pointe sur la première ligne des données d'affichage dans la RAM 35. Le symbolisme graphique des objets 40 à 44 utilisé figure 3 a été reproduit sur les blocs représentant les données de chaque objet de la figure 4 pour établir la corrélation entre les figures 3 et 4. Il faut noter que le nombre de lignes de la RAM 35 utilisé pour mémoriser les données de chaque objet peut varier d'un objet à l'autre. Sur la figure 4 chaque ligne d'affichage (ligne 0 à ligne n) 10 est représentée avec la même largeur en mémoire. Ceci n'est cependant pas nécessaire. En se rapportant rapidement à la figure 10, on voit que la partie inférieure de cette figure montre le format de rubrique de la table de répartition. Le 15 champ 45 est un mot de 10 bits indiquant la longueur de ligne. Si toutes les lignes d'un objet particulier ont la même longueur, on utilise un compteur pour permettre la sélection d'une ligne suivante. Si chaque ligne d'un objet a une longueur différente, les mots de commande mémorisés dans les 20 données d'affichage comprennent, dans le format du mot de commande, un signal de fin de ligne. Si l'on se réfère rapidement à la figure 22, la commande de fin de ligne est le bit 23 de la commande "mappe de bit" (BMAP), le bit 23 de la commande "exécution" (RUN), le bit 23 de la commande 25 "exécutions séquentielles" (SRUNS), et le bit 23 de la commande "exécution d'écran" (RSCREEN). Aperçu du système de la présente invention Le système d'affichage vidéo de la présente invention 30 produit des signaux vidéo pour un affichage à balayage ligne par ligne. Dans le mode de réalisation préférentiel, des signaux numériques à 8 bits pour chacune des données de rouge, de vert et de bleu (RVB) sont produits sous forme de signaux vidéo pour un moniteur couleur, dans l'un des modes de fonctionnement (comme on le verra, dans un autre mode, le tampon de ligne produit un total de 16 bits de données RVB). En ce qui concerne l'affichage, il possède 640 pixels en direction horizontale et 480 pixels en direction verticale. Les trames non interlignées sont produites à une fréquence d'environ 60 Hz. Ces valeurs particulières ne sont cependant pas critiques en ce qui concerne la présente invention. Les trois composants principaux du système sont, comme on peut le voir figure 5, le répartiteur 48, la RAM 35 et le tampon de ligne 50. Le répartiteur 48 et le tampon de ligne 50 sont décrits en détail en relation avec les figures suivantes. Dans le mode de réalisation préférentiel, chacun de ces 10 composants peut être réalisés sous forme de circuit intégré à la demande distinct, enutilisant une technologie connue, par exemple la technologie à MOS complémentaires. La RAM vidéo 35 utilise une pluralité de RAM dynamiques couramment disponibles, et sera décrite plus bas. Les données d'affichage et la table de répartition des objets sont inscrites dans la RAM 35 par un ou plusieurs moyens connus. Par exemple, on peut employer comme unité centrale 56 un modèle'courant du commerce, avec un appareil à dessiner 55 couramment disponible telle que la référence NEC 20 7220. Comme illustré figure 5, un circuit d'interface de réseau 57 peut être utilisé pour recevoir les données d'affichage depuis un réseau puis les transférer dans la RAM vidéo 35. Le circuit d'interface de réseau 57, l'unité centrale 56 et l'appareil à dessiner 55 sont illustrés en tant 25 que moyens différents de produire les données vidéo pour la RAM 35; il est cependant évident pour l'homme du métier que d'autres moyens peuvent être utilisés pour obtenir les données d'affichage et la table de répartition au format décrit dans la présente demande. En général, ces moyens fournissent les 30 données à la RAM vidéo en adressant la RAM par le bus 58 et en transmettant les données sur le bus 59. Le répartiteur 48 produit également des adresses sur le bus 58. Le tampon d'entrée vidéo 54 et l'unité arithmétique 3-D 53 ne sont pas nécessaires pour la présente invention, mais sont des exemples d'ensembles fonctionnels qui peuvent être placés en dérivation sur la RAM 35 pour charger directement des données dynamiques d'affichage d'objet dans le tampon de ligne 50, comme on le décrira plus bas. De cette manière, des objets changeant rapidement n'ont pas bescin d'être rechargés dans la RAM 35 chaque fois qu'ils sont modifiés. Les descriptions des objets dans ces ensembles fonctionnels sont mappées avec la même zone d'adresses que les descriptions des objets dans la RAM 35. Un tampon d'entrée vidéi 54 qui peut servir d'"attrape-trame" pour recevoir des trames en provenance par exemple d'une caméra vidéo, peut être utilisé pour obtenir des données en liaison avec celles de la RAM vidéo 35. L'unité arithmétique 3-D 53 est un ensemble fonctionnel permettant de 10 calculer la description d'objet pour des modèles tridimensionnels, et peut être réalisée à partir d'éléments couramment disponibles tels que ceux commercialisés par WEITEK. Le tampon de RAM vidéo 51 n'est pas nécessaire pour la 15 présente invention. Il existe certaines applications dans lesquelles il peut être utilisé en raison de sa possibilité de mémoriser une trame de données entière. Comme on le verra, le tampon de ligne 50 produit une ligne de données à la fois et doit donc fonctionner à une vitesse compatible avec l'horloge 20 de synchronisation horizontale. Lorsqu'on l'utilise, le tampon 51 est organisé à la manière d'un tampon de trame classique de l'art antérieur, tel que celui décrit à propos de la figure 2b. En général, pour chaque trame de l'affichage, la table de 25 répartition est tout d'abord transférée vers le répartiteur 48. Le répartiteur commence alors à accéder aux données d'affichage de chacun des objets, en les prenant ligne par ligne. Par exemple, en commençant avec la ligne 0 de l'affichage, le répartiteur détermine ceux des objets qui 30 possèdent des données pour la ligne 0 et lit alors ces données dans la RAM 35 ou dans les ensembles fonctionnels 53 ou 54 avec couplage des adresses par le bus 58. Si une adresse est mappée dans la zone d'adresses d'un ensemble fonctionnel 53 ou 54, cet ensemble couplera alors les données de l'objet 35 identifié par l'adresse au bus 60 par l'intermédiaire du tampon de ligne. Le tampon de ligne 50 compose la ligne 0 à partir des données qu'il reçoit en provenance des différents objets se trouvant sur la ligne 0. La priorité de l'objet (position en direction z comme représenté figure la) détermine l'ordre dans lequel on lit les données de chaque objet dans la RAM 35 et dans les ensembles fonctionnels 53 et 54. Les commandes sont insérées dans les données lues dans la RAM 35 et dans les ensembles fonctionnels 53 et 54. Ces commandes, comme on le verra, sont interprétéesà la fois par le répartiteur 48 et par le tampon 50. Le répartiteur et le tampon de ligne fonctionnent donc tous deux de façon similaire à celle d'un processeur distribué, pour la préparation de 10 chaque ligne de données vidéo. Le tampon de ligne 50 exécute de nombreuses fonctions telles que la comparaison des signaux d'adresses reçus du répartiteur, comme on le décrira. Dans le - mode de réalisation préféré, le tampon de ligne 50 permet un "double tamponnage", c'est à dire que, lorsque l'on compose une ligne de données vidéo dans une section du tampon, on-lit 15 pour l'affichage une ligne de données vidéo qui a été préalablement composée dans une autre section du tampon. Après que chaque ligne de données vidéo a été composée dans le tampon 50, elle est transférée vers les convertisseurs 20 numérique / analogique 52 pour produire les signaux RVB destinés au moniteur. Si l'on utilise la RAM 51, les données vidéo sont alors transférées d'abord à la RAM 51, puis celle-ci est balayée pour en extraire les données et les transmettre aux convertisseurs numérique / analogique 52 25 permettant d'obtenir les signaux RVB pour le moniteur. RAM Vidéo Dans le mode de réalisation préférentiel, la RAM 35 comprend 30 une pluralité de RAMs dynamiques couramment disponibles, appelées par les professionnels "RAM vidéo". Ces RAM possèdent deux ports, l'un est un port série, l'autre est un port classique d'accès direct. Les données peuvent être inscrites et lues par le port d'accès direct qui est couplé au bus 59. Les données sont lues par le port série connecté au bus 60 de la figure 5. En fait, à l'intérieur de chacune des RAMs dynamiques, les données sont déplacées depuis la matrice RAM interne vers un registre à décalage, puis lues en série à partir de ce registre à décalage. Bien que le registre à décalage soit chargé en alignement avec les rangées de la matrice de RAM interne, les données peuvent être extraites par translation du registre à décalage à partir de n'importe quelle position du registre. La lecture des données depuis le registre à décalage peut être réalisée de façon asynchrone par rapport aux autres opérations dans la mémoire. Un exemple typique de RAM vidéo est la "41264" de NEC Electronics. La mémoire a un temps d'accès de 120 ns pour le port RAM et de 30 ns pour le port série. Dans le mode de réalisation 10 préférentiel, la RAM 35 utilise ces bus de RAM dynamique pour constituer une mémoire ayant une capacité d'au moins 256 Koctets, et de préférence 1 Moctet. Les ports série sont couplés aux 32 lignes du bus 60 de sorte que, pour chaque adresse d'entrée appliquée aux RAMs dynamiques pour charger le 15 registre à décalage et choisir une adresse de départ de décalage, on applique au bus 60 jusqu'à 256 mots de sortie en série, de 32 bits chacun, cette lecture étant effectuée au cours d'un unique signal d'horloge. En d'autres termes, on 20 peut lire les données du registre à décalage d'après une adresse initiale au cours d'un unique signal d'horloge par chargement du registre à décalage avec une rangée et identification d'une position de départ du registre à décalage. Enchaînement général des commandes Supposons que le système de la figure 5 est en train de commencer la composition d'une ligne de trame particulière de 30 l'affichage. On va décrire brièvement l'enchaînement des commandes qui se produit au cours de cette composition. Le répartiteur 48 détermine ceux des objets qui se trouvent sur le parcours de la ligne de trame courante et, parmi ces objets, lequel est le plus éloigné en direction de 35 l'arrière-plan. Une fois cette détermination effectuée, le répartiteur lit les données d'attribut de cet objet, qui avaient été précédemment chargées dans le répartiteur depuis la RAM 35 pendant la durée du retour de trame vertical. Le répartiteur prend alors le contrôle du bus d'adresse 58 et applique une adresse à ce bus, qui est la première adresse des données pour cette ligne de l'objet (ligne qui coïncide avec la ligne de trame en cours sur l'affichage). L'un des 5 ensembles fonctionnels de la figure 5, ou bien la RAM 35, répond à l'adresse envoyée sur le bus 58. Les données adressées sont localisées de cette manière, et elles sont préparées pour la transmission sur le bus 60. Dans le cas d'une RAM vidéo 35, l'adresse indique quelle rangée doit être 10 transférée vers le registre à décalage de la RAM vidéo, et à partir de quelle position du registre le décalage doit commencer. Simultanément à la création de l'adresse sur le bus 58, le répartiteur applique une séquence d'instructions (cf. figures 15 22 et 23) qui prépare le tampon de ligne à reçevoir les données qui sont sur le point d'être envoyées par le circuit fonctionnant en réponse à l'adresse du répartiteur (on notera que ces instructions sont identiques aux instructions contenues dans les descriptions d'objets mémorisées dans la 20 RAM 35 ou produites par les ensembles fonctionnels 53 et 54; le tampon de ligne reçoit simplement un flux d'instructions et les traite sans connaître leur origine). Cette séquence d'instructions en provenance du répartiteur a pour effet, plus particulièrement: e1) de préparer le contenu du tampon de 25 ligne pour l'objet particulier, avec établissement d'une origine absolue (un point de référence horizontal à partir duquel l'on décalera l'information de position horizontale de l'objet), un mot de constante (bits de remplissage pour des données non fournies par les données d'écriture de la description de l'objet, par exemple 15 bits pour des mappes de 30 bits de 1 bit par pixel, de manière à former un mot complet de 16 bits), ainsi que certaines informations de mode; (2) d'effacer le bit de masquage dans le tampon de ligne (de manière à empêcher toutes inscriptions de cellules du tampon de ligne); (3) de positionner le bit de masquage sur une partie contigie du tampon de ligne (en passant outre à l'opération d'effacement qui vient juste d'être effectuée) correspondant à l'étendue visible souhaitée en direction horizontale de l'objet sur cette ligne, que l'on appellera "lucarne de visualisation horizontale" (par exemple, même si la description de la ligne de l'objet chargé dans le tampon de ligne s'étend au-delà de cette lucarne de visualisation vers la droite ou vers la gauche, seule la partie du tampon de ligne située à l'intérieur de cette lucarne de visualisation sera modifiée, et ainsi l'objet ne sera visible sur l'affichage que dans les limites de cette lucarne de visualisation); (4) de former le premier mot de-la première 10 instruction pour cette ligne (par exemple, si l'objet est une mappe de bits rectangulaire, ce premier mot sera une instruction "mappe de bits", comme illustré figure 22). Après achèvement de l'opération d'adressage sur le bus 58 et achèvement du chargement de la séquence d'instructions depuis 15 le répartiteur vers le tampon de ligne, le répartiteur se dessaisit du contrôle du bus 58 et commence à envoyer des impulsions d'horloge (sur une simple ligne de signal, non représentée) à la RAM 35 ou à l'ensemble fonctionnel qui a été adressé avec l'adresse de départ des données.de l'objet pour 20 cette ligne. Ces données peuvent compléter une instruction commencée par le premier mot qui vient juste d'être envoyé par le répartiteur (notamment si le premier mot était une instruction "mappe de bits" ou "exécutions séquentielles") ou pourrait recommencer une instruction (notamment si le premier 25 mot était une instruction "exécution"). Une fois achevé le chargement de la première instruction de la ligne, les données suivantes peuvent alors contenir des données additionnelles pour la ligne, par exemple lorsque l'on charge une séquence complexe d'"exécutions" pour décrire les faces d'un objet 30 polyédrique tridimensionnel. Le répartiteur détermine le moment o la fin de la ligne de données pour l'objet a été atteinte de l'une des deux manières suivantes: si l'objet a des lignes de longueur fixe, en déterminant que la longueur a été atteinte; si l'objet a des lignes de longueur variable, en détectant un bit de fin de 35 ligne (cf par exemple le bit 23 de l'instruction "mappe de bit" de la figure 22) sur la dernière instruction de la ligne de cet objet. A ce moment, le répartiteur interrompt l'envoi d'impulsions à la RAM 35 ou à l'ensemble fonctionnel produisant les données, et détermine si un autre objet apparaît sur cette ligne. Dans l'affirmative, le répartiteur retient l'objet suivant juste, dans la direction de l'avantplan, celui que l'on vient de charger, et commence une opération de chargement pour cet objet d'une manière exactement identique à celle décrite ci-dessus pour le précédent objet (on notera que, là o cet objet coïncide avec le précédent objet de la ligne, il va remplacer les données 10 déjà inscrite dans la tampon de ligne, donnant l'impression de se trouver devant l'objet précédent). S'il ne se trouve plus d'objet apparaissant sur cette ligne, le répartiteur attendra le prochaine intervalle de retour de ligne pour commencer à composer la ligne de trame suivante de l'affichage à l'intérieur du tampon de ligne, exactement de la même manière 15 qu'il avait composé la ligne précédente. Il existe cependant une exception, lorsque la description de ligne d'un objet est contenue dans la RAM 35 et franchit une limite de rangée. Dans ce cas, le registre à décalage de la RAM 35 sera vidé avant que les données de description de ligne de l'objet n'aient été complètement chargées, de sorte que le répartiteur va, à cet instant, prendre le contrôle du bus d'adresse 58 et recharger le registre à décalage avec le contenu de la rangée 25 suivante de la RAM 35. En général, cette opération de rechargement peut être anticipée et synchronisée avec la lecture par décalage des données, de sorte que le registre & décalage se recharge entre la dernière impulsion de fin du premier registre à décalage chargé et la première instruction de début du registre à décalage rechargé, de sorte que la 30 cadence d'horloge des données reste uniforme. Dans le mode de réalisation préférentiel, on utilise deux tampons de ligne de manière à pouvoir charger l'un, comme on vient de le décrire, tandis que l'on explore l'autre pour le lire et l'afficher, les rôles étant inversés au prochain intervalle de retour de ligne. De la sorte, on compose une ligne pendant exactement une durée de ligne avant de l'afficher. On notera que, si lé chargement de toutes les descriptions de ligne de tous les objets se trouvant sur une ligne de trame prend plus de temps que le chargement que l'on peut exécuter pendant la durée d'une ligne horizontale de l'affichage, alors la composition de la ligne ne sera pas achevée à temps lorsque l'on aura besoin de la lire pour l'afficher. Ceci constitue une limitation essentielle de la configuration dans laquelle le tampon de ligne 50 est directement relié aux convertisseur numérique / analogique 52, et on peut y remédier en plaçant une RAM 51 intercalaire 10 (comme illustré figure 5) . La RAM 51 est une matrice de mémoire à double tampon capable de mémoriser et de restituer par balayage deux trames complètes d'image vidéo ayant l'intensité de couleur la plus élevée qui puisse être produite par le tampon de ligne (16 bits par pixel dans le mode de réalisation préférentiel). Avec cette RAM 51 supplémentaire, 15 le reste du système peut prendre tout le temps nécessaire pour la composition de chaque ligne avant que celle-ci ne soit transférée dans l'un des tampons de trame, puisque l'un des tampons de trame rafraîchira l'écran avec une image stable 20 pendant que l'autre trame est peu à peu composée, ligne par ligne. Lorsque cette composition de trame est achevée, l'appareil attend l'impulsion de retour vertical et permute les rôles des tampons de trame de manière à commencer à composer la trame suivante pendant que celle qui vient juste d'être achevée est affichée. De cette manière, on peut réaliser une composition ayant un degré de complexité quelconque. Format de la table de répartition Dans l'exemple donné, la table de répartition des objets est configurée pour 64 objets, comme illustré sur la table 65 de la figure 10. La priorité de l'objet (position dans la direction z) n'est pas mémorisée telle quelle, mais est 35 simplement dérivée de la position à laquelle les attributs de l'objet sont mémorisés. Plus précisemment, l'objet 63 a la priorité la plus élevée, c'est-à-dire que c'est lui qui est le plus près de l'avantplan, et il est mémorisé dans le premier emplacement (adresse la plus élevée assignée à la table de répartition). Les attributs de chaque objet comprennent 4 mots de 32 bits (mot 0 à mot 4), avec le contenu particulier de chaque mot indiqué figure 10 sous le titre "format de rubrique de la table de répartition". Ainsi, la table de répartition des objets complète consiste en lKoctets ou, avec la structure préférentielle donnée à la RAM 35, une rangée de RAM. De la sorte, une seule opération de chargement du port série de la RAM vidéo est nécessaire pour lire la RAM 35 lorsque l'on transfère la table dans le répartiteur. 10 Le mot 0 de chacun des objets comprend un champ 66 de 12 bits qui donne l'origine absolue de l'objet en direction horizontale de l'affichage. Ce champ est suffisamment large pour permettre de placer l'origine à droite ou à gauche de -15 l'affichage, ce qui peut être utile comme on le montrera plus loin. Le champ 67 de 20 bits du mot 0 donne l'adresse de départ dans la RAM 35. Il s'agit de l'adresse référencée "pointeurs d'adresse de départ" de la ligne 0, sur la figure 4. Le champ 68 de 9 bits du mot 1 indique la ligne, à partir du 20 haut de l'affichage, à laquelle l'objet commence. Le champ 69 de 9 bits donne la hauteur de l'objet sur l'affichage. Le bit 70 du mot 1 est un bit de contrôle de mémoire pour l'accès à la RAM 35. Le bit 71 indique le mode d'affichage, en particulier si les données de description d'objet de la RAM 35 représentent des signaux RVB, ou s'il s'agit simplement d'un pointeur vers une table de recherche de couleur (référencée X,L sur les figures représentant le tampon de ligne). Le bit 72 indique si la longueur de laligne est fixe ou variable et, 30 comme précédemment indiqué, la longueur de la ligne se trouve dans le champ 45 de 10 bits au cas o la longueur de ligne est fixe. Le champ 73 de 10 bits du mot 2 donne l'origine de la lucarne de visualisation (origine vers la gauche) et le champ 74 de 10 bits donne la limite de la lucarne de visualisation (étendue vers la droite de la lucarne de visualisation). La lucarne de visualisation sera décrite en détails plus loin. Le champ 75 de 12 bits donne un mot de constante utilisé en relation avec certaines commandes permettant le "remplissage" d'emplacements du tampon. Lorsqu'un mot de constante de 16 bits est nécessaire, on utilise une commande particulière, identifiée sur la figure 22 par la commande "remplacement de constante". Les quatre bits supérieurs et les 12 bits inférieurs du "mot-C" sont indiqués par les champs respectifs 76 et 77 sur la figure 22. Le mot 3 est un champ de 32 bits 78 qui est le premier mot de la première ligne de l'objet. Plus précisément, ce champ sera une commande, telle que "mappe de 0 bits" ou "exécution", comme indiqué figure 22. 10 Répartiteur En se référant à la figure 11, la table de répartition, 15 lorsqu'on la transfère au répartiteur, est mémorisée dans le répartiteur avec un format différent de manière à permettre un traitement plus rapide. La mémoire 81 contient l'adresse de départ de chaque objet dans une section 83. Les autres attributs, à l'exception de la ligne de départ et de la hauteur de l'objet, sont mémorisés à l'intérieur de la mémoire 20 81, dans la zone référencée "autres données". Le circuit 82 comprend 64 comparateurs parallèles, un pour chaque objet. Chaque comparateur exécute la fonction de comparaison de la ligne courante (en provenance du compteur de 25 ligne 88) avec d'une part la ligne de départ (ligne-D) de l'objet et la ligne de fin (ligne-F) de l'objet. Il existe une cellule de 1 bit associée à chaque objet compris dans la section 84 du circuit 82. Pour chaque objet, le circuit 82 exécute une sommation logique du contenu de cette cellule avec le résultat de la comparaison. Plus précisément, on exécute: 30 LIGNE-D RAM 35 et chargée directement dans le circuit 82. Le fonctionnement du circuit 82, du circuit de priorité 89 et du décodeur 90 sera mieux compris si l'on explique tout d'abord leur finalité. Habituellement, un objet ne recouvre 15 pas l'affichage entier depuis le haut jusqu'en bas. On perdrait un temps considérable si le répartiteur de la figure 11 devait fonctionner sur des objets correspondant à des lignes o l'objet n'est pas présent. Par exemple, supposons que l'objet 0 est présent entre les lignes d'affichage 10 et 20: on perdrait du temps si les attributs de l'objet étaient 20 examinés pour les lignes 0 à 9 et pour les lignes 11 et suivantes. Les 64 comparateurs parallèles 82 ne produisent chacun un signal vers le circuit de priorité 89 que lorsque l'objet est présent sur la ligne courante d'affichage 25 correspondant à l'état du compteur 88. Ceci permet de ne pas prendre en compte les objets pour les lignes o l'objet n'est pas présent. Au début de chaque ligne d'affichage, les 64 bits des cellules 84 sont tous positionnés à 1. On effectue alors la comparaison en parallèle pour les 64 objets, ce qui détermine 30. si l'objet est présent ou non pour la ligne considérée. Si l'objet est présent pour la ligne, on applique, comme indiqué plus haut, un signal de sortie au circuit de priorité 89. Le circuit de priorité 89 examine les sorties du circuit 82 et produit un signal vers le décodeur 90 indiquant le numéro de priorité le plus élevé que l'on a rencontré. Le décodeur 90 sélectionne alors cet objet à partir de la mémoire 80. Après avoir effectué cette sélection, le décodeur positionne le bit de la section 84 de cet objet à 0. Ceci empêche l'objet d'être à nouveau sélectionné pour une ligne particulière d'affichage, puisque le signal de sortie du comparateur tombe à 0 pour cet objet. Le circuit de priorité sélectionne alors l'objet suivant ayant la priorité la plus élevée, jusqu'à ce que tous les objets présents pour une ligne donnée soit pris en considération. Au début de la ligne d'affichage suivante, les bits sont à nouveau positionnés à 1 dans la section 84. De cette manière, seuls les objets qui devront être considéré 10 pour une ligne donnée sont pris en considération, et les objets sont pris en considération dans l'ordre de leur priorité la plus élevée. Le registre 92 (registre à 20 bits), le circuit d'incrémentation d'adresse 94, le compteur de mots 95 et l'additionneur 96 fournissent des adresses à la RAM 35 par 15 l'intermédiaire du tampon d'adresses 97. Au fur et à mesure que chaque objet est sélectionné par le décodeur 90, son adresse de départ est appliquée au registre 92 et à la RAM 35 par l'intermédiaire du tampon 97, de manière à sélectionner le premier mot de données pour la ligne. Si la longueur du mot 20 pour cet objet est fixe (bit 72 de la figure 10), l'incrément nécessaire pour sélectionner le premier mot de données pour la ligne suivante est appliqué au circuit d'incrémentation d'adresse 94 et de l'additionneur 96, et additionné à 25 l'adresse contenue dans le registre 92. La nouvelle adresse est alors retournée à la section 83 de la mémoire 81 et est utilisée pour la ligne suivante. Si, en revanche, les données ne sont pas fixes pour la ligne, leur longueur est déterminée par le champ 45 de la figure 10. Le compteur de mots 95 compte 30 la longueur de la ligne au fur et à mesure que les mots sont lus dans la RAM 35. Pendant ces opérations, l'ancienne adresse est ajoutée (ligne 98) à la sortie du compteur 95 dans l'additionneur 96 une fois la ligne de l'objet complètement chargée. Ici encore, la nouvelle adresse de départ pour la ligne suivante est le résultat de cette addition, et elle est mémorisée dans la section 83 de la mémoire 81. On notera que le compteur de mots 95 est nécessaire aussi bien pour des objets de longueur fixe que de longueur variable, puisque les données nécessaires pour une ligne d'un objet peuvent franchir les limites de rangée des données de la RAM 35, nécessitant un rechargement du registre à décalage de la RAM vidéo de la RAM 35. Le compteur 95 applique alors un signal au contrôleur d'état défini, permettant à ce contrôleur d'autoriser la RAM 35 à recharger les registres à décalage, la rangée suivante de la RAM utilisant l'adresse déterminée par la somme du compteur de mots 95 et de l'ancienne adresse mémorisée dans le registre 92 calculé par l'intermédiaire de l'additionneur 96, cette 10 somme étant appliquée par la ligne 99 au tampon 97. Les adresses de rafraîchissement sont produites par le circuit 93 pour contrôler le rafraîchissement de la RAM dynamique de la RAM 35. Les données en provenance de la mémoire 81, telles que 15 l'origine absolue, sont appliquées pour chaque objet, par l'intermédiaire du tampon 102, au tampon de ligne via le bus de données 100. Le contrôleur d'état défini 101 contrôle le fonctionnement du circuit de répartition et sa commande temporelle. Il reçoit 20 un signal sur la ligne 105 en provenance du circuit 104 de la figure 9. Ce signal informe le répartiteur que la dernière instruction (bit de fin de ligne) a été reçue, et que les données pour l'objet suivant doivent être envoyées. Il est également utilisé en mode à longueur de ligne variable afin 25 d'établir le moment o une ligne d'une donnée d'objet a fini d'être rechargée. Tampon de ligne Tout d'abord, en référence à la figure 6, le tampon de ligne posséde 640 -cellules, une pour chaque pixel situé sur une ligne d'affichage (on a représenté figure 6 un tampon de ligne unique; il est cependant rappelé qu'il existe deux tampons de ligne pour permettre un double tamponnage dans le mode de réalisation préférentiel, ce second tampon de ligne étant 35 représenté figure 7, par exemple). Chaque cellule comprend de la place mémoire pour 16 bits (désignés RVB ou X,L), un bit de mode et un bit de masquage. Dans le mode de réalisation préférentiel, les données RVB sont divisées en 5 bits pour le rouge, 6 bits pour le vert et 5 bits pour le bleu. Si les données RVB sont mémorisées à l'intérieur de la cellule, alors un 1 binaire est mémorisé pour le bit de mode (mode image). Sur la figure 6 ce bit a été représenté comme étant soit I soit L, pour les besoins de la description. Les 16 bits peuvent, en variante, être utilisé pour mémoriser des données qui peuvent servir de pointeur vers une table de recherche. Ceci correspond au mode "L" (mode de table de recherche de couleur). Les 16 bits sont divisés, dans le mode de 10 réalisation préférentiel, en 8 bits pour une table de recherche et 8 bits supplémentaires qui peuvent être utilisée par exemple pour choisir une table particulière de recherche. Dans le mode L, les couleurs RVB sont choisies depuis la table de recherche. Dans ce cas, RVB peuvent être sur 8 bits chacun, 15 comme on l'a montré sur la figure 5 o l'on applique ces 8 bits aux convertisseurs numérique / analogique 52. Le bit de masquage illustré sur la rangée 107 empêche ou permet l'écriture dans une cellule particulière. L'utilisation de ce 2 bit sera décrite plus loin. Il est important de noter que, 20 pour une ligne donnée quelconque, les données RVB peuvent être mélangées avec des données X,L. Ainsi, comme illustré figure 6, la cellule 109 (pixel 4) peut avoir des données RVB directement convertibles par les convertisseurs numérique / 25 analogique pour le moniteur, tandis que le contenu de la cellule 110 (pixel 5) peut être une adresse pointant sur une table de recherche de couleur. Cette très grande souplesse permet la sélection de couleurs qui, sinon, ne pourrait être obtenues à partir du champ à 16 bits. Les cellules mémoire pour chaque pixel sont groupées de 30 façon inhabituelle et, comme on le verra, ceci procure un important avantage. Sur la figure 7, le tampon de ligne A et le tampon de ligne B sont tous deux représentés avec 32 groupes de cellules de mémoire. Chaque groupe de cellules de mémoire comprend 20 cellules. Si l'on examine le groupe de 35 cellules 0 (représenté à l'intérieur du rectangle 120 de la figure 7), ce groupe contient des données de pixel pour les pixels 0, 32, 64, 96,... jusqu'au pixel 608, comme illustré figure 8. Le groupe de cellules de mémoire 1 contient les données de pixel pour les pixels 1, 33, 65, 97,... jusqu'au pixel 609. Ceci jusqu'au groupe de cellules de mémoire 31, qui contient les donnés de pixels pour les pixels 31, 63, 95, 127,... jusqu'au pixel 639. Si l'on se réfère maintenant à la figure 7, chaque groupe de cellules de mémoire est appliqué à un bus 112 de limite gauche ou d'adresse d'écriture de mappe de bits, à un bus 113 de limite droite, à un bus 100 d'écriture des données, à un bus 115 de mot de constante, à un bus 116 de commande d'écriture, 10 à un bus 117 de lecture d'adresse, et à un bus 118 de lecture des données. Les bus reçoivent ces signaux du contrôleur de tampon de ligne représenté figure 9, du répartiteur et de la RAM 35. Si l'on se réfère maintenant à la figure 8, chaque groupe de 15 cellules de mémoire, comme on l'a indiqué, comprend 20 cellules, c'est-àdire une place mémoire pour 20 pixels. Chaque cellule telle que la cellule 119 comprend les mémoires de données d'affichage (RVB ou X,L), une mémoire de bit de mode et une mémoire de bit de masquage, comme on l'a expliqué 20 plus haut à propos de la figure 6. En outre, chaque cellule comprend un décodeur d'adresse. Ce décodeur d'adresse reçoit les signaux d'adresse de lecture sur le bus 117 et permet aux données des cellules d'être lues sur le bus 118 (c'est-à-dire les signaux RVB ou X,L, ainsi que le bit de mode). Ceci est 25 effectué après qu'une ligne ait été composée dans le tampon et ait été lue à partir de ce tampon pour être affichée. En outre, chaque cellule comprend des moyens de calcul, en particulier des circuits logiques qui permettent de faire des 30 comparaisons entre le numéro du pixel de la cellule et la limite gauche (ou l'adresse d'écriture de la mappe de bits) sur le bus 112 et avec la limite droite sur le bus 113. Par exemple, pour la cellule 119 qui mémorise les données du pixel 128, cette cellule comprend une logique qui compare la limite ou 1' adresse sur le bus 112 de manière à déterminer si cette limite ou adresse est inférieure ou égale à 1285. Le comparateurdétermine également si la limite du bus 113 est ou non supérieure à 128. Si la limite ou adresse sur le bus 112 est inférieure ou égale à 128, la limite sur le bus 113 supérieure à 128, et si la cellule de bit de masquage est à 1, la cellule 119 acceptera les données en provenance du circuit logique de fusion et d'alignement de données 121. Le circuit logique de fusion et d'alignement de données 121 reçoit le mot de constante par le bus 115 et les données par le bus 100, et, sous le contrôle des signaux de commande d'écriture sur le bus 116, fusionne et aligne ces signaux de manière à les appliquer aux emplacements appropriés à 10 l'intérieur de celle(s) des cellules qui est (sont) adressée(s). Dans la description, quelques exemples vont suivre qui vont clarifier le fonctionnement du circuit 121. Les données en provenance du circuit 121 peuvent être simultanément inscrites dans une ou plusieurs cellules d'un 15 groupe de cellules. En fait, les données en provenance du circuit 21 (et en provenance des circuits identiques associés à d'autres groupes de cellules) peuvent être inscrites dans toutes les cellules de tous les groupes simultanément. Tout d'abord, considérons le cas o l'affichage nécessite un 20 bit unique par pixel (un 1 ou un 0). Le champ de mémorisation du pixel pour chaque cellule est de 16 bits, comme illustré. Supposons également que 15 bits sur les 16 doivent être remplis de 0. Un mot de 32 bits contenant les 1 et les 0 du diagramme de bits à afficher peut être appliqué sur le bus 25 d'écriture des données 100. Les limites gauche et droite sur les bus 112 et 113 peuvent être ajustées de sorte que les cellules des pixels 0 à 32 acceptent les données en provenance du bus 100 (on notera que ceci est possible en raison du groupage décrit à propos de la figure 7). Les cellules des 30 pixels 0 à 32 sont situées chacune dans un groupe de cellules différent et, par conséquent, les 32 bits du bus 100 peuvent être distribués sur les 32 cellules. Les 15 bits restants, qui doivent être tous à 0, peuvent être couplés au bus 115 et inscrits dans les cellules appropriées en même temps que les données sont acceptées du bus 100. Les signaux de contrôle sur le bus 116 permettent au mot de constante d'être aligné avec les lignes appropriées pour couplage aux cellules. Cet exemple simple illustre l'avantage du groupage des cellules, du mot de g99873 constante et des limites gauche et droite. Considérons un exemple dans lequel l'affichage entier doit être d'une seule couleur, définissable par des signaux RVB. Les limites gauche et droite sur les bus 112 et 113 peuvent être fixées de sorte que toutes les cellules acceptent des données en provenance de leurs circuits logiques de fusion et d'alignement des données 121. Un mot unique sur le bus d'écriture des données 100 peut alors être inscrit dans toutes les 640 cellules. On décrira d'autres avantages du tampon en relation avec des affichages particuliers, plus loin dans la description. Mots de commande Il sera utile de comprendre le format du mot de commande avant d'examiner le contrôleur de la figure 9. En se référant à la figure 22, six mots de commande ont été illustrés. Le premier champ de chacun des mots est utilisé pour identifier la commande. Par exemple, 000 identifie "mappe de bits" 20 (BMAP), 1 identifie "exécution" (RUN), 001 identifie "exécutions séquentielles" (SRUNS),... Ce champ est appliqué au décodeur d'instructions 128 de la figure 9. Le second champ de la commande "mappe de bits" identifie le format de données à utiliser, ce qui aboutit à l'obtention des signaux de commande 25 d'écriture. Ce champ est appliqué au registre de format de données 131 de la figure 9. Le champ de 2 bits "mode-E" est appliqué au registre de mode d'écriture 132 et identifie le mode d'écriture à employer. Le bit suivant "mode-I" détermine si un masque d'incrustation doit être utilisé, comme on 30 l'expliquera plus loin. Le champ de 10 bits suivant "origine-D" est l'origine relative de l'objet dans la mappe de bits (par opposition à son origine absolue), notion que l'on expliquera plus loin. Le dernier champ de 10 bits donne un compte de mots de données pour la mappe de bits et est 35 appliqué au compteur 130 de la figure 9. Dans le cas de cette commande et des aut.res commandes, on donnera des exemples particuliers plus loin dans la description. La commande "exécution" permet un* exécution unique, c'est-à-dire l'inscription d'un mot de données particulier dans toutes les cellules du tampon de ligne de la figure 6 entre des limites prédéfinies. La commande "exécution" comprend un mot de données avec un champ de 7 bits, qui 5 constitue le mot inscrit dans les cellules. Cette commande comprend également un bit de fin de ligne et un champ à deux bits de contrôle de mode d'écriture. Le bit "alignement-d" indique si le mot de données de 7 bits présent dans cette commande est aligné sur le champ L ou le champ X du tampon de ligne illustré figure 6, et est appliqué au registre 131 du format de données. La commande "exécution" possède deux champs de 10 bits, l'un pour l'origine droite et l'autre pour la limite droite, définissant la cellule de départ et la cellule de fin du tampon de ligne,cellules entre lesquelles le mot de 15 données de 7 bits sera inscrit. La commande "exécutions séquentielles" est similaire à la commande "exécution"; cependant, elle comprend un champ de 5 bits pour le format de données, qui est appliqué au registre 131 de la figure 9. Elle comprend également le champ d'origine 20 droite. Le dernier champ de 10 bits donne le compte des mots de données sélectionnés dans la RAM 35. Un format de données d'exécution séquentionnelle est illustré à la dernière ligne de la figure 23 et, comme on peut le voir, on peut obtenir deux mots de données par cycle de bus de 32 bits. La commande "commutation de contexte" prépare le contrôleur de tampon de ligne pour le chargement d'un nouvel objet, et comprend un champ de 12 bits d'origine absolue, un bit de mode de données, et un bit utilisé pour indiquer la polarité d'un masque d'incrustation. Le champ 77 a été décrit précédemment. 30 Cette commande peut être également utilisée à l'intérieur d'un objet pour passer à un sous-objet, comme on le décrira plus loin. La commande "exécution d'écran" est utilisée par exemple pour effacer complètement l'écran. Elle comprend un champ de format de données et un champ de données de 16 bits. Sur la figure 23, on a donné cinq exemples de formats de mots de données de la mappe de bits. Le champ de 5 bits "format-D" informe le contrôleur de la figure 9 du format particulier des données à lire dans la RAM 35. La première ligne montre un format avec un bit par pixel, et la dernière ligne un format avec 16 bits par pixel. Contrôleur de tampon de ligne En se référant à la figure 6, le contrôleur comprend un registre d'origine absolue 124 de 12 bits, un registre de départ d'exécution 125 à 12 bits, et un compteur de position 10 126 à 12 bits (bien que, en théorie, 10 bits suffisent pour ces registres, on préfère utiliser 2 bits supplémentaires). L'origine absolue est appliquée au registre 124, par exemple par la commande "commutation de contexte". Le champ de limite droite de la commande d'exécution constitue une limite 15 relative et doit être convertie en limite absolue. Ceci est réalisé par l'additionneur 134 (la limite est appliquée au bus 113). Cette caractéristique est particulièrement utile lorsque l'on utilise des sous-objets, comme on l'expliquera plus bas. La limite gauche est obtenue à partir de l'origine droite et 20 de l'origine absolue au moyen de l'additionneur 135. Le registre de départ d'exécution 125 est utilisé pour la commande "exécutions séquentielles"et permet de déterminer-o est intervenue la dernière exécution. Le compteur de position 126 est utilisé pour la commande "mappe de bits" et permet 25 d'obtenir l'adresse d'écriture de la mappe de bits. L'adresse ou limite gauche est appliquée au bus 112. Comme indiqué, le premier champ du mot de commande est appliqué au décodeur 128 et, une fois décodée, l'instruction contrôle le fonctionnement du contrôleur par l'intermédiaire d'un contrôleur d'états définis 132. 30 Le compte du mot de données de la commande "mappe de bits" et de la commande "exécutions séquentielles" est appliqué au compteur 130, et un décomptage est effectué pour contrôler le comptage des mots de données. Le format des mots de données est sélectionné par un circuit de format de données 131 à partir des champs de format de données de ces commandes. Ceci permet d'obtenir les signaux de commande d'écriture pour le bus 116. Le compteur 133 d'adresse de lecture du tampon de ligne est synchronisé avec un compteur horizontal de l'affichage et permet de lire par balayage le tampon de ligne vers l'affichage. Ces adresses sont appliquées aux cellules par l'intermédiaire du bus 117. Le signal "envoi du suivant" (ligne 105) et le signal de vitesse d'horloge forment une "poignée de main" entre le tampon et le répartiteur pour permettre le transfert de signaux, comme on le fait souvent dans les ordinateurs. Commande temporelle entre l'unité centrale et le tampon de ligne Sur la figure 24, une série de cycles 138 du bus mémoire de l'unité centrale sont illustrés, correspondant à l'activité 15 présente sur les bus 58 et 59 de la figure 5, avec une série de cycles 139 de chargement du tampon de ligne correspondant à l'activité présente sur les bus 58 et 59 de la figure 5. Ceci illustre l'intervalle de temps pendant le chargement de la 20 ligne 1 dans le tampon de ligne, qui amène et suit la transition entre le chargement de la ligne de l'objet n et celui de la ligne de l'objet n + 1 qui se trouve sur la ligne d'affichage 1. Ces deux ensembles de cycles peuvent être asynchrones; le cycle de tampon de ligne et la commande 25 temporelle de base ne sont pas nécessairement synchronisés avec l'activité du bus de l'unité centrale. Après achèvement du chargement d'une ligne de l'objet n de la ligne 1, et pendant la préparation du chargement d'une ligne de l'objet n + 1 de la ligne 1, le répartiteur envoie un signal 30 permettant au registre à décalage et à la RAM 35 d'être chargés avec les données de départ de cette ligne de l'objet, et applique simultanément sur le bus 60 un certain nombre d'instructions (quatre instructions) vers le tampon de ligne. Ces instructions, qui sont envoyées par le répartiteur depuis les données de répartition des objets de la mémoire 83 de la 35 figure 11, sont tout d'abord une commande " commutation de contexte" telle qu'illustrée figure 22, une commande "exécution d'écran" pour effacer le bit de masquage sur le tampon de ligne, une commande "exécution" pour positionner le bit de masquage correspondant à une lucarne de visualisation, et enfin le premier mot d'instruction pour la description d'objet de cette ligne. Il est important que l'unité centrale ne soit pas empêchée d'accéder à la RAM 35 par les bus 58 et 59 pendant l'intervalle de temps 142, même si l'on charge simultanément des données dans le tampon de ligne par le bus 60. Le seul instant o l'accès à la RAM 35 par l'unité centrale est empêché est pendant la période très brève 141 au moment de la transition d'un objet à l'autre. 10 Mappe de bit rectangulaire de base (figures 12a et 12b) La figure 12a montre une mappe de bit simple à 1 bit par pixel, avec 240 pixels en direction horizontale et 160 pixels 15 en direction verticale. Supposons que le contenu de la mappe de bit est un message de texte de lettres noires sur un fond blanc. On a barré en croix sur les figures la position d'affichage de cette mappe de bit. Une mappe de mémoire est 20 également illustrée sur la figure 12b, qui donne en détail l'endroit de la RAM o se trouvent les données d'affichage (le "H"' suivant les chiffres indique que la base de numération est la base hexadécimale). On notera tout d'abord que l'on a représenté la moitié 25 supérieure d'une RAM de 256K, et que la mémoire est divisée en rangées de 256 mots de 32 bits (128 rangées sont illustrées, 256 rangées sont disponibles). On notera également que la région allouée à chaque bloc de données est représentée par un trait noir. Pour préparer cet affichage, on décide tout d'abord l'endroit o l'on doit mémoriser une table de recherche de couleur, et la table de répartition des objets. Supposons qu'une table de recherche de couleur a 128 mots de long, et peut être placée n 'importe o dans la RAM à condition qu'elle ne traverse pas une limite de rangée. On l'a représenté à 35 l'adresse 28000H. La même contrainte de frontière de rangée s'applique à la table de répartition des objets, et elle a été placée à l'adresse 26000H. La place mémoire suivante est allouée à la mappe de bit. La mappe de bit peut être mise sous forme de tableau linéaire (vecteur), chaque ligne suivant la précédente en mémoire et chaque ligne étant arrondie à un nombre entier de mots. La dimension horizontale de l'affichage étant de 240 pixels, avec un bit par pixel on obtient 240/32 = 7,5 mots nécessaires pour chaque ligne. La place mémoire nécessaire pour chaque ligne est arrondie à une valeur entière, de sorte qu'il faut 8 mots pour contenir chaque ligne.. Il y a 160 lignes, de sorte que les besoins totaux en RAM pour cette mappe de bits sont de 10 x8 = 1280 mots. Ces données ont été placées à l'adresse 38000H et s'étendent jusqu'à l'adresse 384FFH. On va maintenant exposer la configuration de la table de répartition pour l'objet, en utilisant le format de la figure 10. A. Adresse de départ Ce paramètre pointe sur le début de la description de 20 l'objet: adresse 38000H. On notera cependant que le nombre sous forme codée est DOOOH (38000H divisé par 4) parce que l'on spécifie dans ce champ une adresse de mot et non une adresse d'octet, toutes les instructions étant alignées sur des frontières de mots à 32 bits. 25 B. Mode de ligne Ce paramètre spécifie si les descriptions de ligne sont en longueur fixe ou en longueur variable. Dans l'exemple décrit, 30 l'un ou l'autre mode pourra fonctionner parce que les descriptions de ligne de mappe de bits sont de longueur fixe, de sorte que la longueur peut être spécifiée en mode à longueur fixe, ou bien la longueur peut être calculée par le répartiteur en spécifiant le mode à longueur variable. Pour les besoins de cet exemple, on a spécifié un "1" pour le mode à longueur fixe. àlongueur fixe. C. Longueur de ligne La longueur de la description de chaque ligne dans 'la RAM est de 8 mots. Il est nécessaire de spécifier ce paramètre parce que l'on utilise un mode de ligne à longueur fixe. On notera que ce paramètre ne comprend pas le premier mot (c'est-à-dire le champ "premier mot" de la rubrique de la table de répartition d'objets pour l'objet). D. Ligne de départ Cet objet commence à la première ligne de la région affichée sur l'écran, qui est la ligne 0 (voir diagramme). E. Hauteur de l'objet La dimension verticale de cet objet est de 160 pixels, ce qui constitue sa hauteur. Le système a besoin que, lorsque ce paramètre est ajouté à la ligne de départ, le résultat constitue la ligne de fin, qui est la ligne 159. Ainsi, la valeur codée pour ce paramètre est la hauteur moins 1, soit 159. F. Origine absolue Les pixels les plus à gauche de l'objet sont au niveau du pixel 0 de l'affichage. L'origine absolue peut être toute valeur égale à 0 ou inférieure, puisqu'elle doit être inférieure ou égale à la position horizontale du bord gauche 30 de l'objet, mais pour simplifier l'exemple on prendra ici la valeur 0 G. Mot de constante Puisque l'on utilise seulement deux couleurs dans cet exemple (le blanc et le noir), supposons que celles-ci sont mémorisées au début de la table de recherche de couleur. Supposons également que le bit 1 des données de pixel sera aligné avec le bit de poids le plus faible de l'octet L dans les cellules de tampon de ligne. De la sorte, le positionnement des 8 bits inférieurs du mot de constante à 0 fera en sorte que les 8 bits des données de pixel de la table de recherche de codleur seront tous des O sauf pour le bit de poids le plus faible, ce qui permettra la sélection entre la première et la seconde rubrique de la table de recherche de couleur, qui correspondent à la couleur noire et à la couleur blanche. L'élément de poids le plus fort du mot de constante ne peut 10 pas être spécifié dans ce paramètre, et il est positionné à O lorsque le répartiteur prépare le tampon de ligne avec le contexte de l'objet. Le second élément de poids le plus fort n'est pas utilisé dans cet exemple, et il est positionné à 0. Le paramètre de mot de constante est donc ainsi positionné à 15 OOOH. H. Origine et limite de la lucarne de visualisation Ces paramètres spécifient quelles régions horizontales des données de pixel de la mappe de bit seront effectivement affichées. La mappe fait 240 pixels en direction horizontale.. Elle est arrondie au nombre de mots le plus proche, comme si la mappe de bits faisait 256 pixels en direction horizontale. Comme le 25 système ne peut pas déterminer l'endroit o les vrais pixels du dernier mot de données d'une commande de mappe de bit se termine, ni l'endroit o commencent les 16 pixels "excédentaires", on utilise des paramètres de lucarne de 30 visualisation pour "ébarber" ceux- ci et les empêcher d'être affichés. L'origine de la lucarne de visualisation identifie le pixel o commence la vraie mappe de bit, par rapport à l'origine absolue. Ce pixel est 0, et l'origine absolue est 0, de sorte que l'origine de la lucarne de visualisation est O - 0 = 0. La limite de la lucarne de visualisation identifie le pixel o finit la vraie mappe de bits par rapport à l'origine absolue, plus 1. Le pixel 239 est celui o se termine la mappe de bits, et comme l'origine absolue est 0, la limite de la lucarne de visualisation sera 239 - 0 + 1 = 240. La région de pixels excédentaires (cf. figure 12a) entre le pixel 240 et le pixel 255 est maintenant masquée, puisque la lucarne de visualisation ne s'étend que du pixel 0 au pixel 239. La dimension horizontale souhaitée de 240 pixels est ainsi obtenue. I. Mode d'affichage Dans cet exemple, on utilise plutôt un mode X,L qu'un mode RVB. Le bit de mode d'affichage est donc positionné à 0. J. Polarité de masque d'incrustation La fonction de masque d'incrustation n'est pas utilisée, donc la polarité n'a pas besoin d'être définie. K. Premier mot Ce mot contient l'instruction "mappe de bits" et rend possible l'organisation de la RAM en réseau linéaire de mappe de bit. Lorsqu'on lit une ligne de données dans la RAM vers le tampon de ligne, le tampon est tout d'abord configuré avec les paramètres appropriés mentionné plus haut, puis l'on traite le 25 premier mot (considéré comme un mot de commande). C'est seulement à ce moment que le reste de la description de ligne de la RAM sera utilisé. Dans cet exemple, le premier mot contient une commande "mappe de bits". Une commande "mappe de30 bits" est suivie par des mots de données contenant les données de pixel de la mappe de bit. Dans ce cas, ces mots de données se trouveront commencer avec le début de la portion de la description de ligne de la RAM qui se trouve à l'endroit o le réseau linéaire de mappe de bits est mémorisé. * En commençant par la première ligne de l'objet, l'objet est 35 envoyé (c'est-à-dire que le répartiteur déclenche le chargement de la description de l'objet pour cette ligne dans le tampon de ligne) à l'adresse 0, et le tampon de ligne est configuré en conformité avec-les paramètres de la rubrique de la table de répartition. Le premier mot, qui est la commande "mappe de bits" détaillée dans le précédent paragraphe, est alors pris en compte et exécuté. Le tampon de ligne est préparé pour une mappe de bit et attend qu'on lui fournisse 8 mots de données (256 pixels de 1 bit) pour décrire la mappe de bits. L'adresse de départ pointe sur le premier de ces mots de données, qui se trouve être le premier mot de données pour le réseau linéaire de mappe de bits, et ce mot, ainsi que les 7 10 suivants, sont chargés de manière à constituer la première ligne affichée de l'objet. A la seconde ligne, l'unité centrale configure à nouveau le tampon de ligne et exécute à nouveau le premier mot, le tampon de ligne attendant à nouveau 8 mots de données de mappe de 15 bits. C'est à cet instant seulement que l'adresse de départ du répartiteur pointe sur le 9e mot de données. Elle avait été incrémentée de la valeur du paramètre de longueur de ligne, à savoir 8 (cf. figure 10). Les mots de données 9 à 16 (en supposant qu'on les numérote à partir de 1) correspondent à la 20 seconde ligne d'affichage de l'objet. On notera que, du 9e au 16e mot du réseau linéaire de mappe de bits, ces mots correspondent exactement à la seconde ligne de la mappe de bits. Ce processus continue par le chargement, dans chaque ligne 25 successive, des données de mappe de bits jusqu'à atteindre la fin de ligne de chaque ligne de l'objet. On notera que la même instruction "mappe de bits" mémorisée dans la table de répartition des objets est utilisée pour chaque ligne, puisque l'objet de la mappe de bits utilisé dans cet exemple se trouve être rectangulaire. Positionnement horizontal (figures 13a et 13b) Supposons qu'il soit nécessaire de déplacer l'objet de la figure 12a. Le positionnement de l'objet dans l'espace d'affichage est une manipulation fondamentale. Le positionnement est divisé en deux étapes séparées, à savoir le positionnement horizontal et le positionnement vertical. Considérons tout d'abord le positionnement horizontal (le positionnement vertical sera décrit dans le passage suivant). Supposons par exemple que l'objet doive être repositionné de 160 pixels vers la droite. On remarquera que les données 5 d'affichage sont identiques à celles de l'objet dans sa position d'origine de la figure 12a; les données ne sont pas déplacées dans la RAM 35 pour repositionner l'objet. En revanche, le paramètre d'origine absolue dans la rubrique de la table de répartition est modifié. Alors que l'origine absolue était positionnée à 0 dans le 10 cas précédent, elle est ici positionnée à 160. Le positionnement horizontal à l'intérieur de la description de l'objet est ainsi partout référencé 160 plutôt que 0, et tout est ainsi décalé de 160 pixels vers la droite. On notera que la lucarne de visualisation, définie par son 15 origine et sa limite, s'est déplacée avec le reste de l'objet, de sorte que les pixels excédentaires sont toujours correctement masqués. Ceci vient du fait que ces paramètres sont définis par rapport à l'origine absolue, et sont 20 maintenant eux aussi décalés de 160. On notera cependant qu'il y a maintenant, à gauche de l'objet, une région qui se trouve masquée. Elle n'affecte pas l'affichage dans cet exemple, parce que rien ne peut être écrit à gauche de l'origine absolue, mais elle joue un rôle dans un exemple ci-dessous. Cet objet peut être déplacé depuis sa position d'origine 25 vers cette nouvelle position - (par l'unité centrale, par exemple) à n'importe quel moment, la transition d'affichage pouvant survenir entre deux trames. En d'autres termes, si, à mi-trame, cet objet ayant été à moitié affiché est déplacé par l'unité centrale du fait du changement du paramètre d'origine 30 absolue dans la RAM 35, le reste de l'objet sur cette trame restera vu avec l'ancien paramètre d'origine absolue. Positionnement vertical (figures 14a et 14b) Pour repositionner verticalement l'objet de la figure 12a, il est seulement nécessaire de changer le paramètre de départ de la ligne. Si la première ligne de l'objet doit être la ligne 80, alors on change simplement le paramètre de départ de la ligne de sa valeur initiale 0 à la valeur 80. L'unité centrale charge alors la première description de ligne à la ligne 80, et chaque description de ligne est chargée à la suite. L'image résultante est montrée figure 14a. La configuration de mémoire reste exactement la même que celle illustrée figure 14b; le précédent positionnement horizontal (figure 13a) n'est en aucune façon affecté par cette modification en direction verticale. Comme avec la modification horizontale, quelque soit la manière dont le paramètre de départ de ligne est modifié, le décalage vertical sera fait proprement entre deux trames. Lucarne de visualisation horizontale (figures 15a et 15b) Le système des lucarnes de visualisation peut être utilisé à d'autres fins que le simple masquage de pixels excédentaires. Considérons par exemple l'affichage de la figure 15a. Ici, on a délibérément masqué certains des vrais pixels de 20 la mappe de bits pour l'objet 0. C'est ce qui intervient logiquement lorsque l'on réduit la taille d'une fenêtre en direction horizontale sur un APPLE MACINTOSH, pour qu'elle soit plus petite en direction horizontale que la mappe de bits qui la décrit, en utilisant par exemple un système de défilement horizontal pour visualiser différentes parties de 25 la mappe de bits. Ici encore, la configuration de la mémoire reste inchangée. Le tout est contrôlé par les rubriques de la table de répartition, qui sont essentiellement l'origine et la limite 30 de la lucarne de visualisation. La région de masquage à gauche et utilisée ici pour masquer certains pixels, tandis que dans le précédent exemple elle n'était pas utilisée, et la région de masque droit est utilisée pour masquer certains vrais pixels en même temps que les pixels excédentaires. La position de la lucarne de visualisation et sa taille sont contrôlées de la manière suivante: l'origine de la lucarne de visualisation pointe sur les pixels du bord gauche de la lucarne de visualisation, par rapport à l'origine absolue, et la limite de la lucarne de visualisation pointe sur les pixels du bord droit de la lucarne de visualisation, plus 1, et par rapport à l'origine absolue. Dans ce cas, l'origine de la lucarne de visualisation est 200 - 160 = 40, et la limite de la lucarne de visualisation est 359 - 160 + 1 = 200. Comme dans le cas o l'on modifiait la position, indépendamment du moment o le changement du paramètre survient, la modification de l'affichage de l'objet intervient entre deux trames. Cependant, il est nécessaire que l'un et l'autre des paramètres soient modifiés avant que l'on affiche 10 une trame. Pour garantir qu'une trame ne sera jamais affichée avec la nouvelle origine de la lucarne de visualisation et l'ancienne limite de la lucarne de visualisation, les deux champs doivent être inscrits pendant un cycle unique, ininterruptible, de mémoire. Défilement horizontal (figures 16a et 16b) Si la mappe de bits est une fenêtre, comme dans l'ordinateur MACINTOSH précité, il alors nécessaire de permettre un effet 20 de défilement horizontal à l'intérieur de la lucarne de visualisation horizontale. Pour permettre ceci, ce n'est pas la lucarne de visualisation que l'on déplace, mais l'objet. De la sorte, on ne modifie que le -champ d'origine relative de l'instruction de mappe de bit dans le premier mot trouvé 25 dans la rubrique de la table de répartition des objets, et la mappe de bit se déplacera sans interférer sur la lucarne de visualisation. Si l'originerelative est modifiée de 0 à 20, on obtient l'affichage de la figure 16a (on notera une fois de plus que les données d'affichage dans la RAM restent les mêmes). On ne peut pas opérer un défilement à gauche de l'origine absolue. Si un défilement vers la gauche de l'origine absolue est nécessaire, l'origine absolue doit être déplacée vers la gauche avec l'origine relative de l'instruction de mappe de bits, et il faut ajuster l'origine et la limite de la lucarne de visualisation pour compenser ce décalage. Lucarne de visualisation verticale (figures 17a et 17b) Sur la figure 17a, l'objet est masqué verticalement et 5 horizontalement, c'est-à-dire qu'il possède une lucarne de visualisation verticale et une lucarne de visualisation horizontale. A la différence des lucarnes de visualisation horizontales, les lucarnes de visualisation verticales ne sont pas supportées directement, et il faut que l'unité centrale 10 les produise en préparant la rubrique de la table de répartition des objets pour cet objet. Ceci est réalisé par changement de la description de l'objet par l'unité centrale, de manière à ne décrire que les lignes de l'objet qui doivent être affichées. En d'autres termes, si 15 la lucarne de visualisation verticale de la figure 17a s'étend de la ligne 100 à la ligne 199, la description de l'objet ne contiendra que ces lignes de l'objet. Le système n'affichera alors pas ces lignes "masquées" par la lucarne de visualisation. Dans cet exemple, les lignes visibles de l'objet sont celles situées entre sa 20e ligne et sa 119e ligne, puisque la lucarne de visualisation masque 20 lignes en haut et 40 lignes en bas. Le paramètre d'adresse de départ est modifié pour pointer sur la description de ligne de la 20e ligne puisque c'est là que le 25 nouvel objet commencera. Le paramètre de départ de ligne est alors changé à la valeur 100, correspondant à la première ligne du nouvel objet à afficher. Finalement, le paramètre de hauteur de l'objet est positionné à 99 pour correspondre à la nouvelle hauteur de l'objet. Le résultat est la région 30 affichée montrée au centre de la figure 17a. Défilement vertical (figures 18a et 18b) Le système de défilement vertical produit un défilement 35 vertical exactement de la même manière que le système de défilement horizontal d'un ordinateur MACINTOSH produit le défilement-horizontal. Le résultat d'un défilement vertical de lignes vers le haut est illustré figure 18a. Le défilement vertical nécessite, ici encore, de déplacer l'objet tout en gardant fixe la lucarne de visualisation. L'objet est positionné verticalement jusqu'à la nouvelle position souhaitée, commençant ligne 60. Une nouvelle lucarne 5 de visualisation verticale est alors constituée exactement de la même manière que précédemment, sauf qu'elle commence à la e ligne de l'objet et finit à la 199e ligne. Lucarne de visualisation de contour quelconque 10 (figures 19a, 19b et 19c) Il est quelquefois nécessaire de disposer d'une lucarne de visualisation qui ne soit pas rectangulaire. Ceci peut être obtenu en définissant un objet à 1 bit / pixel, qui est 15 utilisé comme masque. Cet objet (objet 0 dans l'exemple) est placé directement derrière l'objet (c'est-à-dire avec la priorité juste inférieure) auquel la lucarne de visualisation est appliquée (objet que l'on désignera dans cet exemple objet 1). Le mode d'écriture "bit de masquage" est utilisé pour 20 l'objet 0, de sorte que l'objet 0 est chargé dans le bit de masque des cellules (107 sur la figure 6) du tampon de ligne. Là o l'objet 1 doit être masqué, on positionne le bit à 0, sinon on écrit des 1 dans les cellules. On positionne ensuite à 0 la limite du port de visualisation dans la rubrique 25 correspondant à l'objet 1 dans la table de répartition des objets. Ceci met hors service le système de lucarne de visualisation automatique en l'empêchant d'interférer avec la lucarne de visualisation lorsque l'objet 1 sera envoyé. L'objet 0 est créé de la manière suivante: (1) la lucarne 30 de visualisation automatique est utilisée pour masquer tous les pixels de l'écran; (2) -on utilise ensuite une commande "exécution" unique pour chaque ligne de manière à effacer les bits de masquage entre le côté gauche et le côté droit de l'ellipse pour cette ligne (on notera que chaque exécution de 35 ligne est différente, de sorte que le premier mot de la rubrique de la table de répartition des objets ne peut pas être utilisée par la commande "exécution"); (3) une instruction "néant" (NOP), obtenue en configurant à zéro une instruction véritable, est spécifiée pour le premier mot, avec une commande d'exécution utilisée comme premier (et unique) mot de chaque description de ligne dans la RAM (c'est-à-dire au total la seconde instruction de chaque description de 5 ligne). Pour les lignes situées audessus et au-dessous de l'ellipse, on place dans ce mot une instruction "néant". Le masque de l'objet 0 est illustré figure 19a et l'affichage résultant de la mappe de bits des exemples précédents recouvrant l'objet 0 est illustré figure 19c. Seule 10 la région de la mappe de bit comprise à l'intérieur de l'ellipse sera affichée. La mappe de mémoire de la figure 19b montre l'utilisation de la mémoire. On notera que l'objet 0 de l'exemple précédent constitue l'objet 1 de cet exemple. Masques d'incrustations (figures 20a, 20b et 20c) Il est quelques fois nécessaire de recouvrir un objet en arrière-plan avec un objet ayant une mappe de bits de texte, avec l'arrière-plan visible entre les lettres pour former un 20 fond. Ceci peut être obtenu en utilisant un objet de fond, et en utilisant un objet de masque, créé sur mesure, qui corresponde au tracé du texte, et finalement en utilisant l'objet de texte par dessus le masque. Il existe cependant une façon plus simple d'utiliser des masques d'incrustation. L'objet de texte, dans cet exemple, est une mappe de bits à 1 bit / pixel, et il se trouve que, pour faire un masque sur mesure, il est nécessaire d'avoir une mappe de bits à 1 bit / pixel ayant exactement le même dessin. En utilisant cette propriété, on peut combiner le chargement de la mappe de bits 30 dans le tampon de ligne et l'opération de masquage avec la même mappe de bits de texte. Tout d'abord, l'objet de fond est constitué (par exemple, un objet de 240 x 160 pixels à 4 bits / pixel), comme illustré figure 20a avec l'objet 0. On notera qu'il n'est pas prévu de 35 masque horizontal. Ceci est dû au fait que l'on utilise exactement 30 mots par ligne (sans pixel supplémentaire) pour une dimension horizontale de 240 pixels à 4 bits / pixel (par commodité, la lucarne de visualisation horizontale n'est pas mise en fonction). Si l'on désire que les 16 couleurs mappées par cette mappe de bits soient distinctes des deux couleurs de la mappe de bit de texte, l'octet inférieur du mot de constante est positionné de sorte que, lorsqu'il est combiné 5 avec les quatre bits de la donnée de pixel, l'index résultant pointe sur un emplacement approprié de la table de recherche de couleur. La mappe de bit de texte des précédents exemples peut être utilisée pour activer la fonction de masque d'incrustation. 10 Tout d'abord, on doit faire en sorte que les masques de fond blanc ne se réécrivent pas dans le tampon de ligne, et que les lettres noires ne masquent pas, mais au contraire se réécrivent dans le tampon de ligne. Ceci est déterminé par le bit de "polarité-i" dans la rubrique de la table de 15 répartition. Si le noir vaut 1 et le blanc vaut 0, alors on utilise le 1 pour permettre les écritures, et donc on positionne à 1 la "polarité-i". La commande "mappe de bits" est alors positionnée dans le premier mot de manière que le mode de masque d'incrustation soit sélectionné, avec le bit 20 "mode-i" à 1. On notera que les masques d'incrustation n'empêchent pas qu'il soit nécessaire d'avoir une lucarne de visualisation horizontale pour masquer les bits excédentaires de cet objet. Cette fonction de masquage fonctionne avec le bit de masque de 25 la cellule de mémoire de pixel, et est indépendante de la fonction de masque d'incrustation. Si l'un des deux masques, ou les deux masques constitue(nt) une (des) inhibition(s) d'écriture pour un pixel donné, alors l'écriture sera inhibée. L'affichage résultant est illustré figure 20c. L'affichage 30 montrerait effectivement le texte superposé à un motif, avec le motif visible entre les espaces séparant les lettres. L'utilisation de la mémoire est illustré figure 20b. Exécutions et objets complexes (figures 21a, 21b, 21c et 221d) Cette partie montre des exemples d'objets dans des situations spéciales, o l'on doit spécifier des descriptions d'objets qui permettent d'économiser de la mémoire, du temps et des performances. On notera que tous les objets qui vont être décrits peuvent être spécifiés en utilisant la mappe de bit rectangulaire décrite dans les parties précédentes, avec 5 un masquage approprié. Cependant, les cas particuliers d'objets arrivent suffisamment souvent, et les économies réalisées sont suffisamment substantielles, pour qu'il soit intéressant d'utiliser les possibilités spéciales décrites ci-dessous. Tous les cas particuliers d'objets considérés dans cette partie sont principalement constitués par des "exécutions", et de tels objets sont appelés pour cela "objets exécutables". La principale caractéristique qui rend intéressante la prévision d'objets exécutables est celle d'une exécution entièrement 15 parallèle. Ceci est obtenu en écrivant simultanément tous les pixels qui constituent l'exécution dans le tampon de ligne. Fond (couleur unique) Un domaine d'application dans lequel les objets exécutables démontrent leur intêret est celui de la production des fonds. Les fonds d'une couleur unique, qui autrement seraient représentés par une très grande mappe de bits à 1 bit / pixel, peuvent être simplement formés par une "exécution" unique par 25 ligne. De grands fonds avec des objets statiques (par exemple des arbres, des montagnes, des nuages, le ciel,...) peuvent être spécifiés avec seulement quelques exécutions par ligne, nécessitant un volume mémoire et un temps d'écriture du tampon par ligne qui sont de très loin inférieurs à ce qui serait 30 nécessaire avec une représentation comparable en mappe de bits. En fait, on peut même mémoriser et manipuler des fonds bien plus grands que l'écran pour donner l'illusion que l'écran constitue une lucarne de visualisation sur une autre région (comparer les figure 21a et 21c). A cet effet, la rubrique de la table de répartition est positionnée à la priorité à laquelle le fond doit exister. La ligne de départ est alors chargée avec la première ligne du fond; la hauteur de l'objet, avec sa hauteur moins 1; l'origine absolue, avec la valeur correspondant au bord gauche du fond; l'origine.et la limite du bord de visualisation, tous deux à 0; le mot de constante et le mode d'affichage sont chargés comme souhaité; l'adresse de départ, la 5 polarité-i, le mode de ligne et la longueur de ligne sont chargés à une valeur quelconque. Le premier mot est alors chargé avec une commande "exécution", en positionnant origine-D à 0, limite-D à la dimension horizontale du fond, fin-de-ligne à 1 et les 7 bits de données, mode-E et 10 alignement-D comme souhaité. Pour chaque ligne de l'objet, la commande "exécution" unique du premier mot sera exécutée, produisant une exécution depuis - le côté gauche du fond jusqu'à son côté droit. On notera qu'aucun espace n'est alloué dans la RAM à chacun des objets, 15 puisque chacun est produit entièrement par le premier mot, sauf bien entendu pour les 4 mots de la rubrique de la table de répartition des objets. Fond (couleurs multiples) Pour les besoins de la discussion, on appelera "sous-objets" de petits objets groupés ensemble pour constituer un objet composite unique. Un objet qui contient deux sous-objets ou plus sera appelé "objet complexe". Un objet complexe (la scène 25 d'une forêt) est représenté figure 21a, chaque sous-objet étant identifié par une lettre. Un sous-objet peut être constitué de mappe de bits, d'exécutions, ou des deux, et un objet peut comprendre un nombre quelconque de sous-objets. Dans la scène de forêt de la 30 figure 21a, il y a treize sous-objets, chacun étant formé d'une région uniforme d'une couleur représentée par des exécutions. Les -sous-objets peuvent également se chevaucher, et, en fait, dans la figure 21a le sous-objet A est un simple rectangle, la région complexe visible sur la figure pour le 35 sous-objet A résultant des chevauchements des sous-objets situés devant l'objet A. Pour produire la description d'objets de la scène de forêt, les sous-objets sont classés par sous-priorités (la priorité de chevauchement des sous-objets), depuis l'arrière-plan jusqu'à l'avantplan (le sous-objet le plus en arrière est le sous-objet A, le sous-objet le plus en avant est le sous-objet M). On produit une description d'objet, et ses descriptions de ligne par rapport à l'origine absolue unique de l'objet complexe. Le bord gauche de l'objet complexe étant au pixel -100, son origine absolue sera positionnée à -100. Et, puisque chaque sous-objet de cet objet complexe est une région 10 contigUe d'une couleur unique, chaque ligne de description du sous-objet peut être répétée par une commande "'exécution" unique. Les sous-objets A, B, C, D, E, J, K et L sont tous des rectangles, de sorte que, pour les descriptions de ligne de chacun, la même commande "exécution" (commençant au bord 15 gauche de l'écran et finissant à son bord droit) peut être spécifiée. Par exemple, le sous-objet B fait 40 pixels de large, 220 lignes de haut, et a son bord gauche situé au pixel -60. Il est décrit par 220 commandes "exécution", chacune ayant son origine relative positionnée à 40 (-60-(-100)), et 20 sa limite relative positionnée à 80 (-21-(-100)+1). Les sous-objets F,G,H et I sont tous des cercles, présentant donc chacun une symétrie verticale par rapport à leur centre, et les descriptions de ligne de leurs moitiés supérieures peuvent être reproduites en ordre inverse pour produire leurs 25 moitiés inférieures. Pour déterminer l'ensemble d'exécutions correspondant à la moitié supérieure, le bord gauche et le bord droit du cercle sur chaque ligne sont déterminés en utilisant une géométrie simple, puis une commande "exécution" est opérée pour chaque ligne, avec l'origine relative 30 correspondant au bord gauche, et la limite relative correspondant au bord droit. Le sous-objet M est un triangle et, comme avec les sous-objets en forme de cercle, on utilise la géométrie pour déterminer les bords gauche et droit de chaque ligne, puis on 35 utilise cette information pour trouver l'origine relative et la limite relative de la commande "exécution" de sa description de ligne correspondante. Pour assembler ces différents descriptions de sous-objets en une description d'objet complexe, unique, pour l'ensemble de la scène de forêt, il est nécessaire d'imbriquer ligne par ligne les différentes descriptions de ligne des sous-objets, avec d'abord, pour chaque ligne, la description de ligne du 5 sous-objet ayant la plus faible priorité, et en terminant avec la description de ligne du sous-objet ayant la priorité la plus élevée. Ceci est illustré figure 21d. Comparons, par exemple, les 480 lignes de la figure 21d aux 480 lignes de la scène de forêt. On notera que la dimension verticale et la 10 position verticale de la barre hachurée représentant la description d'objet de chaque sous-objet correspond à la dimension verticale et à la position verticale, respectivement, du sous-objet luimême dans la scène de forêt. Ceci est dû au fait que la description d'objets de chaque 15 sous-objet n'existe que sur les lignes o existe le sous-objet. Ainsi, chaque ligne d'un créneau (cf. la numérotation des lignes à gauche) contient la description de ligne correspondant à la même ligne du sous-objet du créneau dans la scène de forêt (deux échantillons de descriptions de 20 ligne de sous-objet sont mises en valeur dans le diagramme). Chaque créneau correspondant à un niveau de sous-priorité, les descriptions de ligne de chaque ligne sont en bon ordre pour l'imbrication, de la gauche vers la droite, en une description de ligne de l'objet complexe (en éliminant les 25 créneaux vides). Le diagramme en bas à droite montre les créneaux vides éliminés et tassés vers la gauche. Ceci constitue alors une représentation des descriptions de ligne des sous-objets imbriqués constituant les descriptions de ligne de l'objet complexe. On notera que la sous-priorité est traitée par réécriture dans le tampon de ligne au fur et à mesure que chaque description de ligne de sous-objet est chargée dans le tampon de ligne. Les sous-objets ayant la sous-priorité la plus faible sont inscrits dans le tampon de ligne d'abord (puisque 35 ce sont eux qui sont les premiers dans les descriptions de ligne de l'objet complexe), et sont réécrits par les sous-objets de sous-priorité plus élevée qui les recouvrent. Dans les descriptions d'objet, le premier mot de chaque ligne est mémorisé de façon commune pour toutes les lignes de l'objet dans la rubrique de la table de répartition. De la sorte, si chacune des descriptions de ligne de la description d'un objet commence avec le même mot de commande 5 d'instruction, alors le mot de commande peut être placé dans le "premier mot", ce qui permet d'éviter d'avoir à le mémoriser individuellement dans la RAM pour chaque ligne de la description d'objet. Si l'on examine le diagramme compacté et la scène de forêt, on peut voir que, sur chaque ligne, le 10 premier mot est le même: il s'agit du mot unique de l'instruction "exécution" d'un sous-objet A. Sur chaque ligne de l'objet complexe, le sous-objet A produit une instruction "exécution" avec son origine relative à 0 et sa limite relative à 940. Ainsi, en plaçant cette instruction dans le 15 premier mot, on peut économiser directement 480 mots de RAM (un mot pour chaque ligne). -_ -Z 2599873 REVENDICATIONS 1. Un système d'affichage vidéo, caractérisé en ce qu'il comprend: - une première mémoire (35) pour mémoriser des données représentant une pluralité d'objets devant être affichés, les données de chaque objet étant mémorisées dans des emplacements (40-44) de cette première mémoire accessibles de façon contigie, cette première mémoire permettant de mémoriser un 10 nombre variable de bits par pixel, de sorte qu'un objet puisse être mémorisé sur un nombre d'emplacements différent de celui des autres objets, - une seconde mémoire (37) pour mémoriser des attributs de chacun des objets, - un premier moyen de commande (48) pour reçevoir ces attributs en provenance de la seconde mémoire, de manière à contrôler l'accès desdites données de la première mémoire, ce premier moyen de commande étant relié à la première et à la seconde mémoire, - un tampon (50) pour recevoir lesdites données depuis la -première mémoire, ce tampon étant relié à la première mémoire et au premier moyen de commande, de sorte que lesdites données mémorisées dans la première mémoire puissent être préparées en vue de leur affichage. 25 2. Le système d'affichage vidéo de la revendication 1, dans lequel la première mémoire mémorise une information représentative du nombre de bits par pixel des données mémorisées dans la première mémoire pour chacun de ces pixels. 30 3. Le système d'affichage vidéo de la revendication 2, dans lequel la première mémoire produit une pluralité de mots de sortie en série pour chaque adresse appliquée à la première mémoire. 4. Le système d'affichage vidéo de la revendication 3, comprenant une unité centrale (56) reliée de manière à accéder - à la première mémoire, dans lequel l'accès à la première mémoire par l'unité centrale est asynchrone par rapport à l'accés à la première mémoire par le premier moyen de commande. 5. Le système d'affichage vidéo de la revendication 4, dans lequel la première (35) et la seconde (37) mémoires sont réunies en une mémoire unique (35). 6. Un système d'affichage vidéo, caractérisé en ce qu'il 10 comprend: une première mémoire (35) pour mémoriser des données représentant une pluralité d'objets devant être affichés, les données de chaque objet étant mémorisées dans des emplacements (40-44) de cette première mémoire accessibles de façon 15 contigre, cette première mémoire permettant de mémoriser une longueur variable de données pour chaque ligne, de sorte qu'un objet puisse être mémorisé sur un nombre d'emplacements différent de celui des autres objets, - une seconde mémoire (37) pour mémoriser des attributs de 20 chacun des objets, - un premier moyen de commande (48) pour reçevoir ces attributs en provenance de la seconde mémoire, de manière à contrôler l'accès desdites données de la première mémoire, ce premier moyen de commande étant relié à la première et à la 25 seconde mémoire, ce premier moyen de commande comprenant un circuit pour déterminer quelle est la longueur des données de chacune des lignes, - un tampon (50) pour recevoir lesdites données depuis la première mémoire, ce tampon étant relié à la première mémoire 30 et au premier moyen de commande, de sorte que lesdites données mémorisées dans la première mémoire puissent être préparées en vue de leur affichage. 7. Le système d'affichage vidéo de la revendication 6, dans 35 lequel la première mémoire produit une pluralité de mots de sortie en série pour chaque adresse appliquée à la première mémoire. 8. Le système d'affichage vidéo de la revendication 7, comprenant une unité centrale (56) reliée de manière à accéder à la première mémoire, dans lequel l'accès à la première mémoire par l'unité centrale est asynchrone par rapport à 5 l'accés à la première mémoire par le premier moyen de commande. 9. Le système d'affichage vidéo de la revendication 8, dans lequel la première (35) et la seconde (37) mémoires sont 10 réunies en une mémoire unique (35). 10. Un système d'affichage vidéo, caractérisé en ce qu'il comprend: - une unité centrale (56), - une première mémoire (35) pour mémoriser des données représentant une-pluralité d'objets devant être affichés, les données de chaque objet étant mémorisées dans des emplacements (40-44) de cette première mémoire accessibles de façon contig e, cette première mémoire ayant une dimension 20 quelconque pour chacun des objets, de sorte qu'un objet puisse être mémorisé sur un nombre d'emplacements différent de celui des autres objets, cette première mémoire ayant un premier port de données et un second port de données, cette première mémoire produisant une pluralité de mots de sortie en série 25 sur le second port pour chaque adresse appliquée au premier port, - un premier bus reliant l'unité centrale à la première mémoire, - une seconde mémoire pour mémoriser des attributs pour 30 chacun desdits objets, cette seconde mémoire étant reliée à l'unité centrale, - un prermier moyen de commande (48) pour recevoir ces attributs en provenance de la seconde mémoire, de manière à contrôler l'accès desdites données de la première mémoire, ce 35 premier moyen de commande étant relié à la première et à la seconde mémoire, - un second bus relié au second port de la première mémoire, - un premier tampon (50) pour recevoir lesdites données depuis la première mémoire, ce tampon étant relié au second bus et au premier moyen de commande, de sorte que lesdites données mémorisées dans la première mémoire puissent être préparées en vue de leur affichage. 11. Le système d'affichage vidéo de la revendication 10, dans lequel le transfert des données sur le premier bus est asynchrone par rapport au transfert de données sur le second bus. 12. Le système d'affichage vidéo de la revendication 10, dans lequel la première (35) et la seconde (37) mémoires sont réunies en une mémoire unique (35). 13. Le système d'affichage vidéo de la revendication 10, dans lequel le premier moyen de commande accède aux données correspondant à une ligne d'affichage de chaque objet avant d'accéder aux données correspondant à une autre ligne d'affichage pour ces objets. 14. Le système d'affichage vidéo de la revendication 13, dans lequel le tampon reçoit des données pour une ligne d'affichage pour chacun des objets, et produit une ligne vidéo pour cet affichage. 15. Le système d'affichage vidéo de la revendication 14, dans lequel il est prévu une paire (A, B) desdits tampons pour permettre un double tamponnage, de sorte qu'une ligne de données vidéo soit lue depuis l'un des tampons lorsque l'autre 30 tampon est en train d'être chargé avec les données en provenance de la première mémoire. 16. Le système de la revendication 10, dans lequel il est prévu un second moyen de commande (figure 9) pour commander le 35 tampon, ce second moyen de commande étant relié au tampon et au premier moyen de commande. 17. Le système d'affichage vidéo de la revendication 16, dans lequel les données mémorisées dans la première mémoire comprennent des instructions pour contrôler les premier et second moyens de commande. 18. Le système d'affichage vidéo de la revendication 10, dans lequel l'un des attributs mémorisés dans la seconde mémoire pour chacun des objets est la position de ces objets sur l'affichage. 19. Le système d'affichage vidéo de la revendication 10, dans lequel l'un des attributs mémorisés dans la seconde mémoire représente la position relative (priorité) de chacun des objets entre l'avant-plan et l'arrièreplan;:our l'affichage. 20. Le système d'affichage vidéo de -la revendication 19, dans lequel ladite priorité est déterminée par l'ordre dans lequel les attributs de chacun des objets sont mémorisés dans le premier moyen de commande. 21. Le système d'affichage vidéo de la revendication 10, dans lequel l'un des attributs mémorisés dans la seconde mémoire comprend la position des données correspondant à chacun des objets dans la première mémoire. 25 22. Le système d'affichage vidéo de la revendication 10, dans lequel l'un des attributs mémorisés dans la seconde mémoire pour chacun des objets est une instruction pour la première ligne de données vidéo mémorisée dans la première 30 mémoire, cette instruction étant interprétée par le second moyen de commande. 23. Un système d'affichage vidéo comprenant: - une mémoire (35) pour mémoriser des données représentatives d'une pluralité d'objets devant être affichés, - un tampon (50) pour composer une ligne de données de pixel pour tous ceux des objets qui se trouvent sur cette ligne devant être affichée avant de composer une autre ligne de données de pixel, ce tampon étant relié à la mémoire, - un moyen de commande (48) pour contrôler l'accès aux données de la mémoire, de sorte qu'une ligne de données pour chacun des objets soit lue vers le tampon pour permettre la composition de la ligne de données de pixel pour l'affichage, le tampon pour chaque pixel de chaque donnée de pixel mémorisant également des données additionnelles représentant le type de données de pixel composées dans le tampon, de sorte que des données de pixel de types différents 10 puissent être aisément composées pour affichage. 24. Le système d'affichage vidéo de la revendication 23, dans lequel l'un des types de données de pixel représentés par lesdites données additionnelles sont des données (R,V,B) de 15 couleurs rouge-vertbleu pour un moniteur vidéo en couleurs. 25. Le système d'affichage vidéo de la revendication 24, dans lequel un autre type de données de pixel représenté par lesdites données additionnelles est un pointeur (L) d'une 20 table de recherche de couleur. 26. Le système d'affichage vidéo de la revendication 25, dans lequel lesdites données additionnelles pour chacun des pixels des données de pixel sont formées par un bit. 25 27. Le système d'affichage vidéo de l'une des revendications 23 ou 26, dans lequel la mémoire comprend une pluralité de RAMs vidéo. 28. Le système d'affichage vidéo de la revendication 23, dans lequel les données pour chacun des objets sont mémorisées dans des emplacements de la mémoire accessibles de façon contig e, cette mémoire étant partitionnée de façon quelconque pour chacun des objets, de sorte que l'un des objets puisse 35 être mémorisé sur un nombre d'emplacements mémoire différent de celui d'un autre objet. 29. Le système d'affichage vidéo de la revendication 27, 2S99873 dans lequel les données pour chacun des objets sont mémorisées dans des emplacements de la mémoire accessibles de façon contigUe, cette mémoire ayant une dimension quelconque pour chacun des objets, de sorte que l'un des objets puisse être 5 mémorisé sur un nombre d'emplacements mémoire différent de celui d'un autre objet. 30. Un système d'affichage vidéo comprenant: - une mémoire (35-) pour mémoriser des données représentatives d'une pluralité d'objets devant être affichés, - un tampon (50) pour composer une ligne de données de pixel pour tous ceux des objets qui se trouvent sur cette ligne devant être affichée avant de composer une autre ligne de données de pixel, ce tampon étant relié à la mémoire, - un moyen de commande (48) pour contrôler l'accès aux données de la mémoire, de sorte qu'une ligne de données pour chacun des objets soit lue vers le tampon pour permettre la composition de la ligne de données de pixel pour l'affichage, Le tampon pour chaque pixel des données de pixel mémorisant 20 également des données de masquage qui déterminent si, pour certains des objets, il faut utiliser des pixels de données dans le tampon pour composer la ligne de données de pixel, de manière à obtenir le masquage de données pendant la composition des données vidéo. 31. Le système d'affichage vidéo de la revendication 30, dans lequel les données de masquage sont mémorisées dans la mémoire sous forme de l'un des objets. 32. Le système d'affichage vidéo de la revendication 31, dans lequel les données de masquage comprennent un bit par pixel dans le tampon. 33. Le système d'affichage vidéo de la revendication 30, 35 dans lequel la mémoire comprend une pluralité de RAMs vidéo. 34. Le système d'affichage vidéo de l'une des revendications ou 33, dans lequel les données pour chacun des objets sont mémorisées dans des emplacements de la mémoire accessibles de façon contigUe, cette mémoire étant partitionnée de façon quelconque pour chacun des objets, de sorte que l'un des objets puisse être mémorisé sur un nombre d'emplacements mémoire différent de celui d'un autre objet. 35. Un système d'affichage-vidéo comprenant: - une mémoire (35) pour mémoriser des données représentatives d'une pluralité d'objets devant être affichés, 10 - un tampon (50) pour composer une ligne de données de pixel pour tous ceux des objets qui se trouvent sur cette ligne devant être affichée avant de composer une autre ligne de données de pixel, ce tampon étant relié à la mémoire, - un moyen de commande (48) pour contrôler l'accès aux 15 données de la mémoire, de sorte qu'une ligne de données pour chacun des objets soit lue vers le tampon pour permettre la composition de la ligne de données de pixel pour l'affichage, le tampon comprenant une pluralité de cellules (120) qui sont adressables simultanément par le moyen de commande, 20 chaque cellule étant reliée de manière à reçevoir des données en provenance de la mémoire sur une pluralité de lignes de données, et chaque cellule permettant la mémorisation, pour chaque donnée de pixel, d'une pluralité de pixels distincts, de sorte que les données qui ont été transférées depuis la 25 mémoire sur lesdites lignes de données puissent être simultanément lues vers les cellules pour un bloc de pixels adjacents. 36. Le système d'affichage vidéo de la revendication 35, 30 dans lequel chacune des cellules comprend un comparateur associé avec la position de mémoire des données pour chacun des pixels, pour comparer les signaux d'adresse provenant du moyen de commande avec des valeurs mémorisées, afin de déterminer si les données provenant du bus de données doivent 35 être inscrites dans les cellules. 37. Le système d'affichage vidéo de la revendication 36, dans lequel lesdites valeurs mémorisées représentent la position du pixel sur une ligne vidéo. 38. Un système d'affichage vidéo comprenant: - une mémoire (35) pout mémoriser des données représentatives d'une pluralité d'objets devant être affichés, - un tampon (50) pour composer une ligne de données de pixel pour tous ceux des objets qui se trouvent sur cette ligne devant être affichée avant de composer une autre ligne de données de pixel, ce tampon étant relié à la mémoire, - un moyen de commande (48) pour contrôler l'accès aux données de la mémoire, de sorte qu'une ligne de données pour chacun des objets soit lue vers le tampon pour permettre la composition de la ligne de données de pixel pour l'affichage, le tampon pour chacun des pixels des données de pixel 15 comprenant un moyen de calcul pour exécuter un calcul à partir de la position du pixel sur la ligne, de manière à effectuer une composition rapide de la ligne de données de pixels pour l'affichage. 39. Le système d'affichage vidéo de la revendication 38, dans lequel il est prévu un bus d'adresse reliant le moyen de commande et le tampon, le moyen de calcul opérant à partir de signaux appliqués sur le bus. 40. Le système d'affichage vidéo de la revendication 39, dans lequel ledit calcul comprend une comparaison. 41. Un système d'affichage vidéo comprenant: - une mémoire (35) pour mémoriser des données représentatives d'une pluralité d'objets devant être affichés, - un tampon (50) pour composer une ligne de données de pixel pour tous ceux des objets qui se trouvent sur cette ligne devant être affichée avant de composer une autre ligne de données de pixel, ce tampon étant relié à la mémoire, - un moyen de commande (48) pour contrôler l'accès aux données de la mémoire, de sorte qu'une ligne de données pour chacun des objets soit lue vers le tampon pour permettre la composition de la ligne de données de pixel pour l'affichage, le tampon pour chacun des pixels des données de pixel comprenant un moyen de calcul pour exécuter un calcul à partir d'une information mémorisée dans le tampon, cette information étant mémorisée pour chacun des pixels, de manière à effectuer une composition rapide de la ligne de données de pixels pour l'affichage. 42. Le système d'affichage vidéo de la revendication 41, dans lequel ladite information mémorisée est programmable. 10 43. Le système d'affichage vidéo de la revendication 42, dans lequel ladite information mémorisée est utilisée pour le masquage. 44. Un système d'affichage vidéo comprenant: - une mémoire (35) pour mémoriser des données représentatives d'une pluralité d'objets devant être affichés, - un tampon (50) pour composer une ligne de données de pixel pour tous ceux des objets qui se trouvent sur cette ligne 20 devant être affichée avant de composer une autre ligne de données de pixel, ce tampon étant relié à la mémoire, - un bus de données (59) reliant la mémoire au tampon, - un moyen de commande (48) pour contrôler l'accès aux données de la mémoire, de sorte qu'une ligne de données pour 25 chacun des objets soit inscrite dans le tampon par ce bus pour permettre la composition de la ligne de données de pixel pour l'affichage, - un bus d'adresse (58) reliant le tampon au moyen de commande, le tampon comprenant une pluralité de cellules (120), chacune ayant une pluralité de moyens de mémorisation de pixel permettant de mémoriser des données pour un pixel, - un moyen de calcul associé à chacun des moyens de mémorisation de pixel, relié au bus d'adresse de manière à 35 comparer les signaux présents sur le bus d'adresse avec la position de pixel respective dans la ligne, et à permettre la mémorisation sélective de données dans les moyens de mémorisation depuis le bus de données, à partir du résultat de ladite comparaison, de manière à effectuer une composition rapide de la ligne de données de pixel pour l'affichage. 45. Un système d'affichage vidéo, caractérisé en ce qu'il comprend: - une unité centrale (56), - une première mémoire (35), reliée à l'unité centrale, pour mémoriser des données représentant une pluralité d'objets devant être affichés, les données de chaque objet étant 10 mémorisées dans des emplacements (40-44) de cette première mémoire accessibles de façon contigUe, cette première mémoire ayant une dimension quelconque pour chacun des objets, de sorte qu'un objet puisse être mémorisé sur un nombre 15 d'emplacements. différent de celui des autres objets, - une seconde mémoire pour mémoriser des attributs pour chacun desdits objets, cette seconde mémoire étant reliée à l'unité centrale, - un premier moyen de commande (48) pour reçevoir ces 20 attributs en provenance de la seconde mémoire, de manière à contrôler l'accès desdites données de la première mémoire, ce premier moyen de commande étant relié à la première et à la seconde mémoire, - un premier tampon (50), recevant lesdites données depuis 25 la première mémoire, ce tampon étant relié à la première mémoire et au premier moyen de commande, ce premier tampon permettant de recevoir des données pour une ligne d'affichage, - un second tampon (51) relevant, ligne par ligne, des lignes vidéo complètes en provenance du premier tampon, ce second tampon permettant de mémoriser une trame de données 30 pour l'affichage, ce second tampon étant relié au premier tampon, de sorte que lesdites données mémorisées dans la première mémoire puissent être préparées en vue de leur affichage.