Zopfli - Zopfli

Archives Zopfli
Capture d'écran ZopfliPNG.png
Auteur(s) original(aux) Lode Vandevenne et Jyrki Alakuijala
Première version Février 2013 ( 2013-02 )
Version stable
1.0.3 / 27 novembre 2019 ; il y a 21 mois ( 2019-11-27 )
Dépôt
Écrit en C
Système opérateur Multiplateforme
Taper Archivage de fichiers , compression de données
Licence Licence Apache 2.0
Site Internet github .com / google / Zöpfli Modifiez ceci sur Wikidata

Zopfli est un logiciel de compression de données qui encode les données aux formats DEFLATE , gzip et zlib . Il atteint une compression plus élevée que les autres implémentations DEFLATE/zlib, mais prend beaucoup plus de temps pour effectuer la compression. Il a été publié pour la première fois en février 2013 par Google en tant que bibliothèque de programmation de logiciels libres sous la licence Apache, version 2.0 . Le nom Zöpfli est le diminutif suisse-allemand de « Zopf », un type non sucré de Hefezopf .

Propriétés et cas d'utilisation

Zopfli peut générer soit un flux de données DEFLATE brut, soit des données DEFLATE encapsulées dans des formats gzip ou zlib. Il peut être configuré pour effectuer plus ou moins d'itérations que la valeur par défaut 15 pour échanger le temps de traitement contre l'efficacité de la compression.

Avec les paramètres par défaut, la sortie de Zopfli est généralement 3 à 8 % plus petite que la compression maximale de zlib, mais prend environ 80 fois plus de temps. La vitesse de décompression de la sortie de Zopfli par rapport à la sortie de zlib n'est pratiquement pas affectée.

En raison de sa vitesse de compression nettement plus lente, zopfli est moins adapté à la compression à la volée et est généralement utilisé pour la compression unique de contenu statique. Cela est généralement vrai pour le contenu Web qui est servi avec la compression HTTP basée sur DEFLATE ou le contenu Web dans un format de fichier basé sur DEFLATE tel que les fichiers de police PNG ou WOFF . Un autre cas d'utilisation concerne les mises à jour logicielles ou les téléchargements avec des fichiers de progiciels au format zip , tels que les packages d'applications Android (APK) ou les archives Java (JAR), en particulier via des connexions mobiles.

La technologie

La densité de données plus élevée est obtenue en utilisant des techniques de compression plus exhaustives. La méthode est basée sur une modélisation d'entropie itérative et un algorithme de recherche de chemin le plus court pour trouver un chemin à faible coût binaire à travers le graphique de toutes les représentations DEFLATE possibles des données non compressées.

Implémentations

Une implémentation de référence de Google a été publiée sous la forme d'une bibliothèque de programmation écrite en C . Il est disponible sous forme de logiciel libre sous les termes de la version 2.0 de la licence Apache .

Zopfli peut également être utilisé à partir d'autres langages de programmation, via des réimplémentations natives ou des wrappers .

Une sélection d'implémentations alternatives
Nom Langage d'implémentation Type de mise en œuvre
CompressSharper C# Originaire de
php_zopfli PHP Emballage
Zopfli à Rust Rouiller Originaire de

Histoire

Zopfli est basé sur un algorithme de Jyrki Alakuijala. Une implémentation de référence de zopfli a été écrite par les employés de Google Jyrki Alakuijala et Lode Vandevenne. Il a été rendu public pour la première fois en février 2013. La version 1.0.0 a été publiée le 25 avril 2013. Après plusieurs adaptations de Zopfli pour la compression PNG apparues sur GitHub , ZopfliPNG s'est engagé dans l'implémentation de référence de zopfli de Google en mai 2013.

Optimisation PNG

L'algorithme Zopfli peut être utilisé pour compresser les fichiers Portable Network Graphics (PNG) car PNG utilise une couche de compression DEFLATE. Il existe un outil d'optimisation PNG nommé ZopfliPNG des auteurs de Zopfli. L'algorithme Zöpfli a également été intégré dans d' autres outils d'optimisation de la compression PNG comme advpng de la advancecomp suite d'utilitaires et OxiPNG .

Voir également

Les références

Liens externes