Vous êtes sur la page 1sur 20

03/12/2016

Chapitre III A.U. 2016/17


Éléments de Théorie de l’information et codage

Les travaux de Shannon (1940) ont posé les bases de la théorie de l’information.
 Idée : lier la quantité d’information d’un message à sa
probabilité d’occurrence (connue ou estimée).
Considérons une source d’information S définie par :
– Ensemble fini de N symboles (S)N=(s1, s2, …, sN) appelé alphabet ;
– Processus d’émission de suite de symboles, selon une loi de probabilité
(P)N=(p(s1), p(s2), … , p(sN)), où ∪si est l’événement certain
(Σ p(si)=1).
Message émis Code Message reçu
Source
d’information Codeur Canal Décodeur Destinataire
Système de codage
Théorie de l’information  Processus de transmission numérique

Théorie de l’information  Limites de performances d’un système de


1 transmission numérique .

I. Les différents types de source,


a) Source simple (modèle de Bernoulli)
Une source est simple ou sans mémoire si :
– Les symboles successifs émis par la source sont indépendants
– La probabilité d’une suite de symboles Sn=st1st2 … stn émis à
des instants successifs ti est donnée par l’équation :
p(st1st2 … stn)=p(st1) p(st2) … p(stn)
b) Source avec mémoire ou de Markov,
Une source est de Markov d’ordre r si l’apparition d’un symbole st
ne dépend que des r symboles précédents :
p(st/st-1, st-2 , st-3…)=p(st/st-1, st-2 , …, st-r)
Remarque: Dans la suite, on se limite qu’à des sources simples.

1
03/12/2016

II. Modélisation de sources d'information,


 C’est un mécanisme statistique d'émission des signes
Source discrète : une loi de probabilité donnée associée
à une variable aléatoire discrète
Source continue : une loi de densité de probabilité
associée à une variable aléatoire continue
Exemples :
TEXTE = succession des réalisations de la variable
aléatoire : "caractère sortant du clavier"
IMAGE_NB = succession de "niveaux de gris" mesurés
sur une image
3

III. Notions de probabilité (Rappel)


 Source discrète ≈ variable aléatoire discrète choisissant un
signe dans un alphabet de taille finie :
 S={s1, s2, …, sN} avec les probabilité P(S=si)=pi, qui
N
satisfont la condition: ∑ p = 1 i
i =1
 Notations :
S=si (Événement aléatoire Ai)
P(S=si)=P(Ai) (Proba. de l'événement aléatoire Ai)
 Propriétés : 0≤P(A) ≤1
P(A) =1 qd. A est certain
P(A) =0 qd. A est impossible
4

2
03/12/2016

Propriétés
 Événements s'excluant mutuellement : A et Ā
P(A)=1-P(Ā)
 Quand l'événement A entraîne B : A⊂B
 P(A)≤P(B)
 Somme des événements: P(A+B) ≤ P(A)+P(B)
 Événements A et B incompatibles: P(A+B)=P(A)+P(B)
Événements A et B compatibles : P(A+B)=P(A)+P(B)-P(AB)
 k événements 2 à 2 incompatibles:
P(A1+A2+…+AN)=P(A1)+P(A2)+…+P(AN)
 Produit des événements A et B
 Événements A et B indépendants : P(AB) = P(A)P(B)
 Événements A et B dépendants: P(AB)≤ P(A) et P(AB)≤ P(B)
Cas particulier pour K événements s'excluant mutuellement:
P(A1)+P(A2)+…+P(AN)=1
5

 Probabilité conditionnelle de B sachant A : P(B|A)


 Propriétés : P(B|A) ≷P(B) (comparaison à un seuil)
 Événements A et B indépendants : P(B|A) =P(B)
 P(AB)=P(A)P(B|A) =P(B) P(A|B)
 0≤P(B|A) ≤ 1
 P(B|A) =1 quand A⊂B
 P(B|A) =0 quand A et B incompatibles
B⊂B1  P(B|A) ≤ P(B1|A)
 Propriétés de la probabilité conditionnelle :
P(B+C|A) =P(B|A)+P(C|A) qd. B et C incompatibles
 Généralisation pour k événements Bk 2 à 2 incompatibles
 P(͞B|A)=1-P(B|A)
 Probabilité totale d'un événement B (l'expérience A a exactement
N issues Ak 2 à 2 incompatibles)
6
P(B)=P(A1)P(B|A1)+P(A2)P(B|A2)+…+P(Ak)P(B|Ak)

