• Aucun résultat trouvé

Cours sur le JPEG Motivation, Théorie, Fonctionnement, Dérivés...

N/A
N/A
Protected

Academic year: 2022

Partager "Cours sur le JPEG Motivation, Théorie, Fonctionnement, Dérivés..."

Copied!
41
0
0

Texte intégral

(1)

Cours sur le JPEG

Motivation, Théorie, Fonctionnement, Dérivés...

Vincent Guigue

26 novembre 2008

(2)

JPEG : dénitions (wikipedia)

JPEG est un acronyme de Joint Photographic Experts Group, nom d'un comité créé en 1986 résultant de la fusion de plusieurs groupes (d'où le joint) de professionnels de l'industrie de l'image.

Généralement le terme JPEG fait référence à la norme JPEG, formellement ISO/CEI 10918-1 ou UIT-T Recommandation T.81.

Cette norme décrit une méthode de compression basée sur la DCT.

Elle spécie uniquement la transformation d'une image brute en une suite de bits.

Le JPEG est un format à perte, qui élimine donc des informations, mais un des points forts de JPEG est que son taux de compression est réglable. Un compromis doit cependant être fait entre le taux de compression et la qualité de l'image compressée.

(3)

Introduction au JPEG

Schéma général :

Compression

Encodeur JPEG Y

Conservative Cr

Cb Y CrCb

Discrete Quantification

(E1) (E3)

Transform

TABLE Cosinus

(E4) 8

8

(E2) (E5) (E6)

Fonctionnement du JPEG

(4)

Introduction au JPEG

Schéma général :

Compression

Encodeur JPEG Y

Conservative Cr

Cb Y CrCb

Discrete Quantification

(E1) (E3)

Transform

TABLE Cosinus

(E4) 8

8

(E2) (E5) (E6)

(E1) : Décomposition de l'image d'entrée en YCrCb.

(5)

Introduction au JPEG

Schéma général :

Compression

Encodeur JPEG Y

Conservative Cr

Cb Y CrCb

Discrete Quantification

(E1) (E3)

Transform

TABLE Cosinus

(E4) 8

8

(E2) (E5) (E6)

(E2) : Baisse de résolution sur Cr et Cb (OPTION)

Exercice : calculer le rapport de compression lié à la baisse de résolution (facteur deux sur les lignes et les colonnes).

(6)

Introduction au JPEG

Schéma général :

Compression

Encodeur JPEG Y

Conservative Cr

Cb Y Cb

Cr

Discrete Quantification

(E1) (E3)

Transform

TABLE Cosinus

(E4) 8

8

(E2) (E5) (E6)

(E3) : Découpage de l'image en région de 8x8 pixels, la compression s'eectuera dans chaque région indépendamment.

(7)

Introduction au JPEG

Schéma général :

Compression

Encodeur JPEG Y

Conservative Cr

Cb Y Cb

Cr

Discrete Quantification

(E1) (E3)

Transform

TABLE Cosinus

(E4) 8

8

(E2) (E5) (E6)

(E4) : Transformée en cosinus dicrète, représentation fréquentielle des informations.

(8)

Introduction au JPEG

Schéma général :

Compression

Encodeur JPEG Y

Conservative Cr

Cb Y CrCb

Discrete Quantification

(E1) (E3)

Transform

TABLE Cosinus

(E4) 8

8

(E2) (E5) (E6)

(E5) : Quantication des coecients de la DCT, approximation basée sur des tables. (OPTION)

(9)

Introduction au JPEG

Schéma général :

Compression

Encodeur JPEG Y

Conservative Cr

Cb Y CrCb

Discrete Quantification

(E1) (E3)

Transform

TABLE Cosinus

(E4) 8

8

(E2) (E5) (E6)

(E6) : Codage conservateur des coecients (PLUSIEURS POSSIBILITÉS)

(10)

Acquisition des signaux

Les appreils de numérisation (APN, scanner...) repose sur des capteurs de luminosité (CMOS ou CCD).

Pour acquerir des images couleurs, on place un ltre (ici de Bayer) devant le capteur :

