Mandalex

Bilder benötigen oftmals sehr viel Speicherplatz. Gerade im Internet ist die Übertragung von grossen Datenmengen einer langen Wartezeit gleichzustellen. Um nun diesem Problem etwas entgegenzutreten, bedient man sich eines kleinen Tricks, welcher veranlasst, ein Bild nicht zeilenweise aufzubauen, sondern die Daten zuerst nur grob, und später immer feiner zu übertragen. Dieses Verfahren nennt man allgemein Interleaving.

Mittels dieses Verfahrens kann zwar der Endbetrachter das Bild nicht von Anfang an in seiner vollen Pracht sehen, hat jedoch bereits nach kurzer Ladezeit eine Andeutung, wie das vollständige Bild aussehen könnte. Dadurch muss der Betrachter das Bild nicht zwingendermassen bis zum Ende laden, sondern kann schneller entscheiden, ob dieses Bild tatsächlich Betrachtung verdient.

Interleaving ist in den allermeisten Fällen eine gute Sache, nur bei kleinen Bildern könnte das Verhältnis zum dadurch benötigten Mehr an Platz ein wenig aus den Fugen geraten. Interleaving hat nämlich auch noch einen Nachteil, welcher sich bei Komprimierungen, wie sie bei GIF und und besonders bei PNG angewendet werden, Negativ auswirken könnte: Die Pixel sind weniger geordnet und können daher weniger gut komprimiert werden. Als Beispiel: Das untenstehende GIF-Bild benötigt ohne Interleaving 18541 Bytes, mit jedoch 18936 Bytes. Noch besser sieht man diesen Unterschied bei PNG: Ohne Interleaving benötigt das Bild 18507 Bytes, mit deren 22325.

Die folgenden beiden Bilder haben die Ausmasse 256 x 256 Pixel. Angenommen, dieses Bild würde mit einer festen Palette von 256 Farben und zudem unkomprimiert gespeichert werden, so benötigte man für die reinen Bilddaten insgesamt 64 Kilobytes (65536 Bytes). Selbstverständlich würde PNG diese Daten noch komprimieren, um jedoch einen Vergleich anstellen zu können, wird diese Zahl verwendet.

GIF-Interleaving

GIF hat sein eigenes System mit 4 Stufen, wobei bei jeder Stufe mehr Zeilen hinzukommen. In der ersten Stufe kommen alle Zeilen, welche durch 8 teilbar sind. In der zweiten kommen alle durch 4 teilbaren hinzu. In der dritten sind dann die verbleibenden durch 2 teilbaren dran, und zuletzt kommen alle ungeraden Zeilen.

GIF-Interleaving Stufe 1
1. Stufe

Es sind 12.5% der gesamten Datei übertragen. Dies entspricht 8192 übertragenen Bytes.
Man sieht bereits jetzt, dass linkerhand wahrscheinlich Text stehen müsste, welcher jedoch noch nicht entzifferbar ist. Rechts ist ein Bild zu erkennen, welches zumindest teilweise das vollständige Bild schon recht gut erahnen lässt.

GIF-Interleaving Stufe 2
2. Stufe

Es sind 25% der gesamten Datei übertragen. Dies entspricht 16384 übertragenen Bytes.
Der Text ist ausser dem Titel noch immer unleserlich, aber das Bild ist bereits ziemlich gut erkennbar.

GIF-Interleaving Stufe 3
3. Stufe

Es sind 50% der gesamten Datei übertragen. Dies entspricht 32768 übertragenen Bytes.
Der Text ist jetzt zum grössten Teil ohne Probleme lesbar. Das Bild könnte bereits jetzt so stehen gelassen werden.

GIF-Interleaving Stufe 4
4. Stufe

Es sind 100% der gesamten Datei übertragen. Dies entspricht 65536 übertragenen Bytes.
Das fertige Bild ist übertragen.

PNG-Interleaving Adam7

Das Interleaving-Verfahren des Dateiformates PNG ist das sogenannte Adam7 (benannt nach dessen Erfinder plus die Anzahl Stufen, die es definiert). Bei diesem Verfahren wird bei jeder Stufe jeweils die gleiche Datenmenge des bisher geladenen hinzugenommen. Umgekehrt ausgedrückt wird ausgehend vom vollständigen Bild bei jeder Stufe die Hälfte der Datenmenge weggenommen.

Dieses Verfahren funktioniert nach einem relativ einfachen Prinzip: Man beginnt bei jedem 8. Pixel jeder Zeile und Spalte. In der zweiten Stufe kommen alle Pixel hinzu, welche sich zudem in jeder 4. Spalte befinden. In Stufe drei dann kommen die Pixel hinzu, welche zusätzlich in jeder 4. Zeile stehen. Stufe 4 und 5 enthalten wiederum zuerst die zuerst die Spalten und dann die Zeilen, welche nun jedoch jedes 2. Pixel ausfüllen. In der 6. und 7. Stufe schlussendlich kommen alle restlichen Pixel hinzu.

PNG-Interleaving Stufe 1
1. Stufe

Es sind 1.5625% der gesamten Datei übertragen. Dies entspricht 1024 übertragenen Bytes.
Noch kann man nicht wirklich viel erkennen, aber es lässt sich bereits erahnen, dass links Text steht und rechts ein Bild gezeigt wird.

PNG-Interleaving Stufe 2
2. Stufe

Es sind 3.125% der gesamten Datei übertragen. Dies entspricht 2048 übertragenen Bytes.
Der Text ist noch lange nicht entzifferbar und auch das Bild hat noch nicht wirklich viel an Ausdruckskraft gewonnen.

PNG-Interleaving Stufe 3
3. Stufe

Es sind 6.25% der gesamten Datei übertragen. Dies entspricht 4096 übertragenen Bytes.
Der Text ist immer noch unleserlich, jedoch kann man das Bild so langsam erahnen. Selbst mit einem Analog-Modem kann diese Datenmenge innerhalb einer Sekunde übertragen werden.

PNG-Interleaving Stufe 4
4. Stufe

Es sind 12.5% der gesamten Datei übertragen. Dies entspricht 8192 übertragenen Bytes.
Der Titel des Textes kann bereits entziffert werden, wenn auch nur gerade knapp. Der Titel hat Schriftgrösse 14, der Text Schriftgrösse 11.

PNG-Interleaving Stufe 5
5. Stufe

Es sind 25% der gesamten Datei übertragen. Dies entspricht 16384 übertragenen Bytes.
Der Text kann nun zu einem grossen Teil entziffert werden und auch das Bild sieht schon fast fertig aus.

PNG-Interleaving Stufe 6
6. Stufe

Es sind 50% der gesamten Datei übertragen. Dies entspricht 32768 übertragenen Bytes.
Der Text ist nun komplett lesbar. Beim Bild stören noch einige Verwackelungen bei waagerechten Linien

PNG-Interleaving Stufe 7
7. Stufe

Es sind 100% der gesamten Datei übertragen. Dies entspricht 65536 übertragenen Bytes.
Das fertige Bild ist übertragen.

Die Adam7-Methode hat im Vergleich zur GIF-Methode einen kleinen Vorteil: Bereits nach 25% der Datenmenge ist Text lesbar, wogegen bei GIF 50% der Datenmenge benötigt werden. Der Nachteil jedoch liegt wie oben bereits beschrieben in der grösseren Unordnung der Pixel, welche sich schlussendlich wieder in der Grösse der Datei niederschlägt.