Proseminar. Thema: Shannon-Fano und Huffman Verfahren
|
|
- Helmut Kurzmann
- vor 7 Jahren
- Abrufe
Transkript
1 Proseminar Datenkompression Thema: Shannon-Fano und Huffman Verfahren Gehalten am von Lars Donat
2 1. Huffman Code Bei diesem bereits 1951 von David A. Huffman veröffentlichtem Algorithmus handelt es sich um eines der bekanntesten und am weitesten verbreiteten Verfahren zur Datenkompression. Es basiert nicht auf Wiederholungen einzelner Zeichen, sondern auf der Häufigkeitsverteilung der Werte: In einem deutschen oder englischen Text werden zum Beispiel sehr viele Exemplare des Buchstaben»e«enthalten sein, wohingegen bei beiden Sprachen das»q«kaum verwendet wird. Es wäre also nahliegend für den Buchstaben»e«einen kürzeren Code zu verwenden als für das»q«. Diese Idee gab es bereits bei der Erfindung des Morse-Codes. Es kennt allerdings neben den bekannten Strichen und Punkten auch noch einen dritten Zustand, nämlich die Pause, welche die Buchstaben voneinander trennt. In der binären Computerschreibweise lässt sich das allerdings nicht ohne weiteres darstellen, vielmehr muss allein aus der Abfolge von Strichen und Punkten bzw. Nullen und Einsen erkennbar sein, wann ein Buchstabe»zu Ende«ist, und eben dieses Problem wurde von Huffman gelöst. Als Beispiel für einen zu mit Huffman zu kodierenden Nachricht nehmen das Wort: BETRIEBSSYSTEM Die Konstruktion eines Huffman-Kodes zu einer Nachricht betrachtet man am besten an der entsprechenden Konstruktion des Baumes, welcher der Kodierung entspricht. Weil eine binäre Kodierung der Nachricht erfolgen soll, entsteht ein binärer Baum. Die Konstruktion ist ein sogenanntes bottom-up-verfahren, das heißt, dass der zur Kodierung gehörende Baum aus den Blättern, die am Anfang gegeben sind, konstruiert wird. Um die Buchstaben ordentlich klassifizieren zu können, muss man sie zunächst einmal die Häufigkeit der einzelnen Zeichen in der Nachricht erfassen (hier der Häufigkeit nach sortiert): Im weiteren Verlauf baut man nun einen Binärbaum auf, indem man immer die beiden Blätter mit der kleinsten Häufigkeit zu einem Knoten zusammenfasst, wobei die Häufigkeitsangabe im Knoten der Summe der beiden Ursprungssymbole entspricht. Das sieht wie folgt aus: Hier wurden zwei (I; M) der vier Symbole mit nur einem Vorkommnis (I; M; R; Y) zu einem Knoten zusammengefaßt. Dieser Knoten erhält also die Häufigkeit 1+1=2. Dies geht nun weiter, bis nur noch ein Knoten übrig ist: Hier wurden die beiden übrigen 1x-Symbole zusammengefaßt. Wenn man die Liste an der Basis des Baumes von links nach rechts durchsucht, trifft man auf die Symbole B und T, die je zweimal vorkommen.
3 Die Situation hat sich verändert: Die beiden schon verknoteten Symbole (mit der Zwei als Häufigkeitswert) waren plötzlich die niedrigsten Zahlen in der Liste. Also werden sie an einen weiteren Knoten angehängt, der die Zahl 4 = 2+2 = (1+1)+(1+1) erhält. Die Symbole E und S sind wieder die niedrigsten Werte an der Basis gewesen, also wurden sie zusammengefaßt. Die beiden 4er-Knoten hatten den niedrigsten Wert, also wurden sie verknotet. Hat man den Baum konstruiert, so kann man leicht eine Kodierung der Zeichen finden, indem man alle Kanten des Baumes mit Zeichen des Kodealphabets {0, 1} benennt, dabei ist die Zuordnung beliebig.
4 Geht man nun vom Start zu einem bestimmten Buchstaben, so ergeben die Zahlen auf dem Weg dahin den Code für den jeweiligen Buchstaben. Das»B«würde man also als»100«lesen. Man kann jetzt also jeden im Wort vorkommenden Buchstaben durch solch einen Codierungsbaum codieren. Die häufig vorkommenden Buchstaben E und S haben dabei die kürzesten Codes, die Codes für die seltenen Buchstaben I, M, R und Y sind hingegen doppelt so lang. Einen häufigen Buchstaben hat man also viel kürzer codiert als einen, der sehr selten ist. Codiert man das Beispielwort nun mit dem obigen Baum, erhält man folgende Codes: B 100 E 00 T 101 R 1110 I 1100 E 00 B 100 S 01 S 01 Y 1111 S 01 T 101 E 00 M 1101 Der gesamte Text wird also zu dem Bitstrom: Das sind nur 40 Bit; für den Originaltext benötigte man hingegen 14 x 8 = 112 Bit. Das würde also bedeuten, dass der Text auf 35,71% seines Umfangs komprimiert wurde. (Informationsgehalt = 39,8) Dies ist der beste oder minimale Code. Die Eigenschaft, dass ein Kode minimal ist, lässt sich nach Shannon umformulieren in die Eigenschaft, dass die Durchschnittliche Kodewortlänge (x Zeichen des Alphabetes, p(x) Wahrscheinlichkeit, l(x) Länge des Kodes) dem durchschnittlichen Informationsgehalt oder Entropie der Nachricht
5 möglichst nahe kommt. Der Idealfall D=H, der die betrachtete Redundanz völlig auslöscht, lässt sich mit Huffman-Kodes zwar nur selten erreichen, weil die Länge der Kodes in Bit ganzzahlig sein muss, der Informationsgehalt gebrochen sein kann. Es gilt aber zumindest (am Beispiel: H=2, und D=2, ) Es lässt sich induktiv beweisen, dass es keine Möglichkeit gibt, einen Kode zu konstruieren, der eine kürzere Kodierung der Nachricht ergibt. Hierzu kann man sich auch überlegen, dass man, um einen Binärbaum aus n vorgegebenen Blättern zu konstruieren, n-1 mal zwei Knoten ohne Vorgänger zusammenfassen muss, wie es Huffman vorschreibt. Dabei werden bei jedem Zusammenfassen die Kodes der Zeichen aus den beiden Teilbäumen um 1 Bit verlängert, die Auswahl der Teilbäume mit den geringsten Häufigkeiten macht also durchaus Sinn. Die Dekompression erfolgt so, dass der Bitstrom Bit für Bit aus gelesen wird und mit Hilfe des ebenfalls gespeicherten Kodierungsbaumes die einzelnen Zeichen rekonstruiert werden können. Man könnte nun meinen, dass Huffmann das ideale Packverfahren ist. Doch der Schein trügt - das Huffman- Verfahren besticht zwar durch seine Einfachheit, hat aber einige gravierende Nachteile: Der notwendige Zugriff auf die Bitebene, falls die Nachricht auf Rechnern verarbeitet wird. Viele gebräuchliche Rechnerarchitekturen sind nur für den Zugriff auf Byte, Worte oder noch größere Einheiten spezialisiert. Der direkte Zugriff auf Bits ist oft nicht vorgesehen und muss aufwendig durch boolesche Operationen realisiert werden, indem man zum Beispiel UND-Verknüpfungen und Bitverschiebungen zum Ausmaskieren einzelner Stellen von Binärzahlen verwendet Der Baum muss mit in der Ausgabedatei gespeichert werden! Der Decoder braucht nicht nur die»wegbeschreibungen«, sondern auch die»wege«selbst, damit es funktionieren kann. Dadurch wird die Packrate besonders bei kleinen Dateien arg in Mitleidenschaft gezogen. Statt des Baumes kann man auch die Zeichenhäufigkeiten speichern, wenn Encoder und Decoder daraus eindeutig den selben Baum konstruieren können. Das Verfahren ist auf eine günstige Häufigkeitsverteilung der Eingabewerte angewiesen. Mit einer Datei, in der alle Zeichen etwa gleich oft vorkommen, kann Huffman nicht viel anfangen. Die gute Nachricht ist aber, dass die Methode nicht sonderlich dazu neigt, die Daten zu vergrößern. Durch die clevere Baum-Methode, die immer ideale Codes erstellt, passt sich der Coder meist ideal den Verhältnissen an und bricht seltener aus - und zwar weder ins Negative noch (leider) ins Positive. Die Quelldatei muss zweimal eingelesen werden: Einmal, um d ie Häufigkeiten der Zeichen auszuzählen und einen Baum zu bilden und ein zweites Mal für die eigentliche Codierung. Das schließt Huffmann zur Echtzeitcodierung von Live-Datenströmen schon einmal aus. (Zumindest dieses Problem kann aber gelöst werden, indem man Baum und Codes erst während der Kompression erstellt: Man startet zuerst mit einem neutralen Baum und passt ihn mit jedem codierten Byte besser an die Gegebenheiten der Eingangsdaten an. So erhält man früher oder später auch einen fast idealen Baum. (Fast ideal, weil gar nicht vorkommende Zeichen nicht ausgeschlossen werden können.) Dieses Verfahren heißt»dynamisches Huffman-Coding«und bietet zum hier vorgestellten statischen Huffman-Coding den Vorteil der Echtzeit-Fähigkeit. Allerdings geht das zu Lasten der Kompressionsrate, da sich der Coder erst nach und nach an die Daten»gewöhnen«muss und am Anfang daher noch gar nicht packen kann.) Diese Nachteile haben dafür gesorgt, dass sich Huffman als Packverfahren nicht richtig durchsetzen konnte. Trotzdem wird es in so gut wie jeder bekannten Pack-Software verwendet - und zwar als Postprozessor. (»post«=»nach«. Es ist also ein»nach-prozessor«; etwas, das einem anderen Verfahren nachgeschaltet wird.) Hierfür eignet sich zumindest das dynamische Huffman-Coding hervorragend, um noch das letzte Bisschen an Packrate aus den anderen Methoden herauszuholen. Besonders in Verbindung mit der Burrows-Wheeler-Transformation zeigt Huffman, wie effizient er mit entsprechend vorbereiteten Daten arbeiten kann. Für die anderen Verfahren, die Huffman als Postprozessor»missbrauchen«, gilt: Huffman packt meist schlecht, aber es vergrößert auch selten. Das Risiko ist gering, man kann fast nur gewinnen; ein Versuch lohnt also. Zudem können manchmal mit einem solchen Postprocessing Redundanzen 2. Ordnung beseitigt werden, die der eigentliche Coder allein gar nicht bemerken würde.
6 Anwendung von Huffman-Kodes: Im JPEG-Format (Joint Graphic Experts Group) für Bilddaten kommt neben einer diskreten Kosinustransformation (DCT) auch die Huffman-Kodierung zum Einsatz, um Bilder mit möglichst wenig Speicherverbrauch zu speichern. Im PNG-Format (Portable Network Graphic -Format) wird die Huffman-Kodierung eingesetzt, um Bilder ohne Verlust zu komprimieren. Im MP3-Format für Audiodaten kommt neben einigen anderen Verfahren die Huffman-Kodierung zum Einsatz, um schon verlustbehaftete Daten weiter ohne Verlust zu komprimieren (circa 20% Kompression möglich). Bei diesem Format ergänzen sich die Huffman-Kodierung und andere Verfahren derart, dass oft immer ein Verfahren eine gute Kompression leistet. Im MPEG-Format für Bilddaten ist neben verlustbehafteten Methoden die Huffman-Kodierung zur nachträglichen Reduktion der Daten eigesetzt. Die verbreiteten Komprimierungsprogramme bzip und bzip2 verwenden neben einem Burrows-Wheeler- Algorithmus ebenfalls die Huffman-Kodierung, um Daten beliebigen Typs ohne Verlust zu komprimieren.
7 2. Shannon-Fano Code Die Shannon-Fano-Codierung wurde bereits in den späten 40ern entwickelt. Sie basiert, auf statistischen Annahmen über die zu komprimierenden Daten. Häufige Symbole sollen durch kurze, und seltene Symbole durch lange Bitfolgen kodiert werden. Dabei können seltene Symbole durch Bitfolgen kodiert werden, die länger sind als die ursprünglichen Symbole. Das Verfahren funktioniert wie folgt. Aus einem Datenstrom wird für jedes Symbol in einer Tabelle die Anzahl (Häufigkeit) seines Auftretens gespeichert. Die Summe über alle Tabelleneinträge ergibt dann logischerweise die Gesamtgröße des Datenstroms. Die Tabelle wird nun so sortiert, das die häufigsten Symbole am Anfang, und die seltensten Symbole am Ende stehen. Die Erstellung des Bitcodes für jedes Zeichen erfolgt folgendermaßen. Als erstes wird die Tabelle so geteilt, das die Su mme der Anzahl der Symbole in beiden Teilen, ungefähr gleich ist. Jetzt wird dem oberen Teil als erste Bitcodestelle eine 1, und dem unteren eine 0 zugewiesen. Dieser Vorgang wird jetzt rekursiv für beide Teile solange wiederholt, bis in jedem Teil nur jeweils ein Symbol liegt. Die n-te Bitcodestelle entsteht also beim n-ten Rekursionsaufruf. Bsp: Betriebssystem Symbol Häufigkeit Bitcode E 3 0 S 3 0 B 2 0 T 2 1 I 1 1 M 1 1 R 1 1 Y 1 1 Symbol Häufigkeit Bitcode E 3 00 S 3 01 B 2 01 T 2 10 I 1 10 M 1 11 R 1 11 Y 1 11 Symbol Häufigkeit Bitcode E 3 00 S B T I M R 1 111
8 Y Symbol Häufigkeit Bitcode E 3 00 S B T I M R Y Die Kompression erfolgt nun dadurch, dass in der komprimierten Datei die Häufigkeitstabelle abgespeichert wird, und dann die Daten entsprechend der ermittelten Bitcodes zusammengefasst werden. Dabei ist darauf zu achten, dass die Tabelle möglichst klein und kompakt gehalten wird, da sie als sogenannter Overhead nur Organisationsdaten zur Dekompression enthält. Das Wort Betriebssystem in kodierter Form als Bitstrom: Das sind nur 41 Bit; für den Originaltext benötigte man hingegen 14 x 8 = 112 Bit. Das würde also bedeuten, dass der Text auf 36,6% seines Umfangs komprimiert wurde. (Informationsgehalt = 39,8) Bei einer durchschnittlichen Kodewortlänge von D=2, , welche doch schon etwas größer ist als bei Huffman, kann man erkennen dass das Verfahren nicht ganz so gut ist. Die Dekompression erfolgt so, dass aus der gespeicherten Tabelle wieder die Bitcodes gebildet werden und aus den nachfolgend eingelesenen Bitcodes die entsprechenden Symbole ermittelt und gespeichert werden. Der Shannon-Fano Code hat die gleichen Nachteile wie der Huffman Code: Der notwendige Zugriff auf die Bitebene ist bei viele gebräuchlichen Rechnerarchitekturen oft nicht vorgesehen und mu ss aufwendig durch boolesche Operationen realisiert werden Kodierungstabelle muss mit gespeichert werden, was sich nachteilig auf die Packrate auswirkt besonders bei kleinen Dateien Das Verfahren ist auf eine günstige Verteilung der Eingabewerte angewiesen. Bei einer Gleichverteilung alles Zeichen ist die Packrate gleich 0. Quelldatei muss 2 mal ausgelesen werden, daher ist es auch nicht zur Echtzeitkodierung geeignet
9 Literaturverzeichnis: M. T. Goodrich, R. Tamassia: Data Structures and Algorithms in Java, John Wiley & Sons, Inc., 1998 D. Salomon: Data Compression, Springer, New York u. a., 1998 R. Sedgewick: Algorithmen, Addison-Wesley, Bonn 1991 Klug, Tobias, Huffmann-Codierung, frankfurt.de/schule/fdg/referate/info/huffmann.htm Kupfer, Matthias, Die Shannon-Fano Kodierung,
Proseminar WS 2002/2003
Technische Universität Chemnitz Fakultät für Informatik Professur Theoretische Informatik Proseminar WS 2002/2003 Thema: Datenkompression Dynamisches / Adaptives Huffman-Verfahren Danny Grobe Rainer Kuhn
MehrDatenkompression. 1 Allgemeines. 2 Verlustlose Kompression. Holger Rauhut
Datenkompression Holger Rauhut 1. September 2010 Skript für die Schülerwoche 2010, 8.-11.9.2010 Hausdorff Center for Mathematics, Bonn 1 Allgemeines Datenkompression hat zum Ziel, Daten in digitaler Form,
MehrDynamisches Huffman-Verfahren
Dynamisches Huffman-Verfahren - Adaptive Huffman Coding - von Michael Brückner 1. Einleitung 2. Der Huffman-Algorithmus 3. Übergang zu einem dynamischen Verfahren 4. Der FGK-Algorithmus 5. Überblick über
MehrInformatik II, SS 2016
Informatik II - SS 2016 (Algorithmen & Datenstrukturen) Vorlesung 22 (20.7.2016) Greedy Algorithmen - Datenkompression Algorithmen und Komplexität Greedy Algorithmen Greedy Algorithmen sind eine Algorithmenmethode,
MehrKapitel 7: Optimalcodierung und Huffman Coding
Kapitel 7: codierung und Huffman Coding Ziele des Kapitels Auftreten von Fehlern bei zu starker Kompression Konstruktion optimaler Codes Huffman Coding 2 Bisher Theorem (Shannon I): Die mittlere Codewortlänge
MehrHuffman-Kodierung. Fachbereich Medieninformatik. Hochschule Harz. Huffman-Kodierung. Referat. Henner Wöhler. Abgabe:
Fachbereich Medieninformatik Hochschule Harz Huffman-Kodierung Referat Henner Wöhler 11459 Abgabe: 15.01.2007 Inhaltsverzeichnis Einleitung...I 1. Entropiekodierung...1 1.1 Morse Code...2 1.2 Shannon-Fano-Kodierung...3
MehrAlgorithmen und Datenstrukturen (für ET/IT) Programm heute. Wintersemester 2012/13. Dr. Tobias Lasser. 7 Fortgeschrittene Datenstrukturen
Algorithmen und Datenstrukturen (für ET/IT) Wintersemester 202/3 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Programm heute 7 Fortgeschrittene Datenstrukturen 8 Such-Algorithmen
MehrDatenstrukturen und Algorithmen. Christian Sohler FG Algorithmen & Komplexität
Datenstrukturen und Algorithmen Christian Sohler FG Algorithmen & Komplexität Gierige Algorithmen: Berechne Lösung schrittweise In jedem Schritt mache lokal optimale Wahl Daumenregel: Wenn optimale Lösung
MehrInformatik II, SS 2018
Informatik II - SS 28 (Algorithmen & Datenstrukturen) Vorlesung 22 (6.7.28) Greedy Algorithmen II (Datenkompression) Algorithmen und Komplexität Datenkompression Reduziert Größen von Files Viele Verfahren
MehrEinleitung. Kapitel 1
Kapitel 1 Einleitung In diesem Abschnitt geben wir einen kurzen Überblick über den Inhalt der Vorlesung. Wir werden kurz die wesentlichen Probleme erläutern, die wir ansprechen wollen. Wir werden auch
MehrEinführung in die Informatik II Aus der Informationstheorie: Datenkompression
Einführung in die Informatik II Aus der Informationstheorie: Datenkompression Prof. Bernd Brügge, Ph.D Institut für Informatik Technische Universität München Sommersemester 2 2. Juli 2 Copyright 2 Bernd
MehrMolekulare Bioinformatik
Molekulare Bioinformatik Wintersemester 203/204 Prof. Thomas Martinetz Institut für Neuro- und Bioinformatik Universität zu Luebeck 07.0.204 Molekulare Bioinformatik - Vorlesung 0 Wiederhohlung Die Entropie
Mehr16 - Kompressionsverfahren für Texte
16 - Kompressionsverfahren für Texte Prof. Dr. S. Albers Kompressionsverfahren für Texte Verlustfreie Kompression Original kann perfekt rekonstruiert werden Beispiele: Huffman Code, Lauflängencodierung,
MehrKompressionsverfahren für Texte
Kompressionsverfahren für Texte Prof. Dr. S. Albers Prof. Dr. Th. Ottmann 1 Zeichenkettenverarbeitung Suche in Texten, Textindizes Mustererkennung (Pattern-Matching) Verschlüsseln Komprimiern Analysieren
MehrGierige Algorithmen Interval Scheduling
Gierige Algorithmen Interval Scheduling IntervalScheduling(s,f). n length[s] 2. A {} 3. j 4. for i 2 to n do 5. if s[i] f[j] then 6. A A {i} 7. j i 8. return A Gierige Algorithmen Interval Scheduling Beweisidee:
MehrDigitale Medien. Übung
Digitale Medien Übung Übungsbetrieb Informationen zu den Übungen: http://www.medien.ifi.lmu.de/dm Zwei Stunden pro Woche Praktische Anwendungen des theoretischen Vorlesungsstoffs Wichtige Voraussetzung
MehrAlgorithmen und Datenstrukturen (für ET/IT)
Algorithmen und Datenstrukturen (für ET/IT) Wintersemester 2012/13 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Informationen zur Klausur Termin: 21. Februar 2013,
Mehr2.7 Der Shannon-Fano-Elias Code
2.7 Der Shannon-Fano-Elias Code Die Huffman-Codierung ist ein asymptotisch optimales Verfahren. Wir haben auch gesehen, dass sich die Huffman-Codierung gut berechnen und dann auch gut decodieren lassen.
MehrKap.4 JPEG: Bildkompression. Ziel: Gegeben sind Daten y R N. Bestimme C R N N mit C C T = I, so dass x = C y dünbesetzt ist.
Kap.4 JPEG: Bildkompression Ziel: Gegeben sind Daten y R N. Bestimme C R N N mit C C T = I, so dass x = C y dünbesetzt ist. Originalbild y (30Kbt) Komprimiertes Bild z y(7kbt) JPEG (Joint Photographic
MehrImage Compression. Kompression. Beseitigung der unnötigen Daten... Redundanz. Vorlesung FH-Hagenberg SEM. Backfrieder-Hagenberg. Backfrieder-Hagenberg
Image Compression Vorlesung FH-Hagenberg SEM Kompression Encoder Decoder Beseitigung der unnötigen Daten... Redundanz 1 Inhalte Redundanz Error-Free Compression Hufmann Coding Runlength Coding Lossy Compression
MehrAlgorithmen und Datenstrukturen (für ET/IT)
Algorithmen und Datenstrukturen (für ET/IT) Wintersemester 2012/13 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Informationen zur Klausur Termin: 21. Februar 2013,
MehrImage Compression. Kompression. Beseitigung der unnötigen Daten... Redundanz. Vorlesung FH-Hagenberg SEM. Backfrieder-Hagenberg. Backfrieder-Hagenberg
Image Compression Vorlesung FH-Hagenberg SEM Kompression Encoder Decoder Beseitigung der unnötigen Daten... Redundanz 1 Inhalte Redundanz Channel Encoding Error-Free Compression Hufmann Coding Runlength
MehrBeispiel: Zeigen Sie, dass H(x) = H 0 = I gilt, wenn alle Zeichen gleichwahrscheinlich sind.
1 2 Im ersten Schritt werden wir uns mit dem Begriff und der Definition der Information beschäftigen. Ferner werden die notwendigen math. Grundlagen zur Quellencodierung gelegt. Behandelt werden Huffman,
MehrAufgabe: Platz-effiziente Kompression von Textdaten
7.3 Huffman-Bäume Anwendung von Binärbäumen Aufgabe: Platz-effiziente Kompression von Textdaten Standardcodierungen von Textdaten ISO-8859-1: 8 Bit pro Zeichen UTF-16: 16 Bit pro Zeichen Codierungen mit
MehrEffiziente Algorithmen und Komplexitätstheorie
Fakultät für Informatik Lehrstuhl 2 Vorlesung Effiziente Algorithmen und Komplexitätstheorie Sommersemester 2008 Ingo Wegener; Vertretung: Carsten Witt 7. Juli 2008 Vorlesung am 14.07. (nächste Woche):
Mehr3 Codierung diskreter Quellen. Quelle Quellcodierer Kanalcodierer reduziert die benötigte Datenmenge. fügt Daten zur Fehlerkorrektur ein.
3 Codierung diskreter Quellen 3 Einführung 32 Ungleichmäßige Codierung 33 Präfix-Codes 34 Grenzen der Code-Effizienz 35 Optimal-Codierung 3 Zusammenfassung < 24 / 228 > 3 Codierung diskreter Quellen Quelle
MehrArithmetisches Codieren
Arithmetisches Codieren 1. Motivation: Als Alternative zum arithmetischen Codieren bot sich damals als effizientester Algorithmus das Huffmann-Coding an. Dieses jedoch hatte einen entscheidenden Nachteil:
MehrAlgorithmen und Datenstrukturen (für ET/IT)
Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 206 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Organisatorisches Weiterer Ablauf: heute und Donnerstag,
MehrImage Compression. Vorlesung FH-Hagenberg DSB
Image Compression Vorlesung FH-Hagenberg DSB Kompression Encoder Decoder Beseitigung der unnötigen Daten... Redundanz Inhalte Redundanz Loss-less Compression Hufmann Coding Runlength Coding Lossy Compression
MehrDigitale Medien. Übung
Digitale Medien Übung Übungsbetrieb Informationen zu den Übungen: http://www.medien.ifi.lmu.de/dm http://www.die-informatiker.net Zwei Stunden pro Woche Praktische Anwendungen des theoretischen Vorlesungsstoffs
Mehr3. Woche Information, Entropie. 3. Woche: Information, Entropie 45/ 238
3 Woche Information, Entropie 3 Woche: Information, Entropie 45/ 238 Informationsgehalt einer Nachricht Intuitiv: Je kleiner die Quellws, desto wichtiger oder strukturierter die Information, bzw höher
MehrProseminar Kodierverfahren bei Dr. Ulrich Tamm Sommersemester 2003 Thema: Codierung von Bäumen (Prüfer Codes...)
Proseminar Kodierverfahren bei Dr. Ulrich Tamm Sommersemester 2003 Thema: Codierung von Bäumen (Prüfer Codes...) Inhalt: Einleitung, Begriffe Baumtypen und deren Kodierung Binäre Bäume Mehrwegbäume Prüfer
MehrKompression. Kompression. Beseitigung der unnötigen Daten... Redundanz. Folie 2
Kompression Kompression Encoder Decoder Beseitigung der unnötigen Daten... Redundanz Folie 2 1 Inhalte Redundanz Channel Encoding Loss-less Compression Hufmann Coding Runlength Coding Lossy Compression
MehrRLE Arithm. Shannon Fano Huffman Grenzen. Komprimierung. Ingo Blechschmidt, Michael Hartmann. 6. Dezember 2006
RLE Arithm. Shannon Fano Huffman Grenzen Ingo Blechschmidt, Michael Hartmann 6. Dezember 2006 RLE Arithm. Shannon Fano Huffman Grenzen Inhalt 1 Lauflängenkodierung 2 Arithmetische Kodierung 3 Shannon Fano-Kodierung
MehrAlgorithmus zur komprimierten Übertragung von Textdaten an mobile Endgeräte
Fachhochschule Wedel Seminararbeit Algorithmus zur komprimierten Übertragung von Textdaten an mobile Endgeräte Sven Reinck 7. Januar 2007 Inhaltsverzeichnis Inhaltsverzeichnis Motivation 2 Wörterbuch 2.
MehrSeminar. Codierungstheorie
Seminar Codierungstheorie Lempel-Ziv-Verfahren Informatik Sommersemester 25 Tim Schweisgut, Juni 25 Inhalt INHALT... 2 WÖRTERBUCHMETHODEN... 3 Statische Wörterbuchmethoden... 3 Beispiel:... 3 Bemerkung:...
MehrPraktikum BKSPP: Blatt 2
Praktikum BKSPP: Blatt 2 PD Dr. David Sabel WS 2014/15 Zeichenbasierte Komprimierung Stringersatzverfahren Codebäume Huffman-Kodierung Zeichenbasierte Komprimierung mit Codebäumen Idee: Kodiere jedes Zeichen
MehrÜbung zur Vorlesung. Vorlesung: Heinrich Hußmann Übung: Renate Häuslschmid, Hanna Schneider
Übung zur Vorlesung Digitale Medien Vorlesung: Heinrich Hußmann Übung: Renate Häuslschmid, Hanna Schneider Wintersemester 2016/17 Bilder 20 x 14 Pixel (= Bildpunkte) 16 Bit Farben (= 65.536 Farben) 560
MehrDie Digitalisierung von Musik
Die Digitalisierung von Musik 1 Analoges Speichern Speicherung von Musik auf einer LP Die Daten sind analog gespeichert Analysis 2 Digitale Datenerfassung 1.Sampling Das (akustische) elektrische Signal
MehrInformatik II, SS 2018
Informatik II - SS 2018 (Algorithmen & Datenstrukturen) Vorlesung 21 (11.7.2018) String Matching (Textsuche) II Greedy Algorithmen I Algorithmen und Komplexität Textsuche / String Matching Gegeben: Zwei
MehrÜbersicht. Aktivitäten-Auswahl-Problem. Greedy Algorithmen. Aktivitäten-Auswahl-Problem. Aktivitäten-Auswahl-Problem. Datenstrukturen & Algorithmen
Datenstrukturen & Algorithmen Übersicht Greedy Algorithmen Einführung Aktivitäten-Auswahl-Problem Huffman Codierung Matthias Zwicker Universität Bern Frühling 2009 2 Greedy Algorithmen Entwurfsstrategie
MehrÜbungsblatt 5 - Musterlösung
Universität Mannheim Lehrstuhl für Praktische Informatik IV Prof. Dr. W. Effelsberg Christoph Kuhmünch, Gerald Kühne Praktische Informatik II SS 2000 Übungsblatt 5 - Musterlösung Aufgabe 1: Huffman-Codierung
MehrInformationsgehalt einer Nachricht
Informationsgehalt einer Nachricht Betrachten folgendes Spiel Gegeben: Quelle Q mit unbekannten Symbolen {a 1, a 2 } und p 1 = 0.9, p 2 = 0.1. Zwei Spieler erhalten rundenweise je ein Symbol. Gewinner
MehrTechnische Informatik - Eine Einführung
Martin-Luther-Universität Halle-Wittenberg Fachbereich Mathematik und Informatik Lehrstuhl für Technische Informatik Prof. P. Molitor Technische Informatik - Eine Einführung Darstellung von Zeichen und
MehrDefinition Information I(p)
Definition Information I(p) Definition I(p) Die Information I(p) eines Symbols mit Quellws p > 0 ist definiert als I(p) = log 1 p. Die Einheit der Information bezeichnet man als Bit. DiMa II - Vorlesung
MehrKompression. Tim Kilian
Kompression Tim Kilian Seminar Effiziente Programmierung Arbeitsbereich Wissenschaftliches Rechnen Fachbereich Informatik Fakultät für Mathematik, Informatik und Naturwissenschaften Universität Hamburg
MehrReferat zum Thema Huffman-Codes
Referat zum Thema Huffman-Codes Darko Ostricki Yüksel Kahraman 05.02.2004 1 Huffman-Codes Huffman-Codes ( David A. Huffman, 1951) sind Präfix-Codes und das beste - optimale - Verfahren für die Codierung
MehrKapitel 9: Informationstheorie. 2. Entropie
ZHAW, NT, FS2008, Rumc, Kapitel 9: 2-1 Kapitel 9: Informationstheorie 2. Entropie Inhaltsverzeichnis 2.1. INFORATIONSQUELLEN...2 2.2. INFORATIONSGEHALT...3 2.3. INIALE ANZAHL BINÄRE FRAGEN...5 2.4. ENTROPIE
Mehr21. Greedy Algorithmen. Aktivitätenauswahl, Fractional Knapsack Problem, Huffman Coding Cormen et al, Kap. 16.1, 16.3
581 21. Greedy Algorithmen Aktivitätenauswahl, Fractional Knapsack Problem, Huffman Coding Cormen et al, Kap. 16.1, 16.3 Aktivitäten Auswahl 582 Koordination von Aktivitäten, die gemeinsame Resource exklusiv
MehrBäume 1. Thomas Röfer
Bäume Thomas Röfer Preisverleihung Begriffsdefinitionen Eigenschaften Implementierung von Bäumen Durchlaufen von Bäumen Breitensuche/Tiefensuche Huffman-Kodierung Rückblick Sortieren Permutieren nach Dijkstra
MehrDefinition Information I(p)
Definition Information I(p) Definition I(p) Die Information I(p) eines Symbols mit Quellws p > 0 beträgt I(p) = log 1 p. Die Einheit der Information bezeichnet man als Bit. DiMa II - Vorlesung 03-05.05.2009
MehrHauptdiplomklausur Informatik Februar 2006: Multimedia Systems
Universität Mannheim Fakultät für Mathematik und Informatik Lehrstuhl für Praktische Informatik IV Prof. Dr.-Ing. W. Effelsberg Hauptdiplomklausur Informatik Februar 2006: Multimedia Systems Name: Matrikel-Nr.:
Mehr1 Grundlagen. 1.1 Erste Grundbegriffe 1.2 Kryptographische Systeme 1.3 Informationstheoretische Grundlagen
1 Grundlagen 1.1 Erste Grundbegriffe 1.2 Kryptographische Systeme 1.3 Informationstheoretische Grundlagen Die Überlegungen dieses Kapitels basieren auf der Informationstheorie von Shannon. Er beschäftigte
MehrPanorama der Mathematik und Informatik
Panorama der Mathematik und Informatik 20: Algorithmen III: png und Co Dirk Frettlöh Technische Fakultät / Richtig Einsteigen 26.6.2014 Kompressionsalgorithmen: Idee: Speichere 2 MB Daten in einer 1 MB
MehrTextkompression. Komprimierung von Daten. Runlength Komprimierung (2) Runlength Komprimierung (1) Herkömmliche Kodierung. Runlength Komprimierung (3)
Komprimierung von Daten Textkompression Effiziente Algorithmen VU 2.0 WS 2008/09 Bin Hu Ziel: Platz und Zeit sparen Kompression durch - Effiziente Kodierung - Verminderung der Redundanzen (verlustfrei)
Mehr6. Komprimierung. (Text)komprimierung ist ein Wechsel der Repräsentation von Daten, so daß sie weniger
Komprimierung 6. Komprimierung (Text)komprimierung ist ein Wechsel der Repräsentation von Daten, so daß sie weniger Platz brauchen Motivation: beschleunigt Plattenzugriffe oder Datenübertragungen Voraussetzung:
MehrKolmogoroffkomplexität Teil 3 Informationstheorie und Kodierung. Torsten Steinbrecher
Kolmogoroffkompleität Teil 3 Informationstheorie und Kodierung Torsten Steinbrecher Informationstheorie Information ist Δ Wahlfreiheit beim Sender Δ Unbestimmtheit beim Empfänger Information ist nicht
MehrFreiwillige Übung zum Thema: Adaptive Huffman-Kodierung
Freiwillige Übung zum Thema: Adaptive Huffman-Kodierung Hintergrund-Info: Adaptive Verfahren (Quelle: Uni Karlsruhe) Die einfache Huffman-Kodierung verwendete für die Konstruktion der Kodes die Häufigkeiten
MehrOptimalcodierung. Thema: Optimalcodierung. Ziele
Optimalcodierung Ziele Diese rechnerischen und experimentellen Übungen dienen der Vertiefung der Kenntnisse im Bereich der Optimalcodierung, mit der die Zeichen diskreter Quellen codiert werden können.
MehrSeminar Kompressionsalgorithmen Huffman-Codierung, arithmetische Codierung
Huffman-Codierung, arithmetische Codierung Theoretische Informatik RWTH-Aachen 4. April 2012 Übersicht 1 Einführung 2 3 4 5 6 Einführung Datenkompression Disziplin,die Kompressionsalgorithmen entwirft
MehrVorlesung 15a. Quellencodieren und Entropie
Vorlesung 15a Quellencodieren und Entropie 1 1. Volle Binärbäume als gerichtete Graphen und die gewöhnliche Irrfahrt von der Wurzel zu den Blättern 2 3 ein (nicht voller) Binärbaum Merkmale eines Binärbaumes:
MehrStrings. Stringsuche, Boyer-Moore, Textkompression, Huffman Codes.
Strings Stringsuche, Boyer-Moore, Textkompression, Huffman Codes. Suche Substring Häufiges Problem Relevante Beispiele: Suche ein Schlagwort in einem Buch Alphabet: A-Za-z0-9 Suche Virussignatur auf der
MehrKompression.pdf h. völz /17
Kompression.pdf h. völz 23.5.02 1/17 Lauflängen-Codierung CCCCCCAABBBBAAAAEE _ 6C2A4B4A2E Pixel- und Zähl-Byte unterscheiden Pointer-Verfahren ABRABRIKADABRA Ab 4. Buchstaben ABR _ Verweis . total
MehrAlgorithmen und Datenstrukturen (für ET/IT)
Algorithmen und Datenstrukturen (für ET/IT) Wintersemester 2012/13 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Programm 11 Datenkompression Einführung Grundlagen
MehrInformationstheorie und Codierung
Informationstheorie und Codierung 3. Codierung diskreter Quellen Gleichmäßiger Code Ungleichmäßiger Code Fano-, Huffman-Codierung Optimalcodierung von Markoff-Quellen Lauflängencodes nach Golomb und Rice
MehrLösungsvorschlag 3. Übung Technische Grundlagen der Informatik II Sommersemester 2009
Fachgebiet Rechnerarchitektur Fachbereich Informatik Lösungsvorschlag 3. Übung Technische Grundlagen der Informatik II Sommersemester 2009 Aufgabe 3.1: Codierungen a) Vervollständigen Sie folge Tabelle,
MehrDie Burrows-Wheeler-Transformation
Die Burrows-Wheeler-Transformation Martin Knapp Proseminar Datenkompression 11. Dezember 2002 Inhaltsverzeichnis 1. Einleitung 3 2. Funktionsweise 4 2.1 Grundlagen.........................................................
MehrRun Length Coding und Variable Length Coding
Fachbereich Medieninformatik Hochschule Harz Run Length Coding und Variable Length Coding Referat Matthias Zittlau 11034 Abgabe: 15.01.2007 Inhaltsverzeichnis 1. RLC...1 2.1 Einführung...1 2.2 Prinzip...1
MehrTextkompression: Burrows-Wheeler-Transformation
Proseminar Algorithmen der Bioinformatik WS 2010/11 Textkompression: Burrows-Wheeler-Transformation Johann Hawe Johann Hawe, WS 2010/11 1 Gliederung 1. Einleitung 2. BWT Kompressionstransformation 2.1
MehrFarb-Fernsehsignal (Composite FBAS)
Farb-Fernsehsignal (Composite FBAS) Quelle: Ze-Nian Li : Script Multimedia Systems, Simon Fraser University, Canada VIDEO- Digitalisierung Gemeinsame Kodierung FBAS Farbbild- Austast- und Synchronsignal
MehrTheoretische Grundlagen der Informatik. Vorlesung am 31. Januar INSTITUT FÜR THEORETISCHE INFORMATIK
Theoretische Grundlagen der Informatik 3..29 Torsten Ueckerdt - Theoretische Grundlagen der Informatik KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Thema dieses Kapitels Informationstheorie
Mehr2. Woche Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung
2 Woche Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung 2 Woche: Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung 24/ 44 Zwei Beispiele a 0
MehrZahlensysteme und Kodes. Prof. Metzler
Zahlensysteme und Kodes 1 Zahlensysteme und Kodes Alle üblichen Zahlensysteme sind sogenannte Stellenwert-Systeme, bei denen jede Stelle innerhalb einer Zahl ein besonderer Vervielfachungsfaktor in Form
Mehr4.4 Anwendungen von Suffixbäumen und Suffix-Arrays
4.4 Anwendungen von Suffixbäumen und Suffix-Arrays exakte Suche in unveränderlichen Texten (schon besprochen) inexakte Suche in unveränderlichen Texten Finden von Regelmäßigkeiten (z.b. längste Wiederholungen)
MehrEigenschaften von Kompressionsverfahren
6 Textkompression Eigenschaften von Kompressionsverfahren Das Ziel der Datenkompression ist es, eine gegebene Information (Datenquelle) auf eine kompaktere Weise zu repräsentieren. Dies geschieht, indem
MehrProblem: Finde für Alphabet mit n Zeichen einen Binärcode, der die Gesamtlänge eines Textes (über diesem Alphabet) minimiert.
Anwendungen von Bäumen 4.3.2 Huffman Code Problem: Finde für Alphabet mit n Zeichen einen Binärcode, der die Gesamtlänge eines Textes (über diesem Alphabet) minimiert. => nutzbar für Kompression Code fester
MehrÜbrigens: um den Algorithmus im Unterricht einzuführen, sind keine Formeln notwendig! Warum reicht die normale ASCII-Codierung nicht aus?
Huffman-Code Dieser Text ist als Hintergrundinformation ausschliesslich für die Lehrperson gedacht. Der Text ist deshalb eher technisch gehalten. Er lehnt sich an das entsprechende Kapitel in "Turing Omnibus"
MehrJPEG Kompression technische Realisierung
Experimentalphysik V 20. Januar 2005 Schema der JPEG Kompression Farbraumkonvertierung RGB YCbCr Subsampling der Farbkomponenten Cb, Cr Zerlegung in Blöcke 8 8 2D Kosinustransformation (DCT) Quantisierung
MehrDiskrete Mathematik II
Diskrete Mathematik II Alexander May Fakultät für Mathematik Ruhr-Universität Bochum Sommersemester 2008 DiMA II - Vorlesung 01-07.04.2008 Einführung in die Codierungstheorie, Definition Codes 1 / 36 Organisatorisches
Mehr(Prüfungs-)Aufgaben zur Codierungstheorie
(Prüfungs-)Aufgaben zur Codierungstheorie 1) Gegeben sei die folgende CCITT2-Codierung der Dezimalziffern: Dezimal CCITT2 0 0 1 1 0 1 1 1 1 1 0 1 2 1 1 0 0 1 3 1 0 0 0 0 4 0 1 0 1 0 5 0 0 0 0 1 6 1 0 1
MehrDatenkompression. Theorie
Datenkompression Theorie Einleitung Übersicht Wie lassen sich beliebige Daten verdichtet (komprimiert) darstellen? verlustfreie Kompression: Programme Texte verlustbehaftete Kompression: Audio Video Kompressionsfaktor:
MehrKapitel 2 Quellencodierung
Kapitel 2 Quellencodierung Prof. Dr. Dirk W. Hoffmann Hochschule Karlsruhe w University of Applied Sciences w Fakultät für Informatik Übersicht Quelle Senke Kompression Huffman-, Arithmetische-, Lempel-Ziv
Mehr21. Dynamic Programming III
Approximation 21. Dynamic Programming III FPTAS [Ottman/Widmayer, Kap. 7.2, 7.3, Cormen et al, Kap. 15,35.5] Sei ein ε (, 1) gegeben. Sei I eine bestmögliche Auswahl. Suchen eine gültige Auswahl I mit
MehrEffiziente Algorithmen und Komplexitätstheorie
1 Effiziente lgorithmen und Komplexitätstheorie Vorlesung Thomas Jansen 29.06.2006 2 Burrows-Wheeler-Kompression: Verbesserungen dreischrittiges Kompressionsverfahren Burrows- Wheeler- Transformation Globale
Mehr1. Woche Einführung in die Codierungstheorie, Definition Codes, Präfixcode, kompakte Codes
1 Woche Einführung in die Codierungstheorie, Definition Codes, Präfixcode, kompakte Codes 1 Woche: Einführung in die Codierungstheorie, Definition Codes, Präfixcode, kompakte Codes 5/ 44 Unser Modell Shannon
MehrWie muss der Eingabetext beschaffen sein, damit er sich gut komprimieren lässt?
Lernaufgabe 1a Beim Kofferpacken können wir durch Druck die Luft herauslassen und bringen somit mehr Kleidungsstücke in den Koffer. Im Unterricht haben wir vom Huffman-Code gehört und wissen, dass er nach
MehrGrundlagen der Informationstheorie. Hanna Rademaker und Fynn Feldpausch
Grundlagen der Informationstheorie Hanna Rademaker und Fynn Feldpausch . Thema Informationstheorie geht zurück auf Claude Shannon The Mathematical Theory of Communication beschäftigt sich mit Information
MehrEinführung in die Informatik I
Einführung in die Informatik I Das Rechnen in Zahlensystemen zur Basis b=2, 8, 10 und 16 Prof. Dr. Nikolaus Wulff Zahlensysteme Neben dem üblichen dezimalen Zahlensystem zur Basis 10 sind in der Informatik
MehrProf. Dr. Stefan Weinzierl Audiosymbole mit einer Länge von 8 bit werden mit einem Paritätsbit zur Fehlererkennung kodiert.
Audiotechnik II Digitale Audiotechnik: 8. Tutorium Prof. Dr. Stefan Weinzierl 9.2.23 Musterlösung: 9. Dezember 23, 8:34 Fehlerkorrektur II Audiosymbole mit einer Länge von 8 bit werden mit einem Paritätsbit
MehrUntersuchung von Verfahren zur Messdatenreduktion und kompression für den Einsatz in einer Nanomessmaschine
Untersuchung von Verfahren zur Messdatenreduktion und kompression für den Einsatz in einer Nanomessmaschine Dipl.-Ing. T. Machleidt PD Dr.-Ing. habil. K.-H. Franke Fachgebiet Graphische Datenverarbeitung
MehrEntropie. Um der Begriff der Entropie zu erläutern brauchen wir erst mal einige Definitionen, z.b.
Entropie Grundlegend für das Verständnis des Begriffes der Komprimierung ist der Begriff der Entropie. In der Physik ist die Entropie ein Maß für die Unordnung eines Systems. In der Informationstheorie
Mehr2. Digitale Codierung und Übertragung
2. Digitale Codierung und Übertragung 2.1 Informationstheoretische Grundlagen 2.2 Verlustfreie universelle Kompression 2.3 Digitalisierung, Digitale Medien Weiterführende Literatur zum Thema Informationstheorie:
MehrDatenkompression. Vortrag von Markus Durzinsky Student der Otto-von-Guericke-Universität Magdeburg
Vortrag am 25. Januar 200 Werner von Siemens Gymnasium Magdeburg Zeitansatz: 5h (inklusive Programmieraufgaben) Datenkompression Vortrag von Markus Durzinsky Student der Otto-von-Guericke-Universität Magdeburg
MehrProseminar Datenkompression Suchstrategien und Präfixcodes
Proseminar Datenkompression Suchstrategien und Präfixcodes Patrick Sonntag Mittwoch, den 05.02.2003 I. Einführung - Suche elementares Problem in Informatik - hierbei Beschränkung auf binäre Tests nur 2
MehrInstitut für Geometrie und Praktische Mathematik Mathematisches Praktikum (MaPra) SS Aufgabe 7
Rheinisch Westfälische Technische Hochschule Institut für Geometrie und Praktische Mathematik Mathematisches Praktikum (MaPra) SS 2001 Prof. Dr. Wolfgang Dahmen Alexander Voß Stephan Niewersch Aufgabe
MehrAlgorithmen und Datenstrukturen 2
Algorithmen und Datenstrukturen 2 Lerneinheit 3: Greedy Algorithmen Prof. Dr. Christoph Karg Studiengang Informatik Hochschule Aalen Sommersemester 2016 10.5.2016 Einleitung Einleitung Diese Lerneinheit
Mehr