# Compression de données/Archive de fichiers

* Introduction
* Types de compression
* Techniques de compression sans perte
** Codage par répétition
*** Run-length encoding
** Codage entropique
*** Codage de Huffman
*** Codage de Shannon-Fano
** Codage par dictionnaire
*** Lempel-Ziv-Welch (LZW)
** Codage par modélisation de contexte
** Transformée de Burrows-Wheeler
** Archive de fichiers
* Techniques de compression avec pertes
** Le format JPEG 2000
* Taux de compression
* Bibliographie et liens
* Introduction
* Types de compression
* Techniques de compression sans perte
** Codage par répétition
*** Run-length encoding
** Codage entropique
*** Codage de Huffman
*** Codage de Shannon-Fano
** Codage par dictionnaire
*** Lempel-Ziv-Welch (LZW)
** Codage par modélisation de contexte
** Transformée de Burrows-Wheeler
** Archive de fichiers
* Techniques de compression avec pertes
** Le format JPEG 2000
* Taux de compression
* Bibliographie et liens
[ Modifier le sommaire ]
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

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 sans déplacer les fichiers de l'archive.
La compression intervient ensuite de deux manières possibles.

### Compression indépendante

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

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.
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...