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