Acerca de Productos Asistencia FAQ Blog

Mejoras del decodificador y reproductor EVC móvil en tiempo real

image

 

  By Olga Krovyakova - May, 26 2021

button

Abstracto

Este artículo describe las mejoras con respecto a la Etapa 1 del proyecto Reproductor de video móvil en tiempo real de octubre de 2020, que implementó una versión anterior del reproductor, capaz de reproducir flujos de bits EVC  en tiempo real. El reproductor se basa en la versión 6.1 del software de referencia ETM y está optimizado para la arquitectura ARM. El reproductor se desarrolló y probó en el teléfono inteligente Huawei P40 Pro y demuestra una reproducción en tiempo real a 24 FPS en archivos de prueba de 1080p con un subconjunto de herramientas de perfil principal EVC.

1.Resultados

Resumiendo se presentó la primera etapa de la solución que permite una reproducción en tiempo real de las secuencias codificadas con las siguientes restricciones: 

  • Valor del parámetro de cuantificación: 32; 
  • Conjunto de herramientas de codificación: Affine, DMVR, HTDF, ADMVP, ADCC, AMVR, ATS, IQT, CM_INIT, ADDB, DBF, HMVP, MMVD, POCS, RPL (conjunto Stage1). 

El EVC Player presentado demuestra 25,07 FPS para las secuencias “ParkScene” y 26,02 FPS para las secuencias “Kimono1&rdquo.

Los resultados de las optimizaciones realizadas durante la Etapa 2 muestran que la herramienta BTT se puede agregar de forma segura al conjunto de herramientas y el QP se puede reducir a 27 y esto aumentará la calidad de la imagen con las condiciones:

  • Valor del parámetro de cuantificación: 27;
  • Conjunto de herramientas de codificación: Affine, DMVR, HTDF, ADMVP, ADCC, AMVR, ATS, IQT, CM_INIT, ADDB, DBF, HMVP, MMVD, POCS, RPL, BTT (en adelante denominado conjunto Stage2).

 

Tabla 1: Velocidad de reproducción máxima promedio lograda con el conjunto de herramientas seleccionado en el dispositivo móvil de prueba para QP=27 

Secuencia de prueba

Velocidad de decodificación del

Decodificador de etapa 1 (fps)

Velocidad de decodificación del

Decodificador de etapa 2 (fps)

Ganancia de rendimiento sobre el

Decodificador de etapa 1 (%)

Parqueescena

21.36

32,99

53,2

Kimono1

22,85

35.02

54,4

Como resultado de las optimizaciones, el decodificador muestra entre un 53 y un 54 % de ganancia de rendimiento en la aplicación del reproductor EVC, diseñada para el teléfono inteligente Huawei P40 Pro. 

 

Tabla 2. Conjunto de herramientas seleccionado para la mejora del jugador en tiempo real

Nombre corto de la herramienta

Nombre completo de la herramienta

ETM6.1 CTC RA

configuración predeterminada

Conjunto de herramientas seleccionado, etapa 1

Conjunto de herramientas seleccionado, etapa  2

ADMVP

Predicción avanzada de vectores de movimiento

1

1

1

AFINO

Predicción afín

1

1

1

Htdf

Filtro de dominio de transformación de Hadamard

1

1

1

DMVR

Derivación de vectores de movimiento del lado del decodificador

1

1

1

ADCC

Codificación de coeficientes avanzados

1

1

1

ADDB

Desbloqueo avanzado

1

1

1

ALFA

Filtro de bucle adaptativo

1

0

0

AMVR

Resolución de vectores de movimiento adaptativos

1

1

1

ETA

Selección de transformaciones adaptativas

1

1

1

BTT

Árboles binarios y ternarios

1

0

1

CM_INIT

Inicialización del modelado de contexto

1

1

1

DBF

Filtro de desbloqueo

1

1

1

EIPD

Direcciones de intra predicción mejoradas

1

0

0

HMVP

Historia Vectores de movimiento Predicción

1

1

1

iQT

Cuantización y transformaciones avanzadas

