Vous êtes sur la page 1sur 99

Numérisation des données énormes fichiers

 beaucoup de place en mémoire


 transport en un temps acceptable avec des débits que la majorité des
réseaux n’arrivent pas à offrir

 1 page moyenne de texte (en ASCII) représente 2 à 3 Ko


 1 image bitmap (640 x 480 pixels et 24 bits/pixel) occupe 900 Ko
 1 séquence vidéo d’1 seconde (soit 25 images/s) occupe ~22 Mo
 1 conversation téléphonique de 5min : 5 millions de bits
 1 seconde de programme TV (signal vidéo) => 21 Mo
 1 seconde de programme HDTV => 230 Mo
Pourquoi le codage (compression) ?
 Parce que les constructeurs pensent que la mémoire
est couteuse !
 Parce que nous sommes impatients !
 Parce que nous sommes des collectionneurs !
 Cacher les limitations du hardware actuel.

2
Objectifs
Réduire la taille physique des blocs d'informations.

Un algorithme de compression sert à optimiser les données en utilisant


des considérations propres au type de données à compresser

La méthode de compression dépend intrinsèquement du type de


données à compresser : on ne compressera pas de la même façon une
image qu'un fichier audio...

Décompression : reconstruire les données originales grâce à l'algorithme


inverse de celui utilisé pour la compression.
Critères d’évaluation
Quotient de compression Q : Rapport en bits de la taille du fichier original
par la taille du fichier compressé

Taux de compression T : Souvent utilisé, est l'inverse du quotient de


compression, il est habituellement exprimé en pourcentage (%)

Gain de compression : également exprimé en pourcentage, c’est le


complément à 1 du taux de compression G=1-T
Méthodes de compression
La compression physique
Agit directement sur les données, les bits; il s'agit ainsi
de regarder les données redondantes d'un train de
bits à un autre sans regarder de quel type de
données il s’agit (image, texte, son, vidéo).
 Zip, GZip, Rar

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.

 Quand nous travaillons avec de la musique, la distribution des


probabilités d’apparition des sons n’est pas uniforme non plus.

 Quand nous manipulons des images, elles possèdent également des


régularités, elles ne sont pas « aléatoires ».

 Nécessité de la compression des données Multimédia


Techniques de compression
 Un échantillon est généralement corrélé avec les échantillons
précédents (il porte des informations redondantes)
 Eliminer la redondance via la compression
 Le procédé de compression est performant si :
 Taux de compression est élevé

 Sans dégradation de la qualité de restitution

 Respect des ressources matérielles de la machine (la capacité de calcul


surtout)
1. Codage à longueur fixe
2. Codage à longueur de plage
3. Codage à longueur variable (Entropique ou statistique)
4. Codage à base de dictionnaire
Codage à longueur fixe
 Definition (Binary coded decimal (BCD))
 Chaque symbole xi est codé (indépendamment de la loi de probabilité de X)
par la représentation bJ-1…b0 de son indice
L 1
i en base 2 sur L=log2(S) bits, avec
: i   bj 2 j
j 0

 Exemple (Alphabet à S = 8 symboles)

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

Exemple : Soit un message de 36 caractères, composé des caractères A,B,C,D et E


Calculer la taille totale du message pour un codage binaire à taille fixe.
Codage à longueur de plage (RLE)
Caractéristiques RLE : Run-Length Encoding (RLC :Run Length Coding)
 Un des premiers algorithmes de compression
 Fonctionne sur les octets ou caractères
 Utilisé par la plupart des fichiers bitmap (TIFF, BMP et PCX)
 Simple à implémenter et rapide d’exécution
 Efficace sur les messages comportant un grand nombre de symboles consécutifs.
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, on note :
compteur de passage (run count) le nombre d’occurrences du caractère
valeur de passage (run value) le caractère associé
Exemple1
RLE : exemples Paquet RLE
Soit un message Run Count Run Value

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

sont définis chacun par 3 couleurs (RVB). 2 160


1 164

Taille avant compression 6x 5x3 = 90 octets 2 160

Nous allons "balayer" ce carré ligne par ligne 1 164


2 231
1 214
3 221
3 227
3 204
3 227
12 234
Variantes RLE :Média Image
Des schémas alternatifs de RLE peuvent être écrits de telles manières qu'ils
encodent les données de manière verticale, colonne par colonne ou horizontale,
ligne par ligne ou bien par flots de 4 x 4 pixels ou encore en zigzag.
Codage à longueur variable (VLC)
Statistique - Entropique
Principe
 Lorsque les états de la source ne sont pas équiprobables, la quantité
