Vous êtes sur la page 1sur 63

Compression dimages et de vido:

pourquoi, comment ?
Aline ROUMY
Chercheur, INRIA Rennes

Octobre 2014
SOMMAIRE

1. Pourquoi compresser une vido ?

2. Comment compresser ?

3. Compression avec pertes

4. Compression par transforme

5. Compression par prdiction

-2
1
Pourquoi compresser une vido ?

-3
Dfinition

Compression = stocker mme image avec moins de bits

Standards de compression : fournis par

ITU International Telecommunication Union

ISO International Organization for Standardization

Joint teams:
JVT Joint Video Team (H.264/MPEG-4-AVC en 2003)
JCT-VC Joint Collaborative Team on Video Coding pour
dveloppement de HEVC (High efficiency video codec)
(adopt Janv. 2013, ITU-T H.265 Avril 2013)
-4
Quest ce quune image numrique ?

Grille discrte de M (colonnes) x N (lignes) pixels

Ordre de traitement canonique : balayage ligne par ligne

unilatral et de gauche droite)

m M

-5
Dcomposition dune image couleur

R V B (rouge vert bleu)

YCbCr (appel YUV)


Y luminance = 0,3R + 0,6V + 0,1B
Cb Cr chrominance
Cb ~Y - B
Cr ~Y R
compatible TV noir et blanc
oeil + sensible Y que CbCr

-6
Echantillonnage couleur

Le schma est reprsent comme un rapport entre trois termes :

J:a:b

J Taille horizontale du bloc dchantillonnage de rfrence,

normalement 4

a Nombre dchantillons de chrominance dans la premire ligne

de J pixels

b Nombre dchantillons de chrominance additionnels dans la

deuxime ligne de J pixels

-7
Echantillonnage couleur

-8
Pourquoi compresser ?
i.e. transmettre mme information avec moins de bits.
Soit une vido au format
HD 1080p = 1920 1080 50 Hz (images/sec)

Y luminance Cb Chrominance Cr Chrominance


Nbre pixels 1920x1080= 2.1 M 960x540= .5 M 960x540= .5 M
Nbre bits par pixel 8 bit 8 bit 8 bit
Dbit 1.2 Gbps

Quelques dbits / capacit de stockage (qui voluent au cours du temps)


DVD 4.7 (1 face) 17Go (2 faces) 3 14 s
TNT 20 Mbps
Ethernet/Fast Ethernet < 10 / 100 / 1000 Mbps
DSL voie descendante 384 2048 kbps
Tl portable (dbit pratique 2G /3G /4G) 9.05 / 384 kbps / 40 Mbps

-9
Mesure de qualit

La qualit dune image numrique est mesure avec des critres,

fonctions de

: image dorigine

: image reconstruite aprs compression

Erreur quadratique moyenne (MSE) :

Rapport signal sur bruit crte :

dB

- 10
SOMMAIRE

1. Pourquoi compresser une vido ?


2. Comment compresser ?
3. Compression avec pertes
4. Compression par transformation
5. Compression par prdiction

- 11
2
Comment compresser ?

- 12
Le jeu du pendu

Objectif = jouer en dvoilant votre stratgie

_ _ _ _ _ _

- 13
2 ides pour gagner

1. Frquence dapparition des lettres probabilit

2. Corrlation entre les lettres successives dpendance

- 14
Analogie jeu du pendu - compression

mot image

rponse une question 1 bit du train binaire qui


(oui/non). reprsente image

Objectif : proposer le moins de Objectif : proposer le moins de


lettres par mot bits par image

- 15
Exploiter ide 1 :
Utiliser la non galit des probabilits

Soit une course avec les chevaux:


Nom A natole B arnab C hef D arius
Probabilit de 1/4 1/2 1/8 1/8
gagner

A gagne 1 fois sur 4, etc


Par exemple, la suite des vainqueurs peut tre:
ABBCBBDABCBABBCBBDAABABC

Question : coder par une suite de bits la suite des


vainqueurs et de manire efficace

- 16
Exploiter ide 1 :
Utiliser la non galit des probabilits

Soit une course avec les chevaux:


Nom A natole B arnab C hef D arius
Probabilit de 1/4 1/2 1/8 1/8
gagner
Mot de code 00 01 10 11
Coder la suite des vainqueurs peut tre:
ABBCBBDABCBABBCBBDAABABC
00 01 01 10 01 01 etc
Longueur moyenne 2 bits/course

Peut on mieux faire ?

- 17
Exploiter ide 1 :
Utiliser la non galit des probabilits

Soit une course avec les chevaux:


Nom A natole B arnab C hef D arius
Probabilit de 1/4 1/2 1/8 1/8
gagner
Mot de code 10 0 110 111
Coder la suite des vainqueurs peut tre:
ABBCBBDABCBABBCBBDAABABC
Longueur codage longueur fixe 2 bits/course

Longueur moyenne 2*1/4+1*1/2+3*1/8+3*1/8 1,75 bits/course


