Warum das Zippen von Dateien diese nicht wirklich komprimiert

Das frustrierende Szenario

Sie kennen das. Ein Kollege schickt Ihnen einen 50 MB großen PDF-Bericht. Sie halten ihn für zu groß für eine E-Mail, legen ihn also in 7-Zip ab, drehen die Komprimierung auf „ultra" und warten. Das Ergebnis? Ein 49 MB großes Archiv. Sie schicken es trotzdem, der Empfänger entpackt es, und die Datei ist immer noch 50 MB groß — kein einziges Byte kleiner.

Das ist kein Zufall. Nehmen Sie ein bereits komprimiertes MP4, JPG oder PDF, packen Sie es in eine ZIP-Datei, und die Größe bewegt sich kaum. Führen Sie jedoch dasselbe 7-Zip über einen Ordner mit rohen TXT-, BMP- oder CSV-Dateien aus, kann das Archiv auf ein Zehntel der ursprünglichen Größe schrumpfen.

Warum dieser dramatische Unterschied? Die Antwort liegt in einer Unterscheidung, die die meisten Menschen nie lernen: Archivkomprimierung und Inhaltskomprimierung sind grundlegend verschiedene Vorgänge. Verstehen Sie den Unterschied, werden Sie aufhören, Zeit damit zu verschwenden, Dateien zu zippen, die sich nicht verkleinern lassen — und beginnen, in der richtigen Situation zum richtigen Werkzeug zu greifen.

Archivkomprimierung: Die Kunst des Containers

Archivkomprimierung arbeitet auf der Container-Ebene. Sie tut zwei Dinge: Sie bündelt mehrere Dateien in einem einzigen Container und wendet einen verlustfreien Komprimierungsalgorithmus an, um statistische Redundanz im Bytestrom zu beseitigen.

Die vertrauten Archivformate — ZIP, 7Z, TAR.GZ, RAR — verlassen sich unter der Haube alle auf ähnliche Algorithmen. ZIP verwendet standardmäßig DEFLATE, das LZ77 und Huffman-Codierung kombiniert. LZ77 findet wiederholte Bytefolgen und ersetzt sie durch Distanz- und Längenreferenzen; die Huffman-Codierung weist dann häufigeren Zeichen kürzere Binärcodes und selteneren längere zu. Das 7Z-Format von 7-Zip verwendet standardmäßig LZMA, das LZ77 um Range-Coding erweitert und viel größere Wörterbuchfenster unterstützt und damit typischerweise bessere Raten als DEFLATE erzielt.

Hier liegt der entscheidende Punkt: Archivkomprimierung verändert nie Dateiinhalte. Sie behandelt jede Datei als undurchsichtigen Bytestrom und jagt statistischen Mustern in diesem Strom nach. Wenn Sie ein ZIP-Archiv entpacken, kommen die Dateien byteweise identisch mit den Originalen zurück — kein einziges Pixel verändert sich.

Das erklärt das Anfangsszenario. Ein PDF hat seine Bild- und Schriftartenströme bereits intern mit DEFLATE komprimiert. Ein JPG ist selbst ein komprimiertes Format. Ein MP4 verwendet H.264 oder H.265, um Videoframes zu komprimieren. Bei diesen Dateien ist die Redundanz bereits herausgedrückt, sodass Archivalgorithmen kaum etwas zum Arbeiten übrig bleibt. Bitmap-BMPs, unkomprimierte WAV-Audiodaten und Klartext-CSV-Dateien hingegen sind voller komprimierbarer Wiederholungen — dort glänzt die Archivkomprimierung.

Wo die Archivkomprimierung wirklich brilliert, ist die Beseitigung von Redundanz über mehrere Dateien hinweg. Angenommen, ein Ordner enthält 100 Screenshots, die jeweils dasselbe Logo-Wasserzeichen und eine ähnliche Werkzeugleiste aufweisen. Das große Wörterbuch von LZMA kann diese dateiübergreifenden Wiederholungen erkennen und eine deutlich bessere Komprimierung erreichen als beim Komprimieren jeder Datei einzeln. Deshalb ist das Bündeln von Dateien in einem Archiv effizienter, als sie einzeln zu komprimieren.

Es lohnt sich, hier die Rolle des Komprimierungswörterbuchs zu verstehen. Sowohl DEFLATE als auch LZMA verwalten ein gleitendes Fenster kürzlich gesehener Daten — das Wörterbuch —, gegen das neue Bytes abgeglichen werden. Das Fenster von DEFLATE ist auf 32 KB festgelegt, was einschränkt, wie weit zurück es Wiederholungen findet. LZMA lässt Wörterbücher von 64 MB oder mehr konfigurieren, was bedeutet, dass ein Muster, das in der ersten Datei eines Stapels auftaucht, noch referenziert werden kann, wenn es in der letzten Datei wieder erscheint. Deshalb komprimiert ein einzelnes großes Archiv vieler ähnlicher Dateien weit besser als viele kleine Archive: Das Wörterbuch hat mehr Material, aus dem es schöpfen kann, und die dateiübergreifende Redundanz wird erfasst. Wenn jede Datei separat gebündelt wird, startet jedes Archiv mit einem leeren Wörterbuch, und die Redundanz zwischen den Dateien geht vollständig verloren.

