Compression des images et de la vidéo : principes Séverine Baudry s.baudry@nextamp.com Compression des images
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
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
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
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
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
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
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
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
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) source canal destinataire 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
Compression des images Entropie Entropie : mesure de l ’information moyenne d ’une source alé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
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
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 n4 n2 n1 n5 n2 Compression des images
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 1 0.55 1 0.45 1 0.3 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
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
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
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
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
Compression des images LZW : exemple A coder : 1 0 0 0 1 1 0 1 1 code Table de traduction 0001 Compression des images
Compression des images LZW : exemple A coder : 1 0 0 0 1 1 0 1 1 code Table de traduction 0001 0000 Compression des images
Compression des images LZW : exemple A coder : 1 0 0 0 1 1 0 1 1 code Table de traduction 0001 0000 0011 Compression des images
Compression des images LZW : exemple A coder : 1 0 0 0 1 1 0 1 1 code Table de traduction 0001 0000 0011 0001 Compression des images
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 Compression des images
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
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
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
Fonction débit-distorsion Compression sans perte Débit R H(X) Codage possible R=0 (on ne transmet pas l ’image !) Codage impossible Distorsion D Compression des images
Mesure de la distorsion Mesure de la distorsion très complexe sur les images sensibilité de l ’œil variable suivant les fréquences spatiales phénomènes de masquage … Mesure simplifiée : EQM (Erreur Quadratique Moyenne) Rapport Signal à Bruit (SNR : Signal to Noise Ratio)(en dB) Mesure de la distorsion Compression des images
Compression des images Mesures de distorsion Rapport Signal à Bruit Crête (PSNR : Peak Signal to Noise Ratio)(en dB) Compression des images
Distorsion : ordres de grandeur Exemple : image JPEG, niveaux de gris Compression des images
Exemple : distorsion après codage JPEG Compression des images
Caractéristiques du système visuel humain (SVH) Caractéristiques du SVH perception de la luminance : l ’œil est plus sensible aux faibles intensités sélectivité spatio-fréquentielle : l ’acuité varie suivant l ’orientation et la fréquence spatiale acuité forte aux basses et moyennes fréquences, faible aux hautes fréquences sensibilité au contraste : l ’œil est plus sensible aux contrastes qu ’à la luminance absolue (modèle logarithmique) Effet de masquage : la présence de signaux de forte amplitude peut masquer la présence des signaux voisins plus faibles Prise en compte des caractéristiques du SVH : suppression des informations auxquelles l ’œil est peu sensible -> compression Compression des images
Méthodes irréversibles : ingrédients Tous les systèmes de codage d ’image/video sont des systèmes hybrides : utilisent plusieurs techniques de réduction de l ’information Ingrédients : Prédiction (spatiale, temporelle) Décorrélation : à l ’aide d ’une transformée linéaire Quantification : étape irréversible du codage Codage entropique (voir méthodes réversibles) Compression des images
Compression des images Quantification Quantification : étape irréversible passage d ’une information continue à une information discrète Exemple : représentation de nombres réels (nombre de décimales infinies) par des rationnels (représentation finie) quantification scalaire : appliquée sur une variable monodimensionnelle Quantification vectorielle : appliquée sur une variable multi-dimensionnelle Compression des images
Quantification scalaire Niveaux de quantification {yi} : représentent un intervalle de R Seuils de quantification {xi} : délimitent les intervalles de quantification Quantification uniforme : |xi-xi-1| constant i Quantification non uniforme : …. Seuils de quantification niveaux de quantification Compression des images
Quantification scalaire : représentation graphique Signal reconstruit y6 Q(x)=y5 y5 y4 y3 y2 y1 Signal original x1 x2 x3 x4 x x5 Compression des images
Bruit de quantification Q(x)-x y1 y2 y3 y4 y5 y6 x x1 x2 x3 x4 x5 x6 Compression des images
Bruit de quantification Compression des images
Bruit de quantification Hypothèse : yi milieu du segment [xi,xi+1] : Compression des images
Bruit de quantification : quantificateur uniforme Compression des images
Optimisation des quantificateurs But : minimiser l ’EQM du quantificateur (ou une autre mesure : SNR …), pour un nombre de niveaux de quantification n fixé Optimisation en fonction de la probabilité du signal p(x) Intuitivement : intervalle de quantification plus petit pour les valeurs les plus probables du signal. Application à la compression d ’images : quantificateurs avec ou sans « dead-zone » P(x) Compression des images
Choix des quantificateurs Algorithmes de calcul de quantificateurs optimaux Max Lloyd … Codage du signal quantifié N niveaux de quantifications codage sur log2(N) bits Compression des images
Quantification vectorielle Signal à quantifier = vecteur exemple : bloc mxn de l ’image Pixel couleur (R,G,B) : vecteur 3 composantes Niveaux de quantification = blocs d ’un dictionnaire (codebook) Quantification du vecteur w : pour tous les vecteurs vi du dictionnaire, calcul de la distance (EQM) à w : |w-vi|2 sélection du vi minimisant l ’EQM dictionnaire de N vecteurs codage sur log2(N) bits Quantification vectorielle À coder avec : Compression des images
Quantification vectorielle : représentation graphique Vecteur à 2 dimensions (x1,x2) « seuils de quantification » = Régions de Voronoï x2 x1 Compression des images
Quantification vectorielle dans l ’espace des couleurs Images « palette » : remplacement d ’une couleur par une autre « proche » dans le dictionnaire (palette) couleur « vraie » (true color) : 16 millions (28. 28. 28) palette de 65000 ou 256 couleurs vecteur (R,V,B) : espace à 3 dimensions B G R Compression des images
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
Compression des images Prédiction linéaire Idée : un pixel (i,j) est souvent de teinte « proche » de celle des pixels voisins. Fonction d ’autocorrélation de l ’image fortement décroissante loin de l ’origine Prédiction : f(xi-1,j, xi-1,j-1, xi,j-1,...) Erreur de prédiction (ou innovation) : e=xi,j-f(xi-1,j,…) d Compression des images
Fonction d ’autocorrélation à 2 dimensions Compression des images
Compression des images Exemple : signal AR(1) un : bruit blanc gaussien, centré, variance su2, indépendant de xn-1 Prédiction optimale : f(xn)=axn Erreur de prédiction : e(n)=xn-axn-1=un Décorrélation de l ’erreur de prédiction : Compression des images
Prédiction linéaire : intérêts Mise en œuvre très simple, complexité très réduite Bonne qualité Inconvénients : taux de compression généralement faible évolution des statistiques du signal (autocorrélation) nécessité d’une mise à jour du prédicteur, méthode adapative Exemple d ’utilisation : DPCM : f(xn)=xn (simplicité) MPEG 2 : coefficients DC codés par prédiction Compression des images
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
Transformations linéraires : pourquoi ? Définition : Au,v;x,y :: coefficients de transformation A : matrice de transformation : coefficients transformés Décorrélation du signal = “compaction” Energie du signal concentrée sur quelques coefficients « beaucoup » de coefficients nuls -> quantifiés à 0 Compression des images
Transformations linéaires particulières Transformations orthogonales (unitaires) : Inversibles, inverse facile à calculer Conservation de l’énergie dans le domaine transformé (EQM spatiale = EQM transformée) Transformations séparables : calcul des coefficients par 2 transformations successives monodimensionnelles Compression des images
Transformée de Karhunen-Loève But : décorréler totalement les coefficients Rappel : matrice d’autocovariance : Propriétés : C hermitienne : C diagonalisable, matrice de passage A unitaire D : matrice diagonales des valeurs propres de C A : matrice des vecteurs propres de C C diagonale (Xi;Xj) décorrélés (i,j) Compression des images
Transformée de Karhunen-Loève Matrice de transformation : A (transfo inverse : ĀT ) Propriétés des coefficients transformés : E(X2) diagonal : coefficients décorrélés Compression des images
Transformée de Karhunen-Loève Coefficients transformés décorrélés Energie du signal concentrée dans quelques coefficients (forte disparité des valeurs propres de D) beaucoup de coefficients très faibles -> quantifiés à 0 Transformation linéaire optimale mais … Nécessite de connaître a priori la matrice d’autocorrélation -> non universel A n’est généralement pas séparable -> pas d’algorithme rapide pour la transformation Problèmes de calcul numérique (précision lors de la diagonalisation de C) Non utilisée dans la pratique Compression des images
Transformée de Fourier discrète (TFD) Matrice de transformation : Propriétés : transformation unitaire, donc inversible transformation séparable interprétation physique : fréquences spatiales (périodicités dans l’image …) Bonne décorrélation des composantes (proche de Karhunen-Loève) Compression des images
Transformée de Fourier discrète Inconvénients : Complexité ~n log(n) (FFT) : augmente plus vite que la taille de l ’image Image à support fini : TFD sur l ’image périodisée -> introduction de discontinuités aux bords de l ’image spectre symétrique : hautes fréquences (=basses fréquences) de forte énergie, fréquences moyennes de faible énergie compression : suppression des fréquences de faible énergie Or, sensibilité du SVH décroissante avec la fréquence -> introduction d ’artefacts visibles Compression des images
Compression des images Énergie des coefficients de Fourier Sensibilité de l ’œil fréquence Quantification des coeff. Moyenne fréquence EQM faible distorsion visuelle forte Compression des images
Transformée en cosinus discrets (DCT : Discrete Cosine Transform) Idée : utiliser les avantages de la TFD (décorrélation) sans les inconvénients (hautes fréquences fortes, inadéquation avec le SVH) Principe : TFD sur l ’image symétrisée et périodisée symétrisation = pas de discontinuité sur les bords de l ’image Compression des images
DCT : interprétation graphique Compression des images
Compression des images DCT Matrice de transformation : Matrice de la transformation inverse : Propriétés : coefficients transformés réels (symétrie signal pair) séparable Compression des images
Codage des coefficients DCT Energie concentrée dans les coefficients basse-fréquence Œil peu sensible aux hautes fréquences Pas de quantification variable suivant les fréquences spatiales : matrice de quantification Inconvénients : la quantification introduit des discontinuités sur les bords des blocs : « effets de blocs » Complexité de calcul : En pratique : calcul de la DCT sur des blocs 8x8 Complexité pour 1 bloc : n.log(n) (avec n=64) sur une image : C = N*M*log(64) = 6*N*M Compression des images
Transformation en ondelettes Limite des transformations de type Fourier : Domaine fréquentiel : perte de l ’information de localisation Domaine spatial : perte de l ’information fréquentielle Analyse de signaux transitoires Analyseur à large bande : bonne décomposition fréquentielle, mais incertitude sur la localisation Analyseur à bande étroite : bonne localisation de l ’événement mais analyse fréquentielle approximative Image : information fréquentielle importante (variation de sensibilité de l ’œil) information spatiale importante (localisation « d ’évènements » : contours) Approche « mixte » spatio-fréquentielle plus adaptée à la nature du signal image (et du SVH) Compression des images
Transformation continue en ondelettes (1D) Transformation en ondelettes : Famille d ’ondelettes : b : facteur de localisation : (a(t-b)) centré autour de b a : facteur d ’échelle a grand : (a(t-b)) plus étroit, localisé en temps (plus étalé en fréquence, fréquences hautes) a petit : (a(t-b)) plus large, étalé en temps (localisé en fréquence, fréquences basses) Compression des images
Exemple : chapeau mexicain Ondelette mère : a=1, b=0 a=0.25, b=1 a=2, b=-4 Compression des images
Représentation temps fréquence y(t) d ’énergie finie y(t) tend vers 0 quand t tend vers Y(f) tend vers 0 quand f tend vers On peut déterminer les intervalles [-Dt;Dt] et [-Df;Df] tels que : [-Dt;Dt] contienne 90% de l ’énergie de la fonction [-Df;Df] contienne 90 % de l ’énergie de la fonction [-Dt;Dt] et [-Df;Df] représentent un pavé dans l ’espace temps fréquence f a0f a0Df Dt/a1 a1f Dt/a0 a1Df b0 b1 t Compression des images
Reconstruction (transformée inverse) Représentation redondante : signal réel 1D -> coefficients réels 2D non adapté à la compression représentation compacte du signal : analyse multi-résolution Compression des images
Analyse Multi-résolution (AMR) But : représenter le signal (image) par des approximations successives exemple : série de zoom progressifs sur une image On cherche à représenter les signaux de L2(R) : espace vectoriel des signaux à énergie finie AMR : suite de sous-espaces vectoriels {Vi} (iZ) de L2(R) telle que : i : niveau de résolution f(t) : ondelette père Compression des images
Compression des images Propriétés de l ’AMR Propriétés : Équation à 2 échelles (niveau 0 et niveau 1) Équation à 2 échelles (niveau i et niveau i+1) h0 : filtre passe-bas Compression des images
Base orthonormale d ’ondelettes approximation détails Propriétés : Équation à 2 échelles (niveau i et niveau i+1) H1 : filtre passe-haut Compression des images
Décomposition en ondelettes But : on veut connaître, à un niveau de résolution i, l ’approximation du signal s(t) ainsi que ses détails Approximation : Détails : Compression des images
Décomposition en ondelettes L ’équation à 2 échelles nous permet de connaître la décomposition (approximation, détail) à un niveau de résolution i directement à partir de la décomposition du niveau i-1. On peut montrer que : Les coefficients d ’approximation et de détail au niveau i sont obtenus directement à partir du coefficient d ’approximation du niveau i-1. Compression des images
Décomposition en ondelettes : mise en œuvre Calcul de ai[k] : filtrage de ai-1[] par h0[], puis décimation par 2 Calcul de ci[k] : filtrage de ai-1[] par h1[], puis décimation par 2 h0 2 a3[k] h0 2 a2[k] h0 2 a1[k] h1 2 c3[k] h1 2 c2[k] a0[k] h1 2 c1[k] Compression des images
Compression des images Synthèse Transmission : coefficient d ’approximation an et coeff. de détails {c1,…cn} Opération duale : interpolation d ’un facteur 2 (insertion de 0) filtrage : par h0 (pour l ’approximation a) ou h1 (pour l ’approximation c) a3[k] 2 h0 a2[k] 2 h0 c3[k] 2 h1 a1[k] 2 h0 c2[k] 2 h1 a0[k] c1[k] 2 h1 Compression des images
Exemple : ondelettes de Haar Compression des images
Bases d ’ondelettes à 2 dimensions Construction d ’une base d ’ondelettes 2D séparable à partir d ’une base d ’ondelette 1D détails horizontaux détails diagonaux détails verticaux Fonctions de base associées : Filtrage passe-bas dans les 2 directions passe-bas dans dir. horizontale, passe-haut dans dir. verticale passe-bas dans dir. verticale, passe-haut dans dir. horizontale Filtrage passe-haut dans les 2 directions Compression des images
Décomposition en ondelettes 2D Ondelettes séparables : traitement successif des 2 dimensions Même principe que ondelettes 1D : filtrage, décimation h0 1,2 a1[x,y] h0 2,1 h1 1,2 c1H[x,y] a0[x,y] h0 1,2 c1V[x,y] h1 2,1 h1 1,2 c1D[x,y] Compression des images
Exemple : décomposition en ondelettes d ’une image Compression des images
Application au codage d ’image Meilleure concentration de l ’énergie compression plus efficace choix de la base d ’ondelette : h0 long (régions homogènes) h1 court (localisation des contours) Effets de blocs atténués Décomposition multi-résolution : scalabilité spatiale Prise en compte des corrélations entre coefficients de bandes différentes : algorithme EZW Compression des images
Algorithme EZW (Embedded Zero-Tree Coding) Définitions : Coi(x,y) parent de Coi+k(x,y) Coi+k(x,y) descendant de Coi(x,y) arbre de coefficients Si un coefficient d ’ondelette donné est non significatif (d ’énergie faible), alors, ses descendants sont le plus souvent non significatifs (zero-tree) on ne code pas les coefficients non significatifs gain en compression Compression des images
Compression des images Algorithme EZW Aglorithme itératif, avec un ensemble de pas de quantification {q0,…qn} décroissants A l ’itération k : Quantification des coefficients Ck(x,y) par qk Codage des coefficients quantifiés par zero-tree Nouveaux coefficients : Ck+1(x,y)= Ck(x,y)-Q(Ck(x,y)) Codage par zero-tree du coefficient Ci(x,y) : code P si Ci(x,y) est significatif et positif code N si Ci(x,y) est significatif et négatif code AZ (arbre de zéros) si Ci(x,y) est non significatif et tous ses descendants sont non significatifs code ZI (zéro isolé) si Ci(x,y) est non significatif et s ’il a au moins un descendant significatif Compression des images
Algorithme EZW : avantages Compression efficace Scalabilité de qualité : on transmet d ’abord une approximation grossière des coefficients (forte quantification), puis des raffinements Permet d ’obtenir un code enfoui (embedded code) lorsque une image est codée à un débit D, le code contient de façon ordonnée tous les codes correspondant aux débits inférieurs Ex. : codage par plan de bits Utilisation dans les normes JPEG 2000 et MPEG 4. Compression des images
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
Compression des images Codage du mouvement Idée : prendre en compte la redondance entre images successives de la vidéo. Extension des méthodes de transformation linéaire 3 dimensions : (x,y,t) Transformation 3D : {Î}u,v,w=A.{I}x,y,t Ex : transformée de Fourier 3D : interprétation : basses fréquences temporelles éléments statiques de la vidéo hautes fréquences objets en mouvement En pratique les transformations linéaires ne sont pas efficaces pour décorréler la vidéo vidéo = projection sur un plan d ’une scène 3D objets en mouvement : pas d ’interprétation directe fréquentielle Compression des images
Compensation de mouvement Principe : prédire l’image courante à partir de l’information de(s) image(s) antérieure(s) Ex : scène avec fond statique (caméra immobile), objets se déplaçant dans un plan parallèle au plan de la caméra (translation pure) codage du fond : image fixe codage de la texture de chaque objet pour chaque image, transmission uniquement du déplacement de chaque objet par rapport à l ’image précédente Prédiction non linéaire : pas de combinaison linéaire des pixels de Ij pour obtenir ceux de Ij+1 Compression des images
Compensation de mouvement Problèmes : déplacements + complexes (rotation, zoom …) objets déformables occlusion, recouvrement variation d ’éclairage … A résoudre : Détermination du contour des objets (segmentation) Calcul du vecteur de mouvement pour chaque objet et du mouvement interne de l ’objet (rotation autour de son axe …) Codage de l ’information d ’erreur : objet prédit - objet réel (variation d ’éclairage…) Compression des images
Compensation de mouvement En pratique : Segmentation de l ’image en blocs de taille fixe ou variant en fonction du contenu (ex : H26L). Le plus souvent, blocs 8x8 ou 16x16 Calcul d ’un vecteur de mouvement par bloc (différentes méthodes) Codage du vecteur de mouvement et de l ’erreur de prédiction Calcul du mouvement : Appariement de blocs (block matching) Gradient spatio-temporel Segmentation spatio-temporelle Compression des images
Calcul du vecteur de mouvement par block matching Principe : découpage de l ’image à coder en blocs Bi,j Pour chaque bloc Bi,j, recherche dans l ’image de référence du bloc B ’i ’,j ’ « le plus ressemblant » vecteur de mouvement = (i-i ’,j-j ’) V=(i-i ’,j-j ’) B ’i ’,j ’ B i ,j Bloc d ’erreur : Bi,j-B ’i ’,j ’ It-1 It Compression des images
Mesure de ressemblance entre blocs EQM : rappel EAM : Erreur Absolue Moyenne plus rapide à calculer que EQM (pas d ’élévation au carré) ressemblance forte EQM, EAM faible Coefficient d ’intercorrélation coûteux en calcul ressemblance forte FCN élevé Compression des images
Méthode de recherche des blocs Recherche exhaustive : calcul de l ’EQM avec tous les blocs de l ’image de référence sélection de bloc optimale très coûteux en temps de calcul ! Recherche limitée en pratique, le déplacement d ’un objet d ’une image sur l ’autre est relativement faible zone de recherche autour du bloc courant : limitation de l ’amplitude du vecteur de mouvement Minimisation du temps de calcul : sélectionner dans la zone de recherche des blocs ne se recouvrant pas : « quantification » des vecteurs de mouvement ordonner la recherche : vecteur de faible amplitude -> vecteur de forte amplitude Compression des images
Détails sur la recherche de blocs Certaines normes vidéo (MPEG 2,4, H26L) autorisent des coordonnées non-entières pour les vecteurs de mouvement appariement sub-pixellique sur l ’image de référence interpolée erreur plus faible mais temps de calcul important ! Dans les implémentations, la compensation de mouvement est généralement l ’étape la plus gourmande en temps de calcul (>50% du temps) Compression des images
Codage de l ’information de mouvement Information (vecteur de mouvement + bloc d ’erreur) à transmettre Corrélation entre vecteurs de blocs proches codage différentiel (prédiction linéaire) codage entropique Blocs d ’erreur normalement d ’énergie faible : transformation DCT quantification (pas de quantification grand) Lorsque la taille de l’information à coder est trop importante (EQM forte) codage du bloc sans compensation de mouvement (bloc Intra) Compression des images
Exemple : la compensation de mouvement dans MPEG 3 types d ’images codées images Intra (I): codées de façon autonome (sans compensation de mouvement) peuvent servir d ’image de référence pour les images P ou B images prédites (P) : blocs codés par compensation de mouvement à partir de l ’image de référence précédente images bidirectionnelles (B) : blocs prédits par compensation de mouvement simple avant, à partir de l ’image de référence précédente (I ou P) compensation de mouvement simple arrière, à partir de l ’image de référence suivante (I ou P) double compensation de mouvement ; à partir de l ’image de référence précédente et suivante; le bloc sera obtenu par moyennage des 2 prédictions ne sont pas des images de référence Compression des images
Images B : double compensation de mouvement Compression des images
La compensation de mouvement dans MPEG Répartition des différents types d ’image : libre (non fixé par la norme) GOP (Group Of Picture) : groupe d ’images commençant obligatoirement par une image I décodable de façon autonome Compression des images
Intérêts et inconvénients de la compensation de mouvement compression efficace de l ’information vidéo Inconvénients vidéo en continu (TV) : nécessité d ’attendre une image I pour commencer à décoder -> latence Equilibrage de la taille du GOP : en pratique, GOP de taille 12 le plus souvent (1/2 seconde) sensibilité aux erreurs : une erreur sur une image de référence est répercutée sur les images suivantes l ’utilisant comme prédiction ex : vidéoconférence sur mobile : canal fortement bruité protection inégale d’erreurs : code correcteur fortement redondant sur les images de référence, faiblement redondant sur les images prédites error resilience : marqueurs de synchronisation … Inadéquation lorsque la dissimilarité entre images est trop forte (changement de plan) codage Intra (par bloc ou par image) Compression des images