Vertiefung - Speicheraufwand
Binärdarstellung von Bildern
Ziel der folgenden Betrachtungen ist es, die Anzahl der Bytes (bzw. Bits) zu ermitteln, die man zur Darstellung von Bildern benötigt. Zunächst betrachten wir das Giraffen-Bild als Beispiel für ein Schwarz-Weiß-Bild. Hier noch einmal der Quelltext zu diesem Bild:
Beachte, dass der Quelltext hier das ASCII-Format benutzt. Im Quelltext wird also das Zeichen 0
benutzt, um das Bit 0 darzustellen.
Um zu einer tatsächlichen Binärdarstellung zu kommen, kannst du wie folgt vorgehen:
Schritt 1:
Lade den Quelltext (giraffe1.pbm) mit dem Bildbetrachtungsprogramm
IrfanView.
Speichere ihn unter einem anderen Dateinamen ab (z. B. giraffe2.pbm
).
IrvanView lässt den Benutzer entscheiden, ob eine ASCII-Darstellung oder eine Binärdarstellung
benutzt werden soll. Entscheide dich für die Binärdarstellung. Alternativ kannst du auch das Bildbetrachtungsprogramm GIMP verwenden, um die Datei in das Binärformat zu konvertieren.
Schritt 2:
Öffne die neue Datei giraffe2.pbm
mit dem Editor
Notepad++.
Die folgende Abbildung zeigt einen Ausschnitt der Editor-Anzeige:
An den vorkommenden Sonderzeichen sieht man bereits, dass hier eine andere Darstellung als die oben gezeigte benutzt wird.
Lösche die Kommentarzeile # Created by IrvanView
, da diese nicht zur Bilddarstellung beiträgt.
Schritt 3: Wechsle jetzt zum integrierten Hex-Editor von Notepad++: [Plugins] [Hex-Editor]. Um eine optimale Anzeige zu erhalten, solltest du unter [Options...] folgende Einstellungen vornehmen:
Wenn du mit diesen Einstellungen den Quelltext betrachtest, erhälst du folgende Anzeige:
Hier werden jetzt alle Bits zur Darstellung des Bildes angezeigt. Bei genauerem Hinschauen solltest du
die Umrisse der Giraffe erkennen. Man sieht hier auch, wie die Zusatzinformationen P4
(für ein binäres
pbm-Format) und 24 36
(für die Anzahl der Pixel pro Zeile und die Anzahl der Zeilen) binär repräsentiert
werden. Schau ggf. in der ASCII-Tabelle nach.
Zur Analyse der Datei im Binärformat kannst du alternativ zu Notepad++ auch einen Hex-Editor wie z.B. wxHexEditor verwenden.
In dieser Darstellung lassen sich jetzt die Bits bzw. Bytes zählen. Es werden insgesamt 39*3 Bytes bzw. 39*3*8 Bits benutzt. Damit beträgt der Speicherbedarf hier 117 Bytes.
Du kannst das überprüfen, indem du dir die Eigenschaften der Datei giraffe2.pbm
anzeigen lässt.
Aufgabe 1: Binärdarstellung von Graustufen-Bildern
Geh analog vor, um den Speicherbedarf des Esel-Bildes zu bestimmen.
Um den Speicherbedarf grob abzuschätzen, kannst du auch wie folgt vorgehen: Ignoriere die Zusatzinformationen. Bestimme die Anzahl der Pixel. Überleg dir, wie viele Bits / Bytes zur Darstellung des jeweiligen Grauwertes benötigt werden. Schätze mit diesen Zahlenwerten den Speicherbedarf in Bytes ab. Zur Kontrolle: Die Anzahl der benutzten Bytes liegt bei ca. 3500.
Aufgabe 2: Binärdarstellung von Farbbildern
Geh analog vor, um den Speicherbedarf des folgenden Farbbildes zu bestimmen.
Um den Speicherbedarf grob abzuschätzen, kannst du auch wie folgt vorgehen: Ignoriere die Zusatzinformationen. Bestimme die Anzahl der Pixel. Überleg dir, wie viele Bits / Bytes zur Darstellung des jeweiligen Farbwertes benötigt werden. Schätze mit diesen Zahlenwerten den Speicherbedarf in Bytes ab. Zur Kontrolle: Die Anzahl der benutzten Bytes liegt bei ca. 175.