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

Documents pareils