Les standards H.264/AVC et HEVC



Documents pareils
Livrable 2.1 Rapport d analyse et de restructuration de code monothread des modules P, T, Q et F de l encodage MPEG-4 AVC

Codage hiérarchique et multirésolution (JPEG 2000) Codage Vidéo. Représentation de la couleur. Codage canal et codes correcteurs d erreur

ISO/CEI NORME INTERNATIONALE

Multimedia. Systèmes, Communications et Applications. Ahmed MEHAOUA

DEVANT L UNIVERSITE DE RENNES 1

M1 Informatique, Réseaux Cours 9 : Réseaux pour le multimédia

Groupe Eyrolles, 2000, 2004, ISBN :

Communications immersives : Enjeux et perspectives

Quantification Scalaire et Prédictive

Mesure agnostique de la qualité des images.

Codage vidéo par block matching adaptatif

2. Couche physique (Couche 1 OSI et TCP/IP)

Errata et mises à jour

Approche par marquage pour l évaluation de la qualité d image dans les applications multimédias

En DV (PAL ou NTSC), la largeur est toujours de 720 pixels, c'est la proportion du pixel qui change la proportion de l'image.

Technique de compression des images médicales 4D

Completed Projects / Projets terminés

Compression et Transmission des Signaux. Samson LASAULCE Laboratoire des Signaux et Systèmes, Gif/Yvette

Expérience 3 Formats de signalisation binaire

Formats d images. 1 Introduction

1 THALES Land & Joint Systems, EDS/SPM WaveForm Design group

Cours n 12. Technologies WAN 2nd partie

H.323. Internet Multimédia. Sommaire

Réseaux Multimédia et Qualité de Service

MASTER. Transmission Vidéo dans les Réseaux Sans Fils et Mobiles. Challenges et Solutions

Chapitre 1. Introduction aux applications multimédia. 1. Introduction. Définitions des concepts liés au Multimédia (1/2)

Transmission d informations sur le réseau électrique

كر اس الشروط الفني ة اخلاص ة

RTP et RTCP. EFORT

Limitations of the Playstation 3 for High Performance Cluster Computing

Comme chaque ligne de cache a 1024 bits. Le nombre de lignes de cache contenu dans chaque ensemble est:

Présent et futur dans la normalisation de la compression 3D

Plan. Programmation Internet Cours 3. Organismes de standardisation

Chaine de transmission

Transmission de données. A) Principaux éléments intervenant dans la transmission

Les Réseaux Informatiques

Chapitre 2 : communications numériques.

Traitement bas-niveau

Internet et Multimédia Exercices: flux multimédia

Aspects Systèmes de la norme MPEG-4

Efficace et ciblée : La surveillance des signaux de télévision numérique (2)

MCMC et approximations en champ moyen pour les modèles de Markov

Chapitre 18 : Transmettre et stocker de l information

QoS et Multimédia SIR / RTS. Introduction / Architecture des applications multimédia communicantes

Chapitre 1: Introduction générale

CST-RT021-part2:2013. Annexe CST-RT21-MFFS Spécification de format mezzanine pour films. Groupe de travail CST-RT021-MFFW

Chapitre 22 : (Cours) Numérisation, transmission, et stockage de l information

Numérisation du signal

Optimisation de la compression fractale D images basée sur les réseaux de neurones

Technique de codage des formes d'ondes

Enregistrement et transformation du son. S. Natkin Novembre 2001

Glossaire technique Veditec

UE 503 L3 MIAGE. Initiation Réseau et Programmation Web La couche physique. A. Belaïd

Projet de Traitement du Signal Segmentation d images SAR

Les Virtual LAN. F. Nolot. Master 1 STIC-Informatique 1

Réseau Global MIDI Note applicative

LA COUCHE PHYSIQUE EST LA COUCHE par laquelle l information est effectivemnt transmise.

Rappel: Le routage dans Internet. Contraintes. Environnement et contraintes. La décision dans IP du routage: - Table de routage:

I. TRANSMISSION DE DONNEES

Le signal GPS. Les horloges atomiques à bord des satellites GPS produisent une fréquence fondamentale f o = Mhz

