Seminar. Codierungstheorie
|
|
|
- Rainer Schubert
- vor 8 Jahren
- Abrufe
Transkript
1 Seminar Codierungstheorie Lempel-Ziv-Verfahren Informatik Sommersemester 25 Tim Schweisgut, Juni 25
2 Inhalt INHALT... 2 WÖRTERBUCHMETHODEN... 3 Statische Wörterbuchmethoden... 3 Beispiel:... 3 Bemerkung:... 4 DYNAMISCHE WÖRTERBUCHMETHODEN DAS LZ-VERFAHREN... 4 Der LZ Definition (Parsing):... 4 Das Lempel-Ziv-Parsing ist ein disjunktes Parsing... 4 Beispiel (Parsing):... 5 Lemma... 5 Der Algorithmus... 5 Der LZ Beispiel:... 6 Der Algorithmus... 6 Bemerkungen... 6 Dekodieren mit dem LZ Fazit LZ77 / LZ DIE HUFFMAN-CODIERUNG... 7 Grundidee... 7 Der Algorithmus... 8 Beispiel... 8 LZ77 UND HUFFMAN IM GZIP... 9 QUELLEN... Seminar Codierungstheorie SS25 2/
3 Wörterbuchmethoden Wörterbuchmethoden sind einfache Methoden der Komprimierung. Auch die Lempel-Ziv- Codierung, auf die hier insbesondere eingegangen wird, zählt zu den Wörterbuchmethoden. Wörterbuchmethoden verwenden, wie der Name schon sagt ein Wörterbuch. Grundsätzlich unterscheidet man zwischen zwei Arten von Wörterbuchmethoden: statische und dynamische Wörterbuchmethoden. Bei statischen Wörterbuchmethoden ist das Wörterbuch schon vor der Kompression fest vorgegeben und wird nicht mehr verändert. Bei dynamischen Wörterbuchmethoden wird das Wörterbuch erst im Laufe der Kompression aus den zu komprimierenden Daten erstellt. Die Kompression einer Wörterbuchmethode erfolgt dadurch, dass Zeichenfolgen, die häufig in den zu komprimierenden Daten vorkommen in dem Wörterbuch gespeichert werden, und die Ausgabe der Codierung dann statt aus den Daten aus Zeigern auf die Wörterbucheinträge besteht. Statische Wörterbuchmethoden Da bei statischen Wörterbuchmethoden das Wörterbuch schon vor der Komprimierung feststeht muss man nicht nur das Quellalphabet kennen, sondern auch eine Wahrscheinlichkeitsverteilung über diesem Alphabet. Diese Wahrscheinlichkeitsverteilung gibt an, welche Zeichenfolgen statistisch am häufigsten vorkommen. Da man Wörterbuchmethoden häufig bei der Komprimierung bei Texten verwendet werden die nächsten Beispiele eine Quellalphabet A ={, } b verwenden. Die Wahrscheinlichkeitsverteilung sei gegeben durch: p() =p und p() =p auf {, }. Das Wörterbuch W hat 2 c Einträge wobei c<b. Mit Hilfe der Wahrscheinlichkeitsverteilung werden also die 2 c häufigsten Folgen ermittelt und im Wörterbuch gespeichert. Um nun eine Folge aa zu codieren wird überprüft, ob diese Folge im Wörterbuch vorkommt, also ob a =W i für i =,,2 c -: ja, dann wird dir Folge mit (i) 2 codiert. nein, dann wird die Folge mit a codiert. Das vorangestellte Bit ist eine so genannte flag, die angibt ob die darauf folgende Binärfolge eine unkomprimierte Teilfolge oder ein Index des Wörterbuchs ist. Der Index i soll immer in c Bits angegeben werden. Beispiel: A ={, } 5 W = 2 2 p() = ¾ p() = ¼ Bestimme zuerst die vier häufigsten Folgen und speichere diese im Wörterbuch: W = = p( W) = 24 W, W 2, W 3 sind Folgen mit vier Nullen und einer. Hiervon gibt es insgesamt 5 Stück. Es passen nur noch 3 ins Wörterbuch. Welche man hier nimmt ist nicht fest vorgelegt: 4 W = = W W 2 3 = = Seminar Codierungstheorie SS25 3/
4 Es sei nun die Folge gegeben, die komprimiert werden soll. W ów ów W 3 Ausgabe: Eingabebits: 2 Ausgabebits: 2( + c) + 2( + b) = 8 +c +b +b +c Bemerkung: Man erzielt allerdings nicht immer eine Komprimierung. Wenn man bei obigem Beispiel die Eingabefolge hätte, welche die gleiche Wahrscheinlichkeitsverteilung und die gleiche Eingabelänge hat, wird die Folge bei der Kompression nicht kleiner sondern größer. Es kommen noch 4 Bits (die flags) hinzu, da keine Teilfolge im Wörterbuch vorhanden ist. => Diese Codierungsmethode ist nicht optimal. Dynamische Wörterbuchmethoden Das LZ-Verfahren Die Lempel-Ziv-Codierung hat einige wesentliche Vorteile gegenüber dem eben kennengelernten Verfahren der Kompression der Daten: Die LZ-Codierung benötigt keine Wahrscheinlichkeitsverteilung Das Wörterbuch wird dynamisch angelegt Es gibt viele verschiedene Varianten der LZ-Codierung. Diese Varianten stammen alle von zwei Komprimierungsverfahren ab, dem LZ77 und dem LZ78. Diese Algorithmen wurden von Abraham Lempel und Jacob Ziv in den Jahren 977 und 978 entwickelt. Die bekannteste Abwandlung ist die 984 von Terry Welch entwickelte LZW-Codierung. Der LZ78 Auch hier kann man von einem binären Quellalphabet A ={, } ausgehen. Da die LZ- Codierung allerdings keine feste Blocklänge benötigt, wie eine Codierung mit einem statischen Wörterbuch, werden also Folgen der Form {, } * codiert. Definition (Parsing): Ein Parsing einer Folge x {, } * ist eine Aufteilung von x in Teilfolgen y,, y c. Das Parsing heißt disjunkt, wenn die y i paarweise verschieden sind. Das Lempel-Ziv-Parsing ist ein disjunktes Parsing. Das Lempel-Ziv-Parsing ist ein disjunktes Parsing mit folgender Definition: Eingabe: x = x,, x n Ausgabe: y = x y 2,, y c ist die kürzeste Teilfolge von x, die nicht schon im Parsing vorkommt. Seminar Codierungstheorie SS25 4/
5 Beispiel (Parsing): x= Das Parsing für diese Eingabefolge wäre:,,,,,, y y 2 y 7 Lemma Es folgt aus der Definition des Lempel-Ziv-Parsings, dass es zu jeder Folge y i ein Bit b und einen eindeutigen Index # j # i- gibt, so dass: y i = y j b Beispiel: y 5 = = y 4 y 7 = = y Der Algorithmus. Erzeuge das LZ-Parsing der zu codierenden Daten. 2. Jedes y i wird durch (j,b) codiert. Wobei j durch jld(c)k Bits codiert wird. Beispiel mit der Eingabefolge von oben: Ausgabe Wörterbuch Index Eintrag (,) (,) 2 (,) 3 (,) 4 (,) 5 (,) 6 (,) 7 Der Algorithmus wird mit Hilfe eines Binärbaums abgearbeitet. Am Anfang existiert nur die Wurzel mit Null als Eintrag. Weiter gibt es einen Zeiger, der zu Beginn auf die Wurzel zeigt und einen Zähler z:=, der jeweils den größten Knoteneintrag speichert. Durchführung: Die Bits des Eingabestroms werden nach und nach eingelesen und es wird jedes Mal die Frage gestellt: Führt aus dem Knoten auf den der Zeiger zeigt eine Kante, die mit x i gelabelt ist : Ja: setze Zeiger auf den Knoten, zu dem die Kante führt. Nein: o füge einen neuen Knoten mit Label z+ ein o Label die Kante zwischen den Knoten mit x i o Sei j Index des Knotens mit dem aktuellen Zeiger, dann gebe (j, x i ) aus, setze den Zeiger auf die Wurzel und inkrementiere den Zähler um Seminar Codierungstheorie SS25 5/
6 Der LZ77 Bei der LZ77-Komprimierung wird der eingelesene Text als Tabelle genutzt. Der Algorithmus arbeitet mit zwei Fenstern: dem Search-Buffer: Der Search-Buffer enthält bereits codierte Zeichen. Hier wird nach Übereinstimmungen zu den noch zu codierenden Zeichen gesucht. dem Look-Ahead-Buffer: Der Look-Ahead-Buffer schließt sich unmittelbar an den Search-Buffer an und enthält die als nächstes zu codierenden Zeichen. Der Search-Buffer ist im Allgemeinen viel größer als der Look-Ahead-Buffer. Beispiel: Search-Buffer sir_sid_eastman_easily_t Look-Ahead-Buffer eases_sea_sick_seals Der Algorithmus. Durchsuche den Search-Buffer von rechts nach dem String, bzw. den ersten Zeichen des Look-Ahead-Buffers und versuche eine möglichst lange Übereinstimmung zu finden. ( e von easily => Übereinstimmung 3 Zeichen lang: eas ) Sollten mehrere Übereinstimmungen der gleichen Länge auftreten wird die zuletzt gefundene verwendet. (nochmals eas von eastman) 2. Die Übereinstimmung wird durch (Offset, Länge, nächstes Zeichen ) codiert. Offset ist der Index des ersten Zeichens der Übereinstimmung. (6, 3, e ) 3. Verschiebe die Fenster um Länge+ Zeichen nach rechts. Beispiel: Search-Buffer Look-Ahead-Buffer Ausgabe AABCAAABCD (,, A ) A ABCAAABCD (,, B ) AAB CAAABCD (,, C ) AABC AAABCD (4, 2, A ) AABCAAA BCD (5, 2, D ) AABCAAABCD Bemerkungen. Das Muster, das im Search-Buffer gesucht wird, kann in den Look-Ahead-Buffer hineinlaufen. Beispiel: Search-Buffer Look-Ahead-Buffer Ausgabe die katze ruft miau miaumiaumiau (4,, u ) Sei l die Länge des Look-Ahead-Buffers, dann ist die maximale Länge des gefundenen Strings l-. 2. Man erhält natürlich eine größere Kompression, wenn man den Search-Buffer vergrößert, allerdings wird der die Suche dann natürlich auch aufwendiger. Seminar Codierungstheorie SS25 6/
7 Dekodieren mit dem LZ77 Das Dekodieren erfolgt entgegengesetzt der Codierung. Man verwendet die gleichen Fenster und kopiert die Teilfolgen an die Stelle des Offsets. Anschließend fügt man noch das nächste unkomprimierte Zeichen an und führt die Verschiebung durch. Eingabe (,, A ) A (,, B ) A AB (,, C ) AAB C (4, 2, A ) AABC AAA (5, 2, D ) AABCAAA BCD AABCAAABCD Ausgabe Fazit LZ77 / LZ78 Der LZ77 wird häufig bei Archiven verwendet und ist hierfür auch gut geeignet, da das Dekodieren erheblich einfacher ist als das Codieren, denn die Suche nach Übereinstimmungen während der Codierung ist sehr aufwendig. Bei Archiven komprimiert man einmal, erstellt das Archiv und greift später nur noch darauf zu und führt dementsprechend die aufwendige Codierung nur einmal durch. Man kann beweisen, dass die Lempel-Ziv-Codierung über einem Quellalphabet {, } und einer beliebigen unbekannten Wahrscheinlichkeitsverteilung im Gegensatz zu statischen Wörterbuchmethoden asymptotisch optimal ist, also ein viel besseren Codierungs- Algorithmus liefert. Die Huffman-Codierung David A. Huffman war ein amerikanischer Computerpionier und hat 952 die Huffman- Codierung entwickelt. Die Huffman-Codierung ist eine Entropiekodierung, die im Gegensatz zum Stringersatzverfahren (LZ77 und LZ78) jedem einzelnen Zeichnen eines Textes eine unterschiedlich lange Folge von Bits zuordnet. Da eine bestimmte Mindestanzahl von Bits notwendig ist, um alle Zeichen voneinander zu unterscheiden, kann die Anzahl der Bits, die den Zeichen zugeordnet werden, nicht unbegrenzt klein werden. Entropiekodierer werden häufig mit anderen Kodierern kombiniert. Dies ist der Grund, warum hier davon geredet wird, denn ich werde später erklären, wie man die Huffman- Codierung mit dem LZ77 kombiniert und so die bekannte Gzip-Komprimierung erhält. Grundidee Um eine speichersparende Darstellung zu erhalten müssen die Zeichen mit einer unterschiedlichen Anzahl von Bits kodiert werden. Diese Bitfolgen müssen jedoch präfixfrei sein um eine eindeutige Abbildung zu erhalten. Wenn man nämlich A mit, B mit und C mit codiert, wird die Zeichenkette ABC kodiert mit. Diese Folge wird jedoch auch von der Zeichenkette ACA erzeugt. Seminar Codierungstheorie SS25 7/
8 Präfixfrei bedeutet, dass keine Bitfolge, die für ein einzelnes Zeichen steht am Anfang eines anderen Zeichens stehen darf. Um nun einen präfixfreien Code zu erzeugen verwendet man einen binären Baum zur Darstellung des Codes. In dem Baum stehen die Blätter für die zu kodierenden Zeichen, während die inneren Knoten für die zu schreibenden oder gelesenen Bits stehen. Beispiel: Der Baum rechts ist von der gewünschten Form. Die inneren Knoten sind nur durchnummeriert, um sie benennen zu können. 2 3 Um nun zum Beispiel die Zeichenfolge ACDC zu kodieren, werden die den entsprechenden Zeichen zugewiesenen Bitfolgen hintereinander ausgegeben:. A B 4 E C D Das verbleibende Problem ist die Erstellung eines Baumes, bei dem das durchschnittliche Ermitteln der erforderlichen Bitfolge eines Zeichens im Mittel möglichst klein ist. Die Shannon-Fano-Codierung und die Huffman-Codierung sind zwei unterschiedliche Algorithmen zur Konstruktion dieser Bäume. Da der vom Shannon-Fano-Algorithmus erzeugte Baum jedoch nicht optimal ist, entwickelte Huffman 952 seinen Algorithmus, welcher in der Tat nachweisbar immer einen optimalen Baum liefert. Der Algorithmus. Erstelle einen "Wald" mit Bäumen, für jedes Zeichen. Diese Bäume enthalten nur einen Knoten: das Zeichen 2. suche die beiden Bäume im Wald, die für die Zeichen mit der kleinsten Wahrscheinlichkeit stehen. Entferne diese Bäume aus dem Wald. Erstelle einen neuen Baum, der die beiden entfernten Bäume als Subbaum hat. Füge diesen Baum in den Wald ein. Benutze dabei die Summe der Wahrscheinlichkeiten der Unterbäume. 3. Wiederhole, bis nur noch ein Baum übrig ist. Beispiel Abschnitt a zeigt den ersten Schritt des Algorithmus. Die Zahlen sind die Auftretungswahrscheinlichkeiten der einzelnen Zeichen. Da C, D, und E die Zeichen mit der niedrigsten Wahrscheinlichkeit sind, werden sie in b entfernt (Schritt 2), und es wird ein neuer Baum mit der Summer der Wahrscheinlichkeiten und D E als Subbäume erstellt. Dieses Verfahren wird durchgeführt, bis schließlich A mit der größten Wahrscheinlichkeit mit dem anderen Baum zusammengeführt wird. A ist das am häufigsten auftretende Zeichen, und benötigt nun nur ein Bit um es zu kodieren. Die andere Zeichen benötigen jeweils 3 Bit. Seminar Codierungstheorie SS25 8/
9 LZ77 und Huffman im gzip gzip ist die Kurzform für GNU ZIP. Dabei handelt es sich um ein Kompressionsprogramm, das auch im Quelltext erhältlich ist. Verwechselt werden darf das Format aber nicht mit dem Zip-Dateiformat unter Windows, welches von gzip unabhängig ist. gzip ist ein Komprimierungsprogramm, das praktisch für alle Computerbetriebssysteme verfügbar ist. Es bietet einen guten Kompressionsgrad und ist frei von patentierten Algorithmen. Es wurde von Jean-Loup Gailly ursprünglich entwickelt um unter Unix das alte Programm compress zu ersetzen. gzip basiert auf dem deflate-algorithmus, der eine Kombination aus LZ77 und Huffman- Codierung ist. Hierbei werden die bei der LZ77-Codierung entstehenden Zeichenlängen und Distanzcodes mit Hilfe der Huffman-Codierung gespeichert. Seminar Codierungstheorie SS25 9/
10 Quellen Datenkompression nach Lempel-Ziv, Christian Näger, 997 Implementierung des Packverfahrens im Programm Gzip, Ingo Rohloff, Seminar Codierungstheorie SS25 /
Eigenschaften 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
Dynamisches 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
Algorithmus 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.
Algorithmen und Datenstrukturen 2
Algorithmen und Datenstrukturen 2 Sommersemester 2006 6. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik [email protected] Datenkomprimierung Bei den meisten bisher betrachteten
Huffman-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
Datenkompression. 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,
Kodierungsalgorithmen
Kodierungsalgorithmen Komprimierung Verschlüsselung Komprimierung Zielsetzung: Reduktion der Speicherkapazität Schnellere Übertragung Prinzipien: Wiederholungen in den Eingabedaten kompakter speichern
Referat 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
1 / 33. P.F. Stadler & S. Will (Bioinf, Uni LE) ADS 2, V5 07. Mai / 33
P.F. Stadler & S. Will (Bioinf, Uni LE) ADS 2, V5 07. Mai 204 7 / 33 P.F. Stadler & S. Will (Bioinf, Uni LE) ADS 2, V5 07. Mai 204 8 / 33 ADS: Algorithmen und Datenstrukturen 2 Teil 5 Prof. Peter F. Stadler
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 1 Woche: Einführung in die Codierungstheorie, Definition Codes, Präfixcode, kompakte Codes 5/ 44 Unser Modell Shannon
Verlustfreie Kompression
Verlustfreie Kompression Tim Rolff Arbeitsbereich Wissenschaftliches Rechnen Fachbereich Informatik Fakultät für Mathematik, Informatik und Naturwissenschaften Universität Hamburg 8. Juni 2016 Tim Rolff
Alle bislang betrachteten Sortieralgorithmen hatten (worst-case) Laufzeit Ω(nlog(n)).
8. Untere Schranken für Sortieren Alle bislang betrachteten Sortieralgorithmen hatten (worst-case) Laufzeit Ω(nlog(n)). Werden nun gemeinsame Eigenschaften dieser Algorithmen untersuchen. Fassen gemeinsame
Seminar 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
Ü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"
A2.3: Zur LZ78 Komprimierung
A2.3: Zur LZ78 Komprimierung Im Gegensatz zur Entropiecodierung nach Huffman oder Shannon, bei der man die Quellenstatistik (möglichst genau) kennen muss, sind solche Einschränkungen bei den von Abraham
Algorithmen und Datenstrukturen 2-3. Seminar -
Algorithmen und Datenstrukturen 2-3. Seminar - Dominic Rose Bioinformatics Group, University of Leipzig Sommersemster 2010 Outline 3. Übungsserie: 3 Aufgaben, insgesamt 30 Punkte A7 Huffmann-Codierung
Problem: 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
Proseminar 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
Codierung. Auszug aus dem Skript von Maciej Liśkiewicz und Henning Fernau
Codierung Auszug aus dem Skript von Maciej Liśkiewicz und Henning Fernau Ein bisschen Informationstheorie Betrachten wir das folgende Problem: Wie lautet eine sinnvolle Definition für das quantitative
Praktikum BKSPP. Aufgabenblatt Nr. 1. 1 Umrechnung zwischen Stellenwertsystemen
Dr. David Sabel Institut für Informatik Fachbereich Informatik und Mathematik Johann Wolfgang Goethe-Universität Frankfurt am Main Praktikum BKSPP Sommersemester 21 Aufgabenblatt Nr. 1 Abgabe: Mittwoch,
15 Optimales Kodieren
15 Optimales Kodieren Es soll ein optimaler Kodierer C(T ) entworfen werden, welcher eine Information (z.b. Text T ) mit möglichst geringer Bitanzahl eindeutig überträgt. Die Anforderungen an den optimalen
6. 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:
Musterlösung zur Hauptklausur Theoretische Grundlagen der Informatik Wintersemester 2013/14
Institut für Theoretische Informatik Prof. Dr. Jörn Müller-Quade Musterlösung zur Hauptklausur Theoretische Grundlagen der Informatik Wintersemester 23/4 Vorname Nachname Matrikelnummer Hinweise Für die
Klausur Informatik B April Teil I: Informatik 3
Informatik 3 Seite 1 von 8 Klausur Informatik B April 1998 Teil I: Informatik 3 Informatik 3 Seite 2 von 8 Aufgabe 1: Fragekatalog (gesamt 5 ) Beantworten Sie folgende Fragen kurz in ein oder zwei Sätzen.
Mathematik für Information und Kommunikation
Mathematik für Information und Kommunikation Am Beispiel des Huffman- Algorithmus Thomas Borys und (Christian Urff) Huffman im Alltag MPEG Telefax JPEG MP3 ZIP avid Huffman avid Huffman [95-999] www.soe.ucsc.edu/people/faculty/huffman.html
Datenkompression. 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
Run 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
= 7 (In Binärdarstellung: = 0111; Unterlauf) = -8 (In Binärdarstellung: = 1000; Überlauf)
Musterlösung Übung 2 Aufgabe 1: Große Zahlen Das Ergebnis ist nicht immer richtig. Die Maschine erzeugt bei Zahlen, die zu groß sind um sie darstellen zu können einen Über- bzw. einen Unterlauf. Beispiele
Eine verlustbehaftete Komprimierung ist es, wenn wir einige Kleidungsstücke zu
Komprimierungen In Netzwerken müssen viele Daten transportiert werden. Dies geht natürlich schneller, wenn die Datenmengen klein sind. Um dies erreichen zu können werden die Daten komprimiert. Das heisst,
Der LZ77 Algorithmus. von. Stefan Mühlinghaus Matrikelnummer: 11033988 Benutzerkennung: ai495
Der LZ77 Algorithmus von Stefan Mühlinghaus Matrikelnummer: 11033988 Benutzerkennung: ai495 Über den Algorithmus: Der LZ77 Algorithmus wurde von seinen Erfindern Abraham Lempel und Jacob Ziv erstmalig
Definition Ein gerichteter Graph G = (V, E) ist ein Graph von geordneten Paaren (u, v) mit u V und v V.
Kapitel 4 Graphenalgorithmen 4.1 Definitionen Definition 4.1.1. Der Graph G = (V, E) ist über die beiden Mengen V und E definiert, wobei V die Menge der Knoten und E die Menge der Kanten in dem Graph ist.
Übung 13: Quellencodierung
ZHAW, NTM, FS2008, Rumc, /5 Übung 3: Quellencodierung Aufgabe : Huffmann-Algorithmus. Betrachten Sie die folgende ternäre, gedächtnislose Quelle mit dem Symbolalphabet A = {A,B,C} und den Symbol-Wahrscheinlichkeiten
MafI I: Logik & Diskrete Mathematik (F. Hoffmann)
Lösungen zum 14. und letzten Aufgabenblatt zur Vorlesung MafI I: Logik & Diskrete Mathematik (F. Hoffmann) 1. Ungerichtete Graphen (a) Beschreiben Sie einen Algorithmus, der algorithmisch feststellt, ob
kontextfreie Grammatiken Theoretische Informatik kontextfreie Grammatiken kontextfreie Grammatiken Rainer Schrader 14. Juli 2009 Gliederung
Theoretische Informatik Rainer Schrader Zentrum für Angewandte Informatik Köln 14. Juli 2009 1 / 40 2 / 40 Beispiele: Aus den bisher gemachten Überlegungen ergibt sich: aus der Chomsky-Hierarchie bleiben
3 Klassifikation wichtiger Optimierungsprobleme
3 Klassifikation wichtiger Optimierungsprobleme 3.1 Das MIN- -TSP Wir kehren nochmal zurück zum Handlungsreisendenproblem für Inputs (w {i,j} ) 1 i
Kapiteltests zum Leitprogramm Binäre Suchbäume
Kapiteltests zum Leitprogramm Binäre Suchbäume Björn Steffen Timur Erdag überarbeitet von Christina Class Binäre Suchbäume Kapiteltests für das ETH-Leitprogramm Adressaten und Institutionen Das Leitprogramm
Verkettete Datenstrukturen: Bäume
Verkettete Datenstrukturen: Bäume 1 Graphen Gerichteter Graph: Menge von Knoten (= Elementen) + Menge von Kanten. Kante: Verbindung zwischen zwei Knoten k 1 k 2 = Paar von Knoten (k 1, k 2 ). Menge aller
Klausur Algorithmen und Datenstrukturen
Technische Universität Braunschweig Sommersemester 2013 IBR - Abteilung Algorithmik Prof. Dr. Sándor Fekete Dr. Christiane Schmidt Stephan Friedrichs Klausur Algorithmen und Datenstrukturen 22.08.2013
Textkomprimierung. Stringologie. Codes. Textkomprimierung. Alle Komprimierung beruht auf Wiederholungen im Text. Textkomprimierung
Stringologie Peter Leupold Universität Leipzig Vorlesung SS 2014 Alle Komprimierung beruht auf Wiederholungen im Text Die Komprimierung muss rückgängig gemacht werden können Je kleiner das Alphabet, desto
Codierung, Codes (variabler Länge)
Codierung, Codes (variabler Länge) A = {a, b, c,...} eine endliche Menge von Nachrichten (Quellalphabet) B = {0, 1} das Kanalalphabet Eine (binäre) Codierung ist eine injektive Abbildung Φ : A B +, falls
Redundanz. Technische Informationsquelle Entropie und Redundanz Huffman Codierung. Martin Werner WS 09/10. Martin Werner, Dezember 09 1
Information, Entropie und Redundanz Technische Informationsquelle Entropie und Redundanz Huffman Codierung Martin Werner WS 9/ Martin Werner, Dezember 9 Information und Daten Informare/ Informatio (lat.)
(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
3 Quellencodierung. 3.1 Einleitung
Source coding is what Alice uses to save money on her telephone bills. It is usually used for data compression, in other words, to make messages shorter. John Gordon 3 Quellencodierung 3. Einleitung Im
Ausarbeitung zum Modulabschluss. Graphentheorie. spannende Bäume, bewertete Graphen, optimale Bäume, Verbindungsprobleme
Universität Hamburg Fachbereich Mathematik Seminar: Proseminar Graphentheorie Dozentin: Haibo Ruan Sommersemester 2011 Ausarbeitung zum Modulabschluss Graphentheorie spannende Bäume, bewertete Graphen,
Codierungstheorie Rudolf Scharlau, SoSe 2006 9
Codierungstheorie Rudolf Scharlau, SoSe 2006 9 2 Optimale Codes Optimalität bezieht sich auf eine gegebene Quelle, d.h. eine Wahrscheinlichkeitsverteilung auf den Symbolen s 1,..., s q des Quellalphabets
Folge 19 - Bäume. 19.1 Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12
Grundlagen: Folge 19 - Bäume 19.1 Binärbäume - Allgemeines Unter Bäumen versteht man in der Informatik Datenstrukturen, bei denen jedes Element mindestens zwei Nachfolger hat. Bereits in der Folge 17 haben
Datenkompression: Lempel-Ziv-Codierung
Gliederung 1) Einleitung 2) Abraham Lempel, Jacob Ziv, Terry Welch 3) Tabellengestützte Modellierung 4) LZ77 5) LZ78 6) LZW 7) Einsatzgebiete 8) Zusätzliche Erläuterungen 9) Quellen 1) Einleitung Aufgabe
Tutorium Algorithmen & Datenstrukturen
June 16, 2010 Binärer Baum Binärer Baum enthält keine Knoten (NIL) besteht aus drei disjunkten Knotenmengen: einem Wurzelknoten, einem binären Baum als linken Unterbaum und einem binären Baum als rechten
Geschichte Eigenschaften von PNG Bits n Bytes Verfahren zur Kompression/Dekompression Fazit (Vorteile,Nachteile) Das PNG-Dateiformat
[email protected] 1. April 2008 Inhalt 1 Geschichte 2 Eigenschaften von PNG 3 Bits n Bytes 4 Verfahren zur Kompression/Dekompression 5 Fazit (Vorteile,Nachteile) Die Vor-Geschichte
Digitalisierung. analoges Signal PAM. Quantisierung
Digitalisierung U analoges Signal t U PAM t U Quantisierung t Datenreduktion Redundanzreduktion (verlustfrei): mehrfach vorhandene Informationen werden nur einmal übertragen, das Signal ist ohne Verluste
Referat für Algorithmische Anwendungen WS 2006/ 07: Verlustfreie Datenkompression mit dem Deflate-Algorithmus (LZ77- und Huffman-Codierung)
Referat für Algorithmische Anwendungen WS 2006/ 07: Verlustfreie Datenkompression mit dem Deflate-Algorithmus (LZ77- und Huffman-Codierung) Benedikt Arnold, 11041025, [email protected] Sebastian Bieker,
TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK
TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen SS 2009 Grundlagen: Algorithmen und Datenstrukturen Übungsblatt 11 Prof. Dr. Helmut Seidl, S. Pott,
Kapitel 2: Informationstheorie. 3. Quellencodierung
ZHAW, NTM2, Rumc, 2.3-1 Kapitel 2: Informationstheorie 3. Quellencodierung Inhaltsverzeichnis 1. EINLEITUNG... 1 2. QUELLENCODIERUNGSTHEOREM... 2 3. HUFFMAN-QUELLENCODIERUNG... 3 4. DATENKOMPRESSION MIT
Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny
Grundlagen der Informatik Prof. Dr. Stefan Enderle NTA Isny 2 Datenstrukturen 2.1 Einführung Syntax: Definition einer formalen Grammatik, um Regeln einer formalen Sprache (Programmiersprache) festzulegen.
Datenstrukturen und Algorithmen. Christian Sohler FG Algorithmen & Komplexität
Datenstrukturen und Algorithmen Christian Sohler FG Algorithmen & Komplexität 1 Clustering: Partitioniere Objektmenge in Gruppen(Cluster), so dass sich Objekte in einer Gruppe ähnlich sind und Objekte
Algorithmische Bioinformatik 1
Algorithmische Bioinformatik 1 Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Sommersemester 2009 Übersicht Paarweises
Inverted Files for Text Search Engines
Inverted Files for Text Search Engines Justin Zobel, Alistair Moffat PG 520 Intelligence Service Emel Günal 1 Inhalt Einführung Index - Inverted Files - Indexkonstruktion - Indexverwaltung Optimierung
Textkompression: 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
Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen
Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen 186.172 Algorithmen und Datenstrukturen 1 VL 4.0 Übungsblatt 4 für die Übung
Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung
Ludwig-Maximilians-Universität München WS 2013/14 Institut für Informatik Übungsblatt 10 Prof. Dr. R. Hennicker, A. Klarl Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung
Algorithmen und Datenstrukturen 1
Algorithmen und Datenstrukturen 1 7. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik [email protected] aufbauend auf den Kursen der letzten Jahre von E. Rahm, G. Heyer,
Kapitel 2. Kombinatorische Schaltungen. Codierer und Decodierer
Kapitel 2 Kombinatorische Schaltungen Definition nach DIN 44300/93 Ein Schaltnetz oder kombinatorischer Funktionsblock ist eine Funktionseinheit zum Verarbeiten von Schaltvariablen, deren Wert am Ausgang
Höhe eines B + -Baums
Höhe eines B + -Baums Anzahl der Blätter bei minimaler Belegung Anzahl von (eindeutigen) Elementen bei minimaler Belegung Anzahl der Blätter bei maximaler Belegung Anzahl von Elementen bei maximaler Belegung
Binary Decision Diagrams (Einführung)
Binary Decision Diagrams (Einführung) Binary Decision Diagrams (BDDs) sind bestimmte Graphen, die als Datenstruktur für die kompakte Darstellung von booleschen Funktionen benutzt werden. BDDs wurden von
5. Woche Perfekte und Optimale Codes, Schranken. 5. Woche: Perfekte und Optimale Codes, Schranken 88/ 142
5 Woche Perfekte und Optimale Codes, Schranken 5 Woche: Perfekte und Optimale Codes, Schranken 88/ 142 Packradius eines Codes (Wiederholung) Definition Packradius eines Codes Sei C ein (n, M, d)-code Der
Kapitel 2: Analyse der Laufzeit von Algorithmen Gliederung
Gliederung 1. Motivation / Einordnung / Grundlagen 2. Analyse der Laufzeit von Algorithmen 3. Untere Schranken für algorithmische Probleme 4. Sortier- und Selektionsverfahren 5. Paradigmen des Algorithmenentwurfs
Quellencodierung NTM, 2006/05, 9.3 Quellencodierung, Rur, 1
Quellencodierung NTM, 2006/05, 9.3 Quellencodierung, Rur, 1 Referenzen [1] Proakis, Salehi, Grundlagen der Kommunikationstechnik, Pearson, 2004. [2] D. Salomon, Data Compression, Springer, 2004. [3] D.
ABITURPRÜFUNG 2009 LEISTUNGSFACH INFORMATIK
ABITURPRÜFUNG 2009 LEISTUNGSFACH INFORMATIK (HAUPTTERMIN) Bearbeitungszeit: 270 Minuten Hilfsmittel: Wörterbuch zur deutschen Rechtschreibung Taschenrechner (nicht programmierbar, nicht grafikfähig) (Schüler,
Graphen und Bäume. A.1 Graphen
Algorithmen und Datenstrukturen 96 A Graphen und Bäume A.1 Graphen Ein gerichteter Graph (auch Digraph) G ist ein Paar (V, E), wobei V eine endliche Menge und E eine Relation auf V ist, d.h. E V V. V heißt
368 4 Algorithmen und Datenstrukturen
Kap04.fm Seite 368 Dienstag, 7. September 2010 1:51 13 368 4 Algorithmen und Datenstrukturen Java-Klassen Die ist die Klasse Object, ein Pfeil von Klasse A nach Klasse B bedeutet Bextends A, d.h. B ist
Graphentheorie. Eulersche Graphen. Eulersche Graphen. Eulersche Graphen. Rainer Schrader. 14. November Gliederung.
Graphentheorie Rainer Schrader Zentrum für Angewandte Informatik Köln 14. November 2007 1 / 22 2 / 22 Gliederung eulersche und semi-eulersche Graphen Charakterisierung eulerscher Graphen Berechnung eines
Organisation. Was kommt zum Test? Buch Informatik Grundlagen bis inkl. Kapitel 7.4 Wissensfragen und Rechenbeispiele
Organisation Was kommt zum Test? Buch Informatik Grundlagen bis inkl Kapitel 74 Wissensfragen und Rechenbeispiele 3 Vorträge zur Übung Informationstheorie, Huffman-Codierung und trennzeichenfreie Codierung
Bäume. 2006 Jiri Spale, Algorithmen und Datenstrukturen - Bäume 1
Bäume 2006 Jiri Spale, Algorithmen und Datenstrukturen - Bäume 1 Inhalt Grundbegriffe: Baum, Binärbaum Binäre Suchbäume (Definition) Typische Aufgaben Suchaufwand Löschen allgemein, Methode Schlüsseltransfer
Abgabe: (vor der Vorlesung) Aufgabe 2.1 (P) O-Notation Beweisen Sie die folgenden Aussagen für positive Funktionen f und g:
TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen SS 2009 Grundlagen: Algorithmen und Datenstrukturen Übungsblatt 2 Prof. Dr. Helmut Seidl, S. Pott,
Kryptologie und Kodierungstheorie
Kryptologie und Kodierungstheorie Alexander May Horst Görtz Institut für IT-Sicherheit Ruhr-Universität Bochum Lehrerfortbildung 17.01.2012 Kryptologie Verschlüsselung, Substitution, Permutation 1 / 18
2 i. i=0. und beweisen Sie mittels eines geeigneten Verfahrens die Korrektheit der geschlossenen Form.
für Informatik Prof. aa Dr. Ir. Joost-Pieter Katoen Christian Dehnert, Friedrich Gretz, Benjamin Kaminski, Thomas Ströder Tutoraufgabe (Vollständige Induktion): Finden Sie eine geschlossene Form für die
Studiengang Informatik der FH Gießen-Friedberg. Sequenz-Alignment. Jan Schäfer. WS 2006/07 Betreuer: Prof. Dr. Klaus Quibeldey-Cirkel
Studiengang Informatik der FH Gießen-Friedberg Sequenz-Alignment Jan Schäfer WS 2006/07 Betreuer: Prof. Dr. Klaus Quibeldey-Cirkel Überblick Einführung Grundlagen Wann ist das Merkmal der Ähnlichkeit erfüllt?
Vorlesung Datenstrukturen
Vorlesung Datenstrukturen Binärbaum Suchbaum Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 356 Datenstruktur Binärbaum Strukturrepräsentation des mathematischen Konzepts Binärbaum
Lernziele: Ausgleichstechniken für binäre Bäume verstehen und einsetzen können.
6. Bäume Lernziele 6. Bäume Lernziele: Definition und Eigenschaften binärer Bäume kennen, Traversierungsalgorithmen für binäre Bäume implementieren können, die Bedeutung von Suchbäumen für die effiziente
Informatik II Bäume. Beispiele. G. Zachmann Clausthal University, Germany [email protected]. Stammbaum. Stammbaum. Stammbaum
lausthal Beispiele Stammbaum Informatik II. Zachmann lausthal University, ermany [email protected]. Zachmann Informatik - SS 06 Stammbaum Stammbaum / Parse tree, Rekursionsbaum Parse tree, Rekursionsbaum
Kryptographie und Codierung für den Mathematikunterricht
Kryptographie und Codierung für den Mathematikunterricht Pädagogische Hochschule Karlsruhe University of Education École Supérieure de Pédagogie Institut für Mathematik und Informatik Th. Borys Was verstehst
Nichtdeterministische Platzklassen
Sommerakademie 2010 Rot an der Rot AG 1: Wieviel Platz brauchen Algorithmen wirklich? Nichtdeterministische Platzklassen Ulf Kulau August 23, 2010 1 Contents 1 Einführung 3 2 Nichtdeterminismus allgemein
Minimal spannender Baum
Minimal spannender Baum 16 1 2 21 5 11 19 6 6 3 14 33 10 5 4 18 Die Kreise zeigen die vorgesehenen Standorte neu zu errichtender Filialen einer Bank. Entlang der bestehenden Straßen sollen Telefonleitungen
Randomisierte Algorithmen 2. Erste Beispiele
Randomisierte Algorithmen Randomisierte Algorithmen 2. Erste Beispiele Thomas Worsch Fakultät für Informatik Karlsruher Institut für Technologie Wintersemester 2016/2017 1 / 35 Randomisierter Identitätstest
Datenstrukturen. einfach verkettete Liste
einfach verkettete Liste speichert Daten in einer linearen Liste, in der jedes Element auf das nächste Element zeigt Jeder Knoten der Liste enthält beliebige Daten und einen Zeiger auf den nächsten Knoten
2 Sortieren. Beispiel: Es seien n = 8 und a = i : a i : ϕ(i) : a ϕ(i) :
2 Sortieren Das Sortieren einer Datenfolge ist eines der am leichtesten zu verstehenden und am häufigsten auftretenden algorithmischen Probleme. In seiner einfachsten Form besteht das Problem darin, eine
B-Bäume, Hashtabellen, Cloning/Shadowing, Copy-on-Write
B-Bäume, Hashtabellen, Cloning/Shadowing, Copy-on-Write Thomas Maier Proseminar: Ein- / Ausgabe Stand der Wissenschaft Seite 1 von 13 Gliederung 1. Hashtabelle 3 2.B-Baum 3 2.1 Begriffserklärung 3 2.2
2.6 Deterministisches Top-Down-Parsen
48 2.6 Deterministisches Top-Down-Parsen Als nächstes wollen wir uns mit Methoden zur syntaktischen Analyse befassen. Der lexikale canner eines Compilers liest die Eingabe Zeichen für Zeichen und erzeugt
Lemma Für jede monotone Grammatik G gibt es eine kontextsensitive
Lemma Für jede monotone Grammatik G gibt es eine kontextsensitive Grammatik G mit L(G) = L(G ). Beweis im Beispiel (2.): G = (V,Σ, P, S) : P = {S asbc, S abc, CB BC, ab ab, bb bb, bc bc, cc cc}. (i) G
Erste Schnittpunktsätze und Anfänge einer Dreiecksgeometrie
Christoph Vogelsang Matr.Nr. 66547 Nils Martin Stahl Matr.Nr. 664 Seminar: Geometrie Dozent: Epkenhans Wintersemester 005/006 Erste Schnittpunktsätze und Anfänge einer Dreiecksgeometrie Ausarbeitung der
Einführung in Kompressionstechniken
Einführung in Kompressionstechniken W. Kowarschick 7. Februar 997. November 9 W. Kowarschick Motivation Dateigrößen Text Vektorgraphiken Rasterbilder Tomographien Telephon CD-Stereo Bildfolgen VD7 VD7
Lösungsvorschläge Blatt Z1
Theoretische Informatik Departement Informatik Prof. Dr. Juraj Hromkovič http://www.ita.inf.ethz.ch/theoinf16 Lösungsvorschläge Blatt Z1 Zürich, 2. Dezember 2016 Lösung zu Aufgabe Z1 Wir zeigen L qi /
Dateisystem: Einführung
Dateisystem: Einführung Hauptaufgabe des Dateisystems ist der schnelle und zuverlässige Zugriff auf Dateien Problem: Entweder schneller Zugriff oder viel Redunanz beim speichern! Zusätzlich müssen Unterverzeichnisse
