====== Übungen zum PBM-Format ====== ((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 und decodiert 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 große Bit-Blöcke einzuteilen: in einem "4Bit-Datagramm" stellen jeweils 4 Bit eine Informationseinheit dar, in einem, 8Bit-Datagramm entspricht eine Informationseinheit jeweils einem Byte. ---- {{:aufgabe.png?nolink |}} === (A1) === Bitmap-Codierung {{ :faecher:informatik:oberstufe:codierung:bilder:uebungen:ueb01.png?280|}} * 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 [[..:swpbm:start|dieser Wiki-Seite]] orientieren. * Lasse anschließend deinen Sitznachbarn das Bild anhand von deinen Anweisungen (1. & 2. Teil) rekonstruieren! ---- {{:aufgabe.png?nolink |}} === (A2) === Wie viele verschiedene Grautöne kannst du in dem Bild unten erkennen? Bestimme die Anzahl. {{ :faecher:informatik:oberstufe:codierung:bilder:uebungen:ueb03.png?400 |}} 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 folgende 8-Bit-Datagramm für die Graustufendarstellung oben. Codiere dabei wie folgt: Zeilenanzahl, Spaltenanzahl, Nutzdaten: {{ :faecher:informatik:oberstufe:codierung:bilder:uebungen:ueb04.jpg?320 |}} Warum ist diese Codierung ineffizient? ---- {{:aufgabe.png?nolink |}} === (A3) Farbbild-Codierung === Codiere die folgenden Farbbilder: {{ :faecher:informatik:oberstufe:codierung:bilder:uebungen:ueb06a.png?600 |}} * 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.