Brevet FR2780804A1 — publié le 20000107

DISPOSITIF DE CONTROLE DE L'AFFICHAGE DE CARACTERES DANS UN SYSTEME VIDEO La présente invention concerne l'affichage de caractères dans un système vidéo. Elle se rapporte plus particulièrement à une nouvelle architecture de contrôle de l'affichage et de mémorisation des données à afficher dans un tel système. Les récepteurs de télévision et les magnétoscopes sont équipés de manière courante de dispositifs d'affichage de caractères permettant d'afficher à l'écran, à la place de l'image vidéo ou en surimpression par rapport à l'image vidéo, des informations destinées à l'utilisateur. Il est courant par exemple d'afficher le numéro de la chaîne visualisée lorsque l'utilisateur change de chaîne, ou d'afficher des menus pour aider l'utilisateur à régler son téléviseur ou son magnétoscope. Sur la figure 1, on a représenté l'image vidéo I qui est affichée sur l'écran d'un récepteur de télévision. Dans cette image vidéo, la zone d'affichage des caractères 2 ne recouvre en général pas toute l'image. Cette zone 2 est divisée en rangées 3, 4 qui peuvent être de hauteurs (la hauteur d'une rangée correspondant au nombre de lignes vidéo nécessaires pour l'afficher) différentes, chaque rangée étant elle même divisée en caractères 5, 6 également de taille variable. L'ensemble des rangées affichées dans la zone 2 est appelé en général une page d'écran. Dans la suite de la description, on emploiera le terme "page d'écran" pour désigner tout ensemble de rangées appartenant à une même image vidéo, ces rangées étant disposées de manière consécutive (par exemple dans le cas d'une page transmise selon la norme Télétexte) ou bien étant séparées par un certain nombre de lignes vidéo ne comportant pas de caractères affichés (par exemple dans le cas de menus de réglage du téléviseur ou du magnétoscope). Ce terme de page d'écran" est à ne pas confondre avec l'écran d'affichage du téléviseur, c'est à dire la partie visible du tube cathodique d'un téléviseur. Les dispositifs connus d'affichage de caractères comportent différents types d'architectures de mémoires. Dans un premier type d'architecture, l'information à afficher est stockée sous forme graphique. C'est à dire qu'on stocke dans une mémoire un tableau contenant la valeur de chaque pixel formant l'image à afficher. Si l'affichage est monochrome, chaque pixel peut être représenté par un seul bit mais si on souhaite un affichage en couleurs et différents niveaux de luminances possibles, il faudra beaucoup plus de bits par pixel. Ainsi, pour une image de N x M pixels, il faudra stocker en mémoire un tableau de N x M x P bits, P étant le nombre de bits nécessaires au codage de chaque pixel. On voit aisément que ce type d'architecture est très consommateur de mémoire. Une alternative à cette solution consiste à stocker, pour chaque pixel, I'adresse d'une couleur (par exemple codée sur 4 bits) prédéterminée qui est stockée dans une palette. Néanmoins, la taille de la mémoire nécessaire pour ce type d'architecture est toujours très importante. Dans un deuxième type d'architecture, on stocke les différents modèles de caractères disponibles dans une mémoire morte (ROM, de l'anglais "Read Only Memory"), appelée mémoire de polices de caractères. Chaque caractère est stocké sous la forme d'une matrice dont les intersections représentent les points élémentaires du caractère, la valeur ('0' ou '1') de ces points élémentaires indiquant si ce point appartient à la forme ou au fond du caractère. Les codes des caractères à afficher sont stockés quant à eux dans une mémoire vive (RAM, de l'anglais "Random Access Memory") laquelle fournit le code du caractère à la mémoire morte décrite ci-dessus. Il existe là encore deux catégories de dispositifs d'affichage de caractères connus ayant ce deuxième type d'architecture suivant l'organisation de leur mémoire vive. Dans la première catégorie, on stocke en mémoire un tableau de taille fixe, représenté schématiquement à la figure 2a, ayant une "largeur" e (qui est fonction du nombre de caractères par rangée) et une "profondeur" p (correspondant au nombre de rangées par image) fixes déterminées par la taille de la page d'écran que l'on souhaite afficher. C'est pourquoi cette première catégorie de mémoire est parfois appelée mémoire "d'écran". Le tableau contient des codes de caractères C, par exemple stockés sur 8 bits, ainsi que des codes d'attributs de caractères A qui permettent de définir des paramètres d'affichage des caractères (couleur, taille, soulignement, etc.). La deuxième catégorie utilise une mémoire de la taille d'une ou de plusieurs rangées. Dans ce cas, on ne stocke pas l'intégralité du contenu de la page d'écran que l'on souhaite afficher mais seulement une ou plusieurs rangées de caractères formant ladite page d'écran. Par exemple, sur la figure 2b, on a représenté une mémoire de la taille de deux rangées permettant de mémoriser une rangée courante 10 affichée à l'écran ainsi qu'une rangée 20, qui sera affichée ultérieurement à l'écran, et dont le contenu est généré pendant l'affichage de la rangée 10, le contenu de la rangée 10 étant lui-même modifié pendant l'affichage de la rangée 20 et ainsi de suite. Chaque rangée contient, comme ci-dessus, des codes de caractères C et des codes d'attributs d'affichage A. Ce deuxième type d'architecture, même s'il permet de réduire de manière importante la taille de la mémoire vive nécessaire par rapport au premier type d'architecture stockant l'information sous forme graphique, présente cependant un certain nombre d'inconvénients. En effet, ce type d'architecture de mémoire est très figé. On peut seulement, à l'intérieur d'une même page d'écran, modifier les attributs d'affichage des caractères, c'est à dire leur couleur ou leur taille. Encore faut-il définir au départ quel sera le mode de transmission des attributs d'affichage. Par exemple, sur la figure 2a, on a choisi de transmettre un code d'attribut d'affichage A avec chaque code de caractère C transmis. Ce mode de transmission est généralement appelé "mode parallèle". Cela signifie que l'apparence (couleur / forme) des caractères pourra être modifiée d'un caractère à l'autre. Par contre, à la figure 2b, on a choisi de transmettre un attribut d'affichage seulement entre chaque mot (représentés par une suite de codes de caractères C). Ce mode de transmission des attributs est en général appelé "mode série". Cela signifie que l'apparence des caractères sera uniforme dans chaque mot et ne pourra être modifiée que d'un mot à l'autre. Le problème de ce type d'architecture est qu'il ne permet pas de changer de mode de transmission des attributs d'affichage à l'intérieur d'une même page d'écran. Or, dans certains cas, il peut être utile de modifier l'apparence des caractères d'un caractère à l'autre tandis que dans d'autres cas cela est parfaitement inutile. Suivant le choix effectué, soit on sera limité dans les possibilités d'affichage mais l'espace mémoire utilisé sera raisonnable, soit on aura des possibilités d'affichage plus riche mais l'espace mémoire sera la plupart du temps surdimensionné puisqu'il contiendra des informations redondantes concernant les attributs d'affichage. Par ailleurs, il existe d'autres paramètres, tels que le nombre de caractères par rangée, qui ne peuvent pas être modifiés d'une rangée à l'autre et qui sont seulement définis au niveau de chaque page d'écran. Or il peut être intéressant de pouvoir modifier ce type de paramètre d'une rangée à l'autre, par exemple lorsque l'on affiche des menus de réglages, car certaines rangées affichées peuvent contenir moins de caractères que d'autres. Un objet de la présente invention est de proposer un nouveau type d'architecture de mémoire dans un dispositif d'affichage de caractères qui offre davantage de possibilités de modification des paramètres d'affichage d'une rangée à l'autre à l'intérieur d'une même page d'écran et qui permette d'optimiser l'espace mémoire utilisé suivant les applications choisies. A cet effet, l'invention propose un dispositif de contrôle de l'affichage de caractères dans un système vidéo comportant une mémoire de stockage d'informations relatives à l'affichage des caractères. Selon l'invention, ladite mémoire comprend: - une première zone pour stocker, à des adresses fixes, des données et / ou des paramètres de contrôle général de l'affichage; et - une deuxième zone divisible en espaces de tailles variables pour stocker, dans chacun des espaces, des paramètres de contrôle et des données relatifs à l'affichage d'un ensemble de caractères appartenant à une page d'écran. Ainsi, I'espace mémoire est utilisé en fonction des besoins réels de I'affichage et cette structure de mémoire permet de modifier les paramètres d'affichage d'un ensemble de caractères à l'autre. Selon un aspect de l'invention, chaque espace de la deuxième zone contient l'adresse de l'espace mémoire correspondant au prochain ensemble de caractères de la page d'écran devant être affiché. Selon un autre aspect de l'invention, I'adresse de l'espace mémoire correspondant à un premier ensemble de caractères à afficher est stockée dans la première zone de la mémoire. Selon un aspect préféré de l'invention, chacun des espaces comporte: - une première partie, de format prédéterminé, contenant au moins des paramètres de contrôle relatifs à un ensemble de caractères; et - une deuxième partie, dont le format est défini par des paramètres stockés dans la première partie, contenant les données correspondant audit ensemble de caractères. Selon un mode de réalisation particulier, la première partie de chacun des espaces contient en outre des attributs d'affichage relatifs audit ensemble de caractères. Selon un mode de réalisation particulier, I'adresse de l'espace mémoire correspondant au prochain ensemble de caractères devant être affiché est stockée dans la première partie de l'espace mémoire correspondant à l'ensemble de caractères couramment affiché. Selon un mode de réalisation particulier, la première partie de chaque espace comporte des paramètres de positionnement vertical et / ou horizontal de l'ensemble de caractères dans l'image affichée par le système vidéo. Selon un mode de réalisation particulier, la première partie de chaque espace comporte un paramètre indiquant le nombre de caractères que comprend l'ensemble de caractères correspondant de l'espace mémoire, les données relatives auxdits caractères étant stockées dans la deuxième partie de l'espace mémoire. Dans un premier format de codage des données situées dans la deuxième partie d'un espace mémoire, lesdites données sont codées selon un mode série et comprennent des codes de caractères et des attributs d'affichages transmis entre les mots d'un même ensemble de caractères. Dans ce premier format de codage, un octet est réservé dans la deuxième partie de l'espace mémoire pour le stockage de chaque caractère. Dans un deuxième format de codage des données situées dans la deuxième partie d'un espace mémoire, lesdites données sont codées selon un mode parallèle simple et comprennent, pour chaque caractère, un code de caractère et un attribut d'affichage. Dans ce deuxième format de codage, deux octets sont réservés dans la deuxième partie de l'espace mémoire pour le stockage de chaque caractère. Dans un troisième format de codage des données situées dans la deuxième partie d'un espace mémoire, lesdites données sont codées selon un mode parallèle étendu et comprennent, pour chaque caractère: - un code de caractère, - un attribut de couleur du caractère contenant des adresses de palettes de couleurs elles-mêmes stockées dans la première zone de la mémoire, et - un attribut d'affichage étendu. Dans ce troisième mode de codage, trois octets sont réservés dans la deuxième partie de l'espace mémoire pour le stockage de chaque caractère. D'autres caractéristiques et avantages de l'invention apparaîtront à travers la description suivante d'un mode de réalisation particulier, non limitatif, de l'invention faite en référence aux figures annexées, parmi lesquelles: - la figure 1, décrite ci-dessus, représente schématiquement l'image qui apparaît sur un écran de téléviseur lorsque des caractères sont affichés; - les figures 2a et 2b, décrites ci-dessus, représentent schématiquement deux types d'architectures de mémoires dans des dispositifs d'affichage de caractères connus; - la figure 3 illustre le contenu de la mémoire vive utilisée dans le dispositif selon l'invention; - les figures 4a, 4b et 4c illustrent, de manière plus détaillée le contenu de certaines parties de la mémoire représentée à la figure 3; - la figure 5 illustre un exemple d'affichage de caractères possible grâce au dispositif selon l'invention; - la figure 6 représente schématiquement un dispositif de contrôle de I'affichage de caractères selon l'invention. Sur la figure 3, on a représenté le contenu d'une mémoire vive dans laquelle sont stockées à la fois les données à afficher et des paramètres de contrôle de l'affichage selon une architecture conforme à l'invention. Dans le mode de réalisation illustré par la figure 3, la mémoire vive a une profondeur de 8 bits, ou un octet. C'est à dire qu'à chaque adresse de ladite mémoire est stocké un mot d'une longueur de 8 bits. Ces mots sont ensuite groupés deux à deux pour former des ensembles de 16 bits. Le contenu de la mémoire est représenté sous la forme d'un tableau contenant, dans la première colonne, les adresses de la mémoire qui sont exprimées en base hexadécimale, et dans la deuxième colonne, le contenu proprement dit de la mémoire. Selon l'invention, cette mémoire est partitionnée en deux zones principales: - la première zone Zl, de taille fixe, contient des paramètres et des données servant au contrôle général de l'affichage, qui sont stockés à des adresses fixes; - la deuxième zone Z2, de taille variable, est divisée en espaces B1, B2, B3, etc. appelés dans la suite "buffers", stockés à des adresses aléatoires, qui contiennent chacun des paramètres et des données relatifs à l'affichage d'une rangée de caractères d'une page d'écran. L'adresse du buffer contenant les données correspondant à la première rangée affichée de la page d'écran est enregistrée dans la première zone ZI de la mémoire. Les buffers sont ensuite chaînés entre eux grâce à un paramètre, I'adresse du prochain buffer, qui est contenu dans chaque buffer. C'est à dire que chaque buffer contient l'adresse du buffer contenant les données correspondant à la prochaine rangée devant être affichée à l'écran. De manière plus détaillée, la première zone Z1 contient tout d'abord des attributs globaux aux adresses 0000h à 0003h. Les deux premiers octets, stockés aux adresses 0000h et 0001h, formant le premier mot de 16 bits, contiennent la valeur de la couleur par défaut des zones de l'écran o aucun caractère n'est affiché ainsi que la valeur de transparence par défaut. La couleur par défaut est définie sur 9 bits (3 bits pour le rouge, 3 bits pour le vert et 3 bits pour le bleu). Elle est choisie parmi une combinaison de 512 couleurs possibles lors de l'initialisation du contenu de la mémoire. La valeur de transparence, définie sur 3 bits, offre 8 possibilités d'affichage en transparence allant de totalement opaque, lorsque uniquement le signal représentant la couleur par défaut est affiché, à totalement transparent, lorsque seul le signal vidéo est affiché. Les attributs globaux comportent ensuite, aux adresses 0002h et 0003h, deux octets servant à mémoriser l'adresse du premier buffer contenant les données de la première rangée affichée mentionnée plus haut. Dans le présent exemple, l'adresse du premier buffer est 0084h. La première zone Zl comporte enfin une palette de couleurs de forme, aux adresses 0004h à 0023h, et une palette de couleurs de fond, aux adresses 0024h à 0043h. Ces palettes permettent de mémoriser 16 couleurs de forme de caractère et 16 couleurs de fond de caractère, les couleurs étant elles-mêmes définies sur deux octets parmi un choix de 512 couleurs possibles. Comme l'intégralité des deux octets n'est pas utilisée pour définir les couleurs, qui sont définies sur 9 bits comme la couleur par défaut, certains bits peuvent être utilisés pour gérer la transparence du fond et de la forme des caractères, ainsi que le soulignement des caractères. Pour choisir une couleur particulière à appliquer, par exemple, à la forme d'un caractère, il suffira de mémoriser avec le caractère l'adresse correspondante (codée sur 4 bits) de la palette de couleurs de forme et d'aller lire le contenu de ladite palette. De manière facultative, il est possible de stocker des palettes étendues de couleurs de forme et de fond des caractères pour avoir un choix de couleurs plus vaste à sa disposition. Dans l'exemple de la figure 3, ces palettes étendues sont stockées dans une zone Zl', localisée aux adresses 0044h à 0083h, et permettent de mémoriser 16 couleurs supplémentaires de forme de caractère et 16 couleurs supplémentaire de fond de caractère. Cette zone ZI', lorsqu'elle existe, est également de taille fixe et stockée à des adresses fixes. La deuxième zone de la mémoire, référencée globalement Z2, comporte, comme on l'a vu ci-dessus, un ensemble de buffers B1, B2, B3, etc. contenant chacun les données relatives à une rangée de caractères. L'ordonnancement des buffers dans la mémoire n'est pas du tout lié à l'ordre d'affichage des rangées de caractères correspondant à l'écran puisque chaque buffer contient, dans un paramètre, I'adresse du prochain buffer comme mentionné plus haut. Chaque buffer contient trois types de données: - des paramètres de contrôle utilisés, comme on le verra plus loin, par l'unité de contrôle de l'affichage, tels que la taille du buffer, I'adresse du prochain buffer à traiter, le nombre de bits alloués à la transmission de chaque caractère, etc.; - des paramètres déterminant le positionnement de la rangée à l'écran ainsi que l'apparence des caractères de la rangée (attributs d'affichage des caracteres); et - des données correspondant aux caractères à afficher. La deuxième zone Z2 de la mémoire a une taille variable à double titre. Tout d'abord, le nombre de buffers mémorisés est variable puisqu'il dépend du nombre de rangées de caractères affichées dans une page d'écran, ce nombre pouvant être modifié à chaque page d'écran. Ensuite, la taille même des buffers est variable. Ils comportent tous une première partie de taille fixe, égale à 8 octets, qui contient des paramètres de contrôle et de positionnement de la rangée et des attributs définissant la taille et la forme des caractères de la rangée. Ces premières parties sont par exemple mémorisées aux adresses 0084h à 0091h pour le buffer B1, 0102h à 0109h pour le buffer B2 et 0118h à h pour le buffer B3 de la figure 3. Les buffers comportent par ailleurs une deuxième partie de taille variable contenant les codes des caractères de la rangée à afficher ainsi que, suivant le mode de codage des données choisi, des attributs d'affichage définissant l'apparence des caractères (couleur, taille, forme, clignotement, etc.). Ces deuxièmes parties sont mémorisées aux adresses respectivement 0092h à 0101h, 0110h à 0117h et 0126h à XXXh, pour les buffers respectivement B1, B2 et B3 dans l'exemple de la figure 3. Le contenu des buffers va maintenant être décrit plus en détail en se référant aux figures 4a à 4c qui représentent respectivement le contenu des buffers B1 à B3 de la figure 3. Cette description sera faite également en référence à la figure 5 qui montre un exemple des possibilités d'affichages offertes par l'architecture de mémoire selon l'invention. La première partie de chaque buffer qui a une taille et une architecture identique d'un buffer à l'autre, ne sera décrite qu'une seule fois, en référence à la figure 4a. On a représenté sur la figure 4a le contenu des différents octets composant le buffer BI. Comme on l'a vu plus haut, les octets sont regroupés deux à deux pour former des ensembles de 16 bits, ceci uniquement dans le but d'en faciliter la description. On notera que le buffer B1 contient les données relatives à l'affichage de la rangée R1 de la figure 5 o on a représenté par un rectangle 21 l'image affichée sur l'écran d'un téléviseur. Le premier paramètre, mémorisé aux adresses 0084h et 0085h de la mémoire, définit le positionnement vertical de la rangée R1 dans l'image. Ce paramètre, défini sur 10 bits, contient le numéro de la ligne T.V. à laquelle commence l'affichage de la rangée R1. Cette ligne est référencée 11 sur la figure 5. Les bits suivants 10 à 15 sont laissés libres dans le présent exemple mais ils peuvent tout à fait être utilisés pour stocker d'autres paramètres. De plus, le numéro de la ligne T.V. peut être codé sur 11 bits, par exemple si on utilise le dispositif dans un téléviseur haute définition. Les deux octets suivants du buffer B1 contiennent des attributs de forme de la rangée (bits 0 à 7) ainsi que des paramètres ARSV (bits 8 à 11) et AREV (bits 12 à 15) qui permettent de définir la première et la dernière ligne active dans la matrice de caractère. En effet, les différents modèles de caractères sont stockés sous forme de matrice dans une mémoire morte de police de caractères. Les paramètres décrits ci-dessus sont utilisés dans des cas très particuliers o l'on ne souhaite pas afficher le caractère en entier, par exemple pour réaliser des menus déroulants. Dans ce cas, on indique dans les paramètres ARSV et AREV la première et la dernière ligne de la matrice de caractère que l'on souhaite afficher à l'écran. L'octet mémorisant les attributs de forme de la rangée (bits 0 à 7) contient diverses informations. Un certain nombre de bits servent à valider ou à inhiber des paramètres de contrôle de l'aspect des caractères à l'écran: clignotement du caractère, bordure noire autour de la forme du caractère, lissage des bords du caractère, etc. Si ces paramètres sont inhibés, ils ne pourront pas être utilisés dans la rangée. Par contre, s'ils sont validés, ces paramètres pourront être utilisés dans la rangée à travers les attributs d'affichage mémorisés avec les caractères. D'autres bits définissent la taille des caractères (simple / double hauteur, simple / double largeur). D'autres bits encore permettent de sélectionner le format de la matrice définissant le modèle des caractères. En effet, les caractères peuvent être stockés sous forme de matrice de 9x13 points élémentaires pour certaines applications (par exemple pour afficher du texte en alphabet latin) et sous forme de matrice de 18x26 points pour d'autres applications (affichage de symboles graphiques ou de caractères chinois par exemple). Enfin, les derniers bits de l'attribut de forme sont utilisés pour définir le mode de codage des données qui sont transmises dans la deuxième partie, de taille variable, du buffer. Selon le mode de réalisation préféré de l'invention, il existe trois modes de codage des données: - le mode série dans lequel on réserve un octet par caractère, des attributs d'affichage pouvant être stockés entre les différents mots d'une même rangée de caractères; - le mode parallèle dans lequel on réserve deux octets par caractère, le premier octet contenant un code de caractère et le deuxième contenant un code de couleur et / ou de forme du caractère; - le mode parallèle étendu dans lequel on réserve trois octets par caractère, les deux premiers octets étant similaires à ceux du mode parallèle et le troisième contenant des attributs supplémentaires et des bits permettant d'étendre la police de caractères. Dans le buffer B1, c'est le mode de codage parallèle simple qui a été choisi comme on le verra plus loin. Aux adresses 0088h et 0089h, on trouve ensuite mémorisée l'adresse du prochain buffer à traiter. Dans le présent exemple, il s'agit du buffer contenant les données de la rangée R2 (Figure 5), c'est à dire le buffer B2 dont l'adresse de début est 0102h. Cette adresse est représentée sur la figure 4a en étant stockée sur 11 bits, ce qui permet de définir 2048 adresses différentes. Ceci convient au cas o la mémoire a une taille maximale de 2 Kilo- octets mais il est également possible, comme les bits 10 à 15 sont laissés libres, d'utiliser l'intégralité des 16 bits pour définir l'adresse du prochain buffer. Dans ce cas, la mémoire pourra avoir une taille maximale de 64 Kilooctets. En poursuivant la description de la première partie du buffer B1, on trouve, aux adresses 0090h et 0091h un paramètre de décalage horizontal, stocké sur 10 bits, qui détermine le nombre de pixels x (sur la figure 5) entre le début de la ligne vidéo et le début de l'affichage de la rangée, et un paramètre NCR qui représente le nombre de caractères dans la rangée et qui est stocké sur 6 bits. Ce paramètre NCR sera égal à 5 dans le buffer B1 car la rangée R1 compte 5 caractères ('M', 'e', 'n', 'u', '1'). La deuxième partie du buffer B1, localisée aux adresses 0092h à 0101h, est codée comme on l'a vu ci-dessus en mode parallèle. Chaque caractère de la rangée R1 est donc mémorisé sur 2 octets. Le premier octet (bits 0 à 7) contient le code du caractère à afficher et le deuxième octet (bits 8 à 15) comporte un attribut "Adresse B.P." (de l'anglais "Background Palette" signifiant "palette de fond"), qui contient une adresse de la palette de couleurs de fond, ainsi qu'un attribut "Adresse F.P." (de l'anglais "Foreground Palette" signifiant "palette de forme"), qui contient une adresse de la palette de couleurs de forme. Ces attributs permettent de définir respectivement la couleur du fond et de la forme du caractère associé dont le code est mémorisé dans le premier octet et sont désignés dans la suite ensembles par le terme "attribut adresses palettes". Ce mode de codage parallèle permet de modifier entre deux caractères consécutifs la couleur du fond et de la forme des caractères comme cela est illustré sur la figure 5 à la rangée R1, par exemple entre le caractère 'u' et le caractère '1'. Le buffer B2, dont le contenu est représenté à la figure 4b, comporte une première partie, localisée aux adresses 0102h à 0109h, de même taille et contenant les mêmes paramètres que la première partie du buffer B1 qui a été décrite ci-dessus. La deuxième partie du buffer B2 est codée en mode série. Dans ce mode de codage, les deux premiers octets de cette deuxième partie (localisés aux adresses 0110h et 0111h dans le présent exemple) comprennent des attributs série. Ces attributs série sont de deux types: des attributs série de forme qui contiennent une adresse de la palette de couleurs de forme et des attributs série de fond contenant une adresse dans la palette de couleurs de fond. Ces deux types d'attribut peuvent en outre contenir des bits définissant I'aspect des caractères à l'écran (clignotement, italique,...). Dans le présent exemple, la rangée R2 comporte un seul mot de 6caractères. Les attributs série 1 et 2 mémorisés dans le buffer B2 définissent donc la couleur et l'aspect de tous les caractères de la rangée R2 dont les codes respectifs sont mémorisés dans les octets suivants (localisés aux adresses 0112h à 0117h) de la deuxième partie du buffer B2. Mais il est également possible, lorsqu'une rangée de caractères comporte plusieurs mots, de transmettre, entre les mots, des attributs séries pour modifier la couleur du fond ou de la forme des caractères suivants de la rangée, ces attributs apparaissant à l'écran comme des caractères espace. Le codage en mode série est particulièrement bien adapté lorsque l'on souhaite afficher des rangées de caractères dont l'apparence est uniforme comme la rangée R2 de la figure 5. Le buffer B3, dont le contenu est représenté à la figure 4c, illustre le troisième mode de codage des données cité plus haut: le mode parallèle étendu. La première partie du buffer B3, localisée aux adresses 0118h à h, est de même taille et contient les mêmes paramètres que la première partie du buffer B1 qui a déjà été décrite plus haut. Dans la deuxième partie du buffer B3, trois octets sont utilisés pour transmettre les données relatives à chaque caractère: un premier octet contient le code du caractère, un deuxième octet contient un attribut parallèle étendu et un troisième octet contient un attribut d'adresses de palettes qui a déjà été décrit en liaison avec le buffer B1. L'attribut parallèle étendu contient des bits permettant de définir des codes de caractères supplémentaires (en s'ajoutant aux huit premiers bits du code de caractère), de choisir des couleurs dans les palettes étendues de couleur de forme et de fond (zone Zl' de la figure 2) et de contrôler certains aspects de l'apparence des caractères à l'écran: ombre, clignotement, etc. On notera que le contenu du buffer B3 n'est pas approprié pour l'affichage de la rangée R3 de la figure 5. Celle-ci contient en effet le même caractère répété dix fois pour former une ligne ayant une couleur uniforme. Le mode de codage série est donc plus approprié dans ce cas car il utilise moins d'espace mémoire pour le même résultat. Enfin, la rangée R4 de la figure 5 contenant un seul caractère, il est équivalent d'utiliser le mode série ou le mode parallèle simple pour mémoriser les données relatives à ce caractère unique. Grâce à l'architecture particulière de la mémoire vive qui vient d'être décrite, de multiples possibilités d'affichage sont offertes tout en adaptant, pour chaque rangée, I'espace mémoire utilisé aux besoins réels de l'affichage. A la figure 5, on a monté un exemple d'affichage de menu permettant de régler le volume sonore d'un récepteur de télévision. L'utilisateur modifie le volume en actionnant sa télécommande mais pour qu'il visualise mieux son réglage, un curseur représenté à la rangée R4 se déplace le long de la ligne représentée à la rangée R3. On voit sur l'exemple illustré à la figure 5 que grâce à l'invention, il est possible dans une même page d'écran d'avoir des rangées de caractères de longueurs (en nombre de caractères) et de hauteurs différentes, ayant des couleurs et des aspects différents d'une rangée à l'autre et cela en ayant une mémoire dont la taille est optimisée selon les besoins réels de l'affichage. Sur la figure 6 est représenté un dispositif 100 de contrôle de l'affichage de caractères dans un système vidéo conforme à l'invention. Ce dispositif comporte essentiellement une unité centrale de microprocesseur CPU, une unité de contrôle de l'affichage UCA et une mémoire vive OSDRAM qui est partagée par les deux unités précédentes et dont le contenu est du type de celui qui a été décrit en liaison avec les figures 3 et 4a-4c. Cette mémoire vive peut être dédiée à la fonction d'affichage de caractères ou bien peut être une partie d'une mémoire d'utilisation plus générale. La mémoire vive OSDRAM est reliée à l'unité centrale de microprocesseur CPU par l'intermédiaire de trois bus: un bus d'adresses B@1 allant de l'unité centrale CPU à la mémoire OSDRAM, un bus de données BlD1 bidirectionnel permettant des accès en lecture ou en écriture à ladite mémoire par l'unité centrale ainsi qu'un bus de commande BC1, orienté de l'unité centrale vers la mémoire, et indiquant par exemple si l'accès sur le bus de données se fait en lecture ou en écriture. La mémoire vive OSDRAM est également reliée à l'unité de contrôle de l'affichage UCA par l'intermédiaire d'un bus d'adresses B@2, dirigé vers la mémoire, et d'un bus de données BD2, dirigé vers l'unité de contrôle de l'affichage. L'unité UCA n'effectue en effet que des accès en lecture à la mémoire OSDRAM. D'une manière générale, le fonctionnement du dispositif est le suivant: I'unité centrale CPU écrit le contenu de la mémoire nécessaire à l'affichage d'une page d'écran, comprenant à la fois des instructions de contrôle et des données à afficher. Le contrôle de l'affichage est ensuite effectué uniquement par l'unité UCA lisant le contenu de ladite mémoire et ne requiert pas l'intervention de l'unité centrale CPU, du moins tant que le contenu de la page d'écran demeure inchangé. La fonction de l'unité de contrôle UCA est essentiellement d'aller lire les données et paramètres adéquats dans la mémoire OSDRAM et de les réaffecter ensuite en temps réel vers les différentes unités réalisant l'affichage des caractères sur l'écran du système vidéo (non représenté). En effet, I'unité de contrôle de l'affichage UCA est reliée à une mémoire morte ROM, dans laquelle sont stockées les polices de caractères, par l'intermédiaire d'un bus CC dans lequel sont transmis des codes de caractères. Ces codes de caractères correspondent à des adresses de la mémoire ROM dans lesquelles sont stockés les matrices correspondantes des caractères, sous forme de 9 x 13 ou 18 x 26 points élémentaires. Un premier rôle de l'unité UCA est donc de lire les codes de caractères stockés dans les buffers qui ont été décrits précédemment et de transmettre ces codes sur le bus CC. Par ailleurs, I'unité de contrôle de l'affichage UCA est reliée à un processeur de traitement pixel PP par l'intermédiaire de deux bus: un bus AC transmettant des attributs couleurs et un bus AF transmettant des attributs de formes. Le bus des attributs de couleurs a une taille égale à la taille des palettes de couleurs stockées dans la première partie Z1 de la mémoire OSDRAM puisqu'il transmet les bits représentant, soit une couleur d'une palette, soit la couleur par défaut définie dans les attributs globaux de la mémoire OSDRAM. En pratique, I'unité UCA va lire le contenu d'un buffer stocké dans la deuxième partie de la mémoire OSDRAM pour afficher une rangée de caractères. Lorsque le buffer est du type du buffer B2 par exemple et contient des attributs d'adresses palettes, I'unité UCA transmet ces adresses de palettes sur son bus B@2 et récupère le contenu correspondant des palettes sur son bus BD2 qu'elle transmet ensuite au bus AC. Le bus des attributs de forme AF contient quant à lui des informations relatives à l'aspect des caractères à l'écran: taille, clignotement, bordure noire autour de la forme, italique, etc. Ces informations proviennent en partie de l'attribut de forme de la rangée stocké dans la première partie de chaque buffer (par exemple, la taille des caractères de la rangée est défini dans cet attribut) et en partie des attributs série ou des attributs parallèles étendus suivant le mode de codage des données choisi. La mémoire de polices de caractères ROM, décrite ci-dessus, transmet les matrices correspondant aux caractères à un registre à décalage REG qui transmet ensuite les lignes de la matrice bit à bit au processeur de traitement pixel PP. Ce dernier élabore de manière connue en soi, à partir de ces bits de données et à partir des bits de contrôle transmis par les bus AC et AF les signaux R, G, B contenant les caractères à afficher. Le processeur PP élabore également un signal d'insertion FB (de l'anglais "Fast Blanking" signifie "insertion rapide") qui permet, soit d'insérer le texte à afficher à la place du signal vidéo, soit d'afficher le texte en transparence par rapport au signal vidéo, selon le contenu de certains bits des attributs couleurs. L'unité de contrôle UCA est en outre cadencée par deux bases de temps qui permettent de gérer le positionnement vertical et horizontal des caractères à l'écran. La première base de temps est constituée par un compteur de positionnement vertical CPT1 qui reçoit, sur son entrée d'horloge CK un signal de synchronisation ligne H Sync, et sur son entrée de remise à zéro RAZ un signal de synchronisation trame V Sync, les signaux H Sync et V Sync provenant du signal vidéo dans lequel sont insérés les caractères. La deuxième base de temps est constituée par un compteur de positionnement horizontal CPT2 recevant sur son entrée d'horloge CK l'horloge pixel H Pix, qui bat par exemple à une fréquence de 50 Hz si le signal vidéo est codé dans un standard européen (PAL, SECAM), et sur son entrée de remise à zéro RAZ le signal de synchronisation ligne H Sync. Le fonctionnement du dispositif qui vient d'être décrit comprend essentiellement les étapes suivantes: pour chaque nouvelle page d'écran qui doit être affichée, la première étape qui est effectuée par l'unité centrale CPU consiste à partager la mémoire vive OSDRAM en deux partie, c'est à dire à réserver l'espace nécessaire au stockage de la première partie Z1 (et éventuellement Zl' si on utilise des palettes de couleurs étendues) de la mémoire. Ensuite, le contenu de la première partie de la mémoire est initialisé: on stocke ainsi l'adresse du premier buffer dans lequel l'unité de contrôle de l'affichage UCA pourra lire les données relatives à la première rangée à afficher, la valeur de la couleur par défaut ainsi que les valeurs de couleurs des différentes palettes. Ces valeurs de couleurs peuvent être réinitialisées à chaque nouvelle page d'écran, ou bien rester stables pendant plusieurs pages d'écrans. L'unité centrale CPU remplit ensuite, au minimum, le contenu du premier buffer correspondant à la première rangée devant être affichée. L'étape suivante consiste à déclencher le fonctionnement de l'unité de contrôle de l'affichage UCA par l'intermédiaire d'un signal RS qui déclenche la lecture par l'unité UCA de l'adresse du premier buffer devant être traité et d'un certain nombre d'autres paramètres d'initialisation. Ensuite, I'unité centrale CPU et l'unité de contrôle de l'affichage UCA vont fonctionner en parallèle jusqu'à ce que le contenu de la dernière rangée de la page d'écran ait été stocké dans la mémoire OSDRAM. D'une part, I'unité UCA lit le contenu du buffer courant (qui au départ est le premier buffer) et le traite comme on l'a vu ci-dessus pour que la rangée correspondante soit affichée à l'écran. D'autre part, et dans le même temps, l'unité centrale CPU remplit le contenu du prochain buffer, c'est à dire du buffer qui sera traité par l'unité UCA immédiatement après le buffer courant et qui contient les données relatives à la rangée suivant celle qui est en cours d'affichage. Ces données sont écrites dans la mémoire OSDRAM en commençant à l'adresse qui était indiquée dans le champ "adresse du prochain buffer" du buffer courant. Une fois que le contenu du prochain buffer a été rempli entièrement et que le buffer courant a fini d'être affiché, une interruption est générée pour indiquer à l'unité de contrôle de l'affichage UCA qu'elle peut commencer à traiter le prochain buffer qui devient le buffer courant. Le processus continue ainsi en boucle jusqu'à ce que le buffer contenant les données de la dernière rangée d'une page d'écran ait été rempli. Lorsque l'unité UCA a terminé de traiter l'affichage de la dernière rangée de l'écran, une interruption est générée et l'unité UCA est réinitialisée. Elle redémarre ainsi le traitement du premier buffer. Ensuite, et tant que le contenu de la page d'écran reste inchangé, l'unité UCA continue de traiter en boucle les différents buffers contenant les données composant la page d'écran sans requérir l'intervention de l'unité centrale CPU qui est ainsi libérée pour effectuer d'autres opérations. Lorsqu'une nouvelle page d'écran doit être affiché, on retourne à la première étape qui a été décrite précédemment. L'ensemble de la description a été faite en indiquant que chaque buffer contenait des données relatives à l'affichage d'une rangée d'une page d'écran mais il est également possible de choisir de mémoriser, dans chaque buffer, des données relatives à tout ensemble de caractères appartenant à une même page d'écran. REVENDICATIONS 1. Dispositif de contrôle de l'affichage de caractères dans un système vidéo comportant une mémoire (OSDRAM) de stockage d'informations relatives à l'affichage des caractères, caractérisé en ce que ladite mémoire comprend: - une première zone (Z1, Z1') pour stocker, à des adresses fixes, des données et / ou des paramètres de contrôle général de l'affichage; et - une deuxième zone (Z2) divisible en espaces (B1, B2, B3) de tailles variables pour stocker, dans chacun des espaces, des paramètres de contrôle et des données relatifs à l'affichage d'un ensemble de caractères appartenant à une page d'écran. 2. Dispositif selon la revendication 1, caractérisé en ce que chaque espace (B1, B2, B3) de la deuxième zone (Z2) contient l'adresse de l'espace mémoire correspondant au prochain ensemble de caractères de la page d'écran devant être affiché. 3. Dispositif selon la revendication 2, caractérisé en ce que l'adresse de l'espace mémoire (B1) correspondant à un premier ensemble de caractères à afficher est stockée dans la première zone (Z1) de la mémoire. 4. Dispositif selon l'une des revendications 1 à 3, caractérisé en ce que chacun des espaces (B1, B2, B3) comporte: - une première partie, de format prédéterminé, contenant au moins des paramètres de contrôle relatifs à un ensemble de caractères; et - une deuxième partie, dont le format est défini par des paramètres stockés dans la première partie, contenant les données correspondant audit ensemble de caractères. 5. Dispositif selon la revendication 4, caractérisé en ce que la première partie de chacun des espaces (B1, B2, B3) contient en outre des attributs d'affichage relatifs audit ensemble de caractères. 6. Dispositif selon l'une des revendications 4 ou 5 prise dans leur dépendance des revendications 2 ou 3, caractérisé en ce que l'adresse de l'espace mémoire correspondant au prochain ensemble de caractères devant être affiché est stockée dans la première partie de l'espace mémoire correspondant à l'ensemble de caractères couramment affiché. 7. Dispositif selon l'une des revendications 4 à 6, caractérisé en ce que la première partie de chaque espace (B1, B2, B3) comporte des paramètres de positionnement vertical et / ou horizontal de l'ensemble de caractères dans l'image affichée par le système vidéo. 8. Dispositif selon l'une des revendications 4 à 7, caractérisé en ce que la première partie de chaque espace (B1, B2, B3) comporte un paramètre (NCR) indiquant le nombre de caractères que comprend l'ensemble de caractères correspondant de l'espace mémoire, les données relatives auxdits caractères étant stockées dans la deuxième partie de l'espace mémoire. 9. Dispositif selon l'une des revendications 4 à 8, caractérisé en ce que, dans un premier format de codage des données situées dans la deuxième partie d'un espace mémoire (B2), lesdites données sont codées selon un mode série et comprennent des codes de caractères et des attributs d'affichages transmis entre les mots d'un même ensemble de caractères. 10. Dispositif selon la revendication 9, caractérisé en ce qu'un octet est réservé dans la deuxième partie de l'espace mémoire (B2) pour le stockage de chaque caractère. 11. Dispositif selon l'une des revendications 4 à 8, caractérisé en ce que, dans un deuxième format de codage des données situées dans la deuxième partie d'un espace mémoire (B1), lesdites données sont codées selon un mode parallèle simple et comprennent, pour chaque caractère, un code de caractère et un attribut d'affichage. 12. Dispositif selon la revendication 11, caractérisé en ce que deux octets sont réservés dans la deuxième partie de l'espace mémoire (B1) pour le stockage de chaque caractère. 13. Dispositif selon l'une des revendications 4 à 8, caractérisé en ce que, dans un troisième format de codage des données situées dans la deuxième partie d'un espace mémoire (B3), lesdites données sont codées selon un mode parallèle étendu et comprennent, pour chaque caractère: - un code de caractère, - un attribut de couleur du caractère contenant des adresses de palettes de couleurs elles-mêmes stockées dans la première zone (Z1) de la mémoire, et - un attribut d'affichage étendu. 14. Dispositif selon la revendication 13, caractérisé en ce que trois octets sont réservés dans la deuxième partie de l'espace mémoire (B3) pour le stockage de chaque caractère. 15. Dispositif selon l'une des revendications précédentes, caractérisé en ce que chaque ensemble de caractères stocké dans un espace (B1, B2, B3) de la deuxième zone (Z2) est une rangée de caractères (R1, R2, R3, R4).