IPFIX (Internet Protocol Information export)

La couche physique de l ADSL (voie descendante)

SNC-RZ25P. Caméra réseau motorisée MJPEG / MPEG-4

Chapitre 13 Numérisation de l information

Maintenir un service de traitement de son ou d image d ordinateur

Administration des ressources informatiques

Les Réseaux sans fils : IEEE F. Nolot

TELEVISION NUMERIQUE

Completed Projects / Projets terminés

Cours 13. RAID et SAN. 2004, Marc-André Léger

Projet de traitement d'image - SI 381 reconstitution 3D d'intérieur à partir de photographies

Architectures et Protocoles des Réseaux

Réseaux M2 CCI SIRR. Introduction / Généralités

Table des matières. Préface Jean-Jacques DAMLAMIAN. Introduction... 17

TD 1 - Transmission en bande de passe

Rapport du projet Qualité de Service

Cisco Certified Network Associate

La Vidéo. S.Natkin/CNAM 1

Les techniques de multiplexage

Pionnier des innovations

Master e-secure. VoIP. RTP et RTCP

Fiche technique CPU 314SC/DPM (314-6CG13)

LES DIFFÉRENTS FORMATS AUDIO NUMÉRIQUES

La Qualité de Service le la Voix sur IP. Principes et Assurance. 5WVOIP rev E

Géométrie discrète Chapitre V

xdsl Digital Suscriber Line «Utiliser la totalité de la bande passante du cuivre»

TP SIN Traitement d image

Analyse d images. Edmond.Boyer@imag.fr. Edmond Boyer UFRIMA 1

Introduction. Adresses

Recherche d'images par le contenu Application au monitoring Télévisuel à l'institut national de l'audiovisuel

Commutateur sûr, efficace et intelligent pour petites entreprises

EFFETS D UN CHIFFRAGE DES DONNEES SUR

DOSSIER ADSL. DEMARCHE DE TRAVAIL : Consultez rapidement le dossier avant de commencer Complétez le dossier en suivant les indications du document

Codage d information. Codage d information : -Définition-

Caméra Cloud jour / nuit sans fil TV-IP751WIC (v1.0r)

Echantillonnage Non uniforme

PARAMÉTRAGE BOSCH SOMMAIRE DE LA CAMÉRA OSCH DINION-IP-NWC : CONFIGURATION POUR DE L ENREGISTREMENT PERMANENT... 2

LABO PROJET : IMPLEMENTATION D UN MODEM ADSL SOUS MATLAB

Plan. École Supérieure d Économie Électronique. Plan. Chap 9: Composants et systèmes de sécurité. Rhouma Rhouma. 21 Juillet 2014

Transcription:

Les standards et Marco Cagnazzo Département Traitement du Signal et des Images TELECOM ParisTech 24 mai 2013 M. Cagnazzo H.264 / 1/96

Plan 1 2 3 Définitions Coding tools Stream M. Cagnazzo H.264 / 2/96

Plan 1 2 3 Définitions Coding tools Stream M. Cagnazzo H.264 / 3/96

Les standards vidéo : chronologie 1980 1990 2000 2010 H.263++ H.261 H.263 H.263+ H.264 /MVC 3D VC MPEG 2 H.262 MPEG 4 p.10 H.264/SVC MPEG 1 MPEG 4 ITU T ISO/IEC Joint M. Cagnazzo H.264 / 4/96

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 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) M. Cagnazzo H.264 / 5/96

Le standard 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 M. Cagnazzo H.264 / 6/96

Objectives But : optimiser les performance débit-distorsion Jusqu à -60% de débit pour la même qualité par rapport à MPEG-2 Applications : 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 streaming multimédia sur Ethernet, LAN, WiFi, xdsl, etc. On doit penser à l intégration avec le niveau de transport/stockage M. Cagnazzo H.264 / 7/96

Structure de H.264 L efficacité de la transmission dans des environnements différents dépend : de l efficacité de la compression ; et de l intégration avec les protocoles de transport. 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 Video Coding Layer (VCL) Network Adaption Layer (NAL) M. Cagnazzo H.264 / 8/96

