9. Normes et Standards de codage hybride avec la compensation du mouvement et compression Les premier codecs des images animées : 1974 : pour un service des visioconférence à 6 puis à 2 Mbit/s 1984 : nouvelle génération de codecs pour la visioconférence (début de l’étude) : TCD, Compensation du mouvement. Normes et standards 1989 : norme H.261 couvrant les débits de 64 Kbit/s à 2 Mbit/s (CCITT-IUT-T) nx64 Kbit/s 1992 : ISO MPEG1 : codage des images animées pour le stockage, le débit 1-1.5 Mbit/s (dérivé de H. 261) optimisé pour CD-I - ISO/IEC 11172, 1992 1993-95: ISO MPEG2 : Le codage générique de haute qualité pour TV numérique et TVHD – ISO/IEC 13818, 1995 Video : ITU – T H.262 1993-97 : ISO MPEG4 (version 1) : Le codage générique multi-fonctionnel, avec éléments d’analyse / synthèse à bas débit et manipulation des scènes vidéo. ISO/IEC 14496-1 : 1998 IT – Coding of Audio-Visual Objects H.263 : recommendation IUT-T
Normes et standards vidéo 2003 MPEG4 10 et H.264 – ISO/IEC 14496-10 et Rec. H.264 Advanced Video Coding 1998-2001: ISO MPEG7 – Multimedia Content description Interface: description du contenu des flux multimédia.
Bases de l’architecture des standards MPEG1, MPEG2 MPEG = « Motion Picture Expert Group » Standards MPEG1 et MPEG2 (ainsi que les normes H.261, H. 263, H.264) sont conçus selon les mêmes principes fondamentaux : Vidéo : - codage hybride : spatial et temporel avec la compensation du mouvement; - codage spatial : TCD, quantification, codage entropique appliqué à l’image d’origine ou au signal d’erreur . - prédiction par compensation du mouvement basée bloc (ou macro-bloc). MPEG1 vidéo : débit cible : 1,5 Mbit/sec MPEG2 vidéo : 2-15 Mbit/sec voir plus (TVHD) Les standards spécifient l’architecture du train binaire et les décodeurs, mais ne spécifient pas les méthodes de génération des trains binaires. Compatibilité descendante entre MPEG2 et MPEG1 : le décodeur MPEG2 décode le train binaire MPEG1.
Spécifications MPEG1, MPEG2 Trois composants des standards - Vidéo; - Audio; - Système (le système de multiplexage) Encodeur vidéo Multi-plexeur Et encodeur système Source Vidéo Encodeur audio Source Audio Horloge système
Schéma générique des codeurs MPEG1,2 Vers VLC + TCD Q Décodage - t=0? + Image précédente Prédiction par mvt Estimation du mvt Décodage Codage du mouvement - Signal d’erreur -Vecteurs de déplacement - Image d’origine - Image codée et décodée
Structure d’une séquence vidéo (I) Base : GOP = « group of pictures » I – « intra-coded» - codage spatial type JPEG P – « predictive-coded », « forward predicted » par compensation du mouvement à partir de l’image de référence précédente B – bidirectionnaly predictive coded (par rapport au passé et /ou futur) N – la distance entre deux images I sucessives = longueur d’un GOP M – la distance entre deux images de référence (anchor frames) I-P ou P-P - paramètrable
Structure d’une séquence vidéo (II) Valeurs typiques : (1) N = 12 ou 15 = 0,5 sec pour Pal/SECAM et NTSC respectivement (2) M=1 -> absence des images B M=1,2,3 Les images B assurent des taux de compression plus importants Ordre d’affichage et d’encodage d’un GOP
Structure d’une séquence vidéo (III) Règles de composition d’un GOP (1) Dans l’ordre d’encodage, ou dans le train binaire, la première image dans un GOP est toujours une image I (2)Dans l’ordre d’affichage ( à la sortie du décodeur), la première image peut être soit I, soit la première image B dans la série des images B juste avant la première image I (3) La dernière image dans un GOP est toujours soit I soit P (4) Le premier GOP dans une vidéo commence toujours avec une image I.
Exemples MPEG1 7ips, N=12, M=3 MPEG1 25 ips, N=12, M=3 SFRS, « De l’arbre à l’ouvrage »
Structure hiérarchique du train binaire des standards MPEG1,2 Le train binaire des standards MPEG1,2 est organisé de façon hiérarchique en ensemble de niveaux (layers). Layer = layer header + layer data. Ensemble des niveaux 1. Séquence : Sequence layer 2. GOP : GOP layer 3. Image : Picture layer 4. Couche : Slice layer 5. Macro- Bloc: MB layer 6. Bloc: Block layer
Structure hiérarchique d’une séquence vidéo Sequence GOP Picture Slice MB (16x16) Block 8x8
Propagation de l’erreur en MPEG1 Limitations de la propagation spatiale : chaque « slice » est encodé indépendamment des autres Limitations de la propagation temporelle si l’erreur est observée sur une image B, alors elle est limitée à cette image si l’erreur est observée sur une image I, alors elle peut se propager uniquement dans le GOP courant. IBBPBBPBBPBBI si l’erreur est observée sur une image P, elle peut se propager uniquement jusqu’à la fin du GOP courant. Codage indépendant Erreur Erreur
Codage inter/intra-frame par macro-bloc (I) Sequence GOP Picture Slice MB (16x16) Block 8x8 Dans notre centre d’intérêt !
Codage inter/intra-frame par macro-bloc (II) I. Images P Modes de codage : inter-frame, intra-frame Inter-frame : - codage du vecteur de déplacement V - codage de l’erreur de compensation Image de référence Image P courante
Codage des images P mode Inter-frame Image de référence Image P courante Vecteurs de déplacement, (distance IP M=3), SFRS, « Aquaculture en Méditerranée »
Exemples -MPEG2, M-blocs 16x16
Codage des vecteurs de déplacement Les vecteurs de déplacement en MPEG1et 2 sont encodés à la précision de 0,5 pixels. En MPEG1 les vecteurs de déplacement sont limités : forward search window: -11...11 / -11...11 forward vector range: -16...15.5 / -16...15.5
Types des MB dans les images P en mode Inter-Image Par rapport au : - compensation du mouvement - codage de l’erreur de compensation du mouvement (1) Motion compensated (MC) : - erreur peut être codé; - non-codée (2) No-motion compensated (No MC) - pas de compensation et de codage d’erreur (« skipped ») – le block est directement récupéré de l’image de référence précédente: - pas de codage du mouvement, mais uniquement l’erreur; Ces modes sont désignées par des bit-flags dans l’entête des MB.
Les MB « skipped » Image P ou I de référence Image P courante Prediction « forward » sans compensation du mouvement D’après MPEG2 FAQ C. Fogg, Univ. de Berkeley
Codage en mode Intra dans les images P b) Codage des MB en « Intra » Décomposition en blocs 8x8 pixels - Codage du signal YUV (intra) - Mais aussi : Codage du signal d’erreur (inter) Algorithme de codage : ~JPEG
Exemple du codage P-frame (MPEG1) Hiragasy, SFRS picture statistics: # of intra coded macroblocks: 229 (14.1%) # of coded blocks: 2093 (21.5%) # of not coded macroblocks: 277 (17.1%) # of skipped macroblocks: 829 (51.2%) # of forw. pred. macroblocks: 509 (31.4%) # of backw. pred. macroblocks: 0 (0.0%) # of interpolated macroblocks: 0 (0.0%) Pour image 64 dans le flux
Cartes des MB de la scène 2 skipped
Variation du nombre des blocs codés « Intra » dans les images P Changement de plan Aquaculture en Méditerranée, SFRS..\2005_2006\MPEG1-2\aqua2_21.mpg
Codage inter/intra-frame par macro-bloc (III) II. Images B Modes de codage : inter-frame, intra-frame a) Inter-frame : - 3 possibilités de sélection du meilleur vecteur Image de référence précédente (I ou P) A Image B courante C
Types des MB dans les images B en mode Inter-Image (1) Motion compensated (MC) : - par le passé « forward-predicted »: compensation par blocA - par le futur « backward – predicted »: compensation par block C - bi-directionnel « interpolated » : et compensation par (bloc A + bloc C)/2 Codage d’erreur - pas de codage; - codage (2) Pas de compensation du mouvement Intra- image d’origine Inter – pas de codage : skipped
Exemple des statistiques des MBs B-frame Image B : 63 du clip Hiragasy picture statistics: # of intra coded macroblocks: 120 (7.4%) # of coded blocks: 1494 (15.4%) # of not coded macroblocks: 1016 (62.7%) # of skipped macroblocks: 157 (9.7%) # of forw. pred. macroblocks: 615 (38.0%) # of backw. pred. macroblocks: 404 (24.9%) # of interpolated macroblocks: 481 (29.7%) « Skipped » MB dans les images B-frames : quand le vecteur de déplacement est le même que pour le bloc précédemment codé dans la même image
Codage des images I et de l’erreur de compensation du mouvement (I) Les macros-blocs dans les images I sont tous codées en mode intra –image par blocs de 8x8 pixels - « Intra-macroblocs ». Les macros-blocs dans les images P et B codés en mode intra –image sont codés de même façon. Les macros-blocs codés en mode « inter » avec l’erreur de compensation de mouvement sont codés avec le même algorithme, mais avec une matrice de quantification spécifique (Test Model 5, 1993). Algorithme de codage : similaire au JPEG.
Algorithme de codage TCD Quantification Balayage Zig-Zag CULV bloc 8x8 (1) W - matrice de quantification (2) manquant - pas de quantification, défini pas le méchanisme du contrôle de débit, propre à chaque macrobloc. Quantification Balayage Zig-Zag CULV
Quantification des blocs Intra (MPEG1) (I) DC AC Précision initiale des coefficients DC : 11 bits Quantification sur 8, 9 et 10 bits 8-bit : QDC = dc//8 9-bit : QDC = dc//4 10-bit : QDC = dc//2 // - division entière avec arrondi
Images « DC »
Quantification des blocs Intra (II) Coefficients ac : Valeurs avec le pas de quantification par bloc p3, q=4 Matrice de quantification des blocs intra
Quantification des blocs en mode inter-image Particularités : la matrice de quantification pour le « non-intraquantizer » est plus « plate ». C’est le signal d’erreur qui est quantifié et donc la distribution de l’énergie dans les coefficients DCT est plus uniforme Matrice de quantification des blocs intra
Formats d’entrée MPEG1 et applications MPEG1 est destiné aux formats progressifs et au stockage local ( CD ROM, DD). Les mécanismes de protection contre les erreurs de transmission ne sont pas suffisamment développés. Formats d’entrée : SIF 625 352x288 ou SIF 525 (352x240) Chroma : 4:2:0 - valeur Y - valeurs Cr,Cb