Kompression

Verfahren zur Reduktion der Dateigröße durch Entfernen redundanter Informationen. Unterschieden wird zwischen verlustfreier und verlustbehafteter Kompression.

Auf dieser Seite

Kompression (auch Datenkompression oder Datenkomprimierung) bezeichnet Verfahren zur Reduktion der Dateigröße durch das Entfernen redundanter Informationen. Das Ziel ist es, Daten in eine effizientere Darstellung zu überführen, sodass sie weniger Speicherplatz benötigen oder schneller übertragen werden können. Kompression ist ein fundamentales Konzept in der IT und begegnet dir täglich: beim Versenden von E-Mail-Anhängen, beim Streamen von Videos oder beim Speichern von Fotos.

Grundprinzip der Datenkompression

Das Grundprinzip jeder Kompression ist das Erkennen und Ausnutzen von Redundanz. Redundanz bedeutet, dass bestimmte Informationen mehrfach oder vorhersagbar vorkommen. Ein einfaches Beispiel: Der Text “AAAAAABBBBCC” enthält viele Wiederholungen. Statt jeden Buchstaben einzeln zu speichern, kannst du ihn als “6A4B2C” codieren, also die Anzahl gefolgt vom Zeichen. Diese Technik heißt Lauflängenkodierung (Run-Length Encoding, RLE) und ist eine der einfachsten Kompressionsmethoden.

Moderne Kompressionsalgorithmen nutzen deutlich komplexere Verfahren, um Muster in Daten zu erkennen. Sie analysieren, welche Zeichenfolgen häufig auftreten, und ersetzen diese durch kürzere Codes. Je mehr Muster ein Algorithmus findet, desto stärker kann er die Daten komprimieren.

Verlustfreie vs. verlustbehaftete Kompression

Es gibt zwei grundlegend verschiedene Arten der Kompression, die sich in einem entscheidenden Punkt unterscheiden: ob die Originaldaten vollständig wiederhergestellt werden können oder nicht.

Verlustfreie Kompression (Lossless)

Bei der verlustfreien Kompression bleiben alle Originaldaten vollständig erhalten. Nach dem Dekomprimieren erhältst du eine bitgenaue Kopie der ursprünglichen Datei. Diese Methode ist unverzichtbar, wenn keine Informationen verloren gehen dürfen, etwa bei Textdokumenten, Programmcode, Datenbank-Backups oder medizinischen Bildern.

Typische verlustfreie Formate:

  • ZIP/RAR/7z: Universelle Archivformate für alle Dateitypen
  • GZIP/BZIP2: Kompression einzelner Dateien unter Linux
  • PNG: Bildformat mit verlustfreier Kompression
  • FLAC: Audioformat ohne Qualitätsverlust

Die erreichbaren Kompressionsraten hängen stark vom Datentyp ab. Textdateien lassen sich oft auf 20-30% ihrer Originalgröße reduzieren, während bereits komprimierte Dateien (wie JPEG-Bilder) kaum noch weiter verkleinert werden können.

Verlustbehaftete Kompression (Lossy)

Die verlustbehaftete Kompression entfernt gezielt Daten, die als weniger wichtig erachtet werden. Dadurch sind deutlich höhere Kompressionsraten möglich als bei verlustfreien Verfahren. Der Nachteil: Die Originaldaten können nicht mehr vollständig wiederhergestellt werden. Diese Methode eignet sich für Multimedia-Inhalte, bei denen kleine Qualitätsverluste vom Menschen kaum wahrgenommen werden.

Typische verlustbehaftete Formate:

  • JPEG: Bildformat mit einstellbarer Kompressionsstärke
  • MP3/AAC/OGG: Audioformate für Musik und Sprache
  • H.264/H.265/VP9: Videocodecs für Streaming und Speicherung
  • WebP: Modernes Bildformat von Google mit guter Kompression

Bei Bildern kann JPEG die Dateigröße auf 10% oder weniger reduzieren, ohne dass deutliche Qualitätseinbußen sichtbar sind. Videos erreichen mit moderner Kompression Reduktionen um den Faktor 100 bis 1000 gegenüber den Rohdaten.