Structure de H.264 Video Coding Layer Network Abstraction Layer Transport layer H.320 MP4FF H.324/M MPEG 2 RTP/IP Wired Network Wirless Network M. Cagnazzo H.264 / 9/96

VCL et NAL VCL fournit des outils performants pour la compression Intra-prediction, variable-size ME/MC, in-loop filtering, CABAC, etc. Profiles et niveaux NAL permet l adaptation au différents types de transport Packet switched transport (RTP/IP, TCP/IP,...) vs. circuit switched transport (MPEG-2, H.320,...) Streaming vs. storage M. Cagnazzo H.264 / 10/96

Plan 1 2 3 Définitions Coding tools Stream M. Cagnazzo H.264 / 11/96

Représentation de la vidéo Entrée : vidéo numérique en format YCbCr (équivalent à YUV) Luma et Chroma Échantillonnage : 4 : 2 : 0 Cela correspond à la sensibilité différente du SVH à Luma et Chroma M. Cagnazzo H.264 / 12/96

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 : 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 M. Cagnazzo H.264 / 13/96

Les slices Dans 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 M. Cagnazzo H.264 / 14/96

Les slices Normalement une slice correspond à une image Cinq types de slices existent : 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 M. Cagnazzo H.264 / 15/96

Codage par frame ou field Top field Bottom 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 : À niveau d image (P-AFF) À niveau de macroblock (MB-AFF) M. Cagnazzo H.264 / 16/96

Pictures et Sequences dans H.264 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 M. Cagnazzo H.264 / 17/96

Rappel : schéma du codeur hybride JPEG coder Control f k e k DCT Q VLC Channel Buffer fk Q* ME MV IDCT MC Frame Buffer fk ẽ k fk M. Cagnazzo H.264 / 18/96

Schéma du codeur H.264 Control f k e k DCT 4x4 Q CABAC/ CAVLC Channel Buffer fk Q* ME MV Intra/Inter Intra Prediction IDCT Deblocking Filter MC Frame Buffer fk ẽ k fk M. Cagnazzo H.264 / 19/96

Nouveaux modes de codage Modes Intra Modes Inter Modes Skip et Direct M. Cagnazzo H.264 / 20/96

Modes Intra avec prédiction spatiale Prédiction sur des blocs 16x16 (régions uniformes), 4 types de prédiction: horizontale verticale moyenne plane prediction M. Cagnazzo H.264 / 21/96

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 Mode 0 Mode 1 Mode 3 Mode 4 M. Cagnazzo H.264 / 22/96

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 16x8 8x16 8x8 8x4 4x8 4x4 M. Cagnazzo H.264 / 23/96

Estimation du mouvement Exemple de partition avec bloc à taille variable M. Cagnazzo H.264 / 24/96

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 A B C E M. Cagnazzo H.264 / 25/96

Compensation du mouvement 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 M. Cagnazzo H.264 / 26/96

Slices de type B 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 M. Cagnazzo H.264 / 27/96

Compensation du mouvement Références multiples Références Image à coder M. Cagnazzo H.264 / 28/96

Modes Skip et Direct Skipped MB : c est comme un MB prédictif pour lequel on utilise 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 M. Cagnazzo H.264 / 29/96

Nouveaux outils de codage Filtre de de-blocking Nouvelle transformée Codeurs sans perte : CAVLC et CABAC Outils pour le changement de flux (switch) Outils pour la robustesse M. Cagnazzo H.264 / 30/96

Filtre de de-blocking Problème : effet de bloc à bas débit Cause : codage indépendant des bloc Solution : post-filtering N affecte pas le codage (frame buffer) Non normatif, maximum de liberté Besoin de mémoire supplémentaire Solution : in-loop filtering 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 M. Cagnazzo H.264 / 31/96

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 M. Cagnazzo H.264 / 32/96

Filtre de de-blocking Analyse de la discontinuité Block edge M. Cagnazzo H.264 / 33/96

Filtre de de-blocking Réduit les discontinuités entre blocs 4 4 adjacents Le filtre est adapté à : 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) M. Cagnazzo H.264 / 34/96

