Der große Bild-Kompressions-Tool-Vergleich

Christoph Erdmann Autor: Christoph Erdmann (@McSodbrenner)
Letztes Update: 2018-03-27
English version | Deutsche Version

Im Netz tummeln sich haufenweise Artikel über Online-Bild-Kompressions-Tools, die in der großen Mehrzahl leider nur sehr oberflächlich auf die Tools eingehen. Meist bleibt es bei einem simplen: "Das macht kleinere Bilder, also muss es besser sein." Leider werden solche Aussagen unabhängig davon getroffen, welche Einstellungen gemacht wurden, und ohne die Konsequenzen für die jeweilige Zielgruppe (Fotograf, Web-Entwickler, Ad-Entwickler etc.) oder den jeweiligen Anwendungszweck (Archivierung, Website-Präsentation, Druck etc.) zu beachten.

Grundsätzlich gibt es nicht DAS Tool, sondern nur das optimale Tool für einen bestimmten Anwendungszweck. Ich werde also die Funktionen der einzelnen Tools vergleichen und schauen, wo diese ihre Stärken und Schwächen haben. Und natürlich werde ich testen, wie es denn um die tatsächlichen JPG-Kompressions-Fähigkeiten bestellt ist und wie die Tools im Vergleich zu compress-or-die darstehen.

Im Ring stehen die wohl bekanntesten Tools:

Das Testbild, welches als Grundlage für alle Diagramme und Vergleiche dient, ist dieses:

Testbild

Qualität beurteilen

Wie beurteilt man eigentlich die Ergebnisse der Tools? Wie vergleicht man die Qualität zweier Bilder? Ab welcher Qualitätstufe sehen sie ausreichend gut aus? Und ab wann stören Kompressions-Artefakte? Je nach Anwendungszweck und Person werden die Antworten hier recht unterschiedlich ausfallen.

Ein paar schlaue Köpfe haben sich Gedanken dazu gemacht und den SSIM-Algorithmus entwickelt, der die Wahrnehmung unseres Auges simulieren soll. Dieser versucht einen absoluten Wert zu erzeugen, der den wahrgenommenen Unterschied zwischen zwei Bildern wiedergibt.

Mit diesem Algorithmus werde ich im Folgenden die Ergebnisse der Tools vergleichen, indem ich das jeweils produzierte JPG mit dem Original-Bild vergleiche. Für eine bessere Lesbarkeit und Verständlichkeit multipliziere ich den entstehenden Wert mit 1000 und subtrahiere ihn von 1000, so dass ich effektiv einen Wert für den visuellen Abstand zweier Bilder bekomme.

Basierend auf meiner ganz individuellen Wahrnehmung habe ich daraus folgende Beurteilungstabelle für das JPG-Format erstellt:

JPG-SSIM-Tabelle

Wert Beurteilung
0 bis ~2 Keine sichtbaren Artefakte
~2 bis ~5 Akzeptable Artefakte sichtbar
~5 bis ~15 Stark sichtbare Artefakte
~15 bis ∞ Das Bild wollt ihr nicht sehen ...

Dateigröße vs. Qualität

Die Tools wirken scheinbar ein wenig Magie und geben euch ein JPG zurück, welches bei wesentlich kleinerer Dateigröße immer noch identisch zum Original aussieht. Wie schaffen das die Kompressions-Tools eigentlich?

Im Normalfall werden eure Bilder neu komprimiert, da mit Maßnahmen, die die Bilddaten nicht verändern (z.B. Entfernen der Meta-Daten, Baseline-zu-Progressive-Umbau, Optimierung der Huffman-Tabellen), normalerweise nicht viel aus einem Bild herausgeholt werden kann.

Bei der Neu-Kompression sind zwei Dinge entscheidend: Zum ersten der verwendete JPG-Encoder für einstellbare Features wie z.B. Color subsampling, und zum zweiten die gewählte Qualitätsstufe.

