LZxx Kompressionsverfahren. und. Anwendungsmöglichkeiten

Ähnliche Dokumente
Eigenschaften von Kompressionsverfahren

Datenkompression. 1 Allgemeines. 2 Verlustlose Kompression. Holger Rauhut

1 / 33. P.F. Stadler & S. Will (Bioinf, Uni LE) ADS 2, V5 07. Mai / 33

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

Basisinformationstechnologie II

Übung 13: Quellencodierung

Kodierungsalgorithmen

Dynamisches Huffman-Verfahren

Der LZ77 Algorithmus. von. Stefan Mühlinghaus Matrikelnummer: Benutzerkennung: ai495

Übung 1: Quellencodierung

Verlustfreie Kompression

Einführung in Kompressionstechniken

Algorithmen und Datenstrukturen 2

Referat zum Thema Huffman-Codes

Seminar Kompressionsalgorithmen Huffman-Codierung, arithmetische Codierung

A2.3: Zur LZ78 Komprimierung

Referat für Algorithmische Anwendungen WS 2006/ 07: Verlustfreie Datenkompression mit dem Deflate-Algorithmus (LZ77- und Huffman-Codierung)

Algorithmen und Datenstrukturen 2-3. Seminar -

2. Digitale Codierung und Übertragung

Datenstrukturen und Algorithmen. Christian Sohler FG Algorithmen & Komplexität

2. Digitale Codierung und Übertragung

DIGITALE VIDEO KOMPRESSION AM BEISPIEL DES JPEG-VERFAHRENS

Datenkompression: Lempel-Ziv-Codierung

CODIERUNGSTHEORIE KURS ZELL AN DER PRAM, FEBRUAR 2005

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

Panorama der Mathematik und Informatik

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

Kompression und Datenformate. Grundlagen der Bildspeicherung, Kompressionsverfahren, Datenformate

(Prüfungs-)Aufgaben zur Codierungstheorie

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

Textkompression: Burrows-Wheeler-Transformation

Datenkompression. Vortrag von Markus Durzinsky Student der Otto-von-Guericke-Universität Magdeburg

Kapitel 2: Informationstheorie. 3. Quellencodierung

Problem: Finde für Alphabet mit n Zeichen einen Binärcode, der die Gesamtlänge eines Textes (über diesem Alphabet) minimiert.

Quellencodierung NTM, 2006/05, 9.3 Quellencodierung, Rur, 1

GI Vektoren

Einführung in die Theoretische Informatik

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

Codierung von Text. PC in Betrieb nehmen. Der ASCII-Code (American Standard Code for Information Interchange) ASCII

Stochastische Lernalgorithmen

Algorithmen zur Analyse historischer Landkarten. Benedikt Budig Universität Würzburg

LR(1) Itemmengenkonstruktion

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

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny

Proseminar WS 2002/2003

Redundanz. Technische Informationsquelle Entropie und Redundanz Huffman Codierung. Martin Werner WS 09/10. Martin Werner, Dezember 09 1

Technische Universität München SS 2006 Fakultät für Informatik 12. Oktober 2006 Prof. Dr. A. Knoll. Aufgabe 1 Transferfragen (Lösungsvorschlag)

Eine verlustbehaftete Komprimierung ist es, wenn wir einige Kleidungsstücke zu

Digitalisierung. analoges Signal PAM. Quantisierung

Run Length Coding und Variable Length Coding

Organisation. Was kommt zum Test? Buch Informatik Grundlagen bis inkl. Kapitel 7.4 Wissensfragen und Rechenbeispiele

Schwierigkeiten bei der Entropiebestimmung

Einführung in die Informatik 2

Digitale Bilddateien

Mathematik für Information und Kommunikation

Die Digitalisierung von Musik

Sparen mit Datenkompression

Digitale Bildverarbeitung (DBV)

Domain-independent. independent Duplicate Detection. Vortrag von Marko Pilop & Jens Kleine. SE Data Cleansing

Grundlagen der Informatik

1. Woche Einführung in die Codierungstheorie, Definition Codes, Präfixcode, kompakte Codes

