EnlargeYourData

  1. Description
    1. Auteurs
  2. Pré-requis
    1. Sur un système Debian GNU/Linux
    2. Sur un système Apple MacOSX (≥10.3)
    3. Sur un système Microsoft Windows
  3. Se procurer EnlargeYourData
  4. Utiliser EnlargeYourData
    1. Compilation
    2. Utilisation
  5. Documentation

1. Description

EnlargeYourData est un ensemble de logiciel libres de compression/décompression de fichiers, basés sur l'algorithme RLE et ses variation. Il possède les caractéristiques suivantes :

Dans la suite de ce document, on appellera "cellule" un groupe de X bits.

1.1. Auteurs

EnlargeYourData a été entièrement réalisé par Glenn ROLLAND <glenux@fr.st> à l'occasion de travaux pratiques du cours de format de documents et compression du Master 2 Ingénierie Informatique - Systèmes, Réseaux et Internet.

2. Pré-requis

EnlargeYourData nécessite les bibliothèques de fonctions suivantes (dans leur version de développement si compilez le programme vous-même):

2.1. Sur un système Debian GNU/Linux

Il vous suffit de taper (en tant qu'administrateur) les commandes suivantes pour installer le nécessaire: 

# apt-get install libglib-2.0-dev

2.2. Sur un système Apple MacOS X (>= 10.3)

Il est nécessaire d'avoir installé les autotools (automake, autoconf...) dans leur dernière version. À partir de là, il suffit de taper les commandes suivantes dans un terminal :

# sudo fink install glib2-dev

2.3. Sur un système Microsoft Windows

Cela ne fut pas (encore) testé, mais il est très probable que cela fonctionne sous Cygwin.

3. Se procurer EnlargeYourData

Vous pouvez télécharger la dernière archive des sources, ou bien directement la version la plus récente du projet sur le dépôt Subversion du projet.

3.1. L'archive des sources

Elle est disponible à l'adresse :
http://glenux2.free.fr/pub/projets/EnlargeYourData/archives/

3.2. Le dépôt Subversion

Afin d'obtenir les sources les plus à jour, vous pouvez utiliser le logiciel de contrôle de sources Subversion

$ svn checkout http://repository.glenux.ath.cx/svn/EnlargeYourData/

Il n'y a pas de mot de passe, il suffit donc de presser la touche "Entrée" pour l'utilisateur "anonymous", si ce dernier vous est demandé.

4. Utiliser EnlargeYourData

4.1. Compilation

Commencez par décompressez l'archive.

$ tar -xzvf eyd-0.2.tar.gz

Rendez vous ensuite dans le dossier qui vient d'être créé lors de la décompression.

$ cd EnlargeYourData-0.2

Puis lancez l'auto-configuration du logiciel, puis la compilation.

$ ./autogen
$ ./configure
$ make

Les binaires produits sont :

4.2. Utilisation

Les binaires de EnlargeYourData doivent être appelés avec la syntaxe suivante:

Usage: eydrleX <parametres_obligatoires> <options>

Les paramètres obligatoires sont les suivants:

Les parames optionnels sont les suivants:

5. Documentation

5.1. Code

Vous pouvez trouver la documentation de EnlargeYourData dans le dossier doc/html de l'application, ou en suivant ce lien.

5.2. Le marqueur RLE

Il s'agit de la valeur zéro écrite sur X bits (X étant la taille de cellules choisies pour la compression).

Dans le cas ou dans le texte à compresser, on retrouver le marqueur RLE, alors celui-ci est dupliqué. Cependant, cela n'est pas efficace lorsque l'on rencontre plus de deux fois d'affilée le marqueur, car cela génèrerait une suite dont la taille serait plus grande que 4, or avec RLE toute suite d'au moins 3 cellules identiques se compresse en 3 cellules

5.3. Les fichiers de test

Les programmes de compression ont été testés sur plusieurs fichiers de types différents:

Les taux de compression

Pour RLE1, on obtient, dans le meilleur des cas (pour la taille X de cellules de bits comprise entre 3 et 32):

Par contre en ce qui concerne RLE2, dans la majorité des cas, les fichiers produits sont plus gros que les originaux...  

Cependant, on peut utiliser la tendance au "gaspillage" de RLE2 (lorsqu'il souhaite stocker une petite valeurs sur une cellule trop grande), a des fins de compression, en appliquant une compression par RLE1 sur le fichier produit.

Dans le cas des fichiers MS-Bitmap on peut souvent descendre à la moitié de ce que produit RLE1 tout seul.


Les utilisations de RLE

On retrouve le format RLE utilisé principalement dans ce qui concerne le stockage d'images, notamment les images en couleurs indexées (noir et blanc, et palettes de couleurs).
Il est présent (par exemple) :
- dans la compression utilisée par les fax
- dans une variante du format BMP (image/x-ms-bmp),
- dans le format d'images PCX (utilisant des palettes de couleurs, et très utilisé à l'époque du DOS sur PC).

On retrouve également souvent RLE associé à un autre algorithme de compression (voir le cours de C.Choffrut, cours sur Huffman).

Les problèmes posés par RLE2

RLE2, sans le codage de Golomb, nécessite la spécification d'une taille de cellule pour stocker la taille des entiers representant les suites de 0. Or arrive (fréquement dans le cas des images noir et blanc) que ces entiers dépassent le plus grand nombre stockable (2^X - 1) sur cellule de X bits.
On peut soit considèrer que la compression est impossible avec cette taille de cellule (comme réalisé dans le code du TP), soit on peut evisager des solutions un peu plus complexes, consistant à :
<