1

1

1

MMVD

Fusionar con la diferencia de vectores de movimiento

1

1

1

POCS

Recuento avanzado de orden de imágenes

1

1

1

RPL

Lista de imágenes de referencia

1

1

1

SUCO

Orden de codificación de unidades divididas

1

0

0

IBC

Copia intrabloque

0

0

0

2. Herramientas EVC compatibles

Se considera que la herramienta BTT tiene el mayor potencial, por lo que realizamos pruebas para la herramienta BTT habilitada adicionalmente para el conjunto Stage1 (Tabla 2). 

Las siguientes Figuras 1-3 muestran la codificación EVC, el rendimiento de decodificación y los valores PSNR para los archivos ParkScene y Kimono1 codificados con valores QP 27-32 con y sin la herramienta BTT64. Para mayor comodidad, las cifras contienen valores combinados medidos para transmisiones sin BTT64 y con BTT64 en consecuencia.

image

Figura 1. Rendimiento de codificación ETM 6.1 en una PC con CPU i7-9700 operada por Windows 10 x64 con y sin la herramienta BTT64 habilitada

image

Figura 2. Rendimiento del decodificador de etapa 1 en HUAWEI P40 Pro operado por EMUI 10.1 con y sin la herramienta BTT64 habilitada

image

Figura 3. Valores PSNR de archivos codificados por el codificador ETM 6.1 con y sin la herramienta BTT64 habilitada.

 

La Figura 3 muestra que habilitar BTT64 no reduce significativamente el rendimiento del decodificador y también mejora la calidad del archivo de salida’. De modo que podemos habilitarlo de forma segura como una herramienta EVC adicional.

Para ceñirse al concepto de decodificación propuesto en la Etapa 1, se propone habilitar un tamaño de CU de 64x64 para el BTT (en adelante denominado BTT64 por conveniencia). 

Para lograr una velocidad de reproducción en tiempo real en el dispositivo de destino, es importante conocer la información de perfiles de las herramientas EVC durante la decodificación. Esta información fue recopilada por Android Profiler en la prueba decodificada con el decodificador de la Etapa 1. La Figura 4 y la Figura 5 demuestran los datos de perfil obtenidos en el dispositivo de destino para los flujos de bits ParkScene y Kimono1 codificados con el conjunto de herramientas Stage 2 y el valor QP igual a 27.

image

Figura 4. Perfil del decodificador para el flujo de bits de ParkScene codificado con el conjunto de herramientas de la Etapa 2 (QP=27)

image

Figura 5. Perfil del decodificador para el flujo de bits Kimono1 codificado con el conjunto de herramientas de la Etapa 2 (QP=27)

Las funciones que consumen más tiempo están relacionadas con DMVR, compensación de movimiento (MC), desbloqueo y reconstrucción. Estas herramientas consumen alrededor del 77% del tiempo de decodificación y son las mejores candidatas para la optimización SIMD. 

3. Detalles de implementación y reproducción

Para lograr la reproducción en tiempo real en el conjunto de herramientas seleccionado, se realizaron las siguientes modificaciones principales sobre el software de referencia ETM 6.1:

  1. Implementación ARM SIMD de las funciones más críticas en piezas de Desbloqueo y Reconstrucción
  2. Procesamiento paralelo tipo Waterfront (WPP) para procesos de desbloqueo y decodificación, extracción de subprocesos y arranque basado en líneas

Como preparación para las optimizaciones de la funcionalidad multiproceso, hubo algunas refactorizaciones y optimizaciones adicionales en las funciones relacionadas con el desbloqueo. Después de finalizar la implementación multiproceso, la ganancia de FPS del descodificador’sobre el descodificador de la Etapa 1 es del 40 % para el Kimono1 y del 42 % para las secuencias ParkScene, y el reproductor es capaz de demostrar una reproducción de 24 fps en el dispositivo. 

Para verificar la velocidad de reproducción de manera objetiva y subjetiva, el reproductor se implementó y probó en el teléfono inteligente Huawei P40 Pro.

