Wikipedia · einfach zusammengefasst · Stand
Bit blit
Bit blit kann entweder als Softwareprozedur oder als Funktion einer hardwarebasierten Grafikausgabe (Grafikkarte, -Chip oder Chipsatz) implementiert werden; im …
Inhalt4 Abschnitte
Bedeutung und Umsetzung
Bit blit, auch BitBlt genannt, steht für „Bit Block Image Transfer“ beziehungsweise „bit block transfer“. Es ist eine Operation der Computergrafik zum schnellen Kopieren und Verschieben von Speicherinhalten; dieser Vorgang heißt auch Blitting.
Bit blit kann als Softwareprozedur oder als Funktion der hardwarebasierten Grafikausgabe umgesetzt sein, etwa in einer Grafikkarte, einem Grafikchip oder Chipsatz. Ein eigener Chip für diese Aufgabe heißt Blitter. Die Grundlage war die RasterOp-Spezifikation von Newman und Sproull: eine zunächst noch stark begrenzte Funktion zum bitweisen Kopieren von Speicherblöcken. VLSI Technology stellte 1986 eine Hardware-Implementierung vor. Da dieser Chip keine DMA-Funktion hatte, konnte er den Hauptprozessor kaum entlasten.
Einsatz in der Grafik
Blitting beschleunigt die Grafikausgabe. Bildbereiche können damit verschoben, kopiert oder bitweise verändert werden; außerdem lassen sich zwei Teile von Rastergrafiken kombinieren. Beherrscht ein Blitter DMA (Direct Memory Access, also direkten Speicherzugriff), wird die CPU dabei nicht belastet.
Das Konzept entwickelte Dan Ingalls am Forschungszentrum Xerox PARC für den Xerox-Alto-Computer. Bei älteren Rechnern war die CPU häufig zu langsam, um große Datenblöcke rasch im Speicher zu kopieren. Deshalb übernahm ein Spezialchip oder Co-Prozessor diese Arbeit. Der Amiga besaß bereits seit 1985 einen Amiga-Blitter mit DMA-Beschleunigung. Auch manche Atari-ST-Modelle hatten einen Blitter, darunter die Mega-ST-Baureihe ab 1987 und die STE-Serie ab 1989. Die CPU konnte dadurch andere Aufgaben ausführen, während der Blitter Bildschirmdaten verarbeitete.
Bei PC-kompatiblen Rechnern mit x86-Prozessoren wurden entsprechende Grafikkarten zunächst „Windows-Beschleuniger“ genannt. Sie entlasteten den Prozessor davon, Daten über den ISA-Bus zu übertragen. Werden die Daten innerhalb der Grafikkarte durch den Grafikprozessor in getrenntem Grafikspeicher verarbeitet, bleiben auch CPU und normaler Arbeitsspeicher entlastet. Dies heißt 2D-Beschleunigung; ebenso wie die später eingeführte 3D-Beschleunigung gehört sie zum Aufgabenbereich des Grafikprozessors.
Beispiel: Fenster verschieben
Ein typisches Beispiel ist das Verschieben eines Fensters in einer grafischen Oberfläche. Dabei wird ein großer Speicherblock, der Fensterinhalt, von seiner Ursprungsposition an eine Zielposition verschoben.
Ohne Hardwarebeschleunigung, etwa im abgesicherten Modus von Windows XP oder mit dem X11-vesa-Treiber, geschieht dies sichtbar stückweise statt als vollständige Bewegung des Fensters. Die grafische Oberfläche ist währenddessen meist blockiert. Frühere Oberflächen wie Windows 3.1 und Windows 95 zeichneten beim Verschieben deshalb nur den Fensterrahmen; der Inhalt wurde erst an der endgültigen Zielposition verschoben. Damals waren allerdings auch Auflösung und Datenmenge geringer.
BitBlt in 16-Bit-Windows
In den 16-Bit-Versionen von Microsoft Windows sowie in den 16-/32-Bit-Hybridversionen Windows 95, Windows 98 und Windows Me verwendete die BitBlt-Funktion selbstmodifizierenden Code.