Video compression

Transcription

Video compression
Sommaire
z
Le monde de la vidéo
Codage Vidéo, ENSTA, 15 février 2006
¾But
: acquérir assez de notions pour
pouvoir ensuite approfondir le
domaine si nécessaire
– Applications, nécessité, organismes
de normalisation
z
Notions de base
z
– Généralités, bitstream,
images I, images B&P,
codeurs-décodeurs
– Vocabulaire, formats vidéo
z
Techniques élémentaires
– Réductions spatiale et temporelle,
estimation et compensation de
mouvement, codage basé trames,
contrôle de débit, schéma classique
d’un codeur vidéo
z
Estimation et
compensation de
mouvement: détails
Maryline Clare
Normes MPEG
z
MPEG-1, MPEG-2,
MPEG-4
z
Zoom sur MPEG-4
AVC
z
Introduction à MPEG-4
SVC
z
Conclusion
1
Codage Vidéo, ENSTA, 15 février 2006
MPEG : généralités
z
Vocabulaire et généralités
– Seul le décodage et le bitstream sont normalisés,
z
Le codeur, complexe, est laissé à la compétition (même
si un exemple est donné à titre informatif)!
– Chaque norme MPEG est divisée en différentes
parties
Part 1: Systems (notamment synchronisation,
multiplexage)
z Part 2: Video
z Part 3: Audio
z Part 4: Conformance
z Etc.
¾ MPEG-1 en 5 parties, MPEG-2 en 9 et MPEG-4 en 10
z
Maryline Clare
2
Codage Vidéo, ENSTA, 15 février 2006
MPEG : généralités
– Espace de couleur : YCbCr (pas YUV ou YIQ), 8 bits
par échantillon (≅16 millions de couleurs)
– Structure hiérarchique pour faciliter la récupération d’erreurs, les
montages, etc.
Séquence vidéo = le résultat final
z Groupe d’images (GOP) = une suite d’images de la
séquence commençant à une image intra et contenant toutes
les images inter jusqu’à la prochaine image intra
z
– Plus les GOPs sont courts, plus les montages sont faciles
Image (= image ou champ si entrelacement)
z Tranche (“slice”) = suite de macroblocs d’une image
z Macroblocs = ensemble de blocs
z
– Souvent = 4 blocs : 1 bloc 16x16 en luminance et les 2 blocs 8x8
correspondants en chrominance
z
Blocs = unités 8x8 pixels (voire 4x4 récemment)
Maryline Clare
3
Codage Vidéo, ENSTA, 15 février 2006
MPEG : généralités
z
Tranches (slices)
– Favorise le parallélisme car les “tranches”
peuvent être traitées de façon totalement
indépendante
Slices dans MPEG-1
Maryline Clare
Slices dans MPEG-2
4
Codage Vidéo, ENSTA, 15 février 2006
MPEG: train binaire (bitstream)
Î Séquence
ÎGroup of pictures (GOP)
ÎPicture
ÎSlice
ÎMacroblock
ÎBlock
Picture Slice MB B B B B MB
GOP Picture
Picture
unité définissant le contexte
permet d'initialiser un décodeur
unité d'accès aléatoire vidéo
unité de codage et d'affichage
unité d'adressage et de synchronisation
unité de compensation de mouvement
(16x16)
unité de codage DCT (8 x 8)
Slice
Picture
Picture
Séquence GOP
GOP
GOP
GOP
001001001011110101010011110101010010111011001010010011110111101010101
Maryline Clare
5
Codage Vidéo, ENSTA, 15 février 2006
MPEG : images I
– Les images I sont codées un peu comme du “JPEG”
(baseline) (cf. votre cours image fixe la semaine dernière!)
DCT
z Quantification
z Réordonnancement (zig-zag scan)
z Codeur entropique Huffman en Variable Length Coding
z
avec Run Length Coding et codage différentiel DPCM pour DC
Maryline Clare
6
Codage Vidéo, ENSTA, 15 février 2006
MPEG : images I
z
Quantification
– Tables de quantification, pondérées d’un facteur, le
« scaling code »
– Table de quantification intra : éliminer surtout les
fréquences hautes (car l’œil y est moins sensible)
– Peut être adaptative (on quantifie plus un ciel de fond que
la fleur de 1er plan)
Maryline Clare
8
16
19
22
26
27
29
34
16
16
22
24
27
29
34
37
19
22
26
27
29
34
34
38
22
22
26
27
29
34
37
40
22
26
27
29
32
35
40
48
26
27
29
32
35
40
48
58
26
27
29
34
38
46
56
69
27
29
35
38
46
56
69
83
7
Codage Vidéo, ENSTA, 15 février 2006
MPEG : images I
z
Etape de réordonnancement des données entre la
quantification et le codage entropique
Maryline Clare
8
Codage Vidéo, ENSTA, 15 février 2006
MPEG : images inter B&P
– Les images inter se décomposent en images P et
en images B
Les images P sont les images prédites classiques
z Les images B (bi-directionnelles) font appel à des
images passées et futures (car les images passées n’ont
pas toute l’information nécessaire… cf par exemple les
parties cachées par le ballon rouge)
z
Maryline Clare
9
Codage Vidéo, ENSTA, 15 février 2006
MPEG : images inter B&P
Les images P peuvent se référer à des images I, P
situées avant
z Les images B peuvent se référer à des images I et P
situées avant et/ou après (possibilité de se référer à 2
images en faisant le vecteur de mouvement moyen ⇒
interpolation)
z
– Une séquence est une suite
d’images organisée en série de I,
B, P. Le nombre de B et P entre
deux images I (et constituant un
GOP) est défini par des
paramètres, mais souvent un GOP
correspond à ½ s (=>12 à 15 images)
Maryline Clare
10
Codage Vidéo, ENSTA, 15 février 2006
MPEG : images inter B&P
z
L’ordre de transmission des images codées n’est plus séquentiel
z
Mais le taux de compression est meilleur, et les
erreurs de propagation limitées (les images B ne
sont utilisées pour aucune prédiction)
Maryline Clare
11
Codage Vidéo, ENSTA, 15 février 2006
MPEG : images inter B&P
– Codage des images inter:
z
Mouvement estimé sur les blocs de luminance et gardé
tel quel pour les blocs de chrominance
– La recherche de blocs n’est de toute façon pas normalisée =>
encodeur!
Maryline Clare
12
Codage Vidéo, ENSTA, 15 février 2006
MPEG : images inter B&P
z
z
z
Un macrobloc peut être “sauté” (skipped) s’il est estimé identique dans
l’image de référence
Seuil de tolérance à définir par le codeur pour décider lors du codage
des macroblocs d’images B et P si l’on trouve pour chacun d’eux une
prédiction “satisfaisante” => sinon codage “intra” de ce macrobloc
d’image inter
En résumé, dans une image P, un macrobloc peut être
– “Skipped”,
– Ou prédit d’une image I ou P précédente,
– Ou codé en intra.
z
Dans une image B, un macrobloc peut être
–
–
–
–
“Skipped”,
Ou prédit d’une image I ou P précédente,
Ou prédit d’une image I ou P suivante,
Ou interpolé à partir d’une image I ou P précédente et d’une image I
ou P suivante,
– Ou codé en intra.
Maryline Clare
13
Codage Vidéo, ENSTA, 15 février 2006
MPEG : images inter B&P
z
Image erreur (= image source - image prédite) encodée
comme une image I, mais avec une table de quantification
différente (même valeur pour tous les coefficients =>
« dead-zone » autour de zéro)
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
Maryline Clare
21|
16
|
32
14
Codage Vidéo, ENSTA, 15 février 2006
MPEG : images inter B&P
– Pour gagner encore en compression, les vecteurs
de mouvement trouvés sont codés en fonction des
vecteurs voisins => souvent quasi-identiques
Prédiction entre les vecteurs voisins dans la même
image (prédiction spatiale)
z Codage entropique de la différence
z
MV
prec
z
MV
On peut préciser par image la dynamique
des vecteurs de mouvements (avec
précision de ½ de pixel) ¾ Jusqu’à 64 pixels si mvts rapides
¾ Jusqu’a 16 pixels si mvts lents
Maryline Clare
15
Codage Vidéo, ENSTA, 15 février 2006
Codeurs-décodeurs MPEG
Module de « reconstruction », commun au
décodeur et au codeur
Maryline Clare
16
Codage Vidéo, ENSTA, 15 février 2006
Codeurs-décodeurs MPEG
Décodeur
Codeur
Maryline Clare
17
Codage Vidéo, ENSTA, 15 février 2006
Codeurs-décodeurs MPEG
z
Codeur
Images I
(seuls les blocs de fond
blanc sont “actionnés”)
Maryline Clare
18
Codage Vidéo, ENSTA, 15 février 2006
Codeurs-décodeurs MPEG
z
Codeur
Images P
(seuls les blocs de fond
blanc sont “actionnés”)
Maryline Clare
19
Codage Vidéo, ENSTA, 15 février 2006
Codeurs-décodeurs MPEG
z
Codeur
Images B
Maryline Clare
20
Sommaire
z
Le monde de la vidéo
Codage Vidéo, ENSTA, 15 février 2006
¾But
: acquérir assez de notions pour
pouvoir ensuite approfondir le
domaine si nécessaire
– Applications, nécessité, organismes
de normalisation
z
Notions de base
z
– Généralités, bitstream, images
I, images B&P, codeursdécodeurs
– Vocabulaire, formats vidéo
z
Techniques élémentaires
– Réductions spatiale et temporelle,
estimation et compensation de
mouvement, codage basé trames,
contrôle de débit, schéma classique
d’un codeur vidéo
z
Estimation et
compensation de
mouvement: détails
Maryline Clare
Normes MPEG
z
MPEG-1, MPEG-2,
MPEG-4
z
Zoom sur MPEG-4
AVC
z
Introduction à MPEG-4
SVC
z
Conclusion
21
Codage Vidéo, ENSTA, 15 février 2006
MPEG-1
z
Finalisé en 1991
– Pas d’entrelacement de trames, seulement de la
“vidéo progressive”
– Optimisé pour format SIF (Source Input Format)
Résolution 352x240 pixels à 30 images/secondes (NTSC)
z Résolution 352x288 pixels à 25 images/seconde (PAL)
z
– Peut aussi être utilisé jusqu’à 4095x4095 pixels à
60 images/seconde
– Optimisé pour des débits de 1.5 Mbits/seconde,
mais peut aussi être utilisé à des débits supérieurs
(jusqu’à 100 Mbits/sec) => utilisée dans CD-ROMs
Maryline Clare
22
Codage Vidéo, ENSTA, 15 février 2006
MPEG-2
z
Finalisé en 1994
– Optimisé pour la diffusion de télévision numérique
z
z
Entrelacement de trames et scalabilité (mais pas très utilisée)
Tansformation (DCT) et prédiction peuvent être inter-champ ou interimage (c-a-d sur des blocs obtenus après mélange des 2 trames)
– Débits:
z
z
3 à 15 Mbits/sec pour TV, 15 à 30 pour HDTV
Utilisée dans les DVDs et TV numérique (dont TNT gratuite)
– Introduction des profils et niveaux => norme générique
z
z
Profil
– Palette d'outils caractéristiques d’un codage d’une certaine
complexité
– Scalabilité du bitstream, et résolution de l’espace couleurs
Niveau
– Paramètres fixés dans ce profil
– Résolution image et débit maximum
Maryline Clare
23
Codage Vidéo, ENSTA, 15 février 2006
MPEG-2
Maryline Clare
24
Codage Vidéo, ENSTA, 15 février 2006
MPEG-2
¾ Main profile Main Level (MP@ML)
¾ Main profile High Level (MP@HL)
z Un décodeur MPEG possédant un profil et un niveau
donnés doit pouvoir décoder une vidéo de profil et niveau
inférieurs
– Introduction de la notion de scalabilité
Adaptabilité en résolution, en qualité ou en temps
z Un flux de base et des flux apportant plus d'information
(en résolution, en qualité ou en temps)
z Fonctionnalité intéressante, mais taux de compression
baisse => peu utilisée
z
Maryline Clare
25
Codage Vidéo, ENSTA, 15 février 2006
MPEG-2
– Quelques détails changent, par rapport à MPEG-1 :
z
z
z
z
La taille des images peut dépasser 4095x4095 dans la syntaxe
Possibilité d’autre parcours des coefficients DCT
Possibilité de précision des coefficients DC sur 9, 10 ou 11 bits au
lieu de 8
Le nombre de slices par rang doit être entier
Maryline Clare
26
Codage Vidéo, ENSTA, 15 février 2006
MPEG-4
z
Pourquoi
– Au départ, très bas débits (mobiles)
z
“Very Low Bitrate Audio-Visual Coding”
– Finalement tous débits, mais
Partie 2 "Visual" => fonctionnalités en plus telles que
l’interactivité sur le contenu audiovisuel, mais n'a pas
vraiment connue de succès (trop d'options et de
possibilités différentes)
z Partie 10 "AVC" (Advanced Video Coding) => se
recentre sur l'efficacité de codage de façon
impressionnante (débit 2 fois plus faible pour qualité
visuelle comparable) et abandonne "le reste" (pas d'objets,
pas d'interactivité)
z
Maryline Clare
27
Codage Vidéo, ENSTA, 15 février 2006
MPEG-4
z
Pourquoi (suite)
– Exemple de besoins de diverses applications
z
Mobiles
– Résistance aux erreurs, très forte compression
z
Télévision numérique personnalisée
– Production : effets spéciaux, composition de scènes intégrant
des objets provenant de différentes sources
– Visualisation : possibilité d’intervention de l’utilisateur
(interactivité)
z
Jeux vidéo
– 3D, interactivité, intégration d’objets naturels pour un rendu
plus réaliste
z
Maryline Clare
Internet (par exemple streaming pour chaînes TV)
Résistance aux erreurs, adaptabilité à diverses
résolutions et débits (scalabilité)
28
Codage Vidéo, ENSTA, 15 février 2006
MPEG-4 "Visual": nouveautés
Une amélioration des techniques de codage.
z Une meilleure protection face aux erreurs de
transmission.
z Une représentation hybride
z
– SNHC : Synthetic Natural Hybrid Coding.
Représentation de contenus mixtes naturels et
synthétiques.
z Outils de représentations de maillages 2D ou 3D et de
textures fixes.
z
Maryline Clare
29
Codage Vidéo, ENSTA, 15 février 2006
MPEG-4 "Visual" : nouveautés
z
Un codage d’objets : Objets Audiovisuels (AVOs).
– Informations audio, vidéo, textes, graphiques.
– Scène = composition de tous ces objets.
– Le flux compressé contient les objets et leur forme, leurs
coordonnées, des paramètres de rotation, translation,
zoom...
– Interaction avec le contenu.
z
z
Accès aux objets dans le domaine compressé.
Notion de scalabilité plus approfondie
– Un flux compressé unique = plusieurs flux emboîtés
correspondant à différents débits
Maryline Clare
30
Codage Vidéo, ENSTA, 15 février 2006
MPEG-4 "Visual"
z Les
modes “objets”et “sprites”
Maryline Clare
31
Codage Vidéo, ENSTA, 15 février 2006
MPEG-4 "Visual"
z
Mode “objets” :
– On code des objets identifiés par une
segmentation préalable (non définie par la norme)
– Un VOP = le plus petit rectangle englobant
l’objet considéré et contenant un nb entier de
macroblocs
La taille et la dimension des VOPs peuvent varier dans
le temps
z La texture et la forme des VOPs doivent donc être
codées à chaque instant
z
Maryline Clare
32
Codage Vidéo, ENSTA, 15 février 2006
MPEG-4 "Visual"
z
Mode “sprite”
– Image panoramique (mosaïque) représentant une
partie statique de vidéo (par exemple l’arrière plan)
– La norme n’indique pas comment on construit cette
image
– La norme permet une représentation compacte de ce
type d’images, codées par macroblocs
– Avantages: cette image est transmise une seule fois
pour toute la séquence, et seuls les objets qui bougent
devant sont ensuite transmis
– Utile tant pour séquence d’images de synthèse que
d’images naturelles
Maryline Clare
33
Codage Vidéo, ENSTA, 15 février 2006
MPEG-4 "Visual"
z
Mode “sprite” (suite)
– Au décodage, on devra extraire cette image partie
par partie (« cropping »), et peut-être en transformer
certaines (« warping »)
– Le sprite est codé comme une image I
– Il peut être transmis de façon progressive (mode
« low latency », par opposition au mode basique où
il est envoyé en une seule fois au début) spatialement
(la première portion du sprite arrive d’abord) ou par
qualité de raffinements successifs (d’abord faible
résolution) afin de permettre le décodage des
premiers VOPs sans attendre que la totalité de
l’information du sprite soit reçue
Maryline Clare
34
Codage Vidéo, ENSTA, 15 février 2006
MPEG-4 "Visual"
z
On considère des Objets Audiovisuels
(AVOs)
– Informations audio, vidéo, textes, graphiques
– Leur manipulation impose à la scène d’être
représentée comme la composition de tous ces
objets : BIFS (Binary description For Scene)
format compressé d’un langage de description de
scène textuel inspiré de VRML.
z
Maryline Clare
Permet de décrire le positionnement spatio-temporel
des objets ainsi que les interactions avec les objets ou
leur animation
35
Codage Vidéo, ENSTA, 15 février 2006
MPEG-4 : nouveautés
z
Bloc diagramme global du codage/décodage
MPEG-4 vidéo
Maryline Clare
36
Codage Vidéo, ENSTA, 15 février 2006
MPEG-4 : nouveautés
z
Exemple de décodage d’un VOP
Maryline Clare
37
Codage Vidéo, ENSTA, 15 février 2006
MPEG-4 : nouveautés
– Codage de la forme
z
Codage d’un masque, macrobloc par macrobloc
– Codage du mouvement
z
Toujours basé bloc, mais l’estimation et la compensation
tiennent compte des frontières d’objet (≠ frontières de blocs)
– Codage de la texture « dynamique »
DCT, quantification, codage entropique
z Doit tenir compte des frontières d’objets, qui ne coïncident
pas toujours avec les frontières de blocs
z
– Codage de la texture « statique » (image fixe)
Cas particulier où une image statique est projetée sur des
objets 2D ou 3D (besoin fort de scalabilité)
z Ondelettes, arbre de zéro, codage arithmétique
z
Maryline Clare
38
Codage Vidéo, ENSTA, 15 février 2006
MPEG-4 : nouveautés
z
Codage de la forme
– Codage de forme binaire
Le masque indique quels pixels appartiennent à l’objet à
l’instant t considéré
z Pour chaque pixel, on indique « oui » ou « non » => binaire
z Masque binaire (Binary mask) = matrice de taille de fenêtre
englobante du VOP
z Différent d’une définition de forme par contour, etc.
z
– Codage de forme en niveau de gris
Généralisation du codage de forme binaire
z On y ajoute la possibilité de représenter des objets
transparents
z L’information n’est plus binaire, mais codée sur 8 bits
z
Maryline Clare
39
Codage Vidéo, ENSTA, 15 février 2006
MPEG-4 "Visual"
z
Codage du mouvement
– Equivalent aux techniques basées bloc de MPEG-1 et
MPEG-2, mais adaptée aux objets
Estimation de mouvement :
Blocs complètement à l’intérieur
du VOP: « block matching » de
macroblocs 16x16 (8x8 si
« mode de prédiction avancé »)
Maryline Clare
Blocs sur frontières du VOP:
« modified block (polygon)
matching » de macroblocs 16x16
(8x8 si « mode de prédiction
avancé ») pour ne prendre en
compte que les pixels du VOP
40
Codage Vidéo, ENSTA, 15 février 2006
MPEG-4 "Visual"
z
Codage de texture
– Si on considère les B-VOPs et les P-VOPS, la
« texture » est alors l’erreur résiduelle après
compensation de mouvement
– Codage en DCT, quantification, réarrangement et
codage entropique à longueur variable
– Blocs frontière (« boundary blocks » , 8x8 pixels)
de VOP sont traités différemment : avant le
codage, il faut « remplir » les parties de blocs
hors de l’objet (« padding »)
Maryline Clare
41
Codage Vidéo, ENSTA, 15 février 2006
MPEG-4 "Visual"
z
Codage de texture « statique »
– Projection de texture sur des objets 2D ou 3D
– Décomposition en ondelettes
z
Maryline Clare
Sous-bande basse: chaque coefficient codé selon
prédiction de son voisin de gauche ou son voisin du
haut
42
Codage Vidéo, ENSTA, 15 février 2006
MPEG-4 "Visual"
z
Codage de texture « statique »
Autres sous-bandes : arbre de zéro (« zerotree ») et
codage arithmétique
z L’arbre de zéro permet d’exploiter la corrélation des
coefficients correspondant aux mêmes positions
spatiales
z
Maryline Clare
43
Codage Vidéo, ENSTA, 15 février 2006
MPEG-4 "Visual"
– Meilleure robustesse aux erreurs
On veut minimiser l’impact d’erreurs lors de la transmission
z Images découpées en paquets indépendants (équivalent aux
slices) qui contiennent des infos importantes de façon
redondante (taille du VOP courant, pas de quantification,
etc.) pour éviter la propagation d’erreurs à tout le VOP
z
– Pour proposer des fonctions de scalabilité et de
résistance aux erreurs: data partitioning (cf schéma
page suivante)
On réorganise les données dans chaque paquet par type :
forme, mouvement et texture (si perte dans la texture par
exemple, les infos de mouvement restent valides)
z Resynchronisation possible en cas de perte car ces types de
données sont séparés par des marqueurs
z Utilisation de codes à longueur variable réversibles (RVLC)
z
Maryline Clare
44
Codage Vidéo, ENSTA, 15 février 2006
MPEG-4 "Visual"
Marqueurs de
resynchronisation
Approche classique:
En-tête
MB1
MB2
…
MBn
Data partitioning pour des paquets issus de VOP de type P:
Infos de mouvement
En- Infos de forme
MB MB … MB MB MB … MB
tete 1
2
n
1
2
n
Coeff DC DCT
MB MB …
1
2
Coeff AC DCT
MB MB MB …
1
2
n
MB
n
Data partitioning pour des paquets issus de VOP de type I:
Entete
Infos de forme
MB MB …
1
2
Maryline Clare
MB
n
Coeff DC DCT
MB MB …
1
2
Coeff AC DCT
MB MB MB …
n
1
2
MB
n
45
Codage Vidéo, ENSTA, 15 février 2006
MPEG-4 "Visual"
z
Scalabilités proposées
– Spatiale (seulement possible pour “VOPs rectangulaires”)
z
Un flux principal (“base layer”) transmet une information
basse résolution, le flux complémentaire (“enhancement
layer”) l’améliore
– Le flux principal est codé comme un flux “normal” (non scalable),
le flux complémentaire est constitué de B-VOPs et de P-VOPs
– Le flux complémentaire prend des images de référence dans le flux
principal
Maryline Clare
46
Codage Vidéo, ENSTA, 15 février 2006
MPEG-4 "Visual"
z
Scalabilités proposées
– Temporelle
On sépare les trames de la séquence dans deux flux
différents qu’on encode séparément : le décodeur
ajoutera le deuxième flux s’il le peut, sinon il aura
quand même la vidéo, mais avec des mouvements plus
saccadés
z Deux possibilités : on améliore une partie du flux
principal ou on améliore tout le flux principal
z
Maryline Clare
47
Codage Vidéo, ENSTA, 15 février 2006
MPEG-4 "Visual"
z
Scalabilités proposées
– Temporelle (suite)
Maryline Clare
48
Codage Vidéo, ENSTA, 15 février 2006
MPEG-4 "Visual"
z
Améliorations de codage apportées
– Codage des coefficients DCT :
z
Le codage différentiel (MICD = DPCM) effectué pour le
coefficient DC est possible pour toute la 1ère ligne ou la
1ère colonne (MICDA = ADPCM = codage différentiel
adaptatif)
A
B
– Calcul des gradients horizontaux et verticaux du
coefficient DC des 3 blocs voisins (en haut, à
gauche, en haut à gauche)
– Sélection du voisin qui minimise ce gradient
– Prédiction de ligne ou de la colonne en fonction
de la direction indiquée par l’étape précédente
C
Bloc courant
Maryline Clare
– Si DCB – DCA< DCC – DCA alors prédicteur = C
sinon prédicteur = B
49
Codage Vidéo, ENSTA, 15 février 2006
MPEG-4 "Visual"
– Estimation de mouvement
On peut utiliser le macrobloc ou le bloc comme support
d’estimation et de prédiction de mouvement
z Précision jusqu’au quart de pixel possible (et non pas
seulement ½ pixel comme en MPEG-1 et 2)
z
– Codage des vecteurs de mouvement
z
Le prédicteur peut être le bloc correspondant à la
valeur médiane (en vertical comme en
horizontal) des vecteurs des blocs voisins : en
haut, à gauche, en haut à droite (et non pas
seulement le bloc de gauche en MPEG-1 et 2) ,
mais ils doivent être à l’intérieur d’une même
“slice”
Maryline Clare
MV1MV2
MV3 MV
50
Codage Vidéo, ENSTA, 15 février 2006
MPEG-2/MPEG-4 Visual:
comparaisons
Phase de
l’algorithme
Pourcentage
temps total
bas débits
Pourcentage
temps total
hauts débits
Phase de
l’algorithme
Pourcentage
temps total
bas débits
Pourcentage
temps total
hauts débits
DCT INVERSE
20%
30%
DCT
INVERSE
7%
10%
Compensation
de mouvement
51%
17%
Compensation
de mouvement
48%
31%
Recopie de
blocs
9.5%
13%
Recopie de
blocs
14%
12%
Lecture du flux
5%
12%
Lecture du flux
1%
6.5%
Récupération
des VLC
2%
6.5%
Récupération
des VLC
2.5%
8.5%
12.5%
21.5%
Autres
(quantification
inverse, …)
27.5%
32%
Autres
(quantification
inverse, …)
Répartition moyenne des temps de traitement
d’un flux MPEG-2
Maryline Clare
Répartition moyenne des temps de traitement
d’un flux MPEG-4 mode « rectangle »
51
Codage Vidéo, ENSTA, 15 février 2006
MPEG-2/MPEG-4 Visual:
Phase de
comparaisons
l’algorithme
Pourcentage
temps total
bas débits
Pourcentage
temps total
hauts débits
Décodage de
la forme
31%
20%
Phase de
l’algorithme
Pourcentage
temps total
bas débits
Pourcentage
temps total
hauts débits
DCT INVERSE
7%
10%
DCT
INVERSE
3%
10.5%
Compensation
de mouvement
48%
31%
Compensation
de mouvement
12%
19%
Recopie de
blocs
14%
12%
Recopie de
blocs
8%
5.5%
Lecture du flux
1%
6.5%
Lecture du flux
0.5%
8.5%
Récupération
des VLC
2.5%
8.5%
Récupération
des VLC
2%
10.5%
Autres
(quantification
inverse, …)
27.5%
32%
Autres
(quantification
inverse, …)
36.5%
33%
Répartition moyenne des temps de traitement
d’un flux MPEG-4 mode « rectangle » (IDEM)
Maryline Clare
Répartition moyenne des temps de traitement
d’un flux MPEG-4 mode « objet »
52
Sommaire
z
Le monde de la vidéo
– Applications, nécessité, organismes
de normalisation
z
Notions de base
Codage Vidéo, ENSTA, 15 février 2006
¾But
: acquérir assez de notions pour
pouvoir ensuite approfondir le
domaine si nécessaire
z
– Généralités, bitstream, images
I, images B&P, codeursdécodeurs
– Vocabulaire, formats vidéo
z
Techniques élémentaires
– Réductions spatiale et temporelle,
estimation et compensation de
mouvement, codage basé trames,
contrôle de débit, schéma classique
d’un codeur vidéo
z
Estimation et
compensation de
mouvement: détails
Maryline Clare
Normes MPEG
z
MPEG-1, MPEG-2,
MPEG-4
z
Zoom sur MPEG-4
AVC
z
Introduction à MPEG-4
SVC
z
Conclusion
53
Codage Vidéo, ENSTA, 15 février 2006
ZOOM sur MPEG-4 "AVC"
z
z
z
z
Travaux initiés à l'ITU, présentés à MPEG et conduits
ensemble
Nom ITU: H264 (H26L au départ)
Nom MPEG: MPEG-4 Partie 10
Nom commun: AVC (Advanced Video Coding)
Maryline Clare
54
Codage Vidéo, ENSTA, 15 février 2006
ZOOM sur MPEG-4 "AVC"
z
z
MPEG-4 "Visual" apportait un gain de 30%
AVC apporte un gain de 50% => même qualité visuelle pour
débit 2 fois plus faible
– Travail commun ITU/MPEG dans le "JVT" (Joint Video Team)
– Complexité importante de l’encodage, et mémoire importante au
décodage
– Standard depuis Mars 2003
– Applications : diffusion audiovisuelle de haute qualité
z HD pour DVD, TV (SD& HD), ADSL, Mobiles …
z
3 profils, 11 niveaux
– Baseline : videoconf, wireless…,
– Main : broadcast (interlace, B-slices and CABAC),
– High : (HD)
z
Les implémentations hardware (chips de décodage SD/HD)
existent maintenant
Maryline Clare
55
Codage Vidéo, ENSTA, 15 février 2006
ZOOM sur MPEG-4 "AVC"
ƒ4x4 blocks
Control
ƒ Integer Transform
Control data
Transform/
Quantization
Vidéo
Sequence
Decoder
Texture
Quantification -1
/Transformée -1
ƒ « Deblocking Filter »
ƒ Multiple reference Images
Spatial
Prediction
ƒ INTRA
imagePrediction
Intra/Inter
ƒ Variable size blocks
Loop Filter
Motion
Compensation
Rebuilt Images
16x16, 16x8, 8x16, 8x8, 8x4, 4x8, 4x4
Entropy
coding
ƒ¼ pixel accuracy
Motion
Vectors
Binary
stream
ƒ Adaptive & contextual VLC
ƒ CAVLC
ƒ Adaptive & contextual arithmetic coding
ƒ CABAC
Motion
Estimation
Maryline Clare
56
Codage Vidéo, ENSTA, 15 février 2006
ZOOM sur MPEG-4 "AVC"
z
Compensation de mouvement avec
bloc de tailles variables:
– 8 formes de bloc: 16x16, 16x8, 8x16,
8x8, 8x4, 4x8, 4x4
16x16
MB
Modes
0
16x8
0
8x8
8x8
Modes
0
1
8x4
0
1
8x16
0
1
4x8
0
1
Autres
normes
8x8
0 1
2
3
4x4
0 1
2
MPEG-4 « AVC »
H.264
3
Possibilité de découpage pour la prédiction
Maryline Clare
57
Codage Vidéo, ENSTA, 15 février 2006
ZOOM sur MPEG-4 "AVC"
z
Plusieurs images de référence pour le codage du mouvement
("références multiples")
N
N-2
N-1
Maryline Clare
58
Codage Vidéo, ENSTA, 15 février 2006
ZOOM sur MPEG-4 "AVC"
z
Modes de prédiction spatiale des images I
ƒ Plusieurs directions spatiales pour la prédiction
Q A
(9 types pour la luminance)
I
J
K
L
M
N
O
P
a
e
i
m
B
b
f
j
n
C
c
g
k
o
D E F G H
d
h
l
p
0
• Exemple, Mode 3 :
4
prédiction diagonale
a, f, k, p sont prédits par (A + 2Q + I + 2) >> 2
Maryline Clare
7
2
8
6 1 5
3
59
Codage Vidéo, ENSTA, 15 février 2006
ZOOM sur MPEG-4 "AVC"
Nouvelles transformée et quantification
z
ÎLa transformée
• Entière, possédant les mêmes propriétés fréquentielles qu’une DCT
• Opère sur des blocs 4x4
• Evite une dérive entre l’encodeur et le décodeur car il n’y a pas d’erreur d’arrondis (coefficients
entiers)
A = 13a + 13b + 13c + 13d
B = 17a + 7b - 7c - 17d
C = 13a - 13b - 13c + 13d
D = 7a - 17b + 17c - 7d
a' = 13A + 17B + 13C + 7D
b' = 13A + 7B - 13C - 17D
c' = 13A - 7B - 13C + 17D
d' = 13A - 17B + 13C - 7D
ÎLa quantification
•
•
•
•
Incrément logarithmique
Sauts de 12,5 %
Quantificateurs de 1 à 52
Quantificateurs plus précis pour la chrominance
Maryline Clare
60
Codage Vidéo, ENSTA, 15 février 2006
ZOOM sur MPEG-4 "AVC"
z
Un filtre dans la boucle de codage
z
Filtre adaptatif
– Au quantificateur
– Au type de bloc (Inter, Intra,…)
Sans Filtre
Maryline Clare
Avec Filtre
61
Codage Vidéo, ENSTA, 15 février 2006
ZOOM sur MPEG-4 "AVC"
z
Nouveau codage entropique : deux techniques pour les
données de Macrobloc (coefficients, vecteurs)
– Le CABAC (Context Adaptive Binary Arithmetic Coding)
z Exploite la corrélation des symboles par l’utilisation de contexte
z Utilisation de nombre non entier de bits par symbole (codage
arithmétique)
z Très efficace
– Les CAVLC (Context Adaptive Variable Length Coding)
z Exploite la corrélation des symboles par l’utilisation de contexte
z Utilisation de nombre entiers de bit par symbole
z Un peu moins efficace que le CABAC, mais moins complexe
Maryline Clare
62
Codage Vidéo, ENSTA, 15 février 2006
ZOOM sur MPEG-4 "AVC"
Outils
MPEG-2
AVC
Image I et P
Oui
Oui
Images B
Oui
Oui
En-tête compact d'image
Non
Oui
Compensation mouvement 4x4
Non
Oui
Compensation mouvement 8x8
Non
Oui
Basique
Adaptative
Prédiction multi-reference
Non
Oui
Filtre de boucle
Non
Anti-blocs
Compensation mouvement 1/4 pixel
Non
Oui
Adaptatif au niveau macrobloc
Adaptatif au niveau macrobloc
Prédiction des coefficients DC
Basique
Adaptative
Prédiction des coefficients AC
Non
Adaptative
Transformée avec taille de blocs adaptative
Non
Oui
Codage efficace du quantificateur
Non
Oui
Codage arithmetique adaptatif
Non
Oui
Prédiction des vecteurs de mouvement
Support videos entrelacées
Maryline Clare
63
Sommaire
z
Le monde de la vidéo
– Applications, nécessité, organismes
de normalisation
z
Notions de base
Codage Vidéo, ENSTA, 15 février 2006
¾But
: acquérir assez de notions pour
pouvoir ensuite approfondir le
domaine si nécessaire
z
– Généralités, bitstream, images
I, images B&P, codeursdécodeurs
– Vocabulaire, formats vidéo
z
Techniques élémentaires
– Réductions spatiale et temporelle,
estimation et compensation de
mouvement, codage basé trames,
contrôle de débit, schéma classique
d’un codeur vidéo
z
Estimation et
compensation de
mouvement: détails
Maryline Clare
Normes MPEG
z
MPEG-1, MPEG-2,
MPEG-4
z
Zoom sur MPEG-4
AVC
z
Introduction à MPEG4 SVC
z
Conclusion
64
Codage Vidéo, ENSTA, 15 février 2006
Introduction à MPEG-4 SVC
z
z
z
z
z
"Scalable Video Coding"
En cours de normalisation: sera finalisée début 2007
C'est un amendement de AVC, pas une nouvelle norme
Les mêmes performances de codage qu'AVC sont observées
(contrairement aux modes scalables de MPEG-2 et MPEG-4
"Visual")
La compatibilité avec AVC est assurée
– Les décodeurs AVC sauront lire une partie d'un flux SVC (le "flux de
base")
– Les décodeurs SVC sauront lire le format AVC
z
Codage scalable
– Encodage unique
– Troncature du flux pour s'adapter à :
z
z
z
Maryline Clare
Des niveaux d'échelle désirés (spatial, temporal, qualité-SNR)
La bande passante disponible
Les capacités de décodage du client
65
Codage Vidéo, ENSTA, 15 février 2006
Introduction à MPEG-4 SVC
Exemple : stockage d’une séquence vidéo de 1 heure à 64, 128, 256 et 512 Kb/s
Intérêt
Stockage des données
Transmission des données
Contenu 4 = Contenu 3 + 920 Mb
Contenu 3 = Contenu 2 + 460 Mb
Contenu 2 = Contenu 1 + 230 Msb
Contenu 1 = 230 Mb
Taille totale : 1840 Mb
Au lieu de 230+460+920+1840 = 3450 Mb
Gain : 1610 Mb
Maryline Clare
66
Codage Vidéo, ENSTA, 15 février 2006
Introduction à MPEG-4 SVC
z
Structure du codeur SVC
Scalabilité
temporelle
Scalabilité
"SNR" (qualité)
Scalabilité
spatiale
Maryline Clare
67
Codage Vidéo, ENSTA, 15 février 2006
Introduction à MPEG-4 SVC
z
Caractéristiques
– Décomposition pyramidale avec sous-échantillonnage dyadique des
composantes d'entrée => scalabilité spatiale
– Décomposition temporelle de type "images B hiérarchiques" à chaque
niveau => scalabilité temporelle
– Codage d'une version basse résolution de la séquence vidéo jusqu'à
un débit donné qui correspond au débit maximum décodable pour la
résolution spatiale .
z
Le niveau de base de cette basse résolution est compatible AVC.
– Codage des niveaux supérieurs par soustraction du niveau précédent
reconstruit et sur échantillonné et codage des résidus sous forme :
z
z
Maryline Clare
D'un niveau de base
D'un ou plusieurs niveaux de réhaussement obtenus par codage
multipasse de plans de bits => scalabilité "fine" en qualité
68
Codage Vidéo, ENSTA, 15 février 2006
Introduction à MPEG-4 SVC
z
Exemple de scalabilité spatiale et temporelle
– Couche de base (D1, F1, T1)
– Couche de rehaussement spatiale (D2, F1, T2)
z
z
Couche de base seule (D=D1, F=F1, T=T1)
Base + Rehaussement (D=D1+D2, F=F1, T=T2)
2 enhancement layer
layers
Base layer + 1
Base layer only
Maryline Clare
69
Codage Vidéo, ENSTA, 15 février 2006
Introduction à MPEG-4 SVC
z
Avant SVC :
– Mode scalable de MPEG-2
– Mode scalable de MPEG-4 "Visual"
z
z
Avant : niveaux codés progressivement
Pas de références aux images passées
Pas vraiment utilisé car peu efficace
en compression (de l’ordre de -20 %)
Raison principale : prédiction interlayer non efficace
time
t0
z
MPEG-4 part 10 / amdt 3 : SVC
– Nouvelle norme pour le codage
scalable aussi efficace que l’état de
l’art (H264-AVC)
z
z
t1
t2
t3
t4
SVC : codage progressif +
références multiples
Meilleure prédiction inter-couches
Meilleure décorrélation temporelle
time
t0
Maryline Clare
t1
t2
t3
t4
70
Sommaire
z
Le monde de la vidéo
– Applications, nécessité, organismes
de normalisation
z
Notions de base
Codage Vidéo, ENSTA, 15 février 2006
¾But
: acquérir assez de notions pour
pouvoir ensuite approfondir le
domaine si nécessaire
z
– Généralités, bitstream, images
I, images B&P, codeursdécodeurs
– Vocabulaire, formats vidéo
z
Techniques élémentaires
– Réductions spatiale et temporelle,
estimation et compensation de
mouvement, codage basé trames,
contrôle de débit, schéma classique
d’un codeur vidéo
z
Estimation et
compensation de
mouvement: détails
Maryline Clare
Normes MPEG
z
MPEG-1, MPEG-2,
MPEG-4
z
Zoom sur MPEG-4
AVC
z
Introduction à MPEG-4
SVC
z
Conclusion
71
Codage Vidéo, ENSTA, 15 février 2006
Conclusion
z
Pourquoi travaille-t-on encore sur le codage
de la vidéo?
– Une fois les normes définies, il reste encore de la
place pour la recherche académique et les
technologies propriétaires (Estimation de
mouvement, Régulation de débit, Efficacité
d’implémentation, Pré et post processing…)
z
Les applications se multiplient, les besoins de
plus en plus exigeants: de la télévision sur
mobile!
Maryline Clare
72
Codage Vidéo, ENSTA, 15 février 2006
Références
z
"MPEG Video compression Standard", J.L.Mitchell, W. B.
Pennebaker, C.E. Fogg, D.J.LeGall, Kulwer Academic, 1996
z
"Compression et codage des images et vidéos", C. Labit –M.
z
http://www-ict.its.tudelft.nl/html/education/courses
/et4_089/hc/hc14/ : tutoriel sur l’estimation de mouvement
http://members.aol.com/symbandgrl/ “Introduction to video
compression MPEG”, J. Wiseman
z
z
Barlaud & al, Hermès, 2001
ftp://ftp.irisa.fr/techreports/theses/2001/denoual.pdf
“Développement d'une plate-forme logicielle orientée objet
pour la décompression et l'édition de séquences vidéo sur
noyau temps-réel”, Franck Denoual, Thèse de l‘Université de Rennes
I, Décembre 2001
z
http://mpeg.telecomitalialab.com/ : site web MPEG officiel
Maryline Clare
73
Codage Vidéo, ENSTA, 15 février 2006
Références
z
http://leonardo.telecomitalialab.com/icjfiles/mpeg-4_si/7natural_video_paper/7-natural_video_paper.htm "Natural
video coding in MPEG-4, an overview", T. Ebrahimi, C. Horne
z
http://leonardo.telecomitalialab.com/icjfiles/mpeg4_si/index.htm : tutoriels MPEG-4
z
http://www.vcodex.fsnet.co.uk/h264.html : tutoriel et description
H264/H26L/MPEG-4Part10/JVT/etc.
z
"H.264 and MPEG-4 video compression", Iain E. Richardson,
Wiley, 2003
z
http://www.mpeg.org/: information utile et pointeurs
Maryline Clare
74

Documents pareils