Vous êtes sur la page 1sur 76

Plan

Introduction

Introduction aux méthodes de compression

Compression d’images fixes

Compression vidéo

Compression des signaux audio

© FEZZA S. v21‐22
Réseau multimédia
Communication Multimédia
Objectifs

• Expliquer les principaux traitements à appliquer au signal, en vue


de le comprimer

• De connaitre les différentes familles de compression

• De savoir estimer les performances des méthodes de compression


d’images/vidéo

© FEZZA S. v21‐22
Communication Multimédia 2
Pourquoi compresser ?
• Exemple 1: Libraire de photos numériques
 Images à 10 Mégapixel
 Trois composantes couleur
 Un octet par composant
 Occupation mémoire : 30 Mo par photo
 Publication sur le Web ?

• Exemple 2: Télévision
 Système analogique  bande de fréquence : 6 MHz
 Système numérique
1 composante de luminance 576 × 720
2 composantes de chrominance 288 × 360
quantification sur 8 bits
25 images par seconde

© FEZZA S. v21‐22
R  125 Mbps  bande de fréquence ?
 2 heures de film > 100 Go

Communication Multimédia 3
Pourquoi compresser ?
• Exemple 3: Soit une vidéo au format HD 1080p = 1920 × 1080 à 50 Hz (images/sec)

Y luminance Cb Chrominance Cr Chrominance


Nbre pixels 1920x1080= 2.1 M 960x540= .5 M 960x540= .5 M
Nbre bits par pixel 8 bit 8 bit 8 bit
Débit 1.2 Gbps

Quelques débits / capacité de stockage (qui évoluent au cours du temps)


 DVD 4.7Go (1 face) à 17Go (2 faces) 3 à 14 s
 TNT 20 Mbps
 Ethernet/Fast Ethernet < 10 / 100 / 1000 Mbps
 DSL voie descendante 384 … 2048 kbps
 Tél portable (débit pratique 2G /3G /4G) 9.05 / 384 kbps / 40 Mbps

© FEZZA S. v21‐22
 Il faut trouver un moyen de réduire la tailles des données.

Communication Multimédia 4
enCOdeur/DÉCodeur (CODEC)
• L’objectif de la compression est de réduire la quantité de mémoire nécessaire
pour le stockage d’une image/vidéo ou de manière équivalente de réduire le
temps de transmission de celle‐ci. i.e. stoker ou transmettre la même
information avec moins de bits.

Compression Décompression

Vidéo Transmission
Encodeur Décodeur
Source Stockage

Affichage

© FEZZA S. v21‐22
Communication Multimédia 5
Fondements de la compression
Pourquoi est‐il possible de compresser ?

• Redondance statistique des données


• homogénéité des images
• similitude entre images successives (vidéo)
• Redondance psychovisuelle
• sensibilité aux basses fréquences
• effets de masquage
• autres limites du système visuel humain
• Un algorithme de compression (ou codage) doit exploiter au maximum
la redondance des données

© FEZZA S. v21‐22
6
Redondance spatiale

compresser les images indépendamment


les unes des autres.

© FEZZA S. v21‐22
Communication Multimédia 7
Fondements de la compression
Pourquoi est‐il possible de compresser ?

• Redondance statistique des données


• homogénéité des images
• similitude entre images successives (vidéo)
• Redondance psychovisuelle
• sensibilité aux basses fréquences
• effets de masquage
• autres limites du système visuel humain
• Un algorithme de compression (ou codage) doit exploiter au maximum
la redondance des données

© FEZZA S. v21‐22
Communication Multimédia 8
Redondance temporelle

analyser les images qui se


suivent : elles sont souvent
très identiques.

© FEZZA S. v21‐22
Communication Multimédia 9
Redondance temporelle
Trame N Trame N+1 Trame N+2

Différence entre Différence entre


trames N et N+1 trames N+1 et N+2

© FEZZA S. v21‐22
Communication Multimédia 10
Redondance temporelle

© FEZZA S. v21‐22
Communication Multimédia 11
Fondements de la compression
Pourquoi est‐il possible de compresser ?

• Redondance statistique des données


• homogénéité des images
• similitude entre images successives (vidéo)
• Redondance psychovisuelle
• sensibilité aux basses fréquences
• effets de masquage
• autres limites du système visuel humain
• Un algorithme de compression (ou codage) doit exploiter au maximum
la redondance des données

© FEZZA S. v21‐22
Communication Multimédia 12
Algorithmes de compression: types d’algorithme
Deux façons de compresser:
• conserver l’image intacte  compression sans perte
• autoriser une dégradation de l’image pour diminuer encore la quantité
d’information  compression avec perte

• Algorithmes sans perte (réversible, lossless)


 Reconstruction parfaite
 Basés sur la redondance statistique
 Faible rapport de compression
• Algorithmes avec perte (irréversible, lossy)
 Image reconstruite ≠ image originale
 Basés sur la quantification
 Redondance psychovisuelle : “visually lossless”
 Rapport de compression élevé

© FEZZA S. v21‐22
Communication Multimédia 13
Algorithmes de compression: types d’algorithme
Deux façons de compresser: Png, TIFF, GIF
• Algorithmes sans perte (réversible, lossless) codes à longueur variable : VLC préfixé,
 Reconstruction parfaite Shannon‐Fano, Huffman
 Basés sur la redondance statistique codage arithmétique
 Faible rapport de compression JPEG‐LS
• Algorithmes avec perte (irréversible, lossy) à base de dictionnaire : LZW
décorrélation : RLE
 Image reconstruite ≠ image originale
codage prédictif sans perte
 Basés sur la quantification
 Redondance psychovisuelle : “visually lossless”
 Rapport de compression élevé

Image reconstruite
Image Originale (décompresser)
Compression Décompression
Transmission
Encodeur Décodeur
Stockage

© FEZZA S. v21‐22
=
Communication Multimédia 14
Algorithmes de compression: types d’algorithme
Deux façons de compresser:
• Algorithmes sans perte (réversible, lossless)
 Reconstruction parfaite
 Basés sur la redondance statistique
 Faible rapport de compression
• Algorithmes avec perte (irréversible, lossy)
 Image reconstruite ≠ image originale
 Basés sur la quantification
 Redondance psychovisuelle : “visually lossless”
 Rapport de compression élevé

Image reconstruite
Image Originale (décompresser)
Compression Décompression
Transmission
Encodeur Décodeur
Stockage

© FEZZA S. v21‐22

Communication Multimédia 15
Algorithmes de compression: types d’algorithme
moyenne de blocs
Deux façons de compresser: transformation linéaire optimale
• Algorithmes sans perte (réversible, lossless) ou de Karhunen‐Loeve (KLT)
 Reconstruction parfaite par transformée en cosinus
 Basés sur la redondance statistique discrète (DCT) : JPEG
 Faible rapport de compression transformée en ondelettes
• Algorithmes avec perte (irréversible, lossy) discrète (DWT) : JPEG 2000
quantification (scalaire ou
 Image reconstruite ≠ image originale
vectorielle)
 Basés sur la quantification
détection de motifs images
 Redondance psychovisuelle : “visually lossless” redondants (fractale)
 Rapport de compression élevé

Image reconstruite
Image Originale (décompresser)
Compression Décompression
Transmission
Encodeur Décodeur
Stockage

© FEZZA S. v21‐22

Communication Multimédia 16
Courbe débit-distorsion R(D)
• Rappel : distorsion, pertes, dégradation = distance entre l’image originale et celle encodée

© FEZZA S. v21‐22
Communication Multimédia 17
Compression sans perte
• Notions de théorie de l’information
• On considère une source discrète S (image) {Xm}.
• Variable aléatoire discrète X prenant ses valeurs dans l'ensemble {a1, a2, ...,am} (ex.: modèle des
pixels).
• Le codage entropique convertit une variable aléatoire X d'une source S en une suite binaire Y (bpp).
• Un code associe à un symbole de source aj un mot de code C(aj).
• Ce mot de code est de longueur variable l(aj), la longueur étant son nombre de bits. Ces codes sont
appelés codes à longueur variable.
• Exploitation des redondances dans la distribution statistique de X pour réduire autant que possible
la taille de Y.
• Ne peut être comprimée sans perte d'information à un débit inférieur à la valeur de l'entropie.

© FEZZA S. v21‐22
m
H (X)   pai log 2 ( pai )
i 1

Communication Multimédia 18
Codage entropique
• L’entropie est une grandeur qui caractérise la quantité d’information que contient une image.
Elle semble expliciter en quelle mesure les symboles d’une image sont indépendants les uns
des autres, c’est‐à‐dire le degré de corrélation des pixels de l’image sous sa forme brute.

• Par exemple une image dont tous les pixels ont la même valeur contient très peu
d’information car elle est extrêmement redondante, son entropie est faible. En revanche, une
image dont tous les pixels ont une valeur aléatoire contient beaucoup d’informations, son
entropie est forte.

• En pratique, l’entropie d’une image numérique est inversement liée à la probabilité


d’apparition des niveaux de gris dans l’image. Plus un niveau de gris a est rare, plus sa
probabilité d’apparition p(k) est faible, et cela contribue à une entropie globale plus grande.

• Codage entropique
• Codage de Shannon‐Fano
• Codage de Huffman
• Codage Arithmétique

© FEZZA S. v21‐22
Communication Multimédia 19
Codage de Shannon-Fano
1. Trier la liste des symboles en fonction de leurs probabilités (ordre décroissant);
2. Diviser récursivement la liste en deux parties équiprobables: total des compteurs
d’occurrence de la moitié supérieure devant être aussi proche que possible du total
de la moitié inférieure;
3. Une partie est mise à 0 et l'autre à 1.

Exemple: A={a1, a2, ...,am} la probabilité de chaque symbole est donnée ci‐dessous

© FEZZA S. v21‐22
Communication Multimédia 20
Codage de Shannon-Fano
1. Trier la liste des symboles en fonction de leurs probabilités (ordre décroissant);
2. Diviser récursivement la liste en deux parties équiprobables: total des compteurs
d’occurrence de la moitié supérieure devant être aussi proche que possible du total de la
moitié inférieure;
3. Une partie est mise à 0 et l'autre à 1.

Exemple: A={a1, a2, ...,am} la probabilité de chaque symbole est donnée ci‐dessous

© FEZZA S. v21‐22
Communication Multimédia 21
Codage de Shannon-Fano
1. Trier la liste des symboles en fonction de leurs probabilités (ordre décroissant);
2. Diviser récursivement la liste en deux parties équiprobables: total des compteurs
d’occurrence de la moitié supérieure devant être aussi proche que possible du total de la
moitié inférieure;
3. Une partie est mise à 0 et l'autre à 1.

Exemple: A={a1, a2, ...,am} la probabilité de chaque symbole est donnée ci‐dessous

© FEZZA S. v21‐22
Communication Multimédia 22
Codage de Shannon-Fano
1. Trier la liste des symboles en fonction de leurs probabilités (ordre décroissant);
2. Diviser récursivement la liste en deux parties équiprobables: total des compteurs
d’occurrence de la moitié supérieure devant être aussi proche que possible du total de la
moitié inférieure;
3. Une partie est mise à 0 et l'autre à 1.

Exemple: A={a1, a2, ...,am} la probabilité de chaque symbole est donnée ci‐dessous

© FEZZA S. v21‐22
Communication Multimédia 23
Codage de Shannon-Fano
1. Trier la liste des symboles en fonction de leurs probabilités (ordre décroissant);
2. Diviser récursivement la liste en deux parties équiprobables: total des compteurs
d’occurrence de la moitié supérieure devant être aussi proche que possible du total de la
moitié inférieure;
3. Une partie est mise à 0 et l'autre à 1.

Exemple: A={a1, a2, ...,am} la probabilité de chaque symbole est donnée ci‐dessous

© FEZZA S. v21‐22
Communication Multimédia 24
Codage de Shannon-Fano
1. Trier la liste des symboles en fonction de leurs probabilités (ordre décroissant);
2. Diviser récursivement la liste en deux parties équiprobables: total des compteurs
d’occurrence de la moitié supérieure devant être aussi proche que possible du total de la
moitié inférieure;
3. Une partie est mise à 0 et l'autre à 1.

Exemple: A={a1, a2, ...,am} la probabilité de chaque symbole est donnée ci‐dessous

© FEZZA S. v21‐22
Communication Multimédia 25
Codage de Huffman

• Principe
• Coder les valeurs avec un nombre de bits différent. Remplacer les valeurs les plus
fréquentes par des codes courts et les moins fréquentes par des codes longs.
Code à longueur variable (Variable Length Coding, VLC)
• Utilise la notion de code préfixe.

• Code préfixe
• Un code préfixe est un ensemble de mots tel qu'aucun mot de l'ensemble n'est
préfixe d'un autre mot de l'ensemble
• Le décodage est alors immédiat
• Un code préfixe sur l'alphabet binaire {0,1} peut être représenté par un arbre
binaire où tous les nœuds internes ont exactement deux successeurs

© FEZZA S. v21‐22
Communication Multimédia 26
Codage de Huffman
• Encodage
• Phase 1 : Construction de l'arbre.
1. Trier les différentes valeurs par ordre décroissant de fréquence d'apparition
=> table de poids.
2. Fusionner les deux poids minimaux dans un arbre binaire et affecter leur
somme à la racine.
3. Réordonner la table de poids par poids décroissants.
4. Recommencer en 2. jusqu'à obtenir un seul arbre.

• Phase 2 : Construction du code à partir de l'arbre obtenu dans la phase 1.


 À partir de la racine, attribuer des 0 aux sous‐arbres de gauche et des 1 à
droite.

© FEZZA S. v21‐22
Communication Multimédia 27
Codage de Huffman
• Encodage
• Phase 1 : Construction de l'arbre.
1. Trier les différentes valeurs par ordre décroissant de fréquence d'apparition
=> table de poids.
2. Fusionner les deux poids minimaux dans un arbre binaire et affecter leur
somme à la racine.
3. Réordonner la table de poids par poids décroissants.
4. Recommencer en 2. jusqu'à obtenir un seul arbre.

• Phase 2 : Construction du code à partir de l'arbre obtenu dans la phase 1.


 À partir de la racine, attribuer des 0 aux sous‐arbres de gauche et des 1 à
droite.

© FEZZA S. v21‐22
Communication Multimédia 28
Codage de Huffman
• Encodage
• Phase 1 : Construction de l'arbre.
1. Trier les différentes valeurs par ordre décroissant de fréquence d'apparition
=> table de poids.
2. Fusionner les deux poids minimaux dans un arbre binaire et affecter leur
somme à la racine.
3. Réordonner la table de poids par poids décroissants.
4. Recommencer en 2. jusqu'à obtenir un seul arbre.

• Phase 2 : Construction du code à partir de l'arbre obtenu dans la phase 1.


 À partir de la racine, attribuer des 0 aux sous‐arbres de gauche et des 1 à
droite.

© FEZZA S. v21‐22
Communication Multimédia 29
Codage de Huffman
• Encodage
• Phase 1 : Construction de l'arbre.
1. Trier les différentes valeurs par ordre décroissant de fréquence d'apparition
=> table de poids.
2. Fusionner les deux poids minimaux dans un arbre binaire et affecter leur
somme à la racine.
3. Réordonner la table de poids par poids décroissants.
4. Recommencer en 2. jusqu'à obtenir un seul arbre.

• Phase 2 : Construction du code à partir de l'arbre obtenu dans la phase 1.


 À partir de la racine, attribuer des 0 aux sous‐arbres de gauche et des 1 à
droite.

© FEZZA S. v21‐22
Communication Multimédia 30
Codage de Huffman
• Encodage
• Phase 1 : Construction de l'arbre.
1. Trier les différentes valeurs par ordre décroissant de fréquence d'apparition
=> table de poids.
2. Fusionner les deux poids minimaux dans un arbre binaire et affecter leur
somme à la racine.
3. Réordonner la table de poids par poids décroissants.
4. Recommencer en 2. jusqu'à obtenir un seul arbre.

• Phase 2 : Construction du code à partir de l'arbre obtenu dans la phase 1.


 À partir de la racine, attribuer des 0 aux sous‐arbres de gauche et des 1 à
droite.

© FEZZA S. v21‐22
Communication Multimédia 31
Codage de Huffman
• Encodage
• Phase 1 : Construction de l'arbre.
1. Trier les différentes valeurs par ordre décroissant de fréquence d'apparition
=> table de poids.
2. Fusionner les deux poids minimaux dans un arbre binaire et affecter leur
somme à la racine.
3. Réordonner la table de poids par poids décroissants.
4. Recommencer en 2. jusqu'à obtenir un seul arbre.

• Phase 2 : Construction du code à partir de l'arbre obtenu dans la phase 1.


 À partir de la racine, attribuer des 0 aux sous‐arbres de gauche et des 1 à
droite.

© FEZZA S. v21‐22
Communication Multimédia 32
Codage de Huffman
• Encodage
• Phase 1 : Construction de l'arbre.
1. Trier les différentes valeurs par ordre décroissant de fréquence d'apparition
=> table de poids.
2. Fusionner les deux poids minimaux dans un arbre binaire et affecter leur
somme à la racine.
3. Réordonner la table de poids par poids décroissants.
4. Recommencer en 2. jusqu'à obtenir un seul arbre.

• Phase 2 : Construction du code à partir de l'arbre obtenu dans la phase 1.


 À partir de la racine, attribuer des 0 aux sous‐arbres de gauche et des 1 à
droite.

Construction du code
Affectation de valeurs binaires aux arcs
Image codée (en lignes)

© FEZZA S. v21‐22
10101010110010000 ...
soit 55 bits vs. 25x8=200 bits

Communication Multimédia 33
Codage Arithmétique
• Le codage arithmétique est aussi (comme huffman) un codage statistique.

• L’avantage que possède le codage arithmétique sur le codage de Huffman est que ce dernier va coder
un caractère sur un nombre entier de bits (il ne peut coder sur 1.5 bits) là où le codage arithmétique
le peut. Par exemple, si un caractère est représenté à 90%, la taille optimale du code du caractère
serait de 0.15 bit, alors que Huffman coderait sûrement ce symbole sur 1 bit, soit 6 fois trop.

• Utilisé dans le standard Jpeg 2000.

• Codons le mot ESIPE à l’aide du codage arithmétique.


P(E)=0.4 ,P(S)=0.2, P(I)=0.2, P(P)=0.2