3
03/12/2016

IV. Information associée à un symbole d’une source,


 L’information I(si) associée au symbole si est une fonction F de
la probabilité d’apparition de si.
 Cette fonction est définie par trois conditions :
Si la source ne délivre qu’un seul message M  I(M)=0;
L’information associée à l’union de deux événements
indépendants (si=sj∪sk) est I(si)=I(sj)+I(sk)
 F(p(si))=F(p(sj))+F(p(sk)) sachant que p(si)=p(sj).p(sk)
La fonction est continue, monotone et positive
Pour respecter ces trois conditions, la fonction doit être de forme:
-λ×log(?)
λ: coefficient choisi de manière à ce que la quantité
d’information associée aux N symboles soit égale à 1.
7

Information associée à un symbole d’une source,


Lorsque les symboles sont équiprobables (p(si)=1/N) dans ce cas:
N
I ( S ) = −∑ λ log( p( si )) = λN log (N ) = 1  I(si)=-p(si)log(p(si))
i =1
L’unité exprimant la quantité d’information dépend de la base du
logarithme. Dans le cas où la base=2, l’unité est appelée bit, et on a :
I(si)=-p(si)log2(p(si))
V. Entropie d’une source simple,
L’entropie E(S) d’une source simple (S)N est définie par :
N
E( S ) = −∑ p( si ) log 2 ( p( si )) mesure l’information moyenne
de chaque symbole de la source.
Propriétés: i =1

• E(S) est maximale si tous les symboles de la source sont


équiprobables  E(S)=log2N (bits)
• La composition des événements (fusionner) fait décroître
l’entropie.
• La scission des événements (fractionner) accroît l’entropie.
8

4
03/12/2016

VI. Codage et décodage,


Les si sont codés par des mots de code ui de (U)N formés de ℓi symboles.
a) Définitions,
L’ensemble des N mots de code constitue le code de la source (S)N.
Le Taux de Codage (Coding Rate) R est le nombre moyen de bits
codés par symbole: N
R = ∑ l i p ( si ) Un code est plus efficace (performant) en
compression que si R est petit (minimal)
i =1
Un code est séparable ou uniquement décodable s’il peut être lu
sans ambiguïté: Si on a deux séquences de mots de code identiques
c1c2 · · ·ck = c’1c’2 · · ·c’p où les ci et c’j∈code C, alors les mots de
code sont un à un identiques : k = p et ci = c’i , i = 1, . . . ,k.
si Code 1 Code 2 Code 3 Code 1: Performant (R=1!) mais non inversible.
0 0 0 10 Code 2: Inversible, pas séparable (séquence
1 0 10 00 101010... peut se décoder 130... 301).
2 1 100 11 Code 3: Séparable mais le décodeur doit lire la
9 3 1 101 110
séquence codée à l’avance (parité de 0).

Un code séparable est irréductible (ou instantanés) s’il n’existe


aucun couple uiuj pour lequel le mot de code ui soit le préfixe du
mot de code uj. Un code irréductible est aussi appelé code à
préfixe (prefix code).
Voici les ensembles emboîtés:
{codes à Long. Var.}⊃{codes inversibles}
⊃{codes séparables } ⊃{codes irréductibles}

Symboles s1 s2 s3 s4 s5 s6 Code séparable


Codes 0 100 101 110 1110 1111 et irréductible

Exercice: Décoder la chaîne binaire: 100101011100.


Solution: S2S3S1S5S1

10  Pas besoin de séparateur entre mots de code dans la séquence.

5
03/12/2016

b) Inégalité de Kraft-McMillan,
Il faut minimiser R sous la contrainte que le code soit séparable.
Un code composé de N mots de code de longueur ℓi (i=1, 2,…, N)
est séparable et instantané si et seulement si, il vérifie l’inégalité:
N
1
Où r est la taille de l’alphabet du codeur (r=2). ∑
i =1 r
li
≤1
Condition nécessaire et suffisante de l'existence des
codes séparable et instantanés respectant les longueurs ℓi.
Code séparable mais pas instantané:
Exemple: li ne vérifient pas l’inégalité de Kraft-McMillan.
li code li code
1 0
Code séparable et instantané:
1 0
2 10 2 10 Conséquence de l’inégalité de Kraft-
3 110 3 110 McMillan: Tout code séparable peut être
5 11100 4 1110 remplacé par un code instantané de
5 11101 5 11110 même distribution de longueurs.
5 11110 5 11111 1 1 1 1 1 1 1
6 111110 6 Erreur + + + + + + >1
11
6 111111
2 4 8 16 32 32 64

