Es gibt viele verschiedene Arten der Kompression, die sich in mehreren Punkten voneinander unterscheiden, sodass man sie grob in mehrere Kategorien einteilen kann. Im Folgenden werden die wichtigsten Unterscheidungskriterien vorgestellt.
Unterscheidung nach Laufzeitkomplexität
Grundsätzlich unterscheidet man bei Laufzeitkomplexität in symmetrische und asymmetrische Kompressionsverfahren. Dabei wird die Laufzeit von Kodierung und Dekodierung miteinander verglichen.
Symmetrische Kompressionsalgorithmen
Stimmen die Laufzeiten des Kodierungs- und Dekodierungsvorganges miteinander überein, spricht man von symmetrischer Kompression. Im Prinzip heißt das, dass die Kodierung genauso schnell durchgeführt werden kann wie die Dekodierung (und natürlich auch umgekehrt).
Beispiele für symmetrische Kompressionsalgorithmen:
RLE - Runlength-Encoding
LZW - Lempel-Ziv-Welch
Asymmetrische Kompressionsalgorithmen
Bei asymmetrischen Verfahren sind die Laufzeiten für die Komprimierung und Dekomprimierung unterschiedlich. Das ist der Fall, wenn die Kompression länger oder kürzer benötigt als die Wiederherstellung der ursprünglichen Daten.
Beispiel für asymmetrische Kompressionsalgorithmen:
Wavelet
Unterscheidung nach Rekonstruierbarkeit
Hierbei unterscheidet man in verlustfreie und verlustbehaftete Verfahren.
Verlustfreie Kompressionsverfahren
Von verlustfreier Kompression spricht man, wenn man die ursprünglichen Daten, genau so wie sie vorher waren, wieder herstellen kann.
Beispiele für verlustfreie Kompressionsalgorithmen:
RLE -
Runlength-Encoding
Huffman-Kodierung
LZW - Lempel-Ziv-Welch
Verlustbehaftete Kompressionsverfahren
Können die Originaldaten nach der Kompression nicht mehr 1:1 hergestellt werden, so spricht man von verlustbehafteter Kompression (da Informationen über die Ausgangsdaten verloren gehen).
Beispiele für verlustbehaftete Kompressionsalgorithmen:
Wavelet
Unterscheidung nach der Berücksichtigung der Quelle oder Art der Daten
Hierbei unterscheidet man Entropiekodierung und Quellen-Komprimierung.
Entropiekodierung
Bei der Entropiekodierung werden Daten als Folge digitaler Werte verlustfrei komprimiert. Man berücksichtigt dabei nicht, was durch die Folge der digitalen Werte beschrieben wird
Beispiele für Entropiekodierung:
RLE -
Runlength-Encoding
Huffman-Kodierung
LZW - Lempel-Ziv-Welch
Quellen-Komprimierung
Je nach Quelle oder Art der Daten werden Kompressionsverfahren eingesetzt,
die besondere Eigenschaften der Quelldaten ausnutzen, meist auch mit
(hinnehmbaren) Verlusten.
Beispiele: Transformationskodierung wie DCT.