Datenkompression. Kommunikationstechnik, SS 08, Prof. Dr. Stefan Brunthaler 167

Studiengang Informatik der FH Gießen-Friedberg. Sequenz-Alignment. Jan Schäfer. WS 2006/07 Betreuer: Prof. Dr. Klaus Quibeldey-Cirkel

Kodierung. Kodierung von Zeichen mit dem ASCII-Code

2.4 Darstellung von Zeichen(ketten)

Gegen verlustbehaftete Kompression = für verlustfreie Kompression

Formale Sprachen und Automaten

Java-Programmierung mit NetBeans

2. Digitale Codierung und Übertragung

( ) Lineare Gleichungssysteme

Bildbearbeitung: Grafikformate II und Farbmodelle

Einführung in die Programmiertechnik

Kodierung. Kodierung von Zeichen mit dem ASCII-Code

Codierung. Auszug aus dem Skript von Maciej Liśkiewicz und Henning Fernau

Einstieg in die Informatik mit Java

Textkompression: Burrows-Wheeler-Transformation

7. Übung zur Vorlesung Grundlagen der Informatik

Objektorientierte Programmierung. Kapitel 10: Strings

Algorithmen mit konstantem Platzbedarf: Die Klasse REG

Konzepte der Informatik

Textkompression: Burrows-Wheeler-Transformation

Praktikum BKSPP. Aufgabenblatt Nr Umrechnung zwischen Stellenwertsystemen

Dynamische Geometrie

2. Digitale Codierung und Übertragung

10%, 7,57 kb 20%, 5,3 kb 30%, 4,33 kb 40%, 3,71 kb 50%, 3,34 kb. 60%, 2,97 kb 70%, 2,59 kb 80%, 2,15 kb 90%, 1,62 kb 99%, 1,09 kb

Universität Karlsruhe (TH)

Vorkurs Informatik WiSe 16/17

Überblick. TSP Vergleich der Lösungen. Das Travelling Salesman Problem. Nearest-Neighbor Heuristik für TSP

Deterministischer Kellerautomat (DPDA)

10. Datenbank Design 1

Hardware-kompatible Messdatenkomprimierung. Benjamin Steinwender, MSc KAI Kompetenzzentrum Automobilund Industrie-Elektronik GmbH, 9500 Villach

Theoretische Informatik. Alphabete, Worte, Sprachen

1 Mengen und Aussagen

Kapitel 5. Kapitel 5 Fehlererkennende Codes

LL(1)-Parsing. Ullrich Buschmann, Linda Schaffarczyk, Maurice Schleussinger. Automatische Syntaxanalyse (Parsing)

Summenformel für arithmetische Reihen. Summenformel für geometrische Reihen. Wie groß ist die Summe der Zahlen von 1 bis n?

Kombinatorik. Additions- und Multiplikationsgesetz

Kompression von DNA Sequenzen. Diplomarbeit

Fachhochschule Furtwangen Studiengang Allgemeine Informatik

HTBL Steyr Bildkomprimierung Seite 1 von 9. Ernst Geretschläger

Transkript:

LZxx Kompressionsverfahren und Anwendungsmöglichkeiten 1

Vorschau 1. LZxx-Verfahren und Beispiele 2. Pressestimmen 3. Entropie 4. Anwendungen 4.1.Spracherkennung 4.2.Autorenidentifikation 4.3.Sprachklassifizierung 4.4.weitere Anwendungen 5. Quellen 2

1. Kompressionsverfahren Entwickelt von Abraham Lempel und Jacob Ziv, 1977+, Technion, Haifa, Israel LZxx ist die Familie der am meisten eingesetzten Kompressionsverfahren, Implementationen sind z.b. gzip, compress, zip, Stacker, WinZip nicht zu verwechseln mit neueren Verfahren wie z.b. bzip2 viele verschiedene Unterarten: 3

