Question Comment zlib, gzip et zip sont-ils liés? Qu'ont-ils en commun et en quoi sont-ils différents?


L'algorithme de compression utilisé dans zlib est essentiellement le même que celui de gzip et Zip *: français. Quels sont gzip et Zip *: français? En quoi sont-ils différents et comment sont-ils identiques?


793
2017-12-24 13:48


origine


Réponses:


Forme courte:

.zip est un format d'archive en utilisant, généralement, le Dégonfler la méthode de compression. le .gz format gzip est pour les fichiers uniques, en utilisant également la méthode de compression Deflate. Souvent gzip est utilisé en combinaison avec tar pour faire un format d'archive compressé, .tar.gz. le bibliothèque zlib fournit le code de compression et de décompression Deflate à utiliser par zip, gzip, png (qui utilise le wrapper zlib sur les données dégonfler), et de nombreuses autres applications.

Forme longue:

le Format ZIP a été développé par Phil Katz en format ouvert avec une spécification ouverte, où son implémentation, PKZIP, était shareware. C'est un format d'archive qui stocke les fichiers et leur structure de répertoire, où chaque fichier est compressé individuellement. Le type de fichier est .zip. Les fichiers, ainsi que la structure du répertoire, peuvent éventuellement être cryptés.

Le format ZIP prend en charge plusieurs méthodes de compression:

0 - The file is stored (no compression)
1 - The file is Shrunk
2 - The file is Reduced with compression factor 1
3 - The file is Reduced with compression factor 2
4 - The file is Reduced with compression factor 3
5 - The file is Reduced with compression factor 4
6 - The file is Imploded
7 - Reserved for Tokenizing compression algorithm
8 - The file is Deflated
9 - Enhanced Deflating using Deflate64(tm)
10 - PKWARE Data Compression Library Imploding (old IBM TERSE)
11 - Reserved by PKWARE
12 - File is compressed using BZIP2 algorithm
13 - Reserved by PKWARE
14 - LZMA (EFS)
15 - Reserved by PKWARE
16 - Reserved by PKWARE
17 - Reserved by PKWARE
18 - File is compressed using IBM TERSE (new)
19 - IBM LZ77 z Architecture (PFS)
97 - WavPack compressed data
98 - PPMd version I, Rev 1

Les méthodes 1 à 7 sont historiques et ne sont pas utilisées. Les méthodes 9 à 98 sont des ajouts relativement récents et ont des utilisations variables et de faible ampleur. La seule méthode réellement répandue dans le format ZIP est la méthode 8, Dégonfler, et dans une moindre mesure la méthode 0, qui n'est pas du tout la compression. Pratiquement tous les .zip le fichier que vous rencontrerez dans la nature utilisera exclusivement les méthodes 8 et 0, probablement la méthode 8. (La méthode 8 a également un moyen de stocker efficacement les données sans compression et relativement peu d'expansion, et la méthode 0 ne peut pas être diffusée. 8 peut être.)

le Norme ISO / IEC 21320-1: 2015 pour les conteneurs de fichiers est un format zip restreint, tel qu'utilisé dans les fichiers d'archive Java (.jar), les fichiers Office Open XML (Microsoft Office .docx, .xlsx, .pptx), les fichiers Office Document Format (.odt, .ods, .odp), et les fichiers EPUB (.epub). Cette norme limite les méthodes de compression à 0 et 8, ainsi que d'autres contraintes telles que l'absence de cryptage ou de signatures.

Vers 1990, le Groupe Info-ZIP écrit portable, gratuit, implémentations open source de zip et unzip utilitaires, prenant en charge la compression avec le format Deflate et la décompression de ce format et des formats antérieurs. Cela a considérablement élargi l'utilisation de .zip format.

Au début des années 90, le format gzip a été développé en remplacement de la Unix compress utilitaire, dérivé du code Deflate dans les utilitaires Info-ZIP. Unix compress a été conçu pour compresser un seul fichier ou flux, en ajoutant .Z au nom de fichier. compress utilise le Algorithme de compression LZW, qui à l'époque était sous brevet et son utilisation gratuite était contestée par les titulaires de brevets. Bien que certaines implémentations spécifiques de Deflate aient été brevetées par Phil Katz, le format ne l'était pas, et il était donc possible d'écrire une implémentation Deflate qui ne portait atteinte à aucun brevet. Cette mise en œuvre n'a pas été mise au défi au cours des 20 dernières années. L'Unix gziputilitaire a été conçu comme un remplacement de compress, et en fait est capable de décompresser compress-comprimé les données (en supposant que vous étiez capable d'analyser cette phrase). gzip ajoute un .gz au nom de fichier. gzip utilise le format de données compressé Deflate, qui compresse un peu mieux que Unix compress, a une décompression très rapide et ajoute un CRC-32 comme vérification d'intégrité pour les données. Le format d'en-tête permet également le stockage de plus d'informations que le compress format autorisé, tel que le nom du fichier d'origine et l'heure de modification du fichier.

