BPG: Die Alternative für JPEG unter Mac OS X

Mit BPG (Better Portable Graphics) hat Fabrice Bellard ein Format geschaffen, welches dem gängigen JPEG-Format den Kampf im Web ansagen soll – so zumindest die Idee. Ich wollte mich davon einmal selbst überzeugen und habe einfach mal getestet, wie gut man das Format unter Mac OS X nutzen kann, um es danach im Web einzubinden.

Das Problem: Aktuell unterstützt natürlich noch kein gängiges Programm das Speichern des Bildformates. Also muss man auf die Kommandozeile zurück. Nicht schlimm – zumindest nicht für einen ersten Test.

Um das Anzeigen muss man sich weniger Sorgen machen: Durch eine JavaScript-Library werden die Bilddaten dekodiert und so direkt angezeigt. Auf jedem Gerät, welches auch JavaScript unterstützt. Dadurch braucht man zwar etwas mehr Rechenleistung im Client, aber das ist sicherlich zu verschmerzen. Dafür bekommt man eben mehr Qualität bei gleicher Größe.

Als erstes installiert man sich mittels brew das entsprechende Paket:

brew update
brew install libbpg

Aktuell wird hier Version 0.9.2 installiert

BPG Image Encoder version 0.9.2
usage: bpgenc [options] infile.[jpg|png]

Main options:
-h                   show the full help (including the advanced options)
-o outfile           set output filename (default = out.bpg)
-q qp                set quantizer parameter (smaller gives better quality,
                     range: 0-51, default = 28)
-f cfmt              set the preferred chroma format (420, 422, 444,
                     default=420)
-c color_space       set the preferred color space (ycbcr, rgb, ycgco,
                     default=ycbcr)
-b bit_depth         set the bit depth (8 to 12, default = 8)
-lossless            enable lossless mode
-e encoder           select the HEVC encoder (jctvc, default = jctvc)
-m level             select the compression level (1=fast, 9=slow, default = 8)

Wie man sieht, sind als Eingabe sowohl jpg als auch png erlaubt. In meinem Beispiel habe ich einfach mal ein beliebiges Foto aus meinem Flickr-Stream genommen und konvertiert.

bpgenc flower.jpg

Wie man sieht habe ich die kompletten Standardeinstellungen genutzt. Die Originaldatei ist 121KB groß – das BPG nur noch 16KB. Das einbinden ist auch denkbar einfach – man braucht kein kompliziertes JavaScript-Konstrukt mit einer vorgegebenen Element-Struktur, sondern nimmt ein normales img-Element. Den Rest erledigt das Script.

HIER GEHTS ZUR DEMO

Ich bin wirklich sehr angetan. Ich habe bewusst ein Foto mit sehr feinen Strukturen genommen. Leider geht dabei auch etwas Sättigung verloren. Das kann man aber sich mit etwas Feintuning der einzelnen Parameter in den Griff bekommen.

Wenn man einen Root-Server sein eigen nennt, wäre es kein Problem, die Bilder von PHP automatisch wandeln zu lassen, falls diese noch nicht existieren.

Fazit

Die Stärken spielt BPG eindeutig bei den höchsten Kompressionsstufen aus. So kann man getrost etwas stärker komprimieren und erhält bei weniger als 50% der JPEG-Dateigröße ungefähr die gleiche Qualität. Seltsamerweise gehen sehr kleine Details dabei einfach verloren und können auch bei großen

Insbesondere für große Bilder ist das neue Format daher sehr interessant. Gerade, wenn mehrere Bilder auf der Zielseite eingebunden sind. Immerhin muss man gut 190KB JavaScript herunterladen – diese muss man erst mal wieder gut machen, bevor man den Break-Even-Point erreicht, ab welchem sich der Mehraufwand lohnt. Hoffentlich wird sich dieses Format als weiterer Standard etablieren – aktuell gehe ich aber eher davon aus, dass es ein Nischendasein pflichten wird.


Beitrag veröffentlicht

in

, ,

von

Schlagwörter: