Komprimierung
Komprimierung (Datenkompression) bezeichnet das Verfahren, bei dem die Größe einer Datei oder eines Datenstroms reduziert wird, indem Redundanzen und statistische Muster entfernt werden. Ziel ist, Speicherplatz zu sparen und die Übertragungszeit zu verkürzen, ohne (verlustlose Kompression) oder mit akzeptiertem Qualitätsverlust (verlustbehaftete Kompression) die ursprünglichen Daten zu beeinträchtigen.
Funktionsprinzipien
Verlustlose vs. verlustbehaftete Kompression
Gängige Formate und Algorithmen
Anwendungsgebiete
- Dateispeicherung – Reduktion von Festplatten‑/SSD‑Belegung.
- Netzwerkübertragung – Beschleunigung von Web‑Requests, E‑Mail‑Anhängen, APIs (z. B. gzip‑komprimierte HTTP‑Antworten).
- Multimedia‑Streaming – Adaptive Bitrate‑Verfahren (HLS, DASH) nutzen verlustbehaftete Kompression, um Bandbreite zu optimieren.
- Datenbanken – Spalten‑ oder Zeilen‑Kompression, um I/O zu verringern.
- Embedded Systeme – Firmware‑Updates in komprimierter Form, um Over‑The‑Air‑Updates zu verkleinern.
Wichtige Kennzahlen
- Kompressionsratio = Originalgröße / komprimierte Größe.
- Durchsatz (MB/s) – Geschwindigkeit, mit der Daten komprimiert/dekomprimiert werden.
- Latenz – Zeit bis ein einzelner Block fertig komprimiert ist (relevant für Echtzeitanwendungen).
- Speicherverbrauch – Arbeitsspeicher, der für das Wörterbuch/Buffer benötigt wird.
Best Practices
- Passendes Format wählen – Verlustlos für kritische Daten, verlustbehaftet für Medien.
- Kompressionsstufe anpassen – Höhere Stufen geben bessere Ratio, aber längerere Laufzeiten.
- Chunk‑basiertes Vorgehen – Große Dateien in Blöcke teilen, um Speicherbedarf zu reduzieren und Parallelisierung zu ermöglichen.
- Checksum / Hash – Nach der Dekompression prüfen, um Datenintegrität sicherzustellen (z. B. CRC32, SHA‑256).
- Hardware‑Unterstützung nutzen – Moderne CPUs bieten Beschleunigungsinstruktionen (z. B. Intel QuickAssist, ARM Crypto Extensions).

