0% ont trouvé ce document utile (0 vote)
248 vues31 pages

Presentation H264

Transféré par

brahimg
Copyright
© Attribution Non-Commercial (BY-NC)
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
248 vues31 pages

Presentation H264

Transféré par

brahimg
Copyright
© Attribution Non-Commercial (BY-NC)
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Présentation du Standard AVC :

Advanced Video Coding

Présentation réalisée par


Brahim Gaabab
14 Avril 2004
Plan
● Contexte
● Présentation générale
● Principes de codage
– Prédiction
– Transformée
– Quantification
Contexte
● ITU-T : H.263, H.263+ du groupe VCEG
● ISO : MPEG-2 et 4 du groupe MPEG
● En 1999, VCEG produit le draft H.26L
– >> Performances intéressantes
● En 2001, création du JVT (MPEG+VCEG)
– Mission : un standard international du H.26L
– Résultat : AVC (MPEG4 Part 10 ; H.264)
Présentation générale
● Approche de codage vidéo :
– Réutilisation des fonctions existantes (codage par
bloc, prédiction hybride, transformation)
– Modifications minimes dans chaque fonction
● Définition du syntaxe du flux codé et d'une
méthode de décodage
● Trois profils (baseline, extended, main)
– >> Interopérabilité croissante des codecs
Fonctions des codecs AVC