Nouvelle transformée Transformée sur des blocs 4x4 La meilleure prédiction réduit la corrélation spatiale Approximation de la TCD, à coefficients entiers Parfaite synchronisation codeur/décodeur Coefficients : 0, ±1, ±2 implémentation par bit-shift et somme/ soustraction Deuxième niveau de transformée 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 M. Cagnazzo H.264 / 35/96

Codage sans perte Deux techniques sont supportées 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 M. Cagnazzo H.264 / 36/96

Codage a longueur variable adapté au contexte (CAVLC) 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 M. Cagnazzo H.264 / 37/96

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 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 M. Cagnazzo H.264 / 38/96

Robustesse aux erreurs : concepts généraux Mitiger la propagation des erreurs Protection inégal (entêtes mieux protégés) Limitation aux modes prédictifs Rendre facile la récupération de synchronisation Utilisation de marqueurs de synchronisation Marker emulation prevention Limiter l impact visuel des erreurs Reconnaître les images erronées Afficher un image précédente plutôt que un image erronée (concealing) M. Cagnazzo H.264 / 39/96

Robustesse dans H.264 Flexible Macroblock Ordering Redundant Picture Data Partitioning Images de synchronisation et switching (SI et SP) M. Cagnazzo H.264 / 40/96

Flexible macroblock ordering Slice group 0 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 M. Cagnazzo H.264 / 41/96

Redundant picture 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 M. Cagnazzo H.264 / 42/96

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 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 M. Cagnazzo H.264 / 43/96

Profils et niveaux Il est possible de définir profils et niveaux avec une énorme variété Sept profils (Baseline, Extended, Main, High, High10, High4:2:2, High 4:4:4) 16 niveaux qui peuvent être combinés avec les profiles. M. Cagnazzo H.264 / 44/96

Profils FMO Redundant Pictures ASO Baseline Extended SI/SP slices 1/4 Pel MC Multiple Reference Frames Intra Prediction I&P Slices Variable Block Sizes CAVLC Main Weighted Prediction In Loop B Slices Deblocking MB AFF Filter Field coding High CABAC 8x8 Transform Advanced Quantization B/W video Data Partitioning M. Cagnazzo H.264 / 45/96

Profils 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 M. Cagnazzo H.264 / 46/96

Niveaux 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) M. Cagnazzo H.264 / 47/96

Performances débit-distorsion Comparaison des performances de codage 42 40 38 PSNR db 36 34 32 30 M JP2K MPEG 2 H.264 500 1000 1500 2000 2500 3000 rate kbps M. Cagnazzo H.264 / 48/96

H.264 Exemples d images décodées MPEG-2 H.264 M. Cagnazzo H.264 / 49/96

H.264 Exemples d images décodées Motion JPEG2000 H.264 M. Cagnazzo H.264 / 50/96

H.264 Exemples d images décodées MPEG-2 H.264 M. Cagnazzo H.264 / 51/96

H.264 Exemples d images décodées Motion JPEG2000 H.264 M. Cagnazzo H.264 / 52/96

Performance H.264 Effet de la structure du GOP 44 43 42 PSNR db 41 40 39 IPPP I B P B P I B B P B B P I B B B P B B B P 38 400 600 800 1000 1200 1400 1600 1800 Rate kbps M. Cagnazzo H.264 / 53/96

Performance H.264 GOP IPPP : Débit et PSNR par image 10 6 foreman Rate 751.27 kbps PSNR 39.89 db 42 foreman Rate 751.27 kbps PSNR 39.89 db 41 Coding rate bits 10 5 10 4 I P PSNR db 40 39 38 I P 37 10 3 0 20 40 60 80 100 120 Frame number 36 0 20 40 60 80 100 120 Frame number M. Cagnazzo H.264 / 54/96

Performance H.264 GOP IBPBP : Débit et PSNR par image 10 6 foreman Rate 771.12 kbps PSNR 40.46 db 44 foreman Rate 771.12 kbps PSNR 40.46 db 43 42 Coding rate bits 10 5 10 4 10 3 0 20 40 60 80 100 120 Frame number I P B PSNR db 41 40 39 38 37 36 0 20 40 60 80 100 120 Frame number I P B M. Cagnazzo H.264 / 55/96

