Zum Inhalt springen

So funktioniert oCompress

Was passiert, wenn Sie eine Datei hineinziehen, wie Sie prüfen können, dass nichts hochgeladen wird, und was verlustfreie und verlustbehaftete Komprimierung wirklich bedeuten.

Die Kurzfassung

Wenn Sie eine Tool-Seite öffnen, lädt Ihr Browser die Seite und ein kleines Programm herunter, den Kompressor. Wenn Sie eine Datei hinzufügen, liest der Browser sie, der Kompressor verarbeitet sie auf Ihrem eigenen Prozessor, und das Ergebnis wird Ihnen als Download übergeben. Zu keinem Zeitpunkt wird die Datei über das Netzwerk gesendet. Der ganze Ablauf sieht so aus:

  1. Laden. Zuerst werden die Seite und die Oberfläche des Tools geladen. Die Engine für einen Dateityp (Bilder, Video und Audio oder Dokumente) wird erst abgerufen, wenn Sie eine passende Datei hinzufügen, Sie laden also nie Code herunter, den Sie nicht brauchen.
  2. Lesen. Ihr Browser gibt der Seite Zugriff auf genau die Dateien, die Sie ausgewählt haben, auf nichts anderes auf Ihrem Gerät.
  3. Komprimieren. Die Arbeit läuft in einem Web Worker, einem Hintergrund-Thread des Browsers, sodass die Seite reaktionsfähig bleibt und Sie jederzeit abbrechen können.
  4. Speichern. Die komprimierte Datei entsteht im Arbeitsspeicher (große Videos im privaten Speicher des Browsers) und wird über den normalen Download Ihres Browsers gespeichert, einzeln oder als ZIP.

Was in Ihrem Browser läuft

Moderne Browser können mit WebAssembly kompilierten Code nahezu in nativer Geschwindigkeit ausführen, und über eine Schnittstelle namens WebCodecs geben sie Webseiten Zugriff auf die Hardware-Videoencoder des Geräts. oCompress nutzt beides:

  • Bilder: MozJPEG für JPEG, OxiPNG und ein Paletten-Quantisierer für PNG, der WebP-Encoder aus Googles libwebp, libavif für AVIF, SVGO für SVG sowie eigene Decoder und Encoder für GIF und TIFF. Die Codecs für JPEG, PNG, WebP und AVIF sind nach WebAssembly kompiliert.
  • Video und Audio: WebCodecs mit der Bibliothek Mediabunny, die Container wie MP4 und WebM liest und schreibt. Kodiert wird, wo verfügbar, mit dem Hardware-Encoder Ihres Grafikchips, deshalb kann es selbst im Browser schnell gehen. MP3-Dateien schreibt der LAME-Encoder und FLAC-Dateien libFLAC, beide nach WebAssembly kompiliert und nur bei Bedarf geladen.
  • Dokumente: Unser eigener Code auf Basis von Open-Source-Bibliotheken für PDF und ZIP öffnet PDFs und Office-Dateien, komprimiert die Bilder darin mit den Bild-Codecs neu und schreibt eine neue Datei.

Jede Bibliothek, die wir ausliefern, ist Open Source: die meisten unter freizügigen Lizenzen wie MIT, BSD und Apache 2.0, Mediabunny unter der MPL 2.0 und der MP3-Encoder LAME unter der LGPL als separate, austauschbare Datei. Siehe die Liste der Bibliotheken mit Versionen und Lizenzen.

So prüfen Sie, dass nichts hochgeladen wird

Sie müssen uns nicht beim Wort nehmen. Zwei einfache Tests:

  • Offline gehen. Öffnen Sie eine Tool-Seite, komprimieren Sie eine Datei, damit die Engine geladen ist, schalten Sie dann WLAN oder mobile Daten aus und komprimieren Sie eine weitere Datei desselben Typs. Es funktioniert, weil nichts das Netzwerk braucht.
  • Das Netzwerk beobachten. Drücken Sie in Chrome, Edge oder Firefox F12, öffnen Sie die Registerkarte „Netzwerk“ und komprimieren Sie eine Datei. Sie sehen, wie der Code des Kompressors von unserer Website geladen wird, und Anfragen von Analyse und Werbung, aber keine Anfrage, die Ihre Datei überträgt. Ein Foto mit 10 MB würde als Upload von 10 MB auftauchen; es gibt keinen.

Die Seite sendet anonyme Nutzungsereignisse an Google Analytics, etwa „ein JPG mit einigen Megabyte wurde komprimiert“. Diese Ereignisse enthalten das Tool, den Dateityp sowie Größe, Ersparnis und Verarbeitungszeit als grobe Bereiche, nie den Dateinamen oder den Inhalt.

Verlustfreie Komprimierung: gleicher Inhalt, weniger Bytes

Verlustfreie Komprimierung findet Redundanz, also Dinge, die mehrfach gespeichert sind oder sich vorhersagen lassen, und schreibt sie kompakter. Beim Dekodieren wird der Vorgang exakt umgekehrt. Drei Ideen finden sich in fast jedem verlustfreien Format:

  • Vorhersage. Benachbarte Pixel in einem Bild oder aufeinanderfolgende Samples im Audio sind meist ähnlich. Speichert man statt des vollen Werts nur die kleine Abweichung von einer Vorhersage, bleiben Zahlen übrig, die meist nahe null liegen. PNG-Filter und der lineare Prädiktor von FLAC arbeiten so.
  • Wiederholung. Wiederholte Sequenzen werden durch einen kurzen Verweis auf die frühere Kopie ersetzt. Das ist der LZ77-Teil von DEFLATE, verwendet in ZIP, PNG und Office-Dateien.
  • Entropiekodierung. Häufige Werte erhalten kurze Codes, seltene lange (Huffman- oder arithmetische Kodierung).

Verlustfreie Komprimierung hat eine natürliche Grenze: Zufälliges Rauschen lässt sich nicht vorhersagen, ein körniges Foto oder eine verrauschte Aufnahme schrumpft daher ohne Verlust nie stark. Das ist auch der Grund, warum das Komprimieren einer bereits komprimierten Datei, etwa eines JPEGs in einem ZIP, fast nichts spart.

Verlustbehaftete Komprimierung: entfernen, was Sie nicht vermissen

Verlustbehaftete Codecs gehen weiter und verwerfen Informationen, die menschliche Augen und Ohren kaum wahrnehmen. JPEG und WebP speichern Farbe in geringerer Auflösung als Helligkeit und runden feine, hochfrequente Details weg. MP3, AAC und Opus lassen Klänge weg, die von lauteren verdeckt werden. Video-Codecs wie H.264 speichern ab und zu ein vollständiges Bild und dazwischen vor allem Bewegungen und Änderungen.

Die Einstellung für Qualität oder Bitrate entscheidet, wie viel verworfen wird. Bei moderaten Einstellungen ist der Verlust kaum wahrnehmbar; geht man zu weit, treten typische Artefakte auf: Blöcke und Säume in Bildern, ein metallischer oder dumpfer Unterwasserklang im Audio, Verschmieren in schnellen Videoszenen.

Was die Tools versprechen und was nicht

  • Sie erhalten nie eine größere Datei. Ist das Ergebnis nicht kleiner, gibt das Tool das Original zurück und teilt Ihnen mit, dass es bereits optimal ist.
  • Dokumente und Audiodateien ergeben bei gleicher Datei und gleichen Einstellungen identische Bytes; Hardware-Videoencoder können sich zwischen zwei Durchläufen um ein paar Bytes unterscheiden.
  • Text in Dokumenten bleibt Text; Seiten werden nie in Bilder verwandelt.
  • Bild-Metadaten wie der GPS-Standort werden standardmäßig entfernt, Farbprofil und Drehung bleiben erhalten. Video-Metadaten wie Ort, Gerät und Datum werden ebenfalls standardmäßig entfernt; Audio behält Tags und Cover, sofern Sie das nicht ausschalten.

Was wir nicht versprechen können, ist ein bestimmter Prozentsatz. Die Ersparnis hängt ganz davon ab, wie die Datei erstellt wurde: Ein Handyfoto oder ein gescanntes PDF hat meist viel Spielraum, eine bereits optimierte Datei wenig. Das Tool zeigt für jede Datei die genauen Größen vorher und nachher.

Grenzen der Komprimierung im Browser

Ein Browser-Tab ist eine Sandbox mit begrenztem Arbeitsspeicher, und das bestimmt, was praktikabel ist. Das Tool nimmt Bilder bis 200 MB und 100 Megapixel an, PDF- und Office-Dateien bis 300 MB sowie Video und Audio bis 4 GB auf einem Computer (1 GB auf Handys), wobei lange 4K-Videos trotzdem nicht in den Arbeitsspeicher eines Tabs passen können. Die Geschwindigkeit hängt von Ihrer Hardware ab: In unseren Tests auf einem schnellen Windows-PC in Chrome brauchte eine Minute 1080p-Video etwa 20 Sekunden und ein 24-Megapixel-Foto etwa 2,5 Sekunden; Handys können viel langsamer sein. Video und die meisten Audioumwandlungen brauchen WebCodecs, das aktuelle Versionen von Chrome, Edge und Opera, Firefox ab 130 und Safari ab 26 bereitstellen; WAV und AIFF können auch ohne WebCodecs zu MP3, FLAC oder WAV werden.

Für einige Formate gibt es in Browsern überhaupt keinen Decoder, etwa für WMA, AVI und WMV, und alte binäre Office-Dateien lassen sich nicht sicher neu schreiben. Für diese erklärt das Tool die Möglichkeiten, statt eine möglicherweise beschädigte Datei zu erzeugen. Ist eine Aufgabe zu groß für einen Browser, ist ein Desktop-Programm wie HandBrake für Video oder LibreOffice für Dokumente die ehrliche Empfehlung.