Framebuffer

Ein framebuffer ist ein Videoproduktionsgerät, das eine Videoanzeige aus einem Speicherpuffer vertreibt, der einen ganzen Rahmen von Daten enthält.

Die Information im Speicherpuffer besteht normalerweise aus Farbenwerten für jedes Pixel (Punkt, der gezeigt werden kann) auf dem Schirm. Farbenwerte werden in 1-Bit-Dualzahl (monochrom), 4 Bit palettized, 8 Bit palettized, 16 Bit highcolor und 24 Bit truecolor Formate allgemein versorgt. Ein zusätzlicher Alpha-Kanal wird manchmal verwendet, um Information über die Pixel-Durchsichtigkeit zu behalten. Die Summe des Gedächtnisses, das erforderlich ist, den framebuffer zu steuern, hängt von der Entschlossenheit des Produktionssignals, und auf der Farbentiefe und Palette-Größe ab.

Framebuffers unterscheiden sich bedeutsam von den Vektor-Anzeigen, die vor dem Advent des framebuffer üblich waren. Mit einer Vektor-Anzeige werden nur die Scheitelpunkte der Grafikprimitiven versorgt. Dem Elektronbalken der Produktionsanzeige wird dann befohlen, sich vom Scheitelpunkt bis Scheitelpunkt zu bewegen, eine analoge Linie über das Gebiet zwischen diesen Punkten verfolgend. Mit einem framebuffer wird dem Elektronbalken (wenn die Anzeigetechnologie einen verwendet) befohlen, einen zum Recht nach links, Pfad der Spitze zum Boden über den kompletten Schirm, die Weise zu verfolgen, wie ein Fernsehen ein Sendungssignal macht. Zur gleichen Zeit wird die Farbeninformation für jeden Punkt auf dem Schirm vom framebuffer gezogen, eine Reihe getrennter Bildelemente (Pixel) schaffend.

Geschichte

Computerforscher hatten lange die theoretischen Vorteile eines framebuffer besprochen, aber waren unfähig, eine Maschine mit dem genügend Gedächtnis an wirtschaftlich durchführbaren Kosten zu erzeugen. 1969 hat Joan Miller von Glockenlaboratorien mit dem ersten bekannten Beispiel eines framebuffer experimentiert. Das Gerät hat ein Image mit einer Farbentiefe von drei Bit gezeigt. Jedoch, erst als die 1970er Jahre, der im Gedächtnis des einheitlichen Stromkreises vorwärts geht, es praktisch gemacht haben, um den ersten framebuffer fähigen davon zu schaffen, ein Standardvideoimage zu halten.

1972 hat Richard Shoup das System von SuperPaint an Xerox PARC entwickelt. Dieses System hatte 311,040 Bytes des Gedächtnisses und war dazu fähig, 640 durch 480 Pixel von Daten mit 8 Bit der Farbentiefe zu versorgen. Das Gedächtnis wurde über 16 Leiterplatten, jeder gestreut, der mit vielfachen 2-Kilobit-Verschiebungsregister-Chips geladen ist. Während bearbeitungsfähig, hat dieses Design verlangt, dass die ganzen framebuffer als ein 307,200-Byte-Verschiebungsregister durchgeführt werden, das sich in der Synchronisation mit dem Fernsehproduktionssignal bewegt hat. Der primäre Nachteil zu diesem Schema bestand darin, dass Gedächtnis nicht zufälliger Zugang war. Eher konnte auf eine gegebene Position nur zugegriffen werden, als die gewünschte Ansehen-Linie und Pixel-Zeit ringsherum gerollt hat. Das hat dem System eine maximale Latenz von 33 Millisekunden gegeben, um dem framebuffer zu schreiben.

Shoup ist auch im Stande gewesen, SuperPaint framebuffer zu verwenden, um ein frühes Digitalvideofestnahme-System zu schaffen. Durch das Synchronisieren des Produktionssignals zum Eingangssignal ist Shoup im Stande gewesen, jedes Pixel von Daten zu überschreiben, als es sich darin bewegt hat. Shoup hat auch mit dem Ändern des Produktionssignals mit Farbentischen experimentiert. Diese Farbentische haben dem System von SuperPaint erlaubt, ein großes Angebot an Farben außerhalb der Reihe der beschränkten 8-Bit-Daten zu erzeugen, die es enthalten hat. Dieses Schema würde später gewöhnlich im Computer framebuffers werden.

1974 hat Evans & Sutherland den ersten kommerziellen framebuffer, kostbare ungefähr 15,000 $ veröffentlicht. Es war dazu fähig, Entschlossenheiten von bis zu 512 durch 512 Pixel in 8 Bit grayscale Farbe zu erzeugen, und ist ein Segen für Grafikforscher geworden, die die Mittel nicht hatten, ihren eigenen framebuffer zu bauen. Das New Yorker Institut für die Technologie würde später das erste 24-Bit-Farbensystem mit drei von Evans & Sutherland framebuffers schaffen. Jeder framebuffer wurde mit einer RGB-Farbenproduktion (ein für das Rot, ein für das Grün und ein für das Blau) mit einem Minicomputer verbunden, die drei Geräte als ein kontrollierend.

Die schnelle Verbesserung der einheitlichen Schaltungstechnik hat es möglich für viele der Hauscomputer des Endes der 1970er Jahre (wie der Apple II) gemacht, um niedrig-farbigen framebuffers zu enthalten. Während am Anfang verlacht, für die schlechte Leistung im Vergleich mit den hoch entwickelteren Grafikgeräten, die in Computern wie Atari 400, framebuffers schließlich verwendet sind, ist der Standard für alle Personalcomputer geworden. Heute verwerten fast alle Computer mit grafischen Fähigkeiten einen framebuffer, für das Videosignal zu erzeugen.

Framebuffers ist auch populär in Arbeitsplätzen des hohen Endes im Laufe der 1980er Jahre geworden. SGI, Sonne-Mikrosysteme, HP, DEZ und IBM haben alle framebuffers für ihre Computer veröffentlicht. Diese framebuffers waren gewöhnlich einer viel höheren Qualität, als in den meisten Hauscomputern gefunden werden konnte, und regelmäßig in Fernsehen, Druck, dem Computermodellieren und der 3D-Grafik verwendet wurden.

Computer von Amiga, wegen ihrer Sonderanfertigungsaufmerksamkeit auf die Grafikleistung, geschaffen in den 1980er Jahren ein riesengroßer Markt von framebuffer haben Grafikkarten gestützt. Beachtenswert, um zu erwähnen, war die Grafikkarte in Amiga A2500 Unix, der 1991 der erste Computer war, um ein X11 Server-Programm als ein Server durchzuführen, um grafische Umgebungen und den Offenen Blick GUI grafische Schnittstelle in der hohen Entschlossenheit (1024x1024 oder 1024x768 an 256 Farben) zu veranstalten. Die Grafikkarte für A2500 Unix wurde den A2410 (Lowell TIGA Grafikkarte) genannt und war ein 8-Bit-Grafikvorstands-, der auf den Instrumenten von Texas an 50 MHz abgestoppter TMS34010 gestützt ist. Es war ein ganzes intelligentes Grafikcoprozessor. Die A2410 Grafikkarte für Amiga war co-developed mit der Lowell Universität. Gestützte Karten anderen beachtenswerten Amiga framebuffer waren: die Einfluss-Vision IV24 Grafikkarte von GVP, einem interessanten einheitlichen Videogefolge, das dazu fähig ist, 24 Bit framebuffer, mit dem Synchronisationsverknüpfer, Chromakey, Fernsehsignalpass - durch und Fernsehen in einem Fenster Fähigkeiten zu mischen; die DCTV eine Grafikkarte und Video gewinnen System; der Knallfrosch 32-Bit-Grafikkarte; die Harlekin-Karte, Colorburst; der SCHINKEN-E äußerlicher framebuffer. Die Graffiti Außengrafikkarte sind noch auf dem Markt verfügbar.