La Figura 6 muestra una imagen del reproductor durante la reproducción de flujo de bits de Kimono en el dispositivo.

image

Figura 6. Imagen del reproductor funcionando en Huawei P40 Pro

4. Perfilado del decodificador optimizado

image

Figura 7. Perfil de decodificador optimizado para el flujo de bits de ParkScene codificado con el conjunto de herramientas de la Etapa 2 (QP=27)

image

Figura 8. Perfil de decodificador optimizado para el flujo de bits Kimono1 codificado con el conjunto de herramientas de la Etapa 2 (QP=27)

5. Utilización de la CPU

El decodificador está optimizado para el teléfono móvil Huawei P40 Pro en términos de uso de núcleos de CPU; más específicamente, el software funciona solo con los 4 núcleos de CPU Kirin 990 más potentes (gama alta y media). La Figura 9 y la Figura 10 muestran el porcentaje de utilización de la CPU para cada uno de los 4 potentes núcleos durante el proceso de decodificación.

image

(a) 

 image

(b)

Figura 9. Utilización de núcleos de CPU de gama alta y media. Reproducción de kimono, (a) Etapa 1, (b) Etapa 2

image(a)

image

(b)

Figura 10. Utilización de núcleos de CPU de gama alta y media. Reproducción de ParkScene, (a) Etapa 1, (b) Etapa 2

 

Las Figuras 9 y 10 muestran que el decodificador optimizado de la Etapa 2 utiliza de manera más efectiva los núcleos de gama alta y media.

6. Consumo de energía

Para estimar el consumo de energía, se lanzó un bucle de reproducción infinito de flujos de bits de prueba en el reproductor con el dispositivo móvil de prueba cargado al 100% y el proceso estuvo funcionando hasta que el dispositivo se apagó debido a una insuficiencia de energía. Como resultado, el reproductor estuvo trabajando durante 4h 25m con el archivo Kimono1 y 4h 07m con el archivo ParkScene a una velocidad de 24 fps. Las Figuras 11 y 12 resumen los resultados obtenidos.

image

(a)

image

(b)

Figura 11. Consumo de energía y velocidad de reproducción durante la reproducción infinita de Kimono, (a) Etapa 1, (b) Etapa 2

image

(a)

image

(b)

Figura 12. Consumo de energía y velocidad de reproducción durante la reproducción infinita de ParkScene, (a) Etapa 1, (b) Etapa 2

 

Las figuras 11-12 muestran que el consumo de batería en Etapa 2 ha aumentado ligeramente en comparación con Etapa 1.

7. Conclusión

Solveig Multimedia continuó realizando optimizaciones relacionadas con el algoritmo WPP introducido en la Etapa 1 así como las optimizaciones SIMD de las funciones.

Como resultado de las optimizaciones, el decodificador muestra entre un 53 y un 54 % de ganancia de rendimiento en la aplicación del reproductor EVC, diseñada para el teléfono inteligente Huawei P40 Pro. 

El decodificador optimizado muestra 33-35 FPS para el conjunto de herramientas propuesto, donde se incluye adicionalmente la herramienta BTT para que se cumplan en exceso todos los objetivos de la Etapa 2. Y significa que el valor QP también se puede reducir a 23. Para QP=23, el decodificador muestra 31,52 FPS para el Kimono1 y 28,37 FPS para los archivos Parkscene, lo que es suficiente para proporcionar una reproducción en tiempo real de 24 FPS para ambos archivos.

button
  • https://www.solveigmm.com/en/howto/implementación-temprana-de-mobile-real-time-evc-player-mpeg-submission-october-2020/

 

 About the author

imageOlga Krovyakova is the Technical Support Manager in Solveig Multimedia since 2010.

She is the author of many text and video guidelines of company's products: Video Splitter, HyperCam, WMP Trimmer Plugin, AVI Trimmer+ and TriMP4.

She works with programs every day and therefore knows very well how they work. Сontact Olga via support@solveigmm.com if you have any questions. She will gladly assist you!