(Fn)
Cod. Adapt. Flux
(F'n-i) Prédicteur Transf. Quantif
Entrop. Réseaux
(UF'n)

(F'n) -1 -1
Filtre Transf. Quantif
Macro blocs, Slice, Slice Group
● Slice = suite de macro blocs
– Peuvent être décodées spéramment
– Appartiennent à la même image
● >> Image = suite de slices (au max 1)
Slice #1

Slice #2

Slice #3
Macro blocs, Slice, Slice Group
● Slice Group : suite de slice définit par un
modèle d'allocation des macro blocs (FMO)
Slice group #1

Slice group #2
Codage prédictif
● Exploiter la corrélation d'un signal pour le
comprimer
● Principe :
– Trouver une fonction qui prédit au mieux les
échantillons à coder à partir d'un voisinage
particulier, et
– Coder la différence entre la valeur prédite et la
valeur réelle, les paramètres de fonction et de
voisinage utilisé.
Prédiction Intra-1
● Corrélation du signal dans un voisinage
spatial réduit
● Voisinages utilisés dans une image
– Luma : blocs de 16x16 ou blocs de 4x4
– Chroma : deux blocs de 8x8 (Cb et Cr)
● 9 fonctions de prédicition
● Références de prédiction
– 13 échantillons pour les blocs 4x4
– 32 échantillons pour les blocs 16x16 ou 8x8
Prédiction Intra : exemple [5]
● Prédiction Intra pour un bloc luma 4x4

Macro bloc luma


Prédiction Intra : exemple [5]
● Prédiction Intra pour un bloc luma 4x4

Calcul de la
fonction
de prédiction
la plus
adéquate

Macro bloc luma


Prédiction inter-1
● Les signaux des images d'une même
séquence sont corrélées
● Prédiction inter :
– Estimation de mouvement pour chaque voisinage
– Compensation de mouvement dans chaque
voisinage
➔ Voisinages utilisés dans les références :
– Luma : blocs de 16x16, 8x16, ... 8x8, 4x8, ... 4x4
– Chroma : blocs de 8x8, 4x8, ... 4x4, 2x4, ..., 2x2
Prédiction inter-2
● Une image est décodée par la donnée de :
– La partition de ses macro blocs,
– Les références de l'estimation (16x16 ... 8x8),
– Le champ de mouvement,
– Le résidu de compensation de l'estimation.
● Dans une partition, le champ de mouvement
présente une corrélation
– Prédiction intra des vecteurs de mouvement
Prédiction inter-3
● Codage des macro blocs en mode Skip
– Aucune données n'est transmis par le codeur
– Décodage par estimation de mouvement
Transformée-1
● Transformée du résidu de prédicition
● Utilisation d'une transformée DCT-like
● La transformée et son inverse sont entières
● Trois types de transformées :
– 4x4 pour les coéff. des blocs luma et chroma
– 4x4 et 2x2 pour les coéff. DC luma et chroma
Quantification
● Ramener les valeurs des coéfficients à un ensemble
de valeurs prédéfinis
– >> Permet de comprimer les données, mais avec
perte de précision
● AVC définit 52 quantificateurs
– Le pas augmente de 12,5 % (0,625 .... 224)
● Un quantificateur est choisit pour chaque bloc
Codage entropique
● Comprimer les données :
– Coéfficients et vecteurs de mouvement
– Infos de contrôle
● Trois types de codage :
– UVLC (Universal VLC) pour les paramètres de
contrôle
– CAVLC (Context-Adaptive VLC) pour les
coéfficients et vecteurs de mouvement
– CABAC (Context-Adaptive Binary Arithmetic
Coding) pour les coéfficients et vecteurs de
mouvement
Filtrage de boucle-1
● Réduire la distortion aux bords des blocs
● Filtrage adaptatif selon :
– Le gradient de l'image à l'origine (évalué par QP)
– Le gradient actuel de l'image décodée
● 4 niveaux d'adaptation
– >> agit sur l'étendue et la puissance du filtre
● Filtrage appliqué aux signaux luma et
chroma
Filtrage de boucle-2
NAL-1
● Network Abstraction Layer : prendre en
compte le type de transport (paquet, stream)
– Efficacité d'utilisation de la bande passante
● Flux vidéo = série de NAL Units
● NAL Access Unit : série de NAL Units
permettant de décoder une image
– Encapsule des :
● Données pour le décodage de l'image
● Données rédondante pour la tolérance aux pertes
NAL-2
● Parameter Set (PS) : paramètres de contrôle
servant au décodeur
– Peu variables
● Retransmis par le codeur uniquement en
cas de changement
● Référencés dans chaque NAL Unit
– Gain en compression
Perfomances-1
● Tests conduits sur H.263++, AVC et MPEG-
4

Gains relatifs en bande passante [3]


Conclusion
● Nouveau standrad de codage d'images
– Réutilisation : fonctions principales de codage
– Innovation : CABAC, quantif., trans.
● Taux de compression importants ; mais
● Complexité des codecs
Bibliographie
● [1]. F. Loras, “H.264/MPEG'4 AVC un Nouveau Standard de
Compression Vidéo,” Taima'03.
● [2]. T. Wiegand et al, “Overview of the H.264/AVC Video
Coding Standard,” IEEE Transactions, Julliet 2003.
● [3]. R. Schäfer, T.Wiegand, H.Schwarz, “The emerging
H.264/AVC Standard,” Heinrich Hertz Institue, Berlin,
Germany, Janvier 2003.
● [4]. Harmonic, “AVC + AAC, The Next Generation of
Compession,” White Paper.
● [5]. Vcodex AVC Tutorial Series (http://www.vcodex.com).
Annexes
Prédiction inter : exemple-1 [4]

Macro bloc de luma


Transformée : exemple-1

1 1 1 1
2 1 -1 -2
1 -1 -1 1
1 -2 2 -1

Transformée
des coéfficients 4x4

Bloc de luma

Macro bloc de luma


Transformée : exemple-2

X X X X

X X X X

X X X X xxxx
Transformée xxxx
des coéfficients 16x16 x x x x
X X X X xxxx
Coéff. DC du macro bloc
Macro bloc luma codé en mode 4x4
Types des slices-1
● Trames P, I, B, mais :
– Plus de corrélation entre l'odre de codage et de
référence des images et l'ordre d'affichage
– >> prédiction plus intéressante
● Trames SP² :
– Servent à coder la transition entre deux flux vidéo,
– Remplacent en ce terme les trames I, couteuses
en débit
Macro blocs, Slice, Slice Group
● Vidéo = Séquence d'images
● Image :
– La trame complète, ou
– Les deux champs pris séparamment.
● Image = suite de macro blocs
● Macro bloc :
– Un bloc 16x16 échantillons luma, et
– Deux blocs 8x8 échantillons chroma (Cb et Cr).
Codage prédicif-1

(Fn)
Cod. Adapt. Flux
(F'n-i) Prédicteur Transf. Quantif
Entrop. Réseaux
(UF'n)

(F'n) -1 -1
Filtre Transf. Quantif

Vous aimerez peut-être aussi