Tesis:
Contributions to the Efficient Implementation of High-Computational Demanding Video Algorithms over Heterogeneous Platforms
- Autor: SAHA, Anup
- Título: Contributions to the Efficient Implementation of High-Computational Demanding Video Algorithms over Heterogeneous Platforms
- Fecha: 2023
- Materia:
- Escuela: E.T.S.I. Y SISTEMAS DE TELECOMUNICACIÓN
- Departamentos: INGENIERIA TELEMATICA Y ELECTRONICA
- Acceso electrónico: https://oa.upm.es/73432/
- Director/a 1º: PESCADOR DEL OSO, Fernando
- Director/a 2º: CHAVARRÍAS LAPASTORA, Miguel
- Resumen: Nearly everybody in the modern era frequently uses video compression technology in the form of watching TV, under-demand content, video streaming, multimedia content on social networks, self-made videos, etc. Video compression technology is essential to transmit videos through the network and store them in an efficient way. The very first of video compression technology was introduced and patented by Ray Davis Kell in 1929. It consisted on store differences of frames as the variations in the inductance of transformer coils. However, researchers from industry and academia started working on standardising video compression technology from the 19th century. But, it was necessary to wait till 1984 for the standardization of the first video coding standard, H.120, proposed by the International Telegraph and Telephone Consultative Committee (CCITT). CCITT further developed the H.261 standard by cooperating with the International Telecommunication Union (ITU) in 1988. Afterwards, all the video coding standards followed the same fundamental video coding recommendations with a hybrid coding inner structure, where transform coding is combined with intra-prediction and, later on, inter-prediction. Since then, and almost on average every six years, a new standard was released due to the increased demand for higher quality videos and with the aim of achieving significant bitrate savings for comparable subjective video quality.
During the last decades, the demand for higher quality videos (full and ultra high definition) has increased rapidly due to the wide availability of consumer electronics devices. To meet this demand, the Joint Video Experts Team (JVET) released the Versatile Video Coding (VVC) standard in July 2020. VVC provides up to 50% bitrate savings compared to the previous High Efficiency Video Coding (HEVC) standard by keeping the same video quality. However, this reduction in bitrate causes a major increase in computational complexity, especially for real-time video processing on embedded devices with limited resources. To overcome this added computational complexity challenge for obtaining real-time performance, it is highly required to exploit the available parallelism either in software and hardware.
In this scenario, this doctoral research focused on the development of a hybrid approach to accelerate the newer VVC-based decoders over heterogeneous platforms using finegrain parallelism, coarse-grain parallelism, and hardware accelerators. Here, data-level parallelism technique Single Instruction Multiple Data (SIMD), Central Processing Unit (CPU) + Graphics Processing Unit (GPU) based implementation were integrated with native coding default features and coarse-grain parallelism.
First, a detailed analysis was performed by profiling the state-of-the-art VVC decoder to identify the most computationally demanding blocks. Thus, coarse-grain and fine-grain profile of the decoder were carried out. Moreover, parallel processing abilities of different VVC decoder blocks were analysed to apply optimisation techniques.
Secondly, different platforms and open source video decoders were chosen and migrated to the selected platforms. Then, SIMD optimisation was efficiently implemented on the latest version of the decoders on heterogeneous platforms. Therefore, a hybrid approach was implemented on heterogeneous platforms, both SIMD optimisation and heterogeneous CPU+GPU based implementation were used in parallel with native coding default features and coarse-grain parallelism. These processes were repeated for different versions of the decoders on different platforms. This work was verified by conducting a wide set of experiments with fifteen sequences with different configurations included in the common test conditions standard set.
Lastly, a design methodology was synthesised using the experience of previous optimization. This methodology proposes some recommendations to accelerate the optimization process of video decoders with different platforms. It has been used to optimize other decoder implementation (OpenVVC) with good results and reducing the development effort.
RESUMEN
En la actualidad los algoritmos de compresión de vídeo son empleados en multitud de aplicaciones de la vida cotidiana como son la televisión, el video bajo demanda, el streaming de vídeo, los contenidos multimedia existentes en las redes sociales, etc. En este marco la tecnología empleada para comprimir la información que tienen todas estas fuentes de vídeo de alta calidad es esencial ya que es necesario transmitirlos por redes de comunicaciones de ancho de banda limitado o almacenarlos en dispositivos de capacidad también limitada.
Los primeros avances en la compresión de vídeo fueron desarrollados y patentados por Ray Davis Kell en 1929. Estos consistían en almacenar como variaciones de la inductancia de bobinas las diferencias entre imágenes de una secuencia de vídeo. Sin embargo, fue necesario esperar hasta que en 1984 el International Telegraph and Telephone Consultative Committee (CCITT) propone el primer estándar de codificación denominado H.120. Posteriormente, en 1988 el CCITT en colaboración con la International Telecommunication Union (ITU) desarrollan el estándar H.261 que ya incluye una arquitectura híbrida que sigue estando presente en los estándares implementados en las siguientes tres décadas después.
Dicha arquitectura híbrida se basa en una predicción de las imágenes (frames) a partir de la información existentes en otras imágenes de la secuencia de vídeo (predicción inter) así como es la misma imagen (predicción intra). Desde entonces, y aproximadamente cada seis años, se han ido publicando sucesivos estándares para soportar el continuo incremento en la demanda de videos de mayor resolución espacial y temporal, que requieran un menor número de bits pasa su transmisión o almacenamiento manteniendo o mejorando en todo momento la calidad objetiva y subjetiva. Durante la última década, la demanda de videos de cada vez mayor calidad (full high definition y ultra high definition) se ha incrementado debido a la disponibilidad de dispositivos de electrónica de consumo que demandan este tipo de contenidos. Para atender esta demanda el Joint Video Experts Team (JVET) publica en julio de 2020 el estándar denominado Versatile Video Coding (VVC) que proporciona una reducción en la tasa de bits del vídeo codificado un 50% menor que su predecesor, el estándar High Efficient Video Coding (HEVC) manteniendo la misma calidad de vídeo. Sin embargo, esta reducción en la tasa de bits provoca un incremento en la complejidad en los algoritmos que es especialmente relevante para dispositivos que deben trabajar en tiempo real con unos recursos limitados, como es el caso de los empleados para el desarrollo de esta tesis doctoral.
Para abordar este incremento en la complejidad del algoritmo y lograr el rendimiento necesario, es imprescindible explotar las posibilidades de paralelización tanto a nivel harware como software. En este escenario la presente tesis doctoral propone una arquitectura híbrida para acelerar implementaciones del estándar VVC sobre plataformas heterogéneas usando técnicas de paralelización de grado fino y grueso (fine- and course-grain parallelism) y aceleradores hardware. En concreto se han empleado técnicas basadas en el paralelisto a nivel de datos mediante el uso de instrucciones Single Instruction Multiple Data (SIMD) y arquitecturas que integran procesadores de propósito general (GPP) con procesadores que son capaces de realizar un paralelismo masivo de datos, como las unidades de procesamiento gráfico (GPU).
Para lograr estos objetivos, inicialmente se ha realizado un análisis de rendimiento del decodificador para identificar los bloques que demandan una mayor carga computacional. Este análisis se ha realizado desde un enfoque de los principales bloques del algoritmo, pero posteriormente se han analizado en detalle aquellos módulos que presentaban una mayor carga computacional y que son susceptibles de ser optimizados. Posteriormente se han evaluado diferentes plataformas hardware con diferentes arquitecturas y recursos para seleccionar las más adecuadas para estos objetivos. Paralelamente se han analizado los decodificadores de código abierto existentes en el mercado para tomarlos como punto de partida a la hora de realizar la optimización de sus prestaciones y aplicar sobre ellos las metodologías de optimización que se sintetizarían a partir de la experiencia acumulada durante la optimización de algunas partes del algoritmo.
Una vez elegidas las implementaciones a optimizar y las plataformas sobre las que llevar a cabo dichas optimizaciones se han aplicado técnicas que aprovechan el paralelismo de datos a nivel de instrucción (instrucciones SIMD) así como ejecución de parte de los algoritmos en aceleradores hardware para mejorar sus prestaciones. Este proceso se ha repetido para diferentes versiones de los decodificadores, diferentes módulos del algoritmo y con diferentes secuencias del estándar codificadas con distintos parámetros.
Finalmente, toda la experiencia acumulada tras este proceso ha permitido sintetizar una metodología de diseño que ha sido aplicada a otros módulos de otras implementaciones (como OpenVVC) obteniendo buenos resultados y reduciendo el tiempo requerido para realizar la optimización.