Inhaltskomprimierung: Von innen heraus neu aufbauen

Inhaltskomprimierung schlägt einen anderen Weg ein. Sie kümmert sich nicht darum, wie viele Dateien Sie haben, und bündelt gar nichts. Stattdessen taucht sie in die interne Struktur einer einzelnen Datei ein und optimiert die Daten entsprechend dem spezifischen Typ dieser Datei.

Die Techniken variieren vollständig nach Dateityp:

Bilder können neu abgetastet werden (ein 4000×3000-Original auf 1920×1080 verkleinern), neu codiert werden (PNG in WebP oder AVIF umwandeln) oder ihre Farbtiefe reduziert bekommen (24-Bit auf 8-Bit indiziert). Ein 8 MB großes Handyfoto lässt sich mit vernünftigen Auflösungs- und Qualitätsanpassungen routinemäßig auf unter 500 KB komprimieren, ohne für das Auge sichtbaren Unterschied.

PDFs können eingebettete Bilder herabgetastet, unkomprimierte Schriftartenströme in Teil-CFF umgewandelt, nicht referenzierte Objekte entfernt und doppelte XObjects zusammengeführt werden. Ein 50 MB großes Designdokument voller hochauflösender Illustrationen lässt sich nach der Inhaltskomprimierung oft auf 5-8 MB schrumpfen.

PDFs sind ein besonders lehrreiches Beispiel, weil sie im Grunde selbst Container sind. Ein PDF speichert jedes Bild als Stromobjekt, jede Schriftart als einen weiteren Strom und Text als codierte Inhaltsströme. Die meisten Erzeuger wenden bereits DEFLATE auf Text- und Schriftartenströme und JPEG oder DCT auf fotografische Bilder an. Deshalb schrumpft ein PDF, das man einem Archivwerkzeug übergibt, kaum — die niedrig hängenden Früchte sind bereits gepflückt. Die Inhaltskomprimierung untersucht stattdessen jeden Strom neu: Sie tastet Bilder herab, deren Auflösung den Bedarf der Zielanzeige übersteigt, wandelt verlustfreie Bildströme in JPEG um, wo akzeptabel, verwirft Metadaten wie eingebettete Vorschaubilder und verborgene Ebenen und vereint doppelte Form-XObjects. Das Ergebnis ist kein schlankerer Mantel um dieselben Daten; es ist ein fundamental magereres Dokument.

Schriftarten können geteilt werden, sodass nur die wenigen Dutzend Glyphen behalten werden, die in einem Dokument tatsächlich verwendet werden, statt eine gesamte Schriftartendatei mit Zehntausenden Zeichen auszuliefern.

Video und Audio können mit effizienteren Codecs neu codiert werden — ein Upgrade von H.264 auf H.265 halbiert beispielsweise die Bitrate bei vergleichbarer Qualität in etwa.

Inhaltskomprimierung hat ein definierendes Merkmal: Sie verändert die internen Daten der Datei und ist oft verlustbehaftet. Ein komprimiertes Bild lässt sich nicht auf seine ursprünglichen Pixel zurückstellen; eine geteilte Schriftart lässt sich nicht zu einem vollständigen Schriftbild zusammenfügen. Der Kompromiss ist, dass die Datei an der Quelle kleiner wird — kein Entpacken nötig, sie ist sofort einsatzbereit.

Ein visueller Vergleich

Das Diagramm unten veranschaulicht den grundlegenden Unterschied im Ablauf zwischen den beiden Ansätzen:

Archive compression vs content compression difference flowchart: 7-Zip packaging path vs content-level compression path

Der linke Pfad ist ein Zyklus „bündeln–übertragen–entpacken–wiederherstellen", bei dem sich der Dateiinhalt nie ändert. Der rechte Pfad ist ein unidirektionaler Prozess „analysieren–optimieren–erzeugen", bei dem die Datei selbst neu aufgebaut wird.

Codebeispiele: Den Unterschied sehen

Python macht den Unterschied besonders deutlich.

Archivkomprimierung mit zipfile


import zipfile
import os

# Archivkomprimierung: mehrere Dateien in ein einziges Zip bündeln
source_files = ['report.pdf', 'photo.jpg', 'data.csv']
archive_name = 'bundle.zip'

