Petit test de compression d’images

L’informatique évolue, les techniques de compression s’améliorent, et il est trop facile de rester figés dans ses anciennes habitudes 🙂 Donc j’ai voulu faire un petit comparatif de compressions d’images spécialisées photographies.

Image source: Sunset at Fjärdlång, Stockholm archipelago (Sweden) par Tommie Hansen (Creative Commons by)

Pour cette image, j’ai fait une première compression JPEG (libjpeg-turbo) avec niveau de qualité faible mais toutes les optimisations disponibles: en sort une image de 320 ko, mon « mètre-étalon », toutes les autres techniques de compression devront faire des images de poids égal ou inférieur.

  • JPEG2000: 317 ko
  • JPEG-XR: 315 ko
  • MozJPEG: 298 ko
  • WebP: 311 ko
  • BPG: 303 ko

Et puisque je ne peux pas envoyer un fichier PNG pour chaque compression (+ de 20 Mo à chaque fois), j’ai extrait une partie de l’image avec imagemagick: -crop 1200×700+3700+500  (cette zone correspond aux arbres en arrière plan à droite, une bonne cible car peu représentatifs de l’image mais tout de même assez détaillés).

Voici donc le résultat libjpeg-turbo fait avec GIMP (cliquez pour avoir en taille réelle):

zjpg

Pour remplacer JPEG, il y a eu 2 formats: JPEG-XR et JPEG2000. Globalement, ils se sont plantés: très faible adoption et des problèmes de brevets et tout. JPEG2000 est une compression wavelet tandis que JPEG-XR est un classique DCT. J’ai obtenu avec XnView, JPEG2000:

zjpg2000

On remarque que la technique de compression wavelet a du sens pour les dégradés, mais des détails sont complètement « lavés ».

JPEG-XR:

zjxr

Un peu mieux, non ? Bon, passons aux choses sérieuses. Firefox ne sait pas (encore ?) décoder les images WebP, et il y a une raison à cela: Mozilla a estimé que le WebP n’apporte qu’un faible gain de qualité par rapport à JPEG (je suis pas de cet avis), et pour le prouver ils développent une nouvelle bibliothèque d’encodage JPEG, nommée MozJPEG. L’avantage est énorme: il produit des images lisibles par tous les décodeurs JPEG disponibles. Donc pour tester cela, j’ai compilé MozJPEG 3, qui vient en remplacement de libjpeg-turbo (donc GIMP peut l’utiliser). La compression est plus lente, mais on remarque tout de suite que le paramètre de qualité peut être tiré vers le haut par rapport à libjpeg-turbo pour obtenir un poids équivalent. Voici donc ce que ça donne:

zmozjpeg

Visuellement, MozJPEG est meilleur que JPEG-XR. Bien joué ! Bah du coup je garde MozJPEG comme librairie d’encodage JPEG sur mon PC 🙂 Mais ça reste qu’un « petit ».

Passons aux champions issus du monde de la vidéo: WebP et BPG. Le premier utilise les techniques d’encodage du VP8 développé par Google, le second les techniques du H.265 et est crée par Fabrice Bellard. Oui, LE Fabrice Bellard.

La principale amélioration de ces formats de compression est leur filtre de deblocking. Visuellement, ça rend beaucoup mieux. Voici ce que ça donne en WebP via plugin GIMP:

zwebp

Et maintenant, BPG via bpgenc:

zbpg

C’est diablement difficile de les départager. BPG parvient à un peu plus de détails (cime des arbres, moins de « bavures », la mousse sur le rocher..) MAIS crée une sorte d’inconsistance de qualité, on arrive à distinguer des blocs dans les arbres. Si on observe la mer et les nuages, BPG s’arrache un léger avantage de qualité.

Avec WebP et BPG dans un mouchoir de poche, la suite s’annonce intéressante. Car Google continue de foncer dans son format vidéo, avec le VP9 dont j’espère de nettes optimisations de compression à la prochaine version stable de libvpx, alors que Google annonce déjà commencer à bosser sur VP10…   Côté H.265, bah ça se tourne les pouces…  j’ai fait quelques tests avec x265 par exemple, et bien on est encore loin de remplacer H.264 high 10bit.

BPG bien que prometteur pourrait ne rester qu’une « démo technique », qui se heurterait aux cauchemars des brevets relatifs à JPEG, l’histoire du GIF, les clowneries du MPEG-LA avec H.264 et les horizons à peine éclaircis avec H.265.

Et puis je me dois de mentionner le projet Daala, supporté par la fondation Xiph et Mozilla, qui pourrait également introduire un format d’image hautement efficace en se débarrassant des contraintes de la compression DCT et de la lessiveuse wavelet pour des techniques inédites.

Une réflexion sur « Petit test de compression d’images »

Les commentaires sont fermés.