IntroductionLa prédiction temporelle
Le codeur hybride
Les principes de la compression vidéo
Marco Cagnazzo
Département Traitement du Signal et des ImagesTELECOM ParisTech
18 septembre 2012
M. Cagnazzo Compression vidéo 1/40
IntroductionLa prédiction temporelle
Le codeur hybride
Plan
1 Introduction
2 La prédiction temporelleDPCMConditional replenishmentEstimation du mouvement
3 Le codeur hybride
M. Cagnazzo Compression vidéo 2/40
IntroductionLa prédiction temporelle
Le codeur hybride
Plan
1 Introduction
2 La prédiction temporelleDPCMConditional replenishmentEstimation du mouvement
3 Le codeur hybride
M. Cagnazzo Compression vidéo 3/40
IntroductionLa prédiction temporelle
Le codeur hybride
Principes de la compression vidéo
Redondance spatialeLes régions dont les images se composent sonthomogènes
Redondance temporelleLes images dont une séquence se compose sont similairesles unes aux autres
Un codeur performante doit éliminer les deux types deredondance
M. Cagnazzo Compression vidéo 4/40
IntroductionLa prédiction temporelle
Le codeur hybride
Principes de la compression vidéoRedondance spatiale
M. Cagnazzo Compression vidéo 5/40
IntroductionLa prédiction temporelle
Le codeur hybride
Principes de la compression vidéoRedondance temporelle
M. Cagnazzo Compression vidéo 6/40
IntroductionLa prédiction temporelle
Le codeur hybride
Principes de la compression vidéoSchéma générique d’un codeur vidéo
CompressionCompressionTemporelle Spatiale
Buffer
Information de mouvement
Input
M. Cagnazzo Compression vidéo 7/40
IntroductionLa prédiction temporelle
Le codeur hybride
Classification des codeurs vidéo
Espace Temps + et - Applicationscibles
Standards
MotionPicture
Transformée -
Simplicité d’implé-mentation, faible coûtde calcul mais faibletaux de compression
Cinémanumérique,chat vidéo
M-JPEG, M-JPEG2000
Hybride Transformée PrédictionTrès bon taux de com-pression, complexitéélevé
Distributionsur supportde mémoireet surréseaux
MPEG-n,H.26x
Trans-formée3D
Transformée Transformée
Très bonne scalabil-ité, taux de compres-sion un peu inférieuraux codeurs hybrides
Distributionsur réseau
-
M. Cagnazzo Compression vidéo 8/40
IntroductionLa prédiction temporelle
Le codeur hybride
DPCMConditional replenishmentEstimation du mouvement
Plan
1 Introduction
2 La prédiction temporelleDPCMConditional replenishmentEstimation du mouvement
3 Le codeur hybride
M. Cagnazzo Compression vidéo 9/40
IntroductionLa prédiction temporelle
Le codeur hybride
DPCMConditional replenishmentEstimation du mouvement
La prédiction dans le codage vidéo :DPCM
Les images successives se ressemblent beaucoupPrédiction : fn,m,k = fn,m,k−1
Q
FrameBuffer
Image courante
Image précédente
Erreur
fk ek
ek
fk
fk
M. Cagnazzo Compression vidéo 10/40
IntroductionLa prédiction temporelle
Le codeur hybride
DPCMConditional replenishmentEstimation du mouvement
Conditional replenishment
Faire la prédiction seulement si c’est utile
Prédiction :
fn,m,k =
{fn,m,k−1 si |fn,m,k − fn,m,k−1| < γ
0 sinon
Problème :
side information : un bit par pixel
on préfère considérer des blocs de pixel
M. Cagnazzo Compression vidéo 11/40
IntroductionLa prédiction temporelle
Le codeur hybride
DPCMConditional replenishmentEstimation du mouvement
Conditional replenishment
Mesure de ressemblance des blocs :
d(B1,B2) =∑
p
|B1(p)− B2(p)|k
Si d(B(p)k ,B(p)
h ) < γ
refine : on transmet l’erreur de prédiction
skip : on ne transmet aucun bit
Si d(B(p)k ,B(p)
h ) ≥ γ
new : on transmet le bloc de pixels
Choix de γ ? Choix de la taille des blocs ?
M. Cagnazzo Compression vidéo 12/40
IntroductionLa prédiction temporelle
Le codeur hybride
DPCMConditional replenishmentEstimation du mouvement
Estimation du mouvement
M. Cagnazzo Compression vidéo 13/40
IntroductionLa prédiction temporelle
Le codeur hybride
DPCMConditional replenishmentEstimation du mouvement
Estimation du mouvement
M. Cagnazzo Compression vidéo 13/40
IntroductionLa prédiction temporelle
Le codeur hybride
DPCMConditional replenishmentEstimation du mouvement
Estimation du mouvement
On compare B(p)k et B(p+v)
h
M. Cagnazzo Compression vidéo 13/40
IntroductionLa prédiction temporelle
Le codeur hybride
DPCMConditional replenishmentEstimation du mouvement
Estimation du mouvement
Test ME :d(v) = d(B(p)
k ,B(p+v)h )
Vecteur estimé :v∗ = arg min
vd(v)
Info transmise :B(p)
k − B(p+v)h
Au décodage on reconstruit la prédiction de B(p)k à l’aide
des vecteurs de mouvement et de l’image de référence :c’est la compensation du mouvement
M. Cagnazzo Compression vidéo 14/40
IntroductionLa prédiction temporelle
Le codeur hybride
DPCMConditional replenishmentEstimation du mouvement
Estimation du mouvementFonctions de coût
Plusieurs choix sont possibles pour la fonction d(·, ·) :
SAD (Sum of Absolute Differences)
d(B1,B2) =∑
n,m
|B1(n,m)− B2(n,m)|
SSD (Sum of Squared Differences)
d(B1,B2) =∑
n,m
[B1(n,m)− B2(n,m)]2
ZN-SSD (Zero-mean Normalized SSD)
d(B1,B2) =
∑n,m
[B1(n,m)− B2(n,m)
]2
∑n,m B
21(n,m)
∑n,m B
22(n,m)
M. Cagnazzo Compression vidéo 15/40
IntroductionLa prédiction temporelle
Le codeur hybride
DPCMConditional replenishmentEstimation du mouvement
La prédiction dans le codage vidéoRégularisation de l’estimation du mouvement
Dans les régions homogènes l’EM peut donner desrésultats chaotiques
On ajoute une terme de régularisation
J(v) = d(v) + λr(v)
Vecteur estimé :v∗ = arg min
vJ(v)
λ gère le compromis entre fidélité et régularité
r(v): coût de codage ; régularité géométrique ...
M. Cagnazzo Compression vidéo 16/40
IntroductionLa prédiction temporelle
Le codeur hybride
DPCMConditional replenishmentEstimation du mouvement
La prédiction dans le codage vidéoExemple d’estimation de mouvement
Reference image Current image
M. Cagnazzo Compression vidéo 17/40
IntroductionLa prédiction temporelle
Le codeur hybride
DPCMConditional replenishmentEstimation du mouvement
La prédiction dans le codage vidéoExemple d’estimation de mouvement
Current image Difference image
M. Cagnazzo Compression vidéo 18/40
IntroductionLa prédiction temporelle
Le codeur hybride
DPCMConditional replenishmentEstimation du mouvement
La prédiction dans le codage vidéoVecteurs estimés
Rate(MV): 1668 bits − PSNR(Pred): 24.49 dB − Time: 7.6 s
MVF non régularisé MVF régularisé
M. Cagnazzo Compression vidéo 19/40
IntroductionLa prédiction temporelle
Le codeur hybride
DPCMConditional replenishmentEstimation du mouvement
La prédiction dans le codage vidéoVecteurs estimés
Rate(MV): 1668 bits − PSNR(Pred): 24.49 dB − Time: 7.6 s Rate(MV): 1537 bits − PSNR(Pred): 24.43 dB − Time: 8.7 s
MVF non régularisé MVF régularisé
M. Cagnazzo Compression vidéo 19/40
IntroductionLa prédiction temporelle
Le codeur hybride
DPCMConditional replenishmentEstimation du mouvement
La prédiction dans le codage vidéoVecteurs estimés
Motion−compesated image
MVF régularisé, image com-pensée
MVF régularisé, erreur decompensation
M. Cagnazzo Compression vidéo 20/40
IntroductionLa prédiction temporelle
Le codeur hybride
DPCMConditional replenishmentEstimation du mouvement
La prédiction dans le codage vidéoVecteurs estimés
Motion−compesated image MC error
MVF régularisé, image com-pensée
MVF régularisé, erreur decompensation
M. Cagnazzo Compression vidéo 20/40
IntroductionLa prédiction temporelle
Le codeur hybride
DPCMConditional replenishmentEstimation du mouvement
La prédiction dans le codage vidéoVecteurs estimés
Rate(MV): 7938 bits − PSNR(Pred): 26.45 dB − Time: 26.3 s
MVF non régularisé MVF régularisé
M. Cagnazzo Compression vidéo 21/40
IntroductionLa prédiction temporelle
Le codeur hybride
DPCMConditional replenishmentEstimation du mouvement
La prédiction dans le codage vidéoVecteurs estimés
Rate(MV): 7938 bits − PSNR(Pred): 26.45 dB − Time: 26.3 s Rate(MV): 6403 bits − PSNR(Pred): 26.38 dB − Time: 31.1 s
MVF non régularisé MVF régularisé
M. Cagnazzo Compression vidéo 21/40
IntroductionLa prédiction temporelle
Le codeur hybride
DPCMConditional replenishmentEstimation du mouvement
La prédiction dans le codage vidéoVecteurs estimés
Motion−compesated image
MVF régularisé, image com-pensée
MVF régularisé, erreur decompensation
M. Cagnazzo Compression vidéo 22/40
IntroductionLa prédiction temporelle
Le codeur hybride
DPCMConditional replenishmentEstimation du mouvement
La prédiction dans le codage vidéoVecteurs estimés
Motion−compesated image MC error
MVF régularisé, image com-pensée
MVF régularisé, erreur decompensation
M. Cagnazzo Compression vidéo 22/40
IntroductionLa prédiction temporelle
Le codeur hybride
DPCMConditional replenishmentEstimation du mouvement
La prédiction dans le codage vidéoVecteurs estimés
Rate(MV): 368 bits − PSNR(Pred): 22.34 dB − Time: 2.9 s
MVF non régularisé MVF régularisé
M. Cagnazzo Compression vidéo 23/40
IntroductionLa prédiction temporelle
Le codeur hybride
DPCMConditional replenishmentEstimation du mouvement
La prédiction dans le codage vidéoVecteurs estimés
Rate(MV): 368 bits − PSNR(Pred): 22.34 dB − Time: 2.9 s Rate(MV): 342 bits − PSNR(Pred): 22.30 dB − Time: 3.1 s
MVF non régularisé MVF régularisé
M. Cagnazzo Compression vidéo 23/40
IntroductionLa prédiction temporelle
Le codeur hybride
DPCMConditional replenishmentEstimation du mouvement
La prédiction dans le codage vidéoVecteurs estimés
Motion−compesated image
MVF régularisé, image com-pensée
MVF régularisé, erreur decompensation
M. Cagnazzo Compression vidéo 24/40
IntroductionLa prédiction temporelle
Le codeur hybride
DPCMConditional replenishmentEstimation du mouvement
La prédiction dans le codage vidéoVecteurs estimés
Motion−compesated image MC error
MVF régularisé, image com-pensée
MVF régularisé, erreur decompensation
M. Cagnazzo Compression vidéo 24/40
IntroductionLa prédiction temporelle
Le codeur hybride
DPCMConditional replenishmentEstimation du mouvement
La prédiction dans le codage vidéoExemple d’estimation de mouvement
Reference image Current image
M. Cagnazzo Compression vidéo 25/40
IntroductionLa prédiction temporelle
Le codeur hybride
DPCMConditional replenishmentEstimation du mouvement
La prédiction dans le codage vidéoExemple d’estimation de mouvement
Current image Difference image
M. Cagnazzo Compression vidéo 26/40
IntroductionLa prédiction temporelle
Le codeur hybride
DPCMConditional replenishmentEstimation du mouvement
La prédiction dans le codage vidéoVecteurs estimés
Rate(MV): 2300 bits − PSNR(Pred): 22.98 dB − Time: 7.8 s
MVF non régularisé MVF régularisé
M. Cagnazzo Compression vidéo 27/40
IntroductionLa prédiction temporelle
Le codeur hybride
DPCMConditional replenishmentEstimation du mouvement
La prédiction dans le codage vidéoVecteurs estimés
Rate(MV): 2300 bits − PSNR(Pred): 22.98 dB − Time: 7.8 s Rate(MV): 2253 bits − PSNR(Pred): 22.85 dB − Time: 8.9 s
MVF non régularisé MVF régularisé
M. Cagnazzo Compression vidéo 27/40
IntroductionLa prédiction temporelle
Le codeur hybride
DPCMConditional replenishmentEstimation du mouvement
La prédiction dans le codage vidéoVecteurs estimés
Motion−compesated image
MVF régularisé, image com-pensée
MVF régularisé, erreur decompensation
M. Cagnazzo Compression vidéo 28/40
IntroductionLa prédiction temporelle
Le codeur hybride
DPCMConditional replenishmentEstimation du mouvement
La prédiction dans le codage vidéoVecteurs estimés
Motion−compesated image MC error
MVF régularisé, image com-pensée
MVF régularisé, erreur decompensation
M. Cagnazzo Compression vidéo 28/40
IntroductionLa prédiction temporelle
Le codeur hybride
DPCMConditional replenishmentEstimation du mouvement
Estimation du mouvementStratégie de recherche : compromis complexité/efficacité
Soit n le coté de la fenêtre de recherche
Méthode full search : Toutes les n2 position sont contrôlées
Méthode cross search : On contrôle d’abord ledéplacement horizontal, en suite le vertical ; 2n positionssont contrôlées
Méthode log search : On contrôle 8 position à distance2m − 1 ; on choisi la direction et on continue avec un pasde 2m−1 − 1 pixels ≈ 8 log2 n positions sont contrôlées
Méthode diamond search : On contrôle 4 directions, maison réduit le pas seulement quand on a choisi le centre ;cette méthode est très populaire
M. Cagnazzo Compression vidéo 29/40
IntroductionLa prédiction temporelle
Le codeur hybride
DPCMConditional replenishmentEstimation du mouvement
Estimation du mouvementBilan
Méthode très efficace de prédiction temporelle
Utilisée dans la plus part des codeurs vidéo
Compromis : précision - coût de codage - complexité
Degrés de liberté :
Fonction de coût (SAD, SSD, régularisation, . . .)Modèle de mouvement (forme et taille des blocs, fenêtre derecherche, . . .)Stratégie de recherche (Full-search, Log, Diamond, . . .)
M. Cagnazzo Compression vidéo 30/40
IntroductionLa prédiction temporelle
Le codeur hybride
Plan
1 Introduction
2 La prédiction temporelleDPCMConditional replenishmentEstimation du mouvement
3 Le codeur hybride
M. Cagnazzo Compression vidéo 31/40
IntroductionLa prédiction temporelle
Le codeur hybride
Le codage hybride
Codage par macroblocs
Modes de codageIntra: Pas de prédiction temporelle, codage par
transforméeInter: ME/MC pour la prédiction temporelle, codage
par transforméeDirect: Vecteur de mouvement déduit des voisins ;
copie du bloc de référenceLossless: Codage sans pertes
M. Cagnazzo Compression vidéo 32/40
IntroductionLa prédiction temporelle
Le codeur hybride
Codeurs hybridesExemple de performances des modes
Direct
ME/MCInter16
ME/MCInter8
CR16
CR8
IntraLossless
Distorsion
Débit
M. Cagnazzo Compression vidéo 33/40
IntroductionLa prédiction temporelle
Le codeur hybride
Codeurs hybridesChoix du mode de codage
Objectif : minimiser D pour un R donné :
D =
K∑
k=1
Dk (ik ,Q) R =
K∑
k=1
Rk (ik ,Q)
Le pas de quantification Q est donné
L’ensemble des modes i = {ik}Kk=1 doit être choisi en sort
que on puisse minimiser :
J(i,Q, λ) =
K∑
k=1
Dk (ik ,Q) + λ
K∑
k=1
Rk(ik ,Q)
M. Cagnazzo Compression vidéo 34/40
IntroductionLa prédiction temporelle
Le codeur hybride
Codeurs hybridesChoix du mode de codage
La minimisation conjointe sur i est trop complexe
On préfère une minimisation sous-optimale
Pour chaque MB k , on choisi le mode en sorte deminimiser :
Jk (ik ,Q, λ) = Dk(ik ,Q) + λRk (ik ,Q)
On minimise séparément chaque terme de la somme J
Le mode choisi dépend donc de Q et λ
M. Cagnazzo Compression vidéo 35/40
IntroductionLa prédiction temporelle
Le codeur hybride
Codeurs hybridesChoix du mode de codage
Le pas de quantification Q est considéré comme un inputPour chaque Q (débit) il existe une valeur optimale de λ,déterminée empiriquement
MPEG-2 : λ = aQ2 + bH.264 : λ = c2dQ+e
Avec le λ donné, minimiser Jk revient à trouver une droitesur le plan RD
M. Cagnazzo Compression vidéo 36/40
IntroductionLa prédiction temporelle
Le codeur hybride
Codeurs hybridesExemple de performances des modes
Direct
ME/MCInter16
ME/MCInter8
CR16
CR8
IntraLossless
Distorsion
DébitD + λ1R = J1D + λ2R = J2
M. Cagnazzo Compression vidéo 37/40
IntroductionLa prédiction temporelle
Le codeur hybride
Le codeur hybride
DCT Q VLCfk ek
M. Cagnazzo Compression vidéo 38/40
IntroductionLa prédiction temporelle
Le codeur hybride
Le codeur hybride
JPEG coder
DCT Q VLCfk ek
M. Cagnazzo Compression vidéo 38/40
IntroductionLa prédiction temporelle
Le codeur hybride
Le codeur hybride
DCT Q VLC
Q*
IDCT
JPEG coder
fk ek
ek
M. Cagnazzo Compression vidéo 38/40
IntroductionLa prédiction temporelle
Le codeur hybride
Le codeur hybride
JPEG coder
DCT Q VLC
Q*
IDCT
FrameBuffer
fk ek
ek
fkfk
M. Cagnazzo Compression vidéo 38/40
IntroductionLa prédiction temporelle
Le codeur hybride
Le codeur hybride
DCT Q VLC
Q*
IDCT
FrameBufferMC
JPEG coder
fk ek
ek
fk
fk
fk
M. Cagnazzo Compression vidéo 38/40
IntroductionLa prédiction temporelle
Le codeur hybride
Le codeur hybride
ME
DCT Q VLC
Q*
IDCT
FrameBufferMC
MV
JPEG coder
fk ek
ek
fk
fkfk
M. Cagnazzo Compression vidéo 38/40
IntroductionLa prédiction temporelle
Le codeur hybride
Le codeur hybride
ME
DCT Q VLC
Q*
Control
ChannelBuffer
IDCT
FrameBufferMC
MV
JPEG coder
fk ek
ek
fk
fkfk
M. Cagnazzo Compression vidéo 38/40
IntroductionLa prédiction temporelle
Le codeur hybride
Le décodeur hybride
Schéma asymétrique !
MV
ChannelBuffer
VLD
Q*
IDCT
FrameBufferMC
ek
fkfkfk
M. Cagnazzo Compression vidéo 39/40
IntroductionLa prédiction temporelle
Le codeur hybride
Conclusions
MERCI DE VOTRE ATTENTION !
Questions ?
M. Cagnazzo Compression vidéo 40/40