Framebuffer

Ein Bildpuffer ist ein Teil des RAM, die eine Bitmap, die auf einer Videoanzeige aus einem Speicherpuffer, der einen vollständigen Rahmen von Daten angesteuert wird.

Die Informationen in dem Speicherpuffer typischerweise aus Farbwerten für jedes Pixel auf dem Bildschirm. Farbwerte werden üblicherweise in 1-Bit-binäre 4-Bit-paletti, 8-bit paletti, 16-bit High Color und 24-Bit-Echtfarben-Formaten gespeichert werden. Ein zusätzlicher Alphakanal wird manchmal verwendet, um Informationen über die Pixeltransparenz zu behalten. Die Gesamtmenge des Speichers erforderlich, um den Framebuffer-Laufwerk hängt von der Auflösung des Ausgangssignals und von der Farbtiefe und Farbpalette Größe.

Framebuffer unterscheiden sich deutlich von den Vektor-Displays, die vor dem Aufkommen der schnellere Grafik üblich waren. Mit einer Vektordarstellung werden nur die Scheitelpunkte der Grafik-Grundelemente gespeichert. Der Elektronenstrahl der Ausgangsanzeige wird dann angewiesen, von Knoten zu bewegen, um Vertex, das Aufspüren einer analogen Leitung über den Bereich zwischen diesen Punkten. Mit einem Bildpuffer, wird der Elektronenstrahl befohlen, eine links-nach-rechts, oben-nach-unten-Pfad über den gesamten Bildschirm, so wie ein Fernseh rendert eines Rundfunksignals zu verfolgen. Zur gleichen Zeit wird die Farbinformation für jeden Punkt auf dem Bildschirm von der Rahmenpuffer herausgezogen, wodurch ein Satz von diskreten Bildelementen.

Geschichte

Computer-Forscher schon lange diskutiert die theoretischen Vorteile eines Framebuffer, aber waren nicht imstande, eine Maschine mit ausreichend Speicher zu einem wirtschaftlich praktikable Kosten herzustellen. Im Jahr 1969 A. Michael Noll von Bell Labs implementiert ein gescanntes Display mit einem Bildspeicher. Später wurde die Bell Labs System erweitert, um ein Bild mit einer Farbtiefe von drei Bits auf einer Standard-Farbfernsehmonitor angezeigt werden soll. Eine sogar noch früher abgetastet Anzeige wurde am Brookhaven National Laboratory implementiert. Fortschritte in der IC-Speicher in den 1970er Jahren machte es kosten praktisch Framebuffer Lage ist, eine Standard-Videobild zu erzeugen.

Im Jahr 1972, Richard entwickelte die Superpaint System bei Xerox PARC. Dieses System hatte 311.040 Bytes an Speicher und zur Speicherung von 640 x 480 Pixel-Daten mit 8 Bit Farbtiefe war. Der Speicher wurde auf 16 Leiterplatten verstreut sind, jeweils mit mehreren 2-Kilobit-Schieberegisterchips geladen. Während bearbeitbar, dieser Entwurf erforderlich, dass die Gesamtframebuffer als 307.200 Byte-Schieberegister, das synchron mit dem Fernsehausgangssignal verschoben umgesetzt werden. Der Hauptnachteil dieser Regelung war, dass der Speicher nicht mit wahlfreiem Zugriff. Vielmehr könnte eine bestimmte Position nur zugegriffen werden, wenn die gewünschte Scan-line und Pixelzeit rollte herum. Dies gab dem System eine maximale Latenz von 33 ms für das Schreiben in den Framebuffer.

Shoup war auch in der Lage, um den Superpaint Framebuffer zu verwenden, um einen frühen Digital-Video-Capture-System zu erstellen. Durch Synchronisieren des Ausgangssignals mit dem Eingangssignal war Shoup Lage, jedes Pixel der Daten überschreiben, wie es in verschoben. Shoup auch Modifizieren des Ausgangssignals unter Verwendung von Farbtabellen experimentiert. Diese Farbtafeln erlaubt die Superpaint System, um eine Vielzahl von Farben, die außerhalb des Bereichs der beschränkten 8-Bit-Daten enthaltenen herzustellen. Diese Regelung würde später an der Tagesordnung in der Computer-Framebuffer.

