Konzepte der Informatik Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 14.10.2016 Technische Universität Braunschweig, IPS
Inhaltsverzeichnis Bildcodierung Huffman scher Algorithmus Verlustbehaftete Komprimierung Video- / Filmcodierung Audiocodierung 14.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 2
Überblick Bildcodierung Huffman scher Algorithmus Verlustbehaftete Komprimierung Video- / Filmcodierung Audiocodierung 14.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 3
Bildcodierung Bei der Bildcodierung wird ein Raster über das zu übertragene Bild gelegt. Jeder Rasterpunkt, durch den eine Linie läuft, wird schwarz eingefärbt. Wie man sieht, erleidet das Bild dadurch allerdings einen Qualitätsverlust. Dieser ist allerdings nicht so gravierend wie hier, weil bei heutigen Faxgeräten pro Millimeter 8 Rasterpunkte gesetzt sind.
Bildcodierung Würde man jetzt die ersten vier Zeilen codieren, sähe das so aus: wwwwwwwwwwwwwwwwwwwwww wwwwwwwwwwwwwwwwwwwwww wwwwwwwwwwwsswwwwwwwww wwwwwwwwwwsssswwwwwwww Möglichkeit der Komprimierung: Da sich hierbei ständig nur lange, weiße Ketten mit kürzeren, schwarzen Ketten abwechseln, kann man einfach die Anzahl der weißen bzw. schwarzen Punkte zählen und die Ergebnisse abwechselnd aufschreiben. Das macht das ganze schon viel übersichtlicher. 55 2 19 4 8 Diese Darstellung nennt man Lauflängen, oder auf englisch run-length.
Bildcodierung Lauflängencodierung Bei der Lauflängencodierung werden nicht einzelne Bildpunkte gespeichert bzw. übermittelt, sondern die Anzahl gleicher Bildpunkte hintereinander. In manchen Bildverarbeitungsprogrammen bekommen Sie beim Speichern die Möglichkeit, RLC auszuwählen ( run-length-coding ). 14.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 6
Bildcodierung Eine Zahl zwischen 0 und 63 benötigt 6 Bit. Das Dokument hat insgesamt 159 Zahlen also bräuchten wir 954 Bit. Allerdings hätten wir nichts gespart: Hätten wir es gleich übertragen mit einer 0 für weiß und einer 1 für schwarz, hätte das nur 682 Bit benötigt. Wenden wir also das Verfahren, das wir für die Buchstaben genutzt haben, einmal auf die Zahlen an. 14.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 7
Bildcodierung Mit diesem Codebaum benötigt man für die Speicherung des Bildes nur 460 Bit, was eine Einsparung von etwa 1/3 ist. 14.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 8
Bildcodierung Codebaumerstellung Drehen wir den Codebaum um 90 im Uhrzeigersinn. Es fällt auf, dass der Codebaum nun wie ein Mobile aussieht. Demnach sind die leichtesten (wenig verwendeten) Teile unten und die schweren (häufig verwendeten) oben. Dies machen wir uns zu nutze um per Algorithmus den Computer die Codebäume erstellen zu lassen. 14.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 9
Überblick Bildcodierung Huffman scher Algorithmus Verlustbehaftete Komprimierung Video- / Filmcodierung Audiocodierung 14.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 10
Huffman scher Algorithmus Um einen Codebaum zu erstellen, fassen Sie die Zeichen mit den geringsten Häufigkeiten zusammen. Beide zusammen gelten nun als Superzeichen mit der entsprechenden Häufigkeitssumme. Dieses Verfahren nennt man den Huffman schen Algorithmus. 14.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 11
Huffman scher Algorithmus Anwendung 14.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 12
Huffman scher Algorithmus Anwendung 14.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 13
Huffman scher Algorithmus Anwendung
Huffman scher Algorithmus Möglicher Codebaum für das Bild, die Codierung (1/0) ist frei wählbar:
Huffman scher Algorithmus Dies ist eine der möglichen Lösungen für den Codebaum für das Alphabet.
Huffman scher Algorithmus Bitte beachten Sie, dass es mehrere Möglichkeiten gibt, einen Codebaum zu erstellen, weil immer wieder gleiche Häufigkeiten auftauchen. Der Huffman sche Algorithmus kann man auf Bilder, Musik oder Filme anwenden. Wie spart kann man bei diesen Dingen noch mehr Speicherplatz sparen? 14.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 17
Überblick Bildcodierung Huffman scher Algorithmus Verlustbehaftete Komprimierung Video- / Filmcodierung Audiocodierung 14.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 18
Verlustbehaftete Komprimierung Bei der verlustbehafteten Komprimierung wird eine Datenmenge reduziert, indem zwischen relevanten und irrelevanten Informationen unterschieden wird und lediglich die relevanten Informationen beibehalten werden. Diese Unterscheidung wird oft im Medienbereich anhand physiologischer Studien vorgenommen, nach denen bestimmte Informationsteile nicht oder nur von wenigen Menschen wahrgenommen werden können. 14.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 19
Verlustbehaftete Komprimierung Bilder Farbige Bilder lassen sich offenbar, wie beim Fax, gut mit einem Raster darstellen. Der Tiger besteht aus groben Bildpunkten, von jeweils einer Farbe. 14.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 20
Verlustbehaftete Komprimierung Bilder Aus der Nähe betrachtet sieht man nur einen Haufen farbiger Punkte. Allerdings je weiter man sich von dem Bild entfernt oder die Augen zusammenkneift, desto mehr denkt das Gehirn das Bild verbessern zu müssen. Aus unserer Erfahrung wissen wir, wie ein Tiger aussieht und es ergänzt einfach das Fehlende. Es ist zwar um einiges sparsamer, wenn man einfach ein grobkörniges Bild speichert oder überträgt. Allerdings sind solche Bilder nicht schön und niemand will ein Bild verschicken, bei dem man, um es zu erkennen, die Augen zusammenkneifen muss. 14.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 21
Verlustbehaftete Komprimierung Bilder Vergleichen Sie diese beiden Bilder. Was fällt ihnen auf? 14.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 22
Verlustbehaftete Komprimierung Bilder Eigentlich sehen beide Bilder ganz gut aus. Sowohl Konturen als auch die Farben sind völlig in Ordnung. Trotzdem ist das linke Bild im Gegensatz zu dem rechten Bild (Original) verändert. Besonders deutlich sieht man das in dem Bereich der Augen. Man erkennt, dass die Farben, die man als detailliert wahrgenommen hat, gar nicht detailliert sind. 14.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 23
Verlustbehaftete Komprimierung Bilder Die Konturen in dem Bild sind sehr fein dargestellt, die Farbe hingegen ist im gleichen groben Raster wie das erste Bild. Mit der Information, dass in einem normalen elektronisch gespeicherten Bild die Speicherung der Helligkeiten nur etwa 1/3 ausmacht und die Farben 2/3, lässt sich daraus eine sehr gute Einsparung ableiten. Das Auge erkennt also Farben nicht so detailliert wie Helligkeit. Hier mal ein kleiner Test diesbezüglich. 14.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 24
Verlustbehaftete Komprimierung Bilder Vergleichen Sie die beiden blauen Streifen und dann die beiden grünen. 14.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 25
Verlustbehaftete Komprimierung Bilder Die jeweils unteren Streifen bestehen nur aus Abstufungen der jeweiligen Farbe. Dies lässt sich bei dem grünen Streifen allerdings besser erkennen. Das zeigt, dass die Empfindlichkeit der Augen für die Farbe Grün deutlich höher ist als für die Farbe Blau. Daher braucht man für einen blauen Gegenstand wesentlich weniger Schattierungen der Farbe. Ein Bild vom Meer benötigt also weniger Speicherplatz als das einer grünen Wiese. 14.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 26
Verlustbehaftete Komprimierung Bilder Noch einmal zurück zum Tiger. Auch so ist der Tiger ziemlich gut zu erkennen. Man sieht nicht, das dieses Bild nur noch ca. 1% der Speichergröße des Ursprungsbildes hat. 14.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 27
Verlustbehaftete Komprimierung Bilder Klar wird das, wenn wir die zwei Komponenten, aus denen das Bild besteht, von einander trennen. Auf den ersten Blick sieht es so aus, als hätte man hier die grauen von den farbigen Elementen getrennt, doch eigentlich wurden hier die Bildkanten gesondert herausgezogen. Auch wenn diese nur sehr wenig Platz verbrauchen, verlässt sich unser Gehirn fast komplett auf sie, wenn es um das Erkennen von Bildern geht.
Überblick Bildcodierung Huffman scher Algorithmus Verlustbehaftete Komprimierung Video- / Filmcodierung Audiocodierung 14.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 29
Video- / Filmcodierung Ein Film besteht aus sehr vielen hinter einander gesendeten Bildern. Die einzelnen Bilder können anhand der vorgestellten Techniken komprimiert werden. Zusätzlich ist es möglich Bilder anhand der Differenz zu einem Referenz-Bild zu kodieren:
Video- / Filmcodierung Die zu codierenden Bilder werden in sog. Makroblöcke aufgeteilt (8x8 üblich), für die Bewegungsvorhersagen gestellt werden. Die Differenz zu diesen Vorhersagen wird dann gespeichert:
Video- / Filmcodierung Zusätzlich zu den bereits vorgestellten P-Frames, wurden in neueren Codecs sog. B-Frames eingeführt, die auf den vorhergegangenen I-Frames und den folgenden P-Frames basieren und dadurch noch mehr Daten sparen.
Überblick Bildcodierung Huffman scher Algorithmus Verlustbehaftete Komprimierung Video- / Filmcodierung Audiocodierung 14.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 33
Audiocodierung Pulse-Code Modulation (PCM) Analoge Eingangssignale werden X mal pro Sekunde abgetastet und in eine diskrete Domäne überführt. (X = 4 khz, 8 khz, 16 khz, 32 khz, 44 khz) Zweite wichtige Größe: Bit pro Sample (häufig 4 oder 16) Einsparungspotenzial: Differenzkodierung 14.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 34
Audiocodierung MPEG-1 Audio Layer 3 (MP3) Verbreitetes Verfahren zum speichern von Musik (verlustbehaftet) Perceptual coding - Geräusche die wir nicht hören können, oder die wir nur in Grober Auflösung hören können werden weggelassen bzw. ungenauer codiert Laute Töne überdecken leisere aber ähnliche Töne (können völlig entfernt werden)
Audiocodierung FLAC FLAC = Free Lossless Audio Codec Verfahren zur verlustfreien Audio-Komprimierung Ausgangsdaten sind 30 bis 50% kleiner als PCM Daten werden in Blöcken zusammengefasst (meist 4096 samples) und unabhängig codiert Stereo-Sound kann von L-R auf M-S (mid und side Kanal) umgerechnet werden (häufig sind die Unterschiede im side Kanal so gering, dass diese platzsparender Kodiert werden können) Pro Block wird eine Vorhersagefunktion ausgewählt und gespeichert Alle Werte, die nicht der Vorhersage entsprechen werden mit ihrer Differenz gespeichert (meistens ist die Differenz gering, so dass sie mit weniger Bits kodiert werden kann) 14.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 36
Danke Vielen Dank für Ihre Aufmerksamkeit! 14.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 37