Übungen zum PBM-Format

1) Diese Wiki-Seite geht auf Aufgaben von D. Zechnall zurück

Im vorigen Kapitel hast du gesehen, wie man mit einem Texteditor Bilder erzeugen kann. Die Inhalte der Textdatei war dabei in zwei Teile aufgeteilt: Die "Headerinformationen" und die "Nutzlast".

Wenn diese Informationen weitergegeben oder werden, müssen sie natürlich wieder als lange Abfolge aus Nullen und Einsen dargestellt werden. Eine solche in sich geschlossene, unabhängige Dateneinheit, die mit Hilfe einer entsprechenden Vorgehenweise decodiert werden kann, nennt man "Datagramm".

Im Datagramm sind Header und Nutzdaten zusammen codiert, man benötigt das entsprechende Wissen, wie man vorgehen muss, um das Datagramm zu decodieren. Häufig ist es von Vorteil, das Datagramm in gleich Größe Bit-Blöcke einzuteilen: in einem "4bit-Datagramm" stellen jeweils 4 Bit eine Informationseinheit dar, in einem, 8Bit Datagramm enspricht eine Informationseinheit jeweils einem Byte.

(A1)

Bitmap-Codierung

Codiere das Schwarz-Weiß-Bild (Bitmap) der Kerze durch zwei Teile, die du getrennt voneinander auf ein Blatt schreibst:

1. Teil: eine Kette aus ausschließlich Nullen und Einsen (Bitfolge)

2. Teil: enthält Anweisungen (einen Algorithmus), wie man aus der Bitfolge des 1. Teils das Bild rekonstruieren kann. Der Algorithmus muss auch auf andere Bilder (z.B. das Schwarz-Weiß-Bild darunter) und damit auch auf andere Bitfolgen anwendbar sein! Du kannst dich an den Informationen auf dieser Wiki-Seite orientieren.

Lasse anschließend deinen Sitznachbarn das Bild anhand von deinen Anweisungen (1. & 2. Teil) rekonstruieren!

(A2)

Wie viele verschiedene Grautöne kannst du in dem Bild unten erkennen? Bestimme die Anzahl.

Vervollständige die folgende Codierungs-Tabelle:

Grauton	4-Bit Codierung
weiß	0000
fast hellgrau	0001
_
fast mittelgrau
mittelgrau
_
dunkelgrau
sehr dunkelgrau
_
schwarz

Beschreibe, was man an der Codierung verändern müsste, um doppelt so viele Grautöne zu codieren?

Vervollständige das 8-Bit-Datagramm des Greymaps aus dem ersten Aufgabenteil. Codiere dabei wie folgt: Zeilenanzahl, Spaltenanzahl, Nutzdaten:

(A3) Farbbild-Codierung

Codiere die folgenden Farbbilder:

Beschreibe für beide Bilder ein Verfahren, wie du im Datagramm die Farben codieren könntest. Da sich die Bilder stark unterscheiden (wodurch?) ist es sinnvoll, zwei verschiedene Codierungsverfahren einzusetzen!

Codiere beide Bilder in einem 8-Bit-Datagramm in deinem Heft. (Codiere bei der Blume nur den Header und die ersten drei Farbpixel analog zum Graustufen Bild, du kannst die Tabelle von dort verwenden.