nous affectons à chaque lettre un intervalle entre 0 et 1 de la manière suivante

Lettre Probabilité Intervalle


E 0.4 [0,0.4[

© FEZZA S. v21‐22
S 0.2 [0.4,0.6[
I 0.2 [0.6,0.8[
P 0.2 [0.8,1.0[
Communication Multimédia 34
Codage Arithmétique
• Le codage va maintenant consister à remplacer le mot ESIPE par un nombre flottant lui
correspondant. Pour cela, le mot va se voir affecter un intervalle compris entre 0 et 1 où chaque
nombre compris entre les deux intervalles permettra de retrouver le mot ESIPE.

• L’algorithme appliqué est le suivant : le mot commence avec un intervalle de [0,1[. Puis pour chaque
lettre croisée, nous appliquons la formule suivante :
• La borne inférieure (BI) du mot est modifiée avec le résultat du calcul
"BI + (BS – BI) * Borne_Inférieure_Lettre"
• La borne supérieure (BS) du mot est modifiée avec le résultat du calcul
"BI + (BS – BI) * Borne_Supérieure_Lettre"
• Le tableau suivant montre les étapes du calcul:
Lettre Borne Inférieure Borne Supérieure
Lettre Probabilité Intervalle
0.0 1.0
E 0.4 [0,0.4[ E 0.0 0.4
S 0.2 [0.4,0.6[ S 0.16 0.24
I 0.2 [0.6,0.8[ I 0.208 0.224

© FEZZA S. v21‐22
P 0.2 [0.8,1.0[ P 0.2208 0.224
E 0.2208 0.22208
• Dès lors, tous nombre flottant entre 0.2208 et 0.22208 est le format compressé du mot "ESIPE"
Communication Multimédia 35
Codage Arithmétique
• Prenons le nombre 0.2208 qui code le mot "ESIPE". Le principe de la décompression suit les
deux étapes suivantes qui se répète jusqu’à l’obtention du mot :

1. La prochaine lettre du mot est celle dont l’intervalle contient le nombre du mot actuel
(Ex : 0.2208 est dans l’intervalle de E donc la première lettre est E).
2. On modifie le nombre représentant le mot à l’aide du calcul
« (nombre du mot – borne inférieure de la lettre) / probabilité de la lettre
(Ex : nombre du mot = (0.2208 – 0.0) / 0.4 = 0.552)

• Le tableau suivant montre les différentes étapes de la décompression :

Mot Lettre Nouveau code


Lettre Probabilité Intervalle
E 0.2208
E 0.4 [0,0.4[
E S 0.552
S 0.2 [0.4,0.6[
ES I 0,76
I 0.2 [0.6,0.8[
ESI P 0,8

© FEZZA S. v21‐22
P 0.2 [0.8,1.0[
ESIP E 0,0

Communication Multimédia 36
Codage RLE
• Run‐Length Encoding, Codage par plages.
• Utilisée ponctuellement dans de nombreux formats d'images (BMP, TIFF, PCX).
• Appliquer à des documents scannés en monochrome (noir et blanc). Ex.: fax
• Basée sur la répétition d'éléments consécutifs (niveaux identiques): au lieu de coder
un pixel par un bit, on dispose d'un compteur (un octet) indiquant combien de points
blancs ou noirs se suivent.

• Avantage
• Algorithmes de compression et décompression très simples et rapides.
• Limites
• Nécessite de fixer un maximum pour la longueur des plages (ex. 255).
• Efficace seulement pour de nombreuses et longues plages constantes.

© FEZZA S. v21‐22
• Cas des images de synthèse simples; peu adapté aux photos. S'il y a beaucoup de
changement dans une image, le fichier compressé se montrera plus gros que le
fichier d'origine. Pour pallier à ce problème, l'algorithme RLC a été inventé.
Communication Multimédia 37
Codage RLC
• Run‐Length Coding
• Le RLC est considérée comme l'un des plus simple algorithme de compression. Son
principe consiste à compter le nombre de caractères identiques successifs et à indiquer
le nombre de répétitions ainsi qu'un caractère spécial informant de la présence d'une
répétition.

• Cette méthode n'a d'intérêt que pour les fichiers contenant souvent des répétitions de
plus de trois caractères. Sinon elle peut même augmenter la taille du fichier source.

• Exemples:

AEERRR
A#2E#3R

AAABBREEEGGG = 12 octets
#3A#2BR#3E#3G = 13 octets => inutile

© FEZZA S. v21‐22
0000001111100000 = 16 octets
#60#51#50 = 9 octets

Communication Multimédia 38
Lempel-Ziv-Welch (LZW)
• Amélioration de l'algorithme LZ78.

• Un codage par dictionnaire (ou codage de facteurs) est un codage basé sur un
dictionnaire ou une liste de mot. L’objectif va être de remplacer un mot par sa
position (indice) dans le dictionnaire.

• Le codage LZW est utilisé dans les format GIF, TIFF et MOD.

• Deux règles concernant le dictionnaire.


• Il est créé et maintenu de façon à ce que pour un mot donné du
dictionnaire, tous ses préfixes soient aussi présents.
• A l'initialisation, le dictionnaire contient tous les caractères (256 entrées
dans le cas de caractères codés sur 8 bits).

© FEZZA S. v21‐22
Communication Multimédia 39
Lempel-Ziv-Welch (LZW)
• Codons le mot "barbapapa" à l’aide du LZW.
• Le principe de la compression est le suivant :
• On lit une lettre du mot à coder qu’on ajoute au mot surveillé actuel (à l’origine : le mot vide):
• Si le mot est présent dans le dictionnaire, on recommence l’opération en lisant la lettre suivante
• Si le mot n’est pas présent dans le dictionnaire, on l’ajoute au dictionnaire et on code le mot privé de la
dernière lettre lue avec sa position dans le dictionnaire. On recommence la lecture avec cette dernière lettre
lue (et donc la première lettre non codée)

• Le tableau suivant montre les étapes du calcul: le mot "barbapapa" est codé par "98 97 114 257 112 97 261"

Mot lu Code écrit Mot ajouté au dictionnaire (+ emplacement)

b
ba 98 ba, 257
a
ar 97 ar, 258
r
rb 114 rb, 259
b
ba
bap 257 bap, 260

© FEZZA S. v21‐22
p
pa 112 pa, 261
a
ap 97 ap, 262
p
pa 261 Communication Multimédia
Lempel-Ziv-Welch (LZW)
• La décompression
• Prenons le code "98 97 114 257 112 97 261" qui représente le mot "barbapapa". Le principe de la décompression
suit l'enchainement inverse.

• Le principe du décodage est le suivant:


• On lit le prochain code du fichier compressé: celui‐ci correspond obligatoirement à un mot du dictionnaire
qu'on insère donc dans le mot décodé.
• Sauf s'il s'agit du premier code, il faut ajouter au dictionnaire le mot correspondant au mot précédent auquel
à été ajouté la première lettre du mot actuel.

• Le tableau suivant montre les différentes étapes de la décompression :


Mot ajouté au dictionnaire
Code lu Mot lu Mot décodé
(+ emplacement)
98 b b
97 a ba ba, 257
114 r bar ar, 258
257 ba barba rba, 259
112 p barbap bap, 260

© FEZZA S. v21‐22
97 a barbapa pa, 261
261 pa barbapapa apa, 262

Communication Multimédia 41
Codage prédictif
• Differential Pulse Code Modulation (DPCM) ‐‐‐ Codage différentiel et prédictif
• Les images, naturelles ou de synthèse, présentent de larges zones dont les couleurs sont très proches (ciel, mer,
constructions, etc.).
• Par exemple, un pixel (j, i) dont la valeur Rouge est 200, et un pixel (j, i+2) dont la valeur Rouge est aussi 200, on
peut supposer que le pixel (j, i+1) a lui aussi une valeur Rouge égale à 200 ou du moins proche. Le but est alors de
stocker la différence entre la couleur du pixel et sa prédiction, qui sera généralement faible. Cette différence est
donc une valeur non plus absolue, mais relative.
• Prédiction : considérons une matrice de pixels :
(1) (2) ... ... ... ... … (8)
(9) … A B C … … ...
… … D X

• Nous codons de haut en bas et de gauche à droite. Nous avons donc les valeurs réelles de A, B, C et D. Plusieurs
choix s’offrent alors à nous pour réaliser la prédiction de la valeur de X, en prenant en compte un nombre plus ou
moins grand de pixels environnants et en leur donnant plus ou moins de poids selon leur proximité. Le principe
général est donc de réaliser une moyenne pondérée. Par exemple :

P(X)=(A + B + C + D) / 4 on prend cette règle


P(X)= (2B + 2D + A + C) / 6
P(X)= (B + D) / 2

© FEZZA S. v21‐22
Résiduel R(X) = X − P(X) est encodé et transmis.
Le décodeur décode R(X) et forme la même prédiction :
P(X) = (A + B + C + D)/4
Pixel reconstruit X = R(X) + P(X)
Communication Multimédia 42
Codage prédictif
• Prédiction µp[n] est calculée pour x[n] à partir des échantillons précédents XN+n
• e[n] est une erreur de prédiction, le récepteur peut reconstruire x[n] sans perte
pour les signaux discrets d'amplitude x, e, µp  Z

© FEZZA S. v21‐22
Communication Multimédia 43
Codage prédictif
• Prédiction µp[n] est calculée pour x[n] à partir des échantillons précédents XN+n
• e[n] est une erreur de prédiction, le récepteur peut reconstruire x[n] sans perte
pour les signaux discrets d'amplitude x, e, µp  Z

Entiers!!

© FEZZA S. v21‐22
Communication Multimédia 44
Exemple de Prédiction 1

© FEZZA S. v21‐22
Communication Multimédia 45
Exemple de Prédiction 2

© FEZZA S. v21‐22
Communication Multimédia 46
Exemple de Prédiction 2

© FEZZA S. v21‐22
Communication Multimédia 47
LossLess JPEG
• Compression sans perte (réversible).
• La prédiction d'un pixel est effectuée à partir des pixels voisins de la même composante de couleur.

Le processus traite
indépendamment chaque
composante de l’image.

Tableau de

© FEZZA S. v21‐22
spécification

Schéma algorithmique du mode LossLess du format jpeg

Communication Multimédia 48
LossLess JPEG
• La prédiction d'un pixel d'entrée p est effectuée à partir des trois pixels voisins. Ses voisins sont ceux déjà codés.
Ainsi, les valeurs utilisées pour la prédiction sont les valeurs reconstruites â, 𝑏 et ĉ.
• De cette manière, le codeur et le décodeur ont une prédiction similaire.
• Il existe huit choix de prédiction: le choix 0 signifie qu’aucune prédiction n’est faite. Il est utilisé par le mode
hiérarchique du format JPEG. Les choix 1, 2 et 3 sont monodimensionnels, tandis que les choix 4, 5, 6 et 7 sont
bidimensionnels.
• La différence avec sa prédiction 𝑃 est codée : E= P‐ 𝑃. (l’erreur de prédiction)
• Le codage est entropique de type Huffman ou arithmétique. Dans le cas d’un codage arithmétique, la version QM
est utilisée. Les spécifications du tableau d'entropie déterminent les caractéristiques de la méthode choisie pour
le codage entropique.

© FEZZA S. v21‐22
Communication Multimédia 49
LossLess JPEG
• Les taux de compression généralement atteint ne sont pas très élevés.

• Une solution, pour augmenter ces taux de compression, est de prendre en compte un
voisinage plus large :
• si un pixel est situé au sein d’une région homogène, un codeur par plage sera alors
optimal. Dans les autres cas, le voisinage permettra de définir un contexte de
codification. L’algorithme de codage pourra alors opérer une adaptation de ses
paramètres en fonction du contexte.

• C’est ce qui est proposé dans le standard JPEG‐LS.

© FEZZA S. v21‐22
Communication Multimédia 50
Critères de performance (débit)

• Rapport (taux) de compression


B R
T = in = in
Bout Rout

Une compression d’une image de 10 Mo à 2 Mo a un taux de compression


de 10/2 = 5, souvent noté comme un ratio explicite, 5:1 (lu «cinq» à «un»).

• Débit de codage, bitrate


B
Image : R = out [bpp]
NM
B
Video, son : R = out [bps]
T

• Codage d’image sans perte : T ≤ 3


• Codage d’image avec perte : T ≈ 5
• Codage vidéo avec perte : T ≈ 20

© FEZZA S. v21‐22
Communication Multimédia 51
Compression avec perte

• Méthodes sans perte ne produisent pas de dégradation. Dès que l'on accepte de perdre des
informations jugées superflues, on entre dans le domaine de la compression avec perte. Se pose
alors la question de la limite acceptable à la perte d’informations, de la sélection des critères
opportuns et des paramètres à retenir pour estimer la qualité de restitution.

• La compressions d’images avec perte utilise les limites de l’œil humain pour réduire l’information non
perceptible par l’homme. On parle alors de modèles psycho-visuels puisque ce type de compression
avec perte a pour seule référence la vision humaine.

© FEZZA S. v21‐22
Communication Multimédia 52
Critères de performance (qualité et distorsion)

© FEZZA S. v21‐22
53
Critères de performance (qualité et distorsion)

© FEZZA S. v21‐22
54
Bitrate vs. Qualité
Image Originale, 24 bpp

© FEZZA S. v21‐22
Versions compressées

Communication Multimédia 55
Critères de performance (qualité et distorsion)
• Seul le débit n’est pas suffisant pour évaluer un algorithme avec pertes.
• Il faut déterminer la qualité ou la distorsion de l’image reconstruite.
• Les critères objectifs sont des fonctions mathématiques de
• fn,m : l’image d’origine et fn,m: l’image reconstruite après décompression
• Critères objectifs (non perceptuels)
• Erreur quadratique moyenne (MSE) :

• Rapport signal sur bruit crête :

Image reconstruite
Image Originale (décompresser)
Compression Décompression
Transmission
Encodeur Décodeur
Stockage

Mesurer

© FEZZA S. v21‐22
distorsion, pertes, dégradation

56
Évaluation de la qualité (aspects psychovisuels)
Image Originale, 24 bpp

© FEZZA S. v21‐22
Communication Multimédia 57
Évaluation de la qualité (aspects psychovisuels)

© FEZZA S. v21‐22
Communication Multimédia 58
Évaluation de la qualité (aspects psychovisuels)

© FEZZA S. v21‐22
Communication Multimédia 59
Évaluation de la qualité (aspects psychovisuels)

© FEZZA S. v21‐22
Communication Multimédia 60
Évaluation de la qualité (aspects psychovisuels)

(a) Introduction d’une région de (b) introduction d’un bruit gaussien


1700 pixels et d’un bruit gaussien portant sur 2000 pixels.

© FEZZA S. v21‐22
portant sur 300 pixels.

• Illustration du cas limite PSNR/perception pour une même valeur de PSNR=11.06 dB

Communication Multimédia 61
Estimation de la qualité perçue
Transmission
Prétraitement

Acquisition Compression Décodage Affichage

Différents types de distorsions

Estimation de la qualité perçue

Évaluation subjective de la qualité Évaluation objective de la qualité


“If you cannot measure it, you cannot improve it”

© FEZZA S. v21‐22
(William Thomson)

62
Évaluation subjective de la qualité
• L’humain est l’utilisateur final.

• Le meilleur moyen pour évaluer la qualité


d'une image/vidéo.

• Environnement contrôlé, des tests subjectifs


selon des normes.

• Un panel d’observateurs sont invités à juger la


qualité perçue de l’image/vidéo selon une
échelle de notation de la qualité.

• Fournissant un score de qualité, nommé MOS


(Mean Opinion Score).

© FEZZA S. v21‐22
Communication Multimédia 63
Évaluation subjective

© FEZZA S. v21‐22
Communication Multimédia 64
Évaluation subjective de la qualité
• L’humain est l’utilisateur final.

• Le meilleur moyen pour évaluer la qualité


d'une image/vidéo.

• Environnement contrôlé, des tests subjectifs


selon des normes.

• Un panel d’observateurs sont invités à juger la


qualité perçue de l’image/vidéo selon une
échelle de notation de la qualité.

• Fournissant un score de qualité, nommé MOS


(Mean Opinion Score).

© FEZZA S. v21‐22
Communication Multimédia 65
Critères de performance (qualité et distorsion)

© FEZZA S. v21‐22
66
Critères de performance (qualité et distorsion)

© FEZZA S. v21‐22
67
68

© FEZZA S. v21‐22
Évaluation objective de la qualité

avec référence (FR - Full Reference)


Image
Encodeur Transmission Décodeur Image dégradée
originale

Évaluation Score de qualité

avec référence réduite (RR - Reduced Reference)


Image
Encodeur Transmission Décodeur Image dégradée
originale
Extraction de Score de qualité
descripteurs
Évaluation

sans référence (NR - No Reference)

© FEZZA S. v21‐22
Image
Encodeur Transmission Décodeur Image dégradée
originale

Évaluation Score de qualité

Communication Multimédia 69
Métrique perceptuelle
• Exploitant des caractéristiques du SVH (Système Visuel Humain).
• Critères objectifs perceptuels
• On utilise des modèles du SVH pour prendre en compte la sensibilité aux fréquences, les
masquages, ...

© FEZZA S. v21‐22
Métrique perceptuelle

© FEZZA S. v21‐22
• Structural SIMilarity ou SSIM est une mesure de similarité entre deux images numériques.
Communication Multimédia 71
SSIM

© FEZZA S. v21‐22
• SSIM  1 indique la meilleur qualité
• SSIM  0 indique une faible qualité.
SSIM

© FEZZA S. v21‐22
• SSIM  1 indique la meilleur qualité
• SSIM  0 indique une faible qualité.
QoE vs. QoS

© FEZZA S. v21‐22
Communication Multimédia 74
Critères de performance
(complexité, retard et robustesse)

• La complexité d’un algorithme de codage peut être limitée par :


• contraintes liées à l’application (temps réel)
• limités du matériel (hardware)
• coût économique

• Le retard:
• Lié à la complexité
• Influencé par l’ordre de codage

• Robustesse:
• Sensibilité de l’algorithme de compression/reconstruction à des petites
altérations du code comprimé (erreurs de transmission)

© FEZZA S. v21‐22
Communication Multimédia 75
Critères de performance (bilan)
• Besoins contradictoires :

© FEZZA S. v21‐22
Communication Multimédia 76

Vous aimerez peut-être aussi