1.58k likes | 1.74k Views
Traitement d'images 4TC - Option « Télécoms » Hugues BENOIT-CATTIN. Plan. I. Compression II. Segmentation III. Indexation IV. Tatouage. Remerciements à A. Baskurt, C. Odet pour la partie II. I. Compression. 1. Introduction 2. Approches directes (Vectorielle, Quadtree, Fractale)
E N D
Traitement d'images 4TC - Option « Télécoms » Hugues BENOIT-CATTIN
Plan • I. Compression • II. Segmentation • III. Indexation • IV. Tatouage Remerciements à A. Baskurt, C. Odet pour la partie II
I. Compression • 1. Introduction • 2. Approches directes (Vectorielle, Quadtree, Fractale) • 3. Approches par transformation (SPIHT, JPEG2000) • 4. Compression de séquences d'images (MPEG4)
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
Sans pertes / avec pertes contrôlées bits image Transformation Quantification Codage • 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 • 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
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)
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 !
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
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
Décomposition en sous-bandes / ondelettes • Esteban/Galland 1977 - Woods/O ’Neil 1986 - … - Mallat (1989) • Filtres FIR 1D, 2D • Filtres IIR 1D, 2D Une Décomposition
Une reconstruction • Décomposition / Reconstruction sans pertes cascades
Pyramidale (itérée en octave) Adaptative
Réversible • Concentration d ’énergie • Spatio - fréquentiel • Analyse & Compression
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 !!
Quantification globale des sous-bandes (shapiro 93) SPIHT • Algorithme très rapide, RSB élevé, 'embedded' • Basé sur : • - Transmission progressive par plan de bits = Q. scalaire • - Exploite l'auto-similarité inter-sous-bandes : arbres de coeffs http:\\ipl.rpi.edu/research/SPIHT
SPIHT (Set Partitionning In Hierarchical Trees) Said & Pearlman 96 • Décomposition en ondelettes (9-7) • Partition des coeffs en arbres signifiants • Transmission progressive par plan de bits • +- Codeur arithmétique
Transmission progressive par plan de bits Minimiser l'erreur de quantification D
Partitionning Tree • Relation de parenté inter sous-bandes
|ci,j| 2n • Règles de signification • Définition des ensembles
Règles de division • Listes de signifiants ! SPIHT ne fait que de la gestion de liste de coordonnées et du masquage binaire
La stratégie de parcourt est connue du décodeur les coordonnées ne sont plus codées !
Exemples JPEG Tc=32 RSB : 30.25 SPIHT Tc=32 RSB : 32.45
SPIHT , TC=30 SPIHT , TC=240 !