Im Jahr 1974 Evans & amp; Sutherland veröffentlicht die erste kommerzielle Framebuffer, das für rund $ 15.000. Es war in der Lage, Auflösungen von bis zu 512 mal 512 Pixel in 8-Bit-Graustufen, und wurde zu einem Segen für Grafiken Forschern, die nicht über die Ressourcen, um ihre eigenen Framebuffer zu bauen. Die New York Institute of Technology später schaffen die ersten 24-Bit-Farbsystem, das drei der Evans & amp; Sutherland Framebuffer. Jedes Framebuffer wurde auf einem RGB-Farb Ausgang verbunden ist, mit einem Digital Equipment Corporation PDP 11/04 Minicomputer steuert die drei Geräte in einer einzigen.

Im Jahr 1975 produzierte das britische Unternehmen Quantel das erste kommerzielle Vollfarb-Broadcast-Framebuffer, der Quantel DFS 3000. Es wurde erstmals im TV-Berichterstattung der 1976 in Montreal Olympischen Spiele verwendet werden, um ein Bild-in-Bild-Einschub der Olympischen Fackel während der Erzeugung Rest des Bildes vorge den Läufer in das Stadion.

Die rasche Verbesserung der integrierten Schaltungstechnik machte es möglich, viele der Heimcomputer der späten 1970er Jahre, um Low-Farbframebuffer enthalten. Obwohl ursprünglich für die schwache Leistung im Vergleich zu den anspruchsvollere Grafikgeräte in Computern wie dem Atari 400 verwendet verspottete, wurde schließlich Framebuffer der Standard für alle PCs. Heute fast alle Computer mit grafischen Fähigkeiten verwenden einen Bildpuffer zum Erzeugen des Videosignals.

Framebuffer wurde auch im High-End-Workstations und Arcade-Systemboards in den 1980er Jahren populär. SGI, Sun Microsystems, HP, DEC und IBM alle freigegebenen Framebuffer für ihre Arbeitsplatzrechner. Diese Framebuffer wurden in der Regel von einer viel höheren Qualität als könnte in den meisten Heimcomputern gefunden werden, und wurden regelmäßig im Fernsehen, Druck, Computermodellierung und 3D-Grafiken verwendet. Framebuffer wurden auch von Sega für seine High-End-Arcade-Boards, die auch von höherer Qualität als auf Heimcomputern verwendet.

Amiga-Computern, die aufgrund ihrer speziellen Design die Aufmerksamkeit auf die Grafikleistung, in den 1980er Jahren schuf einen riesigen Markt von Framebuffer-basierten Grafikkarten. Erwähnenswert war die Grafikkarte im Amiga A2500 Unix, die im Jahr 1991 der erste Computer war es, ein X11-Server-Programm als Server für das Hosting von grafischen Umgebungen und die Open Look GUI grafische Oberfläche in hoher Auflösung zu realisieren. Die Grafikkarte für A2500 Unix wurde der A2410 genannt und war ein 8-Bit-Grafikkarte basierend auf dem Texas Instruments TMS34010 getaktet mit 50 MHz. Es war eine komplette intelligente Grafik-Coprozessor. Der A2410 Grafikkarte für Amiga wurde mit Lowell Universität gemeinsam entwickelt. Andere bemerkenswerte Amiga Framebuffer-basierte Karten waren: die Auswirkungen Sicht IV24 Grafikkarte von GVP, einer interessanten integrierten Video-Suite, in der Lage, das Mischen von 24-Bit-Framebuffer, mit Genlock, Chromakey, TV-Signal Pass-Thru und TV in einem Fenster-Funktionen; die DCTV eine externe Grafikkarte und Video-Capture-System; Die Firecracker 32-Bit-Grafikkarte; die Harlequin Karte, die Colorburst; die HAM-E externen Framebuffer. Die Graffiti externe Grafikkarte ist immer noch auf dem Markt erhältlich.

