Ziv-Lempel-Kompression von André Lichei

Größe: px
Ab Seite anzeigen:

Download "Ziv-Lempel-Kompression von André Lichei"

Transkript

1 Ziv-Lempel-Kompression von André Lichei Einführung: Die wichtigsten Ansprüche,die an einen Komprimierungs-Algorithmus gestellt werden, sind: - eine hohe Komprimierungsrate - für alle Typen von Daten ( daher ohne Kenntnis über die Eigenart der Daten ) - hohe Encode- und Decode-Geschwindigkeit - geringe Ansprüche an die Hardware Die Ziv-Lempel Verfahren sind, in der Gruppe der verlustfrei packenden Algorithmen, die, die diesem Ideal noch am nächsten kommen. Die ersten Verfahren von Jacob Ziv und Abraham Lempel sollen in dieser Arbeit vorgestellt werden. Die Grundidee all dieser Verfahren ist es eine Zeichenkette, die schon einmal gesendet/gespeichert wurde und nun wieder auftaucht, durch einen Zeiger auf die Stelle wo sie eher auftauchte oder durch einen Zeiger auf ein Wörterbuch zu ersetzen. Damit soll die Länge der zu codierenden Zeichenkette beträchtlich gekürzt werden. LZ77 Der LZ77 Algorithmus wurde 1977 vorgestellt. Die Idee: Man legt ein Fenster fester Länge über den bisher gesendeten String. Nun versucht man, in diesem Fenster den längsten Teilstring zu finden, der die nächsten Zeichen repräsentiert. Verschlüsselungsprozeß Es wird als erstes ein Fenster F der Festen Länge LF angelegt und mit r Nullen und den ersten q Zeichen des zu codierenden Strings Q gefüllt. Als einen Präfix der Länge LP einer Zeichenkette def. ich die ersten LP Zeichen dieser Zeichenkette. Es wird nun die längste Zeichenkette P gesucht, die einem Präfix der Zeichenkette F(r+1,f) entspricht. Diese gesuchte Zeichenkette muß in F(1,r) beginnen. Sie darf aber über die Grenze r im Fenster F hinausgehen. Bsp.: LF= 10 r=5 q=5 Q: F( ) als P kann man zu Bsp. den String angeben der bei F(5) beginnt und die Länge 2 hat. Gespeichert oder gesendet wird jetzt als erstes die Startposition Ps von P, dann dessen Länge Pl und dann das nächste Zeichen Z. Bsp.: Ps=5 P l=2 Z='1' Die Codewortlänge läßt sich recht einfach ermitteln. Die Bitkette, die Ps darstellt, muß r Positionen abbilden können und muß damit eine Länge von Log2(r) aufgerundet haben. PL kann max. der Größe des noch nicht codierten Strings ( die leere Zeichenkette ist eingeschlossen ) im Fenster entsprechen. Es ist für die Implementierung aber zweckmäßig,

2 das letzte Zeichen nicht zu codieren. Dies brauchen wir noch um es als Z im Codewort zu senden. Wir brauchen also für PL Log2(q-1+1) aufgerundet Bits. Die Anzahl an Bits, die wir für das Senden/Speichern des nächsten Zeichens benötigen, hängt von dem Code, in dem es gesendet wird ab. Mindestens benötigen wir log2(anzahl der Zeichen im Alphabet)- aufgerundet - Bits. Es gibt sich daher eine Codewortlänge von (log2(r)+log2(q)+log2(anzahlderzeichen)). Bsp.: Codewort: (5,2,'1') Es ist sinnvoll bei der Position das Zählen bei 0 zu beginnen. Bei der Länge aber bei 1, da die 0 den leeren String symbolisiert. Nun wird das Fenster um Pl+1 Zeichen nach rechts verschoben ( es werden die nächsten Pl+1 Zeichen eingelesen). Bsp.: F( ) Der Verschlüsselungsprozeß geschieht nun wieder genauso wie oben. Bsp.: nächste Codewort (4,2,1) neues Fenster F( ) nächstes Codewort(1,4,1) neues Fenster F( ) nächstes Codewort (2,2,1) Der Code zum Schluß (5,2,1) (4,2,1) (1,4,1) (2,2,1) bit 15 Bit Original Der Code ist recht lang, was daran liegt, daß wir eine sehr schlechte Fenstergröße gewählt haben. Zuerst sollte man immer Fenster der Größe 2^n wählen. Dann ist die Wahrscheinlichkeit, ein großes P zu finden bei einem großem r besser, wie auch die max. Länge von P mit wachsendem q steigt, so dass mit größeren Fenstern wesentlich bessere Kompriemierungsraten erzeugt werden können. Entschlüsselung Zur Entschlüsselung benutzt der Decoder ein ähnliches Fenster. Es wird aber nur P und das nächste Zeichen an die Ausgabe gesendet und das Fenster verschoben, so dass die Decodierung sehr schnell geschieht. Bsp.: Code (5,2,1) (4,2,1) (1,4,1) (2,2,1) F( ) Ausgabe: 00 1 F( ) Ausgabe: 01 1 F( ) Ausgabe: F( ) Ausgabe: 101