c)Recherche du code Optimal


Pour trouver le meilleur code pour une source donnée, il suffit de
minimiser le taux R avec la contrainte donnée par l’inégalité de Kraft-
McMillan:  
minR = ∑ pili ∑ 2 i ≤ 1
−l

 i i 
Résolution: par la méthode des multiplicateurs de Lagrange:
L = ∑ pi li − λ ∑ 2 − l ioù λ est le multiplicateur de Lagrange.
i i
∂L
On doit annuler les dérivées = pi − λ′2−li = 0
∂li
où λ’ est toujours constant.
L’optimum est atteint lorsque les pi et 2−li sont proportionnels, pour
une contrainte saturée ∑ 2−li = 1. La constante de proportionnalité vaut
forcément λ’ = 1 ; on trouve donc que R est minimisé lorsque:
1
li = log2 Problème: Ce résultat ne donne pas, en général,
pi des longueurs li entières! Contrainte nécessaire.
On découvre que le taux minimal N
E = ∑ pi log 2
1
12 est l’entropie de la source: i =1 pi

6
03/12/2016

e) Théorème du codage exact de Shannon,


 On appelle extension d’ordre k d’une source S de m symboles, une
nouvelle source Sk composée de blocs de k symboles (qui a un
alphabet de mk symboles).
Si l’ordre k est de plus en plus élevé alors la longueur moyenne
R des mots de code tend vers une limite qui est l’entropie E(S).
 Une source d’entropie H(S) peut toujours être codée de façon
irréductible avec un code de longueur moyenne R tel que:
E(S)≤ R≤E(S)+1
Exemple: pi li code
1/2 1 0 L’entropie est atteinte dans le cas où les
1/4 2 10 pi sont des puissances négatives de 2 (car
1/8 3 110 li =log2(1/pi) est bien entier).
1/8 3 111
Le code est «optimalement optimal » (R = E(S)).
Cela montre que le taux d’un code séparable est toujours
13 limité inférieurement par l’entropie: R ≥ E(S)

VI. Codage entropique (sans perte),


a) Codage de Shannon-Fano,
Il s’agit d’utiliser la probabilité d’occurrence de chaque symbole
dans un message.
Algorithme:
 Placer les probabilités d’occurrence de chaque symbole dans
une liste par ordre décroissant. Cette liste constitue la racine
d’un arbre, qui à l’initialisation est une feuille.
 Couper la liste en deux groupes de symboles S0 et S1, dont les
probabilités totales sont aussi voisine que possible (de 0,5).
Le groupe S0 est codé par un “0", S1 par un “1".
Si un groupe Si n’a qu’un seul élément, il est appelé feuille
terminale, et est inchangé. Sinon, la procédure reprend l’étape
2 sur le groupe Si.
14

7
03/12/2016

Procédure de codage:
Construire un arbre dont les suites de bits 0 ou 1 partant de la racine
vers chacune des feuilles constituent les mots de code.
Exemple: Coder les 8 symboles si, i=0,…,7 de probabilités
respectives 0.17, 0.10, 0.28, 0.22, 0.05, 0.05, 0.06 et 0.07 en
utilisant le codage de Shannon.
L’entropie de la source est égale à: 2,67 bits. Symboles probabilité Code
ordonnés
0.28 1 1 s2 0.28 11
0.50 0.50 0.50 0.50 0.50
0.22 0 s3 0.22 10
0.17 0.17 1 s0 0.17 011
0.27 0.27 0.27 1
0.10 0.10 0 s1 0.10 010
1
0.07 0.07 0.07 1 1 s7 0.07 0011
0.13 0
0.06 0.06 0
0 0.50
0.06 s6 0.06 0010
1 0.23
0.05 0.05 0.05 0 s4 0.05 0001
0 0.10
0.05 0.05 0.05 s5 0.05 0000

15 La longueur moyenne du code est de: 2,73 bits.

