Login
Newsletter
Werbung

Fr, 7. März 2014, 13:52

Software::Entwicklung

mozjpeg: Verbesserte JPEG-Bibliothek von Mozilla

Um die Geschwindigkeit von Webseiten zu erhöhen, suchte Mozilla nach Wegen, die allgegenwärtigen JPEG-Bilder zu verkleinern. In der JPEG-Bibliothek sah die Organisation noch Potential zur Verbesserung und stellte jetzt eine modifizierte Version vor.

Mozilla

Das verbreitetste, weil kompatibelste Bildformat im Web ist ohne Zweifel JPEG. Das Format existiert bereits seit über 20 Jahren in weitgehend unveränderter Form. Da JPEG grundsätzlich ein verlustbehaftetes Format ist, wäre es denkbar, durch Änderungen im Algorithmus eine bessere Kompression zu erreichen und trotzdem kompatibel zu bleiben. Wie Mozilla Research feststellt, haben aber die JPEG-Kodierer in der langen Zeit seit dem Erscheinen von JPEG kaum Fortschritte gemacht. Alternativen zu JPEG wurden immer wieder diskutiert und werden sich irgendwann einmal durchsetzen, doch JPEG wird auf absehbare Zeit noch weiter genutzt.

So begann Mozilla Research die Frage zu stellen, ob man die JPEG-Kodierung noch verbessern könne. Denn JPEG-Bilder machen oft den größten Anteil der Daten einer Webseite aus und verlängern damit die Ladezeiten mehr oder weniger stark. Da eine Ablösung noch nicht in Sicht ist, ist es aus Sicht der Entwickler sinnvoll, sie zu optimieren.

Die Antwort auf die Frage war, wie zu erwarten, dass noch Optimierungen möglich sind. So existiert bereits ein Perl-Skript namens jpgcrush, das JPEG-Bilder bis zu 10% kleiner machen kann, ohne (weitere) Bildinformationen zu verlieren. Bei Bildern, die aus dem PNG-Format konvertiert wurden, werden immer noch 2 bis 6 Prozent herausgeholt. Das Programm funktioniert nach dem Prinzip, verschiedene Konfigurationen für die progressive Kodierung auszuprobieren und die zu verwenden, die die höchste Kompression liefert.

Die jetzt vorgestellte Version 1.0 von mozjpeg ist, soweit den Entwicklern bekannt, der erste JPEG-Kodierer, der die Funktionalität von jpgcrush integriert und somit die entsprechende Verbesserung bei den erzeugten Bildern liefert. Als Basis für mozjpeg diente libjpeg-turbo, mozjpeg stellt somit einen Fork und eine Erweiterung dieser Bibliothek dar. libjpeg-turbo ist eine Hochgeschwindigkeits-Version von libjpeg für x86- und x86-64-Prozessoren, die SIMD-Befehle (MMX, SSE usw.) verwendet, um die JPEG-Kompression und -Dekompression zu beschleunigen.

Die Optimierungsmöglichkeiten der Bibliothek sind damit laut den Mozilla-Entwicklern noch nicht ausgeschöpft. Das nächste Ziel ist es, die Kodierung durch eine Trellis-Quantifizierung weiter zu verbessern. Der Quellcode von mozjpeg ist auf Github zu finden.

Werbung
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung