Performances of an HEVC encoder using TI C66x

Saussereau, Julia (2016). Performances of an HEVC encoder using TI C66x. Thesis (Master thesis), E.T.S.I. y Sistemas de Telecomunicación (UPM).

Description

Title: Performances of an HEVC encoder using TI C66x
Author/s:
  • Saussereau, Julia
Contributor/s:
  • Pescador del Oso, Fernando
Item Type: Thesis (Master thesis)
Masters title: Ingeniería de Sistemas y Servicios para la Sociedad de la Información
Date: 22 July 2016
Subjects:
Faculty: E.T.S.I. y Sistemas de Telecomunicación (UPM)
Department: Ingeniería Telemática y Electrónica
Creative Commons Licenses: Recognition - No derivative works - Non commercial

Full text

[img]
Preview
PDF - Requires a PDF viewer, such as GSview, Xpdf or Adobe Acrobat Reader
Download (3MB) | Preview

Abstract

Video codec is a process which permits to encode or decode a video data stream. We have to be attentive to the efficiency of the codec that we choose in function of our goals. For instance, if we want to provide the best quality with the best speed, we will need a powerful system with different processors and which has a large memory. In the contrary, if we want to execute our video codec software in an embedded system, we will search to optimize the code and try to find out which are the bottlenecks of our encoder. In our case, we want to implement Kvazaar encoder on a DSP. Kvazaar encoder is a free software developped by a squad of finnish researchers and whose the architecture is really similar to HEVC. The main difference between these two entities is that Kvazaar was programmed in C language which makes it less complex and easier to implement on an embedded system. The main goal of this master thesis was to complete with success, the implantation of Kvazaar on the chosen platform and then to evaluate the performances. Concerning the implementation of Kvazaar on the DSP TI C66x, the main executed action was to suppress the use of threads during the compilation. Indeed, even if that DSP is multicore, threading is not allowed in that platform but parallelism can be done thanks to the use of DSP/BIOS which provides interruption use. Then, we had to study the program in order to find the main blocks which compose the video encoding for evaluating the encoding time mandatory to the execution of each block and then find which blocks can be optimized concerning the CPU cycles consumption. Indeed, the main blocks that we wanted to study concern the execution of transform, inverse transform, cabac, inter and intra prediction, quantization and inverse quantization and scaling. We noticed that, after doing many tests in order to increase the number of frames per second and the speed, the main block which needs the most CPU encoding time is the inter-prediction. The next work can be to find a way to decrease the time needed by that block to be executed because it is the main obstacle in order to obtain a better efficiency and speed of the video encoder Kvazaar. RÉSUMÉ. Le codec video est un precede qui permet de compresser ou decompresser des flux videos. On doit toujours tenir compte des performances permises par le codec en function de l'usage que l'on souhaite en faire. Par example, si on veut obtenir la meilleure qualite possible tout en assurant une certaine rapidite, on va utiliser un systeme multi-processeurs puissant avec une capacite memoire elevee. Si au contraire, on souhaite que notre codec s'execute sur un systeme embarque, on va chercher a optimiser le programme et trouver quelles sont les parties du code qui demandent le plus de temps a s'executer. Dans notre cas, on voudrait implementer l'encodeur video Kvazaar sur un DSP. L'encodeur Kvazaar est un logiciel gratuit developpe par une equipe de chercheurs finlandais et dont l'architecture est similaire au codec HEVC. La difference entre les deux logiciels reside notamment dans le fait que Kvaavar est code en langage C ce qui le rend moins complexe et plus facile implementer sur un systeme embarque. Le but premier de ce stage etait d'arriver a faire fonctionner Kvazaar sur la plateforme choisie et d'evaluer ses performances. En ce qui concerne l'implantation de Kvazaar sur le DSP TI C6Gx, la principale action effectuee etait de supprimer l'utilisation des threads dans l'execution du code. En effet, meme si notre DSP est multi coeur, le threading n'est pas autorise sur cette plateforme mais le parallelisme peut se realiser grace a DSP/BIOS qui permet l'usagc d'interruptions. Ensuite, il fallait etudier le code afin de trouver les principaux blocs qui constituent un encodage video pour evaluer le temps d'execution de chacun de ces blocs et trouver quels blocs seraient utiles a optimiser d'un point de vue du nombre de cycles du CPU necessaires. En effet, les principaux blocs que nous souhaitions etudier concernaient l'execution de la transformed et son inverse, Cabac, inter et intra prediction, la quantification et son inverse et le scaling. Il s'avere que parmi tous les tests effectues afin d'augmenter le nombre de frames encodees par seconde et la vitesse, le principal bloc qui monopolise le processeur est l'inter-prediction. Le prochain travail serait done de trouver un moyen pour diminuer le temps necessaire a ce bloc pour s'executer car c'est le principal rempart pour obtenir une plus grande efficacite et rapidite de l'encodeur video Kvazaar.

More information

Item ID: 44630
DC Identifier: http://oa.upm.es/44630/
OAI Identifier: oai:oa.upm.es:44630
Deposited by: Biblioteca Universitaria Campus Sur
Deposited on: 08 Feb 2017 12:41
Last Modified: 08 Feb 2017 12:41
  • Logo InvestigaM (UPM)
  • Logo GEOUP4
  • Logo Open Access
  • Open Access
  • Logo Sherpa/Romeo
    Check whether the anglo-saxon journal in which you have published an article allows you to also publish it under open access.
  • Logo Dulcinea
    Check whether the spanish journal in which you have published an article allows you to also publish it under open access.
  • Logo de Recolecta
  • Logo del Observatorio I+D+i UPM
  • Logo de OpenCourseWare UPM