- Framebuffer
-
Un framebuffer (soit en français « tampon de trame ») est un équipement de sortie vidéo qui commande un affichage vidéo à partir d'un tampon mémoire contenant une trame complète de données. Les informations dans le tampon mémoire sont en général les valeurs des composantes de couleurs pour chaque pixel (chaque point à afficher sur l'écran). Les valeurs sont habituellement mémorisées sous les formats 1-bit monochrome, 4-bit palettisées, 8-bit palettisées, 16-bit « highcolor » ou 24-bit « truecolor » (vraies couleurs). Un canal alpha (« alpha channel) est parfois utilisé pour l'information de transparence associée à chaque pixel. La quantité de mémoire nécessaire à la commande d'un framebuffer dépend de la résolution, de la profondeur de couleur ("color depth") et de la taille de la palette.
Les « framebuffer » diffèrent significativement des affichages graphiques vectoriels (« vector graphics displays) qui était communément utilisés avant l'arrivée de framebuffer. Dans un affichage vectoriel, seules les valeurs des extrémités des primitives graphiques sont stockées. Le faisceau électronique du tube d'affichage est alors dirigé d'extrémité en extrémité, traçant une ligne analogique entre ces points. Dans le cas du framebuffer, le faisceau électronique (si la technologie d'affichage est l'écran cathodique) est dirigée pour tracer de gauche à droite et de haut en bas de façon à balayer l'ensemble de l'écran, de la même façon qu'un téléviseur dans le cas de la transmission télévisée. En même temps que cette opération de balayage, l'information de couleur pour chaque point de l'écran est extraite du framebuffer, créant ainsi un ensemble d'éléments discrétisés d'image ("pixels").
Historique
Les chercheurs en informatique ont discuté pendant longtemps les avantages théoriques d'un framebuffer, mais étaient incapables de fabriquer une machine possédant suffisamment de mémoire. En 1969, Joan Miller des Bell Labs a expérimenté la première réalisation de framebuffer. L'appareil affichait une image ayant une profondeur de couleur de 3 bits. Cependant, ce n'est pas avant les années 70 que les progrès des mémoires à circuit intégré rendirent pratiquement réalisable le premier framebuffer capable de mémoriser une image vidéo standard.
En 1972, Richard Shoup a développé le système SuperPaint au Xerox PARC[1]. Ce système avait 311040 octets de mémoire et pouvait stocker une image de 640 par 480 pixels avec une profondeur de couleur de 8 bits. Les mémoires étaient réparties sur 16 circuits imprimés, chacun ayant plusieurs puces de registres à décalage de 2-kilobit. Bien que fonctionnel, cette conception imposait que le framebuffer soit implémenté comme un registre à décalage de 307200 octets dont le rythme était synchronisé avec celui du signal de télévision. Le principal inconvénient de cette solution était que la mémoire n'était pas à accès aléatoire. En fait, une position ne pouvait être accédée que lorsque la ligne balayée et le pixel étaient déroulés. Ce qui impliquait un temps d'attente maximum de 33 ms pour écrire dans un framebuffer.
Shoup a aussi utilisé le framebuffer de SuperPaint pour créer un des premiers systèmes numériques de capture d'image. En synchronisant le signal de sortie avec le signal d'entrée, il pouvait réécrire chaque pixel qui entrait dans le registre à décalage. Shoup a aussi expérimenté la modification du signal de sortie en utilisant les tables de couleur ("color table"). Ces tables permettaient au système SuperPaint de produire une large variété de couleurs en dehors des limites des 8 bits contenus à l'origine. Cette solution sera ensuite largement utilisée dans les framebuffers des calculateurs.
En 1974 Evans & Sutherland réalisaient le premier framebuffer commercialisé, son coût était de 15000 dollars environ. Il pouvait traiter des résolutions jusqu'à 512 par 512 pixels en niveaux de gris codés sur 8 bits. Il devint une bénédiction pour les chercheurs en informatique graphique qui n'avaient pas les moyens de créer leur propre framebuffer. Le New York Institute of Technology créera plus tard le premier système à profondeur de couleur de 24 bits en utilisant 3 des framebuffers Evans & Sutherland[2]. Chacun des framebuffer était connecté à une des composantes RVB (une pour le rouge, une pour le vert et une pour le bleu), avec un minicomputer contrôlant les trois.
Les progrès rapides de la technologie des circuits intégrés ont rendu possibles l'implémentation de framebuffers limités en couleurs dans beaucoup de "home computer" dès la fin des années 70 (par exemple Apple II). Bien qu'initialement critiqués pour leur faible performance comparée aux équipements graphiques plus évolués comme celui de l'Atari 400, les framebuffers sont finalement devenus la norme dans tous les ordinateurs personnels. Aujourd'hui, pratiquement tous les ordinateurs ayant des capacités graphiques utilisent un framebuffer pour générer le signal vidéo.
Les framebuffers sont également devenus fréquents dans les "workstations" évoluées au cours des années 80. SGI, Sun Microsystems, HP, DEC, IBM, tous ont créé des framebuffers pour leurs ordinateurs. Ces framebuffers étaient en général de bien meilleure qualité que ceux que l'on trouvait dans les "home computer". Ils étaient couramment utilisés en télévision, imprimerie, modélisation par calculateur et graphique 3D.
Amiga, de par leur position dans les techniques graphiques, ont créé un vaste marché de cartes graphiques basées sur des framebuffers dans les années 80. Il est important de mentionner la carte graphique de l'Amiga A2500 Unix qui était en 1991 le premier ordinateur qui implémentait un serveur X11 en tant qu'environnement graphique, ainsi que l'interface graphique Open Look en haute résolution (1024x1024 ou 1024x768 en 256 couleurs).
Notes et références
- SuperPaint: An Early Frame Buffer Graphics System », IEEE Annals of the History of Computing, 2001 [PDF] Richard Shoup, «
- History of the New York Institute of Technology Graphics Lab. Consulté le 2011-06-13
Voir aussi
Wikimedia Foundation. 2010.