Die verfügbaren JPG-Encoder sind mittlerweile recht weit ausgereizt. Ich gehe davon aus, dass die meisten Tools, so wie ich auch, den Platzhirschen MozJPEG gewählt haben, der derzeit am ausgereiftesten wirkt. Betreut wird das von Mozilla Research ins Leben gerufene mozJPEG derzeit von Kornel, der sich schon mit pngquant einen hervorragenden Namen im Bereich der PNG-Kompression gemacht hat.

Viel interessanter ist aber die Qualitätsstufe (eigentlich das Anpassen der Werte für die Quantisierungstabellen, siehe "JPG endlich verstehen"). Da in jedem Tool die Quantisierungstabellen über verschieden skalierte Qualitäts-Regler (z.B. Adobe Photoshop: 1-12) eingestellt werden, hier der Hinweis, dass ich das System verwenden werde, welches am gebräuchlichsten ist und auch von mozJPEG verwendet wird: Die Qualitäts-Skala von 1-100.

Um zu verstehen, wie die Tools den zur Neu-Kompression nötigen Qualitätsfaktor festlegen, sollten wir uns zuerst mal die folgenden zwei Diagramme anschauen, die ich aus dem Beispielbild generiert habe. Das erste ist der typische Verlauf von Dateigröße zu eingestellter Qualitätsstufe eines JPGs:

Dateigröße
JPG Qualität
JPG Qualität / Dateigröße

Das zweite Diagramm ist der Verlauf von wahrgenommenen Qualitätsunterschieden zu eingestellter Qualitätsstufe:

SSIM
JPG Qualität
JPG Qualität / SSIM

Anhand dieser beiden Bilder kann man sehr gut sehen, dass die Dateigröße ab dem JPG-Qualitätswert von ca. 75 exponentiell ansteigt, während sich die wahrgenommene Qualität nur noch sehr wenig verbessert.

Der Wert um ca. 75 ist daher der Sweet Spot und hat das beste Qualitäts-/Dateigrößenverhältnis.

Der Wert aber, ab dem die meisten User absolut keinen Unterschied mehr zwischen dem Original und dem neu erzeugten Bild feststellen können, liegt nach meinen Erfahrungswerten je nach Bild oberhalb von etwa 85. Die Tools wählen also einen Wert oberhalb der 85, welcher ihrer Meinung nach so gerade ausreicht, dass der User keinen Unterschied mehr zum Original-Bild feststellen kann. Da die Dateigröße in dem Bereich aber exponentiell ansteigt, macht es einen enormen Dateigrößen-Unterschied, ob ein Tool einen Wert von 87 oder 88 wählt.

Dass die Dateigrößenersparnis bei den Tools jetzt so enorm ist, liegt in den meisten Fällen daran, dass Bilder aus Digitalkameras oder Smartphones verkleinert werden sollen, welche ab Werk einen extrem hohen JPG-Qualitätswert eingestellt haben. Und wie wir in der Grafik gesehen haben, steigt bei sehr hohen Qualitätsstufen wie 90 und mehr die Dateigröße ins Extreme. Diese hohe Einstellung der Kameras hat aber durchaus seine Berechtigung: Ein Fotograf ist für jedes Quentchen Qualität dankbar, welches Bild-Fehler nach seiner Bearbeitung verhindert. Für den Otto-Normal-Verbraucher jedoch ist solch eine hohe Qualitätsstufe meistens unsinnig.

Einfach mal kurz eingeworfen: Macht es nicht evtl. Sinn, kaum sichtbare Artefakte in Kauf zu nehmen und dabei 30% an Dateigröße einzusparen? Das Ergebnis lässt sich nur leider nicht so gut an den User verkaufen wie die Aussage "Wir reduzieren ihre Bilder ohne Qualitätsverlust". Da die Entwickler der Tools für diese Aussage gerade stehen müssen, sind die Ergebnisse vieler Optimierungstools größer als sie sein müssten.

