compression et codage - moodle · nikola stikov (ele8812) compression et codage i 1 / 48 1. no%ons...
Post on 16-Sep-2020
13 Views
Preview:
TRANSCRIPT
0 / 48Compression et codage INikola Stikov (ELE8812)
Nikola Stikov
ELE8812
19 mars 2019
Compression et codage
1 / 48Compression et codage INikola Stikov (ELE8812)
1. No%ons fondamentales• Introduc%on• No%ons de redondance• Modèle de codage et normes• No%on d’informa%on
2. Codage de source• Codage de Huffman• Codage de Golomb• Codage arithmé%que• Codage de Lempel-Ziv-Welch
3. Redondance spa%ale• Codage par longueur de plage (RLC)• Codage par plans de bits (BPC)• Codage par symboles
Plan
2 / 48Compression et codage INikola Stikov (ELE8812)
Notions fondamentales
IntroductionIntroduc2on
Nécessité de compresser les images• Prévalence des images ou des séquences d’images (loisirs, industie,
santé, …)• Problème de taille : 1 film de 2h00, basse resolution = 224 Go
Compression nécessaire pour • Stocker les images• Transmettre les images (de la télécopie à internet)
Exemples• Dossier medical informa2sé
(PACS)• Archives historiques
• Blogs, Facebook, …• Photographie numérique
3 / 48Compression et codage INikola Stikov (ELE8812)
No#ons fondamentales
Notions fondamentalesNotion de redondance
Défini#ons
Image originale : b bits ; image compressée : b’ bits
• Taux de compression : C = ⁄b b’• Redondance rela#ve : R = 1− ⁄1 C
Codage : u#lisa#on de la redondance
© 1992-2008 R. C. Gonzalez & R. E. Woods
Redondance de source Redondance spatiale Information non pertinente
4 / 48Compression et codage INikola Stikov (ELE8812)
Notions fondamentales
Redondance de source Notion de redondance
Principe• Image : suite de symboles indépendants• Exemple de codage à longeur variable :
•
•
© 1992-2008 R. C. Gonzalez & R. E. Woods
5 / 48Compression et codage INikola S9kov (ELE8812)
Exemple : codage par longueur de plage (RLC)
• Codage de la longeur et de la valeur de chaque segment horizontal
d’intensité constante
• 512 octets : C = 128 !
Redondance spatiale
Notions fondamentales NoFon de redondance
© 1992-2008 R. C. Gonzalez & R. E. Woods
6 / 48Compression et codage INikola Stikov (ELE8812)
Information non pertinenteNotions fondamentales No1on de redondance
Exemple : image quasi-homogène
• Compression avec perte : une seule valeur. C = 256%!• Compression sans perte : redondance spatiale et redondance de
source
© 1992-2008 R. C. Gonzalez & R. E. Woods
7 / 48Compression et codage INikola Stikov (ELE8812)
Structure d’un système de codageNo3ons fondamentales Modèle de codage et normes
Principales étapes
• Possible ajout de redondance lors de la transmission ou du stockage
• Quelle transforma3on (mapper) ?• Quel codage de source (symbol coder) ?
© 1992-2008 R. C. Gonzalez & R. E. Woods
Codage RLC
8 / 48Compression et codage INikola Stikov (ELE8812)
Notions fondamentales Modèle de codage et normes
Normes, conteneurs et formats (1)Réponses toutes faites
Format de fichier
Conteneur
© 1992-2008 R. C. Gonzalez & R. E. Woods
© 1992-2008 R. C. Gonzalez & R. E. Woods
9 / 48Compression et codage INikola Stikov (ELE8812)
Notions fondamentales Modèle de codage et normes
Normes, conteneurs et formats (2)Réponses toutes faites
Norme de compression
En pratique
• Transformation : doit être adaptée au type d’image (de redondancespatiale) à compresser
• Codeur de symbols : mesures de qualité (en function de la probabilité des différents symboles…)
© 1992-2008 R. C. Gonzalez & R. E. Woods
10 / 48Compression et codage INikola S:kov (ELE8812)
Notions fondamentales
Arrière-plan mathématiqueNotion d’information
Notion d’information• Information contenue par un évènement E : I E = − log& p E bits• Entropie d’une source (symbole indépendants) :
• Premier théorème de Shannon : H limite inférieure de L̅
Fidélité (codage avec perte)
• ,f x ,y : image résultant du codage de f x ,y
• Mesure la plus courante : SNR =-f x ,y
.
-f x ,y / f x ,y.
Attention aux hypothèses sur la source !
11 / 48Compression et codage INikola Stikov (ELE8812)
Codage de source
Codage de Huffman (1)Codage de Huffman
Principe• Probabilité de chaque symbole connue• Codage de longueur variable (probabilité ↘, longueur ↗ )
Exemple de construction
12 / 48Compression et codage INikola S:kov (ELE8812)
Codage de source
Codage de Huffman (2)Codage de Huffman
Résultat de la construction
Propriétés• Séparabilité ⇒pas de nécessité de coder la séparation entre symboles• Quasi-optimalité au sens de la théorie de l’information
En pratique• p rk ? Indépendance entre symboles ?• Quantités à transmettre:• symboles et leur probabilité• symboles codés
13 / 48Compression et codage INikola Stikov (ELE8812)
Codage de source
Codage de GolombCodage de Golomb
Principe• Codage de valeurs entières positives• Choix d’un diviseur m• Codage d’une valeur x par son quotient q et son reste r• quotient : codage unaire
• reste : codage de longueur variable detectable sans ambiguïté (voir manuel)
Propriétés• Séparabilité ⇒pas de nécessité de coder la séparation entre symboles• Quasi-optimalité pour des distributions exponentielles
14 / 48Compression et codage INikola S9kov (ELE8812)
Codage de source
Codage de Golomb (2)Codage de Golomb
En pratique• Hypothèses sur la distribution des symboles ?• Quantités à transmettre :• valeur de m• au besoin, table d’ordonnancement des symboles
• symboles codés
15 / 48Compression et codage INikola Stikov (ELE8812)
Codage de source
Codage arithmétique (1)Codage arithmétique
Principe• Probabilité de chaque symboleconnue• Ordonnancement lexicographique et codage de suites de symboles (messages)
par la variable aléatoire uniformément répartie sur [0, 1] équivalente
Exemple : 4 symboles
© 1992-2008 R. C. Gonzalez & R. E. Woods
16 / 48Compression et codage INikola Stikov (ELE8812)
Codage de source
Codage arithmétique (2)Codage arithmétique
Exemple : message de 5 symboles
© 1992-2008 R. C. Gonzalez & R. E. Woods
17 / 48Compression et codage INikola Stikov (ELE8812)
Codage de source
Codage arithmétique (3)Codage arithmé5que
Propriétés• Quasi-optimal• Nécessité de choisir une représentation arithmétique appropriée de l’intervalle
[0, 1]• Nécessité de transmettre des codes de fin de messages
En pratique• Probabilité des symboles et granularité de la représentation de [0, 1] ? • Quantités à transmettre :• probabilité de chaque symbole
• code de chaque message
• code de fin de message
18 / 48Compression et codage INikola Stikov (ELE8812)
Codage de source
Codage de Lempel-Ziv-Welch (LZW) (1)Codage de Lempel-Ziv-Welch
Principe• Codes de longueur fixe• Construction récurrente d’un dictionnaire (mot : suite de symboles) au codage et
au décodage
En pratiqueQuantités à transmettre :• Liste des symboles • Taille dudictionnaire• Technique de gestion desdébordements
19 / 48Compression et codage INikola Stikov (ELE8812)
Codage de source
Codage de Lempel-Ziv-Welch (LZW) (2)Codage de Lempel-Ziv-Welch
Exemple : image (4, 4) sur 256 niveaux
20 / 48Compression et codage INikola Stikov (ELE8812)
Codage de source
Codage par longueur de plage (RLC) (1)Codage par longueur de plage (RLC)
Principe• Utilisation de la redondance spatiale • Description d’une image par:• la longueur d’un segment d’intensité constante dans une direction de
balayage de l’image• la valeur de l’intensité
• Très efficacepour les images binaires (norme entélécopie)
Exemple : format BMP• Mode codé : 2 octets (longueur du segment, valeur de l’intensité)• Mode absolu :
© 1992-2008 R. C. Gonzalez & R. E. Woods
21 / 48Compression et codage INikola Stikov (ELE8812)
Codage de source
Codage par longueur de plage (RLC) (2)Codage par longueur de plage (RLC)
En pratique• Relativement peu efficacepour les images non binaires• Peut conduire à un accroissement de la taille des images ! • Peut être associé à un codage desource• Utilisé dans les normes CCITT
22 / 48Compression et codage INikola Stikov (ELE8812)
Redondance spa*ale
Codage par plans de bits (BPC) (1)Codage par plans de bits (BPC)
Principe• Décomposition de chaque pixel de l’image en forts poids ―> faibles
poids• Constitution et codage des k images binaires
Autre possibilité : décomposition en codes de Gray
• bk!", bk!$, … , b0 valeur des - bits• Codes de Gray :
gk!" = bk!"gi = bi2" XOR bi 0 ≤ i≤ k−2
Difficulté : sensibilité à de petites variations d’intensité
23 / 48Compression et codage INikola Stikov (ELE8812)
Décomposition BPC et codes de Gray
© 1992-2008 R. C. Gonzalez & R. E. Woods
Redondance spatiale Codage par plans de bits (BPC)
Codage par plans de bits (BPC) (2)
24 / 48Compression et codage INikola S9kov (ELE8812)
Redondance spatiale
Codage par symboles (1)Codage par symboles
Principe• Reconnaissance de symboles (caractères)• Création d’un dictionnaire de symboles• Description de l’image comme un assemblage de ces symboles
Exemple élémentaire
© 1992-2008 R. C. Gonzalez & R. E. Woods
25 / 48Compression et codage INikola Stikov (ELE8812)
Redondance spatiale
Codage par symboles (2)
Codage par symboles
Exemple d’utilisation : codage JBIG2
• Segmentation de l’image
• Caractères ou halftones : symboles
• Autres régions (e.g., lignes) : codage de source
Exemple : distorsion induite par le codage
© 1992-2008 R. C. Gonzalez & R. E. Woods
26 / 48Compression et codage INikola Stikov (ELE8812)
1. Codage par transformée par blocs• Démarche générale• Choix de la transformée• Sélec:on et quan:fica:on des coefficients• Redondance structurelle et codage des symboles• Exemple : codage JPEG
2. Codage prédic:f• Codage prédic:f sans et avec perte• Structure et spécifica:on des prédicteurs• Quan:fica:on de l’erreur de prédic:on
Plan
27 / 48Compression et codage INikola Stikov (ELE8812)
Codage par transformée par blocs Démarche générale
Codage par transformée par blocsDémarche générale
Étapes du codage et du décodage
© 1992-2008 R. C. Gonzalez & R. E. Woods
Points en suspens• Choix de la taille des blocs• Choix de la transformée• Nature de la quantification• Type de codage de symboles
28 / 48Compression et codage INikola Stikov (ELE8812)
Transformés 2D et compression d’images
Transformées discrètes usuelles• Séparabilité• Orthogonalité• Significa=on physique (?)
Transformées de Fourier, de Walsh, en cosinus, Haar
Codage par transformée par blocs Choix de la transformée
Transformée en cosinus
Fourier: Principales caractéristiques• Calculs très rapides (algorithme FFT)• Coefficients complexes• Effets de bord significatifs dès qu’une troncature est effectuée• Robustesse à la troncature et à la quantification (information packing
ability) ?
29 / 48Compression et codage INikola S:kov (ELE8812)
Codage par transformée par blocs Choix de la transformée
Autres Transformée
Walsh Cosinus discrète Haar
30 / 48Compression et codage INikola Stikov (ELE8812)
Transformés en cosinus discrèteCodage par transformée par blocs Choix de la transformée
Définition• Cadre 1D :
• Cadre 2D :
Caractéristiques de la TCD • Orthogonalité ?• Signification physique ?• Simplicité des calculs• Effets de bord ?
CaractérisCques des transformées
31 / 48Compression et codage INikola Stikov (ELE8812)
Caractéristiques de la TCDCodage par transformée par blocs Choix de la transformée
TCD et TFD : approche algébrique[Strang, SIAM Review, 41, 1999]• Base de Fourier : base de vecteurs propres d’un opérateur de
differences secondes circularisé• Base de cosinus : base de vecteurs propres d’un opérateur de
differences secondes avec bords libres
Conséquence : la TCD est une quasi TFD• Orthogonalité, significaNon physique, simplicité des calculs• Coefficients réels• Effets de bord réduits
32 / 48Compression et codage INikola Stikov (ELE8812)
Exemple : troncature de 50 % (Fourier, Walsh, cosinus)
© 1992-2008 R. C. Gonzalez & R. E. Woods
Comparaison des transforméesCodage par transformée par blocs Choix de la transformée
33 / 48Compression et codage INikola S9kov (ELE8812)
Sélection des coefficientsCodage par transformée par blocs Sélec5on et quan5fica5on des coefficients
Cadre général
• Transformée fixée, orthonormale
• Décomposition :
• Décomposition tronquée :
• Masque : compose de zéros (coefficients tronqués) et de uns
(coefficients sélectionnés)
Comment choisir ?
Minimisa5on de l’erreur quadra5que : conserva5on des coefficients de plus forte amplitude
34 / 48Compression et codage INikola Stikov (ELE8812)
Codage par transformée par blocs
Synthèse
• Choix de la transformée :
TCD (bon compromise)
• Selection des coefficients :
• par seuil (coefficients
d’amplitude maximale)
• par zone (coefficients de
variance maximale)
Aspects pratiques
SélecDon et quanDficaDon des coefficients
Exemple : seuil vs. zone
© 1992-2008 R. C. Gonzalez & R. E. Woods
35 / 48Compression et codage INikola S:kov (ELE8812)
Exemple : codage JPEG (1)Exemple : codage JPEG
Principales caractéris:ques (codage de base)• 256 niveaux de gris• Taille des blocs : n = 8• U:lisa:on de la TCD• Quan:fica:on des coefficients avec une table de normalisa:on. 11 bits
maximum• Codage mixte (Huffman + RLC) des coefficients quan:fiés• Traitement par:culier de "T 0 ,0
Codage par transformée par blocs
36 / 48Compression et codage INikola Stikov (ELE8812)
Exemple : codage JPEG (2)Exemple : codage JPEGCodage par transformée par blocs
élection des symbloles
Table de normalisa?on
© 1992-2008 R. C. Gonzalez & R. E. Woods
Ordonnancement des coefficients
© 1992-2008 R. C. Gonzalez & R. E. Woods
37 / 48Compression et codage INikola S:kov (ELE8812)
Étapes du codageExemple : codage JPEGCodage par transformée par blocs
Image de départ DCT
Normalisa:on Quan:za:on
38 / 48Compression et codage INikola Stikov (ELE8812)
Étapes du codageExemple : codage JPEGCodage par transformée par blocs
Image de départ Réconstruction
Difference
© 1992-2008 R. C. Gonzalez & R. E. Woods
39 / 48Compression et codage INikola Stikov (ELE8812)
Exemple : codage JPEGCodage par transformée par blocs
© 1992-2008 R. C. Gonzalez & R. E. Woods
Codage JPEGExemple de résultat
Taux de compression de 25 et de 52
40 / 48Compression et codage INikola S9kov (ELE8812)
Codage prédictif (1)
Principe• Image composée d’une par9e certaine (modèle déterministe) et d’une
par9e incertaine (dévia9on par rapport au modèle)• Stockage • des coefficients du modèle• de la dévia9on par rapport au modèle
Codage prédic'f• Approche « signal » : ordonnancement des pixels• Pixel courant : combinaison linéaire de pixels passés
Codage sans ou avec pertes• Sans perte : dévia9on stockée exactement• Avec pertes : dévia9on quan9fiée et stockée avec approxima9on
Codage prédictif
41 / 48Compression et codage INikola Stikov (ELE8812)
Codage prédic,f
© 1992-2008 R. C. Gonzalez & R. E. Woods
Codage prédic,f (2)
Image vs. déviation par rapport au modèle Spécifica,on du prédicteur
42 / 48Compression et codage INikola Stikov (ELE8812)
Codage prédictif
Codage prédic.f (3)Codage prédictif sans et avec perte
Structure du codeur et du décodeur
43 / 48Compression et codage INikola Stikov (ELE8812)
Codage prédictif Structure et specifica3on des prédicteurs
Images fixes• Ordonnancement des pixels selon un balayage raster (en général, ligne
par ligne)• Prédiction du pixel courant à partir des pixels précédents les plus proches
(1, 2, 3 ou mixte)
f x ,y = "1f x ,y− 1 +"2f x − 1,y +"3f x − 1,y− 1 + & x ,y
• Transmission des "i et de l’erreur de prédiction (quantifiée ou non)
Séquence d’images• Prédiction du pixel courant à partir du (des) pixel(s) correspondant(s)
de l’image précédente• Estimation locale des mouvements ―> amélioration sensible
Structure des prédicteurs (1)
44 / 48Compression et codage INikola Stikov (ELE8812)
Structure des prédicteurs (2)Codage prédic4f Structure et specification des prédicteurs
Exemple
© 1992-2008 R. C. Gonzalez & R. E. Woods
45 / 48Compression et codage INikola S9kov (ELE8812)
Codage prédic,f Structure et specification des prédicteurs
Spécifica,on a priori• Spécifica,on empirique des paramètres• Choix Classique : f x ,y = f x ,y− 1 + % x ,y
Es,ma,on • Prédic,on linéaire f = F & + '• F : matrice construite à par,r des pixels de l’image• Es,mateurs classiques avec forme explicite (par ex., moindres carrés)
Spécification des coefficients de prédiction
Exemple
46 / 48Compression et codage INikola Stikov (ELE8812)
Codage prédictif Quan1fica1on de l’erreur de prédic1on
Quantification de l’erreur de prédiction
© 1992-2008 R. C. Gonzalez & R. E. Woods
Un choix simple : la modula1on delta
•• Quan1fica1on de l’erreur de prédic1on avec 1 bit !
Exemple de limitations
47 / 48Compression et codage INikola Stikov (ELE8812)
Quantification optimale (1)
À L donné
• Choix des valeurs de s ?• Choix des valeurs de t ?
Codage prédic=f
© 1992-2008 R. C. Gonzalez & R. E. Woods
Quantification de l’erreur de prédiction
Posi=on du problème
Approche : estimationMinimisation d’une erreur moyenne de quantification
48 / 48Compression et codage INikola Stikov (ELE8812)
Tatouage non résistant aux transformations
© 1992-2008 R. C. Gonzalez & R. E. Woods
Éléments de « tatouage numérique » (watermarking)
Exemple : Codage sur les bits de faible poids
Exemple : tatouage de la TCD• Codage:• calcul de la TCD de l’image et sélecMon des
K plus grands coefficients
• généraMon d’une sequence !" de Knombres pseudo-aléatoires
• ajout pondéré des !" aux coefficients de la TCD
• Décodage:• calcul de la TCD de l’image tatouée
• sélecMon des coefficients tatoués
• calcul des #!" , esMmée de la séquence pseudo aléatoire
• décision sur une base de distance entre #!" et !"
top related