Vous êtes sur la page 1sur 130

MPEG

H.264
Standards en cours de développement

Standard de codage vidéo

Marco Cagnazzo

Département Traitement du Signal et des Images


TELECOM ParisTech

19 septembre 2012

M. Cagnazzo Standard vidéo 1/130


MPEG
H.264
Standards en cours de développement

Plan

1 La famille MPEG
MPEG-1
MPEG-2
MPEG-4
2 H.264
H.264/AVC
Définitions et schéma
Nouveaux modes et outils
Profils et niveaux
Optimisation, performances, NAL
Extensions : H.264/SVC
3 Standards en cours de développement

M. Cagnazzo Standard vidéo 2/130


MPEG
H.264
Standards en cours de développement

Les standards vidéo : chronologie

1980 1990 2000 2010

H.263++

H.261 H.263 H.263+ H.264 3DVC


/MVC

MPEG−2 H.264/AVC
H.264/SVC HEVC
H.262 MPEG−4 p.10

MPEG−1 MPEG−4

JPEG JPEG
JPEG
2000 XR

ITU ISO/IEC Joint Video Image

M. Cagnazzo Standard vidéo 3/130


MPEG
H.264
Standards en cours de développement

Les standards vidéo


Groupes de standardisation

Organismes de standardisation :
ISO International Standardization Organization
IEC International Electrotechnical Commission
ITU International Telecommunication Union
Groupes de travaille
MPEG (1988) : ISO/IEC Moving Picture Expert Group
VCEG (1997) : ITU Video Coding Expert Group
Joint Video Team: H.264 et MPEG-4/Part 10 (JVT);
extension scalable de H.264 (SVC); standards récents

M. Cagnazzo Standard vidéo 4/130


MPEG
H.264
Standards en cours de développement

Scope des standards

Source Video Bitstream


Pre−processing Encoding
(video)
Channel
Storage
Receiver Video Bitstream
Post−processing Decoding
(video)
Scope of standard

Le standard ne définit que la syntaxe du train binaire et les


outils de décodage
But : intéroperabilité, concurrence
Pédagogie : description de l’encodage

M. Cagnazzo Standard vidéo 5/130


MPEG MPEG-1
H.264 MPEG-2
Standards en cours de développement MPEG-4

Plan

1 La famille MPEG
MPEG-1
MPEG-2
MPEG-4

2 H.264
H.264/AVC
Définitions et schéma
Nouveaux modes et outils
Profils et niveaux
Optimisation, performances, NAL
Extensions : H.264/SVC

3 Standards en cours de développement

M. Cagnazzo Standard vidéo 6/130


MPEG MPEG-1
H.264 MPEG-2
Standards en cours de développement MPEG-4

Le standard MPEG-1

Développé en 1988-1992
Parties du standard
1 Systèmes
2 Video
3 Audio
4 Conformance test
5 Software simulation

M. Cagnazzo Standard vidéo 7/130


MPEG MPEG-1
H.264 MPEG-2
Standards en cours de développement MPEG-4

Le standard MPEG-1
Partie 2 (Vidéo)

Codeur hybride avec ME/MC


Entrée : max 720 × 576 pixel @ 30 fps
Débit ≤ 1.86 Mbps (qualité VHS)
Applications asymétriques, VoD, vidéo CD, jeux vidéo
Nouveautés techniques
Types d’images
ME/MC à précision sous-pixelique

M. Cagnazzo Standard vidéo 8/130


MPEG MPEG-1
H.264 MPEG-2
Standards en cours de développement MPEG-4

Le standard MPEG-1
Types d’images

Trames I (Intra coded)


Trames P (Prédictive)
Trames B (Bi-directionnelles)
Trames D (DC coded)
Trames I et P : Anchor Frames

M. Cagnazzo Standard vidéo 9/130


MPEG MPEG-1
H.264 MPEG-2
Standards en cours de développement MPEG-4

Le standard MPEG-1
Group of Pictures

Trames organisées en GOP


Première image : Intra
Structure :
intervalle entre I
intervalle entre AF

I B B P B B P B B I B B P

Gop n Gop n+1

M. Cagnazzo Standard vidéo 10/130


MPEG MPEG-1
H.264 MPEG-2
Standards en cours de développement MPEG-4

Le standard MPEG-1
Trames I

Codée indépendamment des autres


Codage JPEG
Faible complexité, faible taux de codage
Utilisé pour :
Fast forward
Random access
Robustesse aux erreurs

I B B P B B P B B I B B P

Gop n Gop n+1

M. Cagnazzo Standard vidéo 11/130


MPEG MPEG-1
H.264 MPEG-2
Standards en cours de développement MPEG-4

Le standard MPEG-1
Trames P

Prédite de l’AF précédente


Complexité élevée (ME)
Taux de compression élevé

I B B P B B P B B I B B P

Gop n Gop n+1

M. Cagnazzo Standard vidéo 12/130


MPEG MPEG-1
H.264 MPEG-2
Standards en cours de développement MPEG-4

Le standard MPEG-1
Trames B

Prédite des AFs précédente et successive


Complexité très élevée (double ME)
Taux de compression élevé

I B B P B B P B B I B B P

Gop n Gop n+1

M. Cagnazzo Standard vidéo 13/130


MPEG MPEG-1
H.264 MPEG-2
Standards en cours de développement MPEG-4

Standard MPEG-1
Ordre de codage des trames

I → AF → Trames B → AF → Trames B . . .
Retard ?

Details
B B B B B B B B

I P P I P Base

Gop n Gop n+1

M. Cagnazzo Standard vidéo 14/130


MPEG MPEG-1
H.264 MPEG-2
Standards en cours de développement MPEG-4

Standard MPEG-1
ME/MC à précision sous-pixelique

Le mouvement ne corresponde pas à la grille des pixels


Interpolation pour améliorer la précision
Ultérieure augmentation de la complexité
Très bonnes performances de codage

M. Cagnazzo Standard vidéo 15/130


MPEG MPEG-1
H.264 MPEG-2
Standards en cours de développement MPEG-4

Standard MPEG-1
ME/MC à précision sous-pixelique

v=(5,3) v=(5.5,2.5)

M. Cagnazzo Standard vidéo 16/130


MPEG MPEG-1
H.264 MPEG-2
Standards en cours de développement MPEG-4

Standard MPEG-1
Résumé

Codeur hybride classique (H.261), plus :


1 Trames B et D
2 Vecteurs à précision sous-pixelique
3 Gamme de résolution étendue
4 Groupe d’images avec structure flexible

M. Cagnazzo Standard vidéo 17/130


MPEG MPEG-1
H.264 MPEG-2
Standards en cours de développement MPEG-4

Le standard MPEG-2

Développé en 1990-1994
Parties du standard
1 Systèmes
2 Video
3 Audio
4 Conformance test
5 Software simulation
Les parties 6-9 spécifient certaines fonctionnalités
secondaires
MPEG-3, à l’origine prévu pour l’HDTV, à été fusionné
avec MPEG-2
Équivalent à la norme H.262