Der Feature-Vergleich

In der folgenden verlinkten Tabelle seht ihr alle Features der Tools in einer Gesamtübersicht.

Der große Bild-Kompressions-Tool-Vergleich - Feature-Tabelle

Kommen wir jetzt zur Einzelvorstellung, in der ich vorstellen werde, was mir bei den Tools so aufgefallen ist. Da ich der Entwickler von compress-or-die bin, werde ich sie natürlich damit vergleichen.

tinyJPG

Logo tinyJPG

tinyJPG ist der kleinere Bruder des relativ bekannten PNG-Kompressions-Tools tinyPNG. Durch dessen Erfolg bestätigt, veröffentlichte der niederländische Betreiber voormedia schließlich im November 2014 dieses Pendant.

Positiv hervorzuheben ist hier die große Anzahl an Versionen, die dem User zur Verfügung gestellt werden. Es gibt ein Webinterface, ein Photoshop-Plugin (50$), ein Wordpress-Plugin, ein Magento-Plugin und eine API, welche im Hintergrund von den Plugins genutzt wird, aber auch selbst genutzt werden kann. Solange man nicht mehr als 500 Bilder im Monat konvertieren möchte, ist dies auch kostenlos möglich.

Das Upload-Limit mit max. 5 MB pro Bild ist nicht sonderlich hoch, aber hier zeigt sich auch deutlich, dass tinyJPG eher die Web-Entwickler und Hobby-Fotografen als die Profi-Fotografen ansprechen möchte.

Es ist möglich, bis zu 20 JPG-Bilder auf einmal über eine verschlüsselte Verbindung hochzuladen, was wohl gleichzeitig der Grund ist, warum es keine Preview-Funktion gibt. Da es aber keine Einstellungsmöglichkeiten gibt und tinyJPG verspricht, dass es keine sichtbaren Änderungen im Bild gibt, ist diese Entscheidung nachvollziehbar.

Meta-Daten wie Exif, IPTC und XMP werden entfernt, was für nahezu alle User der Zielgruppe in Ordnung sein sollte, solange sie nicht in einer Bildagentur arbeiten oder professionelle Fotografen sind.

tinyJPG behält das Color subsampling des Eingangs-JPGs bei. Ich persönlich halte das im Hinblick auf die Zielgruppe für eine unglückliche Lösung, da die meisten User nicht in der Lage sein werden, diese Einstellung für ihr Ursprungsbild festzulegen. Und da ein 2x2-Subsampling in fast allen Fällen genug sein sollte, wird hier im Falle eines 1x1-Eingangsbildes durchaus eine Menge Einspar-Potential in der Größenordnung von rund 20% verschenkt.

Positiv hervorzuheben ist die Farbraum-Konvertierung zu sRGB, die sonst nur compress-or-die bietet. Und die Auto-Rotation anhand der im JPG eingebetteten Exif-Daten, die noch von compress-or-die und Optimizilla angeboten werden.

tinyJPG wählt eine relativ hohe Qualitätsstufe, welche ich mit compress-or-die jeweils bei leicht geringerer Dateigröße und besserer Qualität unterbieten konnte:

Bild mit Einstellungen Dateigröße Color subsampling SSIM
tinyjpg_100_2x2.jpg 111,914 2x2 3.65
cod_89-76_2x2.jpg 111,249 2x2 3.45
Bild mit Einstellungen Dateigröße Color subsampling SSIM
tinyjpg_100_1x1.jpg 136,053 1x1 3.63
cod_91-67_1x1.jpg 135,817 1x1 2.67

compressor.io

Logo compressor.io

Das Tool von Stephane Lyver besticht eher durch seine Einfachheit als durch seine Features, was ebenfalls eine bestimmte Zielgruppe anspricht.

