1.36k likes | 1.77k Views
Compression des images et de la vidéo : principes. Séverine Baudry s.baudry@nextamp.com. Plan. L ’image numérique Principes de la compression Notions de théorie de l ’information Le théorème du codage de source Compression sans perte Codage de Huffman Codage par plage Codage LZW
E N D
Compression des images et de la vidéo : principes Séverine Baudry s.baudry@nextamp.com Compression des images
Plan • L ’image numérique • Principes de la compression • Notions de théorie de l ’information • Le théorème du codage de source • Compression sans perte • Codage de Huffman • Codage par plage • Codage LZW • Compression avec perte • Quantification • Prédiction linéaire • Transformations linéaire • Compensation de mouvement Compression des images
L ’image numérique • Une image numérique de taille NxM est représentée par un tableau de pixels [I(x,y)]0 x<N;0 y<M • Image à niveaux de gris : I(x,y) scalaire (1 seule composante) • Image couleur : I(x,y) vectoriel (3 composantes) : IR(x,y), IG(x,y), IB(x,y) • Rappel : synthèse additive : R+G+B = blanc • Chaque composante est codé par un nombre de n bits (n : profondeur) • n=8 en général (256 niveaux) • images médicales, satellitaires : n 12 (meilleure précision) • Convention : 0=noir ; 255=blanc (images 8 bits) Compression des images
Espace des couleurs • Pixel (R,G,B) représenté par un point dans l ’espace des couleurs (3 dimensions) • L ’espace RGB ne reflète pas l ’importance visuelle des composantes : décomposition en luminance et chrominance plus adaptée • luminance : très importante pour l ’œil (photos noir et blanc) • chrominance : moins importante • Nouvel espace couleur, (Y,Cb,Cr) obtenu par transformation linéaire de (R,G,B) Compression des images
Espace des couleurs Cb B Y G R Cr Y : information de luminance Cb : information de chrominance bleue Cr : information de chrominance rouge* !!! Cb,Cr : pas d ’interprétation perceptuelle directe (Y : version « noir et blanc ») Compression des images
Espace des couleurs • (Y,Cb,Cr) : utilisé pour la représentation des signaux numériques • (Y,U,V) : employé en analogique (TV PAL ou SECAM) • Y : identique • U,V : identiques à Cb,Cr à un facteur d ’échelle près • Pour certaines normes de video (H261, MPEG), on utilise une version décalée réduite • Y ’=219/255*Y+16 • Cb ’=224/255*Cb+128 • Cr ’=224/255*Cr+128 • Intérêt de la représentation (Y,Cb,Cr) • Décorrélation des composantes codage indépendant de chaque composante efficace • Y importante, Cb et Cr accessoires : compression de l ’information de chrominance Compression des images
Structures d ’échantillonnage • Information de chrominance moins importante -> décimation horizontale et/ou verticale de Cb, Cr • 4:4:4 : pas de décimation • 4:2:2 : décimation horizontale des chrominances • 4:2:0 : décimation verticale des chrominances 4:4:4 4:2:2 4:2:0 (MPEG1) Y Cb Cr Compression des images
Entrelacement • Image TV analogique : 25 images / seconde (Europe) • Acquisition : 1/2 image à une fréquence de 50 Hz • Images entrelacées • Amélioration de la résolution temporelle, avec une résolution spatiale correcte • Une image numérique (picture) entrelacée est constituée de 2 trames (field) (demi-images) • trame haute (top field) • trame basse (bottom field) • 2 combinaisons possibles pour une image complète : • top field first : trame supérieure acquise en premier • bottom field first : trame inférieure acquise en premier Compression des images
Entrelacement et mouvement Compression des images
Tailles d ’images • Image TV classique : format CCIR 601 • Nombre de pixels de luminance : • 720 points sur 576 lignes (format européen) • 720 points sur 480 lignes (format US) • Autres formats couramment employés : • CIF : chaque dimension est divisée par 2 (image 4x +petite) • QCIF : chaque dimension est divisée par 4 (image 16x +petite) Compression des images
Fréquences vidéo • TV : • Européen : 25 images / seconde • Américain : 30 images / seconde • Autres fréquences video utilisées (visioconférence….) • 15 im/s, 10 im/s, 7.5 im/s Compression des images
Quantités d ’information • Image fixe niveaux de gris, taille 512x512; chaque pixel codé sur 8 bits • T = 29*29*23 = 221 bits = 256 ko • Image fixe en couleur, sans décimation de la chrominance (24 bits/pixel) • T = 3*221bits = 768 ko • Débit TV couleur • taille : 720x576 • chrominance : 4:2:2 -> 2x8 bits par pixel • fréquence: 25 im/s • D = 720*576*16*25 166 Mbits/s • pour 1 image TV : T 6.6 Mbits • Débit TV brut (video + infos de service, synchro…) : 216 Mbits/s Compression des images
Quantités d ’information • Pour stocker un film TV d ’1h30 sous format brut, il faudrait disposer de : • T = 90*60*166 896 Tbits !!! • Nécessité de compresser les données pour les applications réalistes …. • En pratique : • débit MPEG 2 pour TV (satellite...) : 1Mb/s < D < 4Mbs • Débits MPEG 2 professionnels (chaînes, post-production) 20Mb/s • Video bas débit (visioconférence) : 64 kb/s, 128 kb/s, 384 kb/s Compression des images
Plan • L ’image numérique • Principes de la compression • Notions de théorie de l ’information • Le théorème du codage de source • Compression sans perte • Codage de Huffman • Codage par plage • Codage LZW • Compression avec perte • Quantification • Prédiction linéaire • Transformations linéaire • Compensation de mouvement Compression des images
Principes de la compression • Images et video fortement redondantes • zones homogènes dans les images • faible variation d ’une image à l ’autre dans une séquence • Réduction de la redondance par un codage sans perte (entropique) • Toute l ’information de l ’image n ’est pas pertinente • exemple : modification d ’un pixel non perceptible • Augmentation du taux de compression en introduisant des artefacts (distorsion) peu perceptibles dans le signal • Codage à perte Définition : Compression des images
Principes de la compression X : signal à coder (image) Compression Y (signal compressé) décompression X ’ (signal décompressé) X=X ’ : codage sans perte XX ’ : codage à perte • Comparaison de performances des méthodes de compression : • Taux de compression • Distorsion visuelle introduite • Complexité, temps de calcul (compression et décompression) • Sensibilité des données codées aux erreurs Compression des images
Principes de la compression • Théorie de l’information : cadre théorique général, indépendant du type de données (image, son, texte, données …) • Adaptation au type de données : • Mesures de distorsion (modèles psycho-visuels, psycho-acoustiques, robustesse aux erreurs …) • Statistiques sur les données Compression des images
Qu ’est ce que l ’information ? • Information = levée de l ’incertitude sur un événement • Source : générateur d ’évènements aléatoires • Destinataire : détermine avec le plus de précision possible (= le moins d ’erreurs) les évènements émis par la source, à partir de l ’observation (éventuellement bruitée) des évènements • Paradigme de Shannon (modèle générique de communication) destinataire source canal message perturbations Compression des images
Qu ’est ce que l ’information ? • Mesure de la quantité d’information apportée par un événement aléatoire : • Conséquences : • un événement rare apporte « beaucoup » d ’information • un événement fréquent apporte « peu » d ’information (cas extrême : p(x)=1 : aucune information) • L ’information apportée par 2 évènements successifs indépendants est la somme des informations individuelles Unité : le bit ou Shannon Rappels : logarithme à base 2 : Compression des images
Entropie • Entropie : mesure de l ’information moyenne d ’une sourcealéatoire • Entropie d ’une variable aléatoire discrète x, à valeurs dans x, de loi de probabilité p(x) : • Exemple : pile ou face, pièce non truquée • P(pile)=P(face)=1/2 • Pièce truquée (P(pile) ou P(face) <1/2 ) : entropie <1 incertitude sur le tirage plus faible • Remarque : l ’entropie ne dépend que des probabilités des évènements (et pas de leur « valeur ») -> on utilisera H(p1,..,pn) plutôt que H(X) Compression des images
Entropie : quelques propriétés • L ’entropie est toujours positive : • L ’entropie est maximale (incertitude maximale) lorsque tous les évènements sont équiprobables : Compression des images
Entropie d ’une variable binaire Compression des images
Extension à des variables multidimensionnelles • Entropie d ’une suite de variables {X1,…Xn} • Cas particulier : symboles indépendants (source sans mémoire) • Entropie moyenne (entropie par symbole) : Compression des images
Théorème du codage de source • Codage : remplacement d ’un message par un autre message (mot de code) • code : ensemble de tous les mots de code • Longueur moyenne d ’un code : • Soit une source d ’entropie moyenne par symbole H. d il existe un code tel que : Compression des images
Plan • L ’image numérique • Principes de la compression • Notions de théorie de l ’information • Le théorème du codage de source • Compression sans perte • Codage de Huffman • Codage par plage • Codage LZW • Compression avec perte • Quantification • Prédiction linéaire • Transformations linéaire • Compensation de mouvement Compression des images
Méthodes de compression réversibles • Minimiser lmoy sous la contrainte d ’invertibilité (message décodé = message originel) • Théorème du codage de source • L ’égalité est atteinte ssi : • plus un événement est rare et plus son code est long : code à longueur variable • En général, l ’égalité n ’est pas atteinte car log2(p(ni)) n ’est pas nécessairement entier Compression des images
Pourquoi des codes à longueur variable ? • Événement fréquent représenté par un code court • exemple : abréviations, raccourcis clavier … • Évènement rare représenté par un code long • surcoût momentané, mais rare …. • Un exemple : Codage à longeur fixe : sur 3 bits Codage à longeur variable (de 1 à 5 bits): Compression des images
Intérêt des codes à longueur variable Codage à longeur fixe Longueur moyenne : Codage à longeur variable : Longueur moyenne : Gain en codage : Application : coder la chaîne : a a b a b f b a a b b a code à longueur fixe ; L = ? code à longueur variable : L= ? Entropie de la source ? Compression des images
Codes préfixés • Code préfixé : un mot de code quelconque n’est le début d ’aucun autre mot de code. • Permet les codes à longueur variable sans besoin de synchronisation • exemple : • décodage d ’un train binaire : 1 0 0 1 0 0 0 0 1 1 0 1 0 n2 n1 n5 n2 n4 Compression des images
Codage de Huffman • Soit Pm une source de taille m, dont les probabilités sont connues • Principes : • On concatène les 2 symboles ni et nj de proba les plus faibles; on obtient une nouvelles source réduite Pm-1 de taille m-1. On montre qu ’il existe un code pour Pm-1 identique à celui de Pm (hormis ni et nj) • Les codes de ni et nj sont obtenus à partir de leur code dans Pm-1, auquel on concatène ‘ 0 ’ (ni) et ‘ 1 ’ (nj) • Pour obtenir les codes de Pm-1, on réitère le processus en prenant les 2 symboles de plus faible proba dans Pm-1. • Une source à 2 symboles est codés par ‘ 0 ’ et ‘ 1 ’ Compression des images
Codage de Huffman : exemple 0.45 1 0.55 0.3 Compression des images
Codage de Huffman : exemple 1 0.55 0.45 0.3 0.25 0.25 0.2 0.15 0.15 Compression des images
Codage de Huffman : exemple 1 0 1 0.55 1 0 0.45 0 1 0.3 0 1 0.25 0.25 0.2 0.15 0.15 10 00 01 110 111 n1 n2 n3 n4 n5 Compression des images
Codage de Huffman : exemple • Entropie de la source : H(m)2.29 • Longueur moyenne : lm=2.3 > H(m) • Un exemple avec H(m)=lm : • Comparaison avec un code de taille fixe ? Compression des images
Codage par plage (RLC : Run Length Coding) • Adapté au codage de zones homogènes (images binaires, DCT quantifiées …) • Principe • rassembler les échantillons de même valeur : n échantillons • code : (n,valeur) • Exemple (niveaux de gris) : • 12 12 5 23 23 23 30 30 30 30 28 • code : (2,12) (1,5) (3,23) (4,30) (1,28) Compression des images
Codage Lempel Ziv Welch (LZW) • Codage des images GIF (réversible) • Compression des fichiers (.zip, .gz …) • Efficace pour les images synthétiques (plages uniformes), dessins, graphiques, images NB … • Pour les images naturelles, bruitées : compression à perte (JPEG) plus efficace. Compression des images
LZW : principes • Codage des chaîne de caractères par leur adresse dans une table de traduction • Construction dynamique de la table de traduction, en fonction du contenu à coder • Adresse de taille fixe, codant des chaînes de taille variable • L ’algorithme tend à chercher les chaînes les plus longues possibles (-> compression) Compression des images
LZW : codage • A coder : chaîne de bits b1b2…bn • Table de traduction : taille 2m (adresse sur m bits) • Initialisation : • stockage des chaînes ‘ 0 ’ et ‘ 1 ’ aux 2 premières adresses de la table (0…0 et 0…1) • Régime établi : on a codé la chaîne b1…bi-1 • bi dans la table de traduction ? => concaténation bibi+1 • bibi+1 dans la table de traduction ? • Si oui, concaténation bibi+1bi+2 aller en 2 • Si non • stocker bibi+1 dans la table de traduction à la première adresse disponible • coder bi par son adresse dans la table, recommencer en 1 avec bi+1 Compression des images
LZW : décodage • La table de traduction n ’est pas transmise, mais reconstituée au fur et à mesure du décodage • Initialisation : similaire au codage • Régime établi : on a décodé les adresses a1…ak-1 • lire l ’adresse ak, le mot décodé est la chaîne bk,1…bk,i de la table de traduction • décoder ak+1 (chaîne bk+1,1…bk+1,j) • stocker bk,1…bk,i,bk+1,1 à la première adresse libre Compression des images
LZW : exemple • A coder : 1 0 0 0 1 1 0 1 1 • Table de traduction : adresses sur 4 bits • initialisation : Compression des images
LZW : exemple • A coder : 10 0 0 1 1 0 1 1 code Table de traduction 0001 Compression des images
LZW : exemple • A coder : 1 00 0 1 1 0 1 1 code Table de traduction 0001 0000 Compression des images
LZW : exemple • A coder : 1 0 001 1 0 1 1 code Table de traduction 0001 0000 0011 Compression des images
LZW : exemple • A coder : 1 0 0 0 11 0 1 1 code Table de traduction 0001 0000 0011 0001 Compression des images
LZW : exemple • A coder : 1 0 0 0 1 101 1 code Table de traduction 0001 0000 0011 0001 0010 0010 Compression des images
LZW : exemple • A coder : 1 0 0 0 1 1 0 1 1 code Table de traduction 0001 0000 0011 0001 0010 0010 0101 Compression des images
LZW : mise en œuvre • Dimensionnement de la table de traduction : en fonction de la taille du fichier à coder • Nombre d ’adresses fixé à l ’avance -> débordement possible • remise à zéro de la table de traduction Compression des images
Plan • L ’image numérique • Principes de la compression • Notions de théorie de l ’information • Le théorème du codage de source • Compression sans perte • Codage de Huffman • Codage par plage • Codage LZW • Compression avec perte • Quantification • Prédiction linéaire • Transformations linéaire • Compensation de mouvement Compression des images
Méthodes irréversibles : motivation • Compression sans perte : taux de compression faible (R2.5) • L ’œil est peu sensible à certaines modifications de l ’image • Compression à perte : introduction d ’une distorsion dans l ’image codée • ex : JPEG : R20 pour une distorsion quasi-invisible. • Fonction débit/distorsion : extension de l ’entropie pour les méthodes irréversibles Compression des images
Fonction débit-distorsion • Le débit R est atteignable pour une distorsion D ssi il existe une suite de codes (2nR,n) tels que : Codeur de source décodeur de source X Y X ’ d(X;X ’)<D R (Y)<R(X) Compression des images