Longueur optimale [thorie de linformation48] 1,75 bits/course
- 18
Exploiter ide 2 : Utiliser la dpendance
Supposons que les courses de chevaux sont dpendantes
course 2 _A _B _C _D
course 1
A_ .25 .5 .125 .125

B_ .25 .5 .125 .125

C_ .25 .5 0 .25

D_ .25 .5 .25 0

- 19
Exploiter ide 2 : Utiliser la dpendance

_A _B _C _D longueur codage
moyenne optimal
A_ .25 .5 .125 .125
10 0 110 111 1.75 1.75
B_ .25 .5 .125 .125
10 0 110 111 1.75 1.75
C_ .25 .5 0 .25
10 0 11 1.5 1.5
D_ .25 .5 .25 0
10 0 11 1.5 1.5

- 20
Exploiter ide 2 : Utiliser la dpendance

_A _B _C _D longueur codage
moyenne optimal
A_ .25 .5 .125 .125
.25 10 0 110 111 1.75 1.75
B_ .25 .5 .125 .125
.5 10 0 110 111 1.75 1.75
C_ .25 .5 0 .25
.125 10 0 11 1.5 1.5
D_ .25 .5 .25 0
.125 10 0 11 1.5 1.5
1.69 1.69
Complexit : taille du tableau stocker crot exponentiellement avec
le nbre de lettres traites conjointement i.e. la mmoire
de 4 16 =4 mots de code
- 21
Notions de thorie de linformation

Processus alatoire (source) Exemple : modle des pixels

Longueur moyenne minimale (en bits) pour reprsenter un chantillon


source discrte i.i.d. [Shannon]: ENTROPIE

bits/chantillon

source discrte stationnaire ergodique [Shannon-McMillan-Breiman]

bits/chantillon
Notions de thorie de linformation

Thorme : borne dindpendance de lentropie jointe

galit ssi X1, , Xn indpendants

Interprtation
1. Exploiter la dpendance permet de rduire le nombre de bits. Mais
ncessite de stocker une loi jointe (complexit crot
exponentiellement avec n)
2. Des donnes indpendantes peuvent tre codes sparment de
manire optimale.
Notions de thorie de linformation

Exploitons ide : donnes dpendantes peuvent tre codes sparment

Transformer le vecteur X en un vecteur quivalent Y

Transforme inversible Y indpendants

Transformer de manire rendre les donnes indpendantes permet


dutiliser une compression par chantillon (codage entropique scalaire =
codage avec la loi dune donne)
SOMMAIRE

1. Pourquoi compresser une vido ?


2. Comment compresser ?
3. Compression avec pertes
4. Compression par transformation
5. Compression par prdiction

- 25
3
Compression avec pertes

- 26
Compression en autorisant des pertes
Compression avec contrainte de dbit

dbit = nbre bits / pixel (ou lettre)


distorsion = distance entre limage originale et celle encode

distorsion

Cas usage : mdical,


transfert de fichiers/donnes
D

R sans pertes dbit

- 27
Mise en uvre efficace
de la compression avec pertes

0
63 127 191 255
quantification scalaire uniforme

8 bits 2 bits

- 28
Mise en uvre efficace
de la compression avec pertes

0
63 127 191 255

quantification scalaire uniforme

8 bits 3 bits

- 29
Mise en uvre efficace
de la compression avec pertes

image x Quantif indices q code entropique bits c


q= Q(y) c= C(q)

A B C D
1/4 1/2 1/8 1/8
10 0 110 111

quantification scalaire uniforme + codage entropique

dgradation de 1.3 dB par rapport optimal

- 30
SOMMAIRE

1. Pourquoi compresser une vido ?


2. Comment compresser ?
3. Compression avec pertes
4. Compression par transformation
5. Compression par prdiction

- 31
4
Donnes dpendantes
la transformation

- 32
O traiter la dpendance ?

image x Quantif indices q code entropique bits c


q= Q(y) c= C(q)

A B C D
1/4 1/2 1/8 1/8
10 0 110 111

Traiter la dpendance au niveau code entropique : trop complexe

Schma ci-dessus quasi-optimal si les pixels indpendants

.......

- 33
Ou traiter la dpendance ?

image x Transforme coefficients y Quantif indices q code entropique bits c


y= T(x) q= Q(y) c= C(q)

A B C D
1/4 1/2 1/8 1/8
10 0 110 111

Traiter la dpendance au niveau code entropique : trop complexe

Schma ci-dessus quasi-optimal si les pixels indpendants

transformer les pixels pour les rendre indpendants

- 34
Exploitation de la dpendance des donnes

(a,b,c,d) -> (m, b-m, c-m, d-m) : transformation

inversible
a b
c d
Dpendance =
m=(a+b+c+d)/4 Pixels voisins ont des valeurs proches

Diffrence la moyenne :
m b-m
de faible amplitude
c-m d-m
casser la dpendance dans nouveau bloc ?

- 35
Exploitation de la dpendance des donnes
Cette transformation est un cas particulier :
DCT transforme en cosinus discret
(MPEG 1, 2, 4, HEVC)
ondelettes (JPEG-2000, Dirac)
a b
c d

