rzip

rzip

rzip est un logiciel libre de compression de données à grande échelle, construit autour d'une recherche de chaînes initiale de type LZ77 avec une fenêtre de recherche de 900 MB, suivi d'une transformation de Burrows-Wheeler (BWT) de type bzip2 et enfin un codage entropique (Huffman) par lot de 900 ko.

Sommaire

Algorithme de compression

rzip opère en 2 étapes. La première trouve et code de longues séquences de données répétitives sur des distances potentiellement très longues (900 Mo) au sein du fichier d'entrée. La deuxième étape est d'appliquer un algorithme de compression standard (bzip2) afin de compresser la sortie de la première étape.

Le besoin de compresser des fichiers contenant des redondances à longue distance est de nos jours très répandu. Par exemple, lorsque un ensemble de répertoires d'utilisateurs est compressé, il peut exister plusieurs copies du même fichier, tout du moins de contenus très semblables. Un autre exemple au sein d'un même fichier est une image en plusieurs exemplaires dans un document. La plupart des programmes de compression ne seront pas capables de profiter de cette redondance, réalisant ainsi un taux de compression bien moindre que rzip.

L'interface intermédiaire entre les 2 étapes est un flux de données alignées à l'octet composé de 2 types de commandes:

  • une valeur littérale ("add", signifiant ajout) de longueur et les données
 type:8        = 0
 compte:16     = 1..65535
 données:8..∞  = données brutes à insérer (n octets entiers)
  • une correspondance ("copy", signifiant copie) avec des paramètres de longueur et de position relative:
 type:8        = 1
 compte:16     = 31..65535
 position:32   = position relative de la zone source à copier

Les opérations sur des longueurs de plus de 65535 octets sont découpées en autant de commandes que nécessaire. La fin de flux est indiquée via une commande "add" de longueur nulle (type=0,compte=0), qui est suivie immédiatement par un somme de contrôle de type CRC-32.

Implémentation de référence

Un algorithme à somme de contrôle roulant basé sur celui de rsync est utilisé pour localiser les correspondances possibles dans une telle quantité de données. Lorsque les tables de hachage se remplissent, les signatures précédentes ("tags") sont rejetées de manière à fournir une couverture plutôt bonne, avec une granularité de correspondance décroissant progressivement avec la distance. Cette implémentation ne tente pas de recherche pour des correspondances de moins de 31 octets consécutifs.

Avantages

La différence centrale entre rzip et d'autres algorithmes de compression connus est sa capacité à bénéficier des redondances à très longue distance. Ainsi, l'algorithme deflate utilisé dans gzip possède une fenêtre de recherche d'au maximum 32 ko. La transformation de Burrows-Wheeler, algorithme de tri de blocs, utilisée dans bzip2 est limitée à un historique de 900 ko. Celui dans rzip peut atteindre 900Mo, plusieurs ordres de grandeur plus grand que gzip ou bzip2. De manière intéressante, rzip est souvent plus rapide que bzip2, alors qu'il utilise la bibliothèque bzip2. Ceci est dû au fait que rzip alimente bzip2 avec un flux de données de taille réduite, réduisant de même le travail à effectuer pour bzip2. Une comparaison simple même si trop petite pour un résultat pouvant faire autorité est disponible sur www.linux-mag.com . Une autre est disponible sur le site de rzip.

Désavantages

rzip n'est pas adapté à tout type d'utilisation. Les deux plus gros inconvénients de rzip est qu'il ne peut être pipeliné (il ne peut ni écrire sur la sortie ni lire sur l'entrée standard), et qu'il consomme beaucoup de mémoire: une exécution typique sur un gros fichier peut nécessiter plusieurs centaines de Mo de mémoire. Si une grande quantité de RAM est disponible, et qu'un fort taux de compression est requis, rzip gagnerait à être utilisé, sinon, des méthodes alternatives telles que gzip et bzip2, moins gourmandes, sont recommandées.

Historique

rzip a originellement été écrit par Andrew Tridgell au cours de sa thèse de PhD. Il est publié sous licence GPL version 2 ou suivantes.

Voir aussi

  • rsync, par le même auteur (Andrew Tridgell) et contenant un algorithme de recherche de correspondance équivalent à la première étape de rzip.
  • lrzip, une amélioration incrémentale à 'rzip' permettant de remplacer la seconde étape bzip2 par au choix LZMA, LZO, ou rien (la compression est alors brute, uniquement avec dictionnaire). Son auteur est Con Kolivas, qui indique que 'lrzip' signifie 'Long Range ZIP' (ZIP à longue distance).

Liens externes


Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article rzip de Wikipédia en français (auteurs)

Игры ⚽ Нужен реферат?

Regardez d'autres dictionnaires:

  • Rzip — est un logiciel libre de compression de données à grande échelle, construit autour d une recherche de chaînes initiale de type LZ77 avec une fenêtre de recherche de 900 MB, suivi d une transformation de Burrows Wheeler (BWT) de type Bzip2 et… …   Wikipédia en Français

  • Rzip — The rzip program is huge scale data compression software designed around initial LZ77 style string matching on a 900 MB dictionary window, followed by Bzip2 based Burrows Wheeler transform (BWT) and entropy coding (Huffman) on 900 kB output… …   Wikipedia

  • ZIP (file format) — unzip redirects here. For the program, see Info ZIP. ZIP Filename extension .zip .zipx (newer compression algorithms) Internet media type application/zip Uniform Type Identifier com.pkware.zip archive Magic …   Wikipedia

  • StuffIt — Developer(s) Aladdin Systems, Smith Micro Software Stable release 14 / September 15, 2009; 2 years ago ( …   Wikipedia

  • List of archive formats — This is a list of file formats used by archivers and compressors used to create archive files. Contents 1 Archiving only 2 Compression only 3 Archiving and compression 4 …   Wikipedia

  • PeaZip — running on Windows 7 Developer(s) …   Wikipedia

  • Andrew Tridgell — Infobox person name=Andrew Tridgell birth date=birth date and age|df=yes|1967|02|28 occupation=Programmer known for=rsync, Samba nationality=Australian employer=IBM other names=TridgeAndrew Tridge Tridgell (born 28 February 1967) is an Australian …   Wikipedia

  • Data compression — Source coding redirects here. For the term in computer programming, see Source code. In computer science and information theory, data compression, source coding or bit rate reduction is the process of encoding information using fewer bits than… …   Wikipedia

  • LAME — This article is about the audio encoder. For other uses, see Lame. LAME Developer(s) The LAME development team …   Wikipedia

  • Speex — Filename extension .spx Internet media type audio/x speex, audio/speex, audio/ogg Developed by Xiph.Org Foundation, Jean Marc Valin Type of format Audio Contained by Ogg …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”