Bien que compress compresse un seul fichier, il était courant d'utiliser le tar utilitaire pour créer une archive de fichiers, leurs attributs et leur structure de répertoire en un seul .tar fichier, et ensuite le compresser avec compress faire un .tar.Z fichier. En fait, le tar l'utilitaire avait et a encore une option pour faire la compression en même temps, au lieu d'avoir à canaliser la sortie de tar à compress. Tout cela reporté au format gzip, et tar a une option pour compresser directement à la .tar.gz format. le tar.gz le format compresse mieux que le .zip approche, puisque la compression d'un .tar peut tirer parti de la redondance entre les fichiers, en particulier de nombreux petits fichiers. .tar.gz est le format d'archive le plus utilisé sur Unix en raison de sa très grande portabilité, mais il y a aussi des méthodes de compression plus efficaces, donc vous verrez souvent .tar.bz2 et .tar.xz les archives.

contrairement à .tar, .zip a un répertoire central à la fin, qui fournit une liste du contenu. Cela et la compression séparée fournit un accès aléatoire aux entrées individuelles dans un .zip fichier. UNE .tar fichier devrait être décompressé et numérisé du début à la fin afin de construire un répertoire, ce qui est la .tar le fichier est répertorié.

Peu de temps après l'introduction de gzip, vers le milieu des années 1990, le même différend sur les brevets remettait en question la libre utilisation des .gif format d'image, très largement utilisé sur les tableaux d'affichage et le World Wide Web (une nouveauté à l'époque). Ainsi, un petit groupe a créé le format d'image PNG compressé sans perte, avec le type de fichier .png, remplacer .gif. Ce format utilise également le format Deflate pour la compression, qui est appliqué après que les filtres sur les données d'image exposent plus de la redondance. Afin de promouvoir l'utilisation généralisée du format PNG, deux bibliothèques de code libre ont été créées. libpng et zlib. libpng gérait toutes les fonctionnalités du format PNG et zlib fournissait le code de compression et de décompression à utiliser par libpng, ainsi que d'autres applications. zlib a été adapté de la gzip code.

Tous les brevets mentionnés ont expiré depuis.

La bibliothèque zlib prend en charge la compression et la décompression Deflate et trois types d'enveloppement autour des flux de dégonflement. Ce sont: pas d'emballage du tout (dégonfler "brut"), zlib emballage, qui est utilisé dans les blocs de données au format PNG, et gzip wrapping, pour fournir des routines gzip pour le programmeur. La principale différence entre zlib et gzip est que le zlib est plus compact, six octets contre un minimum de 18 octets pour gzip, et le contrôle d'intégrité, Adler-32, est plus rapide que le CRC-32 utilisé par gzip. La dégonflement brut est utilisé par les programmes qui lisent et écrivent .zipformat, qui est un autre format qui entoure les données compressées dégonfler.

zlib est maintenant largement utilisé pour la transmission et le stockage de données. Par exemple, la plupart des transactions HTTP effectuées par les serveurs et les navigateurs compressent et décompressent les données à l'aide de zlib.

Les différentes implémentations de dégonfler peut entraîner des différentes sorties comprimé pour les mêmes données d'entrée, comme en témoigne l'existence de niveaux de compression sélectionnables qui permettent la négociation de l'efficacité de compression pour le temps CPU. zlib et PKZIP ne sont pas les seules implémentations de compression et de décompression de dégonflement. Les deux Utilitaire d'archivage 7-Zip et Google bibliothèque zopfli ont la capacité d'utiliser beaucoup plus de temps CPU que zlib afin d'éliminer les derniers bits possibles lors de l'utilisation du format deflate, en réduisant les tailles compressées de quelques pour cent par rapport au plus haut niveau de compression de zlib. le utilitaire pigz, une implémentation parallèle de gzip, inclut l'option d'utiliser zlib (niveaux de compression 1-9) ou zopfli (niveau de compression 11), et atténue quelque peu l'impact temporel de l'utilisation de zopfli en divisant la compression de fichiers volumineux sur plusieurs processeurs et cœurs.


2077
2017-12-24 18:03



ZIP *: FRANÇAIS est un format de fichier utilisé pour stocker un nombre arbitraire de fichiers et de dossiers avec une compression sans perte. Il ne fait aucune hypothèse stricte sur les méthodes de compression utilisées, mais est le plus souvent utilisé avec DÉGONFLER.

Gzip est à la fois un algorithme de compression basé sur DEFLATE mais moins encombré de brevets potentiels et al, et un format de fichier pour stocker un seul fichier compressé. Il prend en charge la compression d'un nombre arbitraire de fichiers et de dossiers lorsqu'il est combiné avec le goudron. Le fichier résultant a une extension de .tgz ou .tar.gz et est communément appelé un tarball.

zlib est une bibliothèque de fonctions encapsulant DEFLATE dans sa plus commune LZ77 incarnation.


38
2017-12-24 13:55



La différence la plus importante est que gzip est seulement capable de compresser un seul fichier zip compresse alors que plusieurs fichiers un par un et les archives en un seul fichier par la suite. Ainsi, gzip arrive avec du goudron la plupart du temps (il y a cependant d'autres possibilités). Cela vient avec quelques (dés) avantages.
Si vous avez une grande archive et vous avez seulement besoin d'un seul fichier sortir, vous devez décompresser l'ensemble du fichier gzip pour arriver à ce fichier. Ce n'est pas obligatoire si vous avez un fichier zip.
En revanche, si vous compressez 10 fichiers similaires ou même identiques, l'archive zip sera beaucoup plus grande car chaque fichier est compressé individuellement, alors que dans gzip en combinaison avec tar un seul fichier est compressé ce qui est beaucoup plus efficace si les fichiers sont Similaire (égal).


24
2017-12-24 14:03