- Multicolor Graphics Adapter
-
Video Graphics Array oder VGA bezeichnet einen Computergrafik-Standard (EISA, 1987), der bestimmte Kombinationen von Bildauflösung und Farbanzahl (Farb-Bit-Tiefe) sowie Wiederholfrequenz definiert. Er war seinerzeit fast identisch zum MCGA (Multi-Color Graphics Array) von IBM. Teils wird auch fälschlich mit Video Graphics Adapter übersetzt.
VGA war, im Gegensatz zu seinen Vorgängern EGA und CGA, zu Anfang als Ein-Inch-Prozessor zur leichteren Integration auf Hauptplatinen konzipiert und somit nicht als eigener „Adapter” geplant.
Heute steht VGA meist für die Auflösung von 640 × 480 Pixeln, etwa bei Smartphones oder auch Digitalkameras. Auch moderne Betriebssysteme verwenden noch den VGA-Modus, z. B. während der Installation oder wenn kein zur Grafikkarte passender Treiber installiert ist.
Inhaltsverzeichnis
Merkmale einer VGA-kompatiblen Grafikkarte
- 256 kB interner Speicher
- Register lesbar
- Kann Text darstellen (interne Tabellen: 8 × 8 bis 8 × 16 Pixel/Zeichen)
Zu beachten ist, dass eine Grafikkarte aus Computersicht VGA-kompatibel sein kann, ohne einen VGA-Anschluss zu besitzen, genauso wie eine Grafikkarte mit VGA-Anschluss nicht zwingend kompatibel zum VGA-Grafikkartenstandard ist.
Auflösung
Die Bild-Auflösung einer VGA-Karte lässt sich ziemlich frei einstellen, wodurch es z. B. auch möglich wird, eine VGA-Karte an einen Fernseher mit SCART-Buchse anzuschließen, allerdings liegt die Horizontalfrequenz bei TV bei ca 15 kHz.
Für herkömmliche VGA-Monitore geeignet sind jedoch nur folgende Varianten:
- 70 Vollbilder pro Sekunde mit maximal 400 sichtbaren Zeilen oder 60 mit maximal 480 sichtbaren Zeilen
- Die Anzahl der sichtbaren Zeilen lässt sich aber beliebig verringern, z. B. statt 400 nur 350 Zeilen bei 70 Hertz.
- Eine weitere Möglichkeit, die Auflösung zu verringern, besteht darin, Zeilen mehrfach darzustellen – aus 480 Zeilen werden so 240, 160, 120, 96 usw. oder aus 400 Zeilen 200, 166, 100, 80 usw.
- Pro Zeile sind 640 oder 720 Pixel üblich (je nach gewähltem Pixeltakt)
- Dieser lässt sich halbieren oder vierteln auf 320 oder 160 bzw. 360 oder 180 Pixel.
- Im 256-Farben-Modus wird der Pixeltakt ebenfalls immer halbiert.
- Die Horizontalfrequenz beträgt stets 31.5 kHz.
Häufig benutzte Grafikmodi waren:
- 320 × 200 Pixel, 256 Farben (8 Bit, 64 kB linear, sehr beliebt)
- 320 × 200 Pixel, 16 Farben (4 Bit)
- 640 × 200 Pixel, 16 Farben
- 640 × 350 Pixel, 16 Farben (siehe Enhanced Graphics Adapter (EGA))
- 640 × 480 Pixel, 16 Farben (quadratische Pixel, 1 Plane je Farbe)
- 640 × 480 Pixel, 4 Farben (quadratische Pixel, 4 Pixel je Byte)
Als Textmodi wurden vor allem 80 × 25 Zeichen und 80 × 50 Zeichen genutzt, beide mit einer zugrundeliegenden Bildauflösung von 720 × 400 Pixel.
Kompatibilität zu EGA-Karten
Farbpaletten
VGA-Grafikkarten unterstützen bis zu 256 Farben aus 262144 möglichen Farben. Der EGA-Standard unterstützt jedoch nur 16 aus 64 Farben und benutzt hierzu eine einfache Tabelle. Bei VGA-Karten existiert diese Tabelle ebenfalls – die darin enthaltenen Werte werden aber im Gegensatz zu EGA nicht direkt als Farbnummern, sondern als Zeiger auf einige der ersten 64 Einträge der eigentlichen Farbpalette interpretiert. Diese VGA-Farbpalette hat nun 256 Einträge, so dass durch dieses zweistufige Verfahren auch in den EGA-kompatiblen Modi der VGA alle VGA-Farben dargestellt werden können, allerdings weiterhin nur jeweils 16 davon gleichzeitig.
Textmodus
VGA-Grafikkarten stellen den Textmodus mit 720 Punkten pro Zeile dar, genügend für 90 Zeichen pro Zeile. Dies würde jedoch eine deutlich unterschiedliche Speicherverwaltung erfordern, die entweder inkompatibel zu bestehenden Standards wäre oder sehr umständlich. Man ging deshalb einen anderen Weg (der übrigens schon bei der älteren MDA-Karte genauso realisiert worden war). Jedes Zeichen wurde um einen Pixel auf 9 Pixel verbreitert. Da im Zeichenspeicher jedoch 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 0xB0 bis 0xDF, welche in der Codepage 437 Blockgrafikzeichen 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, die den Hintergrund mit Grauzeichen füllen. Für die Verwendung von anderen Codepages, die in den Positionen 0xB0 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).
Grafik-BIOS
Wie schon die EGA-Karten benutzen auch VGA-Karten ein eigenes BIOS, um die VGA- und auch EGA-Grafikfunktionen des Adapters für Programme zugänglich zu machen. Dies ist notwendig, da das System-BIOS eines PCs in der Regel lediglich MDA, CGA und HCG unterstützt. Wie bei SCSI-Controllern und Netzwerkkarten mit Boot-ROM wird der Code beim Hochfahren des PCs von der Grafikkarte geladen und in den Speicheradressbereich des Prozessors eingeblendet. Hier können die Programme dann auf die VGA- (und EGA-) Routinen der Grafikkarte zugreifen. Teilweise werden auch Grafikroutinen des System-BIOS durch angepassten Code der Grafikkarte ersetzt, um die Kompatibilität zu älteren Programmen zu gewährleisten.
Entwicklung
Die heutigen Grafikkarten für IBM-kompatible PCs sind häufig zumindest teilweise VGA-kompatibel. Von 1981 bis ca. 1990 nahm IBM bezüglich der PC-Hardware eine ähnliche Stellung ein wie bis 2005 Microsoft bezüglich der PC-Betriebssysteme (vgl. Microsoft Windows). Sie setzten die Standards bei der PC-Hardware, insbesondere 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 1024x768 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. Leider waren all diese erweiterten, über VGA hinausgehenden Funktionen in keinster Weise 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. Bis heute ist oft der VGA-Treiber der einzige verfügbare, wenn noch kein externer 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-BIOSse 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 hestellerspezifischen 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 Need for Speed 1 erreichen zu können. In der Shareware-Szene wurde allerdings noch längere Zeit auf den Mode 13h (320 * 200 * 8) 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 vergleichweise einfach zu handhaben. Trotz der VESA-Erweiterungen wird unter Windows noch heute ein Standard-VGA-Treiber eingerichtet, solange kein herstellerspezifischer Treiber verfügbar ist, im Gegensatz beispielsweise zu Linux und BSD.
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, welcher 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-Grafikbios 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 Abstaktionsebene 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 Schaltung 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. 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 ist es ein Anliegen verschiedener Hersteller wie Intel oder ATI, den VGA-Standard durch den 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 der Förderer von UGA ist 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 des Textmodus) und einen plattformunabhängigen Zugriff auf die Grafikkarte über EFI-Treiber zur Verfügung zu stellen. Kritischer, plattformabhängiger Code soll somit reduziert werden. EFI-Treiber sind kein Ersatz für Betriebssystem-spezifische Treiber, mit EFI und UGA soll der Zugriff auf die Grafikkarte aber dem Betriebssystemdesign angepasst werden.
Heutige Bedeutung
Unabhängig von dieser ursprünglichen Vielfalt von Auflösungen steht „VGA-Auflösung“ heute, etwa bei Spezifikationen für Displays oder Smartphones, meist für die Auflösung von 640x480, wobei meist höhere Pixeltiefe bzw. Farbauflösung (bis 32 Bit) genutzt wird, die ursprünglich nicht zur Verfügung standen.
Abgeleitete Formate
Von der prominentesten VGA-Auflösung von 640 × 480 Pixeln leiten sich einige kleinere Formate für PDAs etc. ab:
- QVGA (Quarter VGA): 320 × 240 Pixel
- 1/8 VGA (Eighth VGA): 240 × 180 Pixel
- QQVGA (Quarter QVGA): 160 × 120 Pixel
Für Breitbildschirme wurde außerdem informell WVGA (Wide VGA) geschaffen, was üblicherweise 848 × 480 Pixel oder 852 × 480 Pixel (~16:9) bedeutet; der exakte Breitenwert für eine Höhe von 480 Pixeln und einem Seitenverhältnis von 16:9 wäre 853,333 und lässt sich technisch nicht realisieren. WVGA beschreibt also eigentlich nur eine Auflösung, die in der horizontalen mehr als 640 Pixel aufweist.
Es sind auch Geräte mit einem Seitenverhältnis von 9:5 (18:10) und Auflösungen von 720 × 400 Pixel oder 864 × 480 Pixel auf dem Markt.
Verwandte Themen
Eine Erweiterung des Standards für die gleichzeitige Übertragung analoger und digitaler Daten ist Digital Visual Interface (DVI).
Siehe auch
Wikimedia Foundation.