d’information apportée par la connaissance d’un état est d’autant plus
grande que cet état a une faible probabilité de se réaliser

 Connaissant les occurrences des caractères d’un message, il est possible


d’adopter un code à longueur variable VLC (variable lenght code) :
• Affecter le moins de bits aux symboles les plus courants,
• Réserver les codes les plus longs aux moins probables
Codage à longueur variable (VLC)
Statistique - Entropique
 Ces méthodes nécessitent une pré-analyse du message à compresser
(calcul des occurrences).

 Pour pouvoir être décodé, le message compressé doit être


accompagné de l’alphabet utilisé pour la compression.

 Algorithme de Huffman  Algorithme de Shannon-Fano


Fonction débit/distorsion
Sans perte d’information, on peut augmenter le taux de compression
(réduire le débit) jusqu’à l’entropie. Au delà, on va dégrader l’image
(augmenter la distorsion).

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

Les caractères sont d’abord triés et classés en


fonction de leur fréquence (occurrence).
VLC : Graphe de Huffman
Construction du graphe
Algorithme de Huffman
Codage des symboles
Codage obtenu
 D (14) : 0
 A ( 7) : 111
 B ( 6) : 110
 C ( 5) : 101
 E ( 4) : 100

 Calculer la taille totale du message


après codage.
 Calculer le taux de compression
obtenu.
VLC : Algorithme de Shannon-Fano
Principe
Etape 1 : on classe les symboles par ordre de probabilités décroissantes

Etape 2 : on partage l’ensemble des symboles en deux sous-ensembles, les 2


sous-ensembles devant être de probabilité aussi proche que possible

Etape 3 : on attribue à chaque sous-ensemble l’état 0 ou 1

Etape 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.
Algorithme de Shannon-Fano: Exemple
Reprenons le dernier exemple du message à 36 caractères
Algorithme de Shannon-Fano
VLC : Algorithme de Shannon-Fano
Codage obtenu :
 D (14) : 00
 A ( 7) : 01
 B ( 6) : 11
 C ( 5) : 100
 E ( 4) : 101

 Calculer la taille totale du message après codage.


 Calculer le taux de compression obtenu.
Codage basé sur la prédiction linéaire
Exemple (Composantes = pixels d’une image)
 Le niveau de gris x d’un pixel donné est fortement lié au niveau de gris de
ses voisins
 Si voisins noirs, le pixel a de très forte chance d’être « très foncé »

 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

avec ai les coefficients de la prédiction linéaire, P est l’ordre la prédiction


et x(n-i) les valeurs de signal précédents x(n)

 Erreur de prédiction

P
en   x n  xˆn   x n    ai xn  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

Etape 2 : Remplacer ces séquences par leurs indice dans le dictionnaire.


Le dictionnaire fait partie intégrante des données compressées.
Pour que cette méthode soit efficace il ne faut donc pas que sa taille soit
supérieure à celle économisée en recodant les données.
Codage à base de dictionnaire LZW
 Exemple de code adaptatif
– Code adaptatif, sans modèle explicite de la source.

 Largement utilisé (ou sa variante LZW):


– compress (unix)
– GIF (images)

 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).

 Le code ASCII de base représentait les caractères sur 7