b) Codage de Huffman,
Principe: Remplacer la valeur d'entrée par un code dont la longueur
dépend de sa probabilité d’occurrence (estimée par une
séquence d'apprentissage avant le traitement).
La conception du code peut être considéré comme un algorithme
arborescent.
Algorithme: Soit l'ensemble de symboles suivant: X={xi, i=0,…, M-1}
et si la probabilité de chaque symbole a été estimée dans la série
suivante: P={pi, i=0, … , M-1}. L'objectif est de créer un arbre,
nœud par nœud, de façon à atteindre sa racine (nœud principal).
Supposant que l'ensemble de nœuds est appelée: Nt={nit,i=0,…,
Qt-1} où t représente le nombre de nouveaux nœuds créés.
 Trier P dans l'ordre décroissant. Ils sont considérés comme des
feuilles.
16

8
03/12/2016

 Au début (t = 0), l'ensemble de nœuds est P avec M=Q. Les deux


nœuds A et B de probabilités les plus faibles α et β sont
additionnées pour créer un nouveau nœud. Le nouvel ensemble
de nœuds lorsque le (t+1)ième nœud vient d'être créé est:
Nt+1={nit+1,i=0, … , Qt+1-1}
où A et B ont été remplacés par un nœud avec la valeur α + β .
Le processus continue jusqu'à ce que le nœud principal est atteint
(lorsque QT = 1).
X0 0.25 0.25 0.25 0.30
Exemple:
X1 0.25 0.25 0.25 0.25

X2 0.15 0.15 0.20 0.25

X3 0.15 0.15 0.15 0.20


1
X4 0.1 0.1 0.15
1 0
X5 0.1 0.1
0
17 t=0 t=1 t=2

X0 0.25 0.25 0.25 0.30 0.45 0.55


1
1.0
X1 0.25 0.25 0.25 0.25 0.30 0.45
1 0
X2 0.15 0.15 0.20 0.25 0.25 t=5
1 0
X3 0.15 0.15 0.15 0.20 t=4
1 0
X4 0.1 0.1 0.15 t=3
1 0
X5 0.1 0.1 t=2
0
t=0 t=1
Remarques:
Il faut noter que les nœuds sont triés avant la création d'un autre
nœud.
L'arbre créée est utilisée pour déterminer le code de Huffman de
chaque feuille. Cela se fait en attribuant 1 à la branche supérieure
et 0 à la plus basse (par exemple).
Le code est lu à partir du nœud principal de la feuille.
18

9
03/12/2016

Valeurs Code de Huffman


x0 10
x1 01
x2 111
x3 110
x4 001
Remarques: x5 000
On suppose qu'un seul arbre peut être construit avec les
ensembles de données.
Parfois, le nombre de possibilités peut être supérieure. Pour
obtenir le meilleur code de Huffman, tous les arbres devraient
normalement être construits pour trouver celle qui donne le
plus bas entropie.
Le codage est facile: il suffit de remplacer le coefficient par le
19
code de la référence correspondante.

Exemple2: Reprendre le même exemple que celui traité pour le


codage de Shannon
Symboles probabilité Code de Code de
ordonnés Shannon-fano Huffman
s2 0.28 11 10
s3 0.22 10 01
s0 0.17 011 111
s1 0.10 010 001
s7 0.07 0011 1101
s6 0.06 0010 1100
s4 0.05 0001 0001
s5 0.05 0000 0000

La longueur moyenne de code est: 2,73 bits


Le gain ≥ au codage de Shannon
20

10
03/12/2016

Remarques:
Si une source a de nombreux symboles, relativement
uniformément distribués, le codage de Huffman est meilleur
que celui de Shannon en terme d’efficacité de compression.
La méthode de Huffman n’est pas adaptée à des changements
de statistiques de sources lors du codage du message.
En pratique, le codage de Huffman est développé sur une
base de signaux (images), puis appliqué à toute une série de
signaux différents.
 Il constitue l’une des méthodes de codage les plus
importantes des techniques de compression.

21

Code de Huffman
16/25 8/25 1/25

0 1
0
9/25
1
Alphabet Codage Fréquence Codage 25/25
de base compacté
00 16/25 0
01 8/25 10 Codage Huffman(34bits)
00000
10 1/25 11 01010100
01011100
Codage de base (50bits)
01010100
0000000000
00000
0001010100
0001100100
0001010100
22 0000000000

11
03/12/2016