3 Anwendung LZSS LZB LZH Bei dem vorgestellten LZ77 Algorithmus fallen zwei Dinge ins Auge. Zum einen muß immer ein P gesendet werden auch wenn Pl=0 ist. Zum anderen wird immer das nächste Zeichen mitgesendet auch wenn es gar nicht nötig ist. Im LZSS wird entweder ein Zeichen oder P gesendet. Um zwischen Zeichen und zu unterscheiden wird ein Extrabit vorangestellt. Es wird immer dann ein Zeichen gesendet, wenn der Code für das gefundene P länger ist als der Präfix selbst. Das Codewort hat nun entweder die Länge 1+log2(ZeichenImAlphabet) oder 1+log2(r)+log2(q). Jetzt ist es auch bei der Pl sinnvoll mit Null das Zählen zu Beginn (leere Zeichenketten werden ja nicht mehr gesendet). Das längste mögliche P darf jetzt eine Länge Pl=q haben, da wir Z nicht mehr senden. erlaubt verschieden große Zeiger Beruht auf LZSS Zeiger und Zeichen werden mit Huffman codiert, Nachteil: sehr langsam; Probleme mit großen Zeiger zip gzip Sehr ähnlich dem LZSS verfahren verwendet aber noch Huffman Bäume für die Zeiger. Andere Verwaltung, um Zeichenketten zu finden. acb Sehr gute Kompresionsrate aber auch sehr kompliziert. LZ 78 Der LZ 78 wurde 1978 vorgestellt. In diesem Algorithmus wird der Datenstrom in Phrasen unterteilt, wobei keine identischen Phrasen entstehen sollen. Der Algorithmus beginnt mit Phrasen von einem Zeichen Länge. Nun sucht er im Datenstrom die kürzeste noch nicht bekannte Phrase. Alle so während der Codierung entstehenden Phrasen werden in einem Wörterbuch gespeichert. Jede neue Phrase besteht genau aus einer schon codierten Phrase und einem Zeichen. ( man kann auch die längste bekannte Phrase suchen und ein Zeichen anhängen ) Bsp.: Zeichenfolge: Phrasen: Bits Somit kann jede neue Phrase als Zeiger auf eine alte Phrase und einem neuen Zeichen kodiert werden.

4 Bsp.: Wörterbuch: 0 <> Gesendet/ gespeichert werden nun Codewörter bestehend aus einem Zeiger, der auf einen Wörterbucheintrag zeigt und einem Zeichen. Um die Codewortlänge zu bestimmen, müssen wir nun die Größe der Zeiger bestimmen. Eine Möglichkeit wäre, alle Phrasen zu finden, zu zählen und eine feste Zeigerlänge zu bestimmen. In unserem Bsp. würde das Codewort folglich aus log2(8)=>3 Bits + 1 Bit für das Zeichen bestehen Bsp.: Zeichenkette codiert Bits 0,'1' 0,'0' 1,'1' 2,'1' 4,'0' 2,'0' 1,'0' Ein solcher Code ist nicht besonders sinnvoll, da das Wörterbuch am Anfang sehr klein ist, und die Zeiger sehr kurz sind. Für die Codierung des Zeigers reicht somit eine Bitlänge die der Anzahl der bisher aufgetretenen Phrasen entspricht log2(i+1) Bsp.: Zeichenkette codiert Bits Bei dem bisher vorgestellten Algorithmus kann das Wörterbuch bis in die Unendlichkeit wachsen. In der Praxis wird dem Wörterbuch eine max. Größe vorgegeben. Ist die Größe erreicht wird es einfach gelöscht und von vorne begonnen. In diesem Bsp. hat der Algorithmus die Zeichenkette nicht komprimiert sondern expandiert. Das ist aber ein Problem der Kürze der Zeichenkette. Bei langen Zeichenketten, wo dann auch die Wörterbucheinträge entsprechend lang werden, können recht gute Ergebnisse erzielt werden. Decodierung: Dem Decoder muß das Wörterbuch nicht extra gesendet werden. Jede Phrase die er empfängt speichert er in einem Wörterbuch. So können dann später empfangene Phrasen mit Hilfe des Wörterbuches entschlüsselt werden. Bsp.: Code (0,'1') (0,'0') (1,'1') (2,'1') (4,'0') (2,'0') (1,'0') Wörterbuch: 0 <> erkannter Eintrag Ausgabe Neuer Wörterbucheintrag <> '1' 1 '1' <> '0' 2 '0' '1' '11' 3 '11' '0' '01' 4 '01' '01' '010' 5 '010' '0' '00' 6 '00' '1' '11' 7 '10'

5 Verwaltung des Wörterbuches: Das Wörterbuch kann man entweder über eine Tabelle oder einen Baum verwalten. Ersteres ist auf der Decoderseite sinnvoll, auf der Encoderseite aber sehr langsam! Ein Bsp. für einen Baum habe ich leider nicht gefunden. Es ist aber nicht sehr schwer zu mindestens eine ganz einfache Variante zu erstellen. Eine Lsg. ist es, einen Baum zu generieren, dessen Knoten jeweils eine Wörterbuchnummer enthalten. Die Äste stehen jeweils für ein Zeichen. Die Wurzel repräsentiert daher die leere Zeichenkette. Geht man den Baum entlang, erhält man eine Zeichenkette. Die Nummer, die man in dem Knoten an ihrem Ende findet, ist der Wörterbucheintrag, unter dem man diese Zeichenkette findet. Ist nun eine Zeichenkette zu codieren, geht man den Baum entlang bis kein Zeichen mehr der zu kodierenden Zeichenkette entspricht. Die Nummer im letzten gefunden Knoten entspricht der Nummer des zu sendenden Wörterbucheintrages. Dann sendet man das nächste Zeichen. An den Knoten fügt man den Ast der dem neuen Zeichen entspricht. In das Blatt trägt man eine neue Nummer ein. Bsp.: Zu Beginn besteht der Baum nur aus der Wurzel. Sie enthält die Nummer 0. Ein Zähler für die schon vorhandenen Wörterbucheinträge steht auf 0. Zu codierende Zeichenkette: Das Alphabet besteht aus nur zwei Zeichen. Man erhält somit einen Binärbaum. Der linke Ast eines Knotens soll der '1' entsprechen. Der rechte der '0' Baum Start Der Encoder geht die Zeichenkette und den Baum entlang; Stoppt an der Wurzel sendet die 0 und das nächstes Zeichen die '1'.Fügt einen neuen Ast an die Wurzel an und erhöht den Zähler um eins und ordnet dem neu entstandenen Knoten die Nummer 1 zu '1'/ (1) Zeichenkette wie oben Zeichenkette Jetzt stoppt der Encoder bei dem Vergleich am Knoten 1 sendet die 1 und das nächste Zeichen eine '1' Hängt dann einen neuen Ast an und erhöht den Zähler um eins. Dann ordnet er die neue Nummer zu '1'/ (3)

6 Zeichenkette Stopp an Knoten 2 sendet 2,1 hängt Knoten mit Nummer 4 an '1'/ '0'/ (3) (4) Zeichenkette Stopp an Knoten 4 sendet 4,hängt Ast mit Nummer 5 an '1'/ '1'/ (3) (4) '0'\ (5) Zeichenkette: 0010 Stopp an Knoten 2 sendet 2,0 hängt Ast mit Nummer 6 an '1'/ (3) (4) (6) '0'\ (5) Zeichenkette: 10 Stopp an Knoten 1 sendet 1,0 hängt Ast mit Nummer 7 an (3) (7) (4) (6) '0'\ (5) Ein solcher Baum läßt sich schnell und einfach erzeugen und ist wesentlich schneller zu durchsuchen als eine Liste. Die max. Anzahl an Söhnen eines jedem Knoten entspricht der Anzahl der Zeichen im Alphabet. Anwendungen: LZW Auch beim LZ78 Algorithmus fällt auf, daß immer ein Extrazeichen mitgesendet wird auch wenn das gar nicht nötig wäre. Im LZW Algorithmus ist das nicht so. Dieser beginnt nicht mit einem leeren Wörterbuch. Das Wörterbuch wird gleich zu Beginn mit allen bekannten Zeichen initialisiert. Nun wird die längste bekannte Zeichenkette gesucht und ihr Index gesendet. Danach wird diese Zeichenkette um das

7 nächste Zeichen erweitert und unter einem neuen Index in das Wörterbuch aufgenommen. Bsp.: Wörterbuch mit 256 Einträgen (ASCI-Tabelle von 0 bis 255) Eingabe: Erkanntes Muster Neuer Wörterbucheintrag LZWLZ78LZ77 L LZ (256) ZWLZ78LZ77 Z ZW (257) WLZ78LZ77 W WL (258) LZ78LZ77 LZ LZ7(259) 78LZ (260) 8LZ77 8 8L(261) LZ77 LZ7 LZ77(262) 7 7 Decodierung Auch der Decoder beginnt mit dem vorinitialisierten Wörterbuch. Empfangene Zeichenketten werden gepuffert und ausgegeben. Von der nächsten Zeichenkette wird das erste Zeichen an die gepufferte Zeichenkette angehangen und diese dann als neuer Wörterbucheintrag gespeichert. Bsp.: L Z W (256) 7 8 (259) 7 Eingabezeichen Puffer Neuer Wörterbucheintrag L Z L LZ (256) W Z ZW (257) LZ W WL (258) 7 LZ LZ7 (259) (260) LZ7 8 8L (261) 7 LZ7 LZ77(262) Bei genauerer Betrachtung sieht man, daß das Wörterbuch des Decoder dem des Encoder einen Schritt hinterherhinkt. Das kann zu Problemen beim Decodieren führen. Problemfall K[OMEGA]K [OMEGA]K: K ist ein beliebiges Zeichen und [OMEGA] eine Zeichenkette, wobei K[OMEGA] schon im Wörterbuch vermerkt ist. Es wird nun der Index von K[OMEGA] gesendet, und der Eintrag K[OMEGA]K im Wörterbuch vermerkt. Im nächsten Schritt wird genau dieser Eintrag als der längste identifiziert und gesendet. Dieser Wörterbucheintrag ist dem Decoder in diesem Moment aber noch gar nicht bekannt.

8 Bsp.: APAPAPAPAP Codierung Eingabe: Erkanntes Muster Neuer Wörterbucheintrag 1 APAPAPAPAP A AP(256) 2 PAPAPAPAP P PA(257) 3 APAPAPAP AP APA(258) 4 APAPAP APA APAP(259) 5 PAP PA PAP(260) 6 P P Decodierung: A P (256) (258) (257) P Eingabezeichen Puffer Neuer Wörterbucheintrag 1 A 2 P A AP (256) 3 AP P PA (257) 4????? AP K[OMEGA]K Fall ist aufgetreten d.h. erstes Zeichen der nächsten Zeichenkette ist erstes Zeichen der vorhergehenden Zeichenkette also A 4 A... AP APA (258) -->4 APA AP APA (258) 5 PA APA APAP (259) 6 P PA PAP (260) Abschließend sei bemerkt, daß in der Standard-Implemetation das Wörterbuch eine Größe von 4096 Einträgen hat. Die Zeiger auf die Einträge sind statisch 12 Bits groß. Ist das Wörterbuch voll, muß der Encoder damit auskommen. LZC LZT Wird von dem Programm Compress unter Unix verwendet. Hier muß das Wörterbuch keine feste Größe haben, es wächst bis zu einer max. Größe, die vom User angegeben wird. Die Zeiger sind von dynamischer Größe und beginnen bei 9 Bit. Ist das Wörterbuch gefüllt überprüft ein Kontrollalgorithmus die Kompresionsrate. Sinkt diese unter einen bestimmten Wert, wird das gesamte Wörterbuch gelöscht und neu aufgebaut. Genauso wie LZC - das Wörterbuch wird aber nicht ganz gelöscht sondern nur wenig genutzte Einträge werden entfernt. LZMW wie LZT; es wird aber nicht nur das erste Zeichen angehängt, um einen neuen Wörterbucheintrag zu bekommen sondern es werden die letzten beiden Wörterbucheinträge verbunden.

9 Vorteil: Wörterbuch paßt sich schneller an. Einträge werden schnell länger. Nachteil: sehr komplizierte Wörterbuchverwaltung. Zum Abschluß sei noch angemerkt, das es noch eine ganze Reihe anderer Algorithmen gibt, die auf Lempel-Ziv basieren. Sie alle zu behandeln würde den Rahmen dieser Ausarbeitung aber sprengen. Trotzdem ist es bestimmt noch möglich, Verbesserungen der Algorithmen zu finden. Mehrere verschiedene Kompressionsalgorithmen miteinander zu kombinieren ist vermutlich ein guter Ansatz. Quellen: Gabriele Buch, Fehlerrobuste Verfahren zur Quellen- und Kanalcodierung von Binär und ASCII- Quellen. Mark Nelson, Fast String Searching with Suffix Trees. Marek Tomczyk, Lempel-Ziv-Kodierung.

Dynamisches Huffman-Verfahren

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

Mehr

Eigenschaften von Kompressionsverfahren

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

Mehr

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

Seminar über Algorithmen, SS2004. Textkompression. von Christian Grümme und Robert Hartmann Seminar über Algorithmen, SS2004 Textkompression von Christian Grümme und Robert Hartmann 1. Einleitung Textkompression wird zur Verringerung des Speicherbedarfs und der Übertragungskapazität von allgemeinen

Mehr

Basisinformationstechnologie II

Basisinformationstechnologie II Basisinformationstechnologie II Sommersemester 2014 28. Mai 2014 Algorithmen der Bildverarbeitung I: Kompression Universität zu Köln. Historisch-Kulturwissenschaftliche Informationsverarbeitung Jan G.

Mehr

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

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.

Mehr

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

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:

Mehr

Datenkompression: Lempel-Ziv-Codierung

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

Mehr

Kodierungsalgorithmen

Kodierungsalgorithmen Kodierungsalgorithmen Komprimierung Verschlüsselung Komprimierung Zielsetzung: Reduktion der Speicherkapazität Schnellere Übertragung Prinzipien: Wiederholungen in den Eingabedaten kompakter speichern

Mehr

Algorithmen und Datenstrukturen 2

Algorithmen und Datenstrukturen 2 Algorithmen und Datenstrukturen 2 Sommersemester 2006 6. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik studla@bioinf.uni-leipzig.de Datenkomprimierung Bei den meisten bisher betrachteten

Mehr

A2.3: Zur LZ78 Komprimierung

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

Mehr

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 1 Woche: Einführung in die Codierungstheorie, Definition Codes, Präfixcode, kompakte Codes 5/ 44 Unser Modell Shannon

Mehr

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

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

Mehr

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

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

Mehr

Seminar Kompressionsalgorithmen Huffman-Codierung, arithmetische Codierung

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

Mehr

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

Ü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"

Mehr

Datenkompression. 1 Allgemeines. 2 Verlustlose Kompression. Holger Rauhut

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,

Mehr

Referat zum Thema Huffman-Codes

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

Mehr

(Prüfungs-)Aufgaben zur Codierungstheorie

(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

Mehr

Verlustfreie Kompression

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

Mehr

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

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

Mehr

Mathematik für Information und Kommunikation

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

Mehr

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

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

Mehr

Textkompression: Burrows-Wheeler-Transformation

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

Mehr

Folge 19 - Bäume. 19.1 Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12

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

Mehr

15 Optimales Kodieren

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

Mehr

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

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.)

Mehr

Übung 13: Quellencodierung

Ü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

Mehr

Digitalisierung. analoges Signal PAM. Quantisierung

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

Mehr

Algorithmen und Datenstrukturen 2-3. Seminar -

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

Mehr

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

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

Mehr

Codierung, Codes (variabler Länge)

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

Mehr

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder Programmieren in PASCAL Bäume 1 1. Baumstrukturen Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder 1. die leere Struktur oder 2. ein Knoten vom Typ Element

Mehr

Der RSA-Algorithmus. 2. Anschließend ist n = p q und ϕ (n) = (p 1) (q 1) zu berechnen.

Der RSA-Algorithmus. 2. Anschließend ist n = p q und ϕ (n) = (p 1) (q 1) zu berechnen. Kapitel 4 Der RSA-Algorithmus Der RSA-Algorithmus ist das heute bekannteste Verfahren aus der Familie der Public-Key-Kryptosysteme. Es wurde 1978 der Öffentlichkeit vorgestellt und gilt bis heute als der

Mehr

Grundlagen der Technischen Informatik. 2. Übung

Grundlagen der Technischen Informatik. 2. Übung Grundlagen der Technischen Informatik 2. Übung Christian Knell Keine Garantie für Korrekt-/Vollständigkeit Organisatorisches Übungsblätter zuhause vorbereiten! In der Übung an der Tafel vorrechnen! Bei

Mehr

Def.: Sei Σ eine Menge von Zeichen. Die Menge Σ* aller Zeichenketten (Wörter) über Σ ist die kleinste Menge, für die gilt:

Def.: Sei Σ eine Menge von Zeichen. Die Menge Σ* aller Zeichenketten (Wörter) über Σ ist die kleinste Menge, für die gilt: 8. Grundlgen der Informtionstheorie 8.1 Informtionsgehlt, Entropie, Redundnz Def.: Sei Σ eine Menge von Zeichen. Die Menge Σ* ller Zeichenketten (Wörter) über Σ ist die kleinste Menge, für die gilt: 1.

Mehr

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

Datenkompression. Kommunikationstechnik, SS 08, Prof. Dr. Stefan Brunthaler 167 Datenkompression Kommunikationstechnik, SS 08, Prof. Dr. Stefan Brunthaler 167 Datenkompression I Wie der Hofmathematikus herausgefunden hatte, läßt sich eine Kodierung durch Wahl einer variablen Wortlänge

Mehr

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

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

Mehr

Übungen zur Vorlesung Grundlagen der Rechnernetze. Zusätzliche Übungen

Übungen zur Vorlesung Grundlagen der Rechnernetze. Zusätzliche Übungen Übungen zur Vorlesung Grundlagen der Rechnernetze Zusätzliche Übungen Hamming-Abstand d Der Hamming-Abstand d zwischen zwei Codewörtern c1 und c2 ist die Anzahl der Bits, in denen sich die beiden Codewörter

Mehr

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

Technische Universität München SS 2006 Fakultät für Informatik 12. Oktober 2006 Prof. Dr. A. Knoll. Aufgabe 1 Transferfragen (Lösungsvorschlag) Technische Universität München SS 2006 Fakultät für Informatik 12. Oktober 2006 Prof. Dr. A. Knoll Lösungsvorschläge der Klausur zu Einführung in die Informatik II Aufgabe 1 Transferfragen (Lösungsvorschlag)

Mehr

Einführung in die Kodierungstheorie

Einführung in die Kodierungstheorie Einführung in die Kodierungstheorie Einführung Vorgehen Beispiele Definitionen (Code, Codewort, Alphabet, Länge) Hamming-Distanz Definitionen (Äquivalenz, Coderate, ) Singleton-Schranke Lineare Codes Hamming-Gewicht

Mehr

2. Digitale Codierung und Übertragung

2. Digitale Codierung und Übertragung 2. Digitle Codierug ud Üertrgug 2.1 Iformtiostheoretische Grudlge 2.2 Speicheredrf ud Kompressio 2.3 Digitlisierug, Digitle Medie Weiterführede Litertur zum Them Dtekompressio: Khlid Syood: Itroductio

Mehr

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...) 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

Mehr

Der Backoff-Algorithmus

Der Backoff-Algorithmus Der Backoff-Algorithmus Ausarbeitung im Rahmen der Vorlesung Lokale und Weitverkehrsnetze II (Prof. Koops) SS 2001 3570316 Lars Möhlmann 3570317 Jens Olejak 3570326 Till Tarara Fachhochschule Oldenburg/Ostfriesland/Wilhelmshaven

Mehr

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) Referat für Algorithmische Anwendungen WS 2006/ 07: Verlustfreie Datenkompression mit dem Deflate-Algorithmus (LZ77- und Huffman-Codierung) Benedikt Arnold, 11041025, ai686@gm.fh-koeln.de Sebastian Bieker,