Performance H.264 GOP IBBPBBP : Débit et PSNR par image 10 6 foreman Rate 773.14 kbps PSNR 40.49 db 45 foreman Rate 773.14 kbps PSNR 40.49 db 44 43 Coding rate bits 10 5 10 4 I P B PSNR db 42 41 40 39 38 10 3 0 20 40 60 80 100 120 Frame number 37 36 35 0 20 40 60 80 100 120 Frame number I P B M. Cagnazzo H.264 / 56/96

Performance H.264 GOP IBBBPBBBP : Débit et PSNR par image 10 6 foreman Rate 767.99 kbps PSNR 40.32 db 45 foreman Rate 767.99 kbps PSNR 40.32 db 44 43 Coding rate bits 10 5 10 4 I P B PSNR db 42 41 40 39 38 10 3 0 20 40 60 80 100 120 Frame number 37 36 35 0 20 40 60 80 100 120 Frame number I P B M. Cagnazzo H.264 / 57/96

Network Abstraction Layer Le NAL est réalisé en sorte de fournir network friendliness Simple interface entre le VCL (video coding layer) et les systèmes externes Mapping des donnes sur les transport layers : RTP/IP pour les services en temps réel Format de fichiers (ISO MP4) pour le stockage MPEG-2 system pour les service de diffusion H.32X pour les services de visioconférence M. Cagnazzo H.264 / 58/96

NAL units 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 M. Cagnazzo H.264 / 59/96

Byte-Stream format NALU Cas où le train de NALU doit être délivré comme une suite ordonnée d octets Exemples : MPEG-2 systems Les limites des NALUs doivent être identifiables Solution : Start code prefix et emulation prevention bytes M. Cagnazzo H.264 / 60/96

Packet-Transport format NALU Cas où les donnés sont partitionnées par le niveaux de transport Exemples : RTP/IP, UDP/IP Dans ce cas les start codes seraient un gaspillage de bande M. Cagnazzo H.264 / 61/96

Type de NALU par contenu VCL NALU (modes, vecteurs, résidus) Non-VCL NALU (header, parameter sets) Parameter set pour image et pour sequence On peut appliquer l UEP M. Cagnazzo H.264 / 62/96

Access unit Start Acces unit delimiter SEI Primary coded picture Redundant coded picture End of sequence End of stream 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 End M. Cagnazzo H.264 / 63/96

Plan Définitions Coding tools Stream 1 2 3 Définitions Coding tools Stream M. Cagnazzo H.264 / 64/96

High Efficiency Video Coding Définitions Coding tools Stream Joint ISO/ITU-T standard MPEG-H Part 2 (ISO/IEC 23008-2) ITU-T H.265 Objectifs : les mêmes que H.264, plus : Très haute résolution Codage parallèle Performances de compression améliorées Encore un codeur hybride avec prédiction temporelle et spatiale M. Cagnazzo H.264 / 65/96

High Efficiency Video Coding Définitions Coding tools Stream 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 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) M. Cagnazzo H.264 / 66/96

: schéma général Définitions Coding tools Stream Transf. Q CABAC Q* ME MV Intra/Inter Intra Prediction IDCT Deblocking & SAO Filter MC Frame Buffer M. Cagnazzo H.264 / 67/96

Définitions Coding tools Stream Structures de données en 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 () Chaque est divisée en coding units (CU) Chaque CU est divisé en prediction units (PU) et en transform units (TU) M. Cagnazzo H.264 / 68/96

Coding tree units Définitions Coding tools Stream M. Cagnazzo H.264 / 69/96

Coding tree units Définitions Coding tools Stream L image courante (picture) est divisée en Une est formée par un Coding Tree Block (CTB) de luminance et 2 CTB de chroma Les CTB de chroma ont une résolution inférieure, car en la vidéo d entrée est toujours en 4 : 2 : 0 La taille des est choisie par l encodeur Trois tailles possibles : 16 16, 32 32 et 64 64 Normalement, une plus grande taille donne une meilleure compression (mais cela a un coût en complexité) M. Cagnazzo H.264 / 70/96

