Académique Documents
Professionnel Documents
Culture Documents
Cours2 Comp
Cours2 Comp
Master de cryptographie
Cours 2 : Compression
8 et 12 janvier 2009
Université Rennes 1
Construction du code
Si C = {c1 , · · · , cr } est un code préxe optimal pour Sr , alors
C 0 = {c10 , · · · , cr0 , cr0 +1 } est un code préxe optimal pour Sr +1 avec
ci0 = ci pour 1 ≤ i ≤ r − 1,
cr0 = cr .0,
cr +1 = cr .1
0
Arbre associé
Les feuilles sont les symboles.
Les noeuds internes représente la fusion de deux symboles.
On fusionne à chaque fois les noeuds de plus faible poids et on leur
associe la somme des poids. Ce jusqu'à la racine.
On associe 0 à la branche de gauche et 1 à celle de droite.
On remonte l'arbre pour obtenir le code de chaque symbole.
Propriété
La longueur moyenne d'un tel code est comprise entre H et H + 1.
On peut se rapprocher de H en considérant des blocs de n symboles.
Principe
Remplacement de facteurs de l'entrée par des codes plus courts.
Ces codes représentent la place du facteur dans un dictionnaire
construit dynamiquement.
LZ77 et LZ78
Proposés par Lempel et Ziv en 1977 et 1978.
Remplacent les facteurs par des références à leur première apparition.
Utilisés pour les chiers .zip, .gif, NTFS.
asymétriques.
Compression
L←∅
Placer un pointeur au début de l'entrée
Tant que le tampon de lecture est non vide faire
Trouver la plus longue correspondance entre les tampons de lecture et
de recherche
L ← L|p|l |c où p, l et c sont codés avec des codes de longueur xe (et
de longueur totale n)
Décaler le pointeur de l + 1
n tant que
retourner L
Décompression
L←∅
Placer un pointeur au début de l'entrée
Tant que le pointeur ne dépasse pas la taille de l'entrée faire
Lire n bits de l'entrée
Chercher la correspondance f dans le tampon de recherche
L ← L|f |c
Décaler le pointeur de l + 1
n tant que
Retourner L
Décompression
Il sut de reconstruire le dictionnaire au fur et a mesure en lisant les
couples. Le message est la concaténation des mots du dictionnaire.
Master Crypto (2008-2009) Théorie de l'information et codage 8 et 12 janvier 2009 14 / 18
LZ78 : un exemple