Mozilla à annoncé hier sur son blog la sortie de leur encodeur jpeg dont voici le petit résumé sur le dépôt du projet github: mozilla/mozjpeg:

This project’s goal is to reduce the size of JPEG files without reducing quality or compatibility with the vast majority of the world’s deployed decoders.

The idea is to reduce transfer times for JPEGs on the Web, thus reducing page load times.

‘mozjpeg’ is not intended to be a general JPEG library replacement. It makes tradeoffs that are intended to benefit Web use cases and focuses solely on improving encoding. It is best used as part of a Web encoding workflow.

Et c’est une très bonne nouvelle !

Quelques mots sur jpeg

Jpeg, est un format d’image très utilisé et particulièrement adapté aux photos.

Existant depuis les années 1990 et particulièrement efficace, il a bénéficié d’une hégémonie certaine pour le stockage et le transfert de photos via internet.

Formats concurrents

PNG

PNG est un format très utilisé sur le web pour des images synthétiques (crée de toutes pièces sur ordinateur) qu’on pourrait opposer aux photos (crées à partir de capteurs de lumière).

Bien qu’il soit possible d’enregistrer une photo en png, le poids de ce fichier sera largement plus gros qu’un jpeg ce qui le rend non compétitif pour cet usage.

Sur le web, les icônes et logos sont généralement en png.

Raw

Les appareils photo reflex proposent d’enregistrer les photos non pas uniquement en jpeg mais également en Raw qui est, pour faire simple, moins compressé que le jpeg et préserve de nombreuses méta-données comme la balance des blancs.

Ce format présente deux inconvénients majeurs pour une utilisation sur le web :

  • le format n’est pas standard (chaque constructeur fait sa petite cuisine) ce qui limite donc l’interopérabilité.
  • les fichiers Raw sont généralement 2 à 10 fois plus lourds que les jpegs donc beaucoup plus longs à s’échanger par internet

WebP

Tout comme dans le monde physique, un objet petit coûte moins cher à stocker et à transporter.

Les géants du web dont Google, Yahoo (Flickr) et Facebook ont donc tout intérêt à ce que les images soient les plus petites possibles. Quelques octets économisés par-ci et par-là mis bout à bout permettent des économies conséquentes et donc des actionnaires heureux.

C’est pourquoi Google s’est lancé en 2010 dans la création d’un nouveau format d’images : WebP.

L’objectif est d’avoir dans un même et unique format les avantages de png et de jpg mais en “plus mieux” pour le web.

Google pour faire accepter son nouveau format doit faire face à de multiples obstacles.

Il doit d’abord convaincre les fournisseurs de contenus (comme Facebook, Instagram, etc.) d’encoder leurs images en WebP.

Les navigateurs n’étant pas tous compatibles du jour au lendemain, une période de transition est nécessaire. Ces sites vont donc devoir :

  • encoder toutes les nouvelles images en WebP et en jpeg
  • modifier le site pour envoyer en WebP si le navigateur le permet et à défaut basculer en jpeg

Il faut bien évidement que les navigateurs web puissent décoder ce nouveau format, et c’est le deuxième point difficile pour Google.

Comme on peut le voir sur Can I Use / WebP, ni Apple avec Safari, ni Microsoft avec Internet Explorer et ni Mozilla avec Firefox ne supportent WebP.

Il ne me semble pas qu’il y ait eu de déclaration officielles de la part d’Apple ou MS. Par contre, Mozilla à clairement expliqué son choix.

La position de Mozilla

Mozilla n’a pas souhaité implémenter WebP avec pour motif principal : rien ne prouve pour le moment que WebP est mieux que Jpeg.

Et ils ont conduit une étude comparative sur WebP (en Octobre 2013) très intéressante dont la conclusion est :

We consider this study to be inconclusive when it comes to the question of whether WebP and/or JPEG XR outperform JPEG by any significant margin. We are not rejecting the possibility of including support for any format in this study on the basis of the study’s results.

On a pu ensuite voir le résultat de l’intense lobbying — caractérisant la façon de faire de Google pour imposer ses technologies — . Notamment sur le bugtracker de mozilla où les fanboys sont sur-représentés.

En Mars 2014, Mozilla à annoncé mozjpeg.

Today I’d like to announce a new Mozilla project called ‘mozjpeg’. The goal is to provide a production-quality JPEG encoder that improves compression while maintaining compatibility with the vast majority of deployed decoders.

La très bonne idée est d’améliorer ce qui est améliorable dans Jpeg, cela permet donc de gagner sur tous les tableaux :

  • des images plus petites
  • rétro-compatibilité immédiate avec tout le parc existant.

La version 2 est sortie cette semaine.

Conclusion

Les choses évolues dans ce domaine et c’est une bonne nouvelle. Mozilla a eu une approche excellente du problème et propose une solution rationnelle est efficace. WebP est prometteur mais pas encore assez mature pour être mis en déployé à grande échelle.

Liens