Mehr

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

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.

Mehr

Datenstrukturen & Algorithmen

Datenstrukturen & Algorithmen Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Dynamische Programmierung Einführung Ablaufkoordination von Montagebändern Längste gemeinsame Teilsequenz Optimale

Mehr

Inverted Files for Text Search Engines

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

Mehr

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

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

Mehr

Übung 1: Quellencodierung

Übung 1: Quellencodierung ZHAW, NTM2, Rumc, /7 Übung : Quellencodierung Aufgabe : Huffman-Algorithmus. Betrachten Sie die folgende ternäre, gedächtnislose Quelle mit dem Symbolalphabet A = {A,B,C} und den Symbol-Wahrscheinlichkeiten

Mehr

Kapitel 2: Analyse der Laufzeit von Algorithmen Gliederung

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

Mehr

12 (2-4)-Bäume Implementierbare Funktionen. (2-4)-Bäume sind durch folgende Eigenschaften deniert: 1. Alle Äste sind gleich lang

12 (2-4)-Bäume Implementierbare Funktionen. (2-4)-Bäume sind durch folgende Eigenschaften deniert: 1. Alle Äste sind gleich lang 12 (2-4)-Bäume (2-4)-Bäume sind durch folgende Eigenschaften deniert: 1. Alle Äste sind gleich lang 2. Die Ordnung (maximale Anzahl der Söhne eines Knotens) ist gleich 4 3. Innere Knoten haben 2 Söhne

Mehr

Kapitel 2. Kombinatorische Schaltungen. Codierer und Decodierer

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

Mehr

Codierung. H.-G. Hopf

Codierung. H.-G. Hopf Codierung H.-G. Hopf Inhalt Informationsübermittlung Codierung von Zeichen GDI: Codierung / 2 Inhalt Informationsübermittlung Codierung von Zeichen GDI: Codierung / 3 Ideale Kommunikation Übertragungskanal

Mehr

Übung zur Vorlesung. Informationstheorie und Codierung

Übung zur Vorlesung. Informationstheorie und Codierung Übung zur Vorlesung Informationstheorie und Codierung Prof. Dr. Lilia Lajmi Juni 25 Ostfalia Hochschule für angewandte Wissenschaften Hochschule Braunschweig/Wolfenbüttel Postanschrift: Salzdahlumer Str.

Mehr

Informationstheorie und Codierung

Informationstheorie 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

Mehr

15. Algorithmus der Woche Das Rucksackproblem Die Qual der Wahl bei zu vielen Möglichkeiten

15. Algorithmus der Woche Das Rucksackproblem Die Qual der Wahl bei zu vielen Möglichkeiten 15. Algorithmus der Woche Das Rucksackproblem Die Qual der Wahl bei zu vielen Möglichkeiten Autoren Rene Beier, MPI Saarbrücken Berthold Vöcking, RWTH Aachen In zwei Monaten startet die nächste Rakete

Mehr

Kapitel 2: Informationstheorie. 3. Quellencodierung

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

Mehr

Praktikum BKSPP. Aufgabenblatt Nr. 1. 1 Umrechnung zwischen Stellenwertsystemen

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,

Mehr

Algorithmen, Datenstrukturen und Programmieren II SS 2001

Algorithmen, Datenstrukturen und Programmieren II SS 2001 Algorithmen, Datenstrukturen und Programmieren II SS 2001 1. InfixToPostfixConverter: Üblicherweise werden mathematische Ausdrücke in infix-notation geschrieben, d.h. der Operator steht zwischen den Operanden,

Mehr

Kodierung. Kodierung von Zeichen mit dem ASCII-Code

Kodierung. Kodierung von Zeichen mit dem ASCII-Code Kodierung Kodierung von Zeichen mit dem ASCII-Code Weiterführende Aspekte zur Kodierung: Speicherplatzsparende Codes Fehlererkennende und -korrigierende Codes Verschlüsselnde Codes Spezielle Codes, Beispiel

Mehr

368 4 Algorithmen und Datenstrukturen

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

Mehr

Präfixcodes und der Huffman Algorithmus

Präfixcodes und der Huffman Algorithmus Präfixcodes und der Huffmn Algorithmus Präfixcodes und Codebäume Im Folgenden werden wir Codes untersuchen, die in der Regel keine Blockcodes sind. In diesem Fll können Codewörter verschiedene Länge hben

Mehr

Verschlüsselung. Kirchstraße 18 Steinfelderstraße 53 76831 Birkweiler 76887 Bad Bergzabern. 12.10.2011 Fabian Simon Bfit09

Verschlüsselung. Kirchstraße 18 Steinfelderstraße 53 76831 Birkweiler 76887 Bad Bergzabern. 12.10.2011 Fabian Simon Bfit09 Verschlüsselung Fabian Simon BBS Südliche Weinstraße Kirchstraße 18 Steinfelderstraße 53 76831 Birkweiler 76887 Bad Bergzabern 12.10.2011 Fabian Simon Bfit09 Inhaltsverzeichnis 1 Warum verschlüsselt man?...3

