La compression de la vidéo est de plus en plus utilisée dans le cas de transferts sur un réseau quelconque de vidéos (streaming, téléchargement, …). Elle a pour but de réduire le débit nécessaire à celle-ci et, de fait la bande passante.
Cependant, compresser une vidéo implique, nécessairement une perte de qualité objective et subjective qui peut s’avérer gênante.
Le Center for Video Communications a pour projet de limiter au maximum cette perte mais aussi d’établir une
relation, à l’aide du MOSp, entre ces deux types de qualité.
Pour cela, il m’a été demandé de comparer deux méthodes d’encodage d’un CODEC MPEG-4 / H.264 afin de déterminer objectivement et subjectivement quelle est la meilleure. Par la suite, j’ai dû vérifier la relation entre
ces deux modes de comparaison afin de voir si le MOSp est viable.
Les réponses à ces interrogations se trouvent dans le présent rapport.
Título original
Comparaison des performances de deux méthodes d’encodage pour un CODEC H.264
La compression de la vidéo est de plus en plus utilisée dans le cas de transferts sur un réseau quelconque de vidéos (streaming, téléchargement, …). Elle a pour but de réduire le débit nécessaire à celle-ci et, de fait la bande passante.
Cependant, compresser une vidéo implique, nécessairement une perte de qualité objective et subjective qui peut s’avérer gênante.
Le Center for Video Communications a pour projet de limiter au maximum cette perte mais aussi d’établir une
relation, à l’aide du MOSp, entre ces deux types de qualité.
Pour cela, il m’a été demandé de comparer deux méthodes d’encodage d’un CODEC MPEG-4 / H.264 afin de déterminer objectivement et subjectivement quelle est la meilleure. Par la suite, j’ai dû vérifier la relation entre
ces deux modes de comparaison afin de voir si le MOSp est viable.
Les réponses à ces interrogations se trouvent dans le présent rapport.
La compression de la vidéo est de plus en plus utilisée dans le cas de transferts sur un réseau quelconque de vidéos (streaming, téléchargement, …). Elle a pour but de réduire le débit nécessaire à celle-ci et, de fait la bande passante.
Cependant, compresser une vidéo implique, nécessairement une perte de qualité objective et subjective qui peut s’avérer gênante.
Le Center for Video Communications a pour projet de limiter au maximum cette perte mais aussi d’établir une
relation, à l’aide du MOSp, entre ces deux types de qualité.
Pour cela, il m’a été demandé de comparer deux méthodes d’encodage d’un CODEC MPEG-4 / H.264 afin de déterminer objectivement et subjectivement quelle est la meilleure. Par la suite, j’ai dû vérifier la relation entre
ces deux modes de comparaison afin de voir si le MOSp est viable.
Les réponses à ces interrogations se trouvent dans le présent rapport.
VERGNE Aurore 2 me anne Rseaux et Tlcommunications 2009 - 2010 Matre de stage : Dr Yafan Zhao Comparaison des performances de deux mthodes dencodage pour un CODEC H.264
VERGNE Aurore 2 me anne Rseaux et Tlcommunications 2009-2010 1
Remerciements
Je remercie tout dabord Yafan Zhao ainsi que les membres du Center for Video Communications pour leur accueil, leur aide et leur confiance.
Je tiens ensuite remercier lquipe pdagogique, notamment Jol Toussaint, ainsi que le personnel administratif du dpartement Rseaux et Tlcommunications pour le travail quils ont accompli durant mes deux annes de formation. Je tiens adresser des remerciements particuliers Lynsey Giroire, professeur danglais, pour mavoir offert la possibilit de faire ce stage qui est, dune part, ltranger et qui, dautre part, se situe dans le domaine du codage vido, discipline qui nest pas enseign lInstitut Universitaire de Technologie. Je la remercie galement du suivi quelle a effectu durant celui-ci. Je remercie galement Noura Guerchouch, secrtaire du dpartement, pour lattention quelle a port la compltion et lenvoi des dossiers de poursuite dtude.
Enfin, je remercie, Gordon Ross, rceptionniste du btiment de la Robert University St Andrew Street, Ann Gardner et Malgorzata Lewandowska, secrtaires de la School of Computing, pour leur aide dans la recherche de logement et les formalits administratives. Comparaison des performances de deux mthodes dencodage pour un CODEC H.264
VERGNE Aurore 2 me anne Rseaux et Tlcommunications 2009-2010 2
Sommaire
Remerciements...page 1 Sommaire.. page 2 Introduction.. page4 1. Prsentation du contexte.. page 5 1.1. Aberdeen. page 5 1.2. La Robert Gordon University.. page 6 1.2.1. La Faculty of Health and Social Care. page 7 1.2.2. LAberdeen Buisiness Schoold. page 7 1.2.3. La Faculty of Design and Technology page7 1.2.4. Le Center for Video Communications. page 7 1.3. Dmarche page 9 2. Travail prliminaire : prise en main dun CODEC.... page 10 2.1. Installation de Microsoft Visual Studio.. page 10 2.2. Compilation du CODEC page 14 2.3. Prise en main de lencodeur page 16 2.3.1. Principes gnraux dencodage.. page 16 2.3.2. Fichiers de configuration page 18 2.3.3. Utilisation de lencodeur. page 19 2.3.4. tude des diffrents paramtres. page 21 2.3.4.1. Avec une trame B. page 21 2.3.4.1.1 Variation du nombre de trames par seconde (Frame Rate)..... page 21 2.3.4.1.2. Variation de la compression de la trame I (QPISlice).. page 22 2.3.4.1.3. Variation de la compression des trames P (QPPSlice) page 22 2.3.4.1.4. Variation de la compression des trames B (QPBSlice) page 23 2.3.4.2. Sans trame B.. page 24 2.3.4.2.1. Variation du nombre de trames par seconde (Frame Rate). page 24 2.3.4.2.2. Variation de la compression des trames I (QPISlice) et P (QPPSlice) page 25 2.3.4.2.3. Variation du nombre de trames sautes (FrameSkip) page 25 2.3.4.3. Variation du nombre de trames B (NumberBFrames). page 26 2.3.4.3.1. Cas o le nombre de trames sautes est gal celui des trames B.. page 26 2.3.4.3.2. Cas o le nombre de trames sautes est suprieur celui des trames B page 27 3. tude de deux mthodes dencodage.. page 28 3.1. Comparaison de deux mthodes dencodage. page28 3.1.1. Prsentation des deux mthodes page 28 3.1.2. tude objective.. page 29 3.1.2.1. Prsentation et mise en uvre.. page 29 3.1.2.2. Rsultats.. page 30 3.1.3. tude subjective. page 40 3.1.3.1. Prsentation et mise en uvre.. page40 3.1.3.2. Rsultats.. page 41 3.2. tude de la relation entre qualit visuelle et MOSp. page 46 3.2.1. Dfinition du MOSp.. page 46 3.2.2. Compilation et utilisation du nouveau CODEC. page 48 3.2.3. Installation de Matlab.. page 49 3.2.4. Cration de la carte (map) du MOSp de chaque macrobloc page 54 3.2.5. Rsultats. page 57
Comparaison des performances de deux mthodes dencodage pour un CODEC H.264
VERGNE Aurore 2 me anne Rseaux et Tlcommunications 2009-2010 3
Comparaison des performances de deux mthodes dencodage pour un CODEC H.264
VERGNE Aurore 2 me anne Rseaux et Tlcommunications 2009-2010 4
Introduction
Dans le cadre de la deuxime anne de Diplme Universitaire de Technologie Rseaux et Tlcommunications, il ma t demand de faire un stage de dix semaines. Il sest droul au Center for Video Communications de la Robert Gordon University Aberdeen, en Ecosse sous la direction du Dr Yafan Zhao.
La compression de la vido est ncessaire afin de rduire la taille du mdia dorigine pour pouvoir lenvoyer sur un rseau tel quInternet. En effet, une squence vido ayant subi peu ou pas de traitement informatique ncessite 200 kbits/s par trame ce qui conduit, pour la transmettre dans sa totalit des dbits gigantesques : gnralement, pour une seconde on ne compte pas moins de 25 trames ce qui implique que le dbit requis pour une seconde dun tel type de vido est de 5 000 kbits/s. En plus du temps de chargement dun mdia de la sorte, avoir de tel dbit pose des problmes de bande passante et, globalement, dencombrement du rseau. Cependant, compresser un mdia provoque ncessairement une baisse de sa qualit. Il faut donc trouver des moyens permettant de limiter la taille du mdia et donc le dbit quil require tout en en gardant une certaine qualit. Des CODEC* tel que celui tudi dans la suite (MPEG-4 / H.264) le permettent mais ils sont loin datteindre une qualit visuelle et mathmatique (i.e. subjective et objective 1 ) optimale.
Le Center for Video Communications se pose ici deux questions : le CODEC propose deux mthodes dencodage, laquelle est objectivement et subjectivement la meilleure ? il y a-t-il une corrlation quelconque entre la comparaison subjective et objective ? Ces questions ont pour but de mettre en avant des anomalies dans le code du CODEC qui pourraient provoquer une perte de qualit. Le but final, pour le Center for Video Communications, est de minimiser cette dernire. Mon sujet sera donc de rpondre aux questions poses plus haut.
Afin dy rpondre, jai organis mon rapport de la manire suivante. Je vais, dans une premire partie, prsenter le contexte de ce stage. Ensuite, je vais expliquer quel fut le travail prliminaire que jai d effectuer : il a consist la prise en main dun CODEC. Puis je dvelopperai mes exprimentations qui se sont droules en deux tapes : jai, tout dabord, comparer deux mthodes dencodage avant de mintresser au MOSp 2 qui est un nouvel indicateur de qualit mise en place par le Center for Video Communications. Enfin, je dresserai le bilan de ce stage.
Les mots suivis * sont dfinis dans le glossaire page 67. 1 Ces deux mthodes de comparaison sont dfinies dans la partie 3.1.1. 2 Cet indicateur sera dfini dans la suite de ce rapport dans la partie 3.2.1. Comparaison des performances de deux mthodes dencodage pour un CODEC H.264
VERGNE Aurore 2 me anne Rseaux et Tlcommunications 2009-2010 5
1. Prsentation du contexte
1.1. Aberdeen
Aberdeen est une ville situe au nord de la Grande Bretagne, en cosse. Cest la troisime ville de cette rgion en nombre dhabitants (210 000) derrire Glasgow et dimbourg. Elle est situe lembouchure de deux rivires : la Dee au sud et la Don au nord.
Figure 1.1.1. : Carte du Royaume-Uni
Aberdeen est btie principalement en granite : ce matriau a t beaucoup utilis durant le rgne la reine Victoria (poque Victorienne 1837 1901) et la seconde moiti du XIX me sicle. Le granite tant de couleur grise, la ville est aussi connue sous le nom de The Grey City.
Figure 1.1.2. : Btiments en granite. gauche, une maison sur Great Western Road et droite une glise sur Union Street Source personnelle Comparaison des performances de deux mthodes dencodage pour un CODEC H.264
VERGNE Aurore 2 me anne Rseaux et Tlcommunications 2009-2010 6
De plus, Aberdeen est lune des villes les plus riches dEcosse grce lexploitation du ptrole offshore*. Cest dailleurs la capitale europenne du ptrole Oil capital in Europe.
En outre, la devise de la ville est Bon accord ; cette phrase tait celle de reconnaissance entre cossais lors de la guerre contre les anglais.
Figure 1.1.2. : Armoiries et devise de la ville Source : http://www.ngw.nl/int/gbr/scot/aberdee.htm
Enfin, la ville est constitue de deux universits regroupant prs de 30 000 tudiants. Chacune dentre elle en est compose d peu prs 15 000. Ces deux universits sont la Robert Gordon University et lUniversity of Aberdeen. Cette dernire est la plus ancienne ; en effet, elle a t fonde en 1860 par regroupement du Kings College et du Marchial College. La Robert Gordon University est, quant elle beaucoup plus rcente. Je la prsente plus en dtail dans la partie suivante. LUniversity of Aberdeen et la Robert Gordon University sont les universits les plus au nord du Royaume-Uni.
1.2. La Robert Gordon University (RGU)
La Robert Gordon University est une universit moderne tant reconnue comme telle depuis 1992. En 2009, elle a t nomme Best Modern University in the UK par le Times Good University Guide. Toujours daprs le mme guide, cest la quatrime universit en termes demplois de ces diplms. Elle compte environ 12 800 tudiants rpartis sur ces deux campus de Garthdee (en rose sur le plan) au sud et de Schoolhill (en orange) en centre-ville.
Figure 1.2.1. : Plan dAberdeen (sud et centre-ville) Source : http://maps.google.co.uk Comparaison des performances de deux mthodes dencodage pour un CODEC H.264
VERGNE Aurore 2 me anne Rseaux et Tlcommunications 2009-2010 7
Comme la plupart des tablissements scolaires au Royaume-Uni, elle a une devise en latin qui est la suivante Omni Nunc Arte Magistra qui signifie Fait de ton mieux avec tes propres capacits.
Elle comporte trois ples, la Faculty of Health and Social Care, lAberdeen Buisiness School et la Faculty of Design and Technology.
Figure 1.2.2. : Logo de RGU Source : http://rgu.ac.uk
1.2.1. La Faculty of Health and Social Care Situe sur Garthdee, la Faculty of Health and Social Care runit les diffrents dpartements ayant attrait aux sciences sociales et la sant. Elle regroupe la School of Applied Social Studies spcialise dans le social, la School of Health Sciences centralisant des disciplines telles que la mdecine, la radiologie ou encore la nutrition, la School of Nursing and Midwifery qui correspond une cole dinfirmires et de sages-femmes et la School of Pharmacy and Life Sciences 1 rassemblant la pharmacie et la biologie.
1.2.2. LAberdeen Buisiness School linstar de la Faculty of Health and Social Care, lAberdeen Buisiness School se trouve sur le campus de Garthdee. Elle est compose de lAccounting, Finance and Economics Department tant lun des plus grands de ce ple et ayant pour vocation lenseignement des finances et de lconomie, le Communications, Marketing & Media Department qui est ax sur la communication et le marketing, le Management Department qui a un des plus forts taux de russite aux examens de Grande Bretagne et qui propose un enseignement permettant laccs des postes o le management est une ncessit et le Law Department dont la spcialit est le droit.
1.2.3. La Faculty of Design and Technology La Faculty of Design and Technology est la fois sur le campus de Garthdee et de Schoolhill. Elle possde les dpartements suivants : la Scott Sutherland School of Architecture and Built Envirnoment et la Gray's School of Art sur Garthdee qui sont, respectivement, une cole darchitecture et une dart, la School of Computing et la School of Engineering sur Schoolhill proposant des formations en informatique pour la premire et dans des domaines allant du rseau llectronique en passant par les sciences de lingnieur pour la seconde. Cest dans cette dernire que se trouve le Center for Video Communications o jai effectu mon stage.
1.2.4. Le Center for Video Communications Le Center for Video Communications, abrg CVC dans la suite, est un laboratoire de recherche travaillant dans les domaines de limagerie et de la communication. Ses membres mnent des recherches dans les domaines suivants : la compression* de la vido grce au codage*. les normes de compression dont MPEG-4* et H.264*. le codage vido dynamique (i.e. adaptation du taux de compression en fonction du contenu de la vido [explications plus en dtail dans la partie2.4]). les codages vido peu complexes permettant ainsi des conomies dnergie et de temps : plus un codage est complexe plus il ncessite de temps, de ressources matrielles et donc dnergie. la perception visuelle et le codage de vido. Le CVC cherche rpondre aux questions suivantes : comment peroit-on une image et quels sont les lments qui ne doivent pas tre dgrads par le codage afin que le systme visuel humain* considre la vido comme de bonne qualit ? le transport de donnes multimdias compresses travers un rseau.
1 Seul dpartement de la Faculty of Heath Science est situ sur le campus de Schoolhill en centre-ville. Comparaison des performances de deux mthodes dencodage pour un CODEC H.264
VERGNE Aurore 2 me anne Rseaux et Tlcommunications 2009-2010 8
Figure 1.2.4.1. : Logo du CVC Source : http://www4.rgu.ac.uk/eng/cvc/
Le CVC est organis selon la hirarchie suivante :
Figure 1.2.4.2. : Organigramme du CVC Source personnelle
Le Dr Yafan Zhao est la tutrice principale de Mr James Philp qui est tudiant en 3 me anne de PhD. Il travaille sur un dcodeur vido universel pouvant tre implment aussi bien dans des ordinateurs que dans des lecteurs DVD.
Le Dr Sampath Kannangara est le superviseur principal de Ms Abharana Bhat qui a fini ses tudes mais mne toujours des recherches pour le CVC. Son projet est de trouver une relation entre un indicateur de qualit mathmatique le MSE 1 et un de qualit visuelle le MOS 1 afin de dvelopper un CODEC permettant davoir la meilleure qualit dimage possible. Cest ce sujet quest reli le mien. En effet, je vais devoir prouver les rsultats quelle a dj obtenus afin de lui permettre damliorer son CODEC. Pour cela, ma matre de stage va maiguiller quant aux expriences mener.
1 Ces deux indicateurs sont dfinis dans la partie 3.2.1. Dr Sampath Kannangara Ms Abharana Bhat Dr Yafan Zhao Mr James Philp Miss Aurore Vergne Dr Laura Muir Collaboration Tuteur principal Tuteur secondaire Comparaison des performances de deux mthodes dencodage pour un CODEC H.264
VERGNE Aurore 2 me anne Rseaux et Tlcommunications 2009-2010 9
1.3. Dmarche
Ma dmarche se compose de trois tapes qui vont permettre de rpondre aux questions poses dans lintroduction.
Tout dabord, je vais prendre en main un CODEC H.264 / MPEG-4. Nayant aucune connaissance dans le domaine du codage vido, ma matre de stage, le Dr Yafan Zhao, a jug quil tait plus judicieux de me faire commencer par le dbut c'est--dire par la comprhension des principes gnraux dencodage ( laide de la lecture dun livre) et des diffrents paramtres du CODEC ainsi que son fonctionnement global. En effet, celui-ci peut paraitre compliqu au premier abord car il sutilise en lignes de commandes et est fourni sous la forme de fichiers compiler* soit mme. Cette dcouverte saccompagne de la lecture dun ouvrage expliquant les principes fondamentaux du codage MPEG-4 / H.264. Cette tape est primordiale la bonne marche de mon sujet car elle me permet de comprendre le fonctionnement basique dun CODEC vido.
Ensuite, je vais comparer de manire objective et subjective les deux mthodes dencodage propose par le CODEC afin de dterminer laquelle est la plus performante. Cette phase est compose de deux parties : la premire consiste la comparaison des mthodes elles-mmes ; la seconde est la vrification de la relation entre le MOSp et la qualit visuelle dune squence.
Enfin, je rpondrai aux questions poses dans lintroduction grces aux rsultats et aux observations des parties prcdentes.
Figure 1.3.1. : Dmarche mise en place pour rsoudre mon sujet Source personnelle - lecture d'un livre expliquant les principes du codage de la vido - prise en main d'un CODEC Comparaison objective et subjective de deux mthodes d'encodage Vrification de la relation entre MOSp et qualit visuelle quelle mthode est la plus performante ? il y a-t-il corrlation entre qualiti visuelle et MOSp ? Travail prliminaire tude de deux mthodes dencodage Conclusion Comparaison des performances de deux mthodes dencodage pour un CODEC H.264
VERGNE Aurore 2 me anne Rseaux et Tlcommunications 2009-2010 10
2. Travail prliminaire : prise en main dun CODEC
Il ma t demand de tlcharger un CODEC permettant dencoder une vido au format MEPG-4 / H.264. Je lai tlcharg, sur les conseils de ma maitre de stage, ladresse : http://iphome.hhi.de/suehring/tml/download/version 12.1. Il se prsente sous la forme dune archive zip contenant des fichiers en langage C compiler soi-mme. Je lai, dans un premier temps, dcompress. Puis, je lai compil aprs avoir, au pralable, installer Microsoft Visual Studio 2008 dont lutilisation est recommande par la documentation du CODEC disponible ladresse suivante : http://iphome.hhi.de/suehring/tml/JM%20Reference%20Software%20Manual%20%28JVT-AE010%29.pdf.
2.1. Installation de Microsoft Visual Studio 2008
Microsoft Visual Studio est un IDE* regroupant plusieurs outils de dveloppement dit par Microsoft. Il permet de grer des projets complexes, c'est--dire ncessitant plus dun fichier source crit en un langage de programmation quelconque. Visual Studio en prend en charge une grande varit (C, C++, Visual Basic, XML, xHTML, JavaScript et CSS).
Je procde son installation sur mon ordinateur personnel. Aprs avoir mis le DVD, dans le lecteur, la fentre suivante apparait.
Figure 2.1.1. : cran de slection des composants installer
La seule option actuellement possible est Install Visual Studio 2008. Par consquent, je clique sur le texte encadr en rose sur la capture. Le programme dinstallation charge alors les lments ncessaires linstallation. De plus, une case cocher permet ou non au programme denvoyer des informations sur linstallation Microsoft. Ne souhaitant pas en transmettre, je ne coche pas la case.
Comparaison des performances de deux mthodes dencodage pour un CODEC H.264
VERGNE Aurore 2 me anne Rseaux et Tlcommunications 2009-2010 11
Figure 2.1.2. : Chargement des fichiers ncessaires linstallation
Une fois le chargement termin et aprs avoir cliqu sur Next, il faut accepter la licence prsente sur le produit en slectionnant I have read and accept the license term, saisir la cl et le nom dutilisateur et cliquer, une fois de plus sur Next.
Figure 2.1.3. : cran dacceptation de la licence et de saisi de la cl du produit
Il est dsormais demand de choisir le type dinstallation voulu. Ils sont au nombre de 3 : par dfaut, complte et personnalise. Une installation par dfaut installe le programme ainsi que les composants ncessaires son bon fonctionnement, une installation complte installe le programme et tous ses composants optionnels et une installation personnalise laisse le choix lutilisateur des lments devant tre installs. Certains composants tels que Microsoft SQL Server ne mtant pas utiles cest cette dernire que je choisis.
Comparaison des performances de deux mthodes dencodage pour un CODEC H.264
VERGNE Aurore 2 me anne Rseaux et Tlcommunications 2009-2010 12
Figure 2.1.4. : cran de slection du type dinstallation
Pour cela, je slectionne Custom sur la capture prcdente et clique sur Next. Puis je dcoche tout ce qui est en plus de Visual Studio c'est--dire Microsoft SQL Server, Crystal Reports Basic for Visual Studio 2008 et Crystal Reports Basic 64-bits Runtime for Visual Studio 2008.
Figure 2.1.5. : cran de slection des composants de Visual Studio installer
Je clique sur Install. Linstallation commence alors et dure une vingtaine de minutes. Une fois quelle est acheve, lcran suivant apparait.
Comparaison des performances de deux mthodes dencodage pour un CODEC H.264
VERGNE Aurore 2 me anne Rseaux et Tlcommunications 2009-2010 13
Figure 2.1.6. : cran indiquant la fin de linstallation
Je clique sur Finish.
Le programme tant install, je peux le lancer en cliquant sur licne de lancement prsent dans la rubrique Microsoft Visual Studio du menu dmarrer.
Figure 2.1.7. : Visual Studio aprs dmarrage
Le programme se lance.
Comparaison des performances de deux mthodes dencodage pour un CODEC H.264
VERGNE Aurore 2 me anne Rseaux et Tlcommunications 2009-2010 14
2.2. Compilation du CODEC
La premire tape consiste dmarrer Visual Studio. Il faut ensuite ouvrir le projet que lon veut compiler, pour cela, il faut cliquer sur le bouton Open et slectionner le fichier projet voulu (son extension* est .sln). Dans mon cas, il se trouve dans D:\AURORE\IUT\Stage\JM.
Figure 2.2.1. : cran de slection du fichier ouvrir
Sur la capture ci-dessus, nous pouvons voir quil y a plusieurs fichiers .sln. Ceux-ci correspondent aux diffrentes versions de Visual Studio. En effet, pour des soucis de compatibilit, lauteur du codec a choisi de lenregistrer sous diverses versions du logiciel. Daprs la documentation, pour lutiliser avec Visual Studio 2008, il faut prendre jm_vc9.sln. Ce fichier ntant pas prsent, je choisis celui correspondant la version la plus rcente avant 2008, c'est--dire 2005. Le fichier convenant est jm-vc8.sln. Je louvre.
Une fois ouvert, larborescence du projet apparait sur la partie droite de lcran (cadre rose sur la capture suivante).
Figure 2.2.2. : cran de gestion du projet Comparaison des performances de deux mthodes dencodage pour un CODEC H.264
VERGNE Aurore 2 me anne Rseaux et Tlcommunications 2009-2010 15
Ce projet se compose de 3 programmes : lencod qui encode la vido ldecod qui la dcode rtpdumb qui permet danalyser les paquets RTP*
Nayant jamais compil ce projet prcdemment, je vais devoir le compiler en totalit (i.e. les 3 programmes). Pour cela, il faut se rendre dans le menu Buid en haut et choisir Build Solution.
Figure 2.2.3. : Menu permettant de compiler un projet
noter : si lon ne veut compiler quun seul programme, par exemple ledecod, il suffit de le slectionner dans la partie de droite (cf figure 2.2.2.), daller dans Buid puis de cliquer sur Build ldedecod.
La compilation commence alors. Une fois celle-ci termine, le nombre de succs, derreurs, de mises jour et de parties sautes apparaissent dans la partie Output situe en bas de lcran. Dans le cadre rose, on peut voir quil y a eu trois succs et aucune erreur. Les programmes se trouvent dans le mme dossier que les fichiers dextension .c qui le compose c'est--dire dans D:\AURORE\IUT\Stage\JM\bin.
Figure 2.2.4 : Log* des vnements stant produit durant la compilation
La compilation ayant russi, je peux dsormais prendre en main le programme dencodage (lencod.exe) en dcrivant les principes gnraux de codage en MPEG-4 / H.264 puis en tudiant la fonction des diffrents paramtres du CODEC. Comparaison des performances de deux mthodes dencodage pour un CODEC H.264
VERGNE Aurore 2 me anne Rseaux et Tlcommunications 2009-2010 16
2.3. Prise en main de lencodeur
Avant de modifier les paramtres dencodage, je dois dabord comprendre quels sont les principes gnraux dencodage dans le cas du MPEG-4 / H.264. Ils sont dcrits dans le livre H.264 and MPEG-4 Video Compression Video compression for Next-generation Multimedia de Iain E.G. Richardson dont jai d lire certains chapitres (se reporter aux notes lannexe I).
2.3.1. Principes gnraux dencodage Dans cette partie, je vais voquer les principes dencodages qui seront utiles dans la suite de ce rapport.
Tout dabord, il faut savoir quune scne filme est continue dans le temps et dans lespace, par consquent, un CODEC vido utilise deux types dchantillonnages* : un temporel et un spatial. Lchantillonnage temporel consiste prendre une srie de trames issues de la vido intervalles rguliers. Le spatial, quant lui, a pour rle dchantillonner une srie de points de limage disposs sur une grille. Chaque chantillon dcrit la luminosit et la couleur de limage en ce point et est reprsent comme un nombre.
Lchantillonnage spatial se fait sur une grille rectangulaire ou carre. Plus celle-ci a de carreaux, plus il y a dchantillons et donc meilleure est la qualit. Chaque chantillon est plac lintersection dune horizontale et dune verticale et une forme carre : cest un pixel. Lchantillonnage temporel consiste capturer des images intervalles rguliers. Plus le nombre de trames est grand, plus le mouvement est fluide, moins il y en a, plus celui-ci est saccad.
Comme je lai dit ci-dessus, chaque chantillon dcrit la luminosit et la couleur de limage en ce point. Mais, il est bon de se demander quelles sont les mthodes permettant de dcrire la couleur. Si limage est monochrome*, un indicateur de luminosit suffit. Si limage est en couleur, il y a deux mthodes : le RGB (Red, Green, Blue) ou RVB (Rouge, Vert, Bleu) en franais code chaque chantillon et donc chaque pixel, laide de trois nombres : le premier indique la quantit de rouge, le second celle de bleu et le dernier, celle de vert. Avec ce procd, il faut capturer chaque composante sparment. une distance normale (c'est--dire 50 cm ou plus), la runion de ces trois couleurs permet de voir la couleur dorigine de limage.
Cependant, avec cette mthode, les couleurs ont toutes la mme luminosit ce qui peut poser des problmes au niveau du contraste.
chantillonnage temporel chantillonnage spatial 250 141 61 Comparaison des performances de deux mthodes dencodage pour un CODEC H.264
VERGNE Aurore 2 me anne Rseaux et Tlcommunications 2009-2010 17
le YC b C r est un moyen efficace pour reprsenter les couleurs et la luminosit. Cette dernire une meilleure rsolution que les couleurs. En effet, le systme visuel humain est plus sensible la luminance qu la chrominance. Il est donc ncessaire de la privilgier par rapport aux couleurs cest pour cette raison que je comparerai le rapport signal de la luminosit et non ceux des couleurs dans la suite de ce rapport (se reporter lannexe I partie 2.4.2. pour les calculs). Il existe plusieurs formats dchantillonnage pour le YC b C r . Le premier dentre est le 4:4:4 : les trois composantes ont la mme rsolution verticale et horizontale : il y a 4 luminances pour 4 composantes bleues et 4 rouges. Ce format est fidle loriginal sur le plan de la chrominance*. Le second est le 4:2:2 : la chrominance a la mme rsolution verticale que la luminance* et une demi-rsolution horizontale (pour 4 luminances, il y a 2 composantes bleues et 2 rouges). Il est utilis pour la reproduction haute qualit des couleurs. Le troisime format est le 4:2:0 : les composantes reprsentant les couleurs ont une demi-rsolution verticale et horizontale de celle de luminosit. Il est utilis pour les confrences vido, la tlvision numrique et les DVD. Les deux derniers formats correspondent une compression de limage car toutes les composantes nont pas la mme rsolution.
Figure 2.3.1.3. : 4:4:4, 4:2:2 et 4:2:0 Source personnelle
En plus de la compression apporte par les formats dcrits ci-dessus, lencodeur cherche supprimer la redondance spatiale et / ou temporelle c'est--dire les lments de limage se rptant sur plusieurs images successives ou sur une partie de celle-ci. En effet, si des images ont t captures autour du mme instant, il y a de fortes chances quil y ait une forte corrlation temporelle (cest dautant plus vrai si la frquence dchantillonnage est leve). De plus, des pixels adjacents ont souvent une valeur RVB ou YC r C b voisine. Pour permettre cette suppression, il existe des mthodes telles que la compensation de mouvement. Celle-ci peut tre de deux types : la compensation de mouvement faite partir de la trame prcdente et lestimation de mouvement. La premire fait la diffrence entre la trame prdite et lactuelle. La seconde, quant elle, estime la trajectoire de chaque pixel en fonction du type de mouvement (camra ou objet) (se reporter lannexe I partie 3.3.2. et suivantes).
Enfin, il faut savoir que dans une squence encoder, il y a 3 types de trames : la trame I est la premire dune squence. Elle est donc unique et est prcde dun entte dont la taille est paramtrable. les trames P suivent la I. Pour en encoder une, il faut avoir cod celle qui la prcde.
Figure 2.3.1.4. : Encodage dune trame P Source personnelle
les trames B sont ajoutes lors de lencodage. Elles ne sont donc pas prsentent dans la squence originale. La plupart des encodeurs permettent de choisir la frquence laquelle on les cre. Pour encoder une trame B, il est ncessaire davoir encod la trame qui la prcde et celle qui la suit.
Figure 2.3.1.5. : Encodage dune trame B Source personnelle
Aprs avoir dfini les principes gnraux dencodage, je peux me pencher sur le fichier de configuration de lencodeur (lencod.exe). P B Comparaison des performances de deux mthodes dencodage pour un CODEC H.264
VERGNE Aurore 2 me anne Rseaux et Tlcommunications 2009-2010 18
2.3.2. Fichiers de configuration Le fichier de configuration de lencodeur (lencod.exe) se trouve dans D:\AURORE\Stage\JM\bin et a comme extension .cfg. Il est possible de louvrir avec un simple diteur de texte, le Bloc-Notes de Windows par exemple. Il se prsente sous la forme NomDuParamtre = Valeur #Commentaire.
Le nombre de paramtres quil contient est trs grand. Par consquent, je ne vais pas tous les commenter (ils le sont tous dans la documentation) mais expliquer les plus importants.
InputFile = "foreman.qcif" #Squence encoder. Les formats supports sont cif*, qcif* et yuv*. InputHeaderLength = 0 #Taille de lentte du fichier de sortie. Sil en a une, le nombre de bits total de la squence encode est plus grand. La valeur par dfaut est 0. StartFrame = 0 #Premire trame encoder, on peut, par exemple, commencer lencodage la trame 5. FramesToBeEncoded = 50 #Nombre de trames total encoder. FrameRate = 30.0 #Nombre de trames par secondes (doit tre compris entre 0,1 et 100,0). La valeur pat dfaut est 30,0. SourceWidth = 176 #Largeur des images de la squence source, ce doit tre un multiple de 16. La valeur par dfaut est 176. SourceHeight = 144 #Hauteur des images de la squence source ce doit tre un multiple de 32. La valeur par dfaut est 144. ReconFile = "D:\AURORE\IUT\Stage\Test\foremanRC10_rec.yuv" #Emplacement du fichier servant reconstruire la vido. OutputFile = "D:\AURORE\IUT\Stage\Test\foremanRC10.264" #Emplacement de la squence de sortie obligatoirement au format .264*. Cest le programme servant dcoder qui reconstruit le fichier au format cif/qcif laide de ce fichier et du ReconFile. ProfileIDC = 100 #Permet de choisir entre les modes de compensation ou prdiction de mouvement (cf partie prcdente). Cette valeur est galement en corrlation avec le format YUV que lon veut. La valeur par dfaut est 88. Les valeurs possibles sont dfinies dans la documentation. 100 correspond High ce qui permet davoir une prdiction de limage suivante leve et donc prcise. QPISlice = 28 #Paramtre dencodage de la trame I (doit tre entre 0 et 51). Il sapparente un taux de compression. Dans la suite je le nommerai aussi paramtre de qualit. QPPSlice = 28 #Paramtre dencodage des trames P (doit tre entre 0 et 51). Il sapparente un taux de compression. Dans la suite je le nommerai aussi paramtre de qualit. FrameSkip = 1 #Nombre de trames sautes lors de lencodage (sil est 1 ou plus, cela permet de crer des trames B) NumberBFrames = 1 #Nombre de trames B. Ce paramtre doit tre infrieur ou gal au prcdent. QPBSlice = 30 #Paramtre dencodage des trames B (doit tre entre 0 et 51). Il sapparente un taux de compression. Dans la suite je le nommerai aussi paramtre de qualit. RateControlEnable = 0 #Activer (1) le Rate Control permet dencoder les trames avec un QP diffrent en fonction du dbit voulu. Par dfaut, ce paramtre est dsactiv sa valeur est 0. Bitrate = 100000 #Dbit souhait en bits/s. Ce paramtre est utilis par le RateControl InitialQP = 0 #QP de la trame I si lon fait du RateControl. Si ce paramtre est 0 (valeur par dfaut), lencodeur choisi le meilleur QP en fonction du dbit voulu. BasicUnit = 99 # Dfinit lunit de base pour lencodage. Sil est 99, un macrobloc* correspond une unit de base. Par consquent, le QP change pour chaque macrobloc. Lencodeur se charge de faire la moyenne des QP de chaque macrobloc pour avoir celui de la trame. Exemple : si BasicUnit = 11 ; chaque groupe, pouvant avoir un QP diffrent, est compos de 11 macroblocs. ChannelType = 0 #Type de canal de transmission. Si le canal varie au cours du temps, ce paramtre doit tre 1 et 0 sil est constant. YUVFormat = 1 #Type de format YUV. 1 correspond au format 4:2:0 qui est celui par dfaut. Les valeurs possibles et le format YUV correspondant sont dfinis dans la documentation.
Je peux dsormais modifier les paramtres cits ci-dessus afin de mieux comprendre leur fonction en tudiant leur effet sur la vido.
Comparaison des performances de deux mthodes dencodage pour un CODEC H.264
VERGNE Aurore 2 me anne Rseaux et Tlcommunications 2009-2010 19
2.3.3. Utilisation de lencodeur Lencodeur sutilise en ligne de commandes. Pour ouvrir une console, il faut aller dans Dmarrer/Tous les programmes/Accessoires/Excuter. Puis il faut taper cmd.
Figure 2.3.3.1. : La console lors de son ouverture
Il faut ensuite se placer dans le dossier o se trouve le programme (D:\AURORE\Stage\JM\bin). Comme on peut le voir sur la capture ci-dessus, on se trouve dans C:\Users\Erra ce qui correspond mon rpertoire personnel. Or, le programme se trouve sur la deuxime partition de mon disque dur il faut donc sy rendre. Pour cela, je saisis : d: Il faut ensuite que je me place dans le bon rpertoire : cd AURORE/IUT/Stage/JM/bin (Windows interprte le slash (/) comme un anti-slash (\) qui est le sparateur de ce systme dexploitation).
Figure 2.3.3.2. : La console une fois dans le bon rpertoire
On est donc dans le bon rpertoire. Pour excuter le programme, il faut utiliser la commande suivante : lencod.exe [d fichier_conf.cfg] La partie entre crochets est optionnelle. Si on ne dfinit pas le fichier de configuration utiliser, cest celui par dfaut (encoder.cfg) dont on se sert. Lencodage commence. Des lignes nous rappelant le fichier de configuration utilis, les squences dentre et de sortie, le format YUV ainsi que le nombre de trames encoder apparaissent.
Figure 2.3.3.3. : Les premires lignes de log
Fichier de configuration utilis Squences dentre et de sortie Format YUV Nombre de trames I et P encoder / nombre de trames B encoder Comparaison des performances de deux mthodes dencodage pour un CODEC H.264
VERGNE Aurore 2 me anne Rseaux et Tlcommunications 2009-2010 20
Ensuite, les valeurs correspondantes chaque trame encode apparaissent une une dans la console.
Figure 2.3.3.4. : Les diffrentes valeurs pour chaque trame
Il y a deux trames 0000 : la premire (NVB) est une entte, la seconde est la premire trame de la squence (cest la trame I). De plus, lencodeur encode la trame 0 puis la 2 car il y a une trame saute et une trame B. Or, pour coder une trame B, il faut avoir code celle qui la prcde (la 0 dans ce cas) et celle qui la suit (la 2) (cf 2.3.1 Principes gnraux dencodage). ct du numro de la trame, on trouve, entre parenthses, le type de celle-ci. Les diffrentes colonnes correspondant au nombre de bits sur lequel la trame est code (en rose), le taux de compression de la trame (en orange), le rapport signal sur bruit (SNR) par rapport aux diffrentes composantes de la trame (Y correspond la luminance, U et V au couleurs) (en violet), le temps mis pour coder la trame (en marron), le temps de lestimation de mouvement (en vert), le type dencodage de limage (en bleu) et lindicateur de rfrence pour limage (en rouge).
Une fois lencodage termin, on obtient des informations gnrales sur celui-ci.
Figure 2.3.3.5. : Les diffrentes valeurs moyennes de cet encodage
Nombre total de trames encodes (nombre de trames B) Temps total dencodage (nombre de trames encodes par seconde) Temps total de calcul de lestimation de mouvement Dbit Forme de la squence et rappel des QP pour chaque type de trame Nombre total de bits (bits utiliss pour les trames I, P, B et lentte) Moyenne du SNR de chaque trame pour chaque composante noter : on peut sauvegarder ce qui apparait dans la console dans un fichier. Il suffit dutiliser la commande suivante : lencod.exe [d fichier_conf.cfg] > fichier_log.txt Frquence pour lencodage. Cette valeur est gale au FrameRate (nombre de trame par seconde) sauf sil y a des trames B ce qui est le cas ici. Comparaison des performances de deux mthodes dencodage pour un CODEC H.264
VERGNE Aurore 2 me anne Rseaux et Tlcommunications 2009-2010 21
2.3.4. tude de quelques paramtres Tous les tests ont t faits avec le format YUV par dfaut c'est--dire 4:2:0.
2.3.4.1. Avec une trame B Je teste les diffrents paramtres en ayant une trame B car cest la configuration par dfaut. Les captures dcran pour toutes les exprimentations suivre se trouvent dans lannexe II.
2.3.4.1.1. Variation du nombre de trames par seconde (FrameRate) Je commence par tudier leffet du nombre de trames par seconde. Pour cela, je modifie le paramtre FrameRate. Je compare le rsultat de lencodage pour deux valeurs : 30 et 10. Jobtiens les valeurs suivantes.
Nombre de trames par seconde 30 10 Nombre de trames encoder 10 10 Nombre de trames B ajoutes 9 9 Nombre de trames encodes au total 19 19 Frquence pour lencodage 15 5 Dbit (kbits/s) 138,25 46,08 Nombre de bits total 87 560 87 560
La frquence pour lencodage correspond, dans chaque cas la moiti du nombre de trames par seconde. En effet, il y a une trame B ajoute entre chaque trame P. Par consquent, une trame sur deux doit tre cre par lencodeur ce qui provoque une diminution de la frquence lors de lencodage. De plus, le dbit pour un FrameRate de 30 est plus grand que pour un de 10 : dans un cas, une squence dune seconde comportera 30 images alors que dans lautre, il ny en aura que 10. Il faut donc avoir un dbit plus important pour faire passer 30 images par seconde que pour en faire passer 10. Enfin, le nombre total de bits sur lequel la squence est code ne diffre pas. Cela sexplique par le fait que le nombre de trames encoder est le mme dans les deux cas : il y a 1 trame I, 9 trames P et B.
Pour conclure sur cette exprience, je peux dire que le nombre de trames par seconde influe sur le dbit et sur la frquence dencodage des trames : plus il est grand, plus le dbit est important tout comme la frquence pour lencodage. Cependant, il na aucune influence sur le nombre de bits utiliss pour coder la squence.
Je vais maintenant mintresser la variation de la qualit et donc du taux de compression de chaque type de trames en commenant par la trame I.
Comparaison des performances de deux mthodes dencodage pour un CODEC H.264
VERGNE Aurore 2 me anne Rseaux et Tlcommunications 2009-2010 22
2.3.4.1.2. Variation de la compression de la trame I (QPISlice) Le paramtre correspondant la qualit de la trame I est QPISlice. Les valeurs quil peut prendre doivent tre comprises entre 0 et 51 Je compare les rsultats pour 3 valeurs : celle par dfaut, 28, la maximale, 51, et la minimale 0. Jobtiens le tableau suivant.
QPISlice = 0 QPISlice = 28 QPISlice = 51 Nombre de bits sur lequel est code la trame I 193 256 20 704 1 752 SNR Y 75,937 dB 37,455 dB 23,35 dB Dbit (kbits/s) 136,15 46,08 44,26 Nombre de bits total 258 680 87 560 84 088
Le nombre de bits sur lequel la trame I est encode varie normment en fonction du QPISlice. Si ce paramtre est 0, cela correspond une compression entropique* que lon nomme CABAC*; le nombre de bits sur lequel est cod la trame est donc important et, de fait, le nombre de bits total lest aussi, tout comme le dbit. Inversement, si le QPISlice est grand, on a une forte compression do la diminution du nombre de bits (au total ou pour la trame I) et du dbit. Pour ce qui est du rapport signal sur bruit de la composante de la luminosit (SRN Y), plus la compression augmente (c'est--dire plus QPISlice est grand), plus il se dtriore : il devient plus petit et, par consquent, la qualit objective de limage 1 est moindre.
Je vais dsormais faire la mme exprience pour les trames P et B.
2.3.4.1.3. Variation de la compression des trames P (QPPSlice) Le paramtre rglant la qualit des trames P est QPPSlice. Il admet le mme intervalle de valeurs que le QPISclice. Je vais, l aussi, comparer les rsultats pour trois valeurs : les mmes que pour la partie prcdente.
Avec les paramtres par dfaut, c'est--dire une trame B et une trame saute (NumberBFrames = FrameSkip = 1), une trame sur deux est une B.
Figure 2.3.4.1.3.1. : Succession des diffrentes trames pour les paramtres par dfaut et ordre dencodage (se rfrer la figure 2.3.4.) Source personnelle
QPPSlice = 0 QPPSlice = 28 QPPSlice = 51 Intervalle sur lequel sont codes les trames P Moyenne 120 560 - 159 352
129 126 4 992 7 792
6 359 256 624
439 Intervalle SNR Y Moyenne 65,241 dB - 71,563 dB 70,580 dB 36,857 dB 37,035 dB 36,931 dB 24,624 dB - 28,173 dB 25,785 dB Dbit (kbits/s) 627,16 46,08 43,25 Nombre de bits total 1 191 608 87 560 82 168 Nombre de bits pour les trames P 1 162 136 57 232 3 952
Tout comme pour la trame I, le nombre de bits sur lequel sont cods les P varie beaucoup en fonction du QP : plus celui-ci est grand, plus le nombre de bits est faible et inversement. Pour le rapport signal sur bruit de la luminance, celui-ci se dtriore lorsque la compression augmente. De fait, plus la compression augmente, plus la qualit objective de limage diminue. Ces observations sont conformes celles faites pour la trame I. Je vais mintresser, ds lors, aux trames B. 1 La qualit objective sera dfinie dans la suite de ce rapport (partie 3.1.2.). 1 3 2 4 B B I P P Vido Comparaison des performances de deux mthodes dencodage pour un CODEC H.264
VERGNE Aurore 2 me anne Rseaux et Tlcommunications 2009-2010 23
2.3.4.1.4. Variation de la compression des trames B (QPBSlice) Le paramtre permettant de choisir la qualit des trames B se nomme QPBSlice. Je compare, encore une fois, les rsultats pour les 3 mmes valeurs c'est--dire, la valeur par dfaut (30), la maximale (51) et la minimale (0).
QPBSblice = 0 QPBSlice = 30 QPBSblice = 51 Intervalle sur lequel sont codes les trames B Moyenne 144 184 - 158 408
153 483 832 - 1 792
938 96
96 Intervalle SNR Y Moyenne 64,734 dB 72,468 dB 71,243 dB 36,070 dB 36,534 dB 36,257 dB 28,951 dB 34,090 dB 32,169 dB Dbit 768,14 kbits/s 46,08 kbits/s 41,57 kbits/s Nombre de bits total 1 459 464 87 560 78 976 Nombre de bits pour les trames B 1 381 352 9 448 864
L encore, le nombre de bits sur lequel sont codes les trames B varie normment en fonction du paramtre de qualit : plus le QP est grand, plus la compression lest aussi, moins le nombre de bits utiliss par la trame est important. Les observations faites prcdemment quant au SNR sont encore une fois valables c'est--dire, plus le taux de compression et, de fait le QP, est lev, plus le signal sur bruit est petit et donc moindre est qualit objective de limage.
Des trois expriences prcdentes, je peux dduire que QPISlice, QPPSlice et QPBSlice influent, de la mme faon, sur les trames dont ils modifient la qualit. Ayant la mme fonction, ces trois paramtres seront regroups, dans la suite du prsent rapport, sous le terme QP. Lorsque celui-ci est grand, il y a une forte compression ; la trame code utilise donc peu de bits ; le SNR Y est petit ce qui implique une mauvaise qualit objective de limage. Sil est petit, la compression est faible, le nombre de bits est plus important tout comme le ratio signal sur bruit de la luminance ce qui signifie que limage est, objectivement, de meilleure qualit. Cependant, il est possible de voir la dgradation de la vido de manire subjective 1 comme le montre la figure suivante : plus le QP est lev, moins limage est nette. La squence 1 na pas de compression, elle sert de rfrence. Sur squence 2, le visage de la fillette est flou mais reste reconnaissable ce qui nest plus le cas sur la 3. Cette dernire est compose de gros blocs de pixels ce qui la rend grossire et donc floue : il nest plus possible de distinguer clairement les contours des visages.
Figure 2.3.4.1.4.1. : Exemple de vido compresse. De gauche droite QP=0, QP= 28 et QP=51. Source personnelle
Je ritre les mme expriences sans trame B cette fois-ci.
1 La qualit subjective sera dfinie dans la suite de ce rapport (partie 3.1.3.). 1 2 3 Comparaison des performances de deux mthodes dencodage pour un CODEC H.264
VERGNE Aurore 2 me anne Rseaux et Tlcommunications 2009-2010 24
2.3.4.2. Sans trame B Je vais, dans un premier temps, faire varier le nombre de trames par secondes (FrameRate), puis je vais modifier le paramtre de qualit des trames I et P (QPISlice et QPPSlice) et, enfin, je vais tenter de comprendre linfluence des trames sautes (FrameSkip). Les captures dcran pour toutes les exprimentations suivre se trouvent dans lannexe II.
2.3.4.2.1. Variation du nombre de trames par seconde(FrameRate) Le paramtre modifier est FrameRate. Je vais comparer le dbit ainsi que le nombre de bit total pour les mmes valeurs que prcdemment c'est--dire 10 et 30 trames par seconde.
Frame Rate / Nombre de trames par seconde 30 10 Avec 1 trame B Frquence pour lencodage 15 5 Nombre de trames encoder (FramesToBeEncoded) 10 10 Nombre de trames B ajoutes 9 9 Nombre de trames encodes au total 19 19 Dbit (kbits/s) 138,25 46,08 Nombre de bits total 87 560 87 560 Sans trame B Frquence pour lencodage 30 10 Nombre de trames encoder (FramesToBeEncoded) 10 10 Dbit (kbit/s) 168,31 56,10 Nombre bits total 56 104 56 104
Je remarque que la frquence pour lencodage est gale au nombre de trames par seconde. En effet, il ny a plus de trame crer une fois sur deux ce qui rduit le temps de calcul de lencodeur et vite donc une diminution de la frquence lors de lencodage. De plus, le dbit, sans trames B, est plus important de 30 kbit/s pour un nombre de trames par seconde de 30 et de 10 kits/s pour un nombre dimages par seconde de 10. Je peux donc en dduire que lajout de trames B permet de faire diminuer le dbit de la vido : cest, de fait, une sorte de compression. Cependant, le nombre de bits total avec une trame B est plus grand que sans. Cela sexplique par le fait, que, dans le cas o il y a une B, on ajoute des trames et donc des bits.
Je vais dsormais mintresser aux QP de la trame I et des trames P.
Comparaison des performances de deux mthodes dencodage pour un CODEC H.264
VERGNE Aurore 2 me anne Rseaux et Tlcommunications 2009-2010 25
2.3.4.2.2. Variation de la compression des trames I (QPISlice) et P (QPPSlice) Les paramtres modifier pour changer la qualit des trames I et P sont respectivement QPISlice et QPPSlice. Je fais trois tests avec les mmes valeurs que dans les parties 2.3.4.1.2, 2.3.4.1.3 et 2.3.4.1.4 (0, 28 et 51).
QPISlice = 0 QPISlice = 28 QPISlice = 51 Avec 1 trame B Nombre de bits sur lequel est code la trame I 193 256 20 704 1 752 SNR Y 75,937 dB 37,455 dB 23,35 dB Dbit (kbits/s) 136,15 46,08 44,26 Nombre de bits total 258 680 87 560 84 088 Sans trame B Nombre de bits pour la trame I 192 984 20 520 1 720 SNR Y 75,180 dB 37,429 dB 23,268 dB Dbit 226,90 kbits/s 56,10 kbits/s 52,88 kbits/d Nombre de bits total 226 904 56 104 52 880
QPPSlice = 0 QPPSlice = 28 QPPSlice = 51 Avec 1 trame B Intervalle sur lequel sont codes les trames P Moyenne 120 560 - 159 352
129 126 4 992 7 792
6 359 256 624
439 Intervalle SNR Y Moyenne 65,241 dB - 71,563 dB 70,580 dB 36,857 dB 37,035 dB 36,931 dB 24,624 dB - 28,173 dB 25,785 dB Dbit (kbits/s) 627,16 46,08 43,25 Nombre de bits total 1 191 608 87 560 82 168 Nombre de bits pour les trames P 1 162 136 57 232 3 952 Sans trame B Intervalle sur lequel sont codes les trames P Moyenne 106 554 - 151 824
115 953 2 960 - 4 432
3 934 120 - 312
211 Intervalle SNR Y Moyenne 65,276 dB 70,677 dB 69,792 dB 36,788 dB - 36,930 dB 36,854 dB 24,258 dB 29,738 dB 26,108 dB Dbit (kbits/s) 1 064,28 56,10 22,60 Nombre de bits total 1064,28 kbits/s 56 104 22 600 Nombre de bits pour les trames P 1 043 584 35 408 1 904
Les observations faites dans la partie prcdente sont encore vraies ici : plus le QP est grand, plus la compression des trames est grande et donc, moins elles prennent de bits. De plus, le SNR diminue en fonction du QP : plus ce dernier est grand, plus le rapport signal sur bruit est petit et donc plus limage est de mauvaise qualit objective.
Je peux donc en dduire que le QP a la mme fonction quil y est ou non, des trames B.
Je vais maintenant mintresser au paramtre qui permet de dfinir le nombre de trames que lon saute lors de lencodage.
2.3.4.2.3. Variation du nombre de trames sautes (FrameSkip) Le paramtre permettant de sauter des trames lors de lencodage est FrameSkip.
Sauter des trames signifie ne pas encoder toutes les encoder. Par exemple, si on en en saute 1, lencodeur va coder la 0, la 2 puis la 4 et ainsi de suite. De plus, pour un mme nombre de trames encoder, plus le nombre de trames sautes est important, plus on est loin dans la vido. Je mexplique. Si on encode 5 trames sans en sauter, on aura les trames suivantes 0, 1, 2, 3 et 4 ; si en en saute une, 0, 2, 4, 6 et 8 ; si en saute deux 0, 3, 6, 9 et 12.
Je me suis pose la question de savoir quelle est linfluence du saut de trames sur la frquence dencodage et sur le dbit. Pour cela, jai encod 3 fois la mme squence avec 0, 1 et 4 trames sautes.
Comparaison des performances de deux mthodes dencodage pour un CODEC H.264
VERGNE Aurore 2 me anne Rseaux et Tlcommunications 2009-2010 26
Figure 2.3.4.2.3.1. : Exemple dencodage avec 0, 1 et 4 trames sautes. Source personnelle
Lorsque le nombre de trames sautes augmente, jobserve une diminution de la frquence pour lencodage par deux lorsquil y a une trame saute et par cinq quand il y en a quatre. Le dbit est galement moins lev. Cela peut sexpliquer par le fait que lencodeur doit calculer le nombre de trames sauter.
Aprs mtre intresse limpact des diffrents paramtres en prsence ou non de trames B. Je vais me pencher sur la variation du nombre de celles-ci afin de voir limpact sur le dbit et la frquence pour lencodage.
2.3.4.3. Variation du nombre de trames B Dans cette partie, je vais tudier deux cas : dans le premier le nombre de B est gal au nombre de trames sautes (NumberBFrame = FrameSkip). Dans le second, le nombre de trames sautes est suprieur celui des B (NumberBFrame < FrameSkip). Les captures dcrans pour toutes les exprimentations qui suivent se trouvent lannexe II.
noter : le nombre de trames B ne peut pas tre plus grand que celui de trames sautes. En effet, pour crer une trame B, il faut laisser une trame vide entre deux trames P ou entre une trame I et une P. (se reporter la figure 2.3.4.1.3.1).
2.3.4.3.1. Cas o le nombre de trames sautes est gal celui des trames B Dans cette tude, les paramtres NumberBFrame et FrameSkip sont gaux. Je vais mener la mme exprience pour quatre valeurs.
Lorsquil y a une trame B lencodage se passe de la mme manire qu la figure 2.3.4.1.3.1. Quand il y a 2 trames B, lencodage se fait comme expliqu sur la figure suivante.
Figure 2.3.4.3.1.1. : Ordre dencodage quand il y a 2 trames B Source personnelle
Pour pouvoir comparer les rsultats, il faut que le nombre total de trames codes soit identique. Par consquent, le nombre de trames encoder va changer en fonction de celui des B.
Je rpte cette exprience pour 0, 1, 2, 3, 4 et 5 trames B. Le paramtre de compression de celles-ci (QPBSlice) est laiss sa valeur par dfaut c'est--dire 30. 1 3 0 2 4 Vido 6 8 Vido 2 4 0 3 Vido B B P 4 5 6 2 I B B P 1 Comparaison des performances de deux mthodes dencodage pour un CODEC H.264
VERGNE Aurore 2 me anne Rseaux et Tlcommunications 2009-2010 27
Nombre de trames B 0 1 2 3 4 5 Nombre de trame encoder 61 31 21 16 13 11 Nombre total de trames B 0 30 40 45 48 50 Nombre total de trames Forme de la squence 61 IPPPP 61 IBPBP 61 IBBPBBP 61 IBBBPBBBP 61 IBBBBPBBBBP 61 IBBBBBPBBBBBP Frquence pour lencodage 10 5 3 3 2 2 Dbit (kbits/s) 39,75 34,54 32,85 33,08 33,18 34,44 Nombre de bits total 242 504 210 704 200 400 201 800 202 368 210 080 Nombre de bits pour les trames B 0 25 384 48 720 69 056 84 480 105 296
Je remarque que le dbit diminue lorsque le nombre de trames B est gal 1 ou 2. Au-del, il r-augmente. Le nombre bits total varie de la mme faon : sil y a plus de deux trames B, le nombre de bits ncessaire celle-ci est grand si bien quil suffit, lui seul, faire augmenter le dbit. La frquence pour lencodage, diminue lorsque le nombre de trames B devient grand. Lexplication de ce phnomne est la mme que prcdemment : lencodeur a besoin dun temps de calcul plus long lorsquil y a plus de trames B.
Je vais maintenant mintresser au cas o il y a plus de trames sautes que de trames B.
2.3.4.3.2. Cas o le nombre de trames sautes est suprieur celui des trames B Pour les exprimentations qui vont suivre, NumberBFrames est plus petit que FrameSkip. Il y a donc plus de trames sautes que de B.
Dans le cas o il y a deux trames sautes et une B, lencodage se passe comme dcrit sur la figure suivante.
Figure 2.3.4.3.2.1. : Ordre dencodage quand il y a 1 trame B et 2 trames sautes Source personnelle
Sil y a trois trames sautes pour une B, lencodage se droule comme suit.
Figure 2.3.4.3.2.2. : Ordre dencodage quand il y a 1 trame B et 3 trames sautes Source personnelle Je remarque que si lon saute 3 trames, lencodeur code une fois sur deux une trame B.
Je fais 3 encodages afin de pouvoir voir quelle est linfluence du nombre de trames sautes sur le dbit et la frquence pour lencodage.
1 trame B 1 trame saute 1 trame B 2 trames sautes 1 trame B 3 trames sautes Frquence pour lencodage 5 3 3 Dbit 46,08 kbits/s 33,92 kbits/s 27,80 kbits/s La frquence pour lencodage et le dbit diminuent lorsque le nombre de trames sautes augmente. Le mme rsultat a t observ dans la partie 2.3.4.2.3.
Aprs avoir pris en main le CODEC, je vais pouvoir tudier les deux mthodes dencodage quil propose en les comparant de manire objective et subjective. Je vais ensuite mintresser la relation entre ces deux mthodes en cherchant savoir sil existe une relation entre elle. Pour cela, je vais me baser sur le MOSp. 1 2 3 4 5 6 I B B P P P B Vido Vido I B P 1 3 4 2 P B Comparaison des performances de deux mthodes dencodage pour un CODEC H.264
VERGNE Aurore 2 me anne Rseaux et Tlcommunications 2009-2010 28
3. tude de deux mthodes dencodage
Cette partie prsente les exprimentations visant permettre au CVC damliorer le CODEC. Dans un premier temps, jai tudi les deux mthodes dencodage quil propose. Dans un second, jai mis en place des exprimentations permettant de mettre en avant la relation entre qualit subjective et objective dune vido.
3.1. Comparaison de deux mthodes dencodage
Dans cette partie, je vais tudier les deux mthodes dencodage proposes par le CODEC (le mme que dans la partie 2). Dans un premier temps, je les prsenterai. Ensuite, je les comparerai selon deux techniques, lune qualifie dobjective et lautre de subjective.
3.1.1. Prsentation des deux mthodes Les deux mthodes que jai d comparer sont les suivantes.
La premire consiste fixer la qualit des diffrentes images (I, P et B) grce aux paramtres QPISlice, QPPSlice et QPBSlice. Dans les exprimentations que jai men, je nai pas mis de trames B, QPBSlice est donc inutile. De plus, pour pouvoir comparer, il faut que toutes les images, quelles soient I ou P, aient la mme qualit. Par consquent, QPISlice et QPPSlice ont la mme valeur. Ils seront, comme prcdemment, regroups sous le sigle QP. Cette mthode est appele mthode du QP fixe.
La seconde consiste fixer le dbit de la vido que lon veut. Lencodeur, afin datteindre ce dernier, va modifier la qualit et donc le QP de chaque image : si le dbit actuel est trop important par rapport celui que lon veut, le QP augmente ce qui permet davoir une compression plus forte et, par consquent, de faire diminuer le dbit. Le mcanisme inverse sapplique lorsque le dbit actuel est trop faible. Lencodeur effectue donc un contrle du dbit. Cette mthode est appele mthode du Rate Contol (RC). Afin de lactiver, il faut mettre le paramtre RateControlEnable 1 1. De plus, Bitrate 1 prend la valeur en bits par seconde, du dbit que lon veut atteindre. InitialQP 1 qui permet de dfinir le QP de la trame I est mis 0. Enfin, BasicUnit 1 est, par dfaut, 11.
La prsentation des deux mthodes tant termines, je vais pouvoir les mettre en uvre et les comparer.
1 Ces paramtres ont t dfinis dans la partie 2.3.2. Comparaison des performances de deux mthodes dencodage pour un CODEC H.264
VERGNE Aurore 2 me anne Rseaux et Tlcommunications 2009-2010 29
3.1.2. tude objective
3.1.2.1. Prsentation et mise en uvre Ltude objective de la qualit dune vido se fait grce des outils mathmatiques tels que le dbit et le PSNR* Y. Plus ce dernier est lev, meilleure est la qualit de la vido. Je vais comparer 5 squences au format qcif de cette manire. La premire, foreman.qcif, montre un ouvrier qui parle puis la camra bouge afin de filmer le chantier. Cette vido a un mouvement modr. La deuxime, mother_and_daughter.qcif, prsente une mre et sa fille sur un fond uni qui parlent. Cette vido na pas beaucoup de mouvement. Sur la troisime, coastguard.qcif, on suit de la camra un bateau de garde cte. La quatrime, stefan.qcif, est tir dun match de tennis. La dernire, table.qcif, quant elle, prsente un match de tennis de table : au dbut, on voit juste les rebonds de la balle sur la raquette puis la camra d-zoome afin de filmer le premier joueur ; dans la suite son angle varie pour filmer tour tour, chacun des pongistes. Ces trois squences ont beaucoup de mouvement.
Figure 3.1.2.1.1. : Aperu des squences encoder (1 re image)
Je vais encoder chaque vido avec la mthode du QP fix. Les squences ainsi codes auront un dbit quelconque que je vais utiliser pour la seconde, celle du Rate Control.
Le but de cette tude est de voir la diffrence au niveau du dbit et du PSNR Y en fonction de la mthode utilise et de comprendre la corrlation entre la quantit de mouvement dans une vido et le dbit quelle ncessite pour une qualit donne.
Comparaison des performances de deux mthodes dencodage pour un CODEC H.264
VERGNE Aurore 2 me anne Rseaux et Tlcommunications 2009-2010 30
3.1.2.2. Rsultats Je commence par encoder la squence foreman.qcif. Il ma t demand, uniquement pour cette squence, de faire la comparaison des deux mthodes pour plusieurs frame rate (nombre de trames par seconde).
La mthode du QP fix donne, pour un mme QP et pour un nombre de trames par seconde diffrent, un mme PSNR Y (en rose dans le tableau). Ce rsultat est celui attendu. En effet, la qualit dune trame nest pas dfinie par son frame rate mais par son QP. Par consquent, le rapport signal sur bruit de la luminosit nest pas influenc par le nombre de trames par seconde. Cependant, ce dernier a une action sur le dbit : pour un mme QP, plus il est faible, plus le dbit diminue. Enfin, si le nombre de trames par seconde est divis par deux, le dbit de la vido lest aussi. La mthode du Rate Control ne permet pas davoir exactement le dbit voulu. Il y a un lger dcalage d aux variations du QP. Je remarque que pour des dbits trs faibles ou trs levs la variation est plus grande (cellules encadres en violet dans le tableau). Tout comme pour la mthode prcdente, les PSNR Y sont identiques pour les diffrents frame rate : par exemple, pour le dbit le plus lev de la squence 30 images/sec, le PSNR Y est de 65,94 dB ce qui correspond aussi celui du dbit le plus lev de la squence 20 images/sec et 15 images/sec (en orange dans le tableau). L encore, lorsque le nombre dimages par seconde est divis par deux, le dbit lest aussi. Globalement, les rsultats des deux mthodes sont trs proches bien que celle du Rate Control semble plus performante (se reporter au graphique la page suivante).
Comparaison des performances de deux mthodes dencodage pour un CODEC H.264
VERGNE Aurore 2 me anne Rseaux et Tlcommunications 2009-2010 31
Figure 3.1.2.2.1. : PNR Y en fonction du dbit pour la squence foreman.qcif
Je refais lexprience pour la squence mother_and_daughter.qcif 21 26 31 36 41 0 20 40 60 80 100 120 140 160 180 200 220 240 260 280 300 320 340 360 380 400 420 P S N R
( d B ) Bitrate (kbits/s) Frame Rate = 15 - QP Frame Rate = 20 - QP Frame Rate = 30 - QP Frame Rate = 15 - RC Frame Rate = 20 - RC Frame Rate = 30 - RC Comparaison des performances de deux mthodes dencodage pour un CODEC H.264
VERGNE Aurore 2 me anne Rseaux et Tlcommunications 2009-2010 32
Squence 2 : mother_and_daughter.qcif Mthode du QP fix QP 0 10 14 16 20 24 28 32 36 40 42 48 51 PSNR Y 70,31 51,33 48,23 46,82 43,63 40,53 37,55 34,71 32,20 30,06 28,93 25,41 24,18 Bitrate (1) 3000,13 943,26 441,76 325,99 167,99 91,19 49,80 27,22 15,25 8,79 6,98 4,06 3,62 Mthode du Rate Control Target bitrate = bitrate (1) 3000,13 943,26 441,76 325,99 167,99 91,19 49,80 27,22 15,25 8,79 6,98 4,06 3,62 PSNR Y 57,64 50,29 46,18 44,72 41,98 40,69 37,59 34,74 31,65 29,99 29,17 26,86 26,89 Bitrate 2121,92 943,62 441,91 326,17 168,11 91,19 49,84 27,30 15,60 9,19 7,36 4,70 4,62 Les colonnes en italique ne sont pas reprsentes sur le graphique pour des raisons dchelle.
Figure 3.1.2.2.3. et figure 3.1.2.2.4. : PNR Y en fonction du dbit pour la squence mother_and_daughter.qcif
La zone bleue de la courbe correspond aux points pour un QP de 14 et 16. Ils ont t ajouts afin de laffiner. Pour des dbits suprieurs 100 kbits/s, on peut voir quil y a environ 2 dB dcart entre les deux courbes. Ce rsultat nest pas correct. En effet, les deux mthodes sont supposes donner des rsultats proches pour ce type de vido (i.e des vidos nayant pas beaucoup de mouvements). Afin de corriger ce problme, il faut modifier le fichier de configuration et, plus particulirement, les paramtres BasicUnit et InitialQP. 20 25 30 35 40 45 50 55 0 50 100 150 200 250 300 350 400 450 500 550 600 650 700 750 800 850 900 950 P S N R
( d B ) Bitrate (kbits/s) QP RC 24 26 28 30 32 34 36 38 40 42 0 15 30 45 60 75 90 QP RC 2 dB Comparaison des performances de deux mthodes dencodage pour un CODEC H.264
VERGNE Aurore 2 me anne Rseaux et Tlcommunications 2009-2010 33
BasicUnit a pour valeur 11 ce qui implique que lencodeur fait la moyenne du QP de tous les groupes composs de 11 macroblocs pour avoir le QP de la trame. Dans ce cas de cette vido, cela ne fonctionne pas : il y a de fortes diffrences entre les QP utiliss au niveau des visages et de larrire-plan. Ce dernier un QP trs lev ce qui fait augmenter la moyenne et donc le QP de la trame diminuant ainsi sa qualit. De plus, InitalQP est laiss 0 : lencodeur doit alors slectionner la meilleure valeur pour celui-ci. Ici, lalgorithme qui doit le choisir fonctionne mal pour cette vido (on ne sait dailleurs par pourquoi) et prend un QP trop faible. Afin datteindre le dbit voulu, lencodeur laugmente peu peu dtriorant, de fait, la qualit de la trame et provoquant une forte diminution du SNR Y ce qui explique la diffrence de 2 dB.
Exemple pour le point correspond au QP de 16 avec BasicUnit = 11 et InitialQP = 0.
Figure 3.1.2.2.5. : QP et SNRY en fonction du numro de la trame (BasicUnit=11)
5 10 15 20 25 30 35 40 45 50 55 0 20 40 60 80 100 120 140 160 180 Numro de la trame QP SNR Y Comparaison des performances de deux mthodes dencodage pour un CODEC H.264
VERGNE Aurore 2 me anne Rseaux et Tlcommunications 2009-2010 34
On retrouve, sur lextrait de fichier log ainsi que sur la figure 3.1.2.2.5. les observations faites prcdemment. Je vais maintenant comparer avec le cas o BasicUnit=99 et InitialQp=16.
Figure 3.1.2.2.6. : QP et SNRY en fonction du numro de la trame (BasicUnit=99)
Jobserve que le QP et, donc, le SNR Y subissent moins de variations. Par consquent, le PSNR Y est de 46,98 dB au lieu de 44,72. 5 10 15 20 25 30 35 40 45 50 55 0 20 40 60 80 100 120 140 160 180 Numro de la trame QP SNR Y Comparaison des performances de deux mthodes dencodage pour un CODEC H.264
VERGNE Aurore 2 me anne Rseaux et Tlcommunications 2009-2010 35
Je r-encode la squence en modifiant ces paramtres (i.e. BasicUnit et InitialQP). Jobtiens les rsultats suivants :
Mthode du Rate Control BasicUnit=11 InitialQP=0 Target bitrate = bitrate (1) 3000,13 943,26 441,76 325,99 167,99 91,19 49,80 27,22 15,25 8,79 6,98 4,06 3,62 PSNR Y 57,64 50,29 46,18 44,72 41,98 40,69 37,59 34,74 31,65 29,99 29,17 26,86 26,89 Bitrate 2121,92 943,62 441,91 326,17 168,11 91,19 49,84 27,30 15,60 9,19 7,36 4,70 4,62 BasicUnit=99 InitialQP=X PSNR Y 2 58,02 51,38 48,33 46,98 43,86 41,01 38,00 34,77 31,89 30,01 29,22 26,9 26,95 Bitrate 2201,75 943,11 442,06 325,64 167,87 91,19 49,82 27,28 15,39 8,99 7,03 4,50 3,99 Les colonnes en italique ne sont pas reprsentes sur le graphique pour des raisons dchelle.
Figure 3.1.2.2.7. : PNR Y en fonction du dbit pour la squence mother_and_daughter.qcif aprs r-encodage avec BasicUnit=99 et InitialQP=16
Je remarque que la mthode du RC est meilleure que celle du QP. Cependant, je note, encore une fois, que les rsultats sont trs proches.
Je refais lexprience avec la squence coastguard.qcif.
20 25 30 35 40 45 50 55 0 50 100 150 200 250 300 350 400 450 500 550 600 650 700 750 800 850 900 950 P S N R
( d B ) Bitrate (kbits/s) QP RC avec BasicUnit=11 et sans InitalQP RC avec BasicUnit=99 et un InitialQP Comparaison des performances de deux mthodes dencodage pour un CODEC H.264
VERGNE Aurore 2 me anne Rseaux et Tlcommunications 2009-2010 36
Squence 3 : coastguard.qcif Mthode du QP fix QP 0 10 20 24 28 32 36 40 42 48 51 PSNR Y 71,98 51,79 42,07 38,36 34,92 31,58 28,85 26,40 25,29 22,43 21,10 Bitrate (1) 4077,54 2069,37 756,95 438,23 227,22 100,05 45,60 22,53 16,18 7,47 5,44 Mthode du Rate Control Target bitrate = bitrate (1) 4077,54 2069,37 756,95 438,23 227,22 100,05 45,60 22,53 16,18 7,47 5,44 PSNR Y 70,44 51,51 41,95 38,31 34,91 31,57 28,80 26,35 25,17 22,18 21,69 Bitrate 3984,53 2064,67 757,06 438,07 227,41 100,18 45,77 22,61 16,23 8,18 7,35 La colonne en italique nest pas reprsente sur le graphique pour des raisons dchelle.
Figure 3.1.2.2.2. : PNR Y en fonction du dbit pour la squence coastguard.qcif
La mthode du QP est plus performante que celle du Rate Control quel que soit le dbit. Cependant, les rsultats des deux mthodes sont, l aussi, trs proches.
Je fais de mme avec la squence stefan.qcif.
21 26 31 36 41 46 51 0 500 1000 1500 2000 P S N R
( d B ) Bitrate (kbits/s) QP RC Comparaison des performances de deux mthodes dencodage pour un CODEC H.264
VERGNE Aurore 2 me anne Rseaux et Tlcommunications 2009-2010 37
Squence 4 : stefan.qcif Mthode du QP fix QP 0 10 20 24 28 32 36 40 42 48 51 PSNR Y 72,03 51,84 42,85 39,06 35,34 31,50 28,10 25,02 23,57 19,81 18,48 Bitrate (1) 4990,88 2667,23 1047,00 648,37 376,76 194,49 102,60 56,30 41,33 14,97 7,71 Mthode du Rate Control Target bitrate = bitrate (1) 4990,88 2667,23 1047,00 648,37 376,76 194,49 102,60 56,30 41,33 14,97 7,71 PSNR Y 71,55 51,69 42,68 38,85 35,42 31,62 27,96 25,14 23,59 19,67 19,24 Bitrate 4945,80 2665,68 1047,18 648,24 376,92 194,6 102,77 56,38 41,44 15,56 13,67 Les colonnes en italique ne sont pas reprsentes sur le graphique pour des raisons dchelle.
Figure 3.1.2.2.8. : PNR Y en fonction du dbit pour la squence stefan.qcif
Dans ce cas, la mthode du QP est plus performante que celle du RC. Jobserve, l encore, que les rsultats sont trs proches.
Je ritre, une dernire fois, cette exprimentation avec la squence table.qcif.
15 20 25 30 35 40 45 50 55 0 500 1000 1500 2000 2500 3000 P S N R
( d B ) Bitrate (kbits/s) QP RC Comparaison des performances de deux mthodes dencodage pour un CODEC H.264
VERGNE Aurore 2 me anne Rseaux et Tlcommunications 2009-2010 38
Squence 5 : table.qcif Mthode du QP fix QP 0 10 20 24 28 32 36 40 42 48 51 PSNR Y 70,44 50,93 42,31 39,08 36,23 33,46 30,82 28,37 27,15 23,37 21,49 Bitrate (1) 3458,27 1459,64 440,17 263,49 151,03 82,67 47,03 29,17 23,51 12,00 8,31 Mthode du Rate Control Target bitrate = bitrate (1) 3458,27 1459,64 440,17 263,49 151,03 82,67 47,03 29,17 23,51 12,00 8,31 PSNR Y 62,55 50,78 42,97 39,69 36,58 33,55 30,56 27,7 26,51 23,24 22,60 Bitrate 2953,89 1461,25 439,46 262,46 151,14 82,77 47,11 29,25 23,60 12,67 10,51 Les colonnes en italique ne sont pas reprsentes sur le graphique pour des raisons dchelle.
Figure 3.1.2.2.9. et figure 3.1.2.2.10. : PNR Y en fonction du dbit pour la squence table.qcif
Je remarque que la mthode du QP est plus adquate pour des faibles dbits (de 8 90 kbit/s). Pour des plus levs, cest celle du Rate Control qui est plus efficace. Cependant, ce qui mintresse ici, est de voir quelle est la mthode qui permet davoir la meilleure qualit pour des dbits faibles. Par consquent, je peux dire que cest celle du QP fix.
20 25 30 35 40 45 50 55 0 500 1000 1500 P S N R
( d B ) Bitrate (kbits/s) QP RC 21 23 25 27 29 31 33 35 8 20 32 44 56 68 80 92 QP RC Comparaison des performances de deux mthodes dencodage pour un CODEC H.264
VERGNE Aurore 2 me anne Rseaux et Tlcommunications 2009-2010 39
Je vais dsormais faire un rcapitulatif des rsultats observs afin de pouvoir conclure.
Tour dabord, jai constat que le PSN Y (ou le SNR Y de chaque trame) nest pas influenc par nombre de trames par seconde (cf foreman.qcif). Ce dernier agit sur dbit : si le frame rate est divis par deux, le dbit lest aussi. Ensuite, jai remarqu quil ny a pas une mthode dencodage plus performante que lautre. En effet, si lune fonctionne bien pour une vido, ce ne sera peut-tre pas le cas pour une autre. De plus, je constate que les vidos ayant peu de mouvement ont une meilleure qualit objective pour la mthode du Rate Control alors que celles en ayant beaucoup en ont une meilleure pour celle du QP fixe. Le tableau ci-dessous rcapitule quelle mthode fonctionne mieux pour quelle squence (X dans le tableau).
foreman mother and daughter coastgauard stefan table Mthode du QP fixe X X X Mthode du Rate Control X X
Enfin, jai observ qu un taux de compression, un frame rate et un nombre de trames identiques, les 5 vidos ne requirent pas le mme dbit. Comment cela peut-il s'expliquer ? Il faut se pencher sur le contenu de la vido et notamment sur l'intensit du mouvement dans celle-ci. Dans le cas d'une vido ayant peu de mouvement (mother_and_daughter.qcif, par exemple) deux trames successives se ressemblent beaucoup, il n'y a donc pas beaucoup de diffrence. Or, ce qui est encod est la diffrence entre deux trames successives (cf annexe I). Par consquent, il y a peu de choses encoder ce qui permet d'utiliser moins de bits et donc d'avoir un dbit plus faible. Si la vido contient beaucoup de mouvements rapides (stefan.qcif, par exemple), la diffrence entre deux trames est grande, il faut donc utiliser un nombre de bits important et donc avoir un dbit plus lev. C'est pourquoi, pour avoir une qualit identique c'est--dire un mme PSNR Y de, par exemple, 45 dB entre mother_and_daugher.qcif et stefan.qcif, la premire ncessitera un dbit d'environ 200 kbits/s alors que la seconde aura besoin d'environ 1500 kbits/s. Pour avoir une qualit gale entre les deux squences, mother_and_daughter.qcif pourra tre plus compresse que stefan.qcif.
Figure 3.1.2.2.11. : PNR Y en fonction du dbit pour les 5 squences encodes prcdement
Aprs avoir compar objectivement les vidos, je vais le faire de manire subjective.
15 25 35 45 55 65 75 0 1000 2000 3000 4000 5000 P S N R
Y
( d B ) Bitrate (kbits/s) Mthode 1 (QP) : Foreman Mthode 2 (RC) : Foreman Mthode 1 (QP) : Mother and Daughter Mthode 2 (RC) : Mother and Daughter Mthode 1 (QP) : Stefan Mthode 2 (RC) : Stefan Mthode 1 (QP) : Table Mthode 2 (RC) : Table Mthode 1 (QP) : Coast Guard Mthode 2 (RC) : Coast Guard Comparaison des performances de deux mthodes dencodage pour un CODEC H.264
VERGNE Aurore 2 me anne Rseaux et Tlcommunications 2009-2010 40
3.1.3. tude subjective
3.1.3.1. Prsentation et mise en uvre Ltude subjective ne ncessite pas doutils mathmatiques : elle consiste juste en une comparaison des diffrentes squences lil. Il existe diffrentes mthodes afin de dfinir la qualit subjective de limage. Elles sont dcrites dans les recommandations IUT-R BT.500-11 et ITU-T P.910. Je vais tacher de les dcrire brivement ici : Double Stimulus Continuous Quality Scale (DSCQS). Il y a deux vidos : lune sert de rfrence et lautre de test. Celles-ci sont prsentes deux fois aux observateurs, dans un ordre alatoire. Ils ne savent pas laquelle est la rfrence et laquelle est le test. Ils notent chacune delle en entourant sa qualit sur une chelle cinq paliers allant de mauvais excellent. Ensuite la diffrence de note entre chaque paire est calcule. Cette mthode est utilise lorsque la qualit entre les deux squences est proche. Elle est aussi appele DCR pour Degradation Category Rating. Double Stimulus Impairement Scale (DSIS). Contrairement la mthode prcdente, la vido de rfrence est vue une seule et unique fois avant le test. Les observateurs notent la dgradation entre la rfrence et le test sur une chelle cinq paliers allant dimperceptible trs ennuyeux. Cette mthode est trs employe dans le cas o il y a une perte de qualit importante due, notamment, aux erreurs de transmission. Absolute Category Rating (ACR). Les observateurs voient uniquement la vido tester et notent la qualit gnrale de celle-ci. Lchelle, comme dans le cas du DSCSQ, comporte cinq paliers allant de mauvais excellent. ACR est plus efficace que les deux mthodes prsentes ci-dessus car elle ncessite moins de temps : la rfrence ntant jamais montre. Pair Comparaison (PC). Les squences sont mises par paires de toutes les manires possibles. Les observateurs disent quelle vido la meilleure qualit pour chaque paire. Dans chaque cas, un minimum de 15 observateurs est requis. La moyenne des notes donnes par ces derniers sert calculer le MOS 1 (Mean Opinon Score).
Dans mon cas (mais aussi pour des questions de temps et de nombre dobservateurs), je ne vais pas calculer de MOS. Je vais procder une comparaison par paire (PC) afin de mettre en avant les diffrences, trame par trame, entre deux vidos ayant le mme dbit. Pour savoir quelle vido encode avec la mthode du QP fixe doit tre associe avec celle encode grce la mthode du Rate Control, je me rfre aux tableaux recensant les rsultats pour chacune dentre elle. (cf pages prcdentes).
Afin de lire les squences .yuv, jutilise un lecteur libre appel Avarex YUV Player disponible ladresse http://www.softpedia.com/get/Multimedia/Video/Video-Players/Avarex-YUV-Player.shtml. Celui-ci ne ncessite pas dinstallation car cest une application portable.
1 le MOS est dfini la partie 3.2.1.1. Comparaison des performances de deux mthodes dencodage pour un CODEC H.264
VERGNE Aurore 2 me anne Rseaux et Tlcommunications 2009-2010 41
Je vais dsormais prsenter les diffrentes dgradations que peut subir une image : Le flou
Figure 3.1.3.1.1. : Flou
Les blocs de pixels qui correspondent une zone floue dans laquelle on ne parvient plus voir les dtails ou les contours
Figure 3.1.3.1.2. : Bloc de pixel
Les distorsions qui sont une dformation de la forme de lobjet.
Figure 3.1.3.1.3. : Distorsion
Aprs avoir prsent les mthodes de comparaison de squences vidos et les diffrentes dgradations que peut subir une image, je vais comparer chaque vido pour dbits / QP diffrents.
3.1.3.2. Rsultats
Je regroupe mes observations dans les tableaux aux pages suivantes. Image nette Image floue Comparaison des performances de deux mthodes dencodage pour un CODEC H.264
VERGNE Aurore 2 me anne Rseaux et Tlcommunications 2009-2010 4 2
Frame Rate 30 20 15 Squence Dbit approximatif QP RC Dbit approximatif QP RC Dbit approximatif QP RC foreman 140 Pas de diffrences. 159 Pas de diffrences. 119 Pas de diffrences. 83 Le visage est flou au dbut jusqu la trame 90. Le visage est flou et il y a des distorsions partir de la trame 90. Il y en a beaucoup plus partir de la trame 140. Il y a des blocs de pixels. 93 Le visage est flou et il y a des petits blocs de pixels. Ils sont plus gros lorsque la camra bouge. 70 Le visage est flou et il y a des petits blocs de pixels lors des mouvements et beaucoup plus de distorsions partir de la trame 140. 51 Le visage est flou. Il y a des blocs de pixels. Limage est trs floue avec beaucoup de blocs et de distorsions lors de mouvements de camra (autour de la trame 180). 55 Le visage est flou au dbut et il y a de petites distorsions (trame 40). partir de la trame 60, plus de diffrences. Le visage est flou et il y a des blocs de pixels partir de la trame 70. Il y a beaucoup plus de distorsions partir de la trame 140. Limage est trs floue avec beaucoup de blocs et de distorsions lors de mouvements de camra. 41 Le visage est flou au dbut et il y a de petites distorsions (trame 20). Le visage est flou et il y a des blocs de pixels partir de la trame 80. Limage est globalement trs floue avec beaucoup de blocs et de distorsions lors de mouvements de camra ou de mouvements rapides du visage. Les distorsions sont plus nombreuses partir de la trame 140.
Comparaison des performances de deux mthodes dencodage pour un CODEC H.264
VERGNE Aurore 2 me anne Rseaux et Tlcommunications 2009-2010 4 3
Frame Rate 30 Squence Dbit approximatif QP RC mother_and_daughter 91 Pas de diffrences. 49 Il y a des blocs de pixels quand la mre touche les cheveux de la fille (trame 83). Les visages sont flous. Il y a moins de flou partir de la trame 6 mais ils restent plus flous que pour QP. Hormis quelques petits dtails, les vidos sont quasiment identiques. 27 Le visage de la fillette est flou. Les visages sont flous. Il y a moins de flou partir de la trame 12 mais ils restent plus flous que pour QP. Il y a des distorsions et des blocs de pixels quand la mre bouge la main vers la trame 153. Idem vers la trame 165. partir de la trame 150, les visages sont identiques QP. Il y a des blocs de pixels et des distorsions au niveau du visage de la mre partir de la trame 191. coastguard 227 Pas de diffrences. 100 Au niveau de leau et le larrire-plan (le gazon), il y a des blocs de pixels au dbut de la vido (jusqu la trame 23). Il y a des blocs de pixels au niveau du drapeau du bateau. Larrire du bateau blanc est flou et il y a des distorsions. La vido est floue lorsque la camra bouge. Exceptes ces petites diffrences, les vidos sont relativement les mmes. 45 Il y a des blocs de pixels au niveau de leau et du gazon jusqu la trame 37. Globalement, la vido est plus floue mais avec moins de blocs et de distorsions. Lorsque langle de la camra change, il y a des blocs de pixels et des distorsions au niveau de larrire-plan (autour de la trame 70). Il y a des blocs de pixels dans leau larrire du gros bateau blanc. Des distorsions apparaissent au niveau du drapeau vers la trame 78 et lavant du bateau autour de la trame 80. Globalement, la vido est moins floue mais avec plus de blocs et de distorsions. stefan 194 Pas de diffrences 102 Limage est floue jusqu la trame 5. Il y a des blocs de pixels et des distorsions des trames 6 8. Il y a des blocs de pixels lors des mouvements ainsi que des distorsions (par exemple autour des trames 12, 86 ou 126). 56 Limage est floue surtout autour des jambes. Globalement, la vido est plus floue mais avec moins de blocs et de distorsions. Il y a des blocs de pixels et des distorsions lors des mouvements (par exemple autour des trames 5 ou 111). Globalement, la vido est moins floue mais avec plus de blocs et de distorsions. Larrire-plan est flou et il y a des blocs de pixels. Les vidos sont relativement similaires aprs la trame 60. Comparaison des performances de deux mthodes dencodage pour un CODEC H.264
VERGNE Aurore 2 me anne Rseaux et Tlcommunications 2009-2010 4 4
Frame Rate 30 Squence Dbit approximatif QP RC table 151 Pas de diffrences 82 Jusqu la trame 53, larrire-plan est plus flou mais il y a moins de distorsions au niveau des mains. Il y a quelques blocs de pixels vers les jambes autour de la trame 170 et vers la raquette autour de la 180 et de 200. Il y a des distorsions au niveau des mains autour de la trame 45. Il y a des blocs de pixels au niveau des mains la trame 51, au niveau des bras la 54 et vers la raquette la 76. Le pongiste est flou autour de la trame 70. Le second pongiste est flou ainsi que le filet et larrire-plan et il y a des blocs de pixels (trame 131). La table est floue et contient des blocs de pixels (trame 181). 47 Jusqu la trame 43, larrire-plan est plus flou mais il y a moins de distorsions au niveau des mains. Il y a des blocs de pixels et des distorsions au niveau des mains (trame 45 et suivantes). A la trame 70, de grosses distorsions apparaissent au niveau de la main qui lance la balle. Elles se poursuivent jusqu la 80. Plus gnralement, les distorsions et les gros blocs de pixels sont importants jusqu la trame 115 ; dans la suite de la squence, ils sont plus petits. Autour de la trame 140, la squence est floue. Globalement, la qualit de la vido semble moindre.
Je constate que la mthode du RC donne un rendu visuel de moins bonne qualit que celle du QP fix. En effet, la variation du QP de chaque trame entraine des diffrences telles que des blocs de pixels ou des distorsions. Lors dune tude mathmatique, je ne prends pas en compte ces dgradations : je ne me proccupe que du PSNR Y et du dbit. Lorsque le QP est plus faible, le SNR Y de la trame lest aussi et inversement. Ces variations ne se compensant pas tout fait, on obtient, dans la plupart des cas un PSNR Y plus lev ce qui permet de conclure que la vido est de meilleure qualit subjective. Visuellement, ce nest pas le cas. Par consquent, je peux dire que la mthode du QP, bien quelle soit mathmatiquement moins bonne donne visuellement de meilleurs rsultats (lorsque lon fait de la comparaison de vido, cest toujours celle faite par lil humain qui est considre comme la meilleure).
La perte de qualit remarque visuellement est cependant visible mathmatiquement lorsque lon fait le graphique du SNR Y en fonction du numro de la trame.
Comparaison des performances de deux mthodes dencodage pour un CODEC H.264
VERGNE Aurore 2 me anne Rseaux et Tlcommunications 2009-2010 45
Figure 3.1.3.2.1. : SNR Y en fonction du numro de la trame pour la squence table.qcif pour un dbit autour de 47 kbits/s
Sur le graphique ci-dessus, je retrouve les observations faites dans le tableau c'est--dire une premire baisse de la qualit de la vido encode avec la mthode du RC des trames 45 115 (rectangle orange) (distorsions, blocs de pixels et flou) et une seconde (en rose) autour de la trame 140 (flou). Je note galement que la vido encode avec la mthode du RC a une meilleure qualit visuelle au dbut de la squence (encadr vert).
Afin de ne pas me rpter, je ne mets pas les graphiques correspondant chaque comparaison (pour les dbits les plus faibles uniquement) : ils sont disponibles lannexe III. Leur commentaire, quant lui, se trouve dans les tableaux aux pages prcdentes.
Jai, dans cette partie, compar deux mthodes dencodage. Celle du QP semble visuellement meilleure que celle du RC. Le CVC a rcemment dvelopp un nouvel outil permettant de faire une relation entre qualit objective et subjective. Cest pour vrifier cette corrlation quil ma t ensuite demand dencoder les mmes squences avec un autre CODEC donnant la valeur de cet indicateur pour chaque macrobloc. Cest ce que je fais dans la partie suivante
26 28 30 32 34 0 10 20 30 40 50 60 70 80 90 100 110 120 130 140 150 160 170 180 190 200 table.qcif (dbit autour de 47 kbits/s) QP RC Comparaison des performances de deux mthodes dencodage pour un CODEC H.264
VERGNE Aurore 2 me anne Rseaux et Tlcommunications 2009-2010 46
3.2. tude de la relation entre qualit visuelle et MOSp
3.2.1 Dfinition du MOSp
Le MOSp ne peut tre dfini qu partir du MOS et du MSE cest pourquoi je vais dabord dfinir cest deux indicateurs.
MOS est un acronyme signifiant Mean Opinon Score. Il permet de dfinir la qualit subjective dune vido. Afin de le dfinir, il existe plusieurs procdures de tests dfinis dans la partie 3.1.3.1. Elles ncessitent toutes de faire appel un panel de personnes. Le MOS est la moyenne des notes donnes par le panel. Elles stendent sur un intervalle de 0 (mauvais) 5 (excellent). Pour des questions de commodit, le MOS est souvent ramen sur une chelle plus petite allant de 0 (mauvais) 1 (excellent).
MSE est labrviation de Mean Square Error. Cest un outil mathmatique permettant de dfinir la qualit objective de la vido. Il est calcul en faisant la moyenne du carr de la diffrence entre la valeur de la luminosit de chaque pixel entre la squence dorigine et celle que lon a encode.
MSE = 1 M.N.1 . |I(x, y, t) -Ic(x, y, t)] M x=1 N =1 1 t=1
avec : - I la squence originale - Ic la squence encode - M la largueur de la trame - N la hauteur de la trame - T le nombre de trame par squence
Des exprimentations, menes par les membres du CVC, ont permis de trouver une relation entre MOS et MSE. Elles consistent encoder diverses squences pour les QP = {6, 26, 34, 36, 38, 40, 45, 45} et les faire valuer par un panel afin de connaitre leurs MOS respectifs. La dernire tape consiste faire un graphique ayant en ordonne le MOS de chaque squence pour chacun des QP et en abscisse le MSE de chaque squence pour chacun des QP. Ce dernier est donn par le CODEC Le graphique suivant est obtenu :
Figure 3.2.1.1. : MOS en fonction du MSE Source : A novel perceptual quality metric for video compression, A.Bhat, I. Richardson et S.Kannangara Comparaison des performances de deux mthodes dencodage pour un CODEC H.264
VERGNE Aurore 2 me anne Rseaux et Tlcommunications 2009-2010 47
Les membres du CVC ont constat que les courbes sont linaires pour un MOS suprieur 0,1 : au-del de cette valeur, la qualit de la vido est tellement mauvaise quelle peut tre assimile 0. Par consquent, le MOS peut tre assimil une droite dont on peut connaitre lquation. Il est donc possible de prdire le MOS do la notion de MOSp p signifiant predictiv ou, en franais, estim
Figure 3.2.1.2. : MOS linaris en fonction du MSE Source : A novel perceptual quality metric for video compression, A.Bhat, I. Richardson et S.Kannangara
Par consquent, le MOSp peut tre calcul grce une quation de droite qui est la suivante :
mosp = 1 k s .(MSE) avec : k s une constante dpendant du mouvement de la squence et de la quantit de texture
k s est calcul grce lestimation de mouvement et de texture au sein de chaque macrobloc. Cette estimation est faite par le CODEC laide de formules particulirement complexes. Je ne les dtaillerai pas dans ce rapport car cela napporterai pas grand-chose au sujet. Comparaison des performances de deux mthodes dencodage pour un CODEC H.264
VERGNE Aurore 2 me anne Rseaux et Tlcommunications 2009-2010 48
3.2.2. Compilation et utilisation du CODEC
La compilation et lutilisation du CODEC se droulent de la mme manire que prcdemment, je ne dtaillerai donc pas. Ce CODEC est bas sur celui tudi prcdemment. En effet, un membre du CVC la modifi afin quil donne des valeurs telles que le MOSp ou le MSE. Par consquent, il y a des paramtres en plus de ceux dcrits dans le fichier de configuration : MOSYFile = "mbmosp.log" #Emplacement du fichier stockant la valeur du MOSp de chaque macrobloc pour une trame donne (Frameformosp). Il est compos de trois colonnes : la premire correspond au numro de la trame, la seconde celui du macrobloc et la dernire au MOSp. Exemple : 157 0 0.764015 157 1 0.556164 157 2 0.097607 157 3 0.880771 157 4 0.763209 157 5 0.672024 157 6 0.535319 157 7 0.599031 157 8 0.747061 157 9 0.764907 [...] 157 95 0.575323 157 96 0.439069 157 97 0.313856 157 98 0.637731
MSEYFile = "msey.log" #Emplacement du fichier contenant la valeur du MSE pour la composante Y de la squence. Il est compos dune seule ligne. Exemple : Sequence MSE: 25.800414 MSEYCbCrFile = "mseycbcr.log" #Emplacement du fichier dans lequel se trouve la valeur du MSE pour les composantes colores (C b et C r ) de la squence. Il est vide (lcriture dans celui-ci nest pas active). Frameformosp = 1 #Numro de la trame dont on veut enregistrer le MOSp de chaque macrobloc. En plus des ajouts prcdents deux autres lignes apparaissent dans le terminal (ou le fichier si on a redirig la sortie standard*) : Average New MOSp qui indique la valeur moyenne du MOSp pour la squence et Average New MSEy dont la valeur est la mme que celle contenu dans MSEYFile.
Grce aux informations fournies par ce CODEC, il ma t demand de faire une carte du MOSp de chaque macrobloc avec un logiciel appel MatLab. Je procde donc son installation sur mon ordinateur personnel. Comparaison des performances de deux mthodes dencodage pour un CODEC H.264
VERGNE Aurore 2 me anne Rseaux et Tlcommunications 2009-2010 49
3.2.3. Installation de Matlab R2009b
Matlab est la fois un environnement de programmation et un langage dvelopp par la socit amricaine MathWorks. Il est utilis dans les domaines de lducation, de la recherche et de lindustrie pour le calcul numrique. Il permet galement de faire des graphiques complexes tels que celui que lon me demande de faire.
Une fois le DVD mis dans le lecteur, la fentre suivante saffiche.
Figure 3.2.3.1. : cran de choix du type dinstallation
Je choisis dinstaller le logiciel manuellement c'est--dire sans utiliser Internet. En effet, linstallation derrire un proxy* a tendance boguer. De plus, le CVC a dj activ le programme et a donc la possibilit de me donner les fichiers ncessaires lactivation. Une fois la case Install manually without using the Internet coche, je clique sur Next. Jaccepte le contrat de licence et saisi la cl fournie avec le DVD.
Figure 3.2.3.2. : cran dacceptation du contrat de licence
Comparaison des performances de deux mthodes dencodage pour un CODEC H.264
VERGNE Aurore 2 me anne Rseaux et Tlcommunications 2009-2010 50
Figure 3.2.3.3. : cran de saisi de la cl
Il mest ensuite demand si je veux crer un compte. Nayant pas de compte, jai d en crer un (les membres du CVC ont perdu leurs identifiants). Pour cela, jai coch la case I need to create a MathWorks account et cliqu sur Next.
Figure 3.2.3.4. : Demande de cration de compte
Comparaison des performances de deux mthodes dencodage pour un CODEC H.264
VERGNE Aurore 2 me anne Rseaux et Tlcommunications 2009-2010 51
Ensuite, le type dinstallation (typique ou personnalise) est demand. Ne sachant pas vraiment quels sont les outils qui sont susceptibles de me servir, je choisis une installation typique en slectionnant Typical.
Figure 3.2.3.5. : Slection du type dinstallation
Le rpertoire dinstallation est alors affich. Celui par dfaut (C:\Program Files\MATLAB\R2009b) ne me convenant pas, je le modifie en C:\Program Files\MATLAB.
Figure 3.2.3.6. : Choix du dossier dinstallation
Les composants qui vont tre installs sont lists et, une fois que jai cliqu sur Next, linstallation commence et dure environ 20 minutes. Comparaison des performances de deux mthodes dencodage pour un CODEC H.264
VERGNE Aurore 2 me anne Rseaux et Tlcommunications 2009-2010 52
Figure 3.2.3.3.7. : Liste des composants qui vont tre installs et dbut de linstallation
Une fois linstallation termine, il faut que jactive Matlab. Pour cela, je coche la case Activate Matlab et je clique sur Next.
Figure 3.2.3.8. : cran de demande dactivation du programme
Tout comme pour linstallation, le type dactivation est demand. Ayant dj les fichiers dactivation, je choisi loption sans Internet Activate manually without the Internet.
Figure 3.2.3.9. : Slection du type dactivation Comparaison des performances de deux mthodes dencodage pour un CODEC H.264
VERGNE Aurore 2 me anne Rseaux et Tlcommunications 2009-2010 53
Je slectionne alors le fichier servant linstallation en cliquant sur Browse.
Figure 3.2.3.10. : Activation du logiciel
Lactivation se passe sans anicroche. Je peux donc lancer MatLab grce au raccourci prsent dans le menu Dmarrer. Lapplication se lance.
Figure 3.2.3.11. : MatLab aprs dmarrage
Comparaison des performances de deux mthodes dencodage pour un CODEC H.264
VERGNE Aurore 2 me anne Rseaux et Tlcommunications 2009-2010 54
3.2.4 Cration de la carte (map) du MOSp de chaque macrobloc
MatLab tant fonctionnel, je peux dsormais crer le graphique (appel map) reprsentant la valeur de chaque macrobloc par un carr de couleur. Le rsultat est reprsent la figure suivante :
Figure 3.2.4.1. : Exemple de map avec shading flat et colorbar
Afin dobtenir le rsultat voulu, il faut crire une suite de commandes en langage MatLab dans la partie Command Window (en rose sur la figure 3.2.3.11. la page prcdente).
La premire tape est de stocker, dans une matrice, le contenu du fichier, mosp_SquenceMthEncoVal.log archivant la valeur de chaque macrobloc pour une trame donne. Sa composition est dcrite dans la partie 3.2.2. Pour cela, je saisis : A = [contenu du fichier mosp_SquenceMthEncoVal.log];
La seconde tape est de dire au programme quelle colonne correspond au MOSp (il sagit de la troisime). Jutilise la commande suivante : mosp = A(:,3); A est la matrice cre prcdemment, : sert signaler quil faut prendre toutes les lignes de la matrice et 3 indique le numro de la colonne correspondant au MOSp.
mosp est actuellement reprsent sur 99 lignes et 1 colonne ; cela ne correspond pas au rsultat attendu (cf figure 3.2.4.1.). Il faut donc mettre en forme les valeurs. Il y a 99 macroblocs de 16 pixels de ct. Une squence au format .qcif mesure 176 pixels de large pour 144 de haut. Pour savoir le nombre de macroblocs placer par ligne et par colonne, il faut faire les calculs suivants :
nombre de macroblocs en largeur = 176 16 = 11 nombre de macrobloc en hauteur = 144 16 = 9
Pour trier les valeurs comme je le souhaite, il faut utiliser le script de la page suivante :
Comparaison des performances de deux mthodes dencodage pour un CODEC H.264
VERGNE Aurore 2 me anne Rseaux et Tlcommunications 2009-2010 55
j=1; Jinitialise j 1 ; il sert compter les lignes. for (i=1:11:89) Je fais une boucle dont le but est de mettre en ligne 11 MOSp.
Le premier macrobloc de la premire ligne est le 1, celui de la seconde est le 12 et ainsi de suite.
Il faut donc crer une variable dont la plus petite valeur sera 1, la plus grande 89 et lincrmenter de 11 chaque fois. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 mosp_map(j,:)=A(i:i+10,3); Je cre une variable mosp_map qui a j lignes de 11 MOSp et toutes les colonnes (:) que lon a cr c'est--dire 11. Elle prend les valeurs de la matrice A mise en forme ; c'est--dire en ligne, toutes les valeurs de i i+10 et en colonne, la troisime c'est--dire celle du MOSp. j=j+1; j est incrmenter afin de faire une nouvelle ligne. end Je termine la boucle for.
En dautre termes, i se charge du placement horizontal des MOSp et j du vertical.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Figure 3.2.4.2. : Fonctionnement du script cr sous MatLab 1 2 3 4 5 6 7 8 9 10 11 i j j+1 i+1 i+2 i+3 12 13 14 15 16 Comparaison des performances de deux mthodes dencodage pour un CODEC H.264
VERGNE Aurore 2 me anne Rseaux et Tlcommunications 2009-2010 56
Enfin, il faut crer le graphique proprement parler. Pour cela, jemploie la fonction : figure, pcolor(mosp_map); shading flat; axis ij; colorbar figure, pcolor(mosp_map) permet de faire une map (i.e. des carrs colors en fonction de leur valeur). Le paramtre entre parenthse correspond celui que lon veut reprsenter. shading flat supprime la bordure noire entre chaque carr. axis ij correspond labscisse et lordonne du graphique (ici, i reprsente les macroblocs on le met donc en abscisse et j le nombre de ligne, on le met en ordonne car je veux un carr de 11 par 9). Enfin, colorbar affiche une barre droite de la figure ; elle indique la lgende.
Jobtiens le rsultat prsent la figure 3.2.4.1. Si je choisis de ne pas mettre les paramtres shading flat et colorbar, la map est la suivante :
Figure 3.2.4.3. : Exemple de map sans shading flat et colorbar
Le script complet (i.e. tel quil est entr sous MatLab est disponible lannexe IV).
noter : pour toutes les cartes de MOSp prsentes dans ce rapport, plus la couleur du macrobloc est rouge fonce, plus le MOSp est lev et donc meilleure est la qualit visuelle et inversement lorsque la couleur est bleue fonce (cf figure 3.2.4.1.).
Maintenant que je sais crer une carte de MOSp avec MatLab, je peux passer aux exprimentations et lanalyse des rsultats obtenus.
Comparaison des performances de deux mthodes dencodage pour un CODEC H.264
VERGNE Aurore 2 me anne Rseaux et Tlcommunications 2009-2010 57
3.2.5. Rsultats
Dans cette partie, je prsente les rsultats de mes expriences. Il ma t demand de comparer la carte de MOSp de deux trames lune provenant dune squence encode avec la mthode QP et lautre venant de la mme squence encode avec la mthode RC. Ces trames doivent avoir une diffrence de qualit subjective particulirement visible et les deux vidos doivent avoir le mme dbit (se reporter aux tableaux de la partie 3.1.3.2.). Jai fait ces tests pour une trame de chacune des squences encodes prcdemment (cf. partie 3.1.).
Je ne dvelopperai ici que les rsultats marquant c'est--dire ceux dont la qualit visuelle est significativement diffrente. En effet, sur certaines squences, la diffrence de qualit, bien quelle soit relativement grande, est difficile voir ; il peut sagir de macroblocs de la mauvaise couleur dans une zone limage, de flou ou de lgres distorsions. Ces dgradations sont extrmement ardues rendre sur le papier car limpression ne peut pas tre parfaite. Cest pour cette raison que je ne ferai figurer ici que les trames en ayant des particulirement visibles (les autres sont lannexe IV).
La squence foreman.qcif prsente une diffrence de qualit relativement grande entre les deux mthodes dencodage (i.e. QP et RC) jai compar la trame 157 pour un frame rate de 30.
Dbit denviron 51 kbits/s Mthode QP Mthode RC
Tout dabord, je rappelle que plus la couleur du macrobloc (i.e. le carr) est rouge fonce, plus le MOSp est leve et donc, plus la qualit visuelle est grande ; plus le carr est bleu fonc, plus le MOSp est faible et, de fait, la qualit visuelle est mauvaise. Je remarque que la mthode du QP donne de meilleurs rsultats que la mthode du RC (la carte pour le QP est globalement plus orange que celle pour le RC). De plus, les rgions ayant une bonne qualit visuelle ont un fort MOSp ; je fais la mme constatation pour le cas inverse. Comparaison des performances de deux mthodes dencodage pour un CODEC H.264
VERGNE Aurore 2 me anne Rseaux et Tlcommunications 2009-2010 58
mother_and_daughter.qcif prsente elle aussi une diffrence de qualit la trame 193.
Dbit denviron 27 kbits/s QP RC
Dans le cas du QP, je remarque deux zones o le MOSp est fort (en trait continu) et une o il est faible (en pointills). Je les retrouve sur la capture dcran de la trame. De plus, pour le RC, laire o le MOSp est grand est plus vaste cest aussi le cas de celle o il est plus petit. La surface o le MOSp est peu important tant plus grande et au niveau des visages (plus particulirement de celui de la mre), la qualit visuelle de limage apparait clairement comme moins bonne.
Comparaison des performances de deux mthodes dencodage pour un CODEC H.264
VERGNE Aurore 2 me anne Rseaux et Tlcommunications 2009-2010 59
La dernire squence qui retiendra mon attention ici est table.qcif. Lune des trames prsentant le plus de diffrence est la 75.
Dbit denviron 47 kbits/s QP RC
Je remarque ici quentre la trame encode avec la mthode du QP et celle code avec la mthode du RC, il y a une baisse de qualit significative : il y a une augmentation du nombre de carr bleu et donc une baisse du MOSp pour ces macroblocs. Les observations faites ci-dessus se retrouvent lorsque lon compare subjectivement les deux trames.
Les constations faites aux pages prcdentes montrent bien quil y a une relation entre le MOSp et la qualit visuelle de la vido. Par consquent, et grce aux remarques faites prcdemment, le CVC va pouvoir amliorer ce CODEC en faisant en sorte que la qualit entre chaque macrobloc reste constante. Pour cela, leur projet et des rduire les donnes alloues aux zones o le MOSp est grand pour en donner aux secteurs o ce dernier est plus faible. Il sagit donc de faire une sorte de moyenne.
Aprs avoir ralis les tches qui mont t demand, je peux dresser un bilan de mon stage.
Comparaison des performances de deux mthodes dencodage pour un CODEC H.264
VERGNE Aurore 2 me anne Rseaux et Tlcommunications 2009-2010 60
4. Laboutissement de mon stage au CVC
Dans cette partie, je vais effectuer un bilan des tches effectues pendant mon stage. Je vais dabord voquer les rsultats obtenus puis les difficults que jai rencontres et enfin jvoquerai les prolongements possibles.
4.1. Rsultats obtenus
Lobjectif final de ce projet tait de permettre au CVC de se rendre compte de la corrlation entre qualit visuelle et MOSp Pour rpondre ce besoin, jai dabord du comprendre les principes gnraux dencodage en MPEG-4 / H.264. Jai ensuite tudi les deux mthodes dencodage proposes par le CODEC. Ces mthodes sont celle du QP fixe et du Rate Control. Jai, par la suite, compar objectivement (grce au PSNR Y) et subjectivement les squences encodes ce qui ma permis de faire la carte des MOSp de chaque macroblocs pour deux trames (chacune provenant dune vido encode avec une mthode diffrente). Ces dernires ont rvl quaucune des deux mthodes nencode, de manire uniforme, tous les macroblocs et donc quil y a, en plus des diffrences de qualit entre chaque mthode, des baisses de qualit au sein dune mme trame. Par consquent, je peux donc dire que mon objectif est atteint car le CVC a dsormais une preuve de ce quil supposait.
Ce stage ma permis dacqurir des comptences techniques telles que la connaissance des principes dencodage (estimation / compensation de mouvement) ainsi que le fonctionnement dun CODEC MPEG-4 / H.264. Jai galement appris les bases pour lutilisation de Visual Studio ainsi que celle du langage ponyme.
La russite de ma mission ne sest pas faite sans difficults. Je les voque dans la partie suivante.
4.2. Difficults rencontres
La premire difficult a t ladaptation des mthodes de travail qui mtaient inconnues : dans les pays anglo-saxons en gnral, une place trs importante est laisse lautonomie que ce soit au niveau de la gestion de son travail, de sa ralisation ou de l'organisation de ses horaires de travail. De plus, jai t surprise par la fait que ma matre de stage soit tonne que je ralise ce que lon me demande rapidement et correctement. Enfin, jai d faire avec les absences et le manque de temps de cette dernire (il mest arrive davoir termin mon travail et devoir attendre une semaine avant quelle nait le temps de mexpliquer la suite du projet).
Sur le plan technique mes difficults ont t principalement lies la mconnaissance du codage vido. Il a fallu que jassimile en trs peu de temps des principes pouvant tre complexes (compensation / estimation de mouvement) ainsi quun vocabulaire spcifique au domaine et dont le sens nest pas toujours trs vident. Une autre difficult a t de comprendre les messages derreur du CODEC lorsquun ou plusieurs paramtres ne sont pas corrects. Ceux-ci ne sont pas trs clairs et nindiquent pas rellement quel est le problme. Lors dune exprimentation o je cherche comprendre linfluence du format YUV sur le dbit, jai voulu le modifier (pour cela il faut modifier YUVFormat et ProfileIDC 1 dans le fichier de configuration). Une fois les modifications effectues, jai obtenu lerreur suivante :
Figure 4.2.1. : Erreur du CODEC
Comme le montre la capture dcran, le CODEC indique que Transform8x8Mode doit tre utilis pour des ProfileIDC allant de 100 144. Or le profil que je veux utiliser est le 88 et aucun paramtre ne permet de rgler Transform8x8Mode. Malgr mes recherches, je nai pas trouv de rponse, je me suis donc tourne vers ma matre de stage qui elle non plus navait aucune ide du pourquoi de cette erreur. Je nai pas donc pas pu mener bien ces tests (i.e linfluence du format YUV sur le dbit). Jai aussi d me familiariser avec Microsoft Visual Studio qui nest pas reconnu pour tre un logiciel trs simple dutilisation ni trs intuitif.
1 Ces paramtres sont dfinis dans la partie 2.3.2. Comparaison des performances de deux mthodes dencodage pour un CODEC H.264
VERGNE Aurore 2 me anne Rseaux et Tlcommunications 2009-2010 61
Enfin, jai d utiliser MatLab et crer un script dans le langage du mme nom. La documentation sur ce dernier est soit peut explicite, soit payante, il a donc fallu que je me tourne vers les membres du CVC. Grce quelques explications dA.Bhat jai su comment raliser la map de MOSp.
4.3. Prolongement
Les prolongements possibles sont lamlioration du CODEC notamment par limplmentation dun mcanisme permettant dquilibrer les donnes alloues chaque macrobloc afin davoir une qualit visuelle identique au sein dune mme trame. Ce projet est trs ambitieux et va probablement tre men par le CVC ds lanne prochaine. En effet, limplmentation et la validation dun tel algorithme ncessite normment de temps et de recherches.
Comparaison des performances de deux mthodes dencodage pour un CODEC H.264
VERGNE Aurore 2 me anne Rseaux et Tlcommunications 2009-2010 62
Conclusion
Afin dobtenir mon Diplme Universitaire de Technologie, il ma t demande deffectuer un stage de dix semaines au Center for Video Communications de la Robert Gordon University Aberdeen, en Ecosse. Ce centre mne des recherches sur la compression de la vido. Leur but est de trouver un moyen de la compresser en gardant la meilleure qualit possible. Ma mission a t de mettre en avant la diffrence de qualit entre deux trames encodes avec des mthodes diffrentes mais aussi de vrifier ou non si lindicateur cr par le CVC une bonne relation avec la qualit visuelle.
Nayant pas de connaissance dans le domaine de la compression vido, il ma t demand de faire un travail prliminaire me permettant de prendre en main le CODEC c'est--dire de comprendre le rle de ces diffrents paramtres mais aussi de savoir correctement lutiliser.
Puis, jai dbut les exprimentations proprement parl en commenant pas comparer les deux mthodes dencodage proposes par le CODEC (mthode QP et mthode RC). Il est alors apparu quaucune ntait plus performante que lautre du point de vu mathmatique en tout cas. Cependant, lors de la comparaison subjective de celle-ci, celle du QP a sembl clairement meilleure. En effet, dans ce cas toutes les trames ont la mme qualit ce qui nest pas le cas avec lautre. De plus dans le cas du RC, la trame a des zones o la qualit est nettement moins bonne. Celles-ci peuvent tre normalement mises en avant grce au MOSp qui est un indicateur ayant pour but de faire un lien entre la comparaison objective et subjective. Cest cette supposition, qui sest avre vraie, que jai dmontr dans cette partie.
Enfin, jai dress un bilan de ce stage dont jai rempli la mission. Cependant des prolongements sont possibles tels que lamlioration du CODEC. Cest dailleurs lun des projets du CVC
Comparaison des performances de deux mthodes dencodage pour un CODEC H.264
VERGNE Aurore 2 me anne Rseaux et Tlcommunications 2009-2010 63
Bilan humain
Dans cette partie, je vais faire un bilan humain de ce stage. Tout dabord, je vais prsenter les difficults auxquelles jai t confrontes. Puis je parlerai des apports de ce stage et de son contexte sur le plan humain.
Difficults
Tout dabord, larrive Aberdeen na pas t une partie de plaisir ! Le logement de luniversit (i.e. les Riverside Cabins) propose un confort extrmement limit : le chauffage ne remplit pas son rle, la propret laisse dsirer, une odeur de plastique brl rgne dans les chambres, dans la cuisine, les mouches vivent dans le micro-onde / four, des piles dassiettes sales gisent dans lvier, la plaque de cuisine est recouverte de dpts daliments calcins et, l aussi, on sent une odeur nausabonde.
Photographie de la cuisine Source personnelle
Les Riverside Cabins sont une honte pour le personnel de RGU qui, quand on leur en parle, fronce les sourcils dun air de profonde compassion. Aprs avoir pass une nuit ici (la temprature nexcdait pas 8C), Rmi Voirin (i.e. lautre stagiaire de Clermont- Ferrand) et moi avons dcid de partir la recherche dun appartement convenable ce qui ne fut pas une tche facile en ce week-end Pascal. Aprs plusieurs checs, nous avons trouv, par le biais dun site permettant aux propritaires de mettre en ligne des annonces pour louer leur appartement sans passer par une agence, notre logement. Cependant, les difficults ne sarrtrent pas l.
tant venu en voiture, il a fallu obtenir un permis de parking car celui-ci est payant dans notre rue et sur environ 1 mile aux alentours. Nous nous sommes donc rendus The Point, le service de la mairie les dlivrant. Une fois sur place, on nous annona que les baux privs ne sont pas des justificatifs et quil nous faut une facture de la compagnie dlectricit ou une lettre de luniversit. Ma matre de stage nayant pas le temps de men faire une avant la semaine suivante, Rmi a demand au secrtariat de la School of Computing de lui en dlivrer une. Nous avons donc obtenu, pour 22 / 3 mois, notre permis de stationnement.
Enfin, la dernire difficult rencontre a encore un lien avec la mairie de la ville. Lorsque lon vit Aberdeen, une taxe (la Council Tax) est demande afin de payer leau et les services de la ville. tant tudiants, nous navons normalement pas la payer. Un mois et demi aprs nous tre enregistrs la mairie, nous recevons une facture nous rclamant la modique somme de 1080 de Council Tax. Nous nous rendons sur place afin dclaircir cette histoire. En effet, nous napparaissons pas dans les listes dtudiants dAberdeen fournies en dbut danne la mairie. Nous avons donc du prouver que nous tions bien tudiants (une lettre de RGU a suffi).
Malgr la diffrence de langue qui, pour des dmarches administratives requirent un vocabulaire bien particulier, et la difficult de trouver un appartement pour moins de 6 mois (dure lgale minimale pour un bail en Ecosse), nous avons surmont ces difficults et, de fait, pu profiter pleinement de notre stage mais aussi pu dcouvrir Aberdeen, lAberdeenshire et mme les les Shetland. Comparaison des performances de deux mthodes dencodage pour un CODEC H.264
VERGNE Aurore 2 me anne Rseaux et Tlcommunications 2009-2010 64
Apports du stage et du contexte
Ce stage sest droul ltranger, dans un pays anglophone ce qui ma permis damliorer mon anglais tant au niveau de la comprhension (crite et orale) quau niveau de lexpression (crite et orale). De plus, le mode de travail est totalement diffrent de ce que lon peut trouver en France. Par exemple, une grande autonomie est offerte aux tudiants qui doivent, la plupart du temps, se dbrouiller par eux-mmes pour acqurir des comptences en faisant des recherches et / ou des formations du type du CCNA Cisco. Par consquent, les tudiants jouissent dune grande libert quant lorganisation et la rpartition de leur travail. En outre, une grande flexibilit est offerte au niveau des horaires qui sont dailleurs (sur le papier) plus lgers quen France. Cet aspect ma permis de gagner en autonomie et en organisation au niveau de mon travail. Aussi la relation tudiant / professeur semble plus ouverte ce qui, mon avis, permet dinstaurer une sorte de confiance mutuelle qui permet une meilleure ambiance. Globalement, les gens semblent beaucoup plus accueillants quen France ce qui offre de plus grandes facilits pour sintgrer dans une quipe de travail dj forme depuis de longs mois. Jai dailleurs eu la sensation de bien mtre intgre au sein du CVC.
Le bilan gnral de ce stage est trs positif. Il ma confort dans le choix de poursuivre mes tudes et, pourquoi pas, ltranger et ma aussi permis damliorer mes comptences humaines telles que ladaptabilit, la communication et lorganisation.
Comparaison des performances de deux mthodes dencodage pour un CODEC H.264
VERGNE Aurore 2 me anne Rseaux et Tlcommunications 2009-2010 65
Questionnaire en anglais
INTERNSHIP TITLE: Comparaison des performances de deux mthodes dencodage pour un CODEC H.264
START DATE: Wednesday, April 7 th
END DATE: Friday, June 11 th
INTERNSHIP SUPERVISOR: Dr Yafan Zhao
Question One: Where did you do your internship? I did my internship at the Centre for Video Communications in the School of Engineering, The Robert Gordon University in Aberdeen. This city is the third most populous in Scotland and it is known as The Oil Capital of Europe or as The Grey City because of the offshore oil and the granite buildings. The motto of the city is the French words Bon Accord. This motto was used as a sign of recognition between Scottish during the war with England.
Question Two: Who did you work with/ for? I worked mostly alone but, once a week, my supervisor had a look at my work, answered to my questions and explained to me what I had to do next. When she was not available or not in the CVC lab, A. Bhat helped me. For example, she explained to me some parameters of the CODEC and how MatLab works.
Question Three: What were you asked to do? I had to compare the performances of two coding methods for a MPEG-4 / H.264 CODEC. The final aim is to indicate to the CVC members if there is any way to improve the CODEC performance. In order to achieve this goal, my work was divided in three parts describes in question four.
Question Four: Explain in stages what you did. First of all, I did preliminary work to study the various parameters of the CODEC in order to understand how the output sequence is influenced. For example, the parameters called QPISlice, QPPSlice and QPBSlice (usually called QP) define the quality of the frame I (the first one of a sequence), P and B (the other frames of the sequence). I observe that the higher the QP, the worse is the picture quality. This work took about one month because I had to test a lot of parameters and because the encoder needs about thirty minutes to code a video. These results are presented in the second part of this report. After that, I had to compare two coding methods proposed by the CODEC. The first one is called fixed QP (the QP value is chosen and it never changes during the coding). The second is called Rate Control. In this method, the QP is not fixed. Instead, I chose a target bitrate and the CODEC tries to achieve it by changing the QP for each frame. Once the sequences are coded with the two methods, I did a graph in order to compare objectively using PSNR Y and bitrate which one is the best. It appears that neither of them are better: it depends on the motion in the sequence. Then I compared those two methods subjectively (i.e. I watched the two sequences coded with each method and I wrote the difference in quality in tables). This time it appears that the QP method is better than RC method. In this one there are significant differences of the quality in the same frame that is why the quality seems worse. The last step consists of comparing a video frame encoded with fixed QP and with Rate Control. The comparison was made using an objective video quality measure called MOSp. This frame had to have big visual differences. Once that was done, I did a map of MOSp with software called MatLab. I noticed that the areas with a worse visual quality had a lower MOSp. So, I can say that MOSp which is calculated mathematically has a very high correlation with the visual quality.
Comparaison des performances de deux mthodes dencodage pour un CODEC H.264
VERGNE Aurore 2 me anne Rseaux et Tlcommunications 2009-2010 66
Question Five: Did you have any problems? I did not have big problems. But I found that the CODEC would often give error messages which were not clearly explained: they didnt really explain which parameters are wrong and why. A few times I asked my supervisor because I didnt find the answer by myself and she had no idea at all about the wrong things in the CODEC. So, it was a little annoying and I wasnt able to finish my experiments, for example, about the influence of the YUV format on the bitrate. Another problem is the lack of documentation about MatLab and its programing language: much of the documentation is paying and, if its not the case, its really incomplete.
Question Six: Was your work successful? In my opinion, my work was successful because Ive done all the tasks I had to do.
Question Seven: How could your work be continued by another student? First of all my work is completely done. The final aim was to show to the CVC what are the things which can be improved in the CODEC. That was presented by the MOSp map. Now, the CVC will work on it to do a kind of average between macroblocks with a high MOSp and the one with a low MOSp in order to not have any more a big drop of the quality in certain areas of the picture. I think the improvement of the CODEC cant be done by another IUT student. I explain. Video coding is based on complicated concepts which need time to understand it well. Moreover, the CODEC contains a lot of C files which is possible to modify to improve it. Ten weeks is not enough to understand video coding concepts, how the CODEC C files work together and how modify them to do the average between high MOSp macroblock and low MOSp macroblock. Thats why my work will be used by the CVC.
Question Eight: What technical skills did you gain from doing this internship? In the first place, I gained skills about video coding: I understood how a MPEG-4 / H.264 CODEC works, what are the mechanisms to code a sequence (motion estimation, motion compensation, ) and what are the coding methods (fixed QP, RC). I learnt also what the CODEC parameters mean and what are their functions. Moreover I gained programming skills: I discovered the basics of Microsoft Visual Studio and MatLab programming language (for loop, table and figure).
Question Nine: What other skills did you obtain? In addition to the technical skills listed in the previous question, I gained people skills. The first one is a better knowledge of written and spoken English. This one is due to the context of my internship. I discovered also a new way of work: in anglo-saxon countries a larger place is let to the autonomy and the schedule is more flexible. So, I was able to organize my work and my schedule as I wanted. Its really different that I always known. Then Im more resourceful with, for example, administrative papers. Overall, I keep a very good impression about this internship as well as human and technical. It was a great and unique experience.
Question Ten: Was the internship linked to your future studies or your future career? I think this internship doesnt really have a link with my future studies or career despite it was really interesting. In fact, Id like to work in networking: I hope to do a degree in this domain; for example, RSFS or ASUR and then a Masters degree in a foreign country. However Im sure this internship was a very good opportunity to improve my CV (and my English as well) because it took place in a foreign country. Im very happy about the last ten weeks.
Comparaison des performances de deux mthodes dencodage pour un CODEC H.264
VERGNE Aurore 2 me anne Rseaux et Tlcommunications 2009-2010 67
Glossaire
.264 Vido encode avec un CODEC H.264. Cest le format de sortie du CODEC utilis dans ce rapport. .cif CIF est une abrviation pour Common Intermediate Format. Cest un format utilis pour normaliser la rsolution horizontale et verticale en pixel des squences vido au format YC r C b . Les vidos en se formant ont une rsolution de 352*228 pixels, un nombre dimages par seconde de 29,97 et les couleurs sont encodes au format YUV 4:2:0. De plus, une trame contient 22*18 macroblocs .qcif QCIF est labrviation de Quarter Common Intermediate Format. Les caractristiques dune vido de ce format sont les mmes que pour le cif except quelle a une rsolution quatre fois moins grande (176*144). Le nombre de macroblocs est lui aussi divis par 4 (11*9). .yuv Vido encode au format YUV. Cest le format de sortie du CODEC utilis dans ce rapport. Cette squence, couple celle au format .264 sert recrer celle dorigine grce au dcodeur ou lire celle encode. CABAC Context-based Adaptive Binary Arithmetic Coding est une forme de codage entropique utilise dans le MPEG-4 / H.264. Il permet une meilleure compression que les autres algorithmes de compression ce qui est un des principaux avantages du MPEG-4 / H.264. Cependant, il ncessite une grande quantit de traitements pour tre dcod. Chrominance dsigne la couleur. Gnralement cette dernire est dcompose en 3 composantes (= en 3 chrominaces) rouge, verte et bleue (RVB). Codage Fait de passer dune reprsentation de donnes une autre. Par exemple, on passe de lettres formant un mot une reprsentation en binaire de celui-ci. CODEC COdeur / DECodeur. Il existe diffrents types de codeur/dcodeur ne compressant pas tous les donnes de la mme manire et donc donnant rendu ayant diffrente qualit. Il y en a pour le son et pour la vido. Compiler Fait de transformer des fichiers crits dans un langage de programmation comprhensible par lhomme en un programme excutable (= dans un langage comprhensible par la machine). Compression Technique permettant de rduire la taille de donnes numriques afin de faciliter leur stockage ou leur envoi sur un rseau. Compression entropique Compressions sans perte. Le code de Huffman est une forme de compression entropique. chantillonnage Fait de transformer un signal analogique en un numrique. Dans le cas dune image, on utilise deux types dchantillonnage : le spatial et le temporel. Extension Partie du nom du fichier situe aprs le . dfinissant son type. Par exemple, un fichier .txt est un fichier texte, un .xlx est un fichier excel et ainsi de suite. Gnralement les utilisateurs lamba ne les affichent pas (i.e. sous Windows, notamment, elles sont masques par dfaut). H.264 Norme de codage vido dont le but est de rduire les temps de codage et dcodage mais aussi de permettre une meilleure adaptation au protocole utilis pour transporter le flux vido. IDE Un Integrated Development Environment est programme regroupant un ensemble d'outils (diteur de texte, compilateur, dbogueur,...) pour le dveloppement de logiciels. Exemple d'IDE : Eclipse (dveloppement en Java), Microsotf Visual Studio, ... Log Fichier stockant tous les vnements qui se sont produits lors dune action quelconque. Luminance Intensit lumineuse. Dans ce rapport, la luminance est la luminosit dun pixel. Macrobloc Unit de base utilise dans le codage de la vido. Cest un bloc de pixels de 16*16. Monochrome Dsigne lutilisation dune seule couleur dont on fait varier la luminosit pour faire des nuances. Le noir et blanc est le plus clbre monochrome : la couleur utilise est le noir dont on fait varier la luminosit pour obtenir des nuances de gris allant jusquau blanc.
Comparaison des performances de deux mthodes dencodage pour un CODEC H.264
VERGNE Aurore 2 me anne Rseaux et Tlcommunications 2009-2010 68
MPEG-4 Norme de codage des squences audio-visuelles dans le cas dapplications multimdias (tlchargement, streaming, vido et radio mobile, jeux vido, tlvision, support haute dfinition). Ptrole offshore Ptrole se trouvant dans un gisement en haute mer. On lexploite grce des plateformes ptrolires. Proxy Serveur servant relayer les requtes entre un poste client et un autre serveur. Il est couramment utilis dans les collectivits notamment pour rguler laccs Internet. PSNR Le Peak Signal to Noise Ratio est un indicateur de qualit objectif de la vido. Son unit est le dcibel (dB). Il est calcul grce la formule suivante : PSNR =10.log 10 m` MSL
avec m la valeur maximale que peut prendre un pixel (sil est cod sur 8 bit, la valeur maximale est de 255). RTP Real Time transfert Protocol est un protocole de communication Sortie standard Dans le cas dun terminal Unix ou dune console Windows, la sortie standard est lendroit o sont affichs les rsultats de commande. Par dfaut, celle-ci est lcran mais il est possible de la rediriger dans un fichier par exemple. Systme visuel humain Ensemble des organes permettant la perception visuelle. Il regroupe les organes suivants : l'il et plus particulirement la rtine les nerfs optiques le chiasma optique le tractus optique le corps genouill latral les radiations optiques le cortex visuel
Comparaison des performances de deux mthodes dencodage pour un CODEC H.264
VERGNE Aurore 2 me anne Rseaux et Tlcommunications 2009-2010 69
Bibliographie
Ouvrages :
Iain E.G. Richardson, H.264 and MPEG-4 Video Compression Video compression for Next-generation Multimedia, John Wiley & Sons Ltd, 2003
Stefan Winkler, Digital Video Quality Vision Models and Metrics, John Wiley & Sons Ldt, 2005
Publications :
Abharana Bhat, Iain Richardson and Sampath Kannangara, A Novel Perceptual Quality Metric for Video Compression, Picture Coding Symposium 2009, California, Illinois, USA, mai 2009 disponible aussi ladresse suivante : http://www4.rgu.ac.uk/files/PCS_46.pdf
International Telecommunication Uninon section Telecommunication, Recommendation P.910 - Subjective video quality assessment methods for multimedia applications, 2009 disponible aussi ladresse suivante : http://www.itu.int/rec/dologin_pub.asp?lang=e&id=T-REC-P.910- 200804-I!!PDF-E&type=items
International Telecommunication Uninon section Radiocommunication, Recommendation BT. 500-11 - Methodology for the subjective assessment of the quality of television pictures, 2002 disponible aussi ladresse suivante : http://www.dii.unisi.it/~menegaz/DoctoralSchool2004/papers/ITU- R_BT.500-11.pdf
Sites web :
CODEC : Site o est publi le CODEC : http://iphome.hhi.de/suehring/tml/download/version 12.1 Documentation : http://iphome.hhi.de/suehring/tml/JM%20Reference%20Software%20Manual%20%28JVT- AE010%29.pdf
La compression de la vido est de plus en plus utilise dans le cas de transferts sur un rseau quelconque de vidos (streaming, tlchargement, ). Elle a pour but de rduire le dbit ncessaire celle-ci et, de fait la bande passante. Cependant, compresser une vido implique, ncessairement une perte de qualit objective et subjective qui peut savrer gnante. Le Center for Video Communications a pour projet de limiter au maximum cette perte mais aussi dtablir une relation, laide du MOSp, entre ces deux types de qualit.
Pour cela, il ma t demand de comparer deux mthodes dencodage dun CODEC MPEG-4 / H.264 afin de dterminer objectivement et subjectivement quelle est la meilleure. Par la suite, jai d vrifier la relation entre ces deux modes de comparaison afin de voir si le MOSp est viable.
Les rponses ces interrogations se trouvent dans le prsent rapport.