M. Cagnazzo Standard vidéo 18/130


MPEG MPEG-1
H.264 MPEG-2
Standards en cours de développement MPEG-4

Standard MPEG-2

Codeur hybride
Débit ≤ 15 Mbps (HDTV)
Profils et niveaux
Support à la vidéo entrelacée
Support à la scalabilité

M. Cagnazzo Standard vidéo 19/130


MPEG MPEG-1
H.264 MPEG-2
Standards en cours de développement MPEG-4

Standard MPEG-2
Profils et niveaux

Il est possible de mettre en ouvre une partie des fonctionnalités


(profils) à certaines résolutions (niveaux), tout en restant
compatible avec le standard
width height frame rate bit rate
Niveau [pixel] [pixel] [frame/s] [Mbps]
Low 352 288 30 4
Main 720 576 30 15
High-1440 1440 1152 60 60
High 1920 1152 60 80

Profil fonctionnalités
Simple Pas de scalabilité; vidéo entrelacée; pas de trames B
Main Simple + Trames B
SNR scalable Main + Deux/trois niveaux de scalabilité en qualité
Spatial scalable SNR + Deux/trois niveaux de scalabilité en résolution
High Space + Chroma sur-échantillonnée

M. Cagnazzo Standard vidéo 20/130


MPEG MPEG-1
H.264 MPEG-2
Standards en cours de développement MPEG-4

Standard MPEG-2
Profils et niveaux

Seulement certaines couples profil/niveau sont admissibles

Profil
Niveau Simple Main SNR scalable Spatial scalable High
Low • •
Main • • • •
High-1440 • • •
High • •

M. Cagnazzo Standard vidéo 21/130


MPEG MPEG-1
H.264 MPEG-2
Standards en cours de développement MPEG-4

Standard MPEG-2
Scalabilité

Encode once, decode many!

Train binaire formé par :


Un flux base
Des détails
Le flux base peut être décodé seul
Les détails augmentent la qualité du flux base
Les seuls détails sont inutiles
Selon ses nécessités, le client peut demander le flux base
ou les 2 flux

M. Cagnazzo Standard vidéo 22/130


MPEG MPEG-1
H.264 MPEG-2
Standards en cours de développement MPEG-4

Codeurs scalables et non scalables

Courbe limite
Codeur scalable souhaité
Codeur non scalable, un seul layer à 200 kbps
Codeur non scalable, un seul layer à 900 kbps
Codeur scalable, deux layers à 400 et 800kbps
Qualité sequence déecodé

Bande disponible sur le canal

M. Cagnazzo Standard vidéo 23/130


MPEG MPEG-1
H.264 MPEG-2
Standards en cours de développement MPEG-4

Scalabilité :exemple
Distribution de la vidéo sans scalabilité

M. Cagnazzo Standard vidéo 24/130


MPEG MPEG-1
H.264 MPEG-2
Standards en cours de développement MPEG-4

Scalabilité :exemple
Distribution de la vidéo avec scalabilité

M. Cagnazzo Standard vidéo 25/130


MPEG MPEG-1
H.264 MPEG-2
Standards en cours de développement MPEG-4

Standard MPEG-2
Scalabilité en SNR : codeur

f e eB
DCT QB VLC

QB∗

QE VLC

QE∗

IDCT

efE eE
MC Frame
Buffer
bfE

Raffinement des coefficients DCT


Drift : décodeur à niveau base désynchronisé
Bonne qualité du niveau enhanced
Qualité du niveau base pas toujours satisfaisante
M. Cagnazzo Standard vidéo 26/130
MPEG MPEG-1
H.264 MPEG-2
Standards en cours de développement MPEG-4

Standard MPEG-2
Scalabilité en SNR : décodeur

VLD QE∗

VLD QB∗ IDCT

Frame
MC Buffer
MV

Pas de contrôle du drift


Un seul champ de vecteurs de mouvement

M. Cagnazzo Standard vidéo 27/130


MPEG MPEG-1
H.264 MPEG-2
Standards en cours de développement MPEG-4

Standard MPEG-2
Scalabilité en résolution : codeur

x eE
DCT QE VLC

↓2
QE∗

IDCT

Frame eE
W MC Buffer
efE b
fE

eB
DCT QB VLC

QB∗
↑2
IDCT

Frame
efB ebq
MC Buffer
bfB
efB

M. Cagnazzo Standard vidéo 28/130


MPEG MPEG-1
H.264 MPEG-2
Standards en cours de développement MPEG-4

Standard MPEG-2
Scalabilité en résolution : codeur

Double boucle : pas de drift


La vidéo d’entrée est filtrée et sous-échantillonnée
La prédiction de niveau enhanced est la somme pondérée
de :
L’image de niveau base interpolée
La prédiction ME/MC
Le choix du poids est faite MB par MB et cette info est
codé dans le train binaire

M. Cagnazzo Standard vidéo 29/130


MPEG MPEG-1
H.264 MPEG-2
Standards en cours de développement MPEG-4

Standard MPEG-2
Scalabilité en résolution : décodeur

efE
VLD QE∗ IDCT
bfE
Frame
W MC Buffer

↑2
efB
VLD QB∗ IDCT
bfB
Frame
MC
Buffer

M. Cagnazzo Standard vidéo 30/130


MPEG MPEG-1
H.264 MPEG-2
Standards en cours de développement MPEG-4

Standard MPEG-2
Scalabilité en résolution : décodeur

L’image à basse résolution est interpolée et pondérée


Interpolation linéaire
On obtient les information nécessaires pour le décodage
du niveau enhanced

M. Cagnazzo Standard vidéo 31/130


MPEG MPEG-1
H.264 MPEG-2
Standards en cours de développement MPEG-4

Standard MPEG-2
Scalabilité en temps

B B B B B B Détails
B B

I P P I P Base

Gop n Gop n+1

M. Cagnazzo Standard vidéo 32/130


MPEG MPEG-1
H.264 MPEG-2
Standards en cours de développement MPEG-4

Standard MPEG-2
Scalabilité hybride, 1/2

Les formes de scalabilité disponibles peuvent être


combinées entre elles, jusqu’à 3 niveaux en total
Trois type de scalabilité hybride sont possibles
SNR + spatiale
1 SDTV/CIF, basse qualité
2 HDTV/SDTV, basse qualité
3 HDTV/SDTV, haute qualité

M. Cagnazzo Standard vidéo 33/130


MPEG MPEG-1
H.264 MPEG-2
Standards en cours de développement MPEG-4

Standard MPEG-2
Scalabilité hybride, 2/2

spatiale + temporelle
1 SDTV entrelacée
2 HDTV entrelacée
3 HDTV progressive
SNR + temporelle
1 HDTV entrelacée, basse qualité
2 HDTV entrelacée, haute qualité
3 HDTV progressive, haute qualité

M. Cagnazzo Standard vidéo 34/130


MPEG MPEG-1
H.264 MPEG-2
Standards en cours de développement MPEG-4

Standard MPEG-2
Data partitioning

Outil pour la robustesse aux erreurs


Les blocs de 64 coefficients DCT sont divisés en
sous-ensembles (DC+basses fréquences, hautes
fréquences)
Le sous-ensemble plus critique peut être envoyé sur un
canal plus robuste (Unequal error protection)
Il est nécessaire que le décodeur supporte le Data
partitioning (pas de backward compatibility)

M. Cagnazzo Standard vidéo 35/130


MPEG MPEG-1
H.264 MPEG-2
Standards en cours de développement MPEG-4

Le standard MPEG-4

Développé en 1993-1998
Parties du standard
5 parties principales (comme MPEG-1 et 2)
18 parties supplémentaires, couvrantes une variété de
problèmes
P.e. MPEG4/part 10 coïncide avec H.264/AVC

M. Cagnazzo Standard vidéo 36/130


MPEG MPEG-1
H.264 MPEG-2
Standards en cours de développement MPEG-4

Standard MPEG-4
Fonctionnalités

Codeur hybride
Interactivité
Manipulation du train binaire basée sur le contenu et sans
transcoding
Codage hybride de données naturelles et synthétiques
Accès aléatoire amélioré
Compression
Performance de compression améliorée
Codage de flux données en parallèle (stéréo TV)
Accès universel
Robustesse en environnement bruité
Scalabilité basée objet

M. Cagnazzo Standard vidéo 37/130


MPEG MPEG-1
H.264 MPEG-2
Standards en cours de développement MPEG-4

Standard MPEG-4
Représentation basée objet

Une représentation basée objet est nécessaire pour


atteindre les objectifs fixés
Audiovisual object (AVO)
Différents AVOs codés en trains binaires différents
Composé par une partie audio (mono, stéréo, synthétique,
. . . ) et/ou une vidéo (naturel, synthétique, . . . )
Plusieurs AVOs composants une AV scene
MPEG-4 définit la syntaxe pour la description de la scène

M. Cagnazzo Standard vidéo 38/130


MPEG MPEG-1
H.264 MPEG-2
Standards en cours de développement MPEG-4

Standard MPEG-4
Audiovisual scene

Synthetic BG

Still
Image Audio object

AV scene Visual object

AV object

M. Cagnazzo Standard vidéo 39/130


MPEG MPEG-1
H.264 MPEG-2
Standards en cours de développement MPEG-4

Standard MPEG-4
Visual coding

MPEG-4 fournit 4 type d’instruments de codage


Video object coding : codage d’un objet de forme arbitraire,
naturel ou synthétique
Mesh object coding : codage d’un objet représenté par une
grille de points
Model-based coding : animation du visage et du corps humain
Still texture coding : codage d’images fixes (background)

M. Cagnazzo Standard vidéo 40/130


MPEG MPEG-1
H.264 MPEG-2
Standards en cours de développement MPEG-4

Standard MPEG-4
Video object coding

Un video object (VO) est une succession de video object


planes (VOP) constitués par :
Mouvement
Texture
Contours (Forme)
Si l’objet a forme rectangulaire, le codage est similaire à
MPEG-2, car les objets sont divisés en macroblocs, codés en
suite par un codeur hybride

M. Cagnazzo Standard vidéo 41/130


MPEG MPEG-1
H.264 MPEG-2
Standards en cours de développement MPEG-4

Standard MPEG-4
Video object coding

Le mouvement est codé par prédiction des vecteurs voisins


Les vecteurs peuvent sortir de l’image et ont une précision
double par rapport à MPEG-2 (1/4 de pixel)
La texture est codé en mode Inter (prédiction+DCT/Q de
l’erreur) ou Intra (TCD ou transformée adaptée à la forme)
Forme codée par un alpha-plane
Codage simple et effective d’une image “en niveaux de gris”
Codage lossless (codage arithmétique avec prédiction
temporelle en Intra) et lossy (sous-échantillonnage et
codage lossless) de l’alpha-plane
Sprite coding : représentation de l’arrière-plane

M. Cagnazzo Standard vidéo 42/130


MPEG MPEG-1
H.264 MPEG-2
Standards en cours de développement MPEG-4

Standard MPEG-4
Codage par sprites et VO

M. Cagnazzo Standard vidéo 43/130


MPEG MPEG-1
H.264 MPEG-2
Standards en cours de développement MPEG-4

Standard MPEG-4
Mesh object coding

Représentation par grille du mouvement (déformation)

M. Cagnazzo Standard vidéo 44/130


MPEG MPEG-1
H.264 MPEG-2
Standards en cours de développement MPEG-4

Standard MPEG-4
Model-based coding

Animation des points de contrôle pour représenter les émotions

M. Cagnazzo Standard vidéo 45/130


MPEG MPEG-1
H.264 MPEG-2
Standards en cours de développement MPEG-4

Standard MPEG-4
Still texture coding

TO Daubechies ou TO adaptée à la forme


Codage DPCM pour les coefficients LL
Algorithme de codage basée sur les arbres de zéros pour
les coefficients hautes fréquences
Exploite la corrélation inter-bande
Faible complexité et excellente compression
Codage arithmétique adaptatif
Scalabilité en qualité et en résolution
Lowest band
Q Predict

Still texture Arithmetic


DWT
Coder

Q Predict
Other bands

M. Cagnazzo Standard vidéo 46/130


MPEG MPEG-1
H.264 MPEG-2
Standards en cours de développement MPEG-4

Standard MPEG-4
Scalabilité

Frame-rate et résolution : comme en MPEG-2


Qualité : fine grain scalability grâce au codage par plains
de bits
Objet : la scène peut être composée en utilisant un
sous-ensemble des AVOs disponibles

M. Cagnazzo Standard vidéo 47/130


MPEG MPEG-1
H.264 MPEG-2
Standards en cours de développement MPEG-4

Standard MPEG-4
Robustesse aux erreurs

La robustesse aux erreurs est obtenue à l’aide de trois types de


techniques :
Resynchronisation (resynchronization)
Partition des données (data partitioning)
Récupération des donnes (data recovery)

M. Cagnazzo Standard vidéo 48/130


MPEG MPEG-1
H.264 MPEG-2
Standards en cours de développement MPEG-4

Standard MPEG-4
Robustesse aux erreurs

Resynchronisation
Nécessaire pour recommencer le décodage lors d’un
erreur
Aide à la récupération des données et à la dissimulation
des erreurs (error concealing)
Marqueurs de synchronisation
Information supplémentaire pour chaque paquet (numéro
de MB et quantificateur)

M. Cagnazzo Standard vidéo 49/130


MPEG MPEG-1
H.264 MPEG-2
Standards en cours de développement MPEG-4

Standard MPEG-4
Robustesse aux erreurs

Partition des données


Séparation entre mouvement et texture
Marqueurs supplémentaires
Si la texture est corrompue, on peut utiliser le mouvement
pour cacher l’erreur (copie du bloc de l’image de référence)
Récupération des donnes
Technique de codage sans perte moins performante mais
plus robuste
Décodage possible “en avant” et “en arrière” (RVLC)

M. Cagnazzo Standard vidéo 50/130