Markus Stengel Universität Tübingen Juni 2002 LZ77 Begriffe Begriff Input Stream Character Coding Position Lookahead Buffer Window Pointer Erklärung Eingabestrom : zu komprimierende Sequenz von Zeichen (character) Zeichen : das zugrundeliegende Datenelement im Eingabestrom (input stream) Position des character's im Eingabestrom, das gerade kodiert wird (Anfang des lookahead buffer's) die Zeichenfolge von der coding position bis zum Ende des input stream's Das Fenster der Größe W enthält die W character vor der coding position, also die letzten W bearbeiteten character verweist auf die letzte Übereinstimmung im Fenster und gibt die Länge derselben an Idee Suche nach der längsten Übereinstimmung im Fenster, beginnend beim lookahead buffer gibt einen Zeiger auf die Übereinstimmung zusammen mit dem ersten darauffolgenden character des lookahead buffer's zurück gibt es keine Übereinstimmung, wird ein null -Zeiger und der character an der aktuellen Position zurückgegeben 4

Kompressionsalgorithmus 1. setze der coding position auf den Anfang des Eingabestroms 2. finde die längste Übereinstimmung im Fenster für den lookahead buffer 3. gib das Paar (P,C) mit der folgenden Bedeutung zurück: P ist der Zeiger auf die Übereinstimmung im Fenster C ist der erste character im lookahead buffer, für den keine Übereinstimmung gefunden werden konnte 4. ist der lookahead buffer nicht leer, setze das Fenster auf C und die coding position auf den character nach C und wiederhole ab Schritt 2 Beispiel Eingabestrom: Position 1 2 3 4 5 6 7 8 9 10 character A A B C B B A B C X Kodierungsablauf: Schritt Position Übereinst. Zeichen Ausgabe 1 1 -- A (0,0) A 2 2 A B (1,1) B 3 4 -- C (0,0) C 4 5 B B (2,1) B 5 7 A B C X (5,3) X 5

Markus Stengel Universität Tübingen Juni 2002 Dekompressionsalgorithmus das Fenster wird gleich behandelt wie bei der Kompression bei jedem Schritt wird (P,C) gelesen Ausgabe der Sequenz aus dem Fenster, die durch P und C spezifiziert wird Eigenschaften Vorteile sehr gute Kompressionsrate für viele Arten von Daten Dekompression sehr schnell geringer Speicherbedarf (gewöhnlich 4-64 Kilobytes) Nachteile Kompression kann aufgrund der Suche nach Übereinstimmungen sehr lange dauern Implementationen WinZip gzip zip Stacker 6

LZ78 Begriffe Begriff Charstream Character Prefix String Code word Code stream Dictionary Current prefix Current character Current code word Erklärung Zeichenstrom : zu komprimierende Sequenz von Zeichen (character) Grundlegendes Datenelement in einem charstream Präfix : eine Sequenz von Zeichen, die einer anderen vorangeht Das prefix zusammen mit dem character, dem es vorangeht Grundlegendes Datenelement im code stream; es repräsentiert einen string aus dem dictionary Die Sequenz der code words und characters (also die Ausgabe des Kompressionsalgorithmus) Eine Tabelle mit strings als Einträge. Jedem string wird entsprechend seiner ID im dictionary ein code word zugeordnet Das prefix, das gerade vom Kompressionsalgorithmus bearbeitet wird. Symbol: P Wird vom Kompressionsalgorithmus ermittelt. Im Allgemeinen ist dies der character, dem das aktuelle prefix vorangeht. Symbol: C Das code word, das gerade vom Dekompressionsalgorithmus bearbeitet wird. Es wird mit W bezeichnet, und die strings, die es repräsentiert, als string.w. 7

Markus Stengel Universität Tübingen Juni 2002 Idee am Anfang ist das dictionary leer ein neuer character wird gelesen ist er noch nicht im dictionary, wird er diesem hinzugefügt ansonsten wird er an den längsten, passenden string im dictionary angehängt und als neuer Eintrag abgespeichert immer längere Einträge im dictionary 8

Kompressionsalgorithmus 1. Dictionary und P sind leer 2. C := der nächste character im charstream 3. Gibt es den string P+C bereits im dictionary? a) ja, P := P+C (erweitere P mit C) b) nein, i. gib diese zwei Objekte an den codestream: (1)das code word, das P zugeordnet ist (wenn P leer ist, gib 0 zurück) (2)C, in der gleichen Form wie im charstream ii. füge den string P+C dem dictionary hinzu iii.p := leer 4. weitere character im charstream? a) ja, gehe zu Schritt 2 b) nein, i. wenn P nicht leer ist, gib das code word aus, das P zugeordnet ist ii. ENDE 9

