Über dieses Experiment
Male ein Bild, dessen kleinste Quadrate als Palettenindizes gespeichert werden. Ändere Auflösung und Farbtiefe, untersuche Binärcodes und vergleiche die Größe der unkomprimierten Nutzdaten mit einer einfachen Lauflängendarstellung. Exportiere das exakte Pixelraster als PNG, um den Unterschied zwischen Bildinformationen und einem tatsächlichen Dateiformat zu sehen.
Lernziele
- Ordne einem Bildpixel einen numerischen Palettenindex zu.
- Berechne den Rohdatenspeicherbedarf anhand der Abmessungen und der Bits pro Pixel.
- Teste, welche Anordnungen sich mit der Lauflängencodierung gut komprimieren lassen.
Anleitung
- 1Male ein Bild mit 8 × 8 Pixeln und lies die binären Palettencodes in den Pixeln ab.
- 2Ändere die Bits pro Pixel von drei auf eins. Vergleiche die verfügbaren Farben und den Rohdatenspeicherbedarf.
- 3Vergleichen Sie ein leeres Bild mit einem Bild mit vertikalen Streifen. Behalten Sie Abmessungen und Farbtiefe unverändert bei und erläutern Sie die Anzahl der Läufe.
- 4Vergleichen Sie Änderungen mit „Rückgängig“, notieren Sie die gemessenen Nutzdatenmengen und exportieren Sie eine PNG-Datei.
Das Modell
Annahmen
- Die Pixel werden zeilenweise von links nach rechts und dann von oben nach unten gelesen. Für jedes Pixel wird die ausgewählte feste Bitanzahl verwendet.
- Das RLE-Modell speichert jeden Lauf als Farbindex und Länge mit ceil(log2(pixel count + 1)) Bits. Läufe können Zeilengrenzen überschreiten.
- Palettentabellen, Abmessungen, Dateikopfzeilen und Auffüllbits sind von den Nutzdatenmengen ausgenommen. PNG verwendet ein anderes Komprimierungsverfahren, daher muss die Größe der heruntergeladenen Datei nicht diesen Mengen entsprechen.
Im Unterricht ausprobieren
- Q1Warum können zwei Bilder mit denselben Abmessungen unterschiedlich große RLE-Nutzdaten erfordern?
- Q2Warum vervierfacht sich der Speicherbedarf für Rohdaten, wenn sowohl die Breite als auch die Höhe verdoppelt wird?
Häufig gestellte Fragen
Macht RLE ein Bild immer kleiner?
Nein. Häufige Farbwechsel erzeugen viele Läufe und können mehr Bits benötigen als das Rohbild.
Warum ist die PNG-Datei größer oder kleiner als die angezeigte Nutzlast?
Die Datei enthält Header und verwendet PNG-Komprimierung, während dieses Experiment eine bewusst einfache Pixel- oder RLE-Nutzlast zählt.