Travail compression MP4
Transcription
Travail compression MP4
De Cannière Guillaume De Wolf Sophie GGN MA2 Compression de données Travail de session « Le format conteneur MP4 » Année 2014-2015 / Session de juin Monsieur Giot Sommaire Introduction …………………………………………………………….………………. Page 1 1. La nome Mpeg4 …………………………………………………..…………………. Page 1 2. Le codec H.264 …………………………………………………...…………………. Page 2 2.1 Généralités sur les codecs …........................................................................... Page 2 2.2 Le codec H.264 ………………………………….……………………….…. Page 2 2.2.1 La prédiction ……………………………………………………… Page 3 3. Le format conteneur MP4 …………………………………………………………… Page 4 4. Le taux d’échantillonnage ……………………...……………………………………. Page 4 4.1 Définition …………………………………………………...………………. Page 4 4.2 Le taux d’échantillonnage variable ………………………..……………….. Page 6 5. Analyse du rendu des compressions …………………………………………………. Page 6 5.1 Résultats des compressions ………………………………………………… Page 6 5.2 Analyse du rendu visuel ……………………………………………………. Page 8 5.2.1 Analyse du rendu des couleurs …………………..……………….. Page 9 5.2.2 Analyse du rendu des mouvements ………………...…………… Page 10 5.3 Analyse du rendu sonore ………………………………………………….. Page 11 5.4 Rapport débit/poids/qualité ……………………………………………….. Page 11 Introduction Ce travail s’intéresse au conteneur MP4 et au codec H.264. Nous avons encodé des vidéos en MP4 dans des résolutions différentes en haute définition avec divers débits. L’objectif de ce travail est de comparer la taille ainsi que les qualités visuelles et sonores des fichiers issus de ces diverses compressions, et d’ensuite définir le format qui offre le meilleur rapport poids/qualité. L’ensemble de ce travail, ainsi que les compressions que nous avons réalisées sont disponibles sur le site web suivant : https://ggn2015compression.wordpress.com 1. La norme Mpeg4 Mpeg4 est une norme de codage audiovisuel définie par le Moving Picture Experts Group. Cette norme définit des techniques utilisées pour la compression des signaux audio et vidéo. La norme Mpeg4 est l’évolution de la norme Mpeg2, qui définissait uniquement les aspects de la compression de l’image et du son destinée à la diffusion de contenus sur la télévision numérique et au stockage sur DVD. La norme Mpeg4, quant à elle, autorise la haute définition et l’utilisation de diverses applications utilisées sur internet telles que le streaming, le téléchargement ou la visioconférence. La norme Mpeg4 est adaptée à la transmission sur des réseaux dont les débits sont variables. La norme Mpeg4 est divisée en 27 parties qui définissent chacune un type de codage particulier (divers algorithmes qui entraînent divers niveaux de qualités). Ce travail va s’intéressé à deux parties de la norme Mpeg4 : • • La partie 10 qui est consacrée au codec H.264 La partie 14 qui spécifie le format de fichier MP4 1 2. Le codec H.264 2.1 Généralités sur les codecs Un codec est un algorithme utilisé pour compresser et décompresser (à la lecture du conteneur MP4) des fichiers audio et vidéo. Un codec permet de réduire le poids du fichier en limitant la perte de qualité. On distingue deux types de codecs : • Codec avec pertes Ce type de codec supprime les détails de l’image qui sont le moins perceptible par l’œil humain, ce qui diminue la qualité finale. Cette suppression est irréversible. Il est impossible de retrouver les données supprimées. La qualité d’origine est donc définitivement perdue. • Codec sans pertes (H.264) Ce genre de codec ne détruit pas la qualité du signal. La chaîne de bits reste identique au signal original, ce qui permet de retrouver l’intégralité des données compressées. 2.2 Le codec H.264 ou MPEG4 AVC (Advanced Video Coding) ou MPEG4 – Part 10 H.264 est un codec qui se base sur la partie 10 de la norme Mpeg4. Il a été créé pour multiplier par deux l’efficacité de compression des codecs qu’il remplaçait (Mpeg2, H.263, MPEG4 – Part 2). Le codec H.264 réduit de moitié le débit de transmission et de stockage pour une qualité équivalente aux normes précédentes. Le H.264 est un algorithme de compression sans perte de qualité (lossless). Il est capable de conserver presque la même qualité d’image, mais en réduisant considérablement son poids (le poids d’une vidéo compressée avec le codec H264 peut être jusqu’à 40 fois plus léger, en fonction de la résolution choisie). Cette qualité est garantie à condition de lire la vidéo compressée sur un écran dont la résolution convient à la résolution de la vidéo (exemple : écran de minimum 1024 X 768 pixels pour une résolution de 720p). Le codec H.264 est capable d’encoder des vidéos tant HD que en SD et est adapté à un large éventail de réseaux et de systèmes dans tous les domaines des médias (diffusion pour la télévision, VoD, stockage DVD et Blu-Ray, streaming, streaming HD, consoles de jeux, smartphones …). 2 2.2.1 La prédiction La prédiction est une technique grâce à laquelle le codec détermine, dans une image initiale, les informations nécessaires pour créer l’image suivante. Le codec compresse ces données avec le moins de pertes possibles. Le H.264 mélange deux techniques de prédiction qui lui permettent d’améliorer son efficacité de compression : 2.2.1.1 Prédiction inter (prédiction temporelle) Les images qui se suivent dans une vidéo sont susceptibles d’avoir un lien les unes par rapport aux autres. Le rôle du codec est de retrouver, dans l'image de destination, l'emplacement de macroblocs (carrés de pixels de 4X4 à 16X16 pixels) identiques par rapport à une ou plusieurs des images précédentes. Dans la prédiction inter, le codec est capable d’estimer et de compenser des mouvements dans l’espace par rapport à des images de référence (images déjà codées qui servent de référence pour le codage des images suivantes). Le processus de compensation de mouvements propose différentes tailles de blocs (16X16, 16X8, 8X4, …). Ce processus possède une précision au quart de pixel, ce qui permet de segmenter précisément les zones contenant des objets en mouvements et d’effectuer un rendu précis de ces mouvements. Afin d’améliorer la qualité visuelle de l’image codée, le codec H.264 possède un filtre anti-blocs qui atténue le discernement de la limite entre deux macroblocs voisins. Le H.264, grâce au principe de compensation de mouvements pondéré, permet de prédire les images en tenant compte des changements de luminance et de chrominance intervenant dans une scène. Group of pictures (GOP) Un GOP est un groupe d’images qui définit l’ordre dans lequel sont disposées les images à codage prédictif. La longueur d’un groupe d’images en MPEG4 (nombre d’images entre deux images de référence) peut dépasser 40 images. • Images I (images de références) Les images I sont compressées par rapport à elles-mêmes, indépendamment des autres. Elles sont complètement intra-prédites et comportent l’ensemble des informations nécessaires à leur restitution. 3 • Les images P (images prédites) Ces images sont codées sur base de l’image I ou P qui les précède. Elles sont moins lourdes que les images I car elles réutilisent les macroblocs identiques aux images précédentes. • Les images B (images bidirectionnelles) Elles résultent de la différence entre l’image I ou P qui les précède et qui les suit. Elles sont fortement compressées. 2.2.1.2 Prédiction intra (prédiction spatiale) La prédiction intra vise à compresser une image par rapport à elle-même. Ce type de prédiction repère les ressemblances entre les pixels voisins au sein même de l’image et utilise les éléments déjà codés dans l’image comme prédiction pour coder les ressemblances. 3. Le format conteneur MP4 Pour créer un fichier film lisible, une vidéo en H.264 doit être encapsulée avec ses pistes audio dans un conteneur. MP4 est un format de conteneur multimédia prévu pour être lu en streaming. Le MP4 correspond à l’extension des fichiers vidéo au standard MPEG-4. Le conteneur MP4 est une enveloppe qui contient des flux audio et vidéo tant en HD que en SD. Ce conteneur abrite des informations telles que le timecode et le type de codec utilisé. Le conteneur MP4 est très polyvalent et supporte de nombreux codecs de compression, dont généralement le H.264. Le format MP4 permet d’obtenir des fichiers jusqu’à dix fois plus légers que les fichiers originaux. 4. Taux d’échantillonnage 4.1 Définition Le taux d’échantillonnage, ou fréquence d’échantillonnage, correspond à la cadence à laquelle les valeurs d’un signal audio ou vidéo sont analysées. Afin d’enregistrer un son ou une image numériquement, on prélève des échantillons sur le signal vidéo ou audio à des intervalles de 4 temps réguliers. L'intervalle de temps entre deux échantillons est appelé taux d'échantillonnage. L’échantillonnage permet de transmettre de l’information codée dans un signal. La fréquence d’échantillonnage impacte la qualité du signal enregistré : • Si le taux d’échantillonnage est trop faible, ce qui résulte en un enregistrement trop espacé des données, il y a un risque de perte de données dans le signal enregistré, et donc de déformation lors de l’enregistrement. • Plus la fréquence d’échantillonnage est élevée, plus l’enregistrement sera fidèle au signal de départ, et plus le poids du fichier enregistré sera important. Il est important de choisir un taux d’échantillonnage qui ait un impact limité sur l’espace de stockage, et qui couvre des fréquences qui sont à la limite de la perception humaine, afin de ne pas impacter négativement la qualité visible du signal. Unité de mesure Le taux d’échantillonnage est exprimé en Hertz (Hz) ou en Kilo Hertz (kHz). Cette unité de mesure représente le nombre d’échantillon prélevé par seconde sur le signal. Théorème d’échantillonnage de Nyquist-Shannon La valeur du taux d’échantillonnage est définie grâce au théorème de Nyquist-Shannon. Ce théorème stipule que, afin de préserver et de restituer fidèlement la forme d’un signal, la fréquence d’échantillonnage doit être égale ou supérieure au double de la fréquence maximale du signal à reproduire. Le respect de ce ratio permet de limiter les pertes de signal. Taux d’échantillonnage fixe Le débit d’encodage est fixé à une certaine valeur, il est constant quelle que soit la bande passante. Chaque seconde de la piste audio ou vidéo occupe la même quantité d’espace disque. L’inconvénient du taux d’échantillonnage fixe est le suivant : s’il y a une augmentation d’activité dans une scène (ce qui entraîne une augmentation de débit), l’image se dégrade. 5 4.2 Le taux d’échantillonnage variable = Variable Bit Rate (VBR) Le codec H.264, encapsulé dans un conteneur MP4, utilise un taux d’échantillonnage variable pour coder la vidéo. Définition Le taux d’échantillonnage variable fait varier la quantité de données nécessaires pour encoder chaque seconde. Le débit du H.264 varie en permanence : il augmente lors des scènes avec beaucoup d’activités, et diminue lorsqu’il y a moins de mouvements. Le taux d’échantillonnage variable permet de conserver un niveau de qualité prédéfini. Le débit est adapté en fonction du mouvement contenu dans l’image afin de garantir ce niveau de qualité prédéfini. Cela permet d’obtenir un bon compromis entre la qualité de rendu, la taille du fichier et le débit nécessaire. 5. Analyse du rendu des compressions 5.1 Résultats des compressions Ces compressions ont été réalisées avec le conteneur MP4 qui utilise le codec H.264. Chaque compression est réalisée à partir du fichier initial. Fichier initial Format : HD 1080i Résolution : 1920 X 1080 (16/9) Balayage : entrelacé Cadence d’images : 25 i/s Poids de la vidéo : 1,38 Go Compression 1 Format : HD 1080p Résolution : 1920 X 1080 (16/9) Balayage : progressif Cadence d’images : 25 i/s Codec : H264 Conteneur : MP4 Débit : VBR, 1 passage, (Min 80 Mbits/sec, Max 200 Mbits/sec) Audio : AAC, 192 Kbits/sec, 48Khz, Stéréo Poids de la vidéo suite à la compression : 167 Mo 6 Compression 2 Format : HD 720p Résolution : 1280 X 720 (16/9) Balayage : progressif Cadence d’images : 25 i/s Codec : H264 Conteneur : MP4 Débit : VBR, 1 passage, (Min 56 Mbits/sec, Max 80 Mbits/sec) Audio : AAC, 192 Kbits/sec, 48Khz, Stéréo Poids de la vidéo suite à la compression : 86,6 Mo Compression 3 Format : HD 480p Résolution : 720 X 480 (16/9) Balayage : progressif Cadence d’images : 25 i/s Codec : H264 Conteneur : MP4 Débit : VBR, 1 passage, (Min 16 Mbits/sec, Max 40 Mbits/sec) Audio : AAC, 192 Kbits/sec, 48Khz, Stéréo Poids de la vidéo suite à la compression : 50,6 Mo Compression 4 Format : HD 360p Résolution : 640 X 360 (16/9) Balayage : progressif Cadence d’images : 25 i/s Codec : H264 Conteneur : MP4 Débit : VBR, 1 passage, (Min 16 Mbits/sec, Max 40 Mbits/sec) Audio : AAC, 192 Kbits/sec, 48Khz, Stéréo Poids de la vidéo suite à la compression : 25,7 Mo Compression 5 Format : HD 240p Résolution : 320 X 240 (16/9) Balayage : progressif Cadence d’images : 25 i/s Codec : H264 Conteneur : MP4 Débit : VBR, 1 passage, (Min 768 Kbits/sec, Max 1536 Kbits/sec) Audio : AAC, 192 Kbits/sec, 48Khz, Stéréo Poids de la vidéo suite à la compression : 16,6 Mo 7 5.2 Analyse du rendu visuel 1080p 720p 480p 8 360p 240p 5.2.1 Analyse du rendu des couleurs On remarque que, à chaque compression, l’image est de plus en plus claire. Le codec H.264 peut utiliser deux normes différentes pour l’échantillonnage des couleurs (la norme 4 : 2 : 2 ou la norme 4 : 2 : 0). Chacune de ces normes permettent d’allouer plus de bits à la quantification de luminance qu’à la chrominance. La luminance correspond à la sensation visuelle de luminosité, tandis que la chrominance définit les couleurs de l’image. Les images ont l’air de plus en plus clair au fur et à mesure des compressions car le codage H.264 alloue plus d’informations de luminance pour chaque pixel. 9 5.2.2 Analyse du rendu des mouvements La délimitation des macroblocs de pixels est visible dans toutes les résolutions des vidéos compressées en MP4. Prédiction inter-images Le codec H.264, qui fait de la compression sans pertes, est capable d’estimer et de compenser les mouvements dans des images qui suivent des images de référence. Le codec H.264 utilise un taux d’échantillonnage variable qui s’adapte au mouvement de l’image et qui permet de conserver un niveau de qualité prédéfini. Cependant, ce niveau de qualité n’est pas assuré dans toutes les résolutions. Résolutions 1080p, 720p et 480p Le processus d’estimation et de compensation de mouvements du codec H.264 conserve une bonne qualité d’image pour ces résolutions (1080p, 720p et 480p). Les macroblocs de pixels ne sont pas fortement discernables lors des scènes à forte activité. Cette qualité est rendue possible grâce au filtre anti-bloc intégré dans le codec H.264. Ce filtre atténue le discernement de la séparation entre deux macroblocs contigus. Le taux d’échantillonnage variable utilisé par le codec H.264 permet également d’augmenter le débit lors des scènes contenant une forte activité et de diminuer celui-ci lorsqu’il y a moins de mouvements dans l’image, ce qui permet de garantir un niveau de qualité minimum. Résolutions 360p et 240p Les macroblocs de pixels sont davantage visibles dans les résolutions 360p et 240p. Dans ces résolutions, le filtre anti-bloc du codec H.264 ne permet pas de contrer la pixellisation des scènes qui comportent beaucoup de mouvements. Lorsque les mouvements sont extrêmement rapides, l’image perd en qualité et est complètement déformée. Des macroblocs apparaissent également lors du passage d’un plan à un autre et le contour des objets n’est pas net. Par contre, dans les scènes au ralenti, la présence des macroblocs est moins visible à l’image. 10 5.3 Analyse du rendu sonore Le son de ces vidéos est encodé en AAC (Advanced Audio Coding). Il s’agit d’un algorithme de compression audio avec pertes. Il offre un meilleur rapport qualité/débit que le format MP3. Chacune des compressions n’entraîne pas de dégradation perceptible du son. La compression n’a pas entraîné de désynchronisation de l’image et du son. 5.4 Rapport débit/poids/qualité HD 1080p HD 720p HD 480p HD 360p HD 240p Débit De 80 à 200 Mbits/sec De 56 à 80 Mbits/sec De 16 à 40 Mbits/sec De 16 à 40 Mbits/sec Qualité Qualité bonne et fidèle à l’originale Qualité bonne et fidèle à l’originale Qualité bonne et fidèle à l’originale Poids 167 Mo 86,6 Mo 50,6 Mo Apparition de pixels lors de scènes à forts mouvements 25,7 Mo De 768 Kbits/sec à 1536 Kbits/sec Apparition de pixels lors de scènes à forts mouvements 16,6 Mo Le taux d’échantillonnage variable, qui ajuste le débit nécessaire en fonction du contenu de l’image, permet de réduire le poids du fichier tout en conservant une certaine qualité. Les formats HD 1080p, HD 720p et HD 480p, dont les débits sont les plus élevés, offrent le meilleur rapport poids/qualité. Ils permettent de réduire sensiblement le poids de la vidéo, tout en limitant la perte de qualité. Ces formats permettent de limiter les coûts de stockage et de conserver une qualité fidèle à l’original. Par contre, les formats HD 360p et HD 240p, dont les débits sont plus faibles, réduisent davantage le poids de l’image, mais dégradent la qualité de l’image. Ces deux formats n’assurent pas une qualité qui permette de regarder la vidéo sur un écran d’ordinateur standard. 11