Es kann jeweils nur ein JPG-Bild über eine verschlüsselte Verbindung hochgeladen werden, wobei einem das Upload-Limit von 10 MB aber viel Platz lässt und man mit einer Preview belohnt wird. Meta-Daten wie Exif, IPTC und XMP werden auch hier entfernt. Das Color subsampling wird grundsätzlich auf 2x2 gestellt.

Durch die von compressor.io moderat gewählte Qualitätsstufe, die sich etwa an der Grenze zu sichtbaren Artefakten befindet, haben wir es hier mit einem Tool für Webworker zu tun, die nicht auf eingebildete Qualitätsvorteile beharren. Den festgelegten Wert für die Kompression finde ich persönlich besser als bei den anderen Tools. Leider enthält es nur wenige Features.

Die Ergebnisse konnte ich mit compress-or-die bei leicht geringerer Dateigröße und besserer Qualität unterbieten:

Bild mit Einstellungen Dateigröße Color subsampling SSIM
compressorio_100_2x2.jpg 101,684 2x2 4.86
cod_87-61_2x2.jpg 101,249 2x2 4.13

compressor.io unterstützt zusätzlich eine Option für eine Lossless-Kompression. Für JPGs, die zuvor mit compress-or-die komprimiert wurde, konnte aber keine Verbesserung erzielt werden. Ich vermute, dass bei dieser Einstellung Meta-Daten entfernt, Huffman-Tables optimiert und die Struktur von Baseline auf Progressive umgebaut werden, was üblicherweise das Standard-Vorgehen bei Lossless-Optimierung ist und natürlich auch von compress-or-die so durchgeführt wird.

Optimizilla

Logo Optimizilla

Optimizilla war eine kleine Überraschung im Test. Eigentlich wollte ich auch noch compressjpeg.com testen, bis mir auffiel, dass beide Tools von der Mediafox Marketing s.r.o. aus Tschechien kommen. Genauso wie compresspng.com und gifcompressor.com. Leider wirkten alle Seiten ein wenig überladen mit Werbung, so dass der erste Eindruck etwas getrübt war.

Es können wie bei tinyJPG bis zu 20 JPG-Bilder gleichzeitig hochgeladen werden. Über ein Upload-Limit habe ich leider nichts gefunden und die Verbindung ist zudem unverschlüsselt. Dafür wird man trotz der Massen-Upload-Funktion mit einer Preview belohnt. Meta-Daten wie Exif, IPTC und XMP werden auch hier entfernt. Das Color subsampling wird grundsätzlich auf 2x2 gestellt.

Optimizilla wählt eine extrem hohe Qualitätsstufe, welche ich mit compress-or-die jeweils bei leicht geringerer Dateigröße und besserer Qualität unterbieten konnte:

Bild mit Einstellungen Dateigröße Color subsampling SSIM
optimizilla_100_2x2-90.jpg 124,000 2x2 2.99
cod_91-81_2x2.jpg 123,708 2x2 2.67

Optimizilla ist neben compress-or-die übrigens das einzige der hier im Test vorgestellten Tools, welches es erlaubt, eine Qualitätsstufe für die JPGs anzugeben.

JPEGmini

Logo JPEGmini

JPEGmini des israelischen Herstellers Beamr Imaging Ltd. weist, wie auch tinyJPG, eine Vielzahl von zur Verfügung stehenden Versionen auf. Neben dem obligatorischen Webinterface gibt es ein Adobe-Photoshop-Plugin, ein Adobe-Lightroom-Plugin, eine Desktop-Software (Windows, Mac, 29$) und eine installierbare Server-Version. Für die Server-Version habe ich allerdings keinen Preis gefunden, und für die Trial-Version ist eine Anmeldung nötig. Deshalb gehe ich davon aus, dass diese etwas teurer ist.

Außergewöhnlich: Es kann ein Bild mit bis zu 128 Megapixeln hochgeladen werden, was eigentlich heißt, dass so ziemlich jedes JPG-Bild hochgeladen werden kann. Leider nur über eine unverschlüsselte Verbindung.

