Adam7
# Adam7

Adam7 ist ein Algorithmus zum allmählichen Bildaufbau beim Transfer von Bilddaten über eine langsame Verbindung, wie etwa schmalbandiges Internet. Das Ziel ist es, dem Benutzer anstatt eines Bildes, das sich von oben nach unten langsam aufbaut, eine grobe Version des Bildes zu zeigen, die sich nach und nach verfeinert. Adam7 ist nach seinem Erfinder Adam M. Costello benannt und wird unter anderem im Bildformat PNG angewandt.

## Vorgehensweise

Das Gesamtbild wird in insgesamt sieben Durchläufen aufgebaut. Dazu ist es zunächst notwendig, das Ausgangsbild in Blöcke von 8×8 Pixeln zu zerlegen. Jedes dieser Pixel hat eine bestimmte Wertigkeit von 1 bis 7. In der Bilddatei werden nacheinander die sieben Durchläufe abgespeichert. Jeder Durchlauf besteht aus den Pixeln mit der entsprechenden Wertigkeit. Beim Lesen der Datei wiederum werden die entsprechenden Durchläufe nacheinander übertragen.

Die Anzahl der Pixel nimmt bei jedem Durchlauf zu oder bleibt gleich. Die Wertigkeiten sind wie folgt definiert:

Es ist gebräuchlich, für die bereits vorhandenen Pixel über den restlichen, noch nicht übertragenen Bildblock Rechtecke zu zeichnen, sodass der Eindruck einer allmählichen „Verfeinerung“ entsteht.

## Vor- und Nachteile

Adam7 hat gegenüber dem in GIF verwendeten Schema, bei dem nur jeweils vollständige Zeilen übertragen werden, den Vorteil, dass der erste Durchlauf weniger Pixel betrifft und somit ein Ausgangsbild achtmal so schnell präsentiert werden kann. Zudem hilft die Verfeinerung von Spalten zusätzlich zu Zeilen, Text schneller lesbar zu machen.

Allerdings ist Adam7 komplizierter zu implementieren. Insbesondere muss darauf geachtet werden, dass auch Bilder, die kleiner als ein Block sind, korrekt ausgewertet werden. Komprimierte Bilddateien, die Adam7 verwenden, sind außerdem in der Regel etwas größer als normale Bilddateien, da die natürliche Reihenfolge der Bilddaten nicht beibehalten wird. Deshalb sollte Adam7 nur bei größeren Bildern, die ins Internet gestellt werden oder auf einem langsamen Speichermedium lagern, verwendet werden.

