Diseño de técnicas para la paralelización de algoritmos de descodificación de video digital sobre la plataforma NVIDIA JETSON TX2

García Anés, Daniel (2019). Diseño de técnicas para la paralelización de algoritmos de descodificación de video digital sobre la plataforma NVIDIA JETSON TX2. Proyecto Fin de Carrera / Trabajo Fin de Grado, E.T.S.I. y Sistemas de Telecomunicación (UPM), Madrid.

Description

Title: Diseño de técnicas para la paralelización de algoritmos de descodificación de video digital sobre la plataforma NVIDIA JETSON TX2
Author/s:
  • García Anés, Daniel
Contributor/s:
  • Pescador del Oso, Fernando
  • Chavarrías Lapastora, Miguel
Item Type: Final Project
Degree: Grado en Ingeniería Telemática
Date: 17 July 2019
Subjects:
Freetext Keywords: Descodificación; Video digital
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 (1MB) | Preview
[img] Archive (ZIP) - Users in campus UPM only
Download (125kB)

Abstract

Este proyecto está enmarcado dentro de la línea de investigación relacionada con la modificación/descodificación de vídeo digital del grupo de investigación GDEM viene trabajando desde hace ya varios años. A lo largo del documento se desarrolla una metodología para la paralelización de uno de los algoritmos de filtrado de un descodificador de vídeo digital que puede ser generalizable a otros algoritmos de descodificación. Esta metodología permite llevar a cabo una implementación de un descodificador de vídeo, basado en el estándar HEVC, en la plataforma heterogénea NVIDIA Jetson TX2. En esta implementación, el algoritmo de filtrado será ejecutado por la GPU, de forma que se pueda aprovechar la gran capacidad de cómputo en paralelo que ofrece este procesador, y el resto de los algoritmos serán ejecutados por la CPU de dicha plataforma. Tras esta primera implementación, se procede a realizar varias versiones de ésta usando distintos tipos de procedimientos en la parte de sincronización entre los procesadores: transferencias de memoria usando memoria unificada o memcpy, al igual que distintos tipos de técnicas de paralelización en la CPU: pthreads y OpenMP. Una vez que el desarrollo de la metodología y la implementación han finalizado, se realiza un banco de pruebas empleando ocho secuencias de vídeo: cuatro con resolución en píxeles de 1920x1080 y otras cuatro con resolución en píxeles de 2560x1600. Estas pruebas se llevan a cabo con las distintas versiones del programa. En primer lugar, la versión original. En segundo lugar, la versión en la cual se usa pthreads para la creación y sincronización entre los hilos de la CPU y el filtrado se lleva a cabo en la GPU. Por último, la versión en la que se emplea OpenMP para la creación y sincronización de hilos en la CPU y el filtrado se realiza en la GPU. A partir de los resultados es posible apreciar las ventajas e inconvenientes que el uso de una plataforma heterogénea ofrece. Esta implementación abre la puerta a futuras mejoras sobre dicho trabajo en las distintas implementaciones de descodificadores de vídeo digital sobre plataformas heterogéneas. Abstract: This project belongs to the coding/decoding research line of GDEM researchers group, where several scientific contributions have been made over the last years. Throughout this document a methodology for the parallelization of a digital video decoding filtering algorithm is developed. This methodology can be generalised so that other video decoding algorithms could be parallelized. Alongside developing the mentioned methodology, an implementation of a video decoder (based on the HEVC standard) in the heterogeneous platform NVIDIA Jetson TX2 is made. In this implementation, the filtering algorithm will be executed in the GPU, to take advantage of the high parallel computing capability this kinds of processors have, and the rest of the decoding algorithms are executed in the CPU. In this process, several problems have been encountered and respectively solved, such as architecture compatibility problems with the OpenHEVC software, synchronization problems between the different processors in the platform and concurrency problems in the GPU. After this first implementation, several versions are created using different approaches for the synchronization between processors: using unified memory or memcpy for memory transfers and data management, as well as using different parallel techniques in the CPU: pthreads and OpenMP. Once the methodology and the implementations have been finished, a test pool is made using eight different video sequences: four of them have FullHD resolution (1920x1080 pixels) and the other four have 2K resolution (2560x1600 pixels). This sequences are tested using several different versions of the decoder. Firstly, the original OpenHEVC decoder is used. Secondly, the version used is the one in which DBF is executed in the GPU and the rest of the program is executed in the CPU using pthreads to create and synchronize all CPU threads. Lastly, the version used is the one in which DBF is executed in the GPU and the rest of the decoder is executed in the CPU using OpenMP to create and manage the CPU threads. This tests offer several results where is possible to see and understand the advantages and disadvantages heterogeneous platforms have. This implementation offers a new opportunity to future improvements on digital video decoder’s implementation in heterogeneous platforms.

More information

Item ID: 62871
DC Identifier: http://oa.upm.es/62871/
OAI Identifier: oai:oa.upm.es:62871
Deposited by: Biblioteca Universitaria Campus Sur
Deposited on: 02 Jul 2020 11:02
Last Modified: 02 Jul 2020 11:06
  • 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