Markus Stengel Universität Tübingen Juni 2002 Beispiel Eingabestrom: Position 1 2 3 4 5 6 7 8 9 character A B B C B C A B A Kodierungsablauf: Schritt Position dictionary Ausgabe 1 1 A (0,A) 2 2 B (0,B) 3 3 B C (2,C) 4 5 B C A (3,A) 5 8 B A (2,A) Dekompressionsalgorithmus Zu Beginn ist das dictionary leer funktioniert genauso wie die Kompression, jedoch wird nicht C, sondern (W,C) gelesen und der entsprechende string zurückgegeben 10

Markus Stengel Universität Tübingen Juni 2002 Eigenschaften Vorteile ähnlich gute Kompressionsrate für viele Arten von Daten weniger Vergleiche müssen durchgeführt werden als bei LZ77 Nachteile Speicherbedarf kann stark wachsen (lange Einträge im Wörterbuch) Implementationen Compress 11

Weitere LZxx-Kompressionsverfahren Lempel-Ziv-Storer-Szymanski (LZSS): Verbesserung des LZ77-Verfahrens setzt bei der Kodierung ein spezielles Bit zur Identifizierung des code words setzt und spart somit weiteren Platz Lempel-Ziv-Welch (LZW): wichtigste Variante des LZ78-Algorithmus Hauptunterschiede zu LZ78: das dictionary ist niemals leer, sondern wird mit allen characters vorinitialisiert one-character-prefix der character, mit dem ein neues prefix beginnt, ist der letzte character des vorherigen strings Lossy LZW Algorithmus (LLZW): an GIF-LZW-Algorithmus angelehnt Dekompression ist kompatibel Lempel-Ziv-Miller-Wegman (LZMW): Variante des LZW-Verfahrens hängt anstatt einzelnen Buchstaben den längstmöglichen string aus dem dictionary an 12

2. Pressestimmen berichteten über die Arbeit von Dariao Benedetto, Emanuelle Caglioti und Vittorio Loreto von der Universita degli Studi di Roma La Sapienza, veröffentlicht in der Fachzeitschrift Physical Review Letters besonders hervorgehoben wurde die Eignung der Methode, um die Sprache eines Textes zu erfassen den Autor eines Textes zu identifizieren teilweise wurde gezeigt, daß die Methode nicht für alle Zwecke verwendbar ist (mögliches Interpretationsproblem) 13

3. Entropie Im Folgenden soll die Definition von Chaitin-Kolmogorov gelten: Die Entropie einer Zeichenfolge ist die Länge (in Bits) des kleinsten Programms, welches die Zeichenfolge produziert. 14

Markus Stengel Universität Tübingen Juni 2002 4. Anwendungen Bei der Analyse einer Zeichenfolge interessiert der Informationsgehalt, z.b.: Teilsequenz eines DNA-Strangs, die ein Gen bestimmt Interpretation und Verstehen eines geschriebenen Texts (Sprache, Thema, Autor, etc.) Informationsgehalt ist die Entropie Frage: Kann daraus die semantische Information ermittelt werden? Vorschau Methode, die Distanz bzw. Ähnlichkeit zweier Zeichenfolgen zu messen Klärung der Übertragbarkeit auf die Semantik zumindest bei den durchgeführten Experimenten gelangen Erkennung der Sprache Ermittelung des Autors Erfassung des Themas zum Zwecke der automatischen Klassifikation/ Verschlagwortung 15

Distanz Durchschnittliche Distanz zwischen zwei aufeinanderfolgende Sequenzen der Form 1... n ist die Ordnung des Inversen ihrer Auftrittswahrscheinlichkeit häufiger auftretende Sequenzen brauchen weniger Bytes, seltenere benötigen mehr geht nicht deutlich hervor, was gemeint ist: a) wird zusätzliche Kodierung (z.b. Huffman ) bereits einbezogen b) je länger die Sequenz, desto größer die Platzersparnis genutzte Eigenschaft: Der Quotient aus der Länge eines komprimierten Textes und der unkomprimierten Länge strebt gegen die Entropie des Zeichenstroms. 16

