Normes de codage vidéo
Transcription
Normes de codage vidéo
Institut Mines-Telecom Normes de codage vidéo Marco Cagnazzo Compression d’images et vidéo MPEG H.264 HEVC et 3DVC Plan La famille MPEG MPEG-1 MPEG-2 MPEG-4 H.264 et extensions H.264/AVC Définitions et schéma Nouveaux modes et outils Profils et niveaux Optimisation, performances, NAL Extensions : H.264/SVC HEVC et 3DVC 2/146 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC Les standards vidéo : chronologie 1980 1990 2000 2010 H.263++ H.261 H.263 H.263+ H.264/AVC H.264/SVC MPEG−4 p.10 MPEG−2 H.262 3/146 26.11.14 ISO/IEC 3D−VC HEVC MPEG−4 MPEG−1 ITU−T H.264 /MVC Joint Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC 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 4/146 ◮ 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 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC Scope des standards Bitstream Video Source Pre−processing Encoding (video) Channel Storage Receiver Post−processing Video Bitstream Decoding (video) Scope of standard 5/146 ◮ 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 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC MPEG-1 MPEG-2 MPEG-4 Plan La famille MPEG MPEG-1 MPEG-2 MPEG-4 H.264 et extensions HEVC et 3DVC 6/146 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC MPEG-1 MPEG-2 MPEG-4 Le standard MPEG-1 ◮ ◮ Développé en 1988-1992 Parties du standard 1. 2. 3. 4. 5. 7/146 26.11.14 Systèmes Video Audio Conformance test Software simulation Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC MPEG-1 MPEG-2 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 8/146 ◮ Types d’images ◮ ME/MC à précision sous-pixelique 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC MPEG-1 MPEG-2 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 9/146 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC MPEG-1 MPEG-2 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 Gop n 10/146 26.11.14 Institut Mines-Telecom B I B B P Gop n+1 Normes de codage vidéo MPEG H.264 HEVC et 3DVC MPEG-1 MPEG-2 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 Gop n 11/146 26.11.14 Institut Mines-Telecom B I B B P Gop n+1 Normes de codage vidéo MPEG H.264 HEVC et 3DVC MPEG-1 MPEG-2 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 Gop n 12/146 26.11.14 Institut Mines-Telecom B I B B P Gop n+1 Normes de codage vidéo MPEG H.264 HEVC et 3DVC MPEG-1 MPEG-2 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 Gop n 13/146 26.11.14 Institut Mines-Telecom B I B B P Gop n+1 Normes de codage vidéo MPEG H.264 HEVC et 3DVC MPEG-1 MPEG-2 MPEG-4 Standard MPEG-1 Ordre de codage des trames I → AF → Trames B → AF → Trames B . . . Retard ? B I B B P B B 26.11.14 Institut Mines-Telecom B I P Gop n 14/146 B Details B P Gop n+1 Normes de codage vidéo Base MPEG H.264 HEVC et 3DVC MPEG-1 MPEG-2 MPEG-4 Standard MPEG-1 ME/MC à précision sous-pixelique 15/146 ◮ 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 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC MPEG-1 MPEG-2 MPEG-4 Standard MPEG-1 ME/MC à précision sous-pixelique v=(5,3) 16/146 26.11.14 Institut Mines-Telecom v=(5.5,2.5) Normes de codage vidéo MPEG H.264 HEVC et 3DVC MPEG-1 MPEG-2 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 17/146 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC MPEG-1 MPEG-2 MPEG-4 Le standard MPEG-2 ◮ ◮ Développé en 1990-1994 Parties du standard 1. 2. 3. 4. 5. 18/146 Systèmes Video Audio Conformance test 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 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC MPEG-1 MPEG-2 MPEG-4 Standard MPEG-2 19/146 ◮ Codeur hybride ◮ Débit ≤ 15 Mbps (HDTV) ◮ Profils et niveaux ◮ Support à la vidéo entrelacée ◮ Support à la scalabilité 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC MPEG-1 MPEG-2 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 Niveau Low Main High-1440 High width [pixel] 352 720 1440 1920 Profil Simple Main SNR scalable Spatial scalable High 20/146 26.11.14 height [pixel] 288 576 1152 1152 frame rate [frame/s] 30 30 60 60 bit rate [Mbps] 4 15 60 80 fonctionnalités Pas de scalabilité; vidéo entrelacée; pas de trames B Simple + Trames B Main + Deux/trois niveaux de scalabilité en qualité SNR + Deux/trois niveaux de scalabilité en résolution Space + Chroma sur-échantillonnée Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC MPEG-1 MPEG-2 MPEG-4 Standard MPEG-2 Profils et niveaux Seulement certaines couples profil/niveau sont admissibles Niveau Low Main High-1440 High 21/146 26.11.14 Simple • Main • • • • Institut Mines-Telecom Profil SNR scalable • • Spatial scalable High • • • • Normes de codage vidéo MPEG H.264 HEVC et 3DVC MPEG-1 MPEG-2 MPEG-4 Standard MPEG-2 Scalabilité Encode once, decode many! ◮ Train binaire formé par : ◮ ◮ 22/146 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 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC MPEG-1 MPEG-2 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 Qualité sequence déecodé Codeur scalable, deux layers à 400 et 800kbps Bande disponible sur le canal 23/146 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC MPEG-1 MPEG-2 MPEG-4 Scalabilité :exemple Distribution de la vidéo sans scalabilité 24/146 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC MPEG-1 MPEG-2 MPEG-4 Scalabilité :exemple Distribution de la vidéo avec scalabilité 25/146 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC MPEG-1 MPEG-2 MPEG-4 Standard MPEG-2 Scalabilité en SNR : codeur f e DCT eB QB VLC QB∗ QE VLC QE∗ IDCT MC ◮ ◮ ◮ ◮ 26/146 Frame Buffer efE eE bfE Raffinement des coefficients DCT Drift : décodeur à niveau base désynchronisé Bonne qualité du niveau enhanced Qualité du niveau base pas toujours satisfaisante 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC MPEG-1 MPEG-2 MPEG-4 Standard MPEG-2 Scalabilité en SNR : décodeur VLD QE∗ VLD QB∗ IDCT MC MV 27/146 Frame Buffer ◮ Pas de contrôle du drift ◮ Un seul champ de vecteurs de mouvement 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC MPEG-1 MPEG-2 MPEG-4 Standard MPEG-2 Scalabilité en résolution : codeur eE x QE DCT VLC ↓2 QE∗ IDCT W MC eB eE Frame Buffer efE b fE QB DCT VLC QB∗ ↑2 IDCT MC Frame Buffer efB ebq bfB efB 28/146 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC MPEG-1 MPEG-2 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 : ◮ ◮ ◮ ◮ 29/146 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 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC MPEG-1 MPEG-2 MPEG-4 Standard MPEG-2 Scalabilité en résolution : décodeur VLD QE∗ efE IDCT bfE W Frame Buffer MC ↑2 VLD QB∗ IDCT MC 30/146 26.11.14 Institut Mines-Telecom efB bfB Frame Buffer Normes de codage vidéo MPEG H.264 HEVC et 3DVC MPEG-1 MPEG-2 MPEG-4 Standard MPEG-2 Scalabilité en résolution : décodeur 31/146 ◮ 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 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC MPEG-1 MPEG-2 MPEG-4 Standard MPEG-2 Scalabilité en temps B I B B P B B 26.11.14 Institut Mines-Telecom B I P Gop n 32/146 B Détails B P Gop n+1 Normes de codage vidéo Base MPEG H.264 HEVC et 3DVC MPEG-1 MPEG-2 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é 33/146 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC MPEG-1 MPEG-2 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é 34/146 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC MPEG-1 MPEG-2 MPEG-4 Standard MPEG-2 Data partitioning 35/146 ◮ 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) 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC MPEG-1 MPEG-2 MPEG-4 Le standard MPEG-4 ◮ ◮ Développé en 1993-1998 Parties du standard ◮ ◮ ◮ 36/146 26.11.14 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 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC MPEG-1 MPEG-2 MPEG-4 Standard MPEG-4 Fonctionnalités ◮ ◮ Codeur hybride Interactivité ◮ ◮ ◮ ◮ Compression ◮ ◮ ◮ Performance de compression améliorée Codage de flux données en parallèle (stéréo TV) Accès universel ◮ ◮ 37/146 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é 26.11.14 Robustesse en environnement bruité Scalabilité basée objet Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC MPEG-1 MPEG-2 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) ◮ ◮ 38/146 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 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC MPEG-1 MPEG-2 MPEG-4 Standard MPEG-4 Audiovisual scene Synthetic BG Still Image AV scene Audio object Visual object AV object 39/146 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC MPEG-1 MPEG-2 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) 40/146 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC MPEG-1 MPEG-2 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 41/146 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC MPEG-1 MPEG-2 MPEG-4 Standard MPEG-4 Codage par sprites et VO 42/146 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC MPEG-1 MPEG-2 MPEG-4 Standard MPEG-4 Scalabilité 43/146 ◮ 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 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC MPEG-1 MPEG-2 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 44/146 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC H.264/AVC Extensions : H.264/SVC Plan La famille MPEG H.264 et extensions H.264/AVC Définitions et schéma Nouveaux modes et outils Profils et niveaux Optimisation, performances, NAL Extensions : H.264/SVC HEVC et 3DVC 45/146 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC H.264/AVC Extensions : H.264/SVC Le standard H.264/AVC 46/146 ◮ 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 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC H.264/AVC Extensions : H.264/SVC Objectives ◮ But : optimiser les performance débit-distorsion ◮ Jusqu’à -60% de débit pour la même qualité par rapport à MPEG-2 Applications : ◮ ◮ ◮ ◮ ◮ ◮ 47/146 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 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC H.264/AVC Extensions : H.264/SVC Structure de H.264 ◮ L’efficacité de la transmission dans des environnements différents dépend : ◮ ◮ ◮ ◮ 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 ◮ ◮ 48/146 de l’efficacité de la compression ; et de l’intégration avec les protocoles de transport. 26.11.14 Video Coding Layer (VCL) Network Adaption Layer (NAL) Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC H.264/AVC Extensions : H.264/SVC Structure de H.264 Video Coding Layer Network Abstraction Layer Transport layer H.320 MP4FF Wired Network 49/146 26.11.14 Institut Mines-Telecom H.324/M MPEG−2 RTP/IP Wirless Network Normes de codage vidéo MPEG H.264 HEVC et 3DVC H.264/AVC Extensions : H.264/SVC VCL et NAL ◮ VCL fournit des outils performants pour la compression ◮ ◮ ◮ NAL permet l’adaptation au différents types de transport ◮ ◮ 50/146 Intra-prediction, variable-size ME/MC, in-loop filtering, CABAC, etc. Profiles et niveaux 26.11.14 Packet switched transport (RTP/IP, TCP/IP, . . .) vs. circuit switched transport (MPEG-2, H.320, . . .) Streaming vs. storage Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC H.264/AVC Extensions : H.264/SVC Représentation de la vidéo ◮ Entrée : vidéo numérique en format YCbCr (équivalent à YUV) ◮ Luma et Chroma Échantillonnage : 4 : 2 : 0 ◮ ◮ 51/146 26.11.14 Cela correspond à la sensibilité différente du SVH à Luma et Chroma Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC H.264/AVC Extensions : H.264/SVC 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 : ◮ ◮ ◮ 52/146 26.11.14 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 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC H.264/AVC Extensions : H.264/SVC 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 53/146 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC H.264/AVC Extensions : H.264/SVC Les slices ◮ ◮ Normalement une slice correspond à une image Cinq types de slices existent : ◮ ◮ ◮ ◮ 54/146 26.11.14 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 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC H.264/AVC Extensions : H.264/SVC Codage par frame ou field Top 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 : ◮ ◮ 55/146 Bottom field 26.11.14 À niveau d’image (P-AFF) À niveau de macroblock (MB-AFF) Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC H.264/AVC Extensions : H.264/SVC Pictures et Sequences dans H.264 56/146 ◮ 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 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC H.264/AVC Extensions : H.264/SVC Rappel : schéma du codeur hybride Control JPEG coder ek fk DCT Q VLC Channel Buffer Q* bfk ME IDCT MV MC 57/146 26.11.14 Institut Mines-Telecom Frame Buffer ek efk bfk Normes de codage vidéo MPEG H.264 HEVC et 3DVC H.264/AVC Extensions : H.264/SVC Schéma du codeur H.264 Control ek fk DCT 4x4 CABAC/ CAVLC Q Channel Buffer Q* bfk ME IDCT MV Intra/Inter Intra Prediction MC 58/146 26.11.14 Institut Mines-Telecom Frame Buffer Deblocking Filter ek efk bfk Normes de codage vidéo MPEG H.264 HEVC et 3DVC H.264/AVC Extensions : H.264/SVC Nouveaux modes de codage 59/146 ◮ Modes Intra ◮ Modes Inter ◮ Modes Skip et Direct 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC H.264/AVC Extensions : H.264/SVC Modes Intra avec prédiction spatiale Prédiction sur des blocs 16x16 (régions uniformes), 4 types de prédiction: 60/146 26.11.14 horizontale verticale moyenne plane prediction Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC H.264/AVC Extensions : H.264/SVC Modes Intra avec prédiction spatiale Prédiction sur des blocs 4x4 (détails), 9 types de prédiction: 8 directions et moyenne 8 1 6 3 4 7 0 5 Directions 61/146 26.11.14 Mode 0 Mode 1 Mode 3 Mode 4 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC H.264/AVC Extensions : H.264/SVC 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 62/146 26.11.14 Institut Mines-Telecom 16x8 8x16 8x8 8x4 4x8 4x4 Normes de codage vidéo MPEG H.264 HEVC et 3DVC H.264/AVC Extensions : H.264/SVC Estimation du mouvement Exemple de partition avec bloc à taille variable 63/146 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC H.264/AVC Extensions : H.264/SVC 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 E 64/146 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC H.264/AVC Extensions : H.264/SVC Compensation du mouvement 65/146 ◮ 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 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC H.264/AVC Extensions : H.264/SVC Slices de type B 66/146 ◮ 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 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC H.264/AVC Extensions : H.264/SVC Compensation du mouvement Références multiples Références 67/146 26.11.14 Institut Mines-Telecom Image à coder Normes de codage vidéo MPEG H.264 HEVC et 3DVC H.264/AVC Extensions : H.264/SVC Modes Skip et Direct ◮ Skipped MB : c’est comme un MB prédictif pour lequel on utilise ◮ ◮ 68/146 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 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC H.264/AVC Extensions : H.264/SVC Nouveaux outils de codage 69/146 ◮ Filtre de de-blocking ◮ Nouvelle transformée ◮ Codeurs sans perte : CAVLC et CABAC ◮ Outils pour le changement de flux (switch) ◮ Outils pour la robustesse 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC H.264/AVC Extensions : H.264/SVC Filtre de de-blocking ◮ ◮ Problème : effet de bloc à bas débit Cause : codage indépendant des bloc Motion−compesated image 70/146 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC H.264/AVC Extensions : H.264/SVC Filtre de de-blocking ◮ Solution 1 : post-filtering ◮ ◮ ◮ ◮ Solution 2 : in-loop filtering ◮ ◮ ◮ ◮ 71/146 N’affecte pas le codage (frame buffer) Non normatif, maximum de liberté Besoin de mémoire supplémentaire 26.11.14 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 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC H.264/AVC Extensions : H.264/SVC 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 72/146 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC H.264/AVC Extensions : H.264/SVC Filtre de de-blocking Analyse de la discontinuité Block edge 73/146 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC H.264/AVC Extensions : H.264/SVC Filtre de de-blocking ◮ ◮ Réduit les discontinuités entre blocs 4 × 4 adjacents Le filtre est adapté à : ◮ ◮ ◮ 74/146 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) 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC H.264/AVC Extensions : H.264/SVC Nouvelle transformée ◮ Transformée sur des blocs 4x4 ◮ ◮ Approximation de la TCD, à coefficients entiers ◮ ◮ ◮ ◮ 75/146 Parfaite synchronisation codeur/décodeur Coefficients : 0, ±1, ±2 → implémentation par bit-shift et somme/ soustraction Deuxième niveau de transformée ◮ ◮ La meilleure prédiction réduit la corrélation spatiale 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 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC H.264/AVC Extensions : H.264/SVC Ordre de codage et quantification ◮ ◮ ◮ ◮ 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 ◮ 76/146 Les coefficients DC-Luma des 16 blocs 4x4 d’un MB sont envoyés en premier En suite les AC-Luma 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC H.264/AVC Extensions : H.264/SVC Codage sans perte ◮ Deux techniques sont supportées ◮ ◮ 77/146 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 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC H.264/AVC Extensions : H.264/SVC Codage a longueur variable adapté au contexte (CAVLC) 78/146 ◮ 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 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC H.264/AVC Extensions : H.264/SVC 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 ◮ ◮ 79/146 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 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC H.264/AVC Extensions : H.264/SVC Robustesse aux erreurs : concepts généraux ◮ Mitiger la propagation des erreurs ◮ ◮ ◮ Rendre facile la récupération de synchronisation ◮ ◮ ◮ Utilisation de marqueurs de synchronisation Marker emulation prevention Limiter l’impact visuel des erreurs ◮ ◮ 80/146 Protection inégal (entêtes mieux protégés) Limitation aux modes prédictifs 26.11.14 Reconnaître les images erronées Afficher un image précédente plutôt que un’image erronée (concealing) Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC H.264/AVC Extensions : H.264/SVC Robustesse dans H.264 81/146 ◮ Flexible Macroblock Ordering ◮ Redundant Picture ◮ Data Partitioning ◮ Images de synchronisation et switching (SI et SP) 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC H.264/AVC Extensions : H.264/SVC Flexible macroblock ordering Slice group 0 82/146 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 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC H.264/AVC Extensions : H.264/SVC Redundant picture 83/146 ◮ 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 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC H.264/AVC Extensions : H.264/SVC 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 84/146 ◮ 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 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC H.264/AVC Extensions : H.264/SVC Profils et niveaux Il est possible de définir profils et niveaux avec une énorme variété 85/146 ◮ Sept profils (Baseline, Extended, Main, High, High10, High4:2:2, High 4:4:4) ◮ 16 niveaux qui peuvent être combinés avec les profiles. 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC H.264/AVC Extensions : H.264/SVC Profils Extended SI/SP slices I&P Slices FMO 1/4 Pel MC Redundant Pictures ASO High Main Baseline Multiple Reference Frames Intra Prediction Variable Block Sizes Weighted Prediction 8x8 Transform Advanced Quantization CABAC CAVLC B Slices In−Loop Deblocking MB−AFF Filter Field coding B/W video Data Partitioning 86/146 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC H.264/AVC Extensions : H.264/SVC Profils 87/146 ◮ 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 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC H.264/AVC Extensions : H.264/SVC Niveaux 88/146 ◮ 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) 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC H.264/AVC Extensions : H.264/SVC Optimisation de l’estimation du mouvement Attention : procédé non normatif 89/146 ◮ 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 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC H.264/AVC Extensions : H.264/SVC 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) ◮ ◮ 90/146 26.11.14 D : distorsion du MB décodé en mode k (prédiction, transformée, quantification) R : débit du mode k (signalisation + MV + résidu) Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC H.264/AVC Extensions : H.264/SVC H.264 – Exemples d’images décodées MPEG-2 91/146 26.11.14 Institut Mines-Telecom H.264 Normes de codage vidéo MPEG H.264 HEVC et 3DVC H.264/AVC Extensions : H.264/SVC H.264 – Exemples d’images décodées Motion JPEG2000 92/146 26.11.14 Institut Mines-Telecom H.264 Normes de codage vidéo MPEG H.264 HEVC et 3DVC H.264/AVC Extensions : H.264/SVC H.264 – Exemples d’images décodées MPEG-2 93/146 26.11.14 Institut Mines-Telecom H.264 Normes de codage vidéo MPEG H.264 HEVC et 3DVC H.264/AVC Extensions : H.264/SVC H.264 – Exemples d’images décodées Motion JPEG2000 94/146 26.11.14 Institut Mines-Telecom H.264 Normes de codage vidéo MPEG H.264 HEVC et 3DVC H.264/AVC Extensions : H.264/SVC Performance H.264 Effet de la structure du GOP 44 43 PSNR − dB 42 41 40 IPPP I−B−P−B−P I−B−B−P−B−B−P I−B−B−B−P−B−B−B−P 39 38 400 95/146 26.11.14 600 800 1000 1200 Rate − kbps Institut Mines-Telecom 1400 1600 1800 Normes de codage vidéo MPEG H.264 HEVC et 3DVC H.264/AVC Extensions : H.264/SVC 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 42 10 41 40 PSNR − dB Coding rate − bits 5 10 I P 4 I P 39 38 10 37 3 10 96/146 0 26.11.14 20 40 60 Frame number 80 Institut Mines-Telecom 100 120 36 0 20 40 60 Frame number Normes de codage vidéo 80 100 120 MPEG H.264 HEVC et 3DVC H.264/AVC Extensions : H.264/SVC 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 44 10 43 42 41 PSNR − dB Coding rate − bits 5 10 I P B 40 39 4 10 38 I P B 37 3 10 97/146 0 26.11.14 20 40 60 Frame number 80 Institut Mines-Telecom 100 120 36 0 20 40 60 Frame number Normes de codage vidéo 80 100 120 MPEG H.264 HEVC et 3DVC H.264/AVC Extensions : H.264/SVC 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 45 10 44 43 42 10 PSNR − dB Coding rate − bits 5 I P B 41 40 39 4 10 38 37 I P B 36 3 10 98/146 0 26.11.14 20 40 60 Frame number 80 Institut Mines-Telecom 100 120 35 0 20 40 60 Frame number Normes de codage vidéo 80 100 120 MPEG H.264 HEVC et 3DVC H.264/AVC Extensions : H.264/SVC 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 45 10 44 43 42 10 PSNR − dB Coding rate − bits 5 I P B 41 40 39 4 10 38 37 I P B 36 3 10 99/146 0 26.11.14 20 40 60 Frame number 80 Institut Mines-Telecom 100 120 35 0 20 40 60 Frame number Normes de codage vidéo 80 100 120 MPEG H.264 HEVC et 3DVC H.264/AVC Extensions : H.264/SVC NAL units 100/146 ◮ 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 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC H.264/AVC Extensions : H.264/SVC Type de NALU par contenu ◮ ◮ VCL NALU (modes, vecteurs, résidus) Non-VCL NALU (header, parameter sets) ◮ ◮ 101/146 Parameter set pour image et pour sequence On peut appliquer l’UEP 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC H.264/AVC Extensions : H.264/SVC Access unit Start Acces unit delimiter ◮ Une access unit (AU) produit une image ◮ Une video sequence est une suite de AUs ◮ Au début d’une séquence vidéo il y a une image IDR (instantaneous decoding refresh) ◮ Un NALU stream peut contenir une ou plusieurs video sequences SEI Primary coded picture Redundant coded picture End of sequence End of stream End 102/146 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC H.264/AVC Extensions : H.264/SVC Le standard H.264/SVC Scalable Video Coding 103/146 ◮ 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 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC H.264/AVC Extensions : H.264/SVC Le standard H.264/SVC Scalabilité temporelle 104/146 ◮ 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 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC H.264/AVC Extensions : H.264/SVC Le standard H.264/SVC Scalabilité temporelle : structure hiérarchique 7 6 5 8 4 3 2 1 0 105/146 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC H.264/AVC Extensions : H.264/SVC Le standard H.264/SVC Scalabilité temporelle : structure non-dyadique 4 6 5 2 7 8 9 3 0 106/146 26.11.14 Institut Mines-Telecom Normes de codage vidéo 1 MPEG H.264 HEVC et 3DVC H.264/AVC Extensions : H.264/SVC Le standard H.264/SVC Scalabilité temporelle : structure sans retard 5 3 1 2 7 6 4 8 0 107/146 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC H.264/AVC Extensions : H.264/SVC 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 ◮ 108/146 Meilleurs résultats si le retard est admis 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC H.264/AVC Extensions : H.264/SVC Scalabilité en résolution : codeur Schéma pyramidale eE x QE DCT VLC ↓2 QE∗ IDCT W MC eB Frame Buffer eE efE b fE QB DCT VLC QB∗ ↑2 IDCT MC Frame Buffer ebq efB bfB efB 109/146 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC H.264/AVC Extensions : H.264/SVC 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 : ◮ ◮ ◮ ◮ 110/146 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 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC H.264/AVC Extensions : H.264/SVC Scalabilité en résolution : décodeur Schéma pyramidale VLD QE∗ efE IDCT bfE W Frame Buffer MC ↑2 VLD QB∗ IDCT bfB MC 111/146 26.11.14 Institut Mines-Telecom efB Frame Buffer Normes de codage vidéo MPEG H.264 HEVC et 3DVC H.264/AVC Extensions : H.264/SVC Scalabilité en résolution : décodeur Schéma pyramidale 112/146 ◮ 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 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC H.264/AVC Extensions : H.264/SVC Le standard H.264/SVC Scalabilité spatiale ◮ ◮ Schéma pyramidale (comme dans MPEG-2) Nouveauté technique : la prédiction inter-layer ◮ ◮ ◮ ◮ 113/146 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 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC H.264/AVC Extensions : H.264/SVC Le standard H.264/SVC Scalabilité spatiale et temporelle 114/146 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC H.264/AVC Extensions : H.264/SVC Le standard H.264/SVC Scalabilité en qualité 115/146 ◮ Coarse grain scalability ◮ Medium grain scalability 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC H.264/AVC Extensions : H.264/SVC Le standard H.264/SVC Scalabilité en qualité : CGS 116/146 ◮ 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) 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC H.264/AVC Extensions : H.264/SVC Le standard H.264/SVC Scalabilité en qualité : MGS 117/146 ◮ 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 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC H.264/AVC Extensions : H.264/SVC Le standard H.264/MVC Multiview Video Coding 118/146 ◮ Extension multi-vues de H.264/AVC ◮ Juin 2009 : finalisation du profile High Stereo, utilisé en Blu-ray3D ◮ MPEG+VCEG ◮ Codeur hybride : prédiction temporelle et inter-vues ◮ Extension multi-vues de H.264 : compatibilité à l’arrière 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC H.264/AVC Extensions : H.264/SVC Le standard H.264/MVC Objectifs 119/146 ◮ Vidéo stéréoscopique (deux vues) ◮ Free viewpoint television ◮ Vidéo 3D multi-vues 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC H.264/AVC Extensions : H.264/SVC Le standard H.264/MVC Dépendances de codage 120/146 ◮ Il faut organiser les trames B de H.264 ◮ La prédiction est faite à partir d’une image de la même vu ou du même instant I B B B B B B B I B B B B B B B B B B B P B B B B B B B P B B B B B B B B B B B P B B B B B B B P B 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC Plan La famille MPEG H.264 et extensions HEVC et 3DVC 121/146 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC High Efficiency Video Coding ◮ Joint ISO/ITU-T standard ◮ ◮ ◮ Objectifs : les mêmes que H.264, plus : ◮ ◮ ◮ ◮ 122/146 MPEG-H Part 2 (ISO/IEC 23008-2) ITU-T H.265 Très haute résolution Codage parallèle Performances de compression améliorées Encore un codeur hybride avec prédiction temporelle et spatiale 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC High Efficiency Video Coding 123/146 ◮ Call for Evidence : Avril 2009 ◮ Joint Collaborative Team on Video Coding (JVT-VC) : Jan. 2010 ◮ Call for Proposal : Jan. 2010 ◮ Tests subjectifs jusqu’à Avril 2010 ◮ Test Model under Consideration : Avril 2010 ◮ HEVC Test Model v1 (HM 1.) : Juillet 2010 ◮ Final Draft International Standard : Jan. 2013 ◮ HM 10.0 Avril 2013 ◮ En parallèle : norme de codage 3D en évolution (3D-VC) 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC HEVC: schéma général Transf. Q CABAC Q* ME IDCT MV Intra/Inter Intra Prediction MC 124/146 26.11.14 Institut Mines-Telecom Deblocking & SAO Filter Frame Buffer Normes de codage vidéo MPEG H.264 HEVC et 3DVC Structures de données en HEVC 125/146 ◮ Séparation entre unité pour le codage, la prédiction et la transformée ◮ Units : ensemble de donnée affecté à une même région rectangulaire de la vidéo. ◮ Blocks : une “unit” correspond à un bloc de luminance et 2 blocs de chrominance ◮ L’élément fondamental de codage est la Coding Tree Unit (CTU) ◮ Chaque CTU est divisée en coding units (CU) ◮ Chaque CU est divisé en prediction units (PU) et en transform units (TU) 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC Coding tree units CTU 126/146 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC Coding units CTU CTU CU CU CU CU CU CU CU CU 127/146 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC Prediction units Tout niveaux Dernier niveau CU Intra PU PU PU PU PU PU PU PU PU PU PU PU CU PU PU PU Inter PU PU 128/146 26.11.14 Institut Mines-Telecom PU PU PU PU PU Normes de codage vidéo MPEG H.264 HEVC et 3DVC Transform units CU CU CU TU TU TU TU TU TU TU TU 129/146 26.11.14 Institut Mines-Telecom TU TU TU TU TU TU Normes de codage vidéo MPEG H.264 HEVC et 3DVC Codage Intra 130/146 ◮ 35 mode de codage Intra sont possible pour la luminance ◮ 33 directions + IntraDC + IntraPlanar ◮ Cela est indépendant de la taille du bloc (entre 4 × 4 et 32 × 32 ◮ Le codage du mode est fait en créant une liste de 3 modes probables (MPM, most probable modes) ◮ La création de la MPM est possible du coté du décodeur à l’identique ◮ Pour le PB chroma on peut choisir seulement entre Planar, V, H, DC et “Direct”, c’est à dire le même que luma ◮ Le mode chroma est codé directement (sans MPM) 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC Codage Inter 131/146 ◮ Taille des blocs variable, avec structures asymétriques possibles ◮ Comme dans H.264, la prédiction Inter peut être faite en utilisant des référence multiple dans une liste ◮ On a deux listes pour les slices de type B ◮ Le mode “merge” permet de partager l’information de mouvement entre PB voisins 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC High level syntax: slices 132/146 ◮ Les CTU peuvent être regroupées en slices ou en tiles ◮ Les slices sont formées par une suite de CTU en raster scan order ◮ Comme en H.264 les slices sont self-contained : la prédiction Intra ne se fait pas entre une slice et un autre ◮ Les slices sont de type I, P et B ◮ Le but principale des slices est de permettre la re-synchronisation après une perte de données 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC Partition d’une picture en slices CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU 1CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTUSlice CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU2 CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTUSlice CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU Slice n CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU 133/146 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC High level syntax: tiles 134/146 ◮ Les CTU peuvent aussi être regroupées en régions rectangulaires, les “tiles” ◮ Les tiles sont aussi “self-contained” ◮ Les tiles sont indépendantes des slices ◮ Les tiles ont comme objectif celui de permettre un niveau grossier de parallélisme (les tiles peuvent être décodées en parallèle) 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC Partition d’une picture en tiles CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU Tile 1 Tile 2 Tile 3 CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU Tile 4 Tile 5 Tile 6 CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU 135/146 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC Traitement par wavefront 136/146 ◮ Un dégrée plus fin de parallélisme peut être obtenu avec le wavefront parallel processing (WPP) ◮ Les slices sont divisées en lignes ◮ Le traitement d’une ligne peut commencer dès que les deux premières CTU de la ligne immédiatement supérieure est terminé ◮ Il y a toujours un retard minimum de 2 CTU entre deux lignes consécutives 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC Traitement par wavefront Wavefront CTU1 CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU Thread CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU Thread 2 CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU Thread 3 CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU Thread 4 CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU Thread 5 CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU CTU 137/146 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC Random access et bitstream splicing ◮ Le décodage d’une séquence HEVC peut commencer aux random access points (RAP) ◮ Un RAP peut être ◮ ◮ ◮ 138/146 26.11.14 Une image IDR : tout ce qui la suit dans le bitstream peut être décodé indépendamment du passé Une image CRA (clean random access) : elle est suivie dans le bit-stream par des images temporellement précédentes, éventuellement non décodables Une image BLA (broken link access) : on a coupe le bitstream à niveau d’un CRA et on la “renoué” (splicing) avec un autre bitstream Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC Structure du stream b2 I1 I1 b6 b4 B3 P5 IDR B3 b2 P5 b4 I9 B7 b10 b8 B7 b6 b8 P13 I9 B11 b10 b12 B11 b12 Trailing CRA RASL RASL RASL 139/146 26.11.14 Institut Mines-Telecom Normes de codage vidéo P13 MPEG H.264 HEVC et 3DVC Acronymes BLA Broken Link Acces CRA Clean Random Access IDR Instantaneous Decoding Refresh RADL Random Access Decodable Leading RAP Random Access Point RASL Random Access Skipped Leading 140/146 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC Performances débit-distorsion Comparaison des performances de codage 42 40 PSNR − dB 38 36 34 HEVC H.264 MPEG−2 M−JP2K 32 30 500 141/146 26.11.14 Institut Mines-Telecom 1000 1500 2000 rate − kbps 2500 3000 Normes de codage vidéo MPEG H.264 HEVC et 3DVC 3D Video Coding 142/146 ◮ Codage de vidéo multi-vues ◮ Codage de vidéo plus profondeur 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC 3D Video Coding : Use cases 3D Video Codec Depth Estimation Multiview Rendering Virtual View } } 3D Video Codec Output to Stereo Display Output to N−View Display Virtual Views Depth Estimation Multiview Rendering View Depth Standard Scope Reference Software Virtual view 143/146 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC 3D Video Coding : Tools ◮ ◮ Inter-view prediction Inter-component prediction ◮ 144/146 Héritage des modes / vecteurs de la texture à la profondeur ◮ View synthesis prediction ◮ View synthesis quality 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC 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. 145/146 26.11.14 Institut Mines-Telecom Normes de codage vidéo MPEG H.264 HEVC et 3DVC Conclusions MERCI DE VOTRE ATTENTION ! Questions ? Contact : [email protected] 146/146 26.11.14 Institut Mines-Telecom Normes de codage vidéo