Coding units Définitions Coding tools Stream Les sont divisées en coding units (CU) Une CU est formée par un Coding Block (CB) de luma et 2 de chroma Les CU sont toujours de forme carrée La taille maximale d une CU est celle de la La taille minimale est 8 8 La structure est celle d un quad-tree La décision entre codage Intra et codage Inter est faite à niveau de CU M. Cagnazzo H.264 / 71/96

Coding units Définitions Coding tools Stream CU CU CU CU CU CU CU CU M. Cagnazzo H.264 / 72/96

Prediction units Définitions Coding tools Stream Pour une CU Intra, la PU correspond à la CU Sauf pour de CU de dernier niveau (les plus petites possibles) qui peuvent encore être décomposées en 4 PU carrées Pour le CU Inter, la CU peut correspondre à la PU...... ou peut être coupée en 2 (six choix possibles) PU... ou, uniquement pour le dernier niveau, divisée en 4 PU Une PU est formée par un PB de luma et 2 de chroma Pour chaque PU on code l information de prédiction (direction de prédiction en Intra, information de mouvement en Inter) Le résidu est transformé dans la TU, qui peut avoir une forme différente de la PU M. Cagnazzo H.264 / 73/96

Prediction units Définitions Coding tools Stream Tout niveaux Dernier niveau Intra CU PU PU PU PU PU CU PU PU PU PU PU PU PU PU Inter PU PU PU PU PU PU PU PU PU M. Cagnazzo H.264 / 74/96

Transform units Définitions Coding tools Stream Les CU peuvent être divisées en TU avec un schéma en quadtree Cela est indépendant de la partition en PU Une TU peut donc s étendre sur plusieurs PU...... ou au contraire ne correspondre qu à une partie d une PU Le découpage est implicite si la taille de la CU est supérieure à la taille maximale des TUs Le non-découpage est implicite si la taille de la TU est égale à la taille minimale M. Cagnazzo H.264 / 75/96

Transform units Définitions Coding tools Stream CU CU CU TU TU TU TU TU TU TU TU TU TU TU TU TU TU M. Cagnazzo H.264 / 76/96

Codage Intra Définitions Coding tools Stream Le mode de prédiction Intra est choisi à niveau de PB Le PB correspond au CB à l exception du dernier niveau 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 Les directions de prédiction sont plus denses en proximité de l horizontale et de la verticale La prédiction est calculée avec une interpolation bi-linéaire Les valeurs de référence et sur les contours peuvent être adoucis pour réduire les artefacts M. Cagnazzo H.264 / 77/96

Codage Intra Définitions Coding tools Stream 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 On utilise les voisins de haut et gauche si disponibles et si codé en Intra, et on remplace les valeurs non disponible avec des modes de défaut (planar, DC, vertical) Si le mode luma est un des 3 MPM, on code l index 0, 1 ou 2 Sinon, on code le mode entre les 32 restants sur 5 bits 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) M. Cagnazzo H.264 / 78/96

Codage Inter Définitions Coding tools Stream Le CB peut correspondre au PB...... ou peut être coupé en 2 PB : horizontal haut, milieu, bas ; vertical gauche, centre, droite Le CB ne peut pas être coupé en 4 PB (dans ce cas, il serait plus efficace de couper à niveau de CB, est utiliser en suite des PB de la même taille que les nouveaux CB) Seule exception : si le CB ne peut pas être ultérieurement découpé M. Cagnazzo H.264 / 79/96

Codage Inter Définitions Coding tools Stream 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 L estimation de mouvement est faite au quart de pixel Deux filtres différents sont utilisés pour interpoler les positions au demi-pixel et au quart de pixel M. Cagnazzo H.264 / 80/96

Codage Inter Merge Définitions Coding tools Stream Le mode merge permet de partager l information de mouvement entre PB voisins Ce mode est similaire au mode SKIP de H.264 avec deux différences Plusieurs candidats existent pour l information de mouvement, et on transmet explicitement lequel est choisi On transmet aussi explicitement quel est l image de référence utilisé (en H.264 cela était déduit) M. Cagnazzo H.264 / 81/96