Symbol S Z s Bedeutung unkomprimierter Text komprimierter (gezippter) Text Entropie pro Zeichen des Quelltextes lim Z S s für S In anderen Worten: Der Text wird nicht auf die beste Weise kodiert, aber je länger er ist, umso mehr nähert er sich dem Optimum an. Relative Entropie Die relative Entropie gibt an, wieviel Speicherplatz verschwendet wird, wenn eine Zeichenfolge mit einer Methode komprimiert wird, die für eine andere Folge optimiert wurde. 17

Markus Stengel Universität Tübingen Juni 2002 Maß für die Länge: Symbol Bedeutung ein Zeichenstrom ein Zeichenstrom A lange Sequenz von a kurze Sequenz von B lange Sequenz von b kurze Sequenz von b A+b L X Zahl der Zeichen von b Konkatenation von b an A, anschließendes komprimieren (zippen) Länge eines gezippten Textes X in Bits Das Maß für die Länge von b in der für A optimierten Kodierung: Ab L A b relative Entropie je Zeichen zwischen und : L A S Ab b Bb In anderen Worten: Sind und Texte in verschiedenen Sprachen, so ist Ab ein Maß für die Schwierigkeit, die eine Person mit der Muttersprache hat, einen Text in der Sprache zu lesen 18

Eigenschaften des Verfahrens: Praktische Versuche brachten eine hervorragende Übereinstimmung mit den theoretischen Werten zustande Verfahren sehr robust in Bezug auf Variationen in der Dateigröße, typisch: A:32-64 Kilobytes b: 1-15 Kilobytes 19

Markus Stengel Universität Tübingen Juni 2002 Anwendung: Spracherkennung Ziel Automatische Erkennung der Sprache eines Textes Gegeben Text X eine Sammlung langer Texte in sovielen Sprachen wie möglich Ablauf an alle Texte A i in allen Sprachen wird ein Auszug x des Textes X angehängt Messung der Unterschiede mittels der Text mit dem kleinsten geschrieben i L Ai x L Ai i ist in derselben Sprache Versuch 10 Texte in je 10 Sprachen: Dänisch, Deutsch, Englisch, Finnisch, Französisch, Holländisch, Italienisch, Portugiesisch, Schwedisch, Spanisch Sammlung von 100 Texten Ergebnis jeder Text X mit einer Länge 20 Buchstaben Länge wurde der richtigen Sprache zugeordnet 20

Markus Stengel Universität Tübingen Juni 2002 Anwendung: Autorenidentifikation Ziel automatische Zuordnung eines Textes zu einem Autor Gegeben Text X, der zugeordnet werden soll eine möglichst große Sammlung von Texten bekannter Autoren in derselben Sprache wie Text X Ablauf an alle Texte A i von allen Autoren wird ein Auszug x des Textes X angehängt Suche nach dem Text A i, dessen Unterschied i L Ai x L Ai minimal ist Versuch Sammlung von insgesamt 90 Texten von 11 italienischen Autoren 21

Autor Textanzahl Erste Wahl Zweite Wahl Alighieri 8 8 8 D'Annunzio 4 4 4 Deledda 15 15 15 Fogazzaro 5 4 5 Guicciardini 6 5 6 Macchiavelli 12 12 12 Manzoni 4 3 4 Pirandello 11 11 11 Salgari 11 10 10 Svevo 5 5 5 Vega 9 7 9 Summe 90 84 89 Ergebnis Eindeutige Zuordnung des Textes in 93,3% der Fälle ( erste Wahl ) in der engen Auswahl in 98,9% der Fälle (als schlechtestenfalls zweite Wahl ) Bemerkung: Erfolgsrate durch z.b. Gewichtung der Durchschnitte der ersten m als wahrscheinlich eingestuften Kandidaten des Textes noch steigerbar Faktoren wie z.b. Variationen im Schreibstil beeinflussen die Erfolgsrate 22

