Vous êtes sur la page 1sur 3

Université Abou Bekr Belkaid Tlemcen

Faculté de Technologie
Département de Télécommunications
Parcours/Spécialité : M2 / Système des Télécommunications

TP2 - Traitement multimédia :


standards de compression (MPEG 1-2, MPEG-4)

But du TP :
• Traiter un fichier vidéo de type MP4 sous Matlab (Introduire une vidéo, décomposition de la
vidéo en un nombre d’images bien définie, Stocker et lire les images de la vidéo, reconstruire la
vidéo à partir des images fractionnées).
• Analyser la compression/décompression des données de la vidéo MP4 par différents CoDecs.
• Visualiser les résultats de compression/décompression.
• Evaluer l’effet des CoDecs sur le fichier vidéo (Taille, Qualité …).

Rappel Théorique :
Qu'est ce qu'une vidéo ? [1]
Une vidéo est une succession d'images à une certaine cadence. L'œil humain a comme caractéristique
d'être capable de distinguer environ 20 images par seconde. Ainsi, en affichant plus de 20 images par
seconde, il est possible de tromper l'œil et de lui faire croire à une image animée. C'est sur ce principe
que repose la vidéo. On caractérise la fluidité d'une vidéo par le nombre d'images par secondes (en
anglais frame rate), exprimé en FPS (Frames per second, en français trames par seconde).

Qu'en est-il de la vidéo numérique ? [1]

La vidéo numérique consiste à afficher une succession d'images numériques. Puisqu'il s'agit d'images
numériques affichées à une certaine cadence, il est possible de connaître le débit nécessaire pour
l'affichage d'une vidéo, c'est-à-dire le nombre d'octets affichés par unité de temps.
Ainsi le débit nécessaire pour afficher une vidéo (en octets par seconde) est égal à la taille d'une image
que multiplie le nombre d'images par seconde.
Pour connaître le poids en octets d'une image, il est nécessaire de compter le nombre de pixels que
contient l'image. Le poids de l'image est alors égal à son nombre de pixels que multiplie le poids de
chacun de ces éléments.
Soit une image true color (24 bits) ayant une définition de 640*480 :
· Nombre de pixels : 640 x 480 = 307200
· 24 bits / 8 = 3 octets (1 octet = 8 bits)
· Le poids de l'image est donc obtenu par le calcul suivant :
· 307200 x 3 = 921600 octets
· 921600 / 1024 = 900 Ko (1 ko = 1024 octets)
Pour afficher correctement une vidéo possédant cette définition il est nécessaire d'afficher au moins
30 images par seconde, c'est-à-dire un débit égal à : 900 Ko * 30 = 27 Mo/s

1
© H. HACHEMI
Quelles sont les différences entre MPEG-4 et MP4 ? [2]
Certaines personnes sont confuses entre MP4 et de MPEG-4. Tout d'abord, il faut comprendre les deux
termes de base: codec vidéo et conteneur multimédia. Il peut être montré avec la formule suivante:
Conteneur multimédia = format vidéo (codec vidéo) + format audio (codec audio) + sous-titre +
informations de chapitre + métadonnées
Le MP4 s'agit d'une extension de fichier, d'un format vidéo et d'un conteneur multimédia. Par contre
le MPEG-4: Il s’agit d’une méthode de compression du groupe MPEG spécialement conçue pour
l’encodage vidéo / audio à faible bande passante (inférieure au débit 1.5MBit / s). Voyons maintenant
quelques exemples pour rendre la relation plus intuitive.
MP4 (.mp4) = codec vidéo MPEG-4 (H.264 / XviD) + codec audio MPEG-4 (AAC)
MP4 (.mp4) = codec vidéo MPEG-H (H.265) + codec audio Dolby Digital (AC3)

Partie I. Traitement d’un format vidéo MP4 sous Matlab


Remarque Importante :
- Avant de lancer votre projet vérifier si le fichier *.mp4 peut être exécuté dans Windows
Lecteur Média et cela pour vérifier si les CoDecs sont bien installés dans le système
Windows.
- Si votre fenêtre de Workspace n’est pas afficher, taper workspace dans la fenêtre
Command Window

Manipulation.1
1- Lancez le Script, nommé tp2.m dans le dossier ‘‘TP2’’ qui se trouve sur votre Bureau de votre PC.
2- Toujours débuté dans un programme par les commandes suivantes :
close all; clear all ; clc ;
3- Ecrivez les instructions ci-dessous [3] [4] :
video = VideoReader('Engineer.mp4');
NbOfImages = 30;
cd Frames
for img = 1:NbOfImages;
data = read(video, img);
filename=strcat('image',num2str(img),'.jpg');
listOfImages(img) = {filename};
imwrite(data, filename);
end
imageNames = listOfImages';

N.B : Rappelons que Engineer.mp4[5] est un fichier vidéo de type MP4.

Questions.1
- Comment cette partie fonctionne ?
- Qu’elle est l’intérêt de la boucle for et la commande imwrite

2
© H. HACHEMI
Manipulation.2 [7]
4- Continue à écrire ces instructions ci-dessous :
outputVideo = VideoWriter('out','MPEG-4');
outputVideo.FrameRate = video.FrameRate;

open(outputVideo)
for ii = 1:length(imageNames)
img = imread(fullfile(imageNames{ii}));
writeVideo(outputVideo,img)
end
close(outputVideo)

Questions.2
- Expliquer le déroulement de ces commandes ?
- Le résultat de cette manipulation 2 est de faire quoi ?
- Combien de bits par pixel est codé la vidéo de sortie 'out.mp4' ?
N.B : pour répondre à la 3ème question, utiliser whos outputVideo

A reproduire :
Utiliser ces deux manipulations précédentes (1 & 2) pour la vidéo Conversation.mp4[5]
échantillonnée avec une séquence de 50 images et une cadence de 15 images/sec

3
© H. HACHEMI

Vous aimerez peut-être aussi