Wichtige Kompressionsalgorithmen

Hinter den verschiedenen Dateiformaten stecken unterschiedliche Algorithmen mit spezifischen Stärken. Als IT-Fachkraft solltest du die wichtigsten kennen und verstehen, wie sie funktionieren.

Huffman-Codierung

Die Huffman-Codierung ist ein grundlegender Algorithmus, der 1952 von David Huffman entwickelt wurde. Das Prinzip: Häufig vorkommende Zeichen erhalten kurze Codes, seltene Zeichen längere. In einem deutschen Text kommt das “e” sehr oft vor und bekommt daher einen kurzen Code wie “10”, während das seltene “q” einen längeren wie “110101” erhält. Im Durchschnitt werden dadurch weniger Bits pro Zeichen benötigt als bei einer festen Codelänge.

LZ77 und LZ78

Die Lempel-Ziv-Algorithmen (benannt nach Abraham Lempel und Jacob Ziv) nutzen ein wörterbuchbasiertes Verfahren. Statt einzelne Zeichen zu codieren, suchen sie nach wiederholten Zeichenfolgen im Text. Wenn eine Folge bereits früher vorkam, wird sie durch einen Verweis auf die frühere Stelle ersetzt. LZ77 bildet die Basis für viele moderne Kompressionsformate, darunter GZIP, ZIP und PNG.

Deflate

Deflate kombiniert LZ77 mit Huffman-Codierung in einem zweistufigen Prozess. Zuerst werden wiederholte Muster durch LZ77 ersetzt, dann werden die verbleibenden Symbole mit Huffman optimal codiert. Dieses Verfahren ist der De-facto-Standard für allgemeine Kompression und wird von ZIP, GZIP und PNG verwendet.

DCT (Diskrete Kosinustransformation)

Die DCT ist das mathematische Fundament hinter JPEG und vielen Videocodecs. Sie transformiert Bilddaten vom Orts- in den Frequenzbereich. Statt einzelne Pixel zu speichern, werden Frequenzanteile gespeichert. Der Trick: Das menschliche Auge nimmt hohe Frequenzen (feine Details) schlechter wahr als niedrige (grobe Strukturen). Durch Weglassen oder starkes Quantisieren der hohen Frequenzen spart man viel Speicher bei kaum sichtbarem Qualitätsverlust.

Kompression in der Praxis

Kompression ist allgegenwärtig in der IT-Infrastruktur. Hier sind die wichtigsten Anwendungsbereiche:

Dateiarchivierung und Backup

Bei Backups und Archivierung spart Kompression erheblich Speicherplatz und beschleunigt die Übertragung. Backup-Software wie Veeam oder Duplicati komprimiert Daten automatisch. Bei der Bandsicherung ist Kompression besonders wichtig, da Bandkapazität teuer ist. Typischerweise werden hier verlustfreie Verfahren eingesetzt, um die Integrität der Daten zu gewährleisten.

Web und Netzwerk

Webserver komprimieren HTTP-Antworten automatisch mit GZIP oder dem moderneren Brotli-Algorithmus. Dadurch laden Webseiten deutlich schneller, besonders bei langsamen Verbindungen. Der Browser dekomprimiert die Daten transparent. CDNs nutzen Kompression intensiv, um Bandbreite zu sparen und Ladezeiten zu minimieren.

Multimedia und Streaming

Ohne Kompression wäre Videostreaming undenkbar. Ein unkomprimiertes HD-Video benötigt etwa 150 Megabyte pro Sekunde. Mit modernen Codecs wie H.265 (HEVC) reduziert sich das auf 1-5 MB/s bei guter Qualität. Streaming-Dienste passen die Kompressionsstärke dynamisch an die verfügbare Bandbreite an. Das erklärt, warum die Bildqualität bei schlechter Verbindung abnimmt.

Datenbanken und Dateisysteme