Markus Stengel Universität Tübingen Juni 2002 Anwendung: Sequenzklassifikation Ziel Klassifikation von Sprachen anhand von Texten Gegeben eine möglichst große Sammlung von Texten in jeweils sovielen Sprachen wie möglich Probleme Verfügbarkeit derselben langen Texte in vielen verschiedenen Sprachen einheitliche Kodierung des Textes Ablauf jeder Text in jeder Sprache wird an jeden der anderen Texte angehängt Konstruktion einer Distanzmatrix, deren Elemente die Distanzen zwischen zwei Texten sind: S Normalisierung mit Ab Bb Bb Aa bzw. Ba Bb Aa Aa Entropie keine Distanz im mathematischen Sinne Matrixelemente sollen die Dreiecksungleichung erfüllen Erzeugung des Sprachbaums aus der Distanzmatrix mittels der Margoliaschen Methode aus dem Softwarepaket PhylIP (Phylogeny Inference Package) Versuch In 52 europäischen Sprachen: Die Allgemeine Erklärung der Menschenrechte Kodierung der Texte in UNICODE 23

Ergebnis Alle linguistischen Hauptgruppen Romanisch, Keltisch, Germanisch, Ugro-Finnisch, Slavisch, Baltisch und Altaisch wurden erkannt 24

Zusammenfassung Verschiedene Anwendungen wurden für eine sehr allgemeine Methode, Sequenzen zu erkennen und zu klassifizieren, gezeigt weitere Anwendungen, z.b. Ermittlung des Informationsgehalt (s. folgendes Beispiel) sind denkbar (Aktienkurse, DNA, etc.) Bemerkung Die Arbeit von Benedetto, Caglioti und Loreto ist nicht die erste, die mit mathematischen Methoden literarische Texte auf Autorenschaft prüft: Linguistikprofessor George Zipf, 1932, Harvard-Universiät: Studien zur Wortfrequenz George Yule, Schottland, 1944: ordnete in seinem Werk The Statistical Study of Literacy De imitatione Christi aus dem 15. Jh. dem Mystiker Thomas a Kempis zu amerikan. Statistiker R. Frederik Morteller und David L Wallace, 1964: gaben Aufschluß über die Autoren der Federal Papers aus dem 18. Jh. 25

Markus Stengel Universität Tübingen Juni 2002 Praxisbeispiel: Versuche eines Journalisten Versuch 1: Informationsgehalt Gegeben: 18 Texte, 14000 Wörter, 105000 Zeichen häufigstes Thema: Israel WinZip als Kompressionsprogramm 1. reine Kompression: Kompression auf 1 3 der ursprünglichen Größe, also 2 3 Redundanz 2. Sortierung: Kompression auf 1 5 der ursprünglichen Größe, also hat sein Text etwa 15% mehr Relevanz als ein Wörterbuch 3. Randomisierung: Kompression auf 2 5 der Größe, eine zufällige Sammlung hat also mehr Gehalt als die verfassten Artikel 26

Markus Stengel Universität Tübingen Juni 2002 Versuch 2: Autorenidentifikation und Vergleich Gegeben: je ein langer (1000 Wörter) und ein kurzer (50 Wörter) Text von zwei Journalisten WinZip als Kompressionsprogramm 1. Identifizierung des Autors: korrekte Identifizierung des Autors 2. Vergleich kurze mit langen Artikeln: außerordentlich gute Kompression, also nur wenig neues in den Artikeln Bemerkung: Nicht korrekte Anwendung des Verfahrens oben definierter Entropiebegriff lässt sich nicht ohne weiteres auf die Semantik, bzw. den Informationsgehalt, übertragen 27

5. Quellen Language Trees and Zipping, Benedetto, Caglioti, Loreto, La Sapienza Universität, Rom, Italien, 13.05.2002 Buchstabenstauchung, Neue Züricher Zeitung, 31.05.2002, http://www.nzz.ch Datenkompressionen, http://www.datacompression.info/lossless.shtml, http://www.rasip.fer.hr/research/compress/algorithms/fund Zip-Algorithmus identifiziert Autoren, Heise Newsticker, 28.01.2002, http://www.heise.de/newsticker 28