with zipfile.ZipFile(archive_name, 'w', zipfile.ZIP_DEFLATED) as zf:
    for file in source_files:
        zf.write(file)

# Ergebnis messen
original = sum(os.path.getsize(f) for f in source_files)
packed = os.path.getsize(archive_name)
print(f"Original total: {original / 1024 / 1024:.2f} MB")
print(f"Archive size:   {packed / 1024 / 1024:.2f} MB")
print(f"Ratio: {packed / original * 100:.1f}%")

# Typische Ausgabe (Dateien bereits in komprimierten Formaten):
# Original total: 58.30 MB
# Archive size:   57.10 MB
# Ratio: 97.9%

Beachten Sie das Verhältnis — fast keine Veränderung. Weil diese Dateien bereits in komprimierten Formaten vorliegen, ist die Archivkomprimierung machtlos.

Inhaltskomprimierung mit PIL


from PIL import Image
import os

# Inhaltskomprimierung: die Bilddaten selbst optimieren
src = 'photo.jpg'
dst = 'photo_optimized.jpg'

img = Image.open(src)
before = os.path.getsize(src)

# Dreifache Inhaltskomprimierung
img.thumbnail((1920, 1080))  # Auflösung reduzieren
img.save(dst, 'JPEG',
         quality=75,        # geringere Qualität
         optimize=True,     # Huffman-Tabellen optimieren
         progressive=True)  # progressive Codierung

after = os.path.getsize(dst)
print(f"Original size: {before / 1024 / 1024:.2f} MB")
print(f"Optimized size: {after / 1024:.2f} KB")
print(f"Ratio: {after / before * 100:.1f}%")

# Typische Ausgabe:
# Original size: 8.20 MB
# Optimized size: 480.50 KB
# Ratio: 5.7%

Dasselbe Wort — „Komprimierung" — und doch verwandelt das eine 58 MB in 57 MB, während das andere 8 MB in 480 KB verwandelt. Die Lücke entsteht dadurch, was jeweils berührt wird: Das erste sortiert nur den Container um, das zweite schreibt den Inhalt neu.

Vergleich auf einen Blick

DimensionArchivkomprimierungInhaltskomprimierung
Was sie tutBündelt Dateien und beseitigt RedundanzOptimiert die internen Daten einer Datei
ZielDateicontainer (Mehrdatei-Ebene)Dateiinhalt (Datenebene)
MethodeDEFLATE / LZMA und weitere verlustfreie AlgorithmenNeuabtastung / Transcodierung / Teilen
VerlustVerlustfrei; beim Entpacken vollständig wiederherstellbarMeist verlustbehaftet; nicht umkehrbar
VerwendungMuss vor der Verwendung entpackt werdenDirekt verwendbar, kein Entpacken
Typisches SzenarioMehrere Dateien übertragen, BackupsGrößenreduzierung, Web-Optimierung, E-Mail-Anhänge
WirksamkeitHängt von Redundanz ab; nahe null bei vorkomprimierten DateienKann Komprimierungsverhältnisse von 10x und mehr erreichen

Fallstudie: Zwei Schicksale eines 50 MB großen PDFs

Nehmen Sie ein echtes 50 MB großes PDF (mehrere Seiten hochauflösender gescannter Bilder) und vergleichen Sie:

Ansatz A: Archivkomprimierung

  • Werkzeug: 7-Zip, LZMA2 ultra
  • Ergebnis: 50 MB → 49,2 MB
  • Warum: Die internen Bildströme des PDFs sind bereits mit DCTDecode JPEG-komprimiert, und die Schriftartenströme verwenden FlateDecode. Die Archivkomprimierung findet keine Redundanz mehr vor, die sich ausnutzen ließe.

Ansatz B: Inhaltskomprimierung

  • Operationen: Eingebettete Bilder auf 150 DPI herabtasten, JPEG-Qualität auf 75 senken, Schriftarten teilen, nicht referenzierte Objekte entfernen
  • Ergebnis: 50 MB → 6,8 MB
  • Warum: Die Komprimierung zielt auf das Hauptgewicht des PDFs — die hochauflösenden Scans — ab. Bei 150 DPI sieht das Lesen am Bildschirm praktisch identisch aus, und doch ist die Datei siebenmal kleiner.

Die beiden „Komprimierungen" erzeugen einen Unterschied von 7x. Wenn Ihr Ziel darin besteht, dieses PDF per E-Mail zu verschicken, ist Ansatz B die Antwort; Ansatz A verschwendet nur Mühe.

Den richtigen Ansatz wählen

