Google développe un nouvel algorithme de compression open source pour Internet
Google développe un nouvel algorithme de compression open source pour Internet
Aussi rapide que Deflate et avec une compression plus dense
Google vient de développer et publier en open source un nouvel algorithme de compression optimisé pour le Web. Il y a deux ans de cela, la firme de Mountain View avait annoncé un premier algorithme open source baptisé Zopfli. Offrant une taille de compression plus petite, Zopfli a permis une meilleure utilisation de l'espace, une transmission plus rapide des données et des temps de chargement des pages Web plus courts.
Cet algorithme a reçu une réaction positive dans l'industrie et a été depuis lors « intégré dans de nombreuses solutions de compression, allant des optimiseurs PNG au prétraitement des contenus Web », explique Google. Toutefois, Zopfli présente une faiblesse qui réside au niveau du temps nécessaire pour compresser, qui serait de 81 fois supérieur à celui nécessaire pour effectuer une compression avec gzip. Même si son temps de décompression reste similaire ou meilleur que celui des autres programmes, pour la compression, il a été recommandé de l’utiliser dans le cas spécifique de contenus statiques.
« Basé sur son utilisation [de Zopfli] et d’autres besoins en matière de compression moderne, telle que la compression de polices Web », la firme de Mountain View a annoncé aujourd'hui qu’elle a développé et rendu open source un nouvel algorithme de compression de données sans perte baptisé Brotli.
Brotli est un format de données entièrement nouveau, qui permet d’obtenir des taux de compression de 20 à 26 % plus élevés que ceux de Zopfli. Notons qu’à son arrivée, Zopfli offrait un taux de compression jamais atteint, en réduisant la taille des fichiers de l’ordre de 3 à 8 % par rapport à ce que permettait d’obtenir la compression maximale de zlib, la référence actuelle pour la compression des fichiers sur le Web.
Dans une étude intitulée « Comparaison des algorithmes de compression Brotli, Deflate, Zopfli, LZMA, LZHAM et Bzip2 », Google met en évidence les performances de son nouvel algorithme. Les différents algorithmes de compression ont été comparés suivant trois critères, à savoir le taux de compression, la vitesse de compression, ainsi que la vitesse de décompression. Les comparaisons ont été effectuées sur le corpus de Canterbury - un benchmark pour permettre aux chercheurs d’évaluer les méthodes de compression sans perte – mais également sur un corpus ad hoc de contenu Web et sur enwik8.
L’étude montre que le nouvel algorithme Brotli est à peu près aussi rapide que l’algorithme Deflate de la bibliothèque de compression de données zlib. Jusqu’à présent, il se posait le problème d’un remplaçant de Deflate en termes de vitesse de compression. Zopfli, LZMA, LZHAM et de bzip2 utilisent beaucoup plus de temps CPU pour une compression ou une décompression et ne pouvaient donc pas toujours se positionner comme des remplaçants directs de Deflate, ce qui n’est pas le cas pour Brotli. Dans le même temps, le nouvel algorithme apporte un taux de compression plus élevé.
En espérant que Brotli soit rapidement pris en charge par les principaux navigateurs, Google met en évidence les avantages qui pourraient en découler pour les utilisateurs mobiles en particulier. En plus d’un Internet plus rapide, ces derniers pourront voir une baisse des frais supportés pour le transfert de données et une utilisation réduite de la batterie. Brotli est distribué sous la licence Apache, Version 2.0.
Sources : Google, GitHub
Et vous ?
:fleche: Que pensez-vous de ce nouvel algorithme de compression pour Internet ?
:fleche: Forum Général Conception Web
La nouvelle bibliothèque de compression libre et open source bientôt sur Chrome
La nouvelle bibliothèque de compression libre et open source bientôt sur Chrome,
Brotli est disponible sur le canal Canary
En septembre dernier, Google présentait Brotli, une bibliothèque de compression libre et open source optimisée pour le web. Selon Google, il permet d’obtenir des taux de compression de 20 à 26 % plus élevés que ceux de Zopfli, un autre algorithme de compression développé en 2013 et qui a permis une meilleure utilisation de l'espace, une transmission plus rapide des données et des temps de chargement des pages Web plus courts. Brotli utilise un algorithme de compression offrant une vitesse de décompression comparable à l'algorithme deflate, et un taux de compression proche de LZMA.
Il faut préciser qu'actuellement la version stable de Google Chrome utilise Zopfli. Cependant, d'après un billet de Ilya Grigorik, Web Performance Engineer chez Google, Brotli devrait bientôt arriver sur Chrome pour le remplacer. L'ingénieur cite quelques avantages de Brotli, notamment une réduction du poids de 17 % sur les fichiers JavaScript, 20 % sur les fichiers CSS et 25 % sur les fichiers HTML, des mesures ayant été faites sur des sites figurant dans le top 10 000 de l'indice Alexa.
Pour le moment, l'utilisation de Brotli est restreinte aux connexions HTTPS et la fonctionnalité peut être activée dans le canal Canary de Chrome via chrome://flags#enable-brotli
La fonctionnalité est supportée par les six plateformes Blink (Windows, Mac, Linux, Chrome OS, Android, and Android WebView), ce qui montre que Google espère la voir adoptée par d'autres navigateurs et, plus important encore, sur des navigateurs mobiles où en plus des temps de chargement réduits, elle pourrait permettre de faire des économies en termes de données et utiliser moins d'énergie de la batterie.
Source : Ilya Grigorik (Google Plus)
Voir aussi :
:fleche: FLIF : un nouveau format de fichier image libre et gratuit qui donne de meilleurs taux de compression avec des vitesses acceptables
:fleche: YouTube : VP9 de plus en plus présent, Google vante les performances de son codec de compression vidéo
:fleche: Chrome : Google met à jour son mécanisme de compression de données et parle d'une réduction de la consommation sur mobile pouvant atteindre les 70 %
Pour ceux qui veulent voir ce que cela donne
Avec nginx 1.9.10 et openssl 1.0.2d:
https://demo.jorani.org/ HTTP/2 et Brotli (options par défaut)
Note: nginx ne peut, pour le moment, exploiter HTTP/2 qu'avec une connexion TLS, alors que la norme précise que cela n'est pas nécessaire.
Je préconise de conserver le niveau de compression par défaut. D'une part parce que c'est suffisant (par ex. Bootstraps 15Ko contre 20Ko avec gzip) et parce qu'un taux supérieur dégrade fortement les performances.