Projet d’algorithmique
Master 2 ISV
2005-2006
Par Sébastien Vaie
Projet d’algorithmique
Compression de données
Rapport
Sébastien Vaie
2005-2006 page 3
Introduction ............................................................................................................................. 4
RLE ou Run Lenght Encoding ............................................................................................... 5
Introduction ......................................................................................................................... 5
Principe ................................................................................................................................. 5
Exemple : ............................................................................................................................ 6
Performances et limitations ............................................................................................... 6
Exemple : ............................................................................................................................ 6
Variantes ............................................................................................................................... 7
Conclusion RLE ................................................................................................................... 7
LZW ou Lempel-Ziv-Welch .................................................................................................... 8
Introduction ......................................................................................................................... 8
Principe ................................................................................................................................. 8
Exemple : ............................................................................................................................ 9
Performances et limitations ............................................................................................... 9
Variantes ............................................................................................................................. 10
Conclusion .......................................................................................................................... 10
Huffman ou statistique ......................................................................................................... 11
Introduction ....................................................................................................................... 11
Principe ............................................................................................................................... 11
Exemple : .......................................................................................................................... 12
Exemple 2 : ....................................................................................................................... 13
Performances et limitations ............................................................................................. 13
Variantes ............................................................................................................................. 14
Exemple : .......................................................................................................................... 15
Conclusion .............................................................................................................................. 16
Référence ............................................................................................................................ 17
Projet d’algorithmique
Compression de données
Rapport
Sébastien Vaie
2005-2006 page 4
Introduction
L’augmentation de la taille des données à stocker et les limitations matérielles de
l’informatique ainsi que la démocratisation des transferts d’informations via les voies
téléphoniques a forcé l’apparition de la compression.
Afin de permettre le transfert de manière plus rapide sur les réseaux de l’information ainsi
que le stockage plus important de données sur un même espace.
La compression de données est comme son nom l’indique le fait de compacter des données
afin qu’elles prennent moins de place. Ainsi, elles peuvent être transférées via le réseau plus
facilement.
Elle est utilisée dans tous les domaines qui sont en rapport de proche ou de loin avec
l’informatique que ce soit la photo, la vidéo, le son, les programmes….
Elle comprend 2 grandes classes que l’on nomme la compression sans perte, qui ne détruit
aucune donnée, et la compression avec perte qui permet la suppression de données qui sont
moins importantes, ou comme pour les données destinées à une appréciation humaine qui
peuvent être limitées par la perception humaine.
Nous n’allons parler que des algorithmes de compression de données sans perte et plus
précisément des 3 types d’algorithme les plus utilisés à savoir RLE, LZW, et hauffman.
Projet d’algorithmique
Compression de données
Rapport
Sébastien Vaie
2005-2006 page 5
RLE ou Run Lenght Encoding
Introduction
Le RLE est l’un des algorithmes de compression les plus anciens, il a été fait pour compresser
tous types de données sans tenir compte de ce denier.
Il est très utilisé car est relativement simple à implémenter.
En contrepartie, le contenu de ces données va conditionner l’efficacité de la compression.
En effet, cet algorithme fonctionne de telle manière qu’il va supprimer les redondances
continues de bytes.
Donc pour des données qui ont de nombreuses suites de bytes identiques la compression sera
optimale mais pour des données de type texte où il y a peu de répétition continue du même
caractère, il sera nettement moins performant.
Principe
Son principe est relativement simple. Il va parcourir le fichier en regardant les caractères un
par un, si le suivant est le même il passe dans une boucle jusqu’à ce qu’il soit différent en
même temps dans cette boucle pour chaque caractère identique il incrémente un compteur.
Une fois sorti de cette boucle, il retourne en arrière du nombre de ce compteur, il remplace le
premier caractère par un identificateur de compression, le deuxième par le compteur et le
troisième par le caractère répété. Ensuite, il supprime les caractères répétés en plus (compteur
3).
Il est généralement prévu de mettre une contrainte sur les répétitions. En effet, l’algorithme ne
va pas compresser des caractères qui ne sont répétés que 2 fois car cela augmenterait la taille
de la chaîne de caractère.
S’il y a une répétition de 2 caractères par la compression elle sera remplacée par 3 caractères
ce qui fait un caractère de plus et donc cela sera sous performant.
Projet d’algorithmique
Compression de données
Rapport
Sébastien Vaie
2005-2006 page 6
Exemple :
Chaîne à compresser :
AAAAARRRRRROLLLLBBBBBUUTTTTTT
On choisit comme caractère spécial : @ et comme seuil de répétition : 3
Après compression : @5A@6RO@4L@5BUU@6T
Gain : 11 caractères soit 38%,
Ce qui fait un gain relativement faible.
Performances et limitations
On peut donc dire que cet algorithme est relativement simple. En effet, puisque de manière
générale il consiste en une simple boucle. Il est donc relativement aisé de le programmer.
Il est également relativement simple à comprendre, il a également l’avantage qu’il peut coder
n’importe quel type de données.
Ce sont là ses points forts.
Il a généralement un taux de compression d’environ 40% selon le type de données.
Nous avons vu précédemment que le RLE pouvait compresser n’importe quel type de
données. Il y a tout de même une limitation sur ce point qui n’est pas de l’ordre de
l’algorithme mais surtout de l’efficacité. En effet, étant basé sur la répétition de caractères ou
de bytes, le type de données modifiera considérablement le taux de compression.
Car si les données à compresser ne présentent pas de répétition le fichier de sortie sera plus
gros que l’original ce qui est donc problématique pour un système de compression.
Ceci peut arriver avec des données de type texte ASCII.
Exemple :
Cannibalisation => 15 caractères
Après le codage RLE :
1C1a2n1i1b1a1l1i1s1a1t1i1o1n => 28 caractères
Ce qui nous donne un fichier de sortie de quasiment le double. Donc, le type de données ne
conditionnera pas le sucs ou l’échec de l’exécution de l’algorithme mais conditionnera
plutôt le taux de compression.
En revanche, il pourrait très bien marcher sur des types de données biologiques notamment
les fichiers de génome qui sont représentés sous forme de texte mais dont leurs structures
peuvent représenter beaucoup de répétition.
Mais pour pallier un minimum à ces problèmes, il existe plusieurs variantes du RLE.
1 / 16 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !