Vous êtes sur la page 1sur 30

Compression video I

MPEG1, MPEG2, H261, H263

Alain Merigot

Universite Paris sud

A. Merigot (am@ief.u-psud.fr) Compression video I 1 / 30


Compression video

Codage de sequence en suite dimages JPEG : 25 * 720 * 572 * 1.5


bit/pel = 15.5 Mbit/s (Motion-JPEG ou MJPEG)

On doit encore gagner un ordre de grandeur.

Utilisation de la correlation temporelle entre images successives


dans une sequence video.

On code la difference entre un bloc et ce bloc de limage precedente


par DCT+Quantification+codage a longueur variable

Ce principe est utilise par la plupart des normes de video .

A. Merigot (am@ief.u-psud.fr) Compression video I 2 / 30


Historique des normalisations

ITU-T H.261 1990 Visiophonie


ISO 1172-2 MPEG-1 1993 CD-ROM
ITU-T H.262 ISO 13818 MPEG-2 1995 DVD, DTV
ITU-T H.263 1996 Visiophonie
ITU-T H.263+ 1998
ISO 14496-2 MPEG-4 1999 Streaming, television interactive
ITU-T H.263++ 2000
ITU-T H.264 / ISO 14496 MPEG-4/AVC (ou MPEG-4 part 10)
2003
Toutes ces normes definissent la syntaxe dun flot de bits valide
(bitstream) et la maniere dont il doit etre decode.
La norme ne definit pas ce que doit etre le codeur.

A. Merigot (am@ief.u-psud.fr) Compression video I 3 / 30


Principe de codage

Decomposition de limage en blocs


Calcul de la difference entre le bloc courant et un bloc de limage
precedente (exploitation de la redondance temporelle).
Transformation en cosinus du bloc residuel, quantification et
codage entropique

Cest un codage par prediction de limage. Pour eviter les


accumulations derreurs (dues a la quantification), on incorpore un
decodeur dans le codeur, et on compare a limage decodee.

A. Merigot (am@ief.u-psud.fr) Compression video I 4 / 30


Principe de codage MPEG
CODEUR

Controle quantif

+
DCT Q VLC Buffer
-

Vecteurs mvt.
Est. mvt Comp. mvt

+
+ -1 -1
Mm. trame Mm. trame DCT Q

Vecteurs mvt
Mm. trame Comp. mvt

+
+ -1 -1 -1
DCT Q VLC Buffer

A. Merigot (am@ief.u-psud.fr) Compression video I 5 / 30


Prise en compte du mouvement

En cas (probable !) de mouvement dans la sequence, la prediction se


fait en deux temps :

estimation du mouvement des blos dune image a lautre : On


cherche pour chaque bloc dans son voisinage ( 16 pixels) le bloc
le plus semblable.
compensation de mouvement : calcul de la difference entre le
bloc courant et le bloc le plus semblable de limage precedente.

A. Merigot (am@ief.u-psud.fr) Compression video I 6 / 30


Compensation de mouvement

A 1ere frame B 2eme frame

Difference brute A B Difference A B apres compensation de mouvement


