Prof. Dr. Margarita Esponda

Ähnliche Dokumente
Huffman-Kodierung. Prof. Dr. Margarita Esponda

Modul C7 - Huffman-Code

Globalübungsaufgabe1 (All Pair Shortest Path):

10. Übungsblatt zu Algorithmen I im SoSe 2016

Caesar Substitution (monoalphabetisch)

Datenkompression. 1 Allgemeines. 2 Verlustlose Kompression. Holger Rauhut

Tutoraufgabe 1 (Floyd-Warshall):

Kapitel 9: Informationstheorie. 2. Entropie

6. Komprimierung. (Text)komprimierung ist ein Wechsel der Repräsentation von Daten, so daß sie weniger

Zusammenfassung des 2. Abends

Automaten und formale Sprachen Notizen zu den Folien

Beispiellösungen zu Blatt 107

Kodierung. Kodierung von Zeichen mit dem ASCII-Code


Run Length Coding und Variable Length Coding

Übersicht Datenstrukturen und Algorithmen. Übersicht. Probleme auf kantengewichteten Graphen. Vorlesung 14: Minimale Spannbäume

Seminar über Algorithmen, SS2004. Textkompression. von Christian Grümme und Robert Hartmann

Tutoraufgabe 1 (Auswertungsstrategie):

7/17/06. Huffman-Kodierung. Morsecode. Erstellung eindeutiger Codes

Einführung in (Binäre) Bäume

Algorithmen und Datenstrukturen

Referat zum Thema Huffman-Codes

Automaten und formale Sprachen Notizen zu den Folien

I.4 Warshall - Algorithmus

100 Wortschlangen mit 5 Buchstaben

englisch: 1 einsam 2 Anstrengung 3 immer 4 Tal 5 genug 6 System Lösungswort (1 6): Blätter

Eigenschaften von Kompressionsverfahren

=SVERWEIS ( B2; $G$2:$H$7; 2; FALSCH)

Seminar. Codierungstheorie

Textkompression. Komprimierung von Daten. Runlength Komprimierung (2) Runlength Komprimierung (1) Herkömmliche Kodierung. Runlength Komprimierung (3)

Algorithmus zur komprimierten Übertragung von Textdaten an mobile Endgeräte

Informatik-Seminar Thema 6: Bäume

XONTRO Systemanschluss Makler. Quoting neu

Programmieren in Haskell. Stefan Janssen. Strukturelle Rekursion. Universität Bielefeld AG Praktische Informatik. 10.

DER EULER SCHE POLYEDERSATZ

Gierige Algorithmen Interval Scheduling

HEUTE. Datenstrukturen im Computer. Datenstrukturen. Rekursion. Feedback Evaluation. abstrakte Datenstrukturen

Einleitung. Kapitel 1

ROHRE FUER HOHE TEMPERATUREN ASTM A 106

Übrigens: um den Algorithmus im Unterricht einzuführen, sind keine Formeln notwendig! Warum reicht die normale ASCII-Codierung nicht aus?

Universität Trier. Fachbereich IV. Wintersemester 2004/2005. Wavelets made easy. Kapitel 2 Mehrdimensionale Wavelets und Anwendungen

Funktionale Programmierung ALP I. λ Kalkül. Teil 2 WS 2012/2013. Prof. Dr. Margarita Esponda. Prof. Dr. Margarita Esponda

Übungsblatt 7. Vorlesung Theoretische Grundlagen der Informatik im WS 16/17

P-Median Problem. Michael Enser Anzahl der ausgewählten Standorte oder Mediane

Kodierung. Bytes. Zahlensysteme. Darstellung: Zahlen

STAATLICHE ABSCHLUSSPRÜFUNG DER UNTERSTUFE GESAMTSTAATLICHE PRÜFUNGSARBEIT ERSATZTERMIN AM 22. JUNI 2017

Technische Informatik - Eine Einführung

Algorithmen für Ad-hoc- und Sensornetze VL 10 Eine kurze Geschichte vom Färben

Funktionen höherer Ordnung

Repetitive Strukturen

a) b) Abb. 1: Buchstaben

Funktionale Programmierung mit Haskell

Aufgabe 1, (25 Punkte):