MPEG MPEG-1
H.264 MPEG-2
Standards en cours de développement MPEG-4

Standard MPEG-4
Profils et niveaux

Comme en MPEG-2, il est possible limiter les fonctionnalités


(profils) pour des plusieurs résolutions (niveaux)
1 Simple Visual Profile : codage efficace pour AVOs
rectangulaires. Adapté aux réseaux mobiles
2 Simple Scalable Visual Profile : ajoute le support à la
scalabilité spatiale et temporelle
3 Core Visual Profile : ajoute le codage d’objets de forme
arbitraire
4 Main Visual Profile : codage entrelacé, sprite, codage du
plan alpha
5 N-Bit Visual Profile : pixel-depth de 4 a 12 bits
Des autres profils ont été ajouté aux versions plus récents du
standard
M. Cagnazzo Standard vidéo 51/130
MPEG
H.264/AVC
H.264
Extensions : H.264/SVC
Standards en cours de développement

Plan

1 La famille MPEG
MPEG-1
MPEG-2
MPEG-4

2 H.264
H.264/AVC
Définitions et schéma
Nouveaux modes et outils
Profils et niveaux
Optimisation, performances, NAL
Extensions : H.264/SVC

3 Standards en cours de développement

M. Cagnazzo Standard vidéo 52/130


MPEG
H.264/AVC
H.264
Extensions : H.264/SVC
Standards en cours de développement

Le standard H.264/AVC

Développé en 1998-2003
Standard approuvé comme ITU-T Recommendation H.264
et comme ISO/IEC International Standard 14496-10
(MPEG-4 part 10) Advanced Video Coding (AVC).
Codeur hybride
Seulement la partie vidéo

M. Cagnazzo Standard vidéo 53/130


MPEG
H.264/AVC
H.264
Extensions : H.264/SVC
Standards en cours de développement

Objectives

But : optimiser les performance débit-distorsion


Jusqu’à -60% de débit pour la même qualité par rapport à
MPEG-2
Applications :
Broadcast sur câble, satellite, xDSL, TNT, etc.
Stockage sur support de mémoire (optique, magnétique,
solid state, etc.)
Conversational services sur Ethernet, LAN, WiFi, xDSL,
etc.
Video-on-Demand et multimédia streaming sur Ethernet,
LAN, WiFi, xDSL, etc.
On doit penser à l’intégration avec le niveau de
transport/stockage

M. Cagnazzo Standard vidéo 54/130


MPEG
H.264/AVC
H.264
Extensions : H.264/SVC
Standards en cours de développement

Structure de H.264

L’efficacité de la transmission dans des environnements


différents dépend :
de l’efficacité de la compression ;
et de l’intégration avec les protocoles de transport.
Seulement l’intégration entre adaptation au réseau et
compression assure les meilleures performances
C’est pour cela que H.264 est constitué de deux couches
(layers) conceptuelles
Video Coding Layer (VCL)
Network Adaption Layer (NAL)

M. Cagnazzo Standard vidéo 55/130


MPEG
H.264/AVC
H.264
Extensions : H.264/SVC
Standards en cours de développement

Structure de H.264

Video Coding Layer

Network Abstraction Layer

Transport layer

H.320 MP4FF H.324/M MPEG−2 RTP/IP

Wired Network Wirless Network

M. Cagnazzo Standard vidéo 56/130


MPEG
H.264/AVC
H.264
Extensions : H.264/SVC
Standards en cours de développement

VCL et NAL

VCL fournit des outils performants pour la compression


Intra-prediction, variable-size ME/MC, in-loop filtering,
CABAC, etc.
Profiles et niveaux
NAL permet l’adaptation au différents types de transport
Packet switched transport (RTP/IP, TCP/IP, . . .) vs. circuit
switched transport (MPEG-2, H.320, . . .)
Streaming vs. storage

M. Cagnazzo Standard vidéo 57/130


MPEG
H.264/AVC
H.264
Extensions : H.264/SVC
Standards en cours de développement

Représentation de la vidéo

Entrée : vidéo numérique en format YCbCr (équivalent à


YUV)
Luma et Chroma
Échantillonnage : 4 : 2 : 0
Cela correspond à la sensibilité différente du SVH à Luma
et Chroma

M. Cagnazzo Standard vidéo 58/130


MPEG
H.264/AVC
H.264
Extensions : H.264/SVC
Standards en cours de développement

Le macroblock

Macroblock : un bloc de 16 × 16 échantillons de Luma et


deux blocs 8 × 8 de Chroma
Le MB est l’unité de codage :
Chaque MB est codé avec un mode (Intra, Inter, Skip)
Chaque mode produit : une prédiction, un résidu, des
paramètres
Le 2 derniers sont envoyés au décodeur

M. Cagnazzo Standard vidéo 59/130


MPEG
H.264/AVC
H.264
Extensions : H.264/SVC
Standards en cours de développement

Les slices

Dans H.264/AVC les macroblocks sont groupés en slices


Une slice est une ensemble de macroblocks en raster scan
order
Des autres structures de slice sont possibles
Slice 0

Slice 1

Slice 2

M. Cagnazzo Standard vidéo 60/130


MPEG
H.264/AVC
H.264
Extensions : H.264/SVC
Standards en cours de développement

Les slices

Normalement une slice correspond à une image


Cinq types de slices existent :
Intra (I) : tous les MB en mode Intra
Predictive (P) : I + modes prédictives avec une image de
référence
Bidirectional (B) : P + modes prédictives avec deux image
de référence
Switch-Intra (SI) et Switch-Predictive (SP) : utilisées pour
améliorer l’efficacité du passage d’un train binaire à l’autre

M. Cagnazzo Standard vidéo 61/130


MPEG
H.264/AVC
H.264
Extensions : H.264/SVC
Standards en cours de développement

Codage par frame ou field

Top field Bottom field

Progressive frame Interlaced frame

Le field est lié aux images entrelacées (lignes paires et impaires)


Le choix entre codage par frame ou par field est fait :
À niveau d’image (P-AFF)
À niveau de macroblock (MB-AFF)

M. Cagnazzo Standard vidéo 62/130


MPEG
H.264/AVC
H.264
Extensions : H.264/SVC
Standards en cours de développement

Pictures et Sequences dans H.264

Une vidéo codée en H.264 consiste dans une suite


(sequence) d’images, appelées coded pictures
Une coded picture peut être une frame ou un field
L’image est divisée en MB
Les MB sont groupés en slices
Donc un’image est faite de une ou plusieurs slices

M. Cagnazzo Standard vidéo 63/130


MPEG
H.264/AVC
H.264
Extensions : H.264/SVC
Standards en cours de développement

Rappel : schéma du codeur hybride

Control
JPEG coder

fk ek Channel
DCT Q VLC
Buffer

bfk Q*

ME

IDCT
MV

Frame
ek
MC Buffer efk
bfk

M. Cagnazzo Standard vidéo 64/130


MPEG
H.264/AVC
H.264
Extensions : H.264/SVC
Standards en cours de développement

