Block-matching, MPEG Guillaume Coppens, Cléa Martinez Mars 2016 1
Plan 1. Introduction 1.1 Pourquoi le MPEG? 1.2 Redondance spatiale 1.3 Redondance temporelle 2. Block -matching 2.1 Principe du block-matching 2.2 Algorithmes de recherche de bloc 3. MPEG 3.1 Images I, P, B 3.2 GOP (Group of Pictures) 4. H-264 2
1. Introduction Pourquoi le MPEG? Vidéo : succession d images mais on ne peut pas se permettre de compresser chaque image une à une. Beaucoup de redondances dans une vidéo : On sait déjà comment exploiter les redondances spatiales avec la compression d image (ex : JPEG). On veut pouvoir exploiter les redondances temporelles MPEG : Motion Picture Expert Group (1988). Format MPEG-2 (1994) 3
Redondance spatiale : retour sur la compression JPEG Différences avec JPEG : mêmes tables de quantification pour luminance et chrominance table de quantification peut changer pour chaque bloc 4
Redondance temporelle et éléments d une séquence vidéo 5
2. Principe du block matching Paramètres : Sortie : 1. fonction de distorsion 2. zone de recherche 3. taille d un bloc à analyser 1. vecteur de mouvement 2. différence entre deux macro-blocs 6
Fonctions de distorsions Mean Absolute Difference Mean Squared Error MAD = MSE = demande peu de calculs plus proche de notre vision : pixel (i, j) image courante : pixel (i, j) image de référence N : taille du bloc 7
Zone de recherche : W w << 1 : mauvaise qualité de prédiction lors de déplacements rapides w >> 1 : meilleur qualité contre une plus grande complexité temporelle Dans le format MPEG : W = 16 pixels Taille du bloc à analyser 8x8 pour le format MPEG 8
Méthodes de parcours de blocs Les principaux : Full Search (FS) Three Step Search (TSS) 2D Logarithmic Search (2DLS) Autres parcours : Four Step Search (FSS) Simple and Efficient Search (SES) Adaptative Rood Pattern Search (ARPS) 9
Three Step Search (TTS), Koga et. al.( 1981) Démarre de la position où il n y a pas de déplacements Le pas initial d entre les points de recherche vaut W/2 9 points sont testés, le point d'erreur minimale est choisis comme le centre de l étape suivante. L étape suivante s effectue avec un pas de d/2 On s'arrête lorsque le pas vaut 1 10
2D Logarithmic Search (2DLS) ain et. al. (1981) Démarre de la position où il n y a pas de déplacements Le pas initial entre les points de recherche vaut W/2 5 points en forme de croix sont utilisés à chaque étape la taille entre les points de la croix est réduite de moitié si le point d erreur minimale se trouve sur le centre, sinon il reste inchangé. On arrête lorsque le pas vaut 1 11
Comparatif des algorithmes de recherche Nombre de points de recherche : Cas où W = 7 Full Search (2*W+1)^2 = 225 Three Step Search 1 + 8*log2(d+1) = 17 2D Logarithmic Search (on ne peut pas déterminer le nombre de points) nombre minimal : 13 nombre maximal : 26 12
Compression MPEG Le flux de sortie MPEG possède 3 types d images : Images I ou Intra frames (images intracodées) Images P ou Predictive frames Images B ou Bidirectional frames 13
I Frames Image complète codée en JPEG Utilisée notamment lors d un changement de scène Une image I toutes les 12 images environ (2 images I par seconde) Permet d éviter la propagation d erreur Permettent la lecture en avance rapide. 14
P frames : images prédictives Codées par rapport à l image précédente, différence bloc par bloc Différence entre les deux images codée spatialement Utile pour les redondances temporelles 15
Syntaxe d une image P : Problèmes: si erreur lors du codage d une image P, toutes les images P suivantes seront erronées si perte d image I, aucune image P ne pourra être décodée 16
B frames On ne peut pas tout prédire, parfois il est plus efficace de chercher les données dans l image suivante. codées par rapport à deux images (P ou I, jamais B) ne propagent pas leurs propres erreurs 17
Codage d une image bi-directionnelle 18
GOP : Group of pictures 19
Taux de compression Si l on utilise un GOP de la forme IBBP plutôt que IIII : 60% de bits en moins Taux de compression : I frame : 7:1 P frame : 20:1 B frame : 50:1 20
H264 vs MPEG-2 H264 utilise jusqu à 32 images pour construire une image prédictive (contre 2 pour MPEG-2) Codage arithmétique pour H264, Huffman pour MPEG-2 La taille des blocs est variable : de 4x4 à 16x16 pixels Précision jusqu au quart de pixel pour H264 Environ 2 fois plus efficace au niveau de la compression 21
Sources http://screspin.free.fr/mpeg/ http://profesores.fi-b.unam. mx/maixx/biblioteca/librero_telecom/blockmatchingalgorithmsformotionestim ation.pdf http://serv.yanchick.org/books/dsp_books/video%20processing%20and% 20Communication/Chapter%206_2D%20motion%20estimation.pdf https://trac.ffmpeg.org/wiki/debug/macroblocksandmotionvectors 22
Un exemple à l aide du debug de ffmpeg 23