Académique Documents
Professionnel Documents
Culture Documents
2
Objectifs
Réduire la taille physique des blocs d'informations.
La compression logique
Effectuée par un raisonnement logique en
substituant une information par une information
équivalente. Elle utilise un algorithme qui agit sur les
données, selon le type de données.
TIFF -> scanners
RAW et JPEG -> appareils photos numériques
GIF -> WEB
Redondance ?
Classification selon la redondance
La plupart des méthodes de compression visent à enlever la redondance
présente dans le média de manière à diminuer le nombre de bits
nécessaires à sa représentation.
La redondance spatiale entre pixels ou blocs voisins dans l’image;
La redondance temporelle entre images successives dans une séquence vidéo;
Compression sans perte et avec perte
La compression avec perte (lossy compression), par opposition à la
compression sans perte (lossless compression), se permet d'éliminer
quelques informations pour avoir le meilleur taux de compression possible,
tout en gardant un résultat qui soit le plus proche possible des données
originales.
Avec ou sans perte?
Compression sans perte Compression avec perte
Facilité de reproduire les données Perte de données originales
originales par décompression Taille réduite par l’élimination
d’information,
Gain d’espace sans perte d’information Choix d’un taux de compression plus ou
moins préjudiciable au contenu,
Nécessaire si l’intégralité des données est Compresssion dédiée sans que l’utilisateur
importante : s’en rende compte
Document texte, code, etc.
winzip, gzip, compress, bzip, GIF
Applications :
• Audio : mp3, ogg, wma, etc.
• Images : jpeg, etc.
• Vidéos : MPEG, « divx », etc
Constats
Quand nous manipulons du texte, les caractères que nous utilisons n’ont
pas la même probabilité d’apparition. De plus il a une structure interne
forte (la grammaire). Quand le mot arbre est au pluriel on peut aisément
prédire la lettre qui suit le « e » final.
xi x1 x2 x3 x4 x5 x6 x7 x8
b0b1b2 000 001 010 011 100 101 110 111
Performances
Lmoy = log2(S)
Codage optimal lorsque S est une puissance de 2 (Lmoy = log2(S)) et la
loi de probabilité
11
de X est uniforme (symboles équiprobables)
Codage à longueur fixe (CTF)
Propriété
Les mots de code sont tous de même longueur (ASCII, Unicode …)
Principe
Pour un message M composé d’un alphabet de n caractères distincts, la
taille l (nombre de bit nécessaire) d’un caractère pour un codage binaire
à taille fixe est déterminée par la partie entière supérieure de log2(n):
l log 2 ( n ) log 2 (n) 1
AAAAAAbbbXXXXXt 29 134
7 150
Son codage RLE sera la chaîne de 4 6 134
paquets suivante : 6A3b5X1t 6 150
Exemple 2 3 153
3 192
Soit une partie d’image de 6 x 5 pixels qui 3 153
18
VLC : 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 :
Etape 1: A partir des deux symboles présentant la fréquence la plus faible, un
nœud est créé. Il lui est affecté un poids égal à la somme des fréquences des
deux symboles.
Etape 2 : Le nœud 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).
Etape 3 : 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.
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 les suivantes :
A : 7 fois; B : 6 fois; C : 5 fois; D : 14 fois; E : 4 fois
Principe :
prédire le niveau de gris x̂ du pixel à partir de ses voisins
quantifier l’erreur de prédiction e x xˆ
Intérêt :
La dynamique de l’erreur est plus petite que la dynamique du signal donc
elle peut être quantifiée avec moins de bit que le signal tout en induisant
une même distorsion
Elle peut avoir une DDP plus propice à la quantification (plus plate Q
optimal)
27
Schéma de codage par prédiction linéaire
ŷ n
Suppose que le décodeur connaît la prédiction par codage du x̂ n
signal dans le bitstream
ou est capable de recalculer (sans trop d’erreur) yˆn xˆn
28
Prédiction linéaire
La valeur préditex̂ n dex n est une combinaison linéaire des
voisins.
Prédiction linéaire pour un modèle Auto-Regressif
P
xˆn ai x n i
i 1
Erreur de prédiction
P
en x n xˆn x n ai xn i
i 1
29
Codage à base de dictionnaire LZW
La méthode LZW (Lempel-Ziv-Welch) est utilisée pour la compression des
images aux formats GIF et TIFF, et est à la base de la compression appliquée
aux archive ZIP, RAR et ARJ.
Principe
Etape 1 : Repérer des séquences qui apparaissent plusieurs fois, en
construisant au fur et à mesure un dictionnaire de séquences
Idée de base:
– Remplacer des séries de symboles qui se répètent par des pointeurs vers la première
occurrence de cette série de symboles, plus le premier symbole différent.
31
Codage à base de dictionnaire LZW
0
1 1 (0,1)
2 0 (0,0)
3 11 (1,1)
4 01 (2,1)
5 010 (4,0)
6 0101 (5,1)
32
Compression sans perte
Chaque caractère possède donc son équivalent en code
numérique:
ASCII (American Standard Code for Information Interchange).
0 1 0 0 0 0 0 1
27 26 25 24 23 22 21 20
35
Il y a bien plus de 256 caractères dans le monde (arabe, chinois, etc.)
D’où l’émergence du standard UNICODE
L’unité de base d’encodage reste l’octet (8bits) mais on peut s’en
servir de différentes manières (2, 3 octets ...) :
• UTF-8 : 128 caractères en utilisant 1 octet (ASCII), 1920 caractères sont
encodé en utilisant deux octets (autres langues) etc..
Compression du texte: données informatiques (textes,
programmes informatiques, …)
• Message décodé est égal au message d’origine
Toutes les techniques de codages sans perte peuvent être
appliquées aux textes
• (RLE, LZW, Huffman...).
36
Architecture globale d’un système de compression
38
Architecture d’une chaine de compression/décompression
Schéma d’un codeur source
Une fois les coefficients quantifiés, ils sont codés. Un codeur doit satisfaire
a priori les conditions suivantes:
Unicité: deux messages différents ne doivent pas être codés de la même façon.
Décodage: deux mots de codes successifs doivent être distingués sans ambiguïté.
Aucun mot du code ne doit être un préfixe d’un autre mot du code
Codage avec perte dépend du type du média
Les données dont la qualité se limite aux perceptions humaines (images,
vidéos, sons, …) utilisent la compression avec pertes
Format
2 types de formats pour stocker des sons ou de la musique :
Les formats numériques: WAV, AIFF, MP3, …
Les formats musicaux :MIDI , …
Formats numériques :
Stocker une approximation du son analogique.
Constitués d'une suite d'échantillons.
Formats musicaux :
Stockent essentiellement des informations sur quand et comment
jouer tel ou tel instrument.
MIDI (Musical Instrument Digital Interface)
Destiné aux instruments de musique numériques
Les synthétiseurs, (des instruments de musique électronique) permettant
la création et le traitement de sons
Echange avec un ordinateur
Code:
notes à jouer avec leurs nuances,
à quel instant les jouer,
l'instrument à utiliser.
Avantages
Gain de stockage (2 mn en format MIDI : 80 Ko / Format WAV : 20 Mo
en qualité CD
Inconvénient :
Ne permet pas de jouer les voix humaines.
MIC: Modulation par Impulsion Codée
PCM (Pulse Modulation Code)
Codage de la forme d’onde
En fait pas de compression: Échantillonnage - Quantification
- Codage
Format non compressé
MIC: Modulation par Impulsion Codée
Téléphonie fixe :
La bande passante nécessaire à la parole est
de 300 Hz à 3 400 Hz (Fmax=4000 Hz)
Fréquence échantillonnage= 2 x 4000 Hz = 8 kHz
(Te = 125 ms)
Débit (b/s) = NbCanaux x B(bit) x fe (Hz)
Codage sur 8 bits => Débit 64 kb/s (Europe, reste du
monde)
Codage sur 7 bits => Débit 56 kb/s (USA, Japon)
Quantification non-uniforme
Discrétisation de l’axe vertical
Quantification uniforme :
Le pas de quantification est constant
Erreur de quantification = valeur quantifiée - valeur originale
Quelle que soit la finesse des intervalles, il y a toujours une différence entre la
valeur analogique et la valeur quantifiée
Prise en compte de la perception
Plus grande sensibilité de l’oreille aux erreurs de quantification dans les zones
p(x)
de faible intensité (silence)
Signal de parole : distribution de Laplace
Quantification non-uniforme (norme G.711 par IUT-T)
x
48
MICD (MIC Différentiel)
Differential Pulse Code Modulation (DPCM)
Idée: exploiter la corrélation de la parole
Quantifier la différence entre 2 échantillons successifs
La différence est plus faible que la valeur d’un échantillon
Moins de bits nécessaires pour le codage
+ Décodeur MICD
49 Codeur MICD
Le codage perceptuel pour l’audio
Motivation :
Exploiter les propriétés de l’audition humaine (psycho-acoustique).
Astuces :
Distinction entre ce qui est audible et ce qui ne l’est pas (inaudible).
Compression du son :
Ne coder que l’information indispensable, dans la mesure où l’oreille
est un capteur imparfait.
Outil :
Modélisation du phénomène de masquage
50
Courbe de sensibilité de l’oreille humaine
A une fréquence donnée, notre oreille ne peut percevoir un son qu’à
condition que son niveau de pression acoustique soit supérieur à un
seuil. Le seuil est différent pour chaque fréquence de la bande
audible. 80 Courbe de sensibilité de l’oreille dans un environnement calme
60
Pression
acoustique
(dB) 40
Son audible
20
Son
inaudible
0
f(Hz)
20 51 50 100 20 500 1000 2000 5000 10000 20000
0
Le masquage fréquentiel
Sous l’effet d’une excitation, le seuil d’audibilité minimum est
amplifié au voisinage de la fréquence du son.
Un autre son de fréquence proche, émis en même temps,
peut être inaudible. 80
Bande critique: bande de
fréquence dans laquelle 60 Son « masqueur »
Pression
l’oreille humaine acoustique
ne peut pas (dB) 40 Son « masqué »
distinguer deux sons
Déformation de la
différents émis en même 20 Seuil en courbe : seuil de
environnemen
temps t calme
masquage
0
f(Hz)
52
20 50 100 20 500 1000 2000 5000 10000 20000
Le masquage temporel
L’oreille n’entend pas un son s’il est produit dans un court délai avant
ou après un son de même fréquence de plus grande amplitude.
Pression
acoustique Son « masqueur »
0 53 t
Exploitation du masquage pour la compression
On ne code pas les sons masqués (inaudibles)
On adapte la profondeur de codage : nombre de bits allouer
selon le niveau de l’erreur de quantification (< seuil d’audibilité).
80
Pression
acoustique
(dB) 60
20 Seuil en Déformation de la
environnemen courbe : seuil de
t calme masquage
0
f(Hz)
54
20 50 100 20 500 1000 2000 5000 1000020000
La compression audio MPEG1
Fréquences d’échantillonnage : 32 à 48 kHz
Niveau Complexité Plage de Technique
débits
Caractéristiques
Image de type matriciel
Codage RGB, couleurs indexées, niveau de gris
1, 4, 8 ou 24 bits : jusqu'à 16 millions de couleurs.
Compression : aucune (poids de fichier élevé), RLE
(rarement).
Fichiers de taille importante.
Caractéristiques :
Codage RGB, CMYK, couleurs indexées, niveau de gris
Compression : RLE, LZW, JPEG, ou aucune.
Fichiers assez gros.
Caractéristiques :
Codage RGB, couleurs indexées, niveau de gris
1, 4, 8 ou 24 bits: jusqu’à 16 millions de couleurs.
Compression sans perte LZW.
Possibilité de transparence et d’entrelacement.
Pas d'animation.
Caractéristiques
Compression avec perte
Affichage entrelacé ou progressif
Pas d’animation, pas de transparence
Très utilisé
Reconnu par tous les logiciels ou presque
LE format du Web avec GIF
Compression JPEG
Codeur JPEG
Decodeur JPEG
65
Transformée DCT
La transformée en cosinus est définie par :
68
JPEG: choix des pas de quantification
Différentes matrices de pondération ont été standardisées
Elles sont adaptées à la sensitivité au contraste du système visuel humain
69
Quantification des coefficients DCT
Codage differentiel des coefficients DC (DPCM)
Balayage en zig-zag des coefficients AC
70
Codage entropique des coefficients
transformés
71
Effet de bloc des techniques de codage par DCT
72
Evaluation du codeur JPEG
Image originale
73
Vidéo numérique
Une succession d’images numériques à une certaine cadence
Fluidité: Nombre d’images par seconde (frame per second: fps)
Débit
En octet ou bits /sec (bitrate)= taille image * nb image/sec
Volume à transmettre par seconde
En images par seconde fps (framerate) : fréquence d’affichage
Exemple
Framerate à 30 images/sec
Taille image ~ 1Mo
Débit ~30Mo/s
~30Mo/s (1,5 Go/mn) Stockage, transport réseau difficile
Compression 75
Redondances dans la vidéo
Redondance spatiale :
Les valeurs des pixels voisins (dans une
même trame) sont très proches et similaires
Méthodes de compressions d’images
(JPEG, JPEG2000, etc)
Redondance temporelle :
Scènes avec peu de changements ou
presque fixes
Similarité entre images successives de la
vidéo
Cette redondance est très importante
entre 2 images consécutives d’une même
scène (même shot)76
Compression de la vidéo
Objectif: compresser les 2 types de redondances
79
Estimation de mouvement
Représentation du mouvement: un modèle de vecteurs de
mouvements à 2D
Support du mouvement: l'ensemble des pixels de l'image auxquels le
vecteur s'applique (objet, bloc, pixel)
Estimation de mouvement au niveau du codeur:
Image référence
Image courante
Partitionnement en macro-blocs pour une meilleure estimation
Block matching (recherche du meilleur bloc dans une fenêtre)
Recherche du macro-bloc de l’image courante le plus similaire à un
macro-bloc de l’image de référence
Vecteur de mouvement d’une image par rapport à une autre
(référence) 80
Estimation de mouvement
Exemple
Image
courante
Estimation de
mouvement
Vecteurs de
Image mouvement
référence
81
Compensation de mouvement
Compensation de mouvement au niveau du codeur :
Sachant l’image référence
On applique le vecteur mouvement estimé
On a l’image prédite
Mais, c’est pas tout !!!
Erreur de prédiction
On doit envoyer la différence entre l’image prédite &
l’image courante
82
Compensation de mouvement
Exemple
Vecteurs de
mouvement
Compensation
de mouvement
83
Erreur de prédiction
Exemple
Erreur de prédiction
Image courante Image prédite
84
Principe d’EM par Blockmatching
Partitionner l’image en blocs
85
Prédiction compensée en mouvement
86
Mesure de l’erreur : mise en correspondance
Erreur Quadratique Moyenne (sum of squared errors)
By 2
Bx
SSE d x , d y s x, y, t sx d x , y d y , t t
y 1 x 1
87
Prédiction finale
89
MPEG
Plusieurs techniques d'encodage
91
Trame P
Codée par différence avec une image I ou P précédente
Image découpée en macroblocs (16x16 pixels)
Estimation de mouvement : où se trouve dans l’image t, le macrobloc
ressemblant le plus à un macro-bloc de l’image t-1
Calcul pixel à pixel des différences entre les macrobloc t et t-1
L’erreur de prédiction est codée spatialement (JPEG) comme pour les
images I.
140
Codage différentiel (image p)
Image courante
Différence 1 2 5
Image Référence
3 4 6
MB lum Bloc Chrom
48
meilleure
concordance
VM Pour chaque
64
bloc
Transf.
Quant. DCT
Balayage
Zig-zag DC
RLE Codage 1110010011100010…
entropique
93
Trame B
Codée par différence avec une image précédente et suivante
Les images passées n’ont pas toute l’information
B fait référence à une image précédente I ou P et à
une image suivante I ou P
Création des groupes d’images (Group Of Pictures: GOP) | une I-frame suivie de plusieurs P-frames
I-frame suivie d’une suite de P-frames successives déterminent la taille du GOP | fixe ou dynamique
Pourquoi la taille du GOP ne doit pas être large ?
95
De MPEG1 à MPEG2
MPEG1:
Proposée en 1991 par l’ISO
Principes:
Codage et compression de séquences vidéo à débits réduits
(1.5Mb/s)
Caractéristiques:
Images codées en Intra, en Prédictive, et en Bidirectionnelle
Applications:
Stockage sur CD-ROM, Vidéo-CD
De MPEG1 à MPEG2 (suite)
MPEG2:
Née en 1994
Caractéristiques:
Compatibilité avec MPEG1
Amélioration du codage
Orienté TV Numérique
Applications:
DVD
Interactivité
Applications:
Transmission sans fil (bruit, erreur, bande passante limitée,
etc)
TV Numérique personnalisée (interactivité)
Internet streaming (erreurs, différentes résolutions,
scalabilité)
98
Notion d’objet (MPEG 4)
Scène