Moderne Datenbanksysteme wie PostgreSQL, MySQL und SQL Server unterstützen Kompression auf Tabellen- oder Seitenebene. Dateisysteme wie ZFS, Btrfs und NTFS können Daten transparent komprimieren. Der Cache im Arbeitsspeicher profitiert ebenfalls: Komprimierte Daten nehmen weniger Platz ein, sodass mehr Daten gecacht werden können.

Kompression unter Linux und Windows

Als Fachinformatiker für Systemintegration oder Anwendungsentwicklung wirst du regelmäßig mit Kompression arbeiten. Hier sind die wichtigsten Befehle:

Linux-Befehle

Linux bietet zahlreiche Kommandozeilen-Tools für unterschiedliche Kompressionsformate:

# GZIP: Einzelne Datei komprimieren/dekomprimieren
gzip datei.txt           # Erzeugt datei.txt.gz
gzip -d datei.txt.gz     # Dekomprimiert

# ZIP: Archiv mit mehreren Dateien
zip archiv.zip datei1.txt datei2.txt
zip -r archiv.zip ordner/     # Rekursiv
unzip archiv.zip              # Entpacken

# TAR + GZIP: Typisches Linux-Archivformat
tar -czvf archiv.tar.gz ordner/   # Erstellen
tar -xzvf archiv.tar.gz           # Entpacken
tar -tzvf archiv.tar.gz           # Inhalt anzeigen

# BZIP2: Höhere Kompression, langsamer
bzip2 datei.txt
bunzip2 datei.txt.bz2

# XZ: Beste Kompression (bei LZMA)
xz datei.txt
xz -d datei.txt.xz

Windows PowerShell

Windows bietet mit PowerShell eingebaute Cmdlets für ZIP-Archive:

# ZIP-Archiv erstellen
Compress-Archive -Path C:\Ordner\* -DestinationPath C:\archiv.zip

# ZIP-Archiv entpacken
Expand-Archive -Path C:\archiv.zip -DestinationPath C:\Zielordner

# Mit Kompressionsstaerke (Optimal, Fastest, NoCompression)
Compress-Archive -Path C:\Daten -DestinationPath C:\backup.zip -CompressionLevel Optimal

# Dateien zu bestehendem Archiv hinzufuegen
Compress-Archive -Path C:\NeueDatei.txt -Update -DestinationPath C:\archiv.zip

Kompression und Integritätsprüfung

Komprimierte Archive enthalten fast immer eine Prüfsumme (CRC32 bei ZIP), um Übertragungsfehler oder Beschädigungen zu erkennen. Beim Entpacken wird die Prüfsumme neu berechnet und mit dem gespeicherten Wert verglichen. Bei Abweichungen meldet das Programm einen Fehler. Für sicherheitskritische Anwendungen solltest du zusätzlich einen kryptographischen Hash wie SHA-256 der Archivdatei berechnen und vergleichen.

Vor- und Nachteile der Kompression

Kompression bietet viele Vorteile, bringt aber auch Nachteile mit sich, die du bei der Planung berücksichtigen solltest:

AspektVorteileNachteile
SpeicherplatzWeniger Platzbedarf, niedrigere Kosten-
ÜbertragungSchnellere Downloads, weniger Bandbreite-
CPU-Last-Kompression/Dekompression benötigt Rechenzeit
Zugriff-Kein wahlfreier Zugriff auf komprimierte Daten
Qualität-Bei verlustbehaftet: Unwiederbringlicher Datenverlust

Die Entscheidung für oder gegen Kompression hängt vom Anwendungsfall ab. Bei Backups auf langsame Medien überwiegen die Vorteile. Bei Echtzeitanwendungen mit hohem Durchsatz kann die CPU-Last zum Flaschenhals werden. Moderne CPUs haben jedoch oft Hardware-Beschleunigung für gängige Algorithmen, was die Performance-Nachteile minimiert.

Prüfungsbezug

Passt zu deiner Prüfungsvorbereitung

Wenn dir dieser Begriff in Aufgaben, Projektdokumentation oder Fachgespräch begegnet, ordne ihn direkt in den Prüfungsstoff ein.