Performances of an HEVC encoder using TI C66x

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

Descripción

Título: Performances of an HEVC encoder using TI C66x
Autor/es:
  • Saussereau, Julia
Director/es:
  • Pescador del Oso, Fernando
Tipo de Documento: Tesis (Master)
Título del máster: Ingeniería de Sistemas y Servicios para la Sociedad de la Información
Fecha: 22 Julio 2016
Materias:
Escuela: E.T.S.I. y Sistemas de Telecomunicación (UPM)
Departamento: Ingeniería Telemática y Electrónica
Licencias Creative Commons: Reconocimiento - Sin obra derivada - No comercial

Texto completo

[img]
Vista Previa
Pdf - Se necesita un visor de ficheros PDF, como GSview, Xpdf o Adobe Acrobat Reader
Descargar (3MB) | Vista Previa

Resumen

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.

Más información

ID de Registro: 44630
Identificador DC: http://oa.upm.es/44630/
Identificador OAI: oai:oa.upm.es:44630
Depositado por: Biblioteca Universitaria Campus Sur
Depositado el: 08 Feb 2017 12:41
Ultima Modificación: 08 Feb 2017 12:41
  • Open Access
  • Open Access
  • Sherpa-Romeo
    Compruebe si la revista anglosajona en la que ha publicado un artículo permite también su publicación en abierto.
  • Dulcinea
    Compruebe si la revista española en la que ha publicado un artículo permite también su publicación en abierto.
  • Recolecta
  • e-ciencia
  • Observatorio I+D+i UPM
  • OpenCourseWare UPM