Das Color subsampling des Originalbildes wird beibehalten, genauso wie die Meta-Daten. Außerdem wählt JPEGmini eine sehr hohe Qualitätsstufe, welche ich mit compress-or-die jeweils bei leicht geringerer Dateigröße und besserer Qualität unterbieten konnte:

Bild mit Einstellungen Dateigröße Color subsampling SSIM
cod_90-82_2x2.jpg 119,831 2x2 2.96
jpegmini_100_2x2.jpg 120,137 2x2 3.3
Bild mit Einstellungen Dateigröße Color subsampling SSIM
jpegmini_100_1x1.jpg 146,210 1x1 3.3
cod_91-78_1x1.jpg 145,581 1x1 2.67

Aufgrund der Tatsache, dass JPEGmini die Meta-Daten und das Color subsampling beibehält, der möglichen Dateigröße beim Upload und des Vorhandenseins des Lightroom-Plugins, gehe ich davon aus, dass JPEGmini eindeutig Fotografen anspricht.

kraken.io

Logo kraken.io

kraken.io von der Nekkra UG aus Deutschland scheint auf den ersten Blick das Gegenstück zu JPEGmini zu sein. Das Upload-Limit liegt bei nur einem MB, womit sich wohl der Versuch eines Foto-Uploads erübrigt und wir den inoffiziellen Beweis haben, dass dieses Tool für Webworker gedacht ist.

Features wie Massen-Upload, Einstellen des Color subsamplings und die Möglichkeit, Meta-Daten zu behalten oder auch zu entfernen, wissen zu gefallen. Daüber hinaus lässt sich die Qualitätstufe noch händisch einstellen.

Hier darf man nur nicht den Fehler machen, den Regler auf "Lossy" stehen zu lassen und kraken das Optimieren zu überlassen. Die gewählte Qualitätsstufe ist in diesem Fall absurd hoch und resultiert in der in diesem Test größten Dateigröße. Da man aber die Qualitätsstufe einstellen kann, wollen wir da mal ein Auge zu drücken. Allerdings wäre es für diesen Fall auch schön gewesen, eine Preview-Funktion zu haben.

Die Dateigröße ist mit Abstand die größte im Test. Auch diese konnte mit compress-or-die jeweils bei leicht geringerer Dateigröße und besserer Qualität unterboten werden:

Bild mit Einstellungen Dateigröße Color subsampling SSIM
kraken_100_2x2.jpg 191,420 2x2 0.84
cod_96-91_2x2.jpg 184,208 2x2 0.79

Auch bei kraken.io hat man die Möglichkeit, einen Lossless-Modus auszuwählen, der aber aus von compress-or-die erstellten Bildern nichts mehr herausholen konnte.

compress-or-die

Logo compress-or-die

compress-or-die.com versucht all die Probleme der anderen Tools auszumerzen. Entstanden ist es als Nebenprodukt eines vom Bund geförderten Forschungsprojekts im Bereich der Digital-Werbemittel-Kompression.

Das Upload-Limit liegt bei 16 MB und sollte damit auch für hochauflösende Fotos reichen. Zudem ist die Verbindung per SSL/TLS abgesichert. Es gibt allerdings keinen Massen-Upload, was daran liegt, dass compress-or-die etwas anders arbeitet als die anderen Tools. Hier wird nicht versucht, möglichst schnell und ohne Arbeit zu einem Ergebnis zu kommen, sondern es wird eine Vielzahl von Einstellmöglichkeiten angeboten, die es einem erlauben, das Maximum aus jedem Bild herauszuholen. Das Ergebnis jeder Änderung kann jederzeit durch die Bild-Vorschau überprüft werden.

Im Gegensatz zu anderen Tools erlaubt compress-or-die auch den Upload von verlustfreien Formate wie z.B. PNG. Das erlaubt, die Original-Daten des Bildes hochladen zu können, was in besserer Qualität resultiert.

