Académique Documents
Professionnel Documents
Culture Documents
données
Master STIC - M2
Multimédia
Denis Payet
1. Introduction
diapo 2
Rappel : Intérêt de la compression
• Image :
– Taille 640x480
– Codage : RVB, 3x1 octet (16 millions de couleur)
640x480x3 = 921 600 octet = 900 ko
• Vidéo :
– Taille 640x480
– 25 images par seconde
25 x 900 = 22 500 ko/s ≈ 22 Mo/s 1,3 Go/min
diapo 3
Les 2 approches de la compression
diapo 4
La compression sans perte
Définition :
La compression est dite sans perte lorsqu'il n'y a
aucune perte de données sur l'information
d'origine. Il y a autant d'information après la
compression qu'avant, elle est seulement
réécrite d'une manière plus concise.
diapo 5
La compression avec perte
Définition :
Il y a moins d'information après la compression
qu'avant, l'information retranchée étant
sélectionnée d'après des critères fixés selon le
type de données traitées.
diapo 6
2. La compression sans perte
diapo 7
Définition
• Probabilité d’apparition d’un caractère dans un
message :
ni
p (ci )
m
– ni = le nombre d’occurrence du caractère ci
– m = le nombre de caractère total dans le message
diapo 8
Numérisation
La plupart du temps on n’est pas en mesure de déterminer
les propriétés statistiques d’une source au moment de
sa numérisation (flux non prévisible). C’est pourquoi,
faute de mieux, elle est considérée comme une source
ayant des symboles équiprobables, ce qui explique
qu’on utilise généralement des codes binaires à longueur
constante quand on réalise une numérisation.
diapo 9
Codage à taille fixe (ctf)
• Pour un message m composé d’un alphabet de
n caractères distincts, la taille (nombre de digit
nécessaire) d’un caractère pour un codage
binaire à taille fixe est :
ln( x)
Rappel : log 2 ( x)
ln(2)
diapo 10
Codage à taille fixe
• Exemple :
Soit un message de 36 caractères, composé
des caractères A,B,C,D et E
• Exercice :
– Calculer la taille totale du message pour un
codage binaire à taille fixe.
diapo 11
3 types de méthodes de compression
• Méthodes canoniques
2.1
• Méthodes statistiques
2.2
• Méthodes à dictionnaire
2.3
Rappel :
Taux de compression
diapo 12
2.1. Méthodes canoniques
diapo 13
Principe
a) Codage topologique
diapo 15
Codage Topologique
• Le codage topologique :
– Fonctionne sur les octets (8 bits).
– Pour être efficace il est nécessaire qu’un des
octets source soit sensiblement dominant (par
exemple 0).
– Le taux de compression maximal est de 1/8
diapo 16
Codage Topologique
Principe :
diapo 19
2.1. Méthodes canoniques
b) L’algorithme RLE
diapo 20
Algorithme RLE
• L’algorithme RLE :
Run-Length Encoding
– Un des premiers algorithmes de compression
– Fonctionne sur les octets ou caractères.
– Utilisé par la plupart des fichier bimaps (TIFF,
BMP et PCX).
– Simple à implémenter et rapide d’exécution.
– Efficace sur les messages comportant un
grand nombre de symboles consécutifs.
diapo 21
Algorithme RLE
Principe :
Dans le message source les suites de caractère consécutif sont
remplacées par un codage composé du nombre d’occurrences du
caractère suivi du caractère.
Vocabulaire :
• Dans le message source, une suite de caractères consécutifs est
appelé un passage (ou une course, « run »).
• Le code compressé qui lui correspond est appelé paquet RLE,
dans celui-ci :
- le nombre d’occurrences du caractère est appelé le compteur de
passage (« run count »).
- et le caractère associé est appelé valeur de passage (run
value).
diapo 22
Algorithme RLE
• Exemple
Soit un message
AAAAAAbbbXXXXXt
diapo 23
Algorithme RLE
• Exercice :
diapo 24
2.2. Méthodes statistiques
diapo 25
Principe
a) L’agorithme de Huffman
diapo 27
Algorithme de Huffman
• L’algorithme de Huffman :
– Décrit la première fois en 1952
– Préconisé par de nombreuses normes :
JPEG, MPEG,…
– Crée des codes de longueurs variables en
fonction de la répartition du nombre
d’occurrences des symboles.
diapo 28
Algorithme de Huffman
Principe :
Les caractères sont d’abord triés et classés en fonction de leur
fréquence (occurrence). Un graphe est alors construit de la manière
suivante :
• A partir des deux symboles présentant la fréquence la plus faible,
un noeud est créé. Il lui est affecté un poids égal à la somme des
fréquences des deux symboles.
• Le noeud créé remplace désormais les deux symboles dans la suite
du processus. A ces derniers sont affectés respectivement les
chiffres binaires 0 pour le plus fréquent et 1 pour le plus rare, (ou
l’inverse, il s’agit d’une convention totalement arbitraire).
• La même démarche est reprise en considérant les deux symboles
ou noeuds de poids le plus faible. Elle est renouvelée tant qu’il reste
au moins deux symboles ou nœuds libres.
diapo 29
Algorithme de Huffman
• Exemple :
Soit un message de 36 caractères, composé
des caractères A,B,C,D et E, dont les
occurrences sont :
– A : 7 fois
– B : 6 fois
– C : 5 fois
– D : 14 fois
– E : 4 fois
diapo 30
Algorithme de Huffman
diapo 31
Algorithme de Huffman
diapo 32
Algorithme de Huffman
diapo 33
Algorithme de Huffman
diapo 34
Algorithme de Huffman
diapo 35
Algorithme de Huffman
diapo 36
Algorithme de Huffman
• Codage obtenu :
– D (14) : 0
– A ( 7) : 111
– B ( 6) : 110
– C ( 5) : 101
– E ( 4) : 100
diapo 37
Algorithme de Huffman
• Exercices :
– Calculer la taille totale du message après codage.
– Calculer le taux de compression obtenu.
• Rappel :
diapo 38
3.2. Méthodes statistiques
b) Algorithme de Shannon-Fano
diapo 39
Algorithme de Shannon-Fano
Principe :
1) on classe les symboles par ordre de probabilités
décroissantes
2) on partage l’ensemble des symboles en deux sous-
ensembles, les 2 sous-ensembles devant être de
probabilité aussi proche que possible
3) on attribue à chaque sous-ensemble l’état 0 ou 1
4) on re-partage chaque sous-ensemble en deux sous-
ensembles de probabilité aussi proche que possible, on
attribue à chaque nouveau sous-ensemble l’état 0 ou 1,
etc.
diapo 40
Algorithme de Shannon-Fano
• Exemple :
Soit un message de 36 caractères, composé des
caractères A,B,C,D et E, dont les occurrences
sont:
– A : 7 fois
– B : 6 fois
– C : 5 fois
– D : 14 fois
– E : 4 fois
diapo 41
Algorithme de Shannon-Fano
diapo 42
Algorithme de Shannon-Fano
diapo 43
Algorithme de Shannon-Fano
diapo 44
Algorithme de Shannon-Fano
diapo 45
Algorithme de Shannon-Fano
diapo 46
Algorithme de Shannon-Fano
• Codage obtenu :
– D (14) : 00
– A ( 7) : 01
– B ( 6) : 11
– C ( 5) : 100
– E ( 4) : 101
diapo 47
Algorithme de Shannon-Fano
• Exercice :
– Calculer la taille totale du message après codage.
– Calculer le taux de compression obtenu.
• Rappel :
diapo 48
2.3. Méthode avec Dictionnaires
L’algorithme LZ77
diapo 49
Algorithme LZ77
Principe : L'idée est de garder une trace des nouvelles données, et de
supprimer les phrases déjà rencontrées pour ne conserver que la
position de leur première occurrence.
diapo 50
Algorithme LZ77
Exemple : traitement par octet (8 bits)
Format d’une séquence répétée sur 4 octets :
00 XX XX XX (représentation hexadécimale)
Indicateur
d’occurrences Longueur de la
Adresse de la chaîne
chaîne de référence
de référence
diapo 52
Algorithme LZ77
Pour le décodage il faut commencer depuis la fin du
fichier compressé
Voir un exemple détaillé sur le site :
http://nicolas.delerue.org/lz77.php
diapo 53
3. Quelques Exemples
diapo 54
Le format ZIP
• inventé par Phil Katz
• Utilise l'algorithme deflate
compression sans perte qui couple l'algorithme
LZ77 et le codage de Huffman
deflate est aussi utilisé dans les formats Gzip et PNG
diapo 55
Le format GIF
• mis au point par CompuServe en 1986
diapo 56