IV. Compression 1. Introduction 2. Approches directes 3. Approches par transformation 4. Compression de séquences d'images
IV.1 Introduction Objectifs Historique 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) ...
Classification des méthodes de compression 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 ...
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)
Vitesse d'exécution : codeur /décodeur Complexité 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
Codage par longueur de plage Codage type dictionnaire 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)
Codage Huffman (1952) Algorithme
Codage Arithmétique (1976) JBIG Codage des Fax type IV
Exemple
Codage par longueur de plage (Run length coding) CCITT, Fax groupe III JPEG
Codage de type dictionnaire (1977)
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) ?
Quantification scalaire uniforme linéaire Seuils répartis de façon uniforme Niveaux = milieux des seuils C'est un quantificateur linéaire avec
Quantification scalaire uniforme optimale Seuils répartis de façon uniforme 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. lin. : RSB 22,5 dB Q. uni. opt. : RSB 23,8 dB Q. Max : RSB 24,2 dB
Quantification vectorielle Extension de la quantification scalaire Pixel Vecteur = bloc de pixels contigus Vecteur de taille et forme variable Approche optimale : Linde Buzo Gray (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
Structure de fichier codé
Modulation par Impulsions Codées Différentielles (MICD) 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 scaling variance niveau de gris 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
IV.3 Approches par transformation
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
Schéma général
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
JPEG = méthode générale à adapter ... 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
Compression sous-bandes / ondelettes
Décomposition pyramidale 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
Quantification séparée des sous-bandes (Woods 86) Sous-bande BF : histogramme - DPCM + scalaire + codeur entropique Sous-bandes HF : histogramme laplacien - QV treillis, ... 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é)
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
Règles de signification |ci,j| 2n 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
Algorithme de codage
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 !
JPEG 2000 (96-Fin99)
IV.4 Compression de séquences d'images Supprimer la redondance spatiale ou intra-image approches 2D Supprimer la redondance temporelle ou inter-image utiliser le déjà vu et le mouvement
Les normes MPEG
Les bases de H261 à MPEG2 3 types d'images : 3 codages
Images I (intra) - Codées JPEG' - Point d'accès séquence (0.5s) - Tc faible Images P (Prédites) - Prédites à partir de I ou P - Codage DPCM des vecteurs mvt - Codage JPEG* de l'erreur de prédiction - Tc élevé - Propagation de l'erreur Images B (Bidirectionnelles) - Interpolées à partir des I P - Tc le plus élevé
2 paramètres de réglage - N : distance inter-I (#12) - M : distance inter-P (#3) GOP
Estimation du mouvement par block matching - Blocs 16x16 - Compromis simplicité / efficacité - Rapide : algorithme logarithmique
Le codage des images P 1- Calcul des Vj entre 2- Synthèse de Ip(n) : 3- Calcul de l'erreur : E(n) = Ip(n) - I(n) 4- Codage JPEG* de E(n) 4bis- Mémorisation de 5- Codage DPCM des Vj
Codeur MPEG2
Décodeur MPEG2
Codage et TVnum Numérisation brute : 200 Mb/s DVB # DVD = MPEG2 MP@ML - 720 x 480/576 (30/25 Hz) avec IPB - 4 Mb/s (PAL/SECAM) à 9 Mb/s (studio) - Tc de 40 à 18
Appli. graph. interactives MPEG4 : caisse à outil multimédia ! MPEG4 = beaucoup + que de la compression TV Num Appli. graph. interactives WWW MPEG4 Eléments technologiques standardisés Auteurs - Fournisseurs de services - Utilisateurs Production - Distribution - Accès
Auteurs - Rendre faisable et flexible la production d'objets intégrant des technos TV, Web, VRML ... - Protéger leur droit Fournisseurs de service - Fournir une info transparente, auto-adaptable aux réseaux - Gestion de la Qualité de service (QoS) Utilisateurs - Bénéficier de nouveaux produits avec une forte interactivité
Les AVO de MPEG4 Données = Audio Visual Objects
Interactivité pour les utilisateurs Scène = S(AVO's) Interactivité pour les utilisateurs - Changement de point de vue - Navigation dans la scène - Interaction avec la scène - Modification de la scène
La compression d'images dans MPEG4 Boite à outils adaptée aux AVO - JPEG, MPEG2 - Ondelettes, Zerotree - Méthodes de 2ème génération
La compression par maillage actif Objectif Déformer un maillage pour l'adapter à l'image : - Noeuds sur les contours & Cellules homogènes Stratégie de déformation - Modèle mécanique avec minimisation d'énergie Stratégies de codage - Codage de la structure : position des noeuds - DPCM + Codeur entropique - Codage de la texture : intérieur des cellules - Interpolation - Wharping + méthodes par transformation
Maîtriser le temps de déformation
La compression par modèle Principe - Déformer le modèle pour le faire coller à l'image - Coder la déformation au cours du temps - Coder l'intérieur des mailles Spécifique à des modalités d'images
La compression par approche Objets Principe - Segmenter () l'image en régions homogènes : les objets - Coder la carte des objets () : 'chain coding' - Coder l'intérieur des Objets : shape DCT Chain coding
Plan I. Introduction II. Représentations & Acquisition III. Pré-traitement & Amélioration IV. Compression V. Segmentation VI. Introduction à l'indexation VII. Introduction au tatouage VIII. Conclusion