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

Documents pareils