m2.enlarge-your-data/README

247 lines
9.5 KiB
Plaintext
Raw Normal View History

2005-10-31 17:55:11 +00:00
EnlargeYourData
1. [1]Description
1. [2]Auteurs
[3]Pr<50>-requis
1. [4]Sur un syst<73>me Debian GNU/Linux
2. [5]Sur un syst<73>me Apple MacOSX (>=10.3)
3. [6]Sur un syst<73>me Microsoft Windows
[7]Se procurer EnlargeYourData
[8]Utiliser EnlargeYourData
1. [9]Compilation
2. [10]Utilisation
[11]Documentation
1. Description
EnlargeYourData est un ensemble de logiciel libres de
compression/d<>compression de fichiers, bas<61>s sur l'algorithme RLE et
ses variation. Il poss<73>de les caract<63>ristiques suivantes :
* Il est distribu<62> sous la licence [12]GNU General Public License
* Il est <20>crit en C++ et poss<73>de une interface textuelle
* Il implemente RLE (suite de motifs identiques),
* Il impl<70>mente la variante de RLE (on l'appellera RLE2 dans la
suite de ce document) encodant les bits <20> z<>ros entre les bits <20>
un.
* Il n'implemente pas (a l'heure actuelle) RLE2 avec le codage de
Golomb.
Dans la suite de ce document, on appellera "cellule" un groupe de X
bits.
1.1. Auteurs
EnlargeYourData a <20>t<EFBFBD> enti<74>rement r<>alis<69> par Glenn ROLLAND
<[13]glenux@fr.st> <20> l'occasion de travaux pratiques du cours de
format de documents et compression du Master 2 Ing<6E>nierie Informatique
- Syst<73>mes, R<>seaux et Internet.
2. Pr<50>-requis
EnlargeYourData n<>cessite les biblioth<74>ques de fonctions suivantes
(dans leur version de d<>veloppement si compilez le programme
vous-m<>me):
* glib-2.0
2.1. Sur un syst<73>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<73>me Apple MacOS X (>= 10.3)
Il est n<>cessaire d'avoir install<6C> les autotools (automake,
autoconf...) dans leur derni<6E>re version. <20> partir de l<>, il suffit de
taper les commandes suivantes dans un terminal :
# sudo fink install glib2-dev
2.3. Sur un syst<73>me Microsoft Windows
Cela ne fut pas (encore) test<73>, mais il est tr<74>s probable que cela
fonctionne sous Cygwin.
3. Se procurer EnlargeYourData
Vous pouvez t<>l<EFBFBD>charger la derni<6E>re archive des sources, ou bien
directement la version la plus r<>cente du projet sur le d<>p<EFBFBD>t
Subversion du projet.
3.1. L'archive des sources
Elle est disponible <20> l'adresse :
[14]http://glenux2.free.fr/pub/projets/EnlargeYourData/archives/
3.2. Le d<>p<EFBFBD>t Subversion
Afin d'obtenir les sources les plus <20> jour, vous pouvez utiliser le
logiciel de contr<74>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<74>e" pour l'utilisateur "anonymous", si ce dernier vous est
demand<6E>.
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'<27>tre cr<63><72> 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 :
* src/rle2/eydrle2
* src/rle1/eydrle
4.2. Utilisation
Les binaires de EnlargeYourData doivent <20>tre appel<65>s avec la syntaxe
suivante:
Usage: eydrleX <parametres_obligatoires> <options>
Les param<61>tres obligatoires sont les suivants:
* -m, --mode (c|u): "c" pour compresser, "u" pour d<>compresser,
* -i, --input <fichier>: Le fichier original <20> compresser ou
d<>compresser,
Les parames optionnels sont les suivants:
* -o, --output <fichier>: Le fichier resultant de la compression ou
d<>compression,
* -c, --cellsize <entier> : La tailles des blocs de bits utilis<69>s
pour la compression.
5. Documentation
5.1. Code
Vous pouvez trouver la documentation de EnlargeYourData dans le
dossier doc/html de l'application, ou en suivant [15]ce lien.
5.2. Le marqueur RLE
Il s'agit de la valeur z<>ro <20>crite sur X bits (X <20>tant la taille de
cellules choisies pour la compression).
Dans le cas ou dans le texte <20> compresser, on retrouver le marqueur
RLE, alors celui-ci est dupliqu<71>. Cependant, cela n'est pas efficace
lorsque l'on rencontre plus de deux fois d'affil<69>e le marqueur, car
cela g<>n<EFBFBD>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 <20>t<EFBFBD> test<73>s sur plusieurs fichiers de
types diff<66>rents:
* application/data,
* application/ogg,
* image/jpeg,
* image/x-ms-bmp (mode RAW),
* image/x-portable-pixmap,
* image/pcx (fichier deja compress<73> en RLE),
* text/plain
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):
* application/data : X=8 ,Ratio=100.39%
* application/ogg : X=30, Ratio=100%
* image/x-ms-bmp (mode RAW)-test 1 : X=3, Ratio=93.14%
* image/x-ms-bmp (mode RAW)-test 2: X=8, Ratio=14.43%
* image/x-portable-pixmap : X=6, Ratio=25.69%
* image/pcx (fichier deja compress<73> en RLE) : X=16, Ratio=95.97%
* text/plain test1 : X=, Ratio=76.19%
* text/plain test1 : X=, Ratio=99.70%
Par contre en ce qui concerne RLE2, dans la majorit<69> 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 <20> la
moiti<74> de ce que produit RLE1 tout seul.
Les utilisations de RLE
On retrouve le format RLE utilis<69> principalement dans ce qui concerne
le stockage d'images, notamment les images en couleurs index<65>es (noir
et blanc, et palettes de couleurs).
Il est pr<70>sent (par exemple) :
- dans la compression utilis<69>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<74>s utilis<69> <20> l'<27>poque du DOS sur PC).
On retrouve <20>galement souvent RLE associ<63> <20> un autre algorithme de
compression (voir le cours de C.Choffrut, cours sur Huffman).
Les probl<62>mes pos<6F>s par RLE2
RLE2, sans le codage de Golomb, n<>cessite la sp<73>cification d'une
taille de cellule pour stocker la taille des entiers representant les
suites de 0. Or arrive (fr<66>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<69>rer que la compression est impossible avec cette
taille de cellule (comme r<>alis<69> dans le code du TP), soit on peut
evisager des solutions un peu plus complexes, consistant <20> :
* Consid<69>rer que la cellule suivant une cellule dont la valeur est
(2^X - 1 ) repr<70>sente la "suite" du codage de la m<>me suite. Ainsi
sur 3 bits, on codera la suite 00100000...0001 (20 z<>ros entre les
deux "1") de la fa<66>on suivante :
"2 7 7 4 0"
Dans ce cas, on "perdra" une cellule (qui sera fix<69>e <20> 0) dans le
cas ou l'on rencontrera sur une suite de longueur multiple de (2^X
- 1).
* L'autre technique consiste <20> garder la valeur maximum d'une
cellule comme caract<63>re d'<27>chappement [RLE2], pour ensuite coder
de la fa<66>on suivante sur 3 bits: 001000....0001 (20 z<>ros entre
les deux "1") :
"2 [RLE2] 7 7 4 [RLE2] 0"
<
R<EFBFBD>f<EFBFBD>rences
1. file://localhost/home/warbrain/Documents/Cours/M2/Formats_de_Documents_et_Compression/EnlargeYourData/trunk/doc/index.html#1._Description
2. file://localhost/home/warbrain/Documents/Cours/M2/Formats_de_Documents_et_Compression/EnlargeYourData/trunk/doc/index.html#1.1._Auteurs
3. file://localhost/home/warbrain/Documents/Cours/M2/Formats_de_Documents_et_Compression/EnlargeYourData/trunk/doc/index.html#2._Pr%E9-requis
4. file://localhost/home/warbrain/Documents/Cours/M2/Formats_de_Documents_et_Compression/EnlargeYourData/trunk/doc/index.html#2.1._Sur_un_syst%E8me_Debian_GNULinux
5. file://localhost/home/warbrain/Documents/Cours/M2/Formats_de_Documents_et_Compression/EnlargeYourData/trunk/doc/index.html#2.2._Sur_un_syst%E8me_Apple_MacOS_X_
6. file://localhost/home/warbrain/Documents/Cours/M2/Formats_de_Documents_et_Compression/EnlargeYourData/trunk/doc/index.html#2.3._Sur_un_syst%E8me_Microsoft_Windows
7. file://localhost/home/warbrain/Documents/Cours/M2/Formats_de_Documents_et_Compression/EnlargeYourData/trunk/doc/index.html#3._Se_procurer_MiniFTPc
8. file://localhost/home/warbrain/Documents/Cours/M2/Formats_de_Documents_et_Compression/EnlargeYourData/trunk/doc/index.html#4._Utiliser_MiniFTPc
9. file://localhost/home/warbrain/Documents/Cours/M2/Formats_de_Documents_et_Compression/EnlargeYourData/trunk/doc/index.html#4.1._Compilation
10. file://localhost/home/warbrain/Documents/Cours/M2/Formats_de_Documents_et_Compression/EnlargeYourData/trunk/doc/index.html#4.2._Utilisation
11. file://localhost/home/warbrain/Documents/Cours/M2/Formats_de_Documents_et_Compression/EnlargeYourData/trunk/doc/index.html#5._Documentation
12. http://www.gnu.org/copyleft/gpl.html
13. mailto:glenux@fr.st
14. http://glenux2.free.fr/pub/projets/MiniFTPc/archives/
15. file://localhost/home/warbrain/Documents/Cours/M2/Formats_de_Documents_et_Compression/EnlargeYourData/trunk/doc/html/index.html