A. Merigot (am@ief.u-psud.fr) Compression video I 7 / 30
Problemes :
il faut pouvoir redemarrer regulierement, meme si limage de
depart manque.
lestimation de mouvement est tres couteuse (recherche
exhaustive du voisinage).
Pour cela, on distingue trois types dimages :
images Intra (I) avec codage non differentiel (a la JPEG
images predites (P). Une image toutes les M sera predite avec
compensation de mouvement
images interpolees (B) obtenues par interpolation lineaire des
deplacements
Valeurs typiques :
une image I toutes les 12-16
une image P toutes les 3-4 images
les autres sont interpolees
A. Merigot (am@ief.u-psud.fr) Compression video I 8 / 30
Trames MPEG

Trames H261/H263

Trames MPEG1/2

Trames Intra I Trames Predites P Trames interpolees B


A. Merigot (am@ief.u-psud.fr) Compression video I 9 / 30
Estimation de mouvement

Lestimation de mouvement se fait a partir du deplacement des blocs


de limage precedente.

A. Merigot (am@ief.u-psud.fr) Compression video I 10 / 30


Estimation de mouvement (suite)

Pour les images interpolees, lestimation est bidirectionnelle.

On peut estimer par MVp, MVf ou une iterpolation des deux, suivant ce
qui produit la plus faible erreur dinterpolation.
Lavantage des images B est double :
reduction du temps de calcul
pas denvoi des vecteurs mouvement (reduction du debit)
Par contre, augmentation de la latence...
A. Merigot (am@ief.u-psud.fr) Compression video I 11 / 30
La syntaxe dune sequence video

Niveaux hierachiques de codage :


Sequence : definition dune sequence video entiere
Groupe dimages (GOP Group of Pictures) : correspond a une
sequence dimages IBBPBBP...
Image
Tranche (slice) : regroupe un nombre quelconque de MB. Sert
essentiellement pour resynchroniser et recuperer les erreurs.
Macrobloc (MB) (16x16) : unite pour lestimation et la
compensation de mouvement. Un MB regroupe 4 blocs pour la
luminance (Y), et deux blocs de chrominance (Cr Cb) pour le
codage 411. Dautres codages sont aussi possibles.
Bloc (8x8) : unite pour codage et DCT

A. Merigot (am@ief.u-psud.fr) Compression video I 12 / 30


Les GOPs

Un GOP regroupe un ensemble dimages. Il commence toujours par


une image I.
Ordre des GOPs :
a lentree de lencodeur :
1 2 3 4 5 6 7 8 9 A B C
I B B P B B B P B B P B
a la sortie de lencodeur :
1 4 2 3 8 5 6 7 B 9 A C
I P B B P B B B P B B B
a la sortie du decodeur
1 2 3 4 5 6 7 8 9 A B C

A. Merigot (am@ief.u-psud.fr) Compression video I 13 / 30


Types dimages et de MB

Il y a 5 types de MB :
I Intra
P predit
B bidirectionel soit forward, backward ou interpole
Zero MV Aucun vecteur mouvement associe. La compensation
est faite avec le meme MB de limage precedente
SKIP (aussi appele FIX). Aucun codage. On recopie les donnees
du meme MB de limage precedente.
Suivant le type dimages, differents types de MB sont autorises:
I MB P MB B MB ZeroMV SKIP
image I x
image P x x x x
image B x x x x

A. Merigot (am@ief.u-psud.fr) Compression video I 14 / 30


Les slices

Les slices regroupent un nombre quelconque de MB.

Leur emplacement peut changer dune image a lautre.

Le premier et le dernier MB dun slice doivent etre dans la meme


rangee de MB.

Linteret essentiel des slices est la recuperation derreurs.

Les MB dun slice sont envoye sequentiellement, avec un increment


dans lentete (ce qui permet de ne pas coder certains MB). Dans ce
cas, on reprend le MB de limage precedente.

A. Merigot (am@ief.u-psud.fr) Compression video I 15 / 30


Syntaxe de codage dune sequence

Video sequence

Seq. GOP header Seq. GOP header Sequence


Seq. header ...
extension and picture extension and picture end code

GOP header User data picture ... picture ... picture

Picture Pict. Coding Extension &


slice slice ... slice
header extension User data

Slice
macroblock macroblock macroblock macroblock ... macroblock
header

macroblock
Block 0 Block 1 Block 2 Block 3 Block 4 Block 5
header

Diff. DC coef Run-level Run-level Run-level


... ... End of block
(intra MB) VLC VLC VLC

A. Merigot (am@ief.u-psud.fr) Compression video I 16 / 30


Codage des blocs

Apres DCT, les blocs sont quantifies.


La quantification est controlee par un parametre MQUANT. Ce
parametre peut etre change pour chaque MB entre 1 et 31.
Une quantification basse augmente la qualite (et le debit).
Cas des blocs intra
Utilisation dune table de quantifica-
tion W . 08
16
16
16
19
22
22
24
26
27
27
29
29
34
34
37
Le coefficient AC C(u, v ) est quantifie 19
22
22
22
26
26
27
27
29
29
34
34
34
37
38
40
C(u,v )8
par Q(u, v ) = MQW (u,v )
22
26
26
27
27
29
29
32
32
35
35
40
40
48
48
58
26 27 29 34 38 46 56 69
Le coefficient DC est code par 27 29 35 38 46 56 69 83
prediction.
Cas des blocs intra
La quantification est uniforme pour tous les coefficients.
A. Merigot (am@ief.u-psud.fr) Compression video I 17 / 30
Effets de la quantification sur le debit et la qualite

512kb/s 180kb/s 75 kb/s

A. Merigot (am@ief.u-psud.fr) Compression video I 18 / 30


Interlace tools
Pour gerer lentrelacement, on definit deux types dimages:
Les images de trames (frame pictures) contiennent une image
complete
Les images de champs (field pictures) sont formees de deux
champs successifs : les champs superieurs et inferieurs suivant le
schema dentrelacement
Egalement deux types de DCT :
DCT par trame
DCT par champs on regroupe ensemble les
lignes paires et les lignes impaires pour
realiser la DCT (sauf pour Cr, Cb).
Les images de champs utilisent toujours la DCT
par champs. Les images de champs peuvent
utiliser un des deux mecanismes.
Si la DCT par champs est utilisee, le motif de par-
cours zig-zag est modifie.
A. Merigot (am@ief.u-psud.fr) Compression video I 19 / 30
Interlace tools (suite)

La prediction et la compensation de mouvement peuvent etre basees


sur les trames ou les champs.
La prediction par champs cherche un deplacement qui corresponde au
champs courant 16x8.
Les images de trame peuvent utiliser les deux schemas de prediction.
Pour la prediction par champs deux vecteurs mouvement sont derives.
Les images de champs peuvent :
utiliser la prediction par champs. Lestimation de mouvement est
faite avec les deux champs precedents (par exemple, en traitant le
champs inferieur au temps t, on considerera le champs superieur
du temps t, et le champs inferieur du temps t 1).
faire une compensation 16x8 (pour les parties inferieure et
superieure du MB)

A. Merigot (am@ief.u-psud.fr) Compression video I 20 / 30


Autres aspects

MPEG system : fourni des outils pour multiplexer et synchroniser les


images, le son, le texte, pour gerer des pistes multiples, proteger les
donnees, etc.

Gestion des profils : les profils decrivent les fonctionnalites supportees


par un codec donne.

Codage scalable : permet de decrire une sequence video comme un


flux de base et une ou des couches damelioration.

3/2 pulldown (pour convertir un film a 24 im/s en NTSC a 30 im/s)

etc...

A. Merigot (am@ief.u-psud.fr) Compression video I 21 / 30


Principales normes

MPEG1, MPEG2 : ISO, applications video, TV numerique, DVD

H261, H263, H263+ : ITU, application visiophonie

Le principe de base similaire :

decoupage de limage en macroblocs 1616 (4 blocs 88 de


luminance et 2 de chrominance).
estimation de mouvement sur ces blocs
compensation de mouvement eventuelle
transformee en cosinus
quantification
parcours en zig-zag, codage par plage, codage de Hufman.

A. Merigot (am@ief.u-psud.fr) Compression video I 22 / 30


Differences

MPEG1 MPEG2 H261 H263


Debit typique de 1.1 Mbit/s px64 kbit/s < 64 kbit/s
768x576 Resolution elevee CIF, QCIF CIF, QCIF, 4CIF,
possible SQCIF
Aspect variable Aspect fixe 4:3
Groupe dimages (GOP) Pas de GOP Notion de tranche
(slice)
Images I, B, P Pas dimages B Images I, B, P
Saut dimages qq Saut dimages < 3 Saut dimages qq.
Deplac. 15 au Deplac. 15 au Deplac. 15 au Deplac. 15 au
pix. 1/2 pix. pix. 1/2 pix.
La latence nest pas critique La latence est critique

A. Merigot (am@ief.u-psud.fr) Compression video I 23 / 30


Etude de la norme H263

H261 ISDN
H263 Tres bas debits (< 64 kbit/s)
4 modes optionnels
H263 vers2 (H263+, H263++)
12 modes optionnels
Scalable

A. Merigot (am@ief.u-psud.fr) Compression video I 24 / 30


Les normes H26[13] sont la partie video de normes couvrant tout les
aspect de visiophonie (H320, H323, ...).
H261

Equip. Codec Structure


vido vido des
trames
H200

Codec
Equip.
audio
Audio

Interface rseau
+dlai
MUX/
DEMUX

Equip. telematique

H242, H230, H221

Controle
systme

Signisation
rseau

H320

A. Merigot (am@ief.u-psud.fr) Compression video I 25 / 30


La norme H263

Format dimages standardises : CIF, QCIF, SQCIF, 4CIF, 16CIF.


Format 4:1:1 (1 pixel de chrominance au centre de 4 pixels de
luminance)
Quatre niveaux hierarchiques :
image
groupe de blocs (GOB) de k 16 lignes
Macrobloc 1616. Comprend 4 blocs de luminace et 2 blocs de
chrominance
Bloc 88
Chaque niveau contient un entete avec des informations (Q, depl, etc)

A. Merigot (am@ief.u-psud.fr) Compression video I 26 / 30


Compensation de mouvement par bloc, avec un vecteur
deplacement par MB

Precision du 1/2 pixel [-16,+15.5]

Le deplacement est predit par la valeur mediane de 3 voisins (N,NE,O)

DCT sur des blocs 88

Quantification :

Meme valeur pour tout le MB, matrice uniforme

Quantification paire de 2 a 62.

le coefficient DC est divise par 8 pour un bloc Intra

A. Merigot (am@ief.u-psud.fr) Compression video I 27 / 30


Informations dentete
Picture Layer
GOB Layer
PSC (22): Picture Start Code
GSTUF (V<8): Stuffing
TR (8): Temporal Reference
GBSC (17): GOB Start Code
PTYPE (13): Picture Type Info.
GN (5): Group Number
PQUANT (5): Picture Quantizer
GSBI (2): GOB Sub-Bitstream Indica.
CPM (1): Continuous Presence Multipoint
GFID (2): GOB Frame ID
PSBI (2): Picture Sub-Bitstream Indicator
GQUANT (5): GOB QUANT Info.
TRB (3): Temp. Ref. for B-picture
DBQUANT (2): DQUANT for B-pic.
PEI (1): Extra Insertion Information
PSPARE (8): Spare Information
ESTUF (V<8): Stuffing
EOS (22): End of Sequence
PSTUF (V<8): Stuffing
Macroblock Layer
COD (1): Coded Macroblock Indic.
MCBPC (V): Macroblock type & Coded Block Block Layer
Pattern for Chrominance INTRADC (8): DC coefficient for INTRA
MODB (V): MB Mode for B-blocks blocks
CBPB (6): Coded Block Pattern for B- blocks TCOEF (V): Transform Coefficients
CBPY (V): Code Block Pattern for Y
DQUANT (2): Differential QUANT
MVD (V): Motion Vector Difference
MVD2-4 (V): MVDs in Adv. Pred.
MVDB (V): MVD for B-blocks
Modes optionnels :

vecteur deplacement non-restreints : deplacements possible


[31.5,+31.5], deplacements hors de limage.

codage arithmetique : amelioration denviron 5%.

Prediction avancee : 4 vecteurs deplacement par MB

Trames doublement interpolees : (PB frames) des trames


intermediaires ont un mouvement interpole sur les trames predites

A. Merigot (am@ief.u-psud.fr) Compression video I 29 / 30


Extensions H263+

extension du deplacement non restreint [-256,+255.5]


amelioration du codage intra (par prediction du coefficient DC) et
nouvelles tables specifiques DC.
filtre de suppression des blocs dans la boucle de codage.
groupement de blocs de taille varaible (slice)
informations specifiques sur limage : gel de regions, etc.
selection de limage de reference
echelabilite temporelle et spatiale a posteriori.
mise a jour en resolution reduite
amelioration de la quantification (non limitee a des variations de
2)

A. Merigot (am@ief.u-psud.fr) Compression video I 30 / 30

Vous aimerez peut-être aussi