Der grösste Teil des Atari ST (Mega STE Modell), und Atari TT framebuffers wurde für das VME hintere Stecker-Ablagefach von Videovergrößerungskarten gewidmeten Maschinen von Atari geschaffen: Leonardo VME 24-Bit-Grafikadapter, CrazyDots VME II 24-Bit-Grafikkarte, Spektrum TC Grafikkarte, NOVA ET4000 VME SVGA Grafikkarte (fähig zu Entschlossenheiten bis zu 1024x768 an 256 Farben oder 800x600 an 32768 Farben), wessen Design aus der ISA/PC Welt gekommen ist (war es effektiv ein ATI Mach32 S: mit 1 Mb des Video-RAM).

Anzeigeweisen

Framebuffers hat im Persönlichen verwendet, und Hauscomputerwissenschaft hatte häufig Sätze von definierten "Weisen", unter denen der framebuffer funktionieren konnte. Diese Weisen würden die Hardware zur Produktion verschiedene Entschlossenheiten, Farbentiefen, Speicherlay-Outs automatisch wiederkonfigurieren und Rate timings erfrischen.

In der Welt von Maschinen von Unix und Betriebssystemen wurde solcher Bequemlichkeiten gewöhnlich für die direkte Manipulierung der Hardware-Einstellungen enthalten. Diese Manipulation war in dieser jeder Entschlossenheit, Farbentiefe viel flexibler, und erfrischen Sie Rate war - beschränkt nur durch das für den framebuffer verfügbare Gedächtnis erreichbar.

Eine unglückliche Nebenwirkung dieser Methode bestand darin, dass das Anzeigegerät außer seinen Fähigkeiten gesteuert werden konnte. In einigen Fällen ist das auf Hardware-Schaden an der Anzeige hinausgelaufen. Allgemeiner hat es einfach durcheinander gebrachte und unbrauchbare Produktion erzeugt. Moderne CRT-Monitore befestigen dieses Problem durch die Einführung "des klugen" Schutzschaltsystemes. Wenn die Anzeigeweise geändert wird, versucht der Monitor vorzuherrschen ein Signalschloss auf dem neuen erfrischen Frequenz. Wenn der Monitor unfähig ist, ein Signalschloss zu erhalten, oder wenn das Signal außerhalb der Reihe seiner Designbeschränkungen ist, wird der Monitor das Framebuffer-Signal ignorieren und vielleicht dem Benutzer eine Fehlermeldung bieten.

FLÜSSIGKRISTALLANZEIGE-Monitore neigen dazu, ähnliches Schutzschaltsystem, aber aus verschiedenen Gründen zu enthalten. Da die FLÜSSIGKRISTALLANZEIGE digital Beispiel-das Anzeigesignal muss (dadurch mit einem Elektronbalken wetteifernd), kann jedes Signal, das außer Reichweite ist, nicht am Monitor physisch gezeigt werden.

Farbenpalette

Framebuffers haben ein großes Angebot an Farbenweisen traditionell unterstützt. Wegen des Aufwandes des Gedächtnisses hat frühster framebuffers 1 Bit (2 Farbe), 2 Bit (4 Farbe), 4 Bit (16 Farbe) oder 8 Bit (256 Farbe) Farbentiefen verwendet. Das Problem mit solchen kleinen Farbentiefen besteht darin, dass eine volle Reihe von Farben nicht erzeugt werden kann. Die Lösung dieses Problems war, eine Nachschlagetabelle zum framebuffers hinzuzufügen. Jede im framebuffer Gedächtnis versorgte "Farbe" würde als ein Farbenindex handeln; dieses Schema wurde manchmal "mit einem Inhaltsverzeichnis versehene Farbe" genannt.

Die Nachschlagetabelle hat als eine Palette gedient, die Daten enthalten hat, um eine begrenzte Zahl (solcher als 256) von verschiedenen Farben zu definieren. Jedoch wurde jeder von jenen [256] Farben selbst durch mehr als 8 Bit, wie 24 Bit, acht von ihnen für jede der drei primären Farben definiert. Mit verfügbaren 24 Bit können Farben viel subtiler und genau, sowie Angebot der vollen Reihe-Tonleiter definiert werden, die die Anzeige zeigen kann. Während eine beschränkte Gesamtzahl von Farben in einem Image zu haben, etwas einschränkend ist, dennoch können sie gut gewählt werden, und dieses Schema ist als 8-Bit-Farbe deutlich höher.

