Telechargé par mawou.aa

Techniques de compression de données

publicité
Techniques de compression de données
Référence : Compression.docx / PCT
Version : 1.6 / novembre 2014
Par P. CRUCHET
D'après « COMPRESSION DE DONNÉES » de Pascal Plumé Edition EYROLLES
et la revue « PC EXPERT » Janvier 1995.
Lien Internet : http://fr.wikipedia.org/wiki/Compression_de_données
PLAN DU DOCUMENT
PRESENTATION DE LA COMPRESSION ........................................................................................ 1
1. ANALYSE DU BESOIN ............................................................................................................................. 1
1.1. Dans le domaine de la transmission de données.......................................................................... 1
1.2. Le Stockage des informations ...................................................................................................... 1
1.3. Autres domaines d’utilisation ...................................................................................................... 1
2. MESURE DE LA COMPRESSION ............................................................................................................... 2
3. LES METHODES ..................................................................................................................................... 2
3.1. Compression des répétitions ........................................................................................................ 2
3.2. Codage statistique........................................................................................................................ 3
3.3. Utilisation d’un dictionnaire........................................................................................................ 3
3.4. Algorithmes prédictifs .................................................................................................................. 3
LE CODAGE RLE .................................................................................................................................. 4
1. PRINCIPE ............................................................................................................................................... 4
2. EXEMPLE D’UTILISATION ...................................................................................................................... 4
S4.3 Structure et gestion de donnée
Techniques de compression de données
Présentation de la compression
1.
Analyse du besoin
La compression de donnée consiste à réduire la taille de données.
1.1.
Dans le domaine de la transmission de données
Ordinateur
Modem
Modem
Ordinateur
Dans le domaine des réseaux et des télécommunications, le canal de transmission est
souvent un facteur de limitation de la vitesse de transfert.
La compression des données peut soit réduire le temps de transfert, soit permettre de
réduire le coût du matériel.
1.2.
Le Stockage des informations
Compression
Décompression
ARJ
ZIP
....
La compression de données est utilisée pour :
* Rentabiliser au maximum les capacités physiques de stockage en
augmentant le volume apparent de données emmagasinées.
* Augmenter les capacités de sauvegarde des disques durs (doublage).
* Avoir un accès plus rapide aux informations stockées.
1.3.
Autres domaines d’utilisation
* Le son (ADPCM) : Taux d’erreur admis.
* L’image fixe (JPEG) : Beaucoup de données identiques.
* L’image animée (MPEG)
Page - 1
S4.3 Structure et gestion de donnée
2.
Techniques de compression de données
Mesure de la compression
Compression
Données
origiales
Données
compressées
Décompression
Le degré de réduction des données obtenu par une méthode de compression se mesure
et prend le nom de quotient de compression.
Taille des données compressées
Taux de compression = ----------------------------------------Taille des données originales
Le taux de compression est exprimé en pourcentage.
3.
Les méthodes
Un algorithme de compression sans perte restitue après les opérations successives de
compression et de décompression une suite de bits strictement identique à l'originale. Les
algorithmes de compression sans perte sont utiles pour les documents, les archives, les
fichiers exécutables ou les fichiers textes.
Avec un algorithme de compression avec perte, la suite de
bits obtenue après les opérations de compression et de
décompression est différente de l'originale, mais l'information
restituée est en revanche voisine. La compression avec pertes ne
s'applique qu'aux données « perceptibles », en général sonores ou
visuelles, qui peuvent subir une modification, parfois importante,
sans que cela soit perceptible par un humain. La perte
d'information est irréversible, il est impossible de retrouver les
données d'origine après une telle compression.
3.1.
Compression des répétitions
C’est une des techniques des plus simples, elle est connue sous le nom de Run Length
Encoding « RLE » par exemple. Le principe consiste à détecter une donnée ayant un nombre
d’apparitions consécutives qui dépasse un seuil fixé. Puis, cette séquence est remplacée par
deux informations, un chiffre représentant le nombre de répétitions et l’information à répéter.
Exemple :
ASCII ⇔ ASC2I
Cette méthode présente peu d’avantage pour la compression de fichier texte. Par
contre pour une image, elle devient intéressante, car on rencontre régulièrement une
succession de données de même valeur, des pixels de même couleur.
Page - 2
S4.3 Structure et gestion de donnée
3.2.
Techniques de compression de données
Codage statistique
Le but de ces méthodes est de coder des caractères avec un minimum de bits en
fonction de leur fréquence d’apparition dans les données originales. On peut citer les
algorithmes de Huffman et de Shannon/Fano.
Le principe du codage d’Huffman est similaire a celui du code morse utilisé en
transmission : coder ce qui est fréquent sur peu de place, et coder en revanche sur des
séquences plus longues ce qui revient rarement. En morse le « e », lettre très fréquente, est
codé par un simple point.
Exemple : si W est rencontré 10 fois, on peut le coder sur 12 bits
si E est rencontré 200 fois, il sera stocké sur un seul bit
Sans codage : 10 * 8 + 200 * 8 = 1680 bits
Avec codage : 10 * 12 + 200 * 1 = 320 bits
3.3.
Utilisation d’un dictionnaire
Des méthodes comme celle de Lempel Ziv Welch « LZW » font intervenir un
dictionnaire.
Principe :
On constate que les mêmes suites d’octets apparaissant régulièrement dans les
données sources. Elles peuvent être remplacées par un indice représentant leurs adresses dans
un dictionnaire de référence construit progressivement.
3.4.
Algorithmes prédictifs
Ces méthodes cherchent à prévoir les caractères futurs en fonction des caractères déjà
lus. Par exemple, celle élaborer par Teuhola et Raita consiste à explorer un fichier texte
syllabe par syllabe.
Page - 3
S4.3 Structure et gestion de donnée
Techniques de compression de données
Le codage RLE
1.
Principe
L’encodage des répétitions (RLE pour Run-Length Encoding) est l’une des méthodes
les plus anciennes. Elle a l’avantage d’être des plus simples et est souvent utilisée. Le principe
est d’identifier les séquences d’octets puis de les encoder en une forme plus compacte. Le
codage RLE est à la fois rapide et simple à mettre en oeuvre. Les textes ASCII se prêtent
malheureusement assez mal à cette méthode, car ils contiennent rarement de très longues
séquences répétitives. Les fichiers exécutables ou mieux encore les fichiers contenant des
images bitmap ou des bases de données composées d’enregistrement de format fixe
permettent d’obtenir un taux de compression relativement important.
2.
Exemple d’utilisation
Un fichier contient les 32
octets suivants :
Sous une autre forme :
00 32 46 00 00 00 00 05
99 02 02 02 01 01 01 01
01 01 01 01 01 01 01 64
00 00 00 00 00 00 00 00
00
32
46
00 00 00 00
05
99
02 02 02
01 01 01 01 01 01 01 01 01 01 01
64
00 00 00 00 00 00 00 00
On constate qu’un certain nombre d’octets sont répétés.
Le remplacement de chaque ligne par deux octets,
l’un pour le nombre d’octets de la séquence,
l’autre pour l’octet répété donne le résultat suivant
Page - 4
01 00
01 32
01 46
04 00
01 05
01 99
03 02
0B 01
01 64
08 00
S4.3 Structure et gestion de donnée
Techniques de compression de données
Les 32 octets sont ainsi réduits à 20. Une autre méthode consisterait à utiliser un code
d’échappement ici, FF pour optimiser au mieux la compression.
00
32
46
FF 03 00
05
99
FF 02 02
FF 0A 01
64
FF 07 00
La séquence fait alors 18 octets.
Un éventuel FF exigerait la séquence FF 00 FF.
On remarque également que le nombre de répétitions est
réduit de 1.
Le choix du code d’échappement peut faire l’objet d’une analyse préalable pour
déterminer le code le moins utilisé. Comme la séquence formée du code d’échappement, de la
longueur et de l’octet répété occupe généralement trois octets. La routine de codage doit
s’assurer que la longueur de toute séquence équivaut au moins à quatre octets, de manière à ce
que l’utilisation du code d’échappement représente une réelle économie.
Page - 5
Téléchargement