(11)

Code de couleur

A la sortie du système d'acquisition, les données sont codées en RGB (ou RVB).

A l'entrée du système de compression, le code RGB est transformé en un code YCrCB.

Y = 0.299 R +0.587 G +0.114 B Cr = −0.147 R −0.289 G +0.436 B Cb = 0.615 R −0.515 G −0.100 B

(12)

Découpage de l'image en région

Problématique : on était pas capable de traiter l'image dans son entier (puissance CPU et mémoire en 1986).

=⇒Découpage de l'image en blocs de 8x8 pixels.

7

0 7

A partir de maintenant, la plupart des calculs feront apparaitre des indices entre 0 et 7.

Prendre une fenêtre de coté N =8 est arbitraire. Généralement, plus la fenêtre est grande, plus la compression est bonne mais plus les calculs sont longs.

(13)

Rappel schéma général JPEG

Schéma général :

Compression

Encodeur JPEG Y

Conservative Cr

Cb Y Cb

Cr

Discrete Quantification

(E1) (E3)

Transform

TABLE Cosinus

(E4) 8

8

(E2) (E5) (E6)

(14)

DCT : Transformée en Cosinus Discrète 1D

Cette transformée est une variante de la transformée de Fourier (en restant dans le domaine réel).

=⇒Représentation fréquentielle de l'image.

Cas 1D, soit un signal discret S dénit par :

S(x) =sin(x) +cos(x/2) +cos(2x) +0.2 sin(10x) et sa transforméex (DCT à 1 dimension) :ˆ

k

N

X

x=1

S(x)cos

(2x+1)kπ 2N

0 1 2 3 4 5 6 7 8 9 10

−3

−2

−1 0 1 2 3

(15)

DCT : Transformée en Cosinus Discrète 1D (2)

Signal d'entrée (95 points) :

0 1 2 3 4 5 6 7 8 9 10

−3

−2

−1 0 1 2 3

Histogramme des coecients de la DCT :

0 10 20 30 40 50 60 70 80 90 100

−4

−2 0 2 4 6 8 10

Signal de sortie après seuillage :

0 1 2 3 4 5 6 7 8 9 10

−2

−1 0 1 2

Tx compression brut : 0.98947

0 1 2 3 4 5 6 7 8 9 10

−4

−2 0 2 4

Tx compression brut : 0.95789

0 1 2 3 4 5 6 7 8 9 10

−4

−2 0 2 4

Tx compression brut : 0.93684

Comment expliquer le très bon taux de compression sur ce signal ?

(16)

DCT : Transformée en Cosinus Discrète 2D

Soit une image Im de coté N =8.

DIm(i,j) =

√1

2NCiCj N1

X

x=0 N1

X

y=0

Im(x,y)cos

(2x+1)iπ 2N

cos

(2y+1)jπ 2N

Ck = ( 1

2 si k =0 1 si k >0

)

1. Est-il possible de calculer les coecients de la DCT à partir de cette équation ?

2. La famille de fonction F ={cos(nx)}n dénit-elle une base de l'espace des fonctions de R vers R (produit scalaire usuel, hf,gi=Rπ

−πf(x)g?(x)dx) ?

(17)

DCT : Transformée en Cosinus Discrète 2D (2)

Les F ={cos(iπu),cos(jπu)}ij forment une base de l'espace matriciel. Soit E ={e1, . . . ,eN.N} la base canonique de l'image, on a alors Im=P

ijImijeij avec :

e1=

1 0 0 . . .

0 0 . . .

. . .

, eij =

1 en eij(i,j)

0 ailleurs ∈RN×N Il est possible d'eectuer un changement de base en posant : fk =P

ijeij.

On dénit alors une matrice P :

Pi,j =

1

N si i =0

q2

Ncosh(2j+1)iπ

2N

i si i >0

 et : DIm=PImP>

(18)

DCT : Transformée en Cosinus Discrète 2D (3)

Application numérique pour T :

.3536 .3536 .3536 .3536 .3536 .3536 .3536 .3536

.4904 .4157 .2778 .0975 −.0975 −.2778 −.4157 −.4904

.4619 .1913 −.1913 −.4619 −.4619 −.1913 .1913 .4619

.4157 −.0975 −.4904 −.2778 .2778 .4904 .0975 −.4157

.3536 −.3536 −.3536 .3536 .3536 −.3536 −.3536 .3536

.2778 −.4904 .0975 .4157 −.4157 −.0975 .4904 −.2778

.1913 −.4619 .4619 −.1913 −.1913 .4619 −.4619 .1913

.0975 −.2778 .4157 −.4904 .4904 −.4157 .2778 −.0975

(19)

DCT Inverse

Il est possible de retrouver l'image par Transformée en Cosinus Discrète Inverse :

Im(x,y) =

√1 2N

N1

X

x=0 N1

X

y=0

CiCjDIm(i,j)cos

(2x+1)iπ 2N

cos

(2y+1)jπ 2N

Ck = ( 1

2 si k =0 1 si k >0

)

On obtient cette transformée en appliquant : Im=P>DImP

(20)

Exemples de DCT : images de synthèse

Cette image est équivalente à une image en niveaux de gris (il n'y a qu'une composante d'amplitude).

Notons cette image Im. Nous procédons comme suit : 1. DIm=DCT(Im)

2. D˜Im≈DIm (élimination des coecients de faibles amplitudes) 3. Im˜ =IDCT(DIm)

(21)

Résultat des DCT seuillées sur des images de synthèse

Tx compr. : 0.99994

50 100 150 200 250 50

100 150 200 250

Tx compr. : 0.99977

50 100 150 200 250 50

100 150 200 250

Tx compr. : 0.99965

50 100 150 200 250 50

100 150 200 250

Tx compr. : 0.99939

50 100 150 200 250 50

100 150 200 250

Tx compr. : 0.99834

50 100 150 200 250 50

100 150 200 250

Tx compr. : 0.99332

50 100 150 200 250 50

100 150 200 250

(22)

Exemples de DCT seuillées sur des images réelles

200 400 600 800 1000

100

200

300

400

500

600

700

100 200 300 400

50

100

150

200

250

300 0.99991

100200300400 50 100 150 200 250 300

0.99976

100200300400 50 100 150 200 250 300

0.99962

100200300400 50 100 150 200 250 300

0.99866

100200300400 50 100 150 200 250 300

0.96065

100200300400 50 100 150 200 250 300

0

100200300400 50 100 150 200 250 300

0.99995

100200300400 50 100 150 200 250 300

0.99971

100200300400 50 100 150 200 250 300

0.99953

100200300400 50 100 150 200 250 300

0.99808

100200300400 50 100 150 200 250 300

0.93291

100200300400 50 100 150 200 250 300

0

100200300400 50 100 150 200 250 300

0.99989

100200300400 50 100 150 200 250 300

0.99957

100200300400 50 100 150 200 250 300

0.99893

100200300400 50 100 150 200 250 300

0.9942

100200300400 50 100 150 200 250 300

0.6898

100200300400 50 100 150 200 250 300

0

100200300400 50 100 150 200 250 300

1. Imaginer que l'on travaille dans YCrCb

2. On choisira un taux de compression supérieur pour les couches Cr et Cb

(23)

Rappel schéma général JPEG

Schéma général :

Compression

Encodeur JPEG Y

Conservative Cr

Cb Y Cb

Cr

Discrete Quantification

(E1) (E3)

Transform

TABLE Cosinus

(E4) 8

8

(E2) (E5) (E6)

(24)

Quantication

1. Jusqu'ici, pas de perte (à condition de conserver la résolution Cr, Cb)

2. Stratégie de compression limitée (≈50%de gain) 3. =⇒ Quantication des coecients de la DCT :

DIm(i,j)7→D˜Im(i,j)

DIm(Qk)(i,j) =round

DIm(i,j) Qk(i,j)

Les Qk sont des tables de quantication prédénies, l'indice k indique la qualité de l'approximation.

(25)

Exemple de table de quantifacation

Q90= 2 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 4

3 2 2 3 5 8 10 12

2 2 3 4 5 12 12 11

3 3 3 5 8 11 14 11

3 3 4 6 10 17 16 12

4 4 7 11 14 22 21 15

5 7 11 13 16 12 23 18 10 13 16 17 21 24 24 21 14 18 19 20 22 20 20 20

3 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 5

Q50= 2 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 4

16 11 10 16 24 40 51 61 12 12 14 19 26 58 60 55 14 13 16 24 40 57 69 56 14 17 22 29 51 87 80 62 18 22 37 56 68 109 103 77 24 35 55 64 81 104 113 92 49 64 78 87 103 121 120 101 72 92 95 98 112 100 103 99

3 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 5

(26)

Exemple de table de quantifacation (2)

Q10= 2 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 4

80 60 50 80 120 200 255 255 55 60 70 95 130 255 255 255 70 65 80 120 200 255 255 255 70 85 110 145 255 255 255 255 90 110 185 255 255 255 255 255 120 175 255 255 255 255 255 255 245 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255

3 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 5

Soit l'image G, de DCT DG (donnée ci-dessous), donner ses coecients quantiés en Q10

2 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 4

162.3 40.6 20.0 72.3 30.3 12.5 −19.7 −11.5 30.5 108.4 10.5 32.3 27.7 −15.5 18.4 −2.0

−94.1 −60.1 12.3 −43.4 −31.3 6.1 −3.3 7.1

−38.6 −83.4 −5.4 −22.2 −13.5 15.5 −1.3 3.5

−31.3 17.9 −5.5 −12.4 14.3 −6.0 11.5 −6.0

−0.9 −11.8 12.8 0.2 28.1 12.6 8.4 2.9 4.6 −2.4 12.2 6.6 −18.7 −12.8 7.7 12.0

−10.0 11.2 7.8 −16.3 21.5 0.0 5.9 10.7

3 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 5

(27)

Déquantication

Im(i,j) =Qk(i,j)×DIm(Qk)(i,j)

1. Quantier l'approximation qui est faite sur les coecients de D˜Im

2. Que remarque-t-on dans les matrices de quantication ? 3. Quelles sont les fréquences qui sont les plus touchées par la

quantication ?

4. Quel est l'avantage d'avoir normalisé les tables de quantication ?

(28)

Artefacts de quantication

Élimination des hautes fréquences

Artefacts dans les aplats

(29)

Rappel schéma général JPEG

Schéma général :

Compression

Encodeur JPEG Y

Conservative Cr

Cb Y Cb

Cr

Discrete Quantification

(E1) (E3)

Transform

TABLE Cosinus

(E4) 8

8

(E2) (E5) (E6)

(30)

Codages conservateurs appliqués en n de traitement

Une fois le codage fréquentiel approximé, plusieurs codes sont appliqués sur le résultat.

1. Codage diérentiel de la première ligne et de la première colonne

2. Codage RLE Run Length Encoding sur les coecients de la DCT

3. Codage de Human ou codage arithmétique des valeurs des coecients

(31)

Codages conservateurs appliqués en n de traitement (2)

Le codage diérentiel permet de compresser le ot de données. Au lieu de coder la valeur complète de l'échantillon, on ne transmet que la diérence avec l'échantillon précédent.

... Bloc Bloc Bloci+1 ...

i i−1 Idées :

1. Favoriser l'apparition de coecients proches les uns des autres 2. Réduire le codage de la diérence par rapport à l'original

(32)

Codages conservateurs appliqués en n de traitement (3)

Le code RLE Run Length Encoding est un code de comptage : Ex : 1111111111000001111111=⇒ 10|1,5|0,7|1

Pour les coecients de la DCT, nous suivons le chemin suivant :

Pourquoi ?

(33)

Exemple (typique) de DCT quantiée :

2 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 4

160 44 20 80 24 0 0 0

36 108 14 38 26 0 0 0

−98 −65 16 −48 −40 0 0 0

−42 −85 0 −29 0 0 0 0

−36 22 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

3 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 5

(34)

Codages conservateurs appliqués en n de traitement (4)

Les diérentes valeurs des coecients sont également codées selon 2 méthodes au choix :

1. Codage de Human

Quel est l'arbre correspondant à la phrase : coupe de l'uefa de football : zero pointe pour les clubs francais

2. Codage arithmétique

Une suite d'opération permet d'extraire une suite de nombre d'un seul réel (cf cours de compression)

(35)

Bilan compression/décompression

(36)

Balises à l'intérieur du chier

Balises Générales

Description Symbol Marker(HEX)

Baseline DCT, Human SOF0 FFC0

Extended sequential DCT, Human SOF1 FFC1

Progressive DCT, Human SOF2 FFC2

Spatial (sequential) lossless, Human SOF3 FFC3 Dierential Sequential DCT, Human SOF5 FFC5 Dierential progressive DCT, Human SOF6 FFC6 Dierential spatial, Human SOF7 FFC7 Reserved for JPEG extensions, Arithmetic JPG FFC8 Extended sequential DCT, Arithmetic SOF9 FFC9 Progressive DCT, Arithmetic SOF10 FFCA Spatial (sequential) lossless, Arithmetic SOF11 FFCB Dierential sequential DCT, Arithmetic SOF13 FFCD

...

(37)

Balises à l'intérieur du chier

Dénition de champs :

Description Symbol Marker(HEX)

Start of Image SOI FFD8

End of Image EOI FFD9

Start of Scan SOS FFDA

Dene Quantization Table DQT FFDB Dene number of Lines DNL FFDC

(38)

Ordre de stockage des données

Suivant la manière de stocker les données, plusieurs décodages (on-line) sont possibles :

(39)

Points forts et faiblesses

+ Taux de compression > 90%

+ Demande entre 0.25 bit/pixel et 2 bits/pixel + Qualité paramétrable

+ Options d'achage progressif

− Pas adapté à tous les chiers, car non conservateur

− Demande autant de calcul pour la compression que pour la décompression

− Norme ne précisant pas les codes de couleurs (pb d'interopérabilité)

(40)

Vers les vidéos et le MPEG...

1. Compression intra-image 2. Compression inter-image

3 types de frames : I (intra), P (prédiction), B (bidirectionnelle)

I B B P B B I

(41)

MPEG

1. La norme MPEG-1 représente chaque image comme un ensemble de blocs 16 x 16. Elle permet d'obtenir une résolution de :

- 352x240 pixels à 30 images par seconde en NTSC - 352x288 pixels à 25 images par seconde en PAL/SECAM Le MPEG-1 permet d'obtenir des débits de l'ordre de 1,2 Mbit/s (exploitable sur un lecteur de CD-ROM).

2. MPEG2 : synchronisation et réseau 3. MPEG4 ...

4. MPEG7 : indexation des vidéos

Références

Documents relatifs

Depending on the shape of the local environment (large area, small rooms, narrow corridors or passage) and the density and activity of the humans (individuals, crowds, domestic

Finally, once the question is asked by the subject, we observe that the guide tends to point first to the direction of the referent itself (survey perspective), then indicate the

S ouk consists of three parts: an experimental platform to capture the position and orientation of mobile individuals through wireless tags, a framework to develop mobility models,

4 (a)-(d) Common Mightability (a) Common reachable region in 3D for human and another mobile robot Jido, having one arm, from their current states, (b) common reach- able region

considered the adhesion of fibroblasts on Fn coated plasma polymerized allylamine (ppAAm), as well as on Fn-Alb coated ppAAm via adsorption from Fn-Alb mix- tures and from

In this sample, the second well of the structure will be ionized before the first one. In the latter case no NDR regime is observed. This counter-intuitive order of regime

Human spatial activity is explicitly exploited for the purpose of passage detection and space occupancy prediction while effectively discarding false positive hu- man detections

In both human-machine and computer-aided human-human dialogue, Dialogue Management (DM) may be seen as a sequential decision making problem, where decisions are made on which