Die Daten vom framebuffer in diesem Schema haben bestimmt, welcher [256] Farben in der Palette für das aktuelle Pixel waren, und die Daten, die in der Nachschlagetabelle (manchmal versorgt sind, gerufen hat, der "LUT") ist zu drei zum Analogon digitalen Konvertern gegangen, um das Videosignal für die Anzeige zu schaffen.

Die Produktionsdaten des framebuffer, anstatt relativ grobe primär-farbige Daten zur Verfügung zu stellen, haben als ein Index - eine Zahl gedient - um einen Zugang in der Nachschlagetabelle zu wählen. Mit anderen Worten färbt sich der Index entschlossene Farbe und die Daten von der Nachschlagetabelle bestimmt genau, um für das aktuelle Pixel zu verwenden.

In einigen Designs war es auch möglich, Daten dem LUT (oder Schalter zwischen vorhandenen Paletten) auf dem Lauf zu schreiben, erlaubend, das Bild in horizontale Bars mit ihrer eigenen Palette zu teilen und so ein Image zu machen, das einen viel breiteren [hatte als X Farben] Palette. Zum Beispiel, eine Außenschuss-Fotographie ansehend, konnte das Bild in vier Bars, die ein geteilt werden, die mit der Betonung auf Himmel-Tönen, dem folgenden mit Laub-Tönen, dem folgenden mit der Haut und den kleidenden Tönen und dem Boden ein mit Boden-Farben erst sind. Das hat verlangt, dass jede Palette, um überlappende Farben, aber sorgfältig getan zu haben, große Flexibilität erlaubt hat.

Speicherzugang

Während auf framebuffers über ein Gedächtnis allgemein zugegriffen wird, das direkt zum Zentraleinheitsspeicherraum kartografisch darstellt, ist das nicht die einzige Methode, durch die auf sie zugegriffen werden kann. Framebuffers haben sich weit in den Methoden geändert, die verwendet sind, um auf Gedächtnis zuzugreifen. Einige der allgemeinsten sind:

  • Den kompletten framebuffer zu einer gegebenen Speicherreihe kartografisch darstellend.
  • Hafen befiehlt, um jedes Pixel, Reihe von Pixeln oder Palette-Zugang zu setzen.
  • Eine Speicherreihe kartografisch darstellend, die kleiner ist als das framebuffer Gedächtnis, dann Bank, die als umschaltet, notwendig.

Die framebuffer Organisation kann (gepacktes Pixel) stämmig oder planar sein.

Virtueller framebuffers

Viele Systeme versuchen, mit der Funktion eines framebuffer Geräts häufig aus Gründen der Vereinbarkeit wettzueifern. Die zwei allgemeinsten "virtuellen" framebuffers sind das Gerät von Linux framebuffer (fbdev) und die X Virtuellen Framebuffer (Xvfb). Die X Virtuellen Framebuffer wurden zum X Fenstersystemvertrieb hinzugefügt, um eine Methode zur Verfügung zu stellen, um X ohne einen grafischen framebuffer zu laufen. Während die ursprünglichen Gründe dafür gegen die Geschichte verloren werden, wird sie häufig auf modernen Systemen verwendet, um Programme wie die Sonne-Mikrosysteme JVM zu unterstützen, die dynamischer Grafik nicht erlauben, in einer kopflosen Umgebung erzeugt zu werden.

Das Gerät von Linux framebuffer wurde entwickelt, um die physische Methode zu abstrahieren, für auf den zu Grunde liegenden framebuffer in eine versicherte Speicherkarte zuzugreifen, die für Programme zum Zugang leicht ist. Das vergrößert Beweglichkeit, weil Programme nicht erforderlich sind, sich mit Systemen zu befassen, die Speicherkarten auseinander genommen haben oder Bankschaltung verlangen.

Schnipsende Seite

