Implementación temprana del envío MPEG del reproductor EVC móvil en tiempo real en octubre de 2020
By Olga Krovyakova - November, 3 2020
Abstracto
Esta contribución describe una implementación temprana de un reproductor de video móvil en tiempo real diseñado para decodificar y reproducir flujos de bits de conformidad con MPEG-5/Parte 1: Estándar internacional de codificación de video esencial (EVC) en proceso de publicación. 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 de 1080p a 24 fps en un subconjunto de herramientas de perfil principal de EVC.
1. Introducción
La implementación inicial actual tiene como objetivo demostrar la viabilidad de la reproducción en tiempo real de flujos de bits EVC en los principales dispositivos móviles disponibles en el mercado. Se eligió como dispositivo objetivo el smartphone Huawei P40 Pro con Kirin 990 SoC. Funciona bajo EMUI 10.1 basado en Android 10 y tiene en total 8 núcleos de CPU, entre los cuales:
- 2 núcleos Cortex-A76 de alta gama con frecuencia de 2,86 GHz;
- 2 núcleos Cortex-A76 de gama media con frecuencia de 2,36 GHz;
- 4 núcleos Cortex-A55 de gama baja con frecuencia de 1,95 GHz.
Como material de entrada se seleccionaron las secuencias de prueba “Kimono1” y “ParkScene” del conjunto de pruebas JVT-VC. Ambas secuencias de prueba tienen resolución 1080p a 24 fps con formato de color 4:2:0 y 10 segundos de duración.
Como configuración predeterminada del codificador, se seleccionó la configuración de acceso aleatorio de la condición de prueba común (CTC) de EVC. Se eligió el parámetro de cuantificación (QP) 32 como QP objetivo.
2. Herramientas EVC compatibles
Para lograr una velocidad de reproducción en tiempo real en el dispositivo de destino, se seleccionó un subconjunto de herramientas EVC en función de la información de creación de perfiles recopilada por Android Profiler en las secuencias de prueba codificadas y decodificadas con el software de referencia ETM6.1. La Figura 1 y la Figura 2 demuestran los datos de perfil obtenidos en el dispositivo objetivo para estas dos secuencias correspondientemente.
Figura 1. Perfiles de decodificación de flujo de bits de Kimono ETM6.1
Figura 2. Perfiles de decodificación de flujo de bits de ETM6.1 ParkScene
Con base en los datos de perfil, se seleccionó un subconjunto de herramientas EVC como se resume en la Tabla 1. Los nombres y abreviaturas de las herramientas en la tabla siguen las connotaciones estándar definidas en la especificación EVC.
Tabla 1. Conjunto de herramientas seleccionado para la implementación temprana del reproductor en tiempo real
Nombre corto de la herramienta | Nombre completo de la herramienta | ETM6.1 CTC RA configuración predeterminada |
Conjunto de herramientas seleccionado |
ADMVP | Predicción avanzada de vectores de movimiento | 1 | 1 |
AFINO | Predicción afín | 1 | 1 |
Htdf | Filtro de dominio de transformación de Hadamard | 1 | 1 |
DMVR | Derivación de vectores de movimiento del lado del decodificador | 1 | 1 |
ADCC | Codificación de coeficientes avanzados | 1 | 1 |
ADDB | Desbloqueo avanzado | 1 | 1 |
ALFA | Filtro de bucle adaptativo | 1 | 0 |
AMVR | Resolución de vectores de movimiento adaptativos | 1 | 1 |
ETA | Selección de transformaciones adaptativas | 1 | 1 |
BTT | Árboles binarios y ternarios | 1 | 0 |
CM_INIT | Inicialización del modelado de contexto | 1 | 1 |
DBF | Filtro de desbloqueo | 1 | 1 |
EIPD | Direcciones de intra predicción mejoradas | 1 | 0 |
HMVP | Historia Vectores de movimiento Predicción | 1 | 1 |
iQT | Cuantización y transformaciones avanzadas | 1 | 1 |
MMVD | Fusionar con la diferencia de vectores de movimiento | 1 | 1 |
POCS | Recuento avanzado de orden de imágenes | 1 | 1 |
RPL | Lista de imágenes de referencia | 1 | 1 |
SUCO | Orden de codificación de unidades divididas | 1 | 0 |
IBC | Copia intrabloque | 0 | 0 |
Como puede verse en la Tabla 1, la mayoría de las herramientas EVC se incluyeron en el conjunto de herramientas seleccionado.
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 en el software de referencia superior ETM 6.1:
- Implementación ARM SIMD de las funciones más críticas en la parte MC
- Procesamiento paralelo similar al de un frente marítimo de líneas CTU dentro de un marco.
- Implementación paralela del filtro de desbloqueo
Para simplificar la implementación, se seleccionaron los únicos 4 núcleos más potentes (gama alta y media) de Kirin SoC para su uso en el Reproductor.
Como resultado, el reproductor demuestra una reproducción de más de 24 fps en el dispositivo. La velocidad de decodificación promedio durante una reproducción de 10 segundos se resume en la Tabla 2.
Tabla 2. Resultados promedio de la reproducción del conjunto de herramientas seleccionado en el dispositivo
Secuencia de prueba | Velocidad de decodificación (fps) |
Parqueescena | 24.39 |
Kimono1 | 25 |
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 3 muestra una imagen del reproductor durante la reproducción de flujo de bits de Kimono en el dispositivo.
Figura 3. Imagen del reproductor funcionando en Huawei P40 Pro
4. Perfilado del decodificador optimizado
Figura 4. Perfilado de flujo de bits Kimono del decodificador optimizado
Figura 5. Perfilado de flujo de bits de ParkScene del decodificador optimizado
5. Utilización de la CPU
La implementación actual del reproductor está optimizada 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 6 y la Figura 7 muestran el porcentaje de utilización de la CPU para cada uno de los 4 potentes núcleos durante una reproducción de 10 segundos.
Figura 6. Utilización de núcleos de CPU de gama alta y media. Reproducción de kimono.
Figura 7. Utilización de núcleos de CPU de gama alta y media. Reproducción de ParkScene.
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 con un dispositivo 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 más de 4,5 horas a una velocidad constante de 24 fps. Las Figuras 10 y 11 resumen los resultados obtenidos.
Figura 10. Consumo de energía y velocidad de reproducción durante la reproducción infinita de Kimono
Figura 11. Consumo de energía y velocidad de reproducción durante la reproducción infinita de ParkScene
7. Conclusión
La primera versión del software EVC Player implementada por Solveig Multimedia demuestra que la reproducción en tiempo real de flujos de bits EVC es factible y se puede utilizar en dispositivos móviles modernos con un consumo de energía razonable.
- https://www.solveigmm.com/es/howto/mejoras-de-mobile-real-time-evc-decoder-and-player/
Olga 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!