Video Graphics Array
Video Graphics Array (VGA) ist ein Computergrafik-Standard, der bestimmte Kombinationen von Bildauflösung und Farbanzahl (Farb-Bit-Tiefe) sowie Wiederholfrequenz definiert und 1987 von IBM eingeführt wurde.
Anders als seine Vorgänger EGA und CGA war VGA anfangs als Ein-Zoll-Prozessor zur leichteren Integration auf Hauptplatinen konzipiert, aber nicht als eigener „Adapter“. Ein unmittelbarer Vorläufer war die Multi-Color Graphics Array (MCGA) genannte Onboard-Grafik des IBM PS/2 Model 30. Diese war nur mit 64 kB Videospeicher ausgestattet, was zwar den bei Spielen beliebten 256-Farben-Modus erlaubte, der daher auch „MCGA-Modus“ genannt wurde, die VGA-typische Videoauflösung von 640×480 Pixeln jedoch nur monochrom (1 Bit pro Pixel) darstellen konnte. Auch fehlte dem MCGA die Kompatibilität zur EGA-Karte.
Da auch alle modernen Grafikkarten immer noch kompatibel zu IBMs VGA sind, verwenden auch moderne Betriebssysteme noch den VGA-Grafikmodus, z. B. während der Installation oder wenn kein zur Grafikkarte passender Treiber installiert ist.
Merkmale einer VGA-kompatiblen Grafikkarte
Grundsätzliche Eigenschaften
Die VGA-Funktionalität setzt sich zusammen aus einem Videospeicher (RAM), einem Digital-Analog-Wandler und einer Prüfschaltung, welche ermittelt, ob der angeschlossene Bildschirm eine farbige oder monochrome Darstellung unterstützt.
Der 256 KB umfassende Videospeicher ist in vier Speicherbänke à 64 KB aufteilt, welche „übereinander“ im Adressraum des Mikroprozessors liegen. Befindet sich die VGA-Grafikkarte In einem Grafikmodus, können alle Pixel über den Videospeicher angesprochen werden. In einem Textmodus wird der Code jedes darzustellenden Zeichens zusammen mit seinen Attributen wie bspw. „unterstrichen“ oder „blinkend“ im Videospeicher abgelegt. In diesem Fall wird die Darstellung jedes Zeichens durch einen Pixelblock mithilfe eines Zeichensatzes bestimmt, der ebenfalls im Videospeicher abgelegt ist.
In einem Nur-Lesespeicher (ROM) befinden sich drei vordefinierte Zeichensätze mit bzw. 8 × 8 Pixeln, 8 × 14 Pixeln und 8 × 16 Pixeln je Zeichen.
Die Farben werden indirekt mithilfe einer frei definierbaren Farbpalette generiert, die jedem Farbcode im Videospeicher eine Zahl von 0 bis 23×6 − 1 = 262143 zuordnet, die final die darzustellende Farbe durch den Digital-Analog-Wandler bestimmt. Dieser sendet im Fall eines angeschlossenen Farbbildschirms diesem drei der Farbe entsprechende analoge Farbsignale (Rot-, Grün und Blauanteil der Farbe).[1]
Hardware-Ebene
- VGA-Anschluss mit analoger Übertragung der RGB-Signalkomponenten (anders als bei EGA, ähnlich wie beim PGC), was (abhängig von der Karte oder Signalquelle) prinzipiell die Darstellung unendlich vieler Farben und Zwischenabstufungen in Verbindung mit einem geringen Schaltungsaufwand bei einem Röhrenmonitor erlaubt. Allerdings ist die Bildqualität stark vom Schaltungsaufbau und der Bauteilequalität der Karte sowie der anschließenden Übertragungskabel zur Bildröhre abhängig.
Anzeigemodi
Modus | Typ | Format | Farbanzahl |
---|---|---|---|
0h | Text | 40 × 25 | 16 (monochrom) |
1h | Text | 40 × 25 | 16 |
2h | Text | 80 × 25 | 16 (monochrom) |
3h | Text | 80 × 25 | 16 |
4h | CGA-Grafik | 320 × 200 | 4 |
5h | CGA-Grafik | 320 × 200 | 4 (monochrom) |
6h | CGA-Grafik | 640 × 200 | 2 |
7h | MDA-Text | 80 × 25 | 3 (monochrom) |
Dh | EGA-Grafik | 320 × 200 | 16 |
Eh | EGA-Grafik | 640 × 200 | 16 |
Fh | EGA-Grafik | 640 × 350 | 3 (monochrom) |
10h | EGA-Grafik | 640 × 350 | 16 |
11h | VGA-Grafik | 640 × 480 | 2 |
12h | VGA-Grafik | 640 × 480 | 16 |
13h | VGA-Grafik | 320 × 200 | 256 |
Als Textmodi werden vor allem 80 × 25 Zeichen (16 Pixelzeilen pro Zeichen) und 80 × 50 Zeichen (8 Pixelzeilen pro Zeichen) genutzt, beide mit einer zugrundeliegenden Bildauflösung von 720 × 400 Pixel.
Mode-X und Mode-Y
Modus | Typ | Format | Farbanzahl | Bemerkung |
---|---|---|---|---|
Mode-X | VGA-Grafik | 320 × 240 | 256 | Quadratische Pixel (Pixelseitenverhältnis hat den Wert eins) |
Mode-Y | VGA-Grafik | 320 × 200 | 256 | Längliche Pixel wie im Modus 13h (Pixelseitenverhältnis ist kleiner als eins) |
Im Gegensatz zum einfacher zu programmierenden Modus 13h ist im Mode-X und Mode-Y Page Flipping möglich und es kann der gesamte Videospeicher verwendet werden. Das erlaubt es, für den Bildaufbau Double Buffering zu verwenden oder oft benötige 2D-Grafiken als Sprites abzulegen, um auf diese schnell, wie bei einem Cache, zurückzugreifen. Dies erlaubt performantere Animationen und die beim Mode-X die quadratischen Pixel vereinfachen die Erstellung von Grafiken, bei denen es auf ein richtiges Seitenverhältnis ankommt.
Der größte Vorteil des Mode-X ist allerdings, dass er einen parallelen Zugriff auf vier Pixel gleichzeitig erlaubt, da bei Standard VGA die Hardware grundsätzlich in vier Speicherbänke bzw. Ebenen von je 64 KiB pro Speicherbank organisiert ist, wovon jede Ebene in vierer Schritten die Pixel in der Horizontalen abbildet. D.h. das erste Byte in Ebene 0 bildet bspw. den 0., 4., 8. und 12. Pixel ab, die Ebene 1 bildet den 1., 5., 9. und 13. Pixel ab. Man nennt diese Zugriffsart auch planaren Zugriff, dieser ist auch als unchained mode bekannt. Durch diesen parallelen Zugriff ist Mode-X viermal so schnell, wie Mode 13h, allerdings auch komplizierter zu programmieren.
Mode-X und Mode-Y unterscheiden sich in der Auflösung und beim Format der Pixel. Mode-X weist quadratische Pixel auf, während im Mode-Y die Pixel höher als breit sind, wie auch bereits im Modus 13h.[4][3][5][6]
Flexibilität des VGA-Anschlusses
Die Bildauflösung und Parameter der Bildausgabe über den klassischen VGA-Anschluss lassen sich ziemlich frei einstellen. Trotzdem lassen sich TV-Röhrengeräte prinzipiell nicht an einer Standard-VGA-Karte betreiben (kein CSync = erfordert Zusatzelektronik, etwas andere Pegel = erfordert Zusatzelektronik, kein Zeilensprung = nur 240...288 Zeilen-Darstellung möglich).
Für herkömmliche analoge VGA-Röhrenmonitore geeignet sind jedoch folgende Varianten:
- Pixelfrequenz: 28,322 MHz oder 25,175 MHz halbierbar.
- Zeilenfrequenz: 31,4688 kHz ist der Standardwert. Exakt 80 % der Zeilenzeit wird zur Bilddarstellung genutzt.
- Vollbilddarstellung.
- 70,08 Bilder/s bei maximal 400 sichtbaren Zeilen oder 59,94 Bilder/s bei maximal 480 sichtbaren Zeilen
- Die Anzahl der sichtbaren Zeilen lässt sich auf 350 Zeilen reduzieren. Dem Monitor wurde das durch Änderung der Polarität des Sync-Signale übermittelt (+hsync -vsync). Genutzt für EGA-Simulation.
- Eine weitere Möglichkeit, die Auflösung zu verringern, besteht darin, Zeilen doppelt darzustellen – aus 480 Zeilen werden so 240 oder aus 400 Zeilen werden 200 Zeilen. Genutzt für CGA-Simulation.
- Pro Zeile sind 640 oder 720 sichtbare Pixel üblich (je nach gewähltem Pixeltakt)
- Dieser lässt sich halbieren auf 320 bzw. 360 Pixel.
- Im 256-Farben-Modus wird der Pixeltakt ebenfalls immer halbiert.
- Speicheraufbau
- 64 kB × 32 bit, erweiterte Karten 128 kB × 32 bit.
- Grafikmodi lesen alle 8 Takte ein 32-Bit-Wort aus. Modi mit bis zu 16 Farben generieren daraus 8 Pixel. 256-Farben-Modi 4 Pixel.
- Bei Textmodi kommt ein zweiter Zugriff für das Auslesen der Zeichenrepräsentation dazu.
Der Fortschritt des VGA-Anschlusses war die analoge Übertragung des Signals zum Monitor. Damit überwand man das Manko des CGA-Anschlusses bzw. EGA-Anschlusses, die prinzipiell nur 16 bzw. 64 Farben (bei SW: 3 bzw. 4 Graustufen) übertragen konnten. VGA-Anschlüsse konnten theoretisch beliebig viele Farben anzeigen, Standard-VGA-Karten haben 262144 davon genutzt.
Erst ein Jahrzehnt später hat sich die analoge Übertragung als Manko herausgestellt. Für TFT-Displays mit einzeln ansteuerbaren Pixeln führt sie bei hohen Auflösungen (spätestens bei 1600×1200 Pixeln) zu Unschärfe und Unruhe (Moiré) im Bild. Die Nachfolger heißen DVI-D, HDMI und DisplayPort. HDMI ist eine Weiterentwicklung von DVI; HDMI-Signale sind zu DVI abwärtskompatibel.
Kompatibilität zu MDA-, CGA- und EGA-Karten
Der VGA-Standard ist beim Zugriff über das BIOS zu den bisherigen IBM-Grafikstandards voll abwärtskompatibel. Dies gilt allerdings nicht für Zugriffe auf direkter Registerebene am BIOS vorbei. Viele Hersteller von VGA-Grafikchips sorgten daher dafür, dass ihre VGA-Grafikchips auch bei direkter Registerprogrammierung dennoch weitgehend zu den bisherigen IBM-Grafikstandards kompatibel sind, so dass in der Praxis auch die meisten Programme, die diese älteren Grafikstandards nutzen, weiterhin auf diesen VGA-Grafikkarten funktionieren.[7] Insbesondere musste der Benutzer nicht mehr zwischen Farbfähigkeit (CGA, EGA) und hoher Textqualität (MDA) wählen. Für VGA wurden von Anfang an sowohl monochrome (meist weiße) als auch farbige Monitore angeboten.
Farbpaletten
CGA bot 16 feststehende Farben. EGA bewahrte die CGA-Kompatibilität und erlaubte trotzdem 64 Farben in allen Modi, indem die 16 Farbnummern der CGA als Zeiger auf eine sogenannte Palette, eine Tabelle mit 16 Einträgen, interpretiert wurden; die Einträge der Palette enthielten dann die EGA-Farbnummern im Bereich 0 bis 63. Beim Start des Systems wurden dort Farbnummern eingetragen, die den gleichen Farbeindruck wie die 16 CGA-Farben boten; Programme, die den EGA-Standard kannten, konnten die Eintragungen aber ändern. Somit konnten zwar weiterhin nur 16 Farben gleichzeitig dargestellt werden, aber aus einer Gesamtmenge von 64 Farben.
VGA-Grafikkarten unterstützen 262.144 mögliche Farben. Bei VGA-Karten existiert die erwähnte Palette mit 16 Einträgen ebenfalls – die darin enthaltenen Werte im Bereich 0 bis 63 werden aber im Gegensatz zu EGA nicht direkt als Farbnummern, sondern wiederum als Zeiger auf die ersten 64 Einträge einer weiteren Tabelle interpretiert. Diese VGA-Farbpalette hat nun 256 Einträge im Bereich von 0 bis 262143. Auch hier werden beim Start in die ersten 64 Einträge solche VGA-Farben eingetragen, die den 64 EGA-Farben optisch gleichen, aber von Programmen, die VGA kennen, verändert werden können. Durch dieses zweistufige Verfahren können auch in den CGA- und EGA-kompatiblen Modi der VGA alle VGA-Farben dargestellt werden, allerdings weiterhin nur jeweils 16 davon gleichzeitig. Im 256-Farb-Grafikmodus werden die Daten im Bildschirmspeicher dagegen direkt als Zeiger auf die 256-Einträge-Tabelle interpretiert und die 16-Einträge-Tabelle nicht verwendet.
Bei einigen CGA-kompatiblen Modi verwendet VGA sogar eine dreistufige Palette, da auch die CGA-Karte in diesen Modi bereits eine, allerdings nicht frei wählbare, Palette von 2 oder 4 aus 16 Farben verwendet hatte.
Textmodus
VGA-Grafikkarten stellen den Textmodus mit 720 Punkten pro Zeile dar, wie schon die MDA-Karte, aber im Gegensatz zu CGA und EGA, die 640 Punkte verwenden. Jedes der 80 Zeichen pro Zeile wurde im Vergleich zu CGA/EGA um einen Pixel auf 9 Pixel verbreitert, damit erhöht sich der Zeichenabstand und somit die Lesbarkeit. Da im Zeichenspeicher jedoch weiterhin nur acht Spalten gespeichert waren, wurde das 9. Pixel entweder leer gelassen oder durch Wiederholung des 8. Pixel erzeugt. Die Entscheidung darüber wird nach der Nummer des Zeichencodes getroffen – die Zeichen 0xC0 bis 0xDF, welche in der Codepage 437 Blockgrafikzeichen mit Anschluss nach rechts enthalten, benutzen die Wiederholung des 8. Pixels, bei den anderen ist die 9. Spalte immer leer. Dadurch ergeben sich auch die typischen vertikalen Streifen bei einigen Programmen (wie z. B. Turbo Pascal ab Version 6), die den Hintergrund mit Grauzeichen füllen. Für die Verwendung von anderen Codepages, die in den Positionen 0xC0 bis 0xDF gewöhnliche Druckzeichen enthalten, kann die Wiederholung des 8. Pixels auch komplett abgeschaltet werden (diese Möglichkeit gab es bei der MDA, deren Codepage unveränderlich auf die 437 festgelegt war, noch nicht).
Wie schon bei der EGA-Karte steuert das Bit 3 des Attribut-Bytes die Auswahl aus zwei Zeichensätzen. Somit ist es mit benutzerdefinierten Zeichensätzen möglich, bis zu 512 verschiedene Zeichen gleichzeitig im Textmodus darzustellen.
Der eingebaute Zeichengenerator unterstützt benutzerdefinierte Zeichensätze, die 1 bis 32 Pixel hoch sein können. Während die üblichen benutzerdefinierten Zeichensätze die üblichen Zeichengrößen von 8×8, 8×14 oder 8×16 Pixeln benutzen, existieren auch kleinere Schriften, die etwa bei 5 Pixel hohen Zeichen bis zu 96 Zeichenzeilen erlauben würden, die aber kaum noch lesbar sind.
Mit 1 oder 2 Pixel hohen „Schriften“ lassen sich im Textmodus (pseudo)grafische Effekte erzielen, die allerdings auch zur Blütezeit der Grafik-Spielereien unter DOS nur selten genutzt worden sind, da im Textmodus nur 16 Farben zur Verfügung stehen und die 256-Farben-Grafikmodi deutlich bessere Effekte ermöglichten.
Grafik-BIOS
Wie schon die EGA-Karten benutzen auch VGA-Karten ein eigenes Grafik-BIOS, um die VGA- und auch EGA-Grafikfunktionen des Adapters für Anwenderprogramme zugänglich zu machen, ohne dass diese die komplizierte Registerprogrammierung selbst durchführen müssen. Dies ist notwendig, da das System-BIOS eines PCs in der Regel lediglich MDA und CGA unterstützt. Wie bei SCSI-Steuergeräten und Netzwerkkarten mit Boot-ROM wird der Maschinencode in den für Zusatzkarten reservierten Adressraum des Prozessors zwischen 640 und 960 Kibibyte, im so genannten konventionellen Arbeitsspeicher, eingeblendet. Hier können die Programme dann auf die VGA- (und EGA-) Routinen der Grafikkarte zugreifen. Teilweise werden auch Grafikroutinen des System-BIOS auf angepassten Code der Grafikkarte umgelenkt, um die Kompatibilität zu älteren Programmen zu gewährleisten.
Auf den Nachfolgern der IBM-PC-kompatiblen Computer mit UEFI als System-Firmware, die zwischen 2010 und 2020 PCs mit dem klassischen BIOS ablösten, findet sich weiterhin Grafik-Firmware, die jedoch nicht mehr direkt von Programmen angesprochen wird, sondern über eine standardisierte Programmierschnittstelle (API), u. a. GOP (UEFI), OpenGL/Vulkan (plattformübergreifend), DirectX (Windows) oder Metal (macOS).
Geschichte
Entwicklung
Die heutigen Grafikkarten für IBM-kompatible PCs sind häufig zumindest teilweise VGA-kompatibel. Von 1981 bis etwa 1990 setzte IBM die Standards dieser Architektur, so auch bei Grafikkarten. Aufgrund der Fähigkeiten und Architektur des seinerzeit meistverwendeten Betriebssystems DOS (benötigt lediglich Textmodus, keine Multitaskingfähigkeit) war es damals daher notwendig, dass Peripherie und Erweiterungskarten zum jeweiligen gängigen Industriestandard hardwarekompatibel sein mussten, da die Software die Erweiterungskarte oder Peripheriekomponente direkt programmierte. Mit der Zeit ergab sich aber das Problem, dass die Farbtiefen und Auflösungen und deren Ansteuerung lediglich bis zum VGA-Standard definiert waren. Mit dem einsetzenden Siegeszug des PC Ende der 1980er Jahre nahm die Anzahl der Hersteller für PC-Grafiklösungen auf dem Markt stark zu, und der Preis für Grafikkarten sank. IBM verlor seine Markt- und Standardisierungsmacht. Um sich von der Konkurrenz abzuheben, begannen zahlreiche Hersteller (z. B. Genoa Systems, Trident Microsystems, Hercules u. v. m.), den VGA-Standard mit eigenen Entwicklungen (bzw. VGA-Grafik-BIOS-Erweiterungen) zu erweitern. So boten mit der Zeit die meisten Grafikkarten die Möglichkeit, Auflösungen bis 1024×768 oder darüber in High- oder True Color darzustellen. Auch wurden mit dem Aufkommen von grafischen Benutzeroberflächen wie Windows erste Funktionen zu deren Beschleunigung implementiert, wie das Zeichnen und Füllen von Rechtecken und Flächen in Hardware durch die Grafikkarte. Allerdings waren all diese erweiterten, über VGA hinausgehenden Funktionen nicht standardisiert und unterschieden sich zum Teil je nach Grafikkarte. Daher musste zunächst jede Software, die diese Funktionen nutzen wollte, ihre eigenen Grafikkartentreiber mitbringen (Beispiel: MS Flugsimulator 5.0). Für wichtige Anwendungen wie Windows 3.1, teilweise AutoCAD, wurden aber auch seitens der Grafikchiphersteller Treiber zur Verfügung gestellt. Vor allem bei günstigen Nicht-Standard-Grafikkarten war dies aber auch nicht immer der Fall, und daher beschränkte sich die Software unter DOS meist auf VGA.
Spiele bis 1995 sind daher meist auch auf den 320 × 200 × 8-VGA-Modus beschränkt (Mode 13h). Beispiele sind Doom 1, Worms oder Wolfenstein 3D. In grafischen Betriebssystemen wie bspw. Windows NT oder OS/2 war immer ein VGA-Treiber für den standardisierten VGA-Modus der einzig verfügbare, wenn noch kein hardwarespezifischer Grafiktreiber installiert wurde.
Um höhere Auflösungen und deren Programmierung zu vereinheitlichen, wurden Anfang der 1990er Jahre von der VESA die Auflösungen bis 1280×960 in 256 Farben und deren BIOS-APIs normiert. Diese VESA-Erweiterungen wurden darauf auch zügig von den Grafikchipherstellern übernommen und in die VGA-BIOSe eingepflegt. Die VESA-Erweiterungen erschienen in mehreren Versionen, aktuell ist Version 3.0. Die VGA-BIOS-Chips waren meist als ROM ausgeführt, so dass sich die Grafikkarten selbst nicht auf eine neue VESA-BIOS-Version aufrüsten lassen. Durch die Verwendung von TSR-Programmen, welche gewissermaßen als „VESA-Wrapper“ dienen, lassen sich unter DOS neue VESA-Erweiterungen auf Systemen nutzen, welche über eine entsprechend leistungsfähige, aber zur benötigten VESA-Version inkompatible Grafikkarte besitzen. Diese TSR-Programme stellen die VESA-Erweiterungs-Routinen zur Verfügung und übersetzen sie für die Grafikkarte. Neben herstellerspezifischen Wrappern gibt es auch Universalwrapper wie UNIVESA.EXE oder UNIVBE.EXE. Diese wurden oft verwendet, um die VESA-Erweiterungen der Version 2.0 auf Systemen nachzurüsten, deren Grafikkarten lediglich VESA 1.0 unterstützen. Erst Mitte der 1990er Jahre hatten sich die mit den VESA-Erweiterungen kompatiblen Grafikkarten soweit durchgesetzt, dass sie von den Spieleherstellern zunehmend unterstützt wurden. Auch war mit dem Erscheinen der ersten Pentium-Prozessoren auf dem Massenmarkt genug Rechenleistung vorhanden, um auch in den VESA-Modi, selbst mit Wrapper eine flüssige Grafikdarstellung in aufwändigen DOS-Spielen wie Wing Commander 3 oder The Need for Speed erreichen zu können. In der Shareware-Szene wurde allerdings noch längere Zeit auf den Mode 13h (320×200, 256 Farben) gesetzt, da hier eine Bildschirmseite ziemlich genau 64 kB benötigt. Dies ist in zahlreichen verbreiteten günstigen Real-Mode-Compilern wie Turbo Pascal die maximal erlaubte Größe für Datenstrukturen im Arbeitsspeicher; Mode-13h-Bildschirmseiten sind unter solchen Compilern daher vergleichsweise einfach zu handhaben. Trotz der VESA-Erweiterungen wird unter Windows bis einschließlich Version 7 ein Standard-VGA-Treiber eingerichtet, solange kein herstellerspezifischer Treiber verfügbar ist, im Gegensatz beispielsweise zu Linux und BSD oder neueren Windows-Versionen. Bei letzterem nennt sich der generische Treiber nun Microsoft Basic Display Adapter und unterstützt auch hohe Auflösungen, jedoch ohne spezifische Beschleunigungsfunktionen.
In der zweiten Hälfte der 1990er Jahre setzten sich Windows 95 und 98 zunehmend durch. Windows 95 und seine Nachfolger bieten mit DirectX und OpenGL Betriebssystemschnittstellen, mit denen Anwendungen definierte Funktionen von Grafikkarten ansprechen können. Windows gibt dabei standardisierte Funktionsaufrufe sofort an den Grafiktreiber weiter, der sie in Befehle für die Grafikkarte umsetzt. Somit sind ein Großteil der Funktionen von Grafikkarten aus Windows für alle Arten von Programmen einheitlich ansprechbar. Ein zu einem bestimmten Hardwarestandard kompatibles Grafik-BIOS ist unter Windows prinzipiell nicht mehr erforderlich. Eine direkte Programmierung der Grafikkarte wie unter DOS ist unter Windows ohnehin nicht möglich, da Windows multitaskingfähig ist und für die Benutzeroberfläche selber die Grafikkarte benötigt. Um etwaige Konflikte durch gleichzeitige Zugriffe von verschiedenen Programmen zu vermeiden, laufen Hardwarezugriffe unter Windows daher grundsätzlich koordiniert über das Betriebssystem und dessen Gerätetreiber. Die DirectX-Treiber ermöglichen im Gegensatz zum Grafik-BIOS komplexere Funktionen und sprechen den Chip in der Regel direkt über seine Register an. Das Upgrade von Funktionen wird durch den Verzicht auf die Routinen des recht starren VGA-Grafik-BIOS wesentlich erleichtert. DirectX-Treiber ermöglichen im Gegensatz zum Grafik-BIOS komplexere Funktionen. Die Steuerung der Grafikkarte erfolgt hauptsächlich durch den Windows-Treiber. Das Programmieren aufwändigerer Grafiken wird vereinfacht, da die Abstraktionsebene höher liegt und z. B. ein wesentlicher Teil der Darstellung einer virtuellen Welt im Gegensatz zu früher von Grafiktreiber und Grafikkarte übernommen werden kann. Dies eröffnet zahlreiche Möglichkeiten, die Grafikdarstellung durch bestimmte Schaltungen im Grafikchip zu beschleunigen. Auch die Portierbarkeit auf andere Plattformen wird durch den hohen Abstraktionsgrad erleichtert. Allerdings nimmt dadurch auch die Komplexität des Grafikchips und des Grafiktreibers zu. Die vergleichsweise einfachen Grafikchips, welche bislang höchstens über einige Beschleunigungsfunktionen für grafische Benutzeroberflächen verfügten (z. B. Füllen von Rechtecken, Zeichnen von Linien durch die Hardware), wurden mit der breiten Verfügbarkeit von Windows 95 ff. und Direct3D zu hochkomplexen Grafikprozessoren mit Fähigkeiten zur beschleunigten Darstellung dreidimensionaler Welten weiterentwickelt. Zahlreiche bekannte Grafikchiphersteller aus den 1990er Jahren konnten mit dieser Entwicklung nicht Schritt halten und sind mittlerweile aus dem Markt verschwunden.
Aufgrund des hohen Alters des VGA-Standards und den damit einhergehenden Limitierungen des Designs war es ein Anliegen verschiedener Hersteller wie Intel oder ATI, den VGA-Standard durch den von Microsoft geförderten UGA-Standard (Universal Graphics Adapter) zu ersetzen. Immerhin wurde die VGA-Karte in den mittleren 1980ern für den ISA-Bus entwickelt, was gerade für moderne Betriebssysteme eine Schwierigkeit darstellt, da VGA somit zu den Errungenschaften des geschützten Speichermodells (Protected Mode) inkompatibel ist.
Das erklärte Ziel von UGA, das mit EFI-Version 1.1 eingeführt wurde, war es, die grafischen Mindestleistungen von 640 × 480 × 4 auf 800 × 600 × 32 anzuheben, das Speichermodell der Grafikkarte zu vereinfachen (durch 32-Bit-Zugriff sowie die Abschaffung der Paletten und des Textmodus) und einen plattformunabhängigen Zugriff auf die Grafikkarte über EFI-Treiber zur Verfügung zu stellen. Kritischer, plattformabhängiger Code sollte damit reduziert werden. In UEFI ab Version 2.0 wurde UGA gestrichen und durch das einfachere und modernere GOP (Graphics Output Protocol) ersetzt, dem jedoch im Gegensatz zu UGA der Textmodus fehlt. EFI-Treiber sowohl für UGA als auch für GOP sind jedoch kein Ersatz für Betriebssystem-spezifische Treiber, ermöglichen aber bereits an hochauflösende Displays angepasste Grafikmodi in der Firmware selbst (etwa für das „BIOS-Setup“) sowie bei der Installation von Betriebssystemen und dienen meist als Fallback-Option, wenn spezifische Treiber für die jeweilige Grafikkarte fehlen.
Nach den Plänen von AMD, Intel, LG und weiteren Rechner- und Bildschirm-Herstellern, soll der VGA- sowie auch der LVDS-Anschluss spätestens im Jahr 2015[veraltet] nicht mehr hergestellt werden. An dessen Stelle sollen die digitalen Ausgänge DisplayPort oder HDMI verbaut werden.[8]
Heutige Bedeutung
Unabhängig von dieser ursprünglichen Vielfalt von Auflösungen steht „VGA-Auflösung“ inzwischen meist für die Auflösung von 640 × 480 Pixeln, etwa bei Spezifikationen für Displays oder Smartphones, wobei meist höhere eine Pixeltiefe bzw. Farbauflösung bis 32 Bit genutzt wird, die ursprünglich nicht zur Verfügung standen. Von der VGA-Auflösung von 640 × 480 Pixeln leiten sich weitere Formate z. B. für PDAs ab. Eine Auflistung findet sich unter Bildauflösung#Standards.
Literatur
- Mathias Uphoff: Programmierung der EGA /VGA-Grafikkarte. Addison-Wesley, 1990, ISBN 3-89319-274-3.
- Dr. Dobbs Journal vol 15 - Demystifying 16-Bit VGA - May 1990 S.428
Einzelnachweise
- ↑ Section 2. VGA Function. (PDF; 659 kB) In: mcamafia.de. IBM Corp., 1992, abgerufen am 21. März 2024 (englisch).
- ↑ Fabien Sanglard: Game Engine Black Book – Wolfenstein 3D. 2.2. überarbeitete Auflage. 15. Dezember 2022, 2.3 Video (englisch).
- ↑ a b Fabien Sanglard: Game Engine Black Book – Wolfenstein 3D. 2.2. überarbeitete Auflage. 15. Dezember 2022, 4.5.2 Solving the VGA Problem (englisch).
- ↑ Michael Abrash: Chapter 48 – Mode X Marks the Latch. In: Phat Code. 2001, abgerufen am 21. März 2024 (englisch).
- ↑ Mode Y. In: Google Groups. 17. August 1993, abgerufen am 21. März 2024 (englisch).
- ↑ https://jacobfilipp.com/DrDobbs/articles/DDJ/1991/9107/9107j/9107j.htm GRAPHICS PROGRAMMING Mode X: 256-Color VGA Magic Michael Abrash Dr. Dobb's Journal Juli 1991
- ↑ https://jacobfilipp.com/DrDobbs/articles/DDJ/1990/9004/9004f/9004f.htm VESA VGA BIOS EXTENSIONS - A software standard for Super VGA by Bo Ericsson, Dr. Dobb's Journal April 1990 (englisch)
- ↑ VGA-Buchse zum Aussterben verurteilt. heise online, 10. Dezember 2010
Auf dieser Seite verwendete Medien
Default VGA palette (256 colors) serving for 4 different needs in a single colour table[1]
- The first 16 colours are encoded exactly as with all 16 colour modes (0Dh/0Eh/10h/12h) which in turn use the same 4 bit encoding as the colour attributes of all text modes (*1)
- The next 16 deliver an even lit 4 bit black (10h) to white (1Fh) grayscale ( binary coded gray scale)
- 216 (3x8x3x3) colours: an evenly spaced, HSV colour cylinder (*2) based on a
- 24 hue RGB wheel, starting at blue, with 8 subdivisions per R,G and B, resulting in 24 (3x8) discrete "hues". Each of those is present in
- 3 level of saturation (colourfulness)
- 3 level of intensity(value of brightness)
- 8 color (= 256 - (16 + 16 + 216)) definitions are guaranteed free for user applications ( user definable colours)
Autor/Urheber: Jorp, Lizenz: CC BY-SA 3.0
Comparison between MOST known Video Resolutions including relevant Aspect Ratio Lines. Made for use on Computer Video Standards page.
This is an SVG, though the drop shadows do not work with Firefox <=2.0 they do work in other browsers (namely IE with the Adobe plug-in) and it degrades nicely in those that they don't work in. The filters that are used to implement the drop shadows are however supported in the Trunk source of Firefox.
Also, I've reverted the licensing to the license specified in the original graphic.