Compression compacte
En informatique, la compression compacte désigne une méthode de compression de données de plusieurs fichiers, où tous les fichiers sont concaténés et traités comme un seul bloc de données. On obtient alors une archive compacte (solid archive).
La technique est utilisée nativement dans les formats 7z[1] et RAR[2], et indirectement dans les formats dérivés de tar, comme les .tar.gz
et .tar.bz2.
En revanche, le format ZIP n'est pas "compact" car il stocke séparément chaque fichier compressé.
Explication
Les formats de fichiers compressés offrent souvent à la fois la compression et l'archivage (stockage de plusieurs fichiers et méta-données en un seul fichier). Cela peut se faire :
- soit en compressant séparément chaque fichier, puis en archivant les fichiers compressés
- soit en archivant les fichiers (non compressés), puis en compressant l'archive
Seule la deuxième méthode est une compression compacte. Notez que l'ordre des opérations est importante (elles ne sont pas commutatives).
Dans les systèmes Unix, on effectue traditionnellement les opérations dans l'ordre conforme à la compression compacte : archivage avec tar, puis compression avec gzip (par exemple).
Avantages
La compression compacte permet d'atteindre de bien meilleurs taux de compression lorsque les fichiers sont similaires. Elle est également intéressante lors de la compression d'un grand nombre de petits fichiers.
Inconvénients
La compression compacte génère un couplage fort entre les fichiers au sein de l'archive, ce qui a quelques conséquences négatives :
- Extraire un seul fichier d'une archive compacte peut nécessiter l'analyse de tous les autres fichiers.
- La modification d'un fichier dans l'archive peut ĂŞtre extrĂŞmement lente.
- La détérioration d'une petite partie de l'archive peut compromettre l'ensemble de ses fichiers.
Références
- (en) « 7za man page » (consulté le ) : « -ms=on[:] solid archive on »
- (en) « RAR Frequently Asked Questions (FAQ) » (consulté le )