Tesis:

Aportaciones metodológicas para el diseño de descodificadores de vídeo de última generación sobre plataformas Multi-DSP2017


  • Autor: CHAVARRÍAS LAPASTORA, Miguel

  • Título: Aportaciones metodológicas para el diseño de descodificadores de vídeo de última generación sobre plataformas Multi-DSP2017

  • Fecha: 2017

  • Materia: Sin materia definida

  • Escuela: E.T.S.I. Y SISTEMAS DE TELECOMUNICACIÓN

  • Departamentos: INGENIERIA TELEMATICA Y ELECTRONICA

  • Acceso electrónico: http://oa.upm.es/47193/

  • Director/a 1º: PESCADOR DEL OSO, Fernando
  • Director/a 2º: GARRIDO GONZÁLEZ, Matías J.

  • Resumen: Esta tesis doctoral se enmarca dentro de las líneas de investigación centradas en la codificación y descodificación de vídeo digital que durante los últimos años desarrolla en la Universidad Politécnica de Madrid el Grupo de Diseño Electrónico y Microelectrónico. Dentro de estas líneas de investigación se han llevado a cabo varias tesis doctorales, donde se han propuesto distintas metodologías para la implementación de codificadores y descodificadores de vídeo sobre arquitecturas hardware específicas, así como para su optimización en tiempo de ejecución. Uno de los objetivos principales de estas metodologías es la reducción de los tiempos de desarrollo. Sin embargo, todas estas propuestas están centradas en arquitecturas integradas por un solo procesador. Tanto el incremento en la complejidad de los algoritmos que integran los nuevos estándares de codificación, como la utilización de procesadores multinúcleo, hacen necesaria la concepción de nuevas metodologías de diseño que aporten soluciones flexibles para la implementación de los nuevos descodificadores sobre este tipo de plataformas. Durante la última década se ha generalizado el uso de todo tipo de arquitecturas y plataformas multinúcleo en los terminales multimedia. Los Procesadores Digitales de Señal (DSP) multinúcleo (Multi-DSP) están específicamente diseñados para mejorar el procesamiento de algoritmos como los incluidos en los descodificadores de vídeo. Sin embargo, la programación de aplicaciones para procesadores Multi-DSP no es una tarea trivial. Esto se debe principalmente a que, por una parte, el código de referencia de los descodificadores suele estar optimizado para otras arquitecturas y debe migrarse a este entorno, lo que implica largos procesos de desarrollo y, por otra, el soporte software para el desarrollo de las aplicaciones es escaso, ya que este tipo de plataformas no disponen de un Sistema Operativo (SO) que facilite la tarea del programador. Así, resulta necesario buscar soluciones metodológicas que permitan aprovechar las ventajas que las plataformas DSP ofrecen en el procesamiento de algoritmos como los que se integran en las aplicaciones multimedia manteniendo tiempos de desarrollo razonables. El principal objetivo de esta tesis es el desarrollo de una metodología de diseño que permita implementar descodificadores de vídeo de última generación sobre plataformas Multi-DSP. Para lograr este objetivo, en primer lugar, se ha realizado un profundo estudio sobre el estado del arte en codificación y descodificación de vídeo. En este sentido, el recientemente estandarizado High Efficiency Video Coding (HEVC) es el códec más novedoso de entre los existentes. De forma complementaria a los distintos estándares de codificación, el estándar Reconfigurable Video Coding (RVC) permite el desarrollo de los mismos en base a una descripción de alto nivel mediante unidades funcionales y flujos de datos. Dicho estándar dota de un elevado grado de flexibilidad y modularidad al proceso de diseño e implementación de descodificadores, exponiendo un elevado grado de paralelismo que facilita su ejecución en entornos multinúcleo. Seguidamente, se ha llevado a cabo un análisis de las distintas tecnologías utilizadas en la implementación de descodificadores de vídeo y se han evaluado las distintas metodologías para el diseño de aplicaciones en entornos multinúcleo. La metodología que se propone en esta tesis tiene dos características que no poseen las metodologías que se han evaluado: que está específicamente pensada para facilitar el diseño con tecnologías DSP multinúcleo (aunque es lo suficientemente general como para ser de utilidad con otros tipos de arquitecturas) y que está muy orientada al desarrollo de codecs de vídeo (porque está basada en RVC). Para el desarrollo de descodificadores sobre plataformas Multi-DSP ha sido necesario evaluar, seleccionar y utilizar distintas herramientas y tecnologías que dan soporte a aspectos clave como la paralelización del código, la posibilidad de optimizar alguno de los algoritmos que integran los descodificadores, o la generación automática del código fuente. Las distintas soluciones adoptadas, así como su justificación, han constituido también una parte importante de este trabajo. A partir de la experiencia de diseño obtenida en la implementación de diferentes descodificadores en plataformas Multi-DSP se ha sintetizado una metodología de diseño, que además se ha automatizado incorporándola a Open RVC Cal compiler (Orcc), una herramienta de código abierto que permite la generación automática de código a partir de modelos RVC-CAL. Es más, la metodología propuesta es lo suficientemente general como para permitir la realización de implementaciones sobre plataformas multinúcleo basadas en Procesadores de Propósito General (GPPs). ABSTRACT This Ph.D. work is integrated into the digital video coding and decoding research lines of the Electronic and Microelectronic Research Group (GDEM), Universidad Politécnica de Madrid. Previous dissertations were mainly focused in the implementation of video codecs over specific hardware architectures, specifically in performance optimization and development time reduction. However, these proposals centered their attention on single-core architectures. Nowadays, the increase in the algorithmic complexity of new coding standards, together with the massive adoption of multicore processors, is pushing towards the conception of new design methodologies that improve designer’s efficiency. Succeeding in this goal, would help in providing more flexible solutions for the implementation of new video decoders over multicore platforms. During the last decade, the use of a large range of multicore architectures in multimedia devices has become widespread. The Multicore Digital Signal Processors (Multi-DSP) are specially designed to improve the performance of algorithms like those used on video decoders. However, programming this kind of processors has posed two main difficulties. On one side, the reference code of video codecs is typically optimized for other, more generic platforms, so it needs to be efficiently migrated, which involves long development times. Besides, software support for these platforms is reduced, as proven by the fact, among others, that no operating system is usually provided to both, help the development tasks and support the applications to take advantage of the hardware resources. Therefore, the proposal of new methodological solutions becomes necessary to take advantage of the Multi-DSP benefits while reducing the time to market. The main objective of this thesis is the development of a design methodology that allows the implementation of state-of-the-art video decoders for Multi-DSP platforms. First, a detailed study about the state-of-the-art on video codecs has been done. In this regard, the High Efficiency Video Coding (HEVC) standard is the newest one and it has been recently standardized. Complementary to the coding tools, the Reconfigurable Video Coding (RVC) standard allows the development of video codecs from a high-level description based on the paradigm of dataflow models of computation. The use of RVC-based solutions introduces flexibility, modularity and reusability of video codecs implementations. Also, it eases the runtime management and the parallel execution of the different actor, i.e., functional units, of the dataflow graph on the available computational resources. Secondly, a review of video coding implementation technologies has been done too, mainly focused on DSPs and GPPs platforms. Besides, an analysis of the state-of- the-art on multicore programming methodologies has been carried out. As a result, it turned that none of them had addressed the main target of this work: to contribute to improve the design phase for Multi-DSP technologies. Although the proposal contained herein is highly focused on the development of video codecs, as it is based on the RVC standard, it is general enough to be useful with other types of architectures and applications. During the development of this work, it has been necessary to evaluate, select and use different tools and technologies in order to develop video decoders for Multi- DSP platforms under the analyzed conditions. These tools support key aspects such as code parallelization, algorithm optimization features (for the decoders), as well as automatic source code generation. Finally, the proposed design methodology is based on the experience obtained during the practical implementation of different video decoders over Multi-DSP platforms. The methodology and tools developed in this work have been incorporated into Open RVC CAL Compiler (Orcc), an open source tool that allows the automatic source code generation from RVC-based models. Moreover, the proposed methodology is general enough to allow the implementation of generic multicore applications on GPP-based platforms.