Schéma du codeur H.264

Control

fk ek DCT CABAC/ Channel


4x4 Q
CAVLC Buffer

bfk Q*

ME

IDCT
MV
Intra/Inter
Intra
Prediction Deblocking
Filter

Frame
ek
MC
Buffer efk
bfk

M. Cagnazzo Standard vidéo 65/130


MPEG
H.264/AVC
H.264
Extensions : H.264/SVC
Standards en cours de développement

Nouveaux modes de codage

Modes Intra
Modes Inter
Modes Skip et Direct

M. Cagnazzo Standard vidéo 66/130


MPEG
H.264/AVC
H.264
Extensions : H.264/SVC
Standards en cours de développement

Modes Intra avec prédiction spatiale

Prédiction sur des blocs 16x16 (régions uniformes), 4 types de


prédiction:

horizontale verticale

moyenne plane prediction

M. Cagnazzo Standard vidéo 67/130


MPEG
H.264/AVC
H.264
Extensions : H.264/SVC
Standards en cours de développement

Modes Intra avec prédiction spatiale


Prédiction sur des blocs 4x4 (détails), 9 types de prédiction: 8
directions et moyenne

3 4
7 0 5

Directions Mode 0 Mode 1

Mode 3 Mode 4

M. Cagnazzo Standard vidéo 68/130


MPEG
H.264/AVC
H.264
Extensions : H.264/SVC
Standards en cours de développement

Modes Inter avec taille variable des blocs


Chaque bloc 16x16 peut être décomposé pour vérifier si il est
nécessaire une représentation plus fine du mouvement

16x16 16x8 8x16 8x8

8x4 4x8 4x4

M. Cagnazzo Standard vidéo 69/130


MPEG
H.264/AVC
H.264
Extensions : H.264/SVC
Standards en cours de développement

Estimation du mouvement

Exemple de partition avec bloc à taille variable

M. Cagnazzo Standard vidéo 70/130


MPEG
H.264/AVC
H.264
Extensions : H.264/SVC
Standards en cours de développement

Représentation du mouvement
Vecteur de mouvement à précision du quart de pixel
Deux interpolation successive : avec un filtre de longueur
6, et bi-linéaire
Codage des vecteurs par prédiction (médian des voisins)
Les vecteurs peuvent sortir de l’image

D B C
A

M. Cagnazzo Standard vidéo 71/130


MPEG
H.264/AVC
H.264
Extensions : H.264/SVC
Standards en cours de développement

Compensation du mouvement

Le choix de l’image de référence est très peu contraint


Dans le cas P et dans le cas B il suffit donner une (ou
deux) liste de image pour la prédiction
Prédiction B pondérée avec coefficients arbitraires

M. Cagnazzo Standard vidéo 72/130


MPEG
H.264/AVC
H.264
Extensions : H.264/SVC
Standards en cours de développement

Slices de type B

Generalized B-slices
Deux listes d’images de référence
Multiple reference frame
Flexibilité dans le choix de la référence
Flexibilité dans l’ordre de codage
Prédiction par moyenne pondérée

M. Cagnazzo Standard vidéo 73/130


MPEG
H.264/AVC
H.264
Extensions : H.264/SVC
Standards en cours de développement

Compensation du mouvement
Références multiples

Références Image à coder

M. Cagnazzo Standard vidéo 74/130


MPEG
H.264/AVC
H.264
Extensions : H.264/SVC
Standards en cours de développement

Modes Skip et Direct

Skipped MB : c’est comme un MB prédictif pour lequel on


utilise
zéro bits pour coder le vecteur de mouvement
zéro bits pour coder le résidu
On utilise le vecteur médian des MBs voisin pour trouver le
MV
On copie les pixels pointés par ce MV de l’image de
référence
Coût de codage : seulement la signalisation du mode
Direct : mode Skip pour les B slices

M. Cagnazzo Standard vidéo 75/130


MPEG
H.264/AVC
H.264
Extensions : H.264/SVC
Standards en cours de développement

Nouveaux outils de codage

Filtre de de-blocking
Nouvelle transformée
Codeurs sans perte : CAVLC et CABAC
Outils pour le changement de flux (switch)
Outils pour la robustesse

M. Cagnazzo Standard vidéo 76/130


MPEG
H.264/AVC
H.264
Extensions : H.264/SVC
Standards en cours de développement

Filtre de de-blocking
Problème : effet de bloc à bas débit
Cause : codage indépendant des bloc
Motion−compesated image

M. Cagnazzo Standard vidéo 77/130


MPEG
H.264/AVC
H.264
Extensions : H.264/SVC
Standards en cours de développement

Filtre de de-blocking

Solution 1 : post-filtering
N’affecte pas le codage (frame buffer)
Non normatif, maximum de liberté
Besoin de mémoire supplémentaire
Solution 2 : in-loop filtering
Les images filtrée sont utilisée comme référence
Le filtre doit être normalisé
Meilleures performances (objectives et subjectives)
Complexité élevée (même si il y pas besoin de
multiplications ni de divisions) : branching, petits blocs

M. Cagnazzo Standard vidéo 78/130


MPEG
H.264/AVC
H.264
Extensions : H.264/SVC
Standards en cours de développement

Filtre de de-blocking
Exemple de filtre de de-blocking

Peter List, Anthony Joch, Jani Lainema, Gisle Bjøntegaard, and Marta Karczewicz: “Adaptive Deblocking Filter”, in
IEEE Transactions on Circuits and Systems for Video Technology, vol. 13, no. 7, July 2003

M. Cagnazzo Standard vidéo 79/130


MPEG
H.264/AVC
H.264
Extensions : H.264/SVC
Standards en cours de développement

Filtre de de-blocking
Analyse de la discontinuité

Block edge
M. Cagnazzo Standard vidéo 80/130
MPEG
H.264/AVC
H.264
Extensions : H.264/SVC
Standards en cours de développement

Filtre de de-blocking

Réduit les discontinuités entre blocs 4 × 4 adjacents


Le filtre est adapté à :
caractéristiques de la vidéo ;
le mode de codage du bloc et de ses voisins (filtre plus fort
si blocs Intra ou si compensation par images différentes)
l’amplitude de la discontinuité et le pas de quantification
4 types de filtrage sont possibles (plus le mode “non
filtering”)
Filtres non-linéaires (passe-bas plus seuillage)

M. Cagnazzo Standard vidéo 81/130


MPEG
H.264/AVC
H.264
Extensions : H.264/SVC
Standards en cours de développement

Nouvelle transformée

Transformée sur des blocs 4x4


La meilleure prédiction réduit la corrélation spatiale
Approximation de la TCD, à coefficients entiers
Parfaite synchronisation codeur/décodeur
Coefficients : 0, ±1, ±2 → implémentation par bit-shift et
somme/ soustraction
Deuxième niveau de transformée
Transformée 4x4 sur les 16 coefficients DC d’un bloc en
Intra16
Transformée 2x2 sur les 4 coefficients DC des blocs de
Chroma
Une transformée 8x8 est possible (profil High) pour le
blocs avec beaucoup de corrélation

M. Cagnazzo Standard vidéo 82/130


MPEG
H.264/AVC
H.264
Extensions : H.264/SVC
Standards en cours de développement

Ordre de codage et quantification

Les coefficients DC-Luma des 16 blocs 4x4 d’un MB sont


envoyés en premier
En suite les AC-Luma
En suite les Chroma
Quantification uniforme
Le pas de quantification dépend du paramètre de quantification
QP
Le pas double quand QP est incrémenté de 6
Le débit augmente de ≈ 12.5% pour un increment de 1 du QP

M. Cagnazzo Standard vidéo 83/130


MPEG
H.264/AVC
H.264
Extensions : H.264/SVC
Standards en cours de développement

Codage sans perte

Deux techniques sont supportées


Une technique à faible complexité, basée sur des codes à
longueur variable choisis en fonction du contexte (CAVLC)
Une technique à haute complexité, basée sur le codage
arithmétique adaptive et basé contexte (CABAC)
Les deux techniques améliorent sensiblement le codage
sans perte des standards précédents
On prend en compte que les statistiques peuvent varier et
dépendent du contexte

M. Cagnazzo Standard vidéo 84/130


MPEG
H.264/AVC
H.264
Extensions : H.264/SVC
Standards en cours de développement

Codage a longueur variable adapté au contexte


(CAVLC)

C’est la technique de codage sans perte du profile


baseline
Un type de dictionnaire pour les résidus
Un second type pour les autres éléments de la syntaxe
(vecteurs, modes, signalisation)
L’adaptivité du dictionnaire permet de gagner 2–7% de
débit

M. Cagnazzo Standard vidéo 85/130


MPEG
H.264/AVC
H.264
Extensions : H.264/SVC
Standards en cours de développement

Codage arithmétique binaire adapté au contexte


(CABAC)

Chaque élément de la syntaxe est transformé en binaire


Pour chacun on utilise un codeur arithmétique
Adaptatif : apprends les statistiques du signal
Contextuel : reconnaît que le même signal peut avoir
différents comportements
Complexité
Gain en débit de 5–15% par rapport à CAVLC

M. Cagnazzo Standard vidéo 86/130


MPEG
H.264/AVC
H.264
Extensions : H.264/SVC
Standards en cours de développement

Robustesse aux erreurs : concepts généraux

Mitiger la propagation des erreurs


Protection inégal (entêtes mieux protégés)
Limitation aux modes prédictifs
Rendre facile la récupération de synchronisation
Utilisation de marqueurs de synchronisation
Marker emulation prevention
Limiter l’impact visuel des erreurs
Reconnaître les images erronées
Afficher un image précédente plutôt que un’image erronée
(concealing)

M. Cagnazzo Standard vidéo 87/130


MPEG
H.264/AVC
H.264
Extensions : H.264/SVC
Standards en cours de développement

Robustesse dans H.264

Flexible Macroblock Ordering


Redundant Picture
Data Partitioning
Images de synchronisation et switching (SI et SP)

M. Cagnazzo Standard vidéo 88/130


MPEG
H.264/AVC
H.264
Extensions : H.264/SVC
Standards en cours de développement

Flexible macroblock ordering

Slice group 0 Slice group 1 Slice group 2

Slices codées indépendamment : une perte affecte seulement


une slice
Unequal protection pour les régions d’intérêt
Meilleur concealing dans le cas de perte

M. Cagnazzo Standard vidéo 89/130


MPEG
H.264/AVC
H.264
Extensions : H.264/SVC
Standards en cours de développement

Redundant picture

Dans une redundant picture il peut y avoir des redundant


slices
Une redundant slice est une nouvelle représentation d’une
slice déjà codée, cette dernière étant appelée primary
Si la primary slice est reçue, on n’utilise pas la redundant
La redundant est utilisée si la primary est perdue
Pour ne pas trop augmenter le débit de codage, la
redundant slice a typiquement une qualité dégradée par
rapport à la primary

M. Cagnazzo Standard vidéo 90/130


MPEG
H.264/AVC
H.264
Extensions : H.264/SVC
Standards en cours de développement

Data partitioning

Les données encodées sont reparties en 3 groupes


1 Entêtes et vecteurs de mouvement
2 Résidus pour les slices Intra
3 Résidus pour les autres slices
Cela permet d’utiliser UEP ou de donner des priorités aux
les données
Standard précédents : 2 et 3 n’étaient pas séparés

M. Cagnazzo Standard vidéo 91/130


MPEG
H.264/AVC
H.264
Extensions : H.264/SVC
Standards en cours de développement

Profils et niveaux

Il est possible de définir profils et niveaux avec une énorme


variété
Sept profils (Baseline, Extended, Main, High, High10,
High4:2:2, High 4:4:4)
16 niveaux qui peuvent être combinés avec les profiles.

M. Cagnazzo Standard vidéo 92/130


MPEG
H.264/AVC
H.264
Extensions : H.264/SVC
Standards en cours de développement

Profils

Extended
SI/SP slices
High
Baseline Main
I&P Slices Weighted 8x8 Transform
FMO Prediction
1/4 Pel MC Variable
Redundant Block Sizes
Pictures Multiple Advanced
CAVLC CABAC
Reference Quantization
ASO Frames
In−Loop B Slices
Intra Deblocking
Prediction MB−AFF B/W video
Filter
Field coding

Data
Partitioning

M. Cagnazzo Standard vidéo 93/130


MPEG
H.264/AVC
H.264
Extensions : H.264/SVC
Standards en cours de développement

Profils

Baseline Profile : applications à bas-coût (mobiles,


visio-conférence)
Main Profile : applications grand public de diffusion et de
stockage ; a perdu de l’importance quand le profil High a
été ajouté avec le même objectif.
Extended Profile : Diffusion en flux (streaming) ; a des
capacités de robustesse et de switching.
High Profile : Le profil principal pour la diffusion et le
stockage (TNT-HD, HD-DVD, BD)
Les autres profils sont destinés à la production et aux
applications professionnelles

M. Cagnazzo Standard vidéo 94/130


MPEG
H.264/AVC
H.264
Extensions : H.264/SVC
Standards en cours de développement

Niveaux

Les niveaux sont des limitations sur des paramètres


Cela permet aux décodeurs de limiter les ressources
employées pour le décodage
Débit de 64 kbps à 240 Mbps pour les profiles Baseline et
Extended
Débit de 80 kbps à 300 Mbps pour le profile High
Résolutions : de QCIF, 15 fps à HD, 120 fps (ou 4K, 30 fps)

M. Cagnazzo Standard vidéo 95/130


MPEG
H.264/AVC
H.264
Extensions : H.264/SVC
Standards en cours de développement

Optimisation de l’estimation du mouvement

Attention : procédé non normatif


Estimation régularisée
Pour chaque sous-mode i on calcule, sur chacun des blocs
et sous-blocs
JME = D(v) + λME R(v)
D peut être la SAD entre le blocs
R est le débit de codage du vecteur

M. Cagnazzo Standard vidéo 96/130


MPEG
H.264/AVC
H.264
Extensions : H.264/SVC
Standards en cours de développement

Optimisation du mode de codage

Codage par macroblocs : choix du mode


Le choix du mode est uniquement à l’encodeur
Complexité, performance RD, robustesse
Exemple : optimisation RD
Pour chaque MB, et pour chaque mode k , on calcule la
fonction de coût :

Jk (Q, λ) = Dk (Q) + λRk (Q)

D : distorsion du MB décodé en mode k (prédiction,


transformée, quantification)
R : débit du mode k (signalisation + MV + résidu)

M. Cagnazzo Standard vidéo 97/130


MPEG
H.264/AVC
H.264
Extensions : H.264/SVC
Standards en cours de développement

Performances débit-distorsion
Comparaison des performances de codage

42

40

38
PSNR − dB

36

34

32

M−JP2K
30 MPEG−2
H.264
500 1000 1500 2000 2500 3000
rate − kbps

M. Cagnazzo Standard vidéo 98/130


MPEG
H.264/AVC
H.264
Extensions : H.264/SVC
Standards en cours de développement

H.264 – Exemples d’images décodées

MPEG-2 H.264

M. Cagnazzo Standard vidéo 99/130


MPEG
H.264/AVC
H.264
Extensions : H.264/SVC
Standards en cours de développement

H.264 – Exemples d’images décodées

Motion JPEG2000 H.264

M. Cagnazzo Standard vidéo 100/130


MPEG
H.264/AVC
H.264
Extensions : H.264/SVC
Standards en cours de développement

H.264 – Exemples d’images décodées

MPEG-2 H.264

M. Cagnazzo Standard vidéo 101/130


MPEG
H.264/AVC
H.264
Extensions : H.264/SVC
Standards en cours de développement

H.264 – Exemples d’images décodées

Motion JPEG2000 H.264

M. Cagnazzo Standard vidéo 102/130


MPEG
H.264/AVC
H.264
Extensions : H.264/SVC
Standards en cours de développement

Performance H.264
Effet de la structure du GOP
44

43

42
PSNR − dB

41

40

39 IPPP
I−B−P−B−P
I−B−B−P−B−B−P
I−B−B−B−P−B−B−B−P
38
400 600 800 1000 1200 1400 1600 1800
Rate − kbps
M. Cagnazzo Standard vidéo 103/130
MPEG
H.264/AVC
H.264
Extensions : H.264/SVC
Standards en cours de développement

Performance H.264
GOP IPPP : Débit et PSNR par image

foreman − Rate 751.27 kbps PSNR 39.89 dB foreman − Rate 751.27 kbps PSNR 39.89 dB
6
10 42

41

5
10 40
Coding rate − bits

PSNR − dB
I 39 I
P P

4
10 38

37

3
10 36
0 20 40 60 80 100 120 0 20 40 60 80 100 120
Frame number Frame number

M. Cagnazzo Standard vidéo 104/130


MPEG
H.264/AVC
H.264
Extensions : H.264/SVC
Standards en cours de développement

Performance H.264
GOP IBPBP : Débit et PSNR par image

foreman − Rate 771.12 kbps PSNR 40.46 dB foreman − Rate 771.12 kbps PSNR 40.46 dB
6
10 44

43

42
5
10
Coding rate − bits

41

PSNR − dB
I 40
P
B
39
4
10

38
I
37 P
B
3
10 36
0 20 40 60 80 100 120 0 20 40 60 80 100 120
Frame number Frame number

M. Cagnazzo Standard vidéo 105/130


MPEG
H.264/AVC
H.264
Extensions : H.264/SVC
Standards en cours de développement

Performance H.264
GOP IBBPBBP : Débit et PSNR par image

foreman − Rate 773.14 kbps PSNR 40.49 dB foreman − Rate 773.14 kbps PSNR 40.49 dB
6
10 45

44

43

5
42
10
Coding rate − bits

41

PSNR − dB
I 40
P
B 39
4
10
38

37 I
P
36 B
3
10 35
0 20 40 60 80 100 120 0 20 40 60 80 100 120
Frame number Frame number

M. Cagnazzo Standard vidéo 106/130


MPEG
H.264/AVC
H.264
Extensions : H.264/SVC
Standards en cours de développement

Performance H.264
GOP IBBBPBBBP : Débit et PSNR par image

foreman − Rate 767.99 kbps PSNR 40.32 dB foreman − Rate 767.99 kbps PSNR 40.32 dB
6
10 45

44

43

5
42
10
Coding rate − bits

41

PSNR − dB
I 40
P
B 39
4
10
38

37 I
P
36 B
3
10 35
0 20 40 60 80 100 120 0 20 40 60 80 100 120
Frame number Frame number

M. Cagnazzo Standard vidéo 107/130


MPEG
H.264/AVC
H.264
Extensions : H.264/SVC
Standards en cours de développement

NAL units

La vidéo codée est organisée en NAL units (NALU)


Une NALU est un paquet avec 1 octet d’entête et N − 1
octet de payload
Le header indique le type de payload
Dans le payload on introduit, si nécessaire, des emulation
prevention bytes
Byte-Stream et Packet-Transport formats

M. Cagnazzo Standard vidéo 108/130


MPEG
H.264/AVC
H.264
Extensions : H.264/SVC
Standards en cours de développement

Type de NALU par contenu

VCL NALU (modes, vecteurs, résidus)


Non-VCL NALU (header, parameter sets)
Parameter set pour image et pour sequence
On peut appliquer l’UEP

M. Cagnazzo Standard vidéo 109/130


MPEG
H.264/AVC
H.264
Extensions : H.264/SVC
Standards en cours de développement

Access unit
Start

Acces unit delimiter


Une access unit (AU) produit
une image
SEI
Une video sequence est une
suite de AUs
Primary coded picture

Au début d’une séquence


Redundant coded picture
vidéo il y a une image IDR
(instantaneous decoding
End of sequence
refresh)
Un NALU stream peut contenir
End of stream une ou plusieurs video
sequences
End

M. Cagnazzo Standard vidéo 110/130


MPEG
H.264/AVC
H.264
Extensions : H.264/SVC
Standards en cours de développement

Le standard H.264/SVC
Scalable Video Coding

Extension scalable de H.264/AVC


Développé en 2003-2007
Joint Video Team (ITU+ISO/IEC)
Codeur hybride
Extension scalable de H.264 : niveau base compatible
avec H.264/AVC

M. Cagnazzo Standard vidéo 111/130


MPEG
H.264/AVC
H.264
Extensions : H.264/SVC
Standards en cours de développement

Le standard H.264/SVC
Scalabilité temporelle

Il suffit d’organiser les trames B de H.264 dans une


structure hiérarchique
La prédiction est toujours faite à partir d’une image du
même niveau ou de niveau inférieur
Les niveaux supérieurs ne sont pas nécessaires pour le
décodage

M. Cagnazzo Standard vidéo 112/130


MPEG
H.264/AVC
H.264
Extensions : H.264/SVC
Standards en cours de développement

Le standard H.264/SVC
Scalabilité temporelle : structure hiérarchique

6 7 8
5
3 4
2
0 1

M. Cagnazzo Standard vidéo 113/130


MPEG
H.264/AVC
H.264
Extensions : H.264/SVC
Standards en cours de développement

Le standard H.264/SVC
Scalabilité temporelle : structure non-dyadique

6 7 8 9
4 5

2 3
0 1

M. Cagnazzo Standard vidéo 114/130


MPEG
H.264/AVC
H.264
Extensions : H.264/SVC
Standards en cours de développement

Le standard H.264/SVC
Scalabilité temporelle : structure sans retard

3 5 7
1
2 6
4
0 8

M. Cagnazzo Standard vidéo 115/130


MPEG
H.264/AVC
H.264
Extensions : H.264/SVC
Standards en cours de développement

Le standard H.264/SVC
Scalabilité temporelle : performance

Performance de compression : choix des pas de


quantification
Niveaux inférieurs finement quantifiés car ils servent de
référence aux niveaux supérieurs
Les valeurs optimales des pas de quantification dépendent
du signal
Formule simple pour le pas de quantification à niveau T :

QPT = QP0 + 3 + T

Meilleurs résultats si le retard est admis

M. Cagnazzo Standard vidéo 116/130


MPEG
H.264/AVC
H.264
Extensions : H.264/SVC
Standards en cours de développement

Scalabilité en résolution : codeur


Schéma pyramidale

x eE
DCT QE VLC

↓2
QE∗

IDCT

Frame
eE
W MC Buffer
efE b
fE

eB
DCT QB VLC

QB∗

↑2
IDCT

efB ebq
Frame
MC Buffer
bfB
efB

M. Cagnazzo Standard vidéo 117/130


MPEG
H.264/AVC
H.264
Extensions : H.264/SVC
Standards en cours de développement

Scalabilité en résolution
Schéma pyramidale

Double boucle : pas de drift


La vidéo d’entrée est filtrée et sous-échantillonnée
La prédiction de niveau enhanced est la somme pondérée
de :
L’image de niveau base interpolée
La prédiction ME/MC
Le choix du poids est faite MB par MB et cette info est
codé dans le train binaire

M. Cagnazzo Standard vidéo 118/130


MPEG
H.264/AVC
H.264
Extensions : H.264/SVC
Standards en cours de développement

Scalabilité en résolution : décodeur


Schéma pyramidale

efE
VLD QE∗ IDCT
bfE
Frame
W MC Buffer

↑2
efB
VLD QB∗ IDCT
bfB
Frame
MC
Buffer

M. Cagnazzo Standard vidéo 119/130


MPEG
H.264/AVC
H.264
Extensions : H.264/SVC
Standards en cours de développement

Scalabilité en résolution : décodeur


Schéma pyramidale

L’image à basse résolution est interpolée et pondérée


Interpolation linéaire
On obtient les information nécessaires pour le décodage
du niveau enhanced

M. Cagnazzo Standard vidéo 120/130


MPEG
H.264/AVC
H.264
Extensions : H.264/SVC
Standards en cours de développement

Le standard H.264/SVC
Scalabilité spatiale

Schéma pyramidale (comme dans MPEG-2)


Nouveauté technique : la prédiction inter-layer
Les paramètres de codage d’un layer peuvent être prédits
de un layer inférieur
Inter-layer motion prediction
Inter-layer intra et residual prediction
Scalabilité spatiale généralisée : le niveau supérieur peut
avoir n’importe quelle résolution

M. Cagnazzo Standard vidéo 121/130


MPEG
H.264/AVC
H.264
Extensions : H.264/SVC
Standards en cours de développement

Le standard H.264/SVC
Scalabilité spatiale et temporelle

M. Cagnazzo Standard vidéo 122/130


MPEG
H.264/AVC
H.264
Extensions : H.264/SVC
Standards en cours de développement

Le standard H.264/SVC
Scalabilité en qualité

Coarse grain scalability


Medium grain scalability

M. Cagnazzo Standard vidéo 123/130


MPEG
H.264/AVC
H.264
Extensions : H.264/SVC
Standards en cours de développement

Le standard H.264/SVC
Scalabilité en qualité : CGS

Implémentée comme la scalabilité résolution, mais sans


changer d’échelle entre niveaux
Inter-layer Intra Prediction et Inter-layer Residual
Prediction dans le domaine transformé
Pas de drift
Petit nombre de niveaux (courbe à marche)

M. Cagnazzo Standard vidéo 124/130


MPEG
H.264/AVC
H.264
Extensions : H.264/SVC
Standards en cours de développement

Le standard H.264/SVC
Scalabilité en qualité : MGS

On peut définir des point d’accès aux niveaux de scalabilité


On introduit du drift pour gérer le compromis entre
performances des différents niveaux
On peut choisir entre les extrêmes : pas de drift (comme
en MPEG-4/SNR) et drift libre (MPEG-2/SNR)
Key picture : pas de drift au niveau plus bas, drift admis au
niveaux supérieurs

M. Cagnazzo Standard vidéo 125/130


MPEG
H.264
Standards en cours de développement

Plan

1 La famille MPEG
MPEG-1
MPEG-2
MPEG-4

2 H.264
H.264/AVC
Définitions et schéma
Nouveaux modes et outils
Profils et niveaux
Optimisation, performances, NAL
Extensions : H.264/SVC

3 Standards en cours de développement

M. Cagnazzo Standard vidéo 126/130


MPEG
H.264
Standards en cours de développement

High Efficiency Video Coding

But : réduction du débit de 40% par rapport à H.264


Call for Proposal : janvier 2010
27 proposition soumises : évaluations subjectives
5 propositions retenue pour le reference software
Depuis mai 2010 : développement du standard
Finalisation prévue en 2013
Codecs industriels : Ericsson, Allegro, Vanguard Software

M. Cagnazzo Standard vidéo 127/130


MPEG
H.264
Standards en cours de développement

High Efficiency Video Coding


Différences par rapport à H.264

Macroblock remplacés par coding uints (CU)


Structure à quad-tree
Chaque CU contient des prediction units (PU)
Chaque PU contient des transform units (TU)
33 Directions pour le codage INTRA
Codage des vecteurs (Advanced Motion Vector Prediction,
Merge Mode)
Améliorations dans : bit-depth, filtre de deblocking,
compensation du mouvement, transformée

M. Cagnazzo Standard vidéo 128/130


MPEG
H.264
Standards en cours de développement

Conclusions
Pour approfondir

1 A. Bovik. Handbook of image and video processing


2 I. Richardson. H.264 and MPEG-4 Video Compression
3 Special issues de IEEE Trans. Circ. Video Tech.

M. Cagnazzo Standard vidéo 129/130


MPEG
H.264
Standards en cours de développement

Conclusions

MERCI DE VOTRE ATTENTION !

Questions ?

Contact : cagnazzo@telecom-paristech.fr

M. Cagnazzo Standard vidéo 130/130