bits (c'est-à-dire 128 caractères possibles, de 0 à 127).
 Conçu pour la langue anglaise
 Le code ASCII a donc été étendu à 8 bits (un octet) pour
pouvoir coder plus de caractères (ASCII étendu...).
 Ce code attribue les valeurs 0 à 255
 lettres majuscules et minuscules, chiffres, marques de ponctuation
et autres symboles. Par exemple:
 Les codes 0 à 31: caractères de contrôle telles que: CR, ESC …

 Les codes 65 à 90 représentent les majuscules


A  65

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

 pour un signal la dépendance existante entre ses composantes dans le


temps et/ou dans l’espace (pixels et ses voisins par exemple) ce qui se
traduit par une corrélation très forte. On essaie donc de tirer partie de cette
corrélation, pour réduire le volume d’information en effectuant une opération
de décorrélation du signal.
 La décorrélation consiste à transformer le signal initial en un ensemble de
coefficients moins corrélés, c’est une opération réversible.
Schéma d’un codeur source

 La quantification des coefficients a pour but de réduire le nombre de


bits nécessaires pour leurs représentations. Elle représente une
étape clé de la compression. Elle approxime chaque valeur d’un
signal par un multiple entier d’une quantité q, appelée quantum
élémentaire ou pas de quantification. Elle peut être scalaire ou
vectorielle.
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

 Réduction du nombre de bits (25 % environ par rapport au MIC)


x(k) + d(k) dq(k) dq(k) + xq(k)
 Quantification

- +
xq(k-1) xq(k) +
Retard  xq(k-1) xq(k)
Retard

+ 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.

 On ne code pas les sons masqués temporellement.

Pression
acoustique Son « masqueur »

Inaudibles : non codés

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

Niveau de bruit (erreur)


de quantification
40
acceptable

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

Couche 1 basse 32 à 448 Kb/s - Masquage fréquentiel


Couche 2 moyenne 32 à 384 kb/s. - Masquage fréquentiel
- Masquage temporel
Couche 3 élevée 32 à 320 kb/s -Masquage fréquentiel avec largeur des sous-
(MP3) bandes adaptée
- Masquage temporel
- Codage entropique (e.g. Huffman)
-Exploitation de la cohérence entre les voies
stéréo
MP3 (MPEG-1 couche 3)
 Le spectre audible est divisé en 32 sous-bandes → filtrage
 Prise en compte des phénomènes psycho-acoustiques
 Pour chaque sous-bande, on détermine la fréquence dominante et on en déduit
la nouvelle courbe de seuil d’audibilité (à l’aide de modèles psycho-acoustiques).
 Dans chaque sous-bande, le codeur choisit le pas de quantification adapté au
niveau du seuil d’audibilité.
 Le flux numérique (trame mp3) contient le pas de quantification de chaque sous-
bande pour que le décodage soit possible.
Allocation des bits Trame mp3
Audio non- Filtrage Quantification Codage
compressé Huffman
(MIC)
Modèle Seuil de
psycho- masquage Codeur MP3
acoustique
Principaux formats audio numériques
 Non compressés:
 .WAV (Microsoft et IBM): le format son standard de Windows
 .AIFF (Macintosh d'Apple): C'est l'équivalent du format WAV
 .RAW Format audio brut
 .AU (Unix et Linux)
 Compressés:
 .MP3 (Format public): MPEG-1 Layer III
 .AAC (Format public): (MPEG-2 AAC) Amélioration du format MP3, c'est le format des
fichiers audio supportés par Apple
 .WMA (Microsoft): Il offre la possibilité de protéger dès l'encodage contre la copie
illégale
 .OGG Vorbis (ou OGA) (Format public): Moins populaire que le MP3
 .RA: .ra (real audio), .ram (real audio metadata) Famille de codecs audio propriétaires
(RealNetworks): diffuser de la musique sur internet en utilisant la technique du streaming.
Formats d'images bitmap
 Nombreux: BMP, TIFF, GIF, PNG etc.
 Caractéristiques
 Nombre de couleurs.
 Méthode de compression utilisée.
 Contexte d'utilisation.
 Comparaison : taille des fichiers pour les images
Format BMP
 Défini par Microsoft pour Windows

 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.

 Reconnu par une majorité de logiciels.


Format TIFF
 TIFF (Tagged Image File Format).
 Origine Aldus (acheté par Adobe) et Microsoft.
 Standard de codage des images scannées; impression, infographie,
bureautique pour les images au trait (cliparts, FAX).
 Puissant mais complexe à gérer.

 Caractéristiques :
 Codage RGB, CMYK, couleurs indexées, niveau de gris
 Compression : RLE, LZW, JPEG, ou aucune.
 Fichiers assez gros.

 Reconnu par une majorité de logiciels.


Format GIF
 Format GIF (Graphic Interchange Format) :
 CompuServe, 1987
 Caractéristiques
 Couleurs indexées: palette calculée pour chaque image
 Codage sur 8 bits: choisir 256 couleurs parmi 16 millions
 Compression sans perte LZW, efficace s'il y a des zones
homogènes.
 Possibilité d’animation et de transparence et
d’entrelacement
(chargement graduel de l’image)
 Très utilisé:
 Reconnu par tous les logiciels ou presque
 LE format du Web avec JPG.
Format PNG
 PNG (Portable Network Graphic).
 Pour remplacer le GIF (été devenu payant à l’époque).
 Le futur format du Web?

 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.

 Pas supporté par tous les navigateurs web


Format JPG
 JPG ou JPEG (Joint Photographic Experts Group)
 Comité créé en 1986
 Norme adoptée en 1992/93 (ISO/IEC 10918-1 ou UIT-T Recommandation T.81. )
 Compression en utilisant la Transformé en Cosinus Discret TCD

 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 :

 Le coefficient (0,0) composante continue ou DC.


 Les autres coefficients correspondent aux différentes fréquences spatiales
(AC).
66
Transformée DCT inverse
 La transformée inverse est définie par :

 La transformée est séparable et peut s’effectuer comme deux


transformées suivant les deux composantes i et j.
67
Compression JPEG

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

Pas de quantification : 25 Pas de quantification : 100 Pas de quantification : 200

72
Evaluation du codeur JPEG
Image originale

Taille: 263224 octets Taille: 5728 octets Taille: 11956 octets


Débit = 0.175bpp Débit = 0.365bpp

 JPEG fonctionne correctement au-dessus de 0.25 bpp, surtout 0.5 bpp


 A partir de 0.75 bpp on ne distingue plus de compression

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

 Méthode: 2 types d'images sont définies:


 Les images “intra” qui exploiteront la redondance spatiale
 Une image intra est codée comme une image fixe
 Les images “inter”(images prédites) qui exploiteront
la redondance temporelle
 Ces images seront codées en relation avec d’autres images
 On codera en fait la différence entre ces images et les
autres (images de référence) puisque cette différence
devrait être quasi-nulle 129
M-JPEG (Motion JPEG  MPEG)
 Principe: coder indépendamment chaque image du flux en
intra
 Applique successivement l'algorithme JPEG aux
images
 Débit de 8 à 10 Mb/s
 Redondance temporelle non exploité
 Utilisé dans les studios de montage numérique
 Chaque image codée séparément  accès aléatoire à
n'importe quelle partie d'une vidéo
139
MPEG
 MPEG (Moving Pictures Experts Group)
 Établi en 1988 (ISO/IEC)

 Codage des médias audio et vidéo

 Exploite la redondance temporelle

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

Image Image prédite


référence

83
Erreur de prédiction
 Exemple

Erreur de prédiction
Image courante Image prédite

 Cette image d’erreur et les vecteurs de mouvement sont codés et


transmis (en addition à l’image de référence)

84
Principe d’EM par Blockmatching
 Partitionner l’image en blocs

 Trouver un vecteur de déplacement pour chaque bloc.

 Trouver la meilleure mise en correspondance, dans une


zone de recherche, qui minimise l’erreur de mesure.
 L’EM est généralement la portion la plus couteuse en
terme de complexité calculatoire au niveau du codeur.

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   sx  d x , y  d y , t  t 
y 1 x 1

 Somme des valeurs absolues des différences (Sum of absolute differences)


By Bx
SAD d x , d y    s  x, y, t   sx  d x , y  d y , t  t 
y 1 x 1

 SAD et SSE ont pratiquement la même performance


 Pour certaines architectures SAD est moins complexe

87
Prédiction finale

 L’image prédite est soustraite de l’image courante


 Laissant (espérant le) une image de résidu (de différence) moins
complexe qui peut être codée plus efficacement qu’avant l’estimation de
mouvement
88
Le codage MPEG
 Partitionnement de la séquence vidéo en :
 Images (codées en inter ou intra)
 GOP (Group of Pictures): Séquence d’images commençant
par une image codée en intra, ensuite des images codées en
inter jusqu’à la prochaine image intra

89
MPEG
 Plusieurs techniques d'encodage

 Trame I (Intra coded frames ou codage interne) :


codées séparément sans référence aux images
précédentes

 Trame P (Predictive coded frames ou codage


prédictif) : décrites par différence avec une image
précédente

 Trame B (Bidirectionally predictive coded frames) :


décrites par différence avec une image précédente et
une image suivante 90
Trame I
 Image codée entièrement avec JPEG
 Assure la cohésion de la vidéo (les autres images sont
décrites par rapport à elles)
 Indispensables en cas d'erreur de réception
 1 ou 2 par seconde

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

 Jamais à une autre image B.


 Estimation & compensation de mouvement:
 Moyenne entre précédent et suivant possible : la moyenne
des erreurs et transmet les deux vecteurs de mouvement.

 Impossibilité de décoder B si l'image de référence se situe après


 Changer l'ordre des images du flux vidéo 141
Partitionnement de la séquence en GOPs

 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

 Débits 3-15 Mbps pour TV, 15-30 Mbps pour HDTV


 Prise en considération de la scalabilité pour certains profils

 Applications:
 DVD

 HDTV – High Definition TV (5-10Mbits/s) HDTV – High Definition TV


MPEG4
 MPEG4: 1998-2003
 Caractéristiques:
 Introduction de la notion d’objets médias

 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

Personne Arrière plan Meubles Présentation


en 2D audiovisuelle
Voix Corps Bureau Globe
99

Vous aimerez peut-être aussi