Notes sur la compression de signaux video

Transcription

Notes sur la compression de signaux video
Compression Vidéo – Novembre 2006
1
Notes sur la compression de signaux video.
Numérisation des signaux video
Le CCIR (Comité Consultatif International des Radiotélécommunications) publie en 1982 le
standard CCIR-601, qui est un système de numérisation des signaux video.
Le système se veut le plus universel possible, notamment en offrant une compatibilité avec les
systèmes européen (PAL) et américain (NTSC).
Fréquence d’échantillonnage
En particulier, la fréquence d’échantillonnage choisie est 13.5 MHz (respect du théorème de
Shannon). Cette fréquence est à la fois multiple de la fréquence de ligne pour les deux
systèmes précités :
864*625*25 = 13.5 MHz = 858*525*29.97
(pour des raisons de battement avec leur porteuse son de 4.5 MHz, les américains sont passés
de 30 à 29.97 images par seconde).
La conséquence du choix de la fréquence d’échantillonnage du signal vidéo composite, ou de
chaque signal composant (r,g,b) ou (Y, Cr, Cb), est que d’une ligne à l’autre la position
horizontale des « pixels » échantillonnés est exactement identique : on obtient donc une grille
rectangulaire de pixels (orthogonal sampling).
Orthogonal
sampling
Système numérique composant
Lorsque chaque composante du signal est échantillonnée à la même fréquence (13.5 MHz), on
parle de format numérique (4 : 4 : 4).
Le taux d’information correspondant (bitrate) est de :
3 signaux * 13.5 MHz * 8bits/éch. = 324 Mbits/s.
Le standard CCIR-601 (1982) permet d’économiser un tiers de ce bitrate en ne codant qu’un
pixel sur deux dans le sens horizontal, et ce pour les composantes de chrominance
uniquement. Dans la figure suivante, seuls les pixels noirs sont codés en chrominance.
On parle alors de format numérique (4 : 2 : 2).
Compression Vidéo – Novembre 2006
2
La qualité de l’image codée reste sensiblement la même, car la résolution de notre système
visuel est moins fine pour la chrominance que pour la luminance.
Le nouveau bitrate est de :
- 13.5 MHz * 8 bits/échantillon pour la luminance Y,
- la moitié pour Cb,
- et la moitié pour Cr,
soit au total 216 Mbits/s.
Parmi ces bits, seule une partie correspond à des informations « visibles » sur l’écran : ainsi,
seules 576 lignes sur les 625 (en Europe) correspondent à des pixels visibles. De même, 720
pixels sur les 864 dans le sens horizontal.
Le bitrate effectif (actif, visible) est donc de 720*576*25*8 = 83 Mbits/s pour la luminance et
83 Mbits/s pour la chrominance, soit au total 166 Mbits/s dans le format (4 : 2 : 2).
Ce taux d’information est beaucoup trop élevé pour des applications grand public, ce qui
nécessite l’emploi d’algorithmes de compression normalisés.
Notes
-
il existe aussi un format (4 : 2 : 0), dans lequel la chrominance n’est codée qu’un pixel
sur deux dans le sens horizontal et dans le sens vertical de l’image ;
l’avantage d’un système composant (par rapport à un système composite) est la
possibilité d’éditer les composantes (r,g,b) sans devoir démoduler le signal pour en
extraire la chrominance. Un autre avantage est la compatibilité immédiate des
systèmes américain et européen.
Compression des signaux video (source coding)
Joint Photographic Expert Group (JPEG)
Ce comité d’expert a édité un standard pour la compression des images fixes. Dans sa version
avec pertes (JPEG lossy), l’algorithme JPEG offre des facteurs de compression supérieurs à
10.
Les algorithmes MPEG pour la compression vidéo ont été largement inspirés par le standard
JPEG.
Motion Pictures Expert Group (MPEG)
Le standard MPEG-1 (1992) vise à reproduire un programme vidéo (incluant le son stéréo)
sur un support de type CD (videodisc, CD-I), c’est-à-dire à réduire le taux global
d’information (audio stereo + video) à 1.5 Mbits/s maximum !
Cette réduction drastique de l’information ne peut se faire qu’au détriment de la qualité de
l’image.
Compression Vidéo – Novembre 2006
3
Le standard MPEG-2 (1994) vise une qualité meilleure, à des bitrates de 4 à 9 Mbits/s. Les
applications visées sont le DVD (Digital Versatile Disc) et le DVB (Digital Video
Broadcasting).
Algorithme MPEG-1
Les images sont tout d’abord numérisées dans un format SIF (format de moindre résolution
que le 4 : 2 : 2 utilisé dans JPEG). Ce format consiste en fait à ne conserver :
- qu’un pixel sur deux en luminance, dans le sens horizontal ET vertical (résolution
360x288 pixels utiles au lieu de 720x576),
- qu’un pixel sur quatre en chrominance (180x144).
Elles sont ensuite classées selon trois types :
- I (intra-coded) : en noir sur la figure suivante,
- P (predicted) : en gris,
- B (bi-directional predicted) : en blanc.
Voici une séquence typique d’images :
I
B
B
P
B
B
P
B
B
P
B
B
I
Les images I, comme leur nom l’indique, sont codées indépendamment des autres, à la
manière d’une image fixe (proche de JPEG).
Une image P est prédite à partir de l’estimation du mouvement entre l’image I précédente et
cette image, ou entre l’image P précédente et cette image. On a besoin pour cela d’un
algorithme prédisant les mouvements d’une image à l’autre (Motion estimator).
Les images B sont prédites à partir d’une interpolation bidirectionnelle entre images I et P, ou
P et P voisines.
Pour les images P et B, on codera les informations de déplacements (motion vectors) et la
différence entre l’image prédite et l’image réelle.
Codage intra
L’ image en format SIF est tout d’abord discrétisée en blocs de 8x8 pixels.
Dans chaque bloc de luminance (ou de chrominance), on applique la transformée en cosinus
discrète à la luminance (ou aux deux signaux de chrominance). La DCT (discrete cosine
transform) fonctionne à la manière de la transformée de Fourier : le résultat en est un
ensemble de 8x8 coefficients (transformée à deux dimensions), voir figure suivante.
Compression Vidéo – Novembre 2006
0 1 2 3 4 5 6 7
0
1
2
3
4
5
6
7
0 1 2 3 4 5 6 7
DCT
Bloc de 8x8 pixels
4
0
1
2
3
4
5
6
7
Matrice de 8x8 coefficients
En particulier, le coefficient d’ordre (0,0), appelé aussi coefficient DC, représente la
composante continue, c’est-à-dire la luminance (ou la chrominance) moyenne du bloc. Plus
l’ordre du coefficient augmente, plus il exprime une variation spatiale de haute fréquence,
dans le sens horizontal ou vertical de l’image.
Il est évident que, pour la plupart des blocs, tant la luminance que la chrominance seront plus
ou moins constantes, ce qui se traduira par :
- des coefficients de la DCT de valeur importante, pour les ordres faibles (basses
fréquences),
- des coefficients peu significatifs pour les ordres élevés.
Note : la DCT est une opération réversible, si tous les coefficients sont conservés ! Pour plus
d’informations sur cette transformée, voir le cours de traitement numérique d’images du
Professeur Van Droogenbroeck (en référence).
Après la transformée DCT, chaque bloc est représenté par un ensemble de 8x8 coefficients.
Ces coefficients subissent ensuite les opérations de seuillage et de quantification :
- mise à zéro des coefficients sous un certain seuil (coefficients les moins significatifs) ;
- attribution d’un nombre de bits décroissant avec l’ordre des coefficients (ou avec la
fréquence spatiale) ;
- les coefficients DC sont codés de manière différentielle (par rapport au bloc
précédent), dans le but d’épargner encore quelques bits.
Grâce à ces opérations, on espère éliminer l’information non pertinente (c’est-à-dire non
visible) dans l’image.
Vient ensuite l’opération de zig-zag scan : les coefficients codés (sauf DC) sont placés dans
l’ordre des fréquences spatiales croissantes : voir figure suivante.
Matrice de 8x8 coefficients : zig-zag scan
Compression Vidéo – Novembre 2006
5
Le résultat est une suite binaire comprenant de nombreux « zéros » successifs, correspondant
aux coefficients d’ordres élevés peu significatifs, et annulés par les opérations de seuillage et
de quantification.
Viennent enfin deux encodages sans perte, qui réduisent encore le bitrate :
- un codage RLC (run length coding), qui code le nombre de zéros successifs plutôt que
la séquence 00000….00000 ;
- un codage de type Huffman, qui accorde aux symboles les plus fréquents les codes les
plus courts (pour mémoire).
Motion estimator
Les images sont discrétisées en macroblocs : un macrobloc contient 16x16 pixels de
luminance (c’est-à-dire 4 blocs voisins utilisés pour la DCT), et donc 8x8 (la moitié) pixels de
chrominance (dans le format SIF).
Macrobloc :
16x16 pixels de
luminance,
et 8x8 pixels de
chrominance
Macrobloc (format SIF) : en blanc, les échantillons de
luminance, en noir de chrominance.
Pour un macrobloc de l’image P courante, on recherche dans l’image (I ou P) précédente le
macrobloc voisin le plus semblable, en termes de luminances et de chrominances. Une fois
identifié, on peut évaluer le « vecteur déplacement » (motion vector) du macrobloc qui sera
appliqué à tous les pixels du macrobloc et aux trois composantes (Y, Cb,Cr).
Le codage de l’image prédite P (à partir de l’image I ou P précédente) comprendra :
- les motion vectors codés,
- la différence entre l’image réelle P et l’image prédite par l’ensemble des motion
vectors, cette différence (ou résidu) étant codée en intra (DCT, etc..) : voir figure
suivante.
Compression Vidéo – Novembre 2006
6
Pour les images B, les vecteurs de déplacements sont interpolés temporellement, et l’image
est prédite soit à partir de l’image I ou P précédente (forward), soit à partir de l’image I ou P
suivante (backward), soit de manière bidirectionnelle à partir des deux I ou P voisines. Parmi
les trois techniques, l’image prédite la plus proche de l’image réelle est retenue, et la
différence est encodée comme pour les images P.
On peut imaginer la complexité de l’encodeur, notamment en relation avec l’estimateur de
mouvements. Le codec est dit asymétrique, car le décodeur est moins complexe que
l’encodeur (idem qu’en compression audio).
Schéma global de l’encodeur
Video SIF
Nouvel ordre des
images :
IPBBPBBPBB…
DCT
Images I
Q
Images P
Mémoire
Predict P
-
résidu
Codage
sans perte
I ou P précédente
Motion
Estimator
MUX
Motion vectors
I ou P précédente et
suivante
Predict B
Images B
résidu
Bitstream
MPEG
Bloc Q : seuillage et quantification des coefficients de la DCT
Ainsi qu’observé sur la figure, l’ordre initial des images IBP est modifié de manière à faciliter
les opérations de prédiction (pourquoi ?).
En général, on retrouve 2 images B entre deux images P, et 11 images entre deux images I.
Une boucle de régulation est prévue après le multiplexeur (MUX) : elle agit sur le niveau de
quantification des coefficients de la DCT de manière à assurer un bitrate en sortie constant.
Compression Vidéo – Novembre 2006
7
MPEG-2
L’apport de MPEG-2 par rapport à MPEG-1 concerne principalement la création de différents
niveaux et différents profils.
Quatre niveaux
Low : SIF, MPEG-1 (360x288)
Main : standard 4 :2 :0 (720x576)
High-1140 : résolution (1440 x 1152)
High : résolution (1920 x 1152)
Cinq profils
Simple : pas d’image B
Main : I,B,P
SNR scalable (pour mémoire)
Spatially scalable (pour mémoire)
High : 4 :2 :0 ou 4 :2 :2 pour TV haute définition
Pour (presque) chaque combinaison, il existe des algorithmes de compression proposés dans
le standard MPEG-2. La plus courante est l’association Main level at Main profile
(MP@ML), c’est-à-dire celle qui permet d’atteindre des taux d’information de 4 à 9 Mbits/s
et que l’on retrouve notamment dans le standard DVD.
4 Mbits/s correspond plutôt à une qualité vidéo analogique PAL.
9 Mbits/s correspond plutôt à une qualité vidéo numérique CCIR-601.
En outre, dans MPEG-2, trois modes existent pour l’estimation des mouvements dans les
signaux video avec entrelacement : les blocs et macroblocs peuvent ainsi être créés sur
l’image complète (formée par deux trames successives) ou sur chaque trame séparément (une
trame = une demi-image).
Références
H. Benoit, Digital Television, MPEG-1, MPEG-2 and principles of the DVB system, Focal
Press, 2002.
M. Van Droogenbroeck, Cours de traitement numérique d’images,
http://www.ulg.ac.be/telecom/teaching/notes/totali/elen016/index.html
M. Van Droogenbroeck, Cours de technologies du multimedia, des télécommunications et de
l’internet, http://www.ulg.ac.be/telecom/teaching/notes/multimedia/index.html
The MPEG Home Page, http://www.chiariglione.org/mpeg/T