c) Codage Arithmétique,
Il consiste à coder une chaîne de symboles par un nombre appartenant
à l’intervalle [0,1[. La procédure:
 Calculer la probabilité associée à chaque symbole.
 Associer à chaque symbole un sous-intervalle de [0,1[
proportionnel à sa probabilité (l’ordre de rangement des
intervalles sera mémorisé car il est nécessaire au décodeur).
Tant qu’il reste un symbole dans la chaîne à coder :
(a) largeur=limite supérieure – limite inférieure
(b) lim. Inf.=lim. Inf.+largeur×(lim. Inf. du sous intervalle du
symbole)
(c) lim. Sup.=lim. Inf.+largeur×(lim. Sup. du sous intervalle du
symbole)
La limite inférieure finale code la chaîne de manière unique.
 On rajoute un symbole spécial pour déterminer la fin du
23 message où l’on donne la longueur du flot et le message codé.

Exemple,
Considérons 4 symboles a, b, c et d de probabilités respectives 0.4
0.3, 0.2 et 0.1. Les messages sont codés de manière ordonnée en
probabilités cumulées [0, 0.4 , 0.7 , 0.9, 1[.
Soit le codage du message « bacd »:
 b∈[0.4, 0.7[ et le symbole suivant a∈[0, 0.4[, ce qui réduit
l’intervalle courant à [0.4, 0.4+(0.7-0.4)×0.4[=[0.4, 0.52[.
 Le symbole suivant c∈[0.7, 0.9[, qui à l’échelle de [0.4, 0.52[
devient [(0.4+0.12×0.7), (0.4+0.12×0.9)[ soit [0.484, 0.508[.
Le dernier symbole d, initialement dans [0.9, 1[donne
l’intervalle final [0.5056, 0.508[.
24

12
03/12/2016

Exemple,
Le décodage de la chaîne (codé par 0.5056) se procède de la
manière suivante:
0.5056 est dans l’intervalle [0.4 0.7[, ce qui correspond au
symbole b,
l’intervalle [0.4, 0.7[ divisé selon les probabilités
ordonnées en [0.4, 0.52, 0.61, 0.67, 0.7[. 0.5056 est dans le
premier sous-intervalle, et correspond donc au symbole a,
etc…
Remarques,
En pratique n’importe quelle valeur de l’intervalle final peut
coder la séquence.
Le codage arithmétique permet d’atteindre des taux très
proches de l’entropie théorique.
Il est gourmand en ressources et nécessite de connaitre à
25
priori l’intégralité du signal avant de procéder au codage

d) Codage RLE/RLC (Run Length Encoding/Coding),


La méthode RLE est un algorithme de compression de données:
Le plus ancien,
Utilisé par de nombreux formats d'images (BMP, TIFF, etc.).
Crée pour compresser n'importe quel type de données.
Elle est basée sur la répétition d'éléments consécutifs.
Principe: Consiste à coder un premier élément donnant le nombre
de répétitions d'une valeur puis le compléter par la valeur
à répéter.
Exemples:
 la chaîne "CCCCSSSSS" compressée donne "4C5S". Le
taux de compression est de (9/4).
 la chaîne "INFORMATIQUE", le résultat de la
compression donne "1I1N1F1O1R1M1A1T1I1Q1U1E ". Le
taux valant 12/24 soit 1/2 (<1),
26

13
03/12/2016

Exemple:
Calculer la taille de l’image quantifiée sur 8 bits.
1 1 1 1 15 15 15 15
1 1 1 1 15 15 15 15
1 1 1 1 15 15 15 15
1 1 1 1 15 15 15 15
100 100 100 100 100 100 100 100
100 100 100 100 100 100 100 100
50 50 50 50 50 50 50 50
50 50 50 50 50 50 50 50

Appliquer le codage RLE et calculer la taille de l’image


sans tenir compte de l’en-tête et des séparateurs. Quel est le
taux de compression obtenue ?
27

1. La compression RLE n'a du sens que pour les données


possédant de nombreux éléments consécutifs redondants.
2. Il réalise le codage s’il y a une répétition successive d’éléments
(minimum égal à 4). Dans le cas contraire, il insert les bits
contrôle (00).
3. Cette méthode a toutefois l'avantage d'être peu difficile à mettre
en œuvre.
4. Il existe des variantes dans lesquelles l'image est encodée par
pavés de points, selon des lignes, ou bien même en zigzag.

28

14
03/12/2016

e) Algorithme LZW (Lempel-Ziv-Welch),


LZW est un algorithme de compression de données sans perte. Il s’agit:
 D’une amélioration de l’algorithme LZ78.
 D’un codage utilisé par les programmes des compressions “ZIP“ et dans
le format GIF et dans le format TIFF de façon optionnelle.
 D’une compression sans pertes qui fonctionne bien pour les images
présentant de grandes zones homogènes.
Principe: Découpage de l’ensemble des pixels en mots les plus longs possibles.
Chaque mot, quelque soit sa longueur, se voit attribuer un code de
taille fixe.
Remarques:
 L’algorithme consiste à émettre à la place des séquences répétées des
adresses à partir d’un dictionnaire généré à la volée.
 La taille du dictionnaire n’est pas fixe et les premières adresses du
dictionnaire contiennent les codes ASCII (de 0 à 255). Les séquences ont
29 des adresses supérieures à 255.

Algorithme de codage LZW


Chaine précédente ← chaine vide
Tant que (lecture d’un caractère C)
Si concaténation (mot + c) existe dans le dictionnaire
Mot ← concaténation de mot et de c
Sinon
Ajouter concaténation de mot et de c dans le
dictionnaire
Retourner le code de mot
Mot ← C
Fin

30

15
03/12/2016

Algorithme de décodage LZW :


Mot précédent initialisé a vide
Tant que (lecture d’un code)
Mot courant ← le contenu Stocké à l’@ code.
Retourner mot courant
c←1er caractère de mot courant à la première @ libre
Stocker la concaténation de mot précédent +c
Mot précédent ← mot courant
Fin
La caractéristique de l'algorithme LZW tient dans:
i. L’absence de table d'en-tête, le dictionnaire est construit au fur
et à mesure de la transmission du fichier.
ii. L'algorithme ne fonctionne pas sur un nombre fixe de motifs
mais apprend les motifs du fichier durant la lecture du fichier à
compresser.
iii. Le compactage se fait en une seule lecture, contre 2 pour les
31 algorithmes statistiques.

Exemple
Appliquer l’algorithme LZW sur une chaîne de caractère suivant:
Chaine = “la vie ne vaut rien mais rien ne vaut la vie.”
On suppose qu'on utilise un code ASCII de 256 caractères (8-bits)
comme dictionnaire de base. La longueur de cette chaîne est de 45
caractères.
Elle nécessite donc 45 * 8 = 360 bits d'espace de stockage.
Voir table de codage de cette chaine.
Après la compression, on obtient une séquence 16 adresses
codées sur 9 bits sur la sortie :
la vie n<255><261>vaut r<260>n mais<269><271><262>…
Elle nécessite 9 ×8+ 24×9 = 288 bits d'espace de stockage.
32

16
03/12/2016

 Construction du dictionnaire où chaque séquence sera désignée


par une adresse.
ADRESSE SEQUENCE ADRESSE SEQUENCE
0..255 Codes ASCII 0..255 271 ien
256 la 272 n^
257 a^ 273 ^m
258 ^v 274 ma
259 vi 275 ai
260 ie 276 is
261 e^ 277 s^
262 ^n 278 ^ri
263 ne 279 ien^
264 e^v 280 ^ne
265 va 281 e^va
266 au 282 aut
267 ut 283 t^l
268 t^ 284 la^
269 ^r 285 ^vi
270 ri 286 ie.
33
Codage de chaine par LZW

 Création du fichier compacté


OCT. ADRESSE EMISE ADR. SEQUEN OCT. ADRESSE EMISE ADR. SEQUEN
LU CE LU CE
l 0..255 Codes ascii s 110 (code ascii n) 273 ^m
a 108 (code ascii l) 256 La r 32 (code ascii SPACE) 274 ma
v 97 (code ascii a) 257 a^ i 109 (code ascii m) 275 ai
i 32 (code ascii SPACE) 258 ^v e 97 (code ascii a) 276 is
e 118 (code ascii v) 259 vi n 105 (code ascii i) 277 s^
n 105 (code ascii i) 260 ie n 115 (code ascii s) 278 ^ri
e 101 (code ascii e) 261 e^ e 269 (^r) 279 ien^
v 32 (code ascii SPACE) 262 ^n v 271 (ien) 280 ^ne
a 110 (code ascii n) 263 ne a 262 (^n) 281 e^va
u SP * 264 e^v u 264 (e^v) 282 aut
t 261 (e^) 265 va t 266 (au) 283 t^l
r 118 (code ascii v) 266 au l 268 (t^) 284 la^
i 97 (code ascii a) 267 ut a 256 (la) 285 ^vi
e 117 (code ascii u) 268 t^ v 258 (^v) 286 ie.
n 116 (code ascii t) 269 ^r i 260 (ie)
m 32 (code ascii SPACE) 270 ri e 46 (code ascii .)
a 114 (code ascii r) 271 ien .
i 260 (ie) 272 n^ Décodage de chaine par LZW
* : SP est ici un code pour dire qu’à partir de cet emplacement,
34
les adresses seront codées sur 9 bits et non sur 8 bits.

17
03/12/2016

Exemple2: Une séquence est encodée avec LZW en partant du


dictionnaire initial suivant :
Indice 1 2 3 4 5 6
Entrée a - h i s t
Décoder la séquence suivante :
6-3-4-5-2-3-1-6-2-9-11-16-12-14-4-20-10-8-23-13
 Les performances du codage LZW dépendent du type de données
à comprimer (Voir tableau).
Type de données Facteur moyen de compression
Texte en anglais 1.8
Données en virgule mobile 1
Données de système 2.6
Programmes en code source 2.3
35
Code objet 1.5

Quelques applications:
Plusieurs formats d’image de documents supportent un type de
compression de données appelée codage CCITT.
 Le codage RLE est utilisé pour la construction des méthodes de
compression des images qui conduisent aux principaux formats
de fichiers d’images comme par exemple: TIFF, BMP, PCX ou
de documents comme par exemple le PDF.
 LZW, LZ77 et LZ78 sont les références en matière de
compression à usage général, comme par exemple dans la
méthode de compression d’images JPEG.
 Le codage LZW est utilisé aussi pour la réalisation des formats
GIF, TIFF ou PDF.

36

18
03/12/2016

VIII. Codage par transformée


 Principe:
 Subdiviser la source en blocs de taille réduite (la quantité de
calcul pour effectuer la transformation est faible).
 Chaque bloc subit une transformation mathématique
orthogonale inversible linéaire du domaine spatial vers le
domaine fréquentiel.
Séparation les coefficients entre importants et pas importants
(concentration de l’énergie)
Déterminer les coefficients importants pour notre perception
 Les coefficients obtenus sont alors quantifiés et codés.

37

 Paradigme du codage par transformée


Espace plus “facile” à quantifier (peu de coefficients
“importants”, beaucoup de coefficients “insignifiants”)
Message Quantific Message
original Transformée Codage
compressé
ation
Encodeur
Décodeur
Message Transformée Message
Décodage compressé
reconstruit Inverse
 Parmi les transformations linéaires existantes :
 Transformation de Karhunen-Loeve (TKL)
 Transformation de Fourrier discrète (TFD)
 Transformation de Hadamard (TH)
 Transformation par ondelettes (de Haar (THA))
 Transformation en cosinus discrète (TCD)
38

19
03/12/2016

VII. Images et quantité d’information,


Considérons des images composés de N sites s∈S={s1, s2, … , sN} et
telles que leur niveaux de gris xs∈G={g1, g2, … , gn}. Au pixel s d’une
image à niveaux de gris x on associe une variable aléatoire xs à
valeurs dans G dont la densité de probabilité Hx est l’histogramme
normalisé de l’image: 1
∀ g ∈ G , P( xs = g ) = p x ( g ) = H x ( g ) = ∑ δ ( xs − g )
N s∈S
Suivant la théorie de l’information, en considérant l’image comme
une source, la quantité d’information associée à un pixel xs est:
1
QI ( xs ) = log = − log H x ( xs )
p x ( xs )
En supposant l’image formée de pixels indépendants, on définit
l’entropie de l’image par l’espérance mathématique de l’information:
1
E( xs ) = ∑ p x ( g ).QI ( g ) = .∑ QI ( xs )
1 g∈G N s∈S
E( x s ) = − .∑ log H x ( xs ) = − ∑ H x ( g ).log H x ( g )
N s∈S g∈G

39
 L’entropie d’une image est l’entropie de sa distribution
de niveaux de gris (de son histogramme)

20

Vous aimerez peut-être aussi