Transparents
Transcription
Transparents
Le format de compression JPEG TSECS Elsa Angelini Département TSI ENST, Paris 8 Décembre 2004 Introduction JPEG = Joint Photographic Experts Group: Joint standards. (Janvier 1988) Commissions de standard ITU-T et ISO. Standard de compression flexible pour les images monochromes et de couleur. Schéma de code intra-trames. Optimal pour des images immobiles. Taille des images flexibles. Codages des composantes couleurs indépendants. Espace des couleurs arbitraire. Meilleur compression en Rouge-Bleu-Jaune Ratio de compression variable. Compression 24:1 pour les images ITU-R 601 sans perte de qualité. 1 Introduction Compression d’image Diminuer la taille de stockage. Diminuer le temps et coûts de transmission. Types de compression Avec perte d’info (lossy) ou sans perte d’info (lossless). Séquentielle ou progressive. Multiresolution. Codec JPEG 1 codec (codeur/décodeur) par mode opérationnel. Image originale Image originale Transformée Transformée inverse Pondération/ quantification uniforme Codage entropique Inverse de pondération/ quantification uniforme Décodage entropique Image codée Image codée 2 Codec JPEG: Le descripteur Image originale Image originale Transformée Transformée inverse Pondération/ quantification uniforme Codage entropique Inverse de pondération/ quantification uniforme Décodage entropique Image codée Image codée Codec JPEG: Le descripteur Rôle de la transformée: Décorrélation des coefficients. Représentation compacte de l’image. Deux modes: TCD pour codage avec perte d’information. Codage prédictif sans perte d’information. 3 Codec JPEG: Le descripteur TCD Transformation Linéaire 1D Orthogonale Inversible ⎛ a00 … a0 N ⎞ ⎜ ⎟ A=⎜ ⎟ ⎜a ⎟ a NN ⎠ ⎝ N0 Y = AX , Transformation en Cosinus Discrète 1D (TCD) ⎛ π m ( 2n + 1) ⎞ amn = C ( m ) × cos ⎜ ⎟ 0.5 0.4 0.3 0.2 0.1 0 2N ⎝ N −1 Y (m) = ∑ amn × X ( n ) n=0 ⎠ -0.1 -0.2 -0.3 -0.4 C ( 0) = 1 N C ( m) = 2 N -0.50 10 ,m≠0 20 30 40 50 60 70 80 90 100 N points m = 10, C ( m ) = 1, N = 100 Codec JPEG: Le descripteur TCD Transformation en Cosinus Discrète 2D TCD N1 −1 N 2 −1 Y ( m1 , m2 ) = C ( m1 ) × C ( m2 ) × ∑ 1 n1 = 0 n2 = 0 2 TCDI X ( n1 , n2 ) = N1 −1 ⎛ π m1 ( 2n1 + 1) ⎞ ⎛ π m2 ( 2n2 + 1) ⎞ ⎟ × cos ⎜ ⎟ 2 N 2N2 1 ⎝ ⎠ ⎝ ⎠ ∑ X ( n , n ) × cos ⎜ N 2 −1 ⎛ π m1 ( 2n1 + 1) ⎞ ⎛ π m2 ( 2n2 + 1) ⎞ ⎟ × cos ⎜ ⎟ 2 N 2N2 1 ⎝ ⎠ ⎝ ⎠ ∑ C ( m ) ∑ C ( m ) × Y ( m , m ) × cos ⎜ m1 = 0 1 m2 = 0 2 1 2 • Composante réelle de la Transformée de Fourier. •Algorithmes d’implémentation rapides diffèrent d’un codec à l’autre. 4 Codec JPEG: Le descripteur TCD Transformation en Cosinus Discrète 2D TCD Compression avec 10/64 coefficients de TCD dans bloques 8*8. Codec JPEG: Le descripteur TCD • Dans un bloque 8*8 , la plupart des composantes fréquentielles sont nulles-> non codées. Image originale Image originale TCD 8x8 par bloques Pondération/ quantisation uniforme Codage entropique TCDI 8x8 par bloques Inverse de pondération/ quantisation uniforme Décodage entropique Image codée Image codée •Codec prévu pour des images de 8 bits et 12 bits. 5 Codec JPEG: Le descripteur TCD Rôle de la transformée: Décorrélation des coefficients. Représentation compacte de l’image. Deux modes: TCD pour codage avec perte d’information. Codage prédictif sans perte d’information. Codec JPEG: Le descripteur Prédictif Codage Prédictif: Le signal lui-même. La première valeur du signal X(0) et les différences X(n+1)-X(n). 5000 4500 4000 3500 Histogramme de l’image 3000 2500 2000 1500 1000 500 0 10 0 x 10 50 100 150 200 250 300 4 9 8 Histogramme des différences 7 6 5 4 3 2 1 0 0 10 20 30 40 50 60 70 80 90 100 6 Codec JPEG: Le descripteur Prédictif Codage Prédictif: Differential Pulse Code Modulation (DPCM) Point X(n) + Point X(n-1) Descripteur: X(n)-X(n-1) - + Point X(n-1) Descripteur: X(n)-X(n-1) Reconstruction X(n) + Codec JPEG: Encodeur/Décodeur Image originale Image originale Transformée Transformée inverse Pondération/ quantification uniforme Inverse de pondération/ quantification uniforme Codage Entropique Décodage Entropique Image codée Image codée 7 Transformée Modèle statistique de l’encodeur Symboles Image originale Descripteurs Codec JPEG: Encodeur Tables de codage du modèle Encodeur entropique Image codée Tables de codage entropique Codec JPEG: Encodeur Transformée Modèle statistique de l’encodeur Symboles Image originale Descripteurs Quantification des coefficients Encodeur entropique Image codée Tables de codage entropique Tables de codage du modèle 8 Codec JPEG: Encodeur Modèle Statistique de l’Encodeur 64 coefficients {yi} = Dictionnaire C(x,y) Transformée y1 y2 y3 y4 Descripteurs quantifiés y codage x decodage x (n ) → i (n ) → C Q ( x, y ) = C ( x, y ) Q ( x, y ) yi ( n ) Tables de codage du modèle (Pas de quantification définis dans une table à partir d’études psycho visuelles) Q Perte d’information à la reconstruction: C ( x, y ) = C ( x, y ) × Q ( x, y ) Codec JPEG: Encodeur Modèle Statistique de l’Encodeur • Observation: Forte corrélation entre les coefficients DC de bloques adjacents. • Observation: Coefficients de basse fréquence plus probables. Probabilité de valeur non-nulle Probabilité qu’un coefficient soit non-nulle fonction décroissante monotone de la fréquence du coefficient. Fréquence 9 Codec JPEG: Encodeur Modèle Statistique de l’Encodeur. Réarrangement des coefficients en zigzag. Transformée de l’image en TCD par bloques Lecture zigzag des coefficients de TCD 0 1 5 2 3 4 8 7 13 16 26 29 42 12 17 25 30 41 43 6 14 15 27 28 9 11 18 24 31 40 44 53 10 19 23 32 39 45 52 54 20 22 33 38 46 51 55 60 21 34 37 47 50 56 59 61 ⎛C0,0 … C0,7 ⎞ ⎜ ⎟ ⎡⎣C0,0 . . . C7,7 ⎤⎦ ⎜ ⎟ ⎜C C7,7 ⎟⎠ Probabilité qu’un coefficient soit ⎝ 7,0 35 36 48 49 57 58 61 63 Fréquences verticales 8*8 Fréquences horizontales non-nulle fonction décroissante monotone de l’ index du coefficient. Codec JPEG: Encodeur Modèle Statistique de l’Encodeur Descripteurs Quantifiés DC DPCM Différences des coeff DC RLE (# 0, valeur) ZigZag AC ⎡⎣C0,0 C0,1 . . . C7,7 ⎤⎦ - DPCM: Differential Pulse Code Modulation. symboles - RLE: Run Length Encoding. DC: {(Symbol_1,Symbol_2)} symbol_1=(SIZE) Symbol_2=(AMPLITUDE) AC: {(Symbol_1,Symbol_2)} symbol_1=(RUNLENGTH,SIZE) Symbol_2=(AMPLITUDE) 10 Codec JPEG: Encodeur Transformée Modèle statistique de l’encodeur Symboles Image originale Descripteurs Encodeur Entropique Tables de quantification Encodeur entropique symboles codée Tables de codage entropique Codec JPEG: Encodeur Encodeur Entropique Information propre de l’événement {X=xi}: Information ( xi ) = − ln 2 ( p X ( xi ) ) p X ( xi ) est la probabilité de la valeur xi bits/symbole dans l’image X. Entropie= Information propre moyenne par symbole: H = −∑ p X ( xi ) × ln 2 ( p X ( xi ) ) i - Utilisée comme mesure de la performance d’un système de codage. - Donne la borne inférieure (performance optimale) en bits [Shannon]. 11 Codec JPEG: Encodeur Encodeur Entropique Transforme des mots de code de longueur fixe en mots de code de longueur variable (VLC: Variable length coding). Bijection des symboles {yi} dans {zi} pour minimiser nombre moyen de bits/coefficients. Paramètres sont les probabilités P(yi). Table de codage de Huffman donne des probabilités fixées a priori. Codec JPEG: Encodeur Encodeur Entropique: Exemple Codage par longueur de code fixe. Prévisions météo Soleil Nuages Pluie Neige Code Binaire 00 01 10 11 l = 4 × (1 4) × 2 = 2 bits / symbole Codage par longueur de code variable Probabilité Nombre de bits idéal 1/2 1 1/4 2 1/8 3 1/8 3 Code Entier 0 10 110 111 l = (1 2) ×1+ (1 4) × 2 + (1 8) × 3 + (1 8) × 3 = 1.75 bits / symbole H = − (1 2) × ln2 (1 2) − (1 4) × ln2 (1 4) − 2× (1 8) × ln2 (1 8) = 1.75 bits / symbole 12 Codec JPEG: Encodeur Encodeur Entropique Principe: Donner un nom de code court aux symboles très probables. Codeur de Huffman Table de codage fixe ou adaptive. Calculs et implémentations simples. Utilise des mots de code de longueurs entières. (Information = # bits utilisés). Codage optimal pour codes de longueur entière. Codeur arithmétique Meilleur taux de compression. Table de codage adaptive. Utilise des probabilités pour des codes de longueurs nonentières. Codec JPEG: Encodeur Encodeur Entropique: Huffman Codage par longueur de code variable Table FIXE de codage de Probabilité Probabilité Huffman 0 racine 0 0 1 1 1 1/4 1/8 1 1/16 Prévisions météo Soleil Nuages Pluie Neige code Proba. Nombre de bits idéal 3/4 0.415 1/8 3.0 1/16 4.0 1/16 4.0 Code Entier 0 10 110 111 Htheorique = 1.186 bits / symbole Probabilité cumulative HHoffman = 1.375 bits / symbole 13 Codec JPEG: Encodeur Encodeur Entropique: Huffman Table de Huffman pré-définie ou adaptive. Mode Baseline: 1 pour les symboles AC et une pour les symboles DC. Les même tables sont réutilisées pour la reconstruction. Codec JPEG: Encodeur Encodeur Entropique: Arithmétique Pas de tables a priori. Adaptif en fonction du contenu de l’image. Utilise des probabilités conditionnelles. 14 Exemple de Compression JPEG Pour la luminance “The JPEG Still picture compression standard”, Gregory Wallace, IEEE Trans. On Consumer Electronics, Vol. 38. No. 1, Feb. 1992. Compression JPEG Mise en application lors du TP. 15