Mit beiden Werkzeugen zur Hand wird die Entscheidung unkompliziert. Fragen Sie sich, was Sie erreichen wollen:

  • Müssen Sie viele Dateien auf einmal bewegen? Greifen Sie zur Archivkomprimierung. Sie bündelt, prüft und drückt dateiübergreifende Redundanz in einem Schritt aus — ideal für Backups, die Verteilung von Quellcode und die Übertragung von Ordnerstrukturen.
  • Muss eine einzelne Datei kleiner werden? Greifen Sie zur Inhaltskomprimierung. Ein 50 MB großes PDF, das per E-Mail verschickt werden soll, schrumpft in einem ZIP nicht, schrumpft aber dramatisch, sobald seine internen Bilder herabgetastet werden.
  • Beides nötig? Wenden Sie zuerst die Inhaltskomprimierung auf jede Datei an und bündeln Sie die Ergebnisse dann mit Archivkomprimierung. Die Reihenfolge ist nicht verhandelbar: Die Inhaltsoptimierung muss stattfinden, während die Dateiinterna noch zugänglich sind, bevor sie in einem Archiv versiegelt werden.

Ein nützliches mentales Modell: Archivkomprimierung senkt die Kosten des Transports, während Inhaltskomprimierung die Kosten der Speicherung senkt. Wenn Ihre Datei bereits klein genug für den Transport ist, aber dauerhaft auf einem Server liegt, zahlt sich die Inhaltskomprimierung durch bei jedem Download gesparte Bandbreite aus. Wenn Sie nur einmal einen Stapel Dateien verschicken, ist die Archivkomprimierung die zurückhaltendere Option.

Häufig gestellte Fragen

F1: Warum schrumpft 7-Zip PDFs, JPGs oder MP4s kaum?

Weil diese Dateien bereits komprimierte Formate sind. PDFs komprimieren Bild- und Schriftartenströme intern mit DEFLATE; JPGs komprimieren Bilddaten mit DCT-Transformationen; MP4s komprimieren Videoframes mit H.264/H.265. Archivalgorithmen stehen vor Daten, die bereits ausgedrückt wurden, sodass keine statistische Redundanz mehr zu entfernen ist. Archivkomprimierung ist bei rohen, unkomprimierten Daten wirksam — BMP, WAV, Klartext.

F2: Verliert Inhaltskomprimierung an Qualität? Wie balanciere ich Größe und Qualität?

Die meisten Inhaltskomprimierungen sind verlustbehaftet, aber der Verlustgrad ist steuerbar. Bei Bildern tauschen Sie Größe gegen Schärfe, indem Sie Auflösung und Qualität anpassen — 72-96 DPI bei Qualität 75 ist für Bildschirme meist in Ordnung, während Druck 300 DPI verlangt. Das Teilen von Schriftarten ist verlustfrei und beeinflusst die Anzeige nicht. Entscheidend ist, die Komprimierungsstufe an den Anwendungsfall anzupassen statt eine Einheits-Einstellung zu verwenden.

F3: Können Archivkomprimierung und Inhaltskomprimierung gemeinsam verwendet werden?

Ja, und das passiert oft. Der typische Ablauf: zuerst die Inhaltskomprimierung anwenden, um jede Datei an der Quelle zu verkleinern, dann die Archivkomprimierung anwenden, um die kleineren Dateien für die Übertragung zu bündeln. Die Reihenfolge zählt — zuerst Inhalt, dann Archiv. Eine Umkehr sperrt die Dateistruktur im Archiv ein und blockiert die Inhaltskomprimierung. Optimieren Sie zuerst den Inhalt und bündeln Sie dann, und Sie ernten die Vorteile beider.

Fazit

Archivkomprimierung und Inhaltskomprimierung tragen beide den Namen „Komprimierung", operieren aber auf unterschiedlichen Schichten. Archivkomprimierung arbeitet auf der Container-Ebene — sie bündelt und beseitigt Redundanz verlustfrei, mit begrenzter Wirkung auf bereits komprimierte Dateien. Inhaltskomprimierung arbeitet auf der Datenebene — sie baut die Dateiinterna neu auf, oft verlustbehaftet, verkleinert sie aber an der Quelle.

Wenn Sie sich das nächste Mal vor eine „komprimierte" Datei gestellt sehen, die nicht kleiner geworden ist, fragen Sie sich: Komprimiere ich den Container oder den Inhalt? Wählen Sie die richtige Schicht, und die Komprimierung macht endlich ihren Job.

Weiterführende Lektüre:

Dateien komprimieren? Probieren Sie SmartSlim

Basierend auf einer selbstentwickelten Rust-Kompressions-Engine, unterstützt über 40 Formate in 10 Kategorien wie PDF, Bilder, Video, Office und OFD. Die Komprimierung erfolgt lokal, ohne dass Daten Ihre Umgebung verlassen.