Informatik I WS 07/08 Tutorium 24

Information Modellierung Shannon Fano Praxis. Entropie. Ingo Blechschmidt, Michael Hartmann. 15. November 2006

Algorithmen und Datenstrukturen 2

Das Huffman- Kodierverfahren

X U O F U L E R T. gemischt:

Prof. Dr. Margarita Esponda

class PrintNode(object): def init ( self, param ):... def visit( self, treenode ): print treenode.getitem()

Effiziente Algorithmen und Komplexitätstheorie

Präsentation: Vom Baumdiagramm zur Wahrscheinlichkeit Frank Schumann

Vektoren - Basiswechsel - Matrix

f(1, 1) = 1, f(x, y) = 0 sonst üblicherweise Konjunktion, manchmal auch

Implementierung eines Baumes (in Python)

Theoretische Informatik I

Funktionale Programmierung ALP I. Funktionen höherer Ordnung. Teil 2 SS Prof. Dr. Margarita Esponda. Prof. Dr.

x x y x y Informatik II Schaltkreise Schaltkreise Schaltkreise Rainer Schrader 3. November 2008

Textkomprimierung. Stringologie. Codes. Textkomprimierung. Alle Komprimierung beruht auf Wiederholungen im Text. Textkomprimierung

Lösungen zur 1. Klausur. Einführung in Berechenbarkeit, formale Sprachen und Komplexitätstheorie

Übung 13: Quellencodierung

Lösungen Die Seite 7 berücksichtigt die Kärtchen A, B, E. Kärtchen C und D kann man mit Angaben aus der Tabelle Seite 8 vergleichen.

Einführung in die Informatik II Aus der Informationstheorie: Datenkompression

Grundlagen von Rasterdaten

DURCHFÜHRUNG (FORMELN):...

Übersicht. Datenstrukturen und Algorithmen. Übersicht. Motivation. Vorlesung 10: Binäre Suchbäume

Einführung in die funktionale Programmierung

ALP I. Funktionale Programmierung

Motivation Algorithmen für Ad-hoc- und Sensornetze. Ad-hoc-Lösung: CSMA/CA. VL 10 Eine kurze Geschichte vom Färben

Abstrakter Datentyp (ADT): Besteht aus einer Menge von Objekten, sowie Operationen, die auf diesen Objekten wirken.

WS 2011/2012. Robert Giegerich Dezember 2013

Lösungsvorschläge Aufgaben 14.1, 14.3, 14.4

Liste: beliebig lange, geordnete Sequenz von Termen. Kopf ist erstes Listenelement, Schwanz die restliche Liste

Molekulare Bioinformatik

Formale Systeme, WS 2010/2011 Lösungen zum Übungsblatt 1

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie

Programmieren in Haskell Programmiermethodik

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 16/17. Kapitel 14. Bäume. Bäume 1

Farb-Fernsehsignal (Composite FBAS)

4. OBDDs und Modellüberprüfung

Übersicht. Aktivitäten-Auswahl-Problem. Greedy Algorithmen. Aktivitäten-Auswahl-Problem. Aktivitäten-Auswahl-Problem. Datenstrukturen & Algorithmen

Lemma Für jede monotone Grammatik G gibt es eine kontextsensitive

Formale Methoden 2. Gaetano Geck Lehrstuhl I Logik in der Informatik WS 2015/2016

Sei Σ ein endliches Alphabet. Eine Sprache L Σ ist genau dann regulär, wenn sie von einem regulären Ausdruck beschrieben werden kann.

Übersicht. Datenstrukturen und Algorithmen. Übersicht. Heaps. Vorlesung 8: Heapsort (K6) Joost-Pieter Katoen. 7. Mai 2015

Modul Computersysteme Prüfungsklausur SS Prof. Dr. J. Keller LG Parallelität und VLSI Prof. Dr.-Ing. W. Schiffmann LG Rechnerarchitektur

Huffman-Kodierung. Fachbereich Medieninformatik. Hochschule Harz. Huffman-Kodierung. Referat. Henner Wöhler. Abgabe:

Theoretische Informatik I

TeI = 1 D C = C. Rechnerarchitektur I Informationsdarstellung. Technische Universität Dresden Institut für Technische Informatik

Transkript:

Funktionale rogrammierung uffman-kodierung ildquelle: http://www.fim.uni-linz.ac.at/lva/echtlichespekte//tegano/bilder/huffman.gif

Funktionale rogrammierung otivation ir möchten achrichten komprimieren: - peicherplatzreduzierung => nergie und Zeit bei Übertragung sparen - ohne nformationsverlust - mit einer effizienten iederherstellung der originalen nformation

Funktionale rogrammierung Zwei ösungen auflängenkodierung atenkompression ange Folgen sich wiederholender Zeichen können in einer kompakten Form kodiert werden, indem jede Folge durch die nzahl der iederholungen und eine einmalige ngabe des sich wiederholenden Zeichens ersetzt wird. Kodierung mit variabler änge äufige Zeichen werden mit möglichst kurzen itfolgen kodiert und längere itfolgen werden für nicht sehr häufige Zeichen benutzt.

Funktionale rogrammierung atenkomprimierung auflängenkodierung eispiele: original XXXXXXXQKKKKK Kompakte Form 7XQ5K ei binär kodierten ateien brauchen wir nicht einmal die Zeichen anzugeben, weil wir wissen, dass die äufe sich nur zwischen und abwechseln. 7

Funktionale rogrammierung auflängenkodierung compress :: (q a) => [a] -> [(a, nt)] compress [] = [] compress (x:xs) = enc [] (x,) xs where enc :: (q a) => [(a, nt)] -> (a, nt) -> [a] -> [(a, nt)] enc ls (x,n) [] = ls ++ [(x,n)] enc ls (x,n) (y:ys) x==y = enc ls (x, n+) ys otherwise = enc (ls ++ [(x,n)]) (y,) ys

Funktionale rogrammierung auflängenkodierung GF-Kompression * * 5 * * 7 * * gut für GF-Kompression schlecht für GF-Kompression

Funktionale rogrammierung Frage Kodierung mit variabler änge ie können Zeichen kodiert werden, sodass die it-änge eines extes minimiert wird enn wir n verschiedene Zeichen mit einer festen it- änge kodieren möchten, brauchen wir mindestens log n its für die Kodierung jedes Zeichens. Zeichen werden normalerweise mit its (-ode) oder its (O) kodiert.

Funktionale rogrammierung Kodierung mit variabler änge Grundlegende dee: ie nzahl der its für die Kodierung der einzelnen Zeichen an die äufigkeit innerhalb des extes anzupassen. Kürzere itfolgen für häufige Zeichen und längere itfolgen für seltene Zeichen.

Funktionale rogrammierung ntropie nformationstheorie athematical heory of ommunication laude hannon ie ntropie eines Zeichensystems ist ein aß für den mittleren nformationsgehalt des ystems.

Funktionale rogrammierung ntropie achricht Quelle z..z..z..z z 7 ie nformation, die ein Zeichen trägt, hängt von seiner äufigkeit ab. eltene Zeichen vermitteln mehr nformation als häufige Zeichen. eispiel: eim orträtsel hilft es viel mehr, zu wissen, dass ein seltener uchstabe vorkommt als einer, der sehr häufig auftritt. enn die ahrscheinlichkeit des uftretens eines bestimmten Zeichens z i gleich p i ist, wird der nformationsgehalt von z i wie folgt definiert: i = log (/p i )

Funktionale rogrammierung ntropie achricht Quelle z..z..z..z z 7 er mittlere nformationsgehalt der gesamten Quelle wird als die ntropie der achricht bezeichnet und wie folgt definiert: n () = Σ p i log (/p i ) i= ir brauchen log (/p i ) its um z i zu kodieren

Funktionale rogrammierung atenkomprimierung Kodierung mit variabler änge ie äufigkeit der Zeichen hängt von der rt der nformation ab. eispiel: ÄFG.........................................

Funktionale rogrammierung Kodierung mit variabler änge ie kann man für eine beliebige Zeichenfolge die optimale Kodierung mit variabler änge festlegen ch will die itfolge dekodieren. ie kann ich wissen, wann die Kodierung eines Zeichens zu nde ist

Funktionale rogrammierung uffman-kodierung avid. uffman stellte 5 einen lgorithmus, der aus einer gegebenen achricht einen räfixkode erstellt, der die änge einer kodierten achricht minimiert. ine konstante ahrscheinlichkeitsverteilung der einzelnen Zeichen wird verwendet.

Funktionale rogrammierung Kodierung mit variabler änge Für diese rt der Komprimierung mit variabler änge hat sich uffman einen optimalen lgorithmus ausgedacht, mit dem die Kodierung und ekodierung von nformation realisiert werden kann. ie uffman-kodierung wird überall für die atenkomprimierung verwendet, und je nachdem, welche igenschaften die aten haben, spart man meistens zwischen % und % des ursprünglichen latzes.

Funktionale rogrammierung Kodierung mit variabler änge räfix-kodierung m aus einer itfolge Zeichen mit einer variablen itlänge eindeutig zu erkennen, muss die Kodierung die igenschaft haben: Keine itkodierung eines Zeichens darf als räfix in der Kodierung eines anderen Zeichens vorkommen. eispiel: enn die Kodierung von ist, darf keine andere Zeichenkodierung die its am nfang haben.

Funktionale rogrammierung rzeugung des uffman-ode rie Für die ekodierung brauchen wir eine effiziente allgemeine arstellung der Kodierung aller Zeichen, und das wird mit einer rie-atenstruktur gemacht. in rie ist eine aumstruktur mit der igenschaft, dass die nformation sich nur in den lättern befindet. ie inneren Knoten sind nur erkettungsknoten.

Funktionale rogrammierung rzeugung des uffman-ode. ie äufigkeiten der Zeichen werden berechnet ehmen wir an, wir wollen eine extdatei komprimieren. Zuerst zählen wir, wie oft jedes Zeichen in der atei vorkommt. eispiel: ÄFG äufigkeiten

Funktionale rogrammierung rzeugung des uffman-ode. er rie-aum wird wie folgt erzeugt. ie äufigkeiten werden in einer in-riority-queue gespeichert. ine in-riority-queue ist nichts anderes als eine atenstruktur, auf der die Operationen xtract-in und nsert definiert sind.

rzeugung des uffman-aumes. ie zwei Knoten mit den kleinsten äufigkeiten in der prioriry-queue werden extrahiert und deren äufigkeiten addiert.. ie umme wird in einem neu erzeugten Knoten gespeichert, der als linkes und rechtes Kind die zwei extrahierten Knoten hat. Funktionale rogrammierung

rzeugung des uffman-aumes. Zum chluss wird die urzel des neuen inärbaums wieder in die priority-queue eingefügt. Funktionale rogrammierung

Funktionale rogrammierung rzeugung des uffman-aumes

rzeugung des uffman-aumes

rzeugung des uffman-aumes

rzeugung des uffman-aumes

rzeugung des uffman-aumes

rzeugung des uffman-aumes

rzeugung des uffman-aumes

rzeugung des uffman-aumes

rzeugung des uffman-aumes

rzeugung des uffman-aumes

rzeugung des uffman-aumes

rzeugung des uffman-aumes

rzeugung des uffman-aumes

rzeugung des uffman-aumes

rzeugung des uffman-aumes

rzeugung des uffman-aumes

rzeugung des uffman-aumes

rzeugung des uffman-aumes

rzeugung des uffman-aumes

rzeugung des uffman-aumes

rzeugung des uffman-aumes

rzeugung des uffman-aumes

rzeugung des uffman-aumes

rzeugung des uffman-aumes

rzeugung des uffman-aumes 7

rzeugung des uffman-aumes 7

rzeugung des uffman-aumes 7

rzeugung des uffman-aumes 7

rzeugung des uffman-aumes 7

rzeugung des uffman-aumes 7

rzeugung des uffman-aumes 7

rzeugung des uffman-aumes 7

rzeugung des uffman-aumes 7 7

Kodierung der Zeichen er ode jedes Zeichens wird aus dem eg von der urzel des aumes bis zu dem entsprechenden uchstaben aus den Kanten abgelesen.... 7 7

ekodierung 7 7

ekodierung 7 7

ekodierung 7 7

ekodierung 7 7 amit die nformation später dekodiert werden kann, muss der dazu gehörige uffman- aum in der komprimierten atei beinhaltet sein.