Leonardo 24-Bit-VME-Grafikadapter, CrazyDots II 24-Bit-VME-Grafikkarte, Spektrum TC-Grafikkarte, NOVA ET4000 VME: Die meisten Atari ST und Atari TT Framebuffer wurden für die VME hinteren Steckplatz des Atari-Maschinen, um Video-Erweiterungskarten gewidmet erstellt SVGA-Grafikkarte, deren Entwurf kam von der ISA / PC-Welt.

Anzeigemodi

Framebuffer in Personal und Home Computing verwendet hatte oft Sätze von definierten "Modi", unter dem die Framebuffer-Betrieb konnte. Diese Modi automatisch neu konfigurieren die Hardware zur Ausgabe unterschiedliche Auflösungen, Farbtiefen, Speicher-Layouts und Bildwiederholfrequenz Timings.

In der Welt der Unix-Maschinen und Betriebssysteme wurden solche Annehmlichkeiten in der Regel zugunsten der direkt Manipulation der Hardware-Einstellungen vermied. Diese Manipulation war weit mehr flexibel, dass beliebige Auflösung, Farbtiefe und Bildwiederholfrequenz erreichbar war - nur durch den zur Verfügung, um den Framebuffer-Speicher beschränkt.

Ein unglücklicher Nebeneffekt dieses Verfahrens war, dass die Anzeigeeinrichtung könnte über seine Funktionen angesteuert werden. In einigen Fällen führte dies zu Schäden an der Hardware auf dem Display. Häufiger ist es einfach hergestellt verzerrt und unbrauchbar ausgegeben. Modernen CRT-Monitore beheben dieses Problem durch die Einführung von "intelligenten" Schutzschaltung. Wenn der Anzeigemodus geändert, versucht der Monitor, um ein Signal Sperre für die neuen Refresh-Frequenz zu erhalten. Wenn der Monitor nicht in der Lage, ein Signal Sperre zu erhalten, oder wenn das Signal außerhalb des Bereichs von seinem Design Grenzen ist, wird der Monitor den Framebuffer-Signal zu ignorieren und möglicherweise mit einer Fehlermeldung präsentieren dem Anwender.

LCD-Monitore sind in der Regel ähnliche Schutzschaltung enthalten, aber aus anderen Gründen. Da die LCD müssen digital das Anzeigesignal abzutasten, jedes Signal, das außerhalb des Bereichs ist nicht physisch auf dem Monitor angezeigt werden.

Farbpalette

Framebuffer haben traditionell eine Vielzahl von Farb-Modi unterstützt. Aufgrund der Kosten der Speicher verwendeten die meisten frühen Framebuffer 1 Bit, 2 Bit, 4-Bit oder 8-Bit-Farbtiefe. Das Problem mit solchen kleinen Farbtiefen ist, dass eine vollständige Palette von Farben können nicht erzeugt werden. Die Lösung für dieses Problem war es, eine Nachschlagtabelle zu den Framebuffer hinzuzufügen. Jedes "Farbe" in Framebuffer-Speicher gespeichert würde als Farbindex zu handeln; Diese Regelung wurde auch als "indizierte Farben".

Die Nachschlagetabelle diente als Palette, die Daten enthalten, um eine begrenzte Anzahl von unterschiedlichen Farben zu definieren. Jedoch jede dieser Farben selbst, wurde von mehr als 8 Bits definiert, wie zum Beispiel 24 Bits, von denen acht für jede der drei Primärfarben. Mit 24 Bit zur Verfügung, können die Farben weit mehr subtil und genau definiert werden, sowie das Angebot die gesamte Palette Farbpalette, die das Display zu zeigen. Während eine begrenzte Anzahl von Farben in einem Bild ist etwas restriktiv, dennoch können sie gut gewählt werden, und dieses Schema ist deutlich überlegen 8-Bit-Farbe.