Codage Inter Merge Définitions Coding tools Stream L information de mouvement partagée consiste en Un ou deux vecteurs de mouvement Un ou deux index de référence On crée une liste de C candidats possibles pour le mode merge Le nombre C est spécifié dans les entêtes de la slice Si on peut pas coder l information de mouvement avec le merge, on code la différence par rapport à une prédiction Cette prédiction est choisie entre 2 des candidats du merge M. Cagnazzo H.264 / 82/96

Codage Inter Merge Définitions Coding tools Stream Les candidats du merge sont, selon leur disponibilité : Cinq candidats spatiaux (vecteurs des PB voisins) Un candidat temporel (vecteur du bloc en bas à droite dans l image de référence, ou sinon du bloc dans la même position) Candidats générés, jusqu à avoir C candidats différents (les doublons sont enlevés) M. Cagnazzo H.264 / 83/96

Transformée Définitions Coding tools Stream Quatre tailles de transformée sont possibles : 32 32, 16 16, 8 8 et 4 4 Transformées séparables, à coefficients entiers, qui approximent une DCT Les matrices plus petites sont un sous-échantillonnage des plus grandes Sur les blocs 4 4 on peut utiliser une transformée alternative, qui approxime la DST et qui est mieux adapté à représenter les résidus sur les petits blocs La DST réduit le débit de 1 % pour les blocs 4 4 (en Intra), et de façon négligeable pour les grand blocs M. Cagnazzo H.264 / 84/96

Codage entropique Définitions Coding tools Stream utilise une version améliorée et simplifiée de CABAC Les contextes sont mieux choisis, les coefficients sont toujours lus par blocs 4 4, mais avec 3 ordres possibles (raster H, raster V, diagonal vers droite-haut) M. Cagnazzo H.264 / 85/96

Deblocking filter Définitions Coding tools Stream Un nouveau filtre de deblocking est implémenté, avec l objectif de réduire la complexité Il est applique seulement sur une grille 8 8 Cela réduit la complexité sans trop dégrader les performances Seulement 3 niveaux de filtrage sont possibles Un filtre SAO (sample adaptive offset) est appliqué après le deblocking Le SAO ajoute un offset en fonction de la valeur du pixel et des caractéristiques de la région (plate, minimum, contour, maximum) M. Cagnazzo H.264 / 86/96

High level syntax: slices Définitions Coding tools Stream Les peuvent être regroupées en slices ou en tiles Les slices sont formées par une suite de 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 M. Cagnazzo H.264 / 87/96

Définitions Coding tools Stream Partition d une picture en slices Slice 1 Slice 2 Slice n M. Cagnazzo H.264 / 88/96

High level syntax: tiles Définitions Coding tools Stream Les 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) M. Cagnazzo H.264 / 89/96

Partition d une picture en tiles Définitions Coding tools Stream Tile 1 Tile 2 Tile 3 Tile 4 Tile 5 Tile 6 M. Cagnazzo H.264 / 90/96

Traitement par wavefront Définitions Coding tools Stream 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 de la ligne immédiatement supérieure est terminé Il y a toujours un retard minimum de 2 entre deux lignes consécutives M. Cagnazzo H.264 / 91/96

Traitement par wavefront Définitions Coding tools Stream Wavefront Thread 1 Thread 2 Thread 3 Thread 4 Thread 5 M. Cagnazzo H.264 / 92/96

Définitions Coding tools Stream Random access et bitstream splicing Le décodage d une séquence peut commencer aux random access points (RAP) Un RAP peut être 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 M. Cagnazzo H.264 / 93/96

Structure du stream Définitions Coding tools Stream b 2 b 4 b 6 b 8 b 10 b 12 B 3 B 7 B 11 I 1 P 5 I 9 P 13 I1 P5 B3 b2 b4 I9 B7 b6 b8 P13 B11 b10 b12 IDR CRA Trailing RASL RASL RASL M. Cagnazzo H.264 / 94/96

Acronymes Définitions Coding tools Stream 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 M. Cagnazzo H.264 / 95/96

Conclusions Pour approfondir Définitions Coding tools Stream 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. M. Cagnazzo H.264 / 96/96