860 likes | 1.09k Views
IV. Compression. 1. Introduction 2. Approches directes 3. Approches par transformation 4. Compression de séquences d'images. IV.1 Introduction. Objectifs. Réduction du volume occupé par les images numériques pour faciliter leur transfert et/ou leur stockage. Historique.
E N D
IV. Compression • 1. Introduction • 2. Approches directes • 3. Approches par transformation • 4. Compression de séquences d'images
IV.1 Introduction • Objectifs Réduction du volume occupé par les images numériques pour faciliter leur transfert et/ou leur stockage • Historique • 1952 : Codeur entropique (Huffman) • 1978 : DCT (Pratt) • 1980 : Vectoriel (Linde-Buzo-Gray) • 1986 : Sous-bandes (Woods) • 1986 : Vectoriel sur treillis (Fisher) • 1989 : JPEG • 1989 : MPEG-2 • 1989 : Ondelettes (Mallat, Daubechies) • 1990 : Fractales (Jacquin) • 1996 : SPIHT • 1996 : MPEG-4 • 1997 : MPEG-7 • 1998 : JPEG2000
Applications • Imagerie médicale Télémédecine • Imagerie spatiale • Imagerie sous-marine • Archivage divers (Musée, BNF, Empreintes ...) • Vidéo conférence / visiophone (64 kb/s) • Télésurveillance • Video On Demand • Télévision numérique (150 Mb/s) • ...
Sans pertes / avec pertes contrôlées • Sans pertes (Huffman, Quadtree) • image originale = image comprimée TC limité (#3) • Avec pertes contrôlées • On perd l'information qui se voit peu TC augmente • Recherche d'un compromis Tc / Qualité • Directe / Transformation • Directe Quantification & codage des pixels de l'image • Transformation Quantification & codage des coeff. transformés • Fonction de la zone élémentaire de traitement • Pixel, ligne, bloc, image entière ... • Classification des méthodes de compression
Evaluation d'une méthode compression • Dépend de l'application • Taux de compression (Tc) Ex : image (512x512x8bpp) avec Tc=10 512x512x8/10=26215 bits 0.8 bpp • Qualité • Critère mathématique (RSB) Avec • Critères subjectifs • - Courbes ROC (médecine) • - Notations subjectives (TV)
Autres critères • Vitesse d'exécution : codeur /décodeur • Complexité • - Additions / multiplications • - Soft / Hard • Résistance au bruit de transmission • Intégration de post-traitements • - Prise en compte du récepteur (homme / machine) • Coût financier • Scalability
IV.2 Approches directes • Codage Huffman • Codage arithmétique • Codage par longueur de plage • Codage type dictionnaire • Quantification scalaire • Quantification vectorielle • Méthodes prédictives • Approche quadtree • Codage fractale Codeurs de source (Th. Information)
CodageHuffman(1952) • Algorithme
CodageArithmétique(1976) • JBIG Codage des Fax type IV
CCITT, Fax groupe III • JPEG • Codage par longueur de plage(Run length coding)
Quantification scalaire • Traitement pixel à pixel • Diminuer le nombre de niveaux de gris utilisés : Nnq < Nnp • Problèmes • - Comment choisir les seuils de quantification (si) ? • - Comment choisir les niveaux de quantification (qi) ?
Seuils répartis de façon uniforme • Niveaux = milieux des seuils • C'est un quantificateur linéaire • Quantification scalaire uniforme linéaire avec
Seuils répartis de façon uniforme • Quantification scalaire uniforme optimale • Niveaux = Barycentre (histogramme) • Quantification optimale(Loyd-Max : 1960) • Minimise l'erreur de quantification • Algorithme itératif très long pour des distributions inconnues • Tables pour des dist. gaussiennes, laplaciennes, ... • Fait le travail du codeur !
Exemple de comparaison (peppers : 512x512x8bpp) • Remarque Efficacité variable du codeur entropique !
Image originale Q. uni. opt. : RSB 23,8 dB Q. Max : RSB 24,2 dB Q. uni. lin. : RSB 22,5 dB
Quantification vectorielle • Extension de la quantification scalaire • Pixel Vecteur = bloc de pixels contigus • Vecteur de taille et forme variable • Approche optimale : LindeBuzoGray (1980) • Phase d'apprentissage : dictionnaire de vecteurs • Vecteur = représentant d'une région de Voronoï de taille variable • Dictionnaire connu du codeur /décodeur • Phase d'apprentissage délicate • Temps de recherche dans le dictionnaire • Approche treillis
Approche Treillis : Fisher, Conway, Sloane (1986) • Extension de la quantification linéaire uniforme • Treillis = vecteurs régulièrement répartis dans Rn • Dictionnaire pré-défini Pas d'apprentissage • Algorithme de quantification rapide • Algorithme de quantification vectorielle sur treillis - Choix de la norme : L1 Laplacien Pyramide L2 Gaussien Sphère - Choix de la taille des vecteurs - Choix du treillis : Zn, An, Dn (4), En(8), n(16) Taux (B) K rayon du dictionnaire contenant 2nB vecteurs Procédure de dénombrement
Bornage des vecteurs par le facteur d'échelle A = Es/K Ramène les vecteurs à l'intérieur du dictionnaire - Traitement spécial pour les vecteurs d'énergie > Es Quantification - Vecteur vecteur du dictionnaire le plus proche Codage des vecteurs : code produit - Rayon : code Huffman - Index : code de longueur fixe
Illustration de la quantification vectorielle sur treillis Vecteurs 2x1
Méthodes prédictives(1974) • Exploitent la corrélation entre pixel voisin Modulation par Impulsions Codées Différentielles (MICD) DPCM • Propagation des erreurs • Prédicteurs non optimaux • Adaptation aux statistiques locales
Approche Quadtree • Découpage récursif en carrés homogènes • Critère de split : variance, ...
Codage de l'arbre : règle de parcours (Peano) • Codage des régions homogènes : moyenne, interpolation ...
Compression par fractale • Les Fractales (B. Mandelbrott) • - Observations naturelles : nuages, plantes ... • - Auto-similarité à toutes les échelles redondance dans l'image • Les 'Iterated Functions Systems' (IFS) • - Wi : Transformation affine contractante rotations, réflexions position déplacement niveau de gris scaling variance offset moyenne
Recherche d'un IFS pour générer une image • très fort taux de compression mais image spéciale • Approche directe • Transformation de l'image = morceau de l'image • image # w1(image) w2 (image) ... wn (image) Fougère : 4 transformations = 192 bits 512² : Tc = 1365 • Utilisation de bibliothèque d'IFS • image segmentée en un ensemble d'IFS connus
Compression par IFS local (Jacquin 1990) • - Approche valable sur des images quelconques • Codage
Mettre les Dj à la taille de R : Sous-échantillonnage +- moyennage Définir la zone de recherche - toute l'image - limitée (ei,fi) Recherche du (WiDj) le plus proche de Ri - Mesure de distance L1, L2, L Ex : pour L2 - - - ai, bi, ci, di = (0,-1,1) 4 rotations (-90, 90,180,0) 4 réflexions(_ | / \) Codage de longueur fixe ou variable code = Swi
Variantes - formes des blocs - recherche des wi - codage des wi • Codage très long • Décodage instantané
Point de départ It n° 1 RSB = 23,8 dB It n° 2 RSB = 27,33 dB It n° 3 RSB = 32,16 dB Tc = 10
Représentation différente de l'image • Décorrélation Gain en performances • Temps de calcul supplémentaire • Une Transformation • Réversible (sans perte) • Orthogonale (énergie conservée) • Rapide • DCT JPEG • Ondelettes SPIHT, JPEG2000
Compression DCT bloc : JPEG(1989) • DCT bloc 8x8 • homogénéité locale de l'image • l'erreur de quantification est localisée au bloc
Matrice de normalisation • allocation des bits aux coeffs avant quantification par arrondi Matrice chrominance Matrice luminance
Lecture zig-zag • prise en compte de la répartition spatiale de l'énergie pour faire apparaître de longues plages de coeffs nuls • Codage du coeff DC • DPCM d'ordre 1 + Huffman
Codage des coeffs AC • Codage hybride : runlength + ... + Huffman • - Huffman = Code (plage de 0 + catégorie) • 162 codes : 10catx16lp+2(EOB+16)
Exemple • 0 -2 -1 02 -1 046 111001 0 0 / 00 0 / 11011 0 / 1010 • Extrait de la table d'Huffman des AC
Remarques • JPEG = méthode générale à adapter ... • Très performant à taux faibles (#10) • Effets de blocs à taux élevés Tc = 10 / RSB = 30.1 dB Tc = 20 / RSB = 28.7 dB
Décompositionpyramidale en sous-bandes • banc de filtres FIR 1D : bi-orthogonaux 9-7 • - phase linéaire, rec. parfaite, pas orthogonaux, réguliers • Concentration d'énergie dans la BB
Allocation des bits aux sous bandes par modèle • - Min(D) avec B<Bf Optimisation • - Théorie de la distorsion : bruit de quantification D=f(B) • - très rapide sous-optimal (modèle réalité) • Quantification séparée des sous-bandes (Woods 86) • Sous-bande BF : histogramme • - DPCM + scalaire + codeur entropique • Sous-bandes HF : histogramme laplacien • - QV treillis, ...
Exemples Originale Sous-bandes Tc=32
Sous-bandes Tc=32 RSB = 30.1 dB JPEG Tc=32 RSB -3%
Originale Sous-bandes Tc=60 !!