Das Color subsampling kann frei gewählt werden, es gibt getrennte Qualitäts-Regler für Luminanz- und Chroma-Kanäle, der Farbraum wird automatisch zu sRGB konvertiert und Bilder werden automatisch anhand der im JPG eingebetteten EXIF-Daten richtig gedreht.

Darüber hinaus gibt es einzigartige Features wie z.B. die von Adobe Fireworks bekannte "Selective Quality", welche es erlaubt, vom User festgelegte Bild-Regionen mit einer anderen Qualitätsstufe zu komprimieren. Oder auch die Möglichkeit transparente JPGs zu erzeugen, solange das Bild später in einem Browser aufgerufen wird.

compress-or-die wendet sich also an alle User, die ihre Bilder digital darstellen wollen/müssen.

Das Fazit

Die Tools haben das gleiche Bild mit teilweise sehr unterschiedlichen Ergebnissen komprimiert:

Bild mit Einstellungen Dateigröße Color subsampling SSIM
compressorio_100_2x2.jpg 101,684 2x2 4.86
tinyjpg_100_2x2.jpg 111,914 2x2 3.65
jpegmini_100_2x2.jpg 120,137 2x2 3.3
optimizilla_100_2x2-90.jpg 124,000 2x2 2.99
kraken_100_2x2.jpg 191,420 2x2 0.84
compress-or-die variabel variabel variabel

Nicht gerade überraschend ist es so, dass Tools, die eine höhere Dateigröße zurückgegeben haben, auch gleichzeitig eine auf dem Papier bessere Qualität vorweisen können. Da die manuell eingestellten Ergebnisse von compress-or-die.com immer nur knapp besser sind als bei den anderen Tools, sieht man schon, dass es nicht so sehr auf den verwendeten Encoder ankommt, sondern auf die verwendete Qualitätsstufe.

Wer ist jetzt also qualitativ der Gewinner aus dem Vergleich?

Das kann eigentlich nur das Tool sein, was es erlaubt, den Qualitätsfaktor selbst einzustellen, also compress-or-die. Denn welche Qualitätstufe für einen selbst die richtige ist, hängt vom eigenen subjektiven Empfinden, der eigenen Toleranz-Grenze und dem geplanten Anwendungsgebiet des Bildes ab.

Darüberhinaus lässt compress-or-die eine breite Palette an Einstellungsmöglichkeiten zu, die absolut notwendig sind, um überhaupt die Chance zu haben, das bestmögliche JPG zu erzeugen. Erlaubt ein Tool z.B. nicht, ein Graustufen-Bild zu erzeugen, kann der Encoder noch so gut, aber das erzeugte Bild wird bei gleicher Qualität immer größer sein als das Graustufen-JPG.

Geht es anderseits darum, sehr viele Bilder zu einer nicht notwendigerweise optimalen Dateigröße zu verkleinern, ist der Einsatz von JPEGmini nicht verkehrt. Im Druck-Bereich ist es oft nicht wichtig, ob man ein paar kB spart. Hier geht es um enorm viel Bild-Daten, die man dank des außergewöhnlichen Upload-Limits auch problemlos hochladen kann. Auch der Massen-Upload und das Lightroom-Plugin sind da natürlich sehr hilfreich.

Allen Usern, die für die Anzeige auf dem Bildschirm arbeiten und keine Lust haben, sich mit jedem Bild einzeln zu beschäftigen, bietet sich ein Versuch mit tinyJPG an, weil es das erste Tool mit einer Massen-Upload-Funktion unter den kleinen Dateigrößen ist. Außerdem bietet es eine API, um die Bild-Verkleinerung in einen automatisierten Workflow zu integrieren.

 

Falls ihr noch Fragen, Anregungen, Wünsche o.ä. haben solltet, immer her damit.

Ergänzende Lektüre

Magst du diesen Artikel?

Dann wäre es doch klasse, ihn mit anderen zu teilen.

OK, I've got it!