Glossary
Verlustfreie Kompression
Kompression, die jedes Byte erhält
By Buğra SözeriPublished Updated
Verlustfreie Kompression reduziert die Dateigröße, während jedes Byte des Originals erhalten bleibt. Die Dekompression erzeugt eine Ausgabe, die bit-identisch zur Eingabe ist. Abwägung: geringere Einsparungen als bei verlustbehafteter Kompression – typischerweise 30–70 % Größenreduktion je nach Inhalt.
So funktioniert es: Verlustfreie Algorithmen finden statistische Muster (wiederholte Teilzeichenfolgen, vorhersagbare Sequenzen) und kodieren sie mit kürzeren Darstellungen. Zwei klassische Familien:
- Wörterbuchbasiert (LZ77, LZ78, LZW): bauen ein Wörterbuch gesehener Teilzeichenfolgen auf und geben Rückverweise aus. Die Grundlage von DEFLATE, gzip, ZIP.
- Entropiekodierung (Huffman, arithmetische Kodierung, ANS): weisen häufigeren Symbolen kürzere Binärcodes zu. Typischerweise mit Wörterbuchmethoden kombiniert.
Gängige verlustfreie Formate:
- PNG — Bilder (verwendet DEFLATE)
- FLAC — Audio (erhält 16–24-Bit-PCM, typischerweise 50–60 % der Größe von WAV)
- ZIP, gzip, Brotli, Zstandard — allgemeine Daten
- WebP und AVIF — beide unterstützen verlustfreie Modi
- Git-Pack-Dateien — Speicherung von Quellcode-Repositorys
Verwenden Sie verlustfrei, wenn Sie bitgenaue Wiedergabe benötigen, wenn der Inhalt weiter bearbeitet wird oder wenn die Datei Text/strukturierte Daten ist (die sich ohnehin verlustbehaftet schlecht komprimieren lassen).
Die informationstheoretische Obergrenze: Claude Shannons Aufsatz von 1948 stellte fest, dass verlustfreie Kompression nicht unter die Entropie der Quelle fallen kann – die durchschnittliche Information pro Symbol. Für zufällige Daten (zufällige Byte, verschlüsselter Chiffretext, bereits komprimierte Dateien) ist die Entropie maximal und verlustfreie Kompression erreicht im Wesentlichen keine Einsparung. Deshalb gewinnt “gzip image.jpg” fast nichts; die JPEG-Byte sehen für einen Kompressor bereits zufällig aus. Die Folgerung: Wenn Ihre Kompressionsrate bei Daten, die hochentropisch sein sollten, verdächtig gut ist, haben Sie wahrscheinlich einen Fehler gefunden.
Verlustfrei auf verlustbehafteten Daten – wann es sich lohnt: Eine häufige Verwirrung ist, zu FLAC über eine 128-kbps-MP3-Quelle zu greifen und bessere Audioqualität zu erwarten. Die MP3 hat bereits Informationen verworfen; FLAC bewahrt nur verlustfrei die verworfene Version. Für Audio, das als 16-Bit-PCM entstand (CDs, Studiomaster), ist FLAC die richtige Archivwahl. Für Audio, das verlustbehaftet entstand, bläht das Transkodieren zu FLAC die Datei nur auf. Die allgemeine Regel: Speichern Sie den Master im hochwertigsten verlustfreien Format, das die Quelle unterstützt; liefern Sie über das beste verlustbehaftete Format aus, das der Konsument abspielen kann. Verwandt: DEFLATE, verlustbehaftet, Entropie. Quelle: Shannon CE, A Mathematical Theory of Communication (Bell Syst Tech J, 1948).
Durchgerechnetes Beispiel: Kompression einer 10-MB-Logdatei
Ein typisches 10-MB-Anwendungslog (JSON-Zeilen mit Zeitstempeln, Level, Nachricht, wiederholten Feldnamen) ist hochgradig redundant. Reale Zahlen aus einem aktuellen Benchmark auf derselben Eingabe: gzip Standardstufe ≈ 1,6 MB (84 % Reduktion, 0,2 s Kodierung), Brotli Stufe 6 ≈ 1,1 MB (89 %, 0,5 s), Zstandard Stufe 3 ≈ 1,3 MB (87 %, 0,05 s), Zstandard Stufe 19 ≈ 0,9 MB (91 %, 1,8 s). Zufällige Byte (10 MB aus /dev/urandom) komprimieren sich in jedem Algorithmus auf wenige Byte genau auf 10 MB – inkompressibel wegen hoher Entropie. Bereits als PNG vorliegende Bilder schrumpfen unter gzip -9 nur um weitere 1–3 %, weshalb HTTP-Server bei PNG-/JPEG-/MP4-Antworten Content-Encoding: gzip typischerweise überspringen, um CPU zu sparen.
Einen Algorithmus 2026 wählen
Für die Webauslieferung: Brotli auf Qualität 5–6 für statische Assets (bestes Verhältnis bei akzeptabler Kodierzeit, in jedem modernen Browser seit 2017 unterstützt), gzip als Fallback für Legacy-Clients. Für interne Speicherung und Pipelines: Zstandard, das die Pareto-Front aus Kompressionsrate vs. Geschwindigkeit auf den meisten Qualitätsstufen dominiert und nun Standard in tar, Linux-Kernel-Modulen, RocksDB und dem npm-Paketformat ist. Für die Archivierung unersetzlicher Master: verwenden Sie weiterhin einen Wrapper, der eine Prüfsumme enthält (xz mit SHA-256 oder zip mit CRC + externem SHA-256) – die Kompression selbst erkennt keinen Bitrot. Quelle: RFC 8878 — Zstandard Compression and the application/zstd Media Type.
Frequently asked questions
- Was ist verlustfreie Kompression?
- Verlustfreie Kompression reduziert die Dateigröße mithilfe von Algorithmen (wie DEFLATE, LZ77 oder Huffman-Kodierung), die Redundanz kodieren und so die exakte Rekonstruktion der Originaldaten ermöglichen. Es werden keine Informationen verworfen.
- Was sind gängige Beispiele für verlustfreie Formate?
- PNG und WebP-verlustfrei für Bilder, FLAC und ALAC für Audio, ZIP und GZIP für Dateien sowie GIF (begrenzte Palette) sind alle verlustfrei. Ihre Dekompression liefert stets Bit-für-Bit identische Daten zum Original.
- Was ist der Unterschied zwischen verlustfreier und verlustbehafteter Kompression?
- Verlustfreie Kompression erhält jedes Bit; verlustbehaftete Kompression verwirft Informationen, die der Encoder als nicht wahrnehmbar einstuft (JPEG-Quantisierung, MP3-Frequenzmaskierung), um höhere Kompressionsraten zu erreichen. Verlustbehaftete Dateien können nicht perfekt wiederhergestellt werden.
- Wann sollte ich verlustfrei statt verlustbehaftet wählen?
- Verwenden Sie verlustfrei für Quellmaterial, Dokumente, Code und alles, was bearbeitet oder neu komprimiert wird – wiederholte verlustbehaftete Neukodierung sammelt Artefakte an. Verwenden Sie verlustbehaftet für Auslieferungsformate (Webbilder, Streaming-Audio), bei denen die Dateigröße wichtiger ist als perfekte Treue.
Related
Published May 15, 2026 · Last reviewed May 31, 2026