Integración de técnicas de optimización y aceleración sobre un descodificador Versatile Video Coding en sistemas empotrados heterogéneos

Aranda López, Víctor (2021). Integración de técnicas de optimización y aceleración sobre un descodificador Versatile Video Coding en sistemas empotrados heterogéneos. Proyecto Fin de Carrera / Trabajo Fin de Grado, E.T.S.I. y Sistemas de Telecomunicación (UPM), Madrid.

Description

Title: Integración de técnicas de optimización y aceleración sobre un descodificador Versatile Video Coding en sistemas empotrados heterogéneos
Author/s:
  • Aranda López, Víctor
Contributor/s:
Item Type: Final Project
Degree: Grado en Ingeniería Telemática
Date: July 2021
Subjects:
Freetext Keywords: Descodificación; Video digital; Codificación; Plataforma heterogéneas
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

[thumbnail of TFG_VICTOR_ARANDA_LOPEZ.pdf] PDF - Requires a PDF viewer, such as GSview, Xpdf or Adobe Acrobat Reader
Download (2MB)

Abstract

Este Proyecto Fin de Grado se ha realizado en el Grupo de Diseño Electrónico y Microelectrónico (GDEM), que forma parte del Centro de Investigación en Tecnologías Software y Sistemas
Multimedia para la Sostenibilidad (CITSEM), y se enmarca en el ámbito de la codificación y decodificación de vídeo digital. El auge de la demanda de este tipo de contenidos hace necesario
el desarrollo de nuevos algoritmos de compresión más eficientes pero ello hace que sean más complejos computacionalmente. En este sentido, el nuevo estándar de compresión Versatile Video
Coding (VVC) marca el actual estado del arte. Se ha trabajado con la implementación VVdeC versión 0.2.0.0 del estándar VVC, realizada por el instituto de investigación de Fraunhofer, Alemania. El objetivo principal es mejorar el rendimiento de este decodificador para alcanzar decodificación en tiempo real en una plataforma heterogénea embebida como es NVIDIA AGX Xavier mediante el uso de técnicas de paralelización como la migración de partes de código a una Graphic Processing Unit (GPU) caracterizada por la realización de cálculos de baja complejidad pero con un alto grado de paralelización. También,
se usarán instrucciones Single Instruction Multiple Data (SIMD) para aumentar el rendimiento. Inicialmente, se ha realizado la adaptación de VVdeC a la plataforma con la que se ha trabajado. También se ha realizado un análisis de los bloques más importantes del proceso de decodificación de VVC. A continuación, se ha incluido las instrucciones SIMD y se utiliza la biblioteca SIMDe para la conversión de operaciones SIMD de procesadores x86 a la arquitectura Neon que usa ARM. Finalmente, se han analizado los tiempos conseguidos usando instrucciones SIMD y se han comparado dichos resultados con los obtenidos sin instrucciones SIMD. La otra técnica de optimización a explotar es el uso de la GPU mediante el traslado de funciones clave a la tarjeta gráfica. Esto implica un proceso continuo de análisis de código en Central Processing Unit (CPU) y GPU, optimización de la implementación de la GPU, evaluación de los resultados y vuelta a analizar el código, hasta que se considera que se ha llegado a un punto adecuado. Por último, se destacan posibles caminos a seguir así como las conclusiones obtenidas tras el largo proceso de desarrollo de la implementación de la función en GPU.
Abstract:
This Final Degree Project was carried out in the Electronic and Microelectronic Design Group (GDEM) and the project is situated in the field of coding and decoding digital video. The increment of demand in this type of content makes compulsory the development of new and more efficient codecs but this imply that they are more computationally complex. Due to this
necessity Versatile Video Coding (VVC) was released. This project worked with VVdeC version 0.2.0.0, an implementation of VVC standard made by the Fraunhofer research institute, in Germany. The main objective is to improve the performance to archive real-time decoding in a heterogeneous platform like NVIDIA AGX Xavier. Technologies of parallelization were used like moving parts of the code to a Graphic Processing Unit (GPU) because it is capable of executing low complexity operation but with high parallelization degree. Moreover, Single Instruction Multiple Data (SIMD) instructions were used to improve the performance too. First, VVdeC is adapted to run in the NVIDIA AGX Xavier platform, and an analysis of the main blocks was done to identify the most time consuming blocks. Next, SIMD instructions were included. For this SIMDe library was used to convert SIMD instructions used for x86 processors to others that the Neon architecture uses. Lastly, the results when SIMD is activated were analysed. In addition, Graphic Processing Unit (GPU) was used to migrate a function that takes a significant portion of the decoding process to the graphic processor. This migration consists of a continuous process of analyzing Central Processing Unit (CPU) and GPU code, optimizing GPU code, evaluating the results and analyse the code again. This is repeated until it is considered that the process of optimization cannot go further. Finally, several future lines of investigation are mentioned as well as conclusions obtained after the implementation and migration of the function to GPU.

More information

Item ID: 70559
DC Identifier: https://oa.upm.es/70559/
OAI Identifier: oai:oa.upm.es:70559
Deposited by: Biblioteca Universitaria Campus Sur
Deposited on: 07 Jun 2022 06:04
Last Modified: 06 Aug 2022 22:30
  • 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