Compression de données/Archive de fichiers

Les logiciels de compression sans perte permettent la création d'archive contenant plusieurs fichiers compressés en un seul fichier. L'archive peut contenir toute une arborescence de répertoires et fichiers.

Technique d'archivage

modifier

L'archive contient une liste de fichiers et répertoires contenant pour chaque entrée les informations suivantes (en général) :

  • le nom du fichier ou répertoire,
  • le type (fichier, répertoire, autre...),
  • la date de modification,
  • la taille en octets avant compression (permet de réserver la place à la décompression, ou de connaître l'espace de stockage requis),
  • la taille compressée en octets,
  • un commentaire pour le fichier (optionnel).
 
Détails du format ZIP : le répertoire central est en fin de fichier pour faciliter l'ajout et le retrait de fichiers dans déplacer les fichiers de l'archive.

Détails du format ZIP : le répertoire central est en fin de fichier pour faciliter l'ajout et le retrait de fichiers sans déplacer les fichiers de l'archive.

La compression intervient ensuite de deux manières possibles.

Compression indépendante

modifier

La compression peut avoir lieu de manière indépendante pour chaque fichier. L'avantage est de pouvoir ajouter et retirer facilement un fichier à une archive de manière dynamique, et de pouvoir extraire un seul fichier rapidement.

La compression indépendante est utilisée par les formats ZIP, RAR...

Afin qu'il soit possible d'accéder à un fichier sans lire les autres, chaque entrée contient la position en octets dans l'archive du début du flux compressé d'octets du fichier.

Compression compacte

modifier

Une autre manière de faire et de rassembler tous les fichiers en une archive, puis de compresser l'archive entière. Le retrait, l'ajout et l'extraction d'un fichier est alors plus difficile car il faut passer sur tous les fichiers de l'archive. L'avantage est une meilleure compression, car l'algorithme peut compresser un fichier en réutilisant le contenu d'un autre fichier similaire de la même archive.

Cette manière d'archivage est celle utilisée avec l'archivage targz sous Linux qui se déroule en deux étapes :

  • la commande tar rassemble plusieurs fichiers en un seul fichier, mais ne gère pas la compression,
  • la commande gz ne gère que la compression d'un seul fichier, celui généré par la commande tar.
 
Compression de gauche à droite : rassemblement des fichiers en un fichier .tar puis compression en un fichier .gz. Décompression de droite à gauche, les étapes se font dans l'ordre inverse de la compression.

Une extension de nom de fichier est ajoutée à chaque étape : .tar puis .gz. Certains outils gère l'ensemble des deux commandes et utilisent l'extension .tgz.

La compression compacte est utilisée par les formats 7Z, targz...