Skiseminar Multimedia WS 07/08 Bastian Behrend

Slides:



Advertisements
Ähnliche Präsentationen
Das LCA – Problem in Suffixbäumen
Advertisements

Suche in Texten (Stringsuche )
11. Datenkomprimierung Bei den meisten bisher betrachteten Algorithmen wurde vor allem das Ziel verfolgt, möglichst wenig Zeit aufzuwenden, und erst in.
Sortierverfahren Richard Göbel.
Sortierverfahren Richard Göbel.
Kompressionsverfahren für Texte
Huffmans Kompressionsverfahren
Effiziente Algorithmen
BILDFORMATE von Margarita Isjurowa.
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
Information und Kommunikation
Kompressionsprinzipien bei digitalen Bildern
Sükün_Karatas Grundlagen der Codes Sükün_Karatas 3aFD.
Anleitung für das Herunterladen von Filmen (Medien-Download) Starten.
Funktionsweise eines Funambolservers Natascha Graf Aachen, 01. Februar 2010.
Kommunikation verbindet. Und wer verbindet die Kommunikation? COSYNUSconnect: Universeller Zugriff auf Unternehmensdatenbanken Ivan Dondras, IT-Consultant.
1 Quantencomputer Vom Mythos zur Realität Lehnen Sie sich zurück und geniessen Sie, was ich zu sagen habe und fragen Sie nicht nach dem Wieso, denn sonst.
1. 2 Das Grundproblem der Beurteilenden Statistik ● Wir haben uns bisher mit Problemen der Wahrscheinlichkeitsrechnung beschäftigt: – Die Wahrscheinlichkeit.
1 Das Dilemma des Architekten Ziel: ein gut designtes System, welches mit zukünftigen Anforderungen umgehen kann, ohne dass es zu Einschränkungen in der.
Touchability of Touchscreens
BewO Bewerberverfahren Online Baden-Württemberg
Anforderungen an die neue Datenstruktur
Ergebnisse der Bedarfsermittlung zur Einrichtung von Ganztaggrundsschulen in der Gemeinde Kirchlinteln Oktober 2016.
Arbeitsteilung Vorlesung Mikroökonomik
Inklusionsbarometer 2016 Zahlen & Fakten (beruhend auf dem vierten Inklusionsbarometer der Aktion Mensch (Komplette Studie:
Grundlagen der Informationsverarbeitung
Grundlast – Mittellast – Spitzenlast
Huffman – Kodierbaum zur Textkompression
Projekt: Freie Tauchausbildungsunterlagen
Das Online- Gutscheinportal
Seminar im Fach Geoinformation IV
Musterlösung zur Klausur "Diskrete Mathematik" vom
Diskrete Mathematik II
Das Problem des Handlungsreisenden
Angriffe gegen kryptografische Hash-Funktionen (SHA1, MD5)
Logisches Datenmodell
Abiturprüfung Mathematik 2017 Baden-Württemberg Allgemeinbildende Gymnasien Wahlteil Analysis A 1 Lösungen der Aufgaben A 1.1 und A 1.2
Scanner Eingabe von Bildinformation
Algorithmen.
Non-Standard-Datenbanken
Symmetrische Verschlüsselung
MLDM Übung 6 - Evaluation
Gemeinsames Lernen von Kindern mit und ohne Beeinträchtigung
Handlungsfelder Aspekte Prämissen Inhalte Umsetzungsprozesse
Office Excel Version 2007.
Herzlich Willkommen Präsentation für das Angebot «einfache Verlinkung»
Einführung in das Computerzentrum
Bernhard Riemann und sein Integral
Zentrifugalkraft & Zentripetalkraft
Eingabegerät Die Tastatur
3 Gesamtbeschreibung empirischer Verteilungen.
Einführung in die Programmierung
Forschungsstrategien Johannes Gutenberg Universität Mainz
PI Infrastruktur in der Max-Planck-Gesellschaft
Methodische Grundlagen des Software-Engineering
Diplomarbeit Thema Foto erwünscht Bearbeiter: Vorname Nachname
Kap. 12 R-Bäume GB B31 B245 Box 1: Box 2: Box 3: Box 4: Box 5:
DESIGN THINKING.
Abstandsbestimmungen
Algorithmen und Datenstrukturen
Kapitel IX: Übertragungsprotokollimplementierungen
Erwartungswerte berechnen
Komprimieren heisst einfach ausgedrückt:
3. Die Datenstruktur Graph 3.3 Durchlaufen von Graphen
Nutzung und Modellierung von Datenbanken
Abiturprüfung Mathematik 2015 Baden-Württemberg Allgemeinbildende Gymnasien Wahlteil Analytische Geometrie / Stochastik Aufgabe B 2.1 und B Lösungen.
DB2 – SS 2019 von Baum allgemein bis B*-Baum
Einführung in die Programmierung
Web-Mining Agents Planning
DB2 – SS 2019 von Baum allgemein bis B*-Baum
 Präsentation transkript:

Skiseminar Multimedia WS 07/08 Bastian Behrend - Z I P - Skiseminar Multimedia WS 07/08 Bastian Behrend

Kompressionsalgorithmen Agenda Grundlagen Kompressionsalgorithmen Statistische Verfahren Wörterbuchbasierte Verfahren Aufbau eines ZIP-Archivs Zusammenfassung

Grundlagen Ständig wachsender Datenwust Begrenzte Speicher- und Übertragungskapazitäten Notwendigkeit zur effizienten Nutzung der knappen Ressourcen Daher: Kompression!

Grundlagen Möglichkeiten zur Kompression: verlustfrei oder verlustbehaftet Verlustfrei: Elimination von Redundanzen Komprimierte Daten vollständig auf Eingabedaten zurückführbar z.B. Dokumente Verlustbehaftet: Zusätzlich: Elimination irrelevanter Informationen Nicht vollständig auf Eingabedaten zurückführbar! z.B. MP3, DIVX

Grundlagen Fokus: Verlustfreie Kompression Grundvoraussetzungen: Eingabedaten müssen vollständig rekonstruierbar sein Eindeutige Dekodierbarkeit Zusätzliche Annahme: Beliebige Eingabedaten

Zwei grundsätzliche Ansätze zur verlustlosen Kompression: Grundlagen Zwei grundsätzliche Ansätze zur verlustlosen Kompression: Statistische Verfahren Idee: unterschiedliche Häufigkeit von Zeichen in der Eingabe ausnutzen Wörterbuchbasierte Verfahren Idee: Redundanzen in der Eingabe finden Güte der Kompression: Komprimiergeschwindigkeit Kompressionsverhältnis

Grundlagen Informationsgehalt: Menge an Information, die ein Zeichen trägt Umgekehrt proportional zur logarithmierten Wahrscheinlichkeit, das Zeichen zu erraten Im Fall binärer Zeichenkodierung:

Grundlagen Durchschnittlicher Informationsgehalt einer Nachricht: H wird auch die Entropie einer Nachricht genannt. Die Entropie bildet die untere Schranke bei der verlustlosen Kompression mit statistischen Verfahren!

Kompressionsalgorithmen Agenda Grundlagen Kompressionsalgorithmen Statistische Verfahren Wörterbuchbasierte Verfahren Aufbau eines ZIP-Archivs Zusammenfassung

Statistische Verfahren Ansatz: In einer gegebenen Nachricht kommen Zeichen mit unterschiedlicher Wahrscheinlichkeit vor Statt jedes Zeichen mit derselben Codelänge repräsentiere Häufig auftretende Zeichen mit kurzen Codes! Seltene Zeichen mit langen Codes!

Statistische Verfahren Erzeugung von Kodierungen mit Binärbäumen Beispiel: Zu kodieren sei abcab Zeichen Code a b 10 c 11 Ergebnis: 01011010

Statistische Verfahren Grundvoraussetzung: Eindeutige Dekodierbarkeit! Problem: unterschiedliche Länge der Zeichenkodierungen Beispiel: Zu kodieren sei abcab Zeichen Code a b 1 c 01 Ergebnis: 010101 Nicht eindeutig dekodierbar!!

Statistische Verfahren Präfixfreie Codes: Es gibt keinen Code Ci, der Präfix von Code Cj ist für alle i≠j Notwendige und hinreichende Bedingung: Kraft-McMillan Ungleichung Seien xi Zeichen einer Eingabe und l(xi) die Bitlängen der Zeichen für i=1…n Dann muss gelten:

Statistische Verfahren In dem ersten Beispielbaum: ½ + ¼ + ¼ = 1 Der Baum ist also präfixfrei und optimal. Zeichen Code a b 10 c 11

Statistische Verfahren Huffman Kodierung: Algorithmus zum Erzeugen optimaler Binärbäume! Funktionsweise: Ermittle die Häufigkeitsverteilung der Zeichen in der Eingabe Erzeuge für jedes Zeichen ein Blatt mit der Eintrittswahrscheinlichkeit als Zusatzinformation Verbinde die beiden Blätter mit der niedrigsten Wahrscheinlichkeit. Die Wahrscheinlichkeit des Elternknotens ist nun die Summe der Einzelwahrscheinlichkeiten Iteriere Schritt 3 bis der Baum vollständig ist

Statistische Verfahren Beispiel: Zu kodieren sei: fischers fritz fischt frische fische. Zeichen Häufigkeit P(X) f 5 5/36 i s 4 1/9 c h e 3 1/12 r <Space> t 2 1/18 z 1 1/36 .

Statistische Verfahren Zeichen f i s c h < > e r t z . Kodierung 010 000 001 100 101 110 0110 0111 1110 11110 11111

Statistische Verfahren Wert der Kraft-McMillan Ungleichung: 1 Durchschnittliche Codelänge: 3*5/36+ 3*5/36+ 3*1/9+ 3*1/9+ 3*1/9+ 3*1/9+ 4*1/12+ 4*1/12+ 4*1/18+ 5*1/36+ 5*1/36 = 3,33 Bit Entropie: 3,17 Bit Warum der Unterschied? Binärbäume können nur ganzzahlige Informationsgehalte darstellen!

Statistische Verfahren Arithmetische Kompression Vorüberlegung: Im Intervall ]0,1[ existieren überabzählbar unendlich viele Zahlen. Folgerung: Für jede Eingabe gibt es in diesem Intervall eine Zahl, die die Eingabe eindeutig repräsentiert.

Statistische Verfahren Ablauf: Ermittle die Häufigkeitsverteilung der Zeichen in der Eingabe Teile das Intervall ]0,1[ entsprechend dieser Verteilung auf Wähle das Teilintervall, das dem ersten gelesenen Zeichen entspricht Teile das Unterintervall erneut anhand der Häufigkeitsverteilung auf und wähle das Teilintervall, das dem nächsten gelesenen Zeichen entspricht Iteriere Schritt 4 bis zum Stoppzeichen

Statistische Verfahren Probleme: Endliche Genauigkeit von Computern, daher schwierig zu implementieren Niedrige Geschwindigkeit Weniger weit verbreitet!

Kompressionsalgorithmen Agenda Einführung Grundlagen Kompressionsalgorithmen Statistische Verfahren Wörterbuchbasierte Verfahren Aufbau eines ZIP-Archivs Zusammenfassung

Wörterbuchbasierte Kompression Idee: Redundanzen innerhalb der Eingabe ausnutzen Art des Verfahrens: Statisch Wörterbuch fest vorgegeben Semi-adaptiv Wörterbuch vorgegeben, kann jedoch während der Kompression geändert werden Adaptiv Algorithmus startet mit leerem Wörterbuch

Wörterbuchbasierte Kompression LZ77 „sliding window“ Zweigeteiltes Fenster wandert von links nach rechts über die Eingabe Rechter Teil des Fensters: „look-ahead buffer“ (LB) Linker Teil des Fensters: „search buffer“ (SB) Ausgabe: 3-Tupel (Offset, Länge, Folgezeichen)

Wörterbuchbasierte Kompression Beispiel zur Funktionsweise von LZ77: Zu kodieren: abbbcdbca Größe LB: 3, SB: 4 Fertig kodiert SB LB Nicht gelesen Ausgabe abbbcdbca abb bcdbca (0,0,a) a bbb cdbca (0,0,b) ab bbc dbca (1,2,c) a bbbc dbc a (0,0,d) ab bbcd bca (3,2,a) abbbc dbca

Wörterbuchbasierte Kompression Vorteil: Leicht zu implementieren Schnell Nachteil: Nur gut bei lokalen Redundanzen, da weiter entfernt liegende Treffer nicht mehr im Fenster liegen Durch das 3-Tupel hoher overhead bei einzelnen Zeichen Varianten: z.B. LZSS

Wörterbuchbasierte Kompression LZ78 Wörterbuch statt search buffer Füllen des Wörterbuchs während der Komprimierung Vorteil: Berücksichtigung räumlich weiter auseinander liegender Redundanzen Ausgabe: 2-Tupel (Wörterbuchindex, Folgezeichen)

Wörterbuchbasierte Kompression Beispiel zur Funktionsweise von LZ78: Zu kodieren sei: abacbabacc Schritt Eingabe Token/ Ausgabe Neuer Wörtbucheintrag/ Index 1 a 0,a a,1 2 b 0,b b,2 3 ac 1,c ac,3 4 ba 2,a ba,4 5 bac 4,c bac,5 6 c 0,c c,6

Wörterbuchbasierte Kompression Ausgabe: (0,a)(0,b)(1,c)(2,a)(4c)(0,c) Größe des Wörterbuchs in LZ78 nicht beschränkt! Varianten von LZ78: z.B. LZW Kommt ohne explizite Angabe des Folgezeichens aus Erfordert dafür ein Anfangswörterbuch mit sämtlichen vorkommenden Zeichen

Kompressionsalgorithmen Agenda Grundlagen Kompressionsalgorithmen Statistische Verfahren Wörterbuchbasierte Verfahren Aufbau eines ZIP-Archivs Zusammenfassung

ZIP: ZIP Ende der 80-er Jahre aufgekommen Entwickler: Phil Katz Public Domain Containerformat, keine Kompressionsmethode! Aufbau: Keine monolithische Struktur! Header Datei1| Daten Datei 1| Deskriptor Datei 1|…| Header Datei n| Daten Datei n| Deskriptor Datei n| Zentrale Verzeichnisstruktur| Ende Zentrale Verzeichnisstruktur

ZIP Dateien können sowohl komprimiert als auch unkomprimiert vorliegen Art der Kompression durch Flag vor der komprimierten Datei angezeigt Unterstützte Kompressionsmethoden: u.a. deflate, bzip2 Fehlerkorrektur mit CRC Lange nur schwache Verschlüsselung implementiert

Deflate: ZIP Ebenfalls von Phil Katz entwickelt Public Domain Standard-Kompressionsverfahren bei ZIP Mehrstufiges Verfahren: 1. Schritt: Kompression mit LZSS 2. Schritt: Huffman Kodierung Je nach gewünschter Kodiergeschwindigkeit: Variation der Parameter beider Basisalgorithmen

Kompressionsalgorithmen Agenda Grundlagen Kompressionsalgorithmen Statistische Verfahren Wörterbuchbasierte Verfahren Aufbau eines ZIP-Archivs Zusammenfassung

Zusammenfassung: Zusammenfassung Zwei grundlegende Arten der verlustlosen Kompression Kein optimaler Ansatz Implementierungen meist mehrstufig

Vielen Dank für Ihre Aufmerksamkeit!