6.1. Intro

In dieser Dokumentation werden die theoretischen Grundlagen der verlustbehafteten und verlustfreien Komprimierung erklärt. Anschließend werden drei Komprimierungsalgorithmen implementiert und verglichen:

  • Run-Length Encoding (RLE)

  • Huffman-Codierung

  • Lempel-Ziv-Welch (LZW)

Zum Abschluss betrachten wir die Bildkomprimierungsverfahren PNG, JPEG und GIF.

6.1.1. Grundlagen der Komprimierung

6.1.1.1. Definition und Ziel von Komprimierung

Komprimierung bezeichnet den Vorgang, Daten so zu kodieren, dass sie weniger Speicherplatz benötigen. Das Hauptziel ist es, den Speicherbedarf zu reduzieren und die Datenübertragung zu beschleunigen, ohne wesentliche Informationen zu verlieren.

6.1.1.2. Unterschiede zwischen verlustfreier und verlustbehafteter Komprimierung

Verlustfreie Komprimierung bedeutet, dass die Originaldaten vollständig wiederhergestellt werden können. Diese Methode wird oft bei Text- und Programmdaten verwendet. Beispiele sind RLE, Huffman-Codierung und LZW. Verlustbehaftete Komprimierung reduziert die Datenqualität für höhere Komprimierungsraten und wird oft bei Multimedia-Daten wie Bildern, Audio und Video angewendet. Beispiele sind JPEG und MP3.

6.1.1.3. Überblick über häufig verwendete Kompressionsalgorithmen

  1. Run-Length Encoding (RLE): - Effektiv bei Daten mit vielen wiederholten Zeichen. - Beispiel: einfache Grafiken und Schwarz-Weiß-Bilder.

  2. Huffman-Codierung: - Basierend auf der Häufigkeit der Zeichen. - Weit verbreitet in Formaten wie ZIP und JPEG.

  3. Lempel-Ziv-Welch (LZW): - Erkennung und Kodierung wiederholter Zeichenfolgen. - Verwendet in Formaten wie GIF und TIFF.