Die Daten des Bildspeichers in diesem System bestimmt, welche der Farben in der Palette für das aktuelle Pixel war und die in der Nachschlagetabelle gespeicherten Daten ging bis drei Digital-Analog-Wandler, um das Videosignal für die Anzeige zu erzeugen.

Ausgangsdaten der Framebuffer die, anstelle der Bereitstellung relativ grobe Primärfarbdaten, diente als Index - eine Nummer - um einen Eintrag in der Lookup-Tabelle zu wählen. Mit anderen Worten bestimmt der Index die Farbe, und die Daten aus der Nachschlagetabelle bestimmt genau, welche Farbe für das aktuelle Pixel zu verwenden.

Bei einigen Ausführungen war es auch möglich, Daten an die LUT auf dem Lauf zu schreiben, so dass das Bild in horizontale Balken mit ihrer eigenen Palette aufzuteilen und somit ein Bild zu machen, das einen viel breiteren Palette hat. Beispielsweise sehen eine Aussenaufnahme Photographie, das Bild könnte in vier Bars, die Spitze eines mit Schwerpunkt auf Himmel-Töne, die nächste mit Laub-Töne, die nächste mit Haut und Kleidung Töne und der Unterseite eines mit Grundfarben aufgeteilt werden. Dies erforderte jede Palette, um überlappende Farben haben, aber sorgfältig ausgeführt, erlaubt eine große Flexibilität.

Speicherzugriff

Während Framebuffer sind gemeinsam über einen Speicherabbildung direkt an die CPU Speicherplatz zugegriffen wird, ist dies nicht die einzige Methode, mit der sie erreicht werden können. Framebuffer sind weit verbreitet in den verwendeten Speicher zugreifen Verfahren variiert. Einige der häufigsten sind:

  • Abbilden der gesamten Framebuffer auf einen bestimmten Speicherbereich.
  • Port-Befehle, um jedes Pixel, Pixelbereich oder Paletteneintrag gesetzt.
  • Zuordnen eines Speicherbereich kleiner als die Framebuffer-Speicher, dann Bankumschaltung wie nötig.

Der Framebuffer-Organisation kann klobig oder eben sein.

RAM auf der Grafikkarte

Videokarten immer eine gewisse Menge an RAM. Dieser RAM wird auch der Rahmenpuffer. Grafikkarte RAM erforderlich ist, den gesamten Bildes im Speicher zu halten. Die CPU sendet seine Daten an die Grafikkarte. Der Videoprozessor bildet ein Bild des angezeigten Bildes und speichert sie im Rahmenpuffer. Dieses Bild ist ein großes Bitmap. Es wird verwendet, um die Bildschirmanzeige fortlaufend zu aktualisieren. Der Begriff Videokarte kann auch gleichbedeutend mit einer GPU zu sein.

Virtuelle Framebuffer

Viele Systeme versuchen, die Funktion eines Framebuffer zu emulieren, die oft aus Gründen der Kompatibilität. Die beiden häufigsten "virtuelle" Framebuffer sind die Linux-Framebuffer-Gerät und die X virtuellen Framebuffer. Der X virtuellen Framebuffer wurde dem X Window System Verteilung hinzugefügt, ein Verfahren zur laufenden X ohne grafische Framebuffer zur Verfügung. Während die ursprünglichen Gründe dafür sind die Geschichte verloren, wird es oft auf modernen Systemen verwendet werden, um Programme wie das Sun Microsystems JVM, in denen nicht dynamische Grafiken in einem kopflosen Umgebung erzeugt werden unterstützt.

Der Linux-Framebuffer-Gerät wurde für den Zugriff auf das zugrunde liegende Framebuffer in einen garantierten Speicherkarte, die einfach für den Zugriff auf Programme ist es, abstrakte der physikalischen Methode entwickelt. Dies erhöht die Portabilität, als Programme sind nicht verpflichtet, mit Systemen, die Speicherkarten unzusammenhängend oder verlangen Bankumschaltung haben umzugehen.

Seitenwechsels

Seit Framebuffer sind häufig so ausgelegt, mehr als eine Entschließung zu behandeln, sie enthalten häufig mehr Speicher als notwendig ist, um ein einzelnes Bild bei niedrigeren Auflösungen anzuzeigen. Da dieser Speicher können beträchtliche Größe aufweisen, wurde ein Trick entwickelt, damit für neue Rahmen an Videospeicher ohne störenden Rahmen, der gerade angezeigt wird geschrieben werden.

Das Konzept funktioniert, indem ich den Framebuffer, um eine bestimmte Stück seinen Speicher zu verwenden, um das aktuelle Bild angezeigt werden soll. Während die Speicher angezeigt wird, wird ein vollständig separates Teil des Speichers mit Daten für den nächsten Rahmen gefüllt. Sobald der sekundäre Puffer gefüllt ist, wird der Rahmenpuffer angewiesen, an der sekundären Puffer anstelle aussehen. Der primäre Puffer wird die sekundäre Puffer und die sekundären Puffers wird die primäre. Dieser Schalter wird in der Regel während der vertikalen Austastlücke durchgeführt, um den Bildschirm von "Reißen" verhindern.

Die meisten modernen Framebuffer mit genügend Speicher hergestellt, um diesen Trick auch bei hohen Auflösungen durchzuführen. Infolgedessen ist es zu einem Standard-Technik, die von PC-Spiel-Programmierer verwendet.

Grafikbeschleuniger

Da die Nachfrage nach besserer Grafik erhöht, erstellt Hardwareherstellern einen Weg, um die Menge der CPU-Zeit erforderlich ist, um den Framebuffer zu füllen verringern. Dies wird allgemein als "Grafiken beschleunigt".

Gemeinsame Grafikzeichenbefehle werden dem Grafikbeschleuniger in ihrer Rohform gesendet. Der Beschleuniger rastert dann die Ergebnisse der Befehl an den Framebuffer. Diese Methode kann Tausende oder Millionen von CPU-Zyklen pro Befehl zu speichern, da die CPU freigegeben wird, um andere Arbeit zu tun.

Während frühe Beschleuniger auf die Verbesserung der Leistung der 2D-GUI-Systeme fokussiert, konzentrieren sich die meisten modernen Beschleunigern auf die Herstellung von 3D-Bildern in Echtzeit. Ein übliches Design ist, Befehle an den Grafikbeschleuniger Verwendung einer Bibliothek, wie beispielsweise OpenGL oder DirectX senden. Der Grafiktreiber übersetzt dann diese Befehle, um Anweisungen für den Beschleuniger Grafikverarbeitungseinheit. Die GPU verwendet diese Mikrobefehle, die gerasterte Ergebnisse zu berechnen. Diese Ergebnisse sind wenig, um den Framebuffer Blitted. Der Framebuffer des Signal wird dann in Kombination mit integrierten Video-Overlay-Geräten und alle analogen Spezialeffekte, die durch Modifizieren des Ausgangssignals erzeugt werden, hergestellt. Ein Beispiel eines solchen analogen Modifikation war die räumliche Anti-Aliasing-Technik durch die 3dfx Voodoo Karten. Diese Karten hinzufügen, eine geringfügige Unschärfe zu Ausgangssignal, das Aliasing der gerasterten Grafiken macht viel weniger offensichtlich.

Zu einer Zeit gab es viele Hersteller von Grafikbeschleuniger, einschließlich: 3dfx; ATI; Hercules; Trident; Nvidia; Radius; S3 Graphics; SiS und Silicon Graphics. Doch derzeit wird der Markt von Nvidia und AMD dominiert.

(0)
(0)
Kommentare - 0
Keine Kommentare

Fügen Sie einen Kommentar

smile smile smile smile smile smile smile smile
smile smile smile smile smile smile smile smile
smile smile smile smile smile smile smile smile
smile smile smile smile
Zeichen übrig: 3000
captcha