Da framebuffers häufig entworfen werden, um mehr als eine Entschlossenheit zu behandeln, enthalten sie häufig mehr Gedächtnis, als notwendig ist, um ein Einzelbild an niedrigeren Entschlossenheiten zu zeigen. Da dieses Gedächtnis in der Größe beträchtlich sein kann, wurde ein Trick entwickelt, um neue Rahmen zu berücksichtigen, die dem Videogedächtnis zu schreiben sind, ohne den Rahmen zu stören, der zurzeit gezeigt wird.

Das Konzept arbeitet, indem es dem framebuffer gesagt wird, einen spezifischen Klotz seines Gedächtnisses zu verwenden, um den aktuellen Rahmen zu zeigen. Während dieses Gedächtnis gezeigt wird, wird ein völlig getrennter Teil des Gedächtnisses mit Daten für den folgenden Rahmen gefüllt. Sobald der sekundäre Puffer gefüllt wird (häufig gekennzeichnet als "zurück Puffer"), wird der framebuffer beauftragt, auf den sekundären Puffer stattdessen zu schauen. Der primäre Puffer (häufig gekennzeichnet als der "Vorderpuffer") wird der sekundäre Puffer, und der sekundäre Puffer wird die Vorwahl. Dieser Schalter wird gewöhnlich während des Zwischenraums der vertikalen Austastlücke getan, um den Schirm davon abzuhalten, "zu reißen" (d. h. Hälfte des alten Rahmens wird gezeigt, und Hälfte des neuen Rahmens wird gezeigt).

Modernste framebuffers werden mit genug Gedächtnis verfertigt, um diesen Trick sogar an hohen Entschlossenheiten durchzuführen. Infolgedessen ist es eine von PC-Spielprogrammierern verwendete Standardtechnik geworden.

Grafikgaspedale

Da die Nachfrage nach der besseren Grafik zugenommen hat, haben Hardware-Hersteller eine Weise geschaffen, den Betrag der Zentraleinheitszeit zu vermindern, die erforderlich ist, den framebuffer zu füllen. Das wird ein "Grafikgaspedal" in der Welt von Unix allgemein genannt.

Allgemeine Grafikzeichnungsbefehle (viele von ihnen geometrisch) werden an das Grafikgaspedal in ihrer rohen Form gesandt. Das Gaspedal dann rasterizes die Ergebnisse des Befehls zum framebuffer. Diese Methode kann von Tausenden bis Millionen von Zentraleinheitszyklen pro Befehl sparen, weil die Zentraleinheit befreit wird, um andere Arbeit zu tun.

Während sich frühe Gaspedale darauf konzentriert haben, die Leistung von 2. GUI Systemen zu verbessern, konzentrieren sich modernste Gaspedale darauf, 3D-Bilder in Realtime zu erzeugen. Ein allgemeines Design soll Befehle an das Grafikgaspedal mit einer Bibliothek wie OpenGL senden. Der Fahrer von OpenGL übersetzt dann jene Befehle zu Instruktionen für die Grafikverarbeitungseinheit (GPU) des Gaspedals. Der GPU verwendet jene Mikrobefehle, um die Rasterized-Ergebnisse zu schätzen. Jene Ergebnisse sind Bit blitted zum framebuffer. Das Signal des framebuffer wird dann in der Kombination mit eingebauten Videobedeckungsgeräten erzeugt (gewöhnlich hat gepflegt, den Maus-Cursor zu erzeugen, ohne die Daten des framebuffer zu modifizieren), und irgendwelche analogen speziellen Effekten, die durch das Ändern des Produktionssignals erzeugt werden. Ein Beispiel solcher analoger Modifizierung war die Antialiasing-Technik, die durch 3dfx Voodoo-Karten verwendet ist. Diese Karten fügen einen geringen Makel zum Produktionssignal hinzu, das aliasing der rasterized Grafik viel weniger offensichtlich macht.

Populäre Hersteller von 3D-Grafikgaspedalen sind Nvidia und AMD.

Siehe auch

  • Videogedächtnis
  • Schirm-Puffer
Referenzen

Außenverbindungen


Seitenarm / Charles Bannister
Impressum & Datenschutz