Mehr

Einführung in Kompressionstechniken

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

Mehr

Proseminar WS 2002/2003

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

Mehr

Kodierung. Kodierung von Zeichen mit dem ASCII-Code

Kodierung. Kodierung von Zeichen mit dem ASCII-Code Kodierung Kodierung von Zeichen mit dem ASCII-Code Weiterführende Aspekte zur Kodierung: Speicherplatzsparende Codes Fehlererkennende und -korrigierende Codes Verschlüsselnde Codes Spezielle Codes, Beispiel

Mehr

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 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

Mehr

Kryptographie und Codierung für den Mathematikunterricht

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

Mehr

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

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,

Mehr

3 Quellencodierung. 3.1 Einleitung

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

Mehr

Kryptologie und Kodierungstheorie

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

Mehr

Public-Key-Kryptographie

Public-Key-Kryptographie Kapitel 2 Public-Key-Kryptographie In diesem Kapitel soll eine kurze Einführung in die Kryptographie des 20. Jahrhunderts und die damit verbundene Entstehung von Public-Key Verfahren gegeben werden. Es

Mehr

Klausur Informatik-Propädeutikum (Niedermeier/Hartung/Nichterlein, Wintersemester 2012/13)

Klausur Informatik-Propädeutikum (Niedermeier/Hartung/Nichterlein, Wintersemester 2012/13) Berlin, 21. Februar 2013 Name:... Matr.-Nr.:... Klausur Informatik-Propädeutikum (Niedermeier/Hartung/Nichterlein, Wintersemester 2012/13) 1 2 3 4 5 6 7 8 9 Σ Bearbeitungszeit: 90 min. max. Punktezahl:

Mehr

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung

Ü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

Mehr

M. Graefenhan 2000-12-07. Übungen zu C. Blatt 3. Musterlösung

M. Graefenhan 2000-12-07. Übungen zu C. Blatt 3. Musterlösung M. Graefenhan 2000-12-07 Aufgabe Lösungsweg Übungen zu C Blatt 3 Musterlösung Schreiben Sie ein Programm, das die Häufigkeit von Zeichen in einem eingelesenen String feststellt. Benutzen Sie dazu ein zweidimensionales

Mehr

Kanonische Huffman Codes (Canonical Huffman Codes)

Kanonische Huffman Codes (Canonical Huffman Codes) Projektarbeit (Canonical Huffman Codes) SS 2008 Studentin: Michaela Kieneke Dozent: Dr. Heiko Körner 0001010110110110010001110110001111100001101000110111100101111110001111000 1010101110101001011100100101011111110000011001011010100101000101010001010

Mehr

t r Lineare Codierung von Binärbbäumen (Wörter über dem Alphabet {, }) Beispiel code( ) = code(, t l, t r ) = code(t l ) code(t r )

t r Lineare Codierung von Binärbbäumen (Wörter über dem Alphabet {, }) Beispiel code( ) = code(, t l, t r ) = code(t l ) code(t r ) Definition B : Menge der binären Bäume, rekursiv definiert durch die Regeln: ist ein binärer Baum sind t l, t r binäre Bäume, so ist auch t =, t l, t r ein binärer Baum nur das, was durch die beiden vorigen

Mehr

Algorithmen und Datenstrukturen SS09

Algorithmen und Datenstrukturen SS09 Foliensatz 8 Michael Brinkmeier Technische Universität Ilmenau Institut für Theoretische Informatik Sommersemester 29 TU Ilmenau Seite / 54 Binärbäume TU Ilmenau Seite 2 / 54 Binäre Bäume Bäume und speziell

Mehr

Formale Sprachen und Automaten

Formale Sprachen und Automaten Formale Sprachen und Automaten Kapitel 1: Grundlagen Vorlesung an der DHBW Karlsruhe Thomas Worsch Karlsruher Institut für Technologie, Fakultät für Informatik Wintersemester 2012 Ziel Einführung der wichtigsten

Mehr

Schreibweise in IGOR: 6.02E-23

Schreibweise in IGOR: 6.02E-23 2. IGOR Objekte 2.1 Variable Eine Variable in IGOR ist eine Zahl, die einen Namen trägt. So ist es zum Beispiel möglich, unter dem Namen var1 die Zahl 4 abzuspeichern. Wichtig hierbei ist, dass IGOR Zahlen

Mehr

Kodieren Von Graphen

Kodieren Von Graphen Kodieren Von Graphen Allgemeine Anwendungen: Routenplaner Netzpläne Elektrische Schaltungen Gebäudeerkennung aus Luftaufnahmen Definitionen:? Graph Ein Graph G besteht aus einem geordneten Paar G = (V,E)

Mehr

Datenstrukturen & Algorithmen Lösungen zu Blatt 6 FS 14

Datenstrukturen & Algorithmen Lösungen zu Blatt 6 FS 14 Eidgenössische Technische Hochschule Zürich Ecole polytechnique fédérale de Zurich Politecnico federale di Zurigo Federal Institute of Technology at Zurich Institut für Theoretische Informatik 2. April

Mehr

Algorithmen und Datenstrukturen 1

Algorithmen und Datenstrukturen 1 Algorithmen und Datenstrukturen 1 7. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik studla@informatik.uni-leipzig.de aufbauend auf den Kursen der letzten Jahre von E. Rahm, G. Heyer,

Mehr

Rechnernetze Übung 5. Frank Weinhold Professur VSR Fakultät für Informatik TU Chemnitz Mai Wo sind wir?

Rechnernetze Übung 5. Frank Weinhold Professur VSR Fakultät für Informatik TU Chemnitz Mai Wo sind wir? Rechnernetze Übung 5 Frank Weinhold Professur VSR Fakultät für Informatik TU Chemnitz Mai 2012 Wo sind wir? Quelle Nachricht Senke Sender Signal Übertragungsmedium Empfänger Quelle Nachricht Senke Primäres

Mehr

Verkettete Datenstrukturen: Bäume

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

Mehr

Kompakte Graphmodelle handgezeichneter Bilder. Einbeziehung in Autentizierung und Bilderkennung

Kompakte Graphmodelle handgezeichneter Bilder. Einbeziehung in Autentizierung und Bilderkennung Kompakte Graphmodelle handgezeichneter Bilder Einbeziehung in Autentizierung und Bilderkennung Inhaltsverzeichnis 1 Einleitung Das graphische Model.1 Image Thinning................................. 3.

Mehr

Programmiertechnik II

Programmiertechnik II Bäume Symboltabellen Suche nach Werten (items), die unter einem Schlüssel (key) gefunden werden können Bankkonten: Schlüssel ist Kontonummer Flugreservierung: Schlüssel ist Flugnummer, Reservierungsnummer,...

Mehr

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

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 Die Komprimierung: Die Abkürzung JPG (oder auch JPEG) steht für "Joint Photographic Experts Group". Dieses Bildformat ist nach der Expertengruppe, die es erfunden hat, benannt. Die Komprimierung empfiehlt

Mehr

Fachseminar WS 2008/09

Fachseminar WS 2008/09 Fachseminar WS 2008/09 Fachgebiet: Compilerbau Thema: Lexikalische Analyse (Scanner) Referent: Ali Sediq Betreuer: Prof. Dr. Helmut Weber 1 Inhaltsverzeichnis Lexikalische Analyse 1.0 Grundprobleme der

Mehr

Sicherheit von PDF-Dateien

Sicherheit von PDF-Dateien Sicherheit von PDF-Dateien 1 Berechtigungen/Nutzungsbeschränkungen zum Drucken Kopieren und Ändern von Inhalt bzw. des Dokumentes Auswählen von Text/Grafik Hinzufügen/Ändern von Anmerkungen und Formularfeldern

Mehr

n ϕ n

n ϕ n 1 3. Teiler und teilerfremde Zahlen Euler (1707-1783, Gymnasium und Universität in Basel, Professor für Physik und Mathematik in Petersburg und Berlin) war nicht nur einer der produktivsten Mathematiker

Mehr

Digitale Bildverarbeitung (DBV)

Digitale Bildverarbeitung (DBV) Digitale Bildverarbeitung (DBV) Prof. Dr. Ing. Heinz Jürgen Przybilla Labor für Photogrammetrie Email: heinz juergen.przybilla@hs bochum.de Tel. 0234 32 10517 Sprechstunde: Montags 13 14 Uhr und nach Vereinbarung

Mehr

Dynamische Mengen. Realisierungen durch Bäume

Dynamische Mengen. Realisierungen durch Bäume Dynamische Mengen Eine dynamische Menge ist eine Datenstruktur, die eine Menge von Objekten verwaltet. Jedes Objekt x trägt einen eindeutigen Schlüssel key[x]. Die Datenstruktur soll mindestens die folgenden

Mehr

Sortierverfahren für Felder (Listen)

Sortierverfahren für Felder (Listen) Sortierverfahren für Felder (Listen) Generell geht es um die Sortierung von Daten nach einem bestimmten Sortierschlüssel. Es ist auch möglich, daß verschiedene Daten denselben Sortierschlüssel haben. Es

Mehr

Kapitel 8: Abstrakte Datentypen. Inhalt. Definition ADT Keller ADT Schlange

Kapitel 8: Abstrakte Datentypen. Inhalt. Definition ADT Keller ADT Schlange Wintersemester 005/06 Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich Informatik Lehrstuhl

Mehr

Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung)

Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) Wintersemester 2005/06 Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich Informatik Lehrstuhl

Mehr

Lernziele: Ausgleichstechniken für binäre Bäume verstehen und einsetzen können.

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

Mehr

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

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.

Mehr

Präfx Trie zur Stringverarbeitung. Cheng Ying Sabine Laubichler Vasker Pokhrel

Präfx Trie zur Stringverarbeitung. Cheng Ying Sabine Laubichler Vasker Pokhrel Präfx Trie zur Stringverarbeitung Cheng Ying Sabine Laubichler Vasker Pokhrel Übersicht: Einführung Eigenschaften von Tries Verwendung von Tries Allgemeine Defnition von Patricia Tries Eigenschaften von

Mehr

2. Digitale Codierung und Übertragung

2. 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:

Mehr