m=(a+b+c+d)/4

m b-m
c-m d-m

- 36
Original Lena (512 x 512 Pixels, 8-Bit Y/ pixel, 257Ko)

- 37
Gris = 0 car m-d cod en m-d+128

Reste de dpendance

- 38
Gris = 0

- 39
Gris = 0

exemple dondelettes

- 40
Transforme utilise dans JPEG 2000

Moins de corrlation que prcdemment entre les 4 blocs


mais il en reste encore
- 41
JPEG2000

image x Transforme coefficients y Quantif indices q code entropique bits c


y= T(x) q= Q(y) c= C(q)

A B C D
1/4 1/2 1/8 1/8
10 0 110 111

- 42
Rsultats de compression JPEG2000

Original Carol (512 x 512 Pixels, 24-Bit RGB/pixel, Taille 786ko)

- 43
Rsultats de compression JPEG2000

75:1, 10.6 ko

- 44
Rsultats de compression JPEG2000

150:1, 5.3 ko

- 45
Rsultats de compression JPEG2000

300:1, 2.6 ko

- 46
Comparaison JPEG (1992) vs. JPEG2000

Lena, 256x256 RGB Lena, 256x256 RGB


Baseline JPEG: 4572 octets JPEG-2000: 4572 octets

- 47
SOMMAIRE

1. Pourquoi compresser une vido ?


2. Comment compresser ?
3. Compression avec pertes
4. Compression par transformation
5. Compression par prdiction

- 48
5
Donnes dpendantes
la prdiction

- 49
Il reste de la dpendance

image x Transforme Quantif code entropique bits c


y= T(x) q= Q(y) c= C(q)

A B C D
1/4 1/8 1/8
10 0 110 111

Donnes
dpendantes

- 50
Il reste de la dpendance

image x Prdiction Transforme Quantif code entropique bits c


z= P(x) y= T(z) q= Q(y) c= C(q)

A B C D
1/4 1/8 1/8
10 0 110 111

Prdiction: pour mieux supprimer la redondance

56 - 51
Prdiction entre images

Intra: image code


indpendamment
des autres
(synchro)

Inter: (P/B) image


code en fonction
dautres images

Utilis en MPEG-2,
-4, HEVC

- 52
Prdiction entre images

Intra: image code


indpendamment
des autres
(synchro)

Inter: (P/B) image


code en fonction
dautres images

Utilis en MPEG-2,
-4, HEVC
Trs efficace: dbit(inter) << dbit (intra)
- 53
Prdiction Intra (MPEG-4, HEVC)

Si prdiction fiable, diffrence entre original et prdiction (rsidu) :

chantillons indpendants [thorie de lestimation]

- 54
6
Conclusion
les messages ramener la maison

- 55
Take-home-message

image x Prdiction Transforme Quantif code entropique bits c


z= P(x) y= T(z) q= Q(y) c= C(q)

A B C D
1/4 1/8 1/8
10 0 110 111

Transformation et prdiction : exploite dpendance des pixels

Quantification : introduit pertes

Codage entropique : exploite non galit des probabilits des pixels

- 56
Quelques rsultats en vido de HEVC
Vido BasketBallPass 416x240 pixels 50Hz (8 + (8+8)/4 bits) 60 Mbps

Pas de quantification dbit Taux compression


non compress 60 Mbps
22 1 Mbps 60:1
32 340 kbps 176:1
51 30 kbps 2000:1

original 60:1
- 57
Quelques rsultats en vido de HEVC
Vido BasketBallPass 416x240 pixels 50Hz (8 + (8+8)/4 bits) 60 Mbps

Pas de quantification dbit Taux compression


non compress 60 Mbps
22 1 Mbps 60:1
32 340 kbps 176:1
51 30 kbps 2000:1

original 176:1
- 58
Quelques rsultats en vido de HEVC
Vido BasketBallPass 416x240 pixels 50Hz (8 + (8+8)/4 bits) 60 Mbps

Pas de quantification dbit Taux compression


non compress 60 Mbps
22 1 Mbps 60:1
32 340 kbps 176:1
51 30 kbps 2000:1

original 2000:1
- 59
Le schma de codage HEVC

Les lments griss correspondent au dcodeur (Overview of HEVC Standard, TCSVT Dec 2012)

56 - 60
ATELIER

Mise en uvre de la premire tape dun codeur vido :

La prdiction compense en mouvement.

- 61
Pour en savoir plus

1. Thomas Wiegand and Heiko Schwarz:

Source Coding: Part I of Fundamentals of Source and Video Coding,

Foundations and Trends in Signal Processing, vol. 4, no. 1-2, pp. 1-222, January 2011.

http://iphome.hhi.de/wiegand/pubs.htm

2. Ian Richardson

The Advanced H 264 video compression standard, Wiley 2010.

3. Vivienne Sze, Madhukar Budagavi, Gary J. Sullivan

High Efficiency Video Coding (HEVC), Springer 2014.

56 - 62
merci

www.inria.fr