Implementação antecipada de envio de MPEG do player EVC em tempo real móvel, outubro de 2020
By Olga Krovyakova - November, 3 2020
Abstrato
Esta contribuição descreve uma implementação inicial de um reprodutor de vídeo móvel em tempo real projetado para decodificar e reproduzir fluxos de bits em conformidade com o padrão internacional MPEG-5/Parte 1: Essential Video Coding (EVC) em publicação. O Player é baseado no software de referência ETM versão 6.1 e otimizado para arquitetura ARM. O Player foi desenvolvido e testado no smartphone Huawei P40 Pro e demonstra reprodução em tempo real de 1080p a 24 fps em um subconjunto de ferramentas de perfil principal EVC.
1. Introdução
A atual implementação inicial tem como objetivo demonstrar a viabilidade da reprodução em tempo real de fluxos de bits EVC nos principais dispositivos móveis disponíveis no mercado. O smartphone Huawei P40 Pro com Kirin 990 SoC foi escolhido como dispositivo alvo. É operado sob EMUI 10.1 baseado em Android 10 e possui no total 8 núcleos de CPU, entre os quais:
- 2 núcleos Cortex-A76 de última geração com clock de 2,86 GHz;
- 2 núcleos Cortex-A76 intermediários com clock de 2,36 GHz;
- 4 núcleos Cortex-A55 de baixo custo com clock de 1,95 GHz.
Como material de entrada “Kimono1” e “ParkScene” foram selecionadas sequências de teste do conjunto de testes JVT-VC. Ambas as sequências de teste têm resolução de 1080p a 24 fps com formato de cores 4:2:0 e duração de 10 segundos.
Como configuração padrão do encoder, a configuração de acesso aleatório da condição de teste comum (CTC) do EVC foi selecionada. O Parâmetro de Quantização (QP) 32 foi escolhido como QP alvo.
2. Ferramentas EVC suportadas
Para atingir a velocidade de reprodução em tempo real no dispositivo alvo, um subconjunto de ferramentas EVC foi selecionado com base nas informações de perfil, coletadas pelo Android Profiler nas sequências de teste codificadas e decodificadas com o software de referência ETM6.1. A Figura 1 e a Figura 2 demonstram dados de perfil obtidos no dispositivo alvo para estas duas sequências correspondentemente.
Figura 1. Perfil de decodificação de bitstream do Kimono ETM6.1
Figura 2. Perfil de decodificação de fluxo de bits ETM6.1 ParkScene
Com base nos dados de perfil, um subconjunto de ferramentas EVC foi selecionado conforme resumido na Tabela 1. Os nomes e abreviações das ferramentas na tabela seguem as conotações padrão definidas na especificação EVC.
Tabela 1. Conjunto de ferramentas selecionado para a implementação inicial do player em tempo real
Nome abreviado da ferramenta | Nome completo da ferramenta | ETM6.1 CTC RA configuração padrão |
Conjunto de ferramentas selecionado |
ADMVP | Previsão avançada de vetores de movimento | 1 | 1 |
AFINO | Previsão afim | 1 | 1 |
HTML | Filtro de domínio de transformação Hadamard | 1 | 1 |
DMVR | Derivação de vetores de movimento do lado do decodificador | 1 | 1 |
ADCC | Codificação de Coeficientes Avançados | 1 | 1 |
ADDB | Desbloqueio Avançado | 1 | 1 |
ALF | Filtro de Loop Adaptativo | 1 | 0 |
AMVR | Resolução de vetores de movimento adaptativos | 1 | 1 |
ATS | Seleção de transformações adaptativas | 1 | 1 |
BTT | Árvores Binárias e Ternárias | 1 | 0 |
CM_INIT | Inicialização de modelagem de contexto | 1 | 1 |
DBF | Filtro de desbloqueio | 1 | 1 |
EIPD | Direções de previsão intra-aprimoradas | 1 | 0 |
HMVP | História Vetores de movimento Previsão | 1 | 1 |
qT | Quantização e Transformações Avançadas | 1 | 1 |
DMVM | Mesclar com diferença de vetores de movimento | 1 | 1 |
POCS | Contagem avançada de pedidos de imagens | 1 | 1 |
RPL | Lista de imagens de referência | 1 | 1 |
SUCO | Ordem de codificação de unidade dividida | 1 | 0 |
IBC | Cópia intrabloco | 0 | 0 |
Como pode ser visto na Tabela 1, a maioria das ferramentas EVC foram incluídas no conjunto de ferramentas selecionado.
3. Detalhes de implementação e reprodução
Para obter reprodução em tempo real no conjunto de ferramentas selecionado, as seguintes modificações principais foram realizadas no SW de referência ETM 6.1 superior:
- Implementação ARM SIMD das funções mais críticas na parte MC
- Processamento paralelo semelhante ao Waterfront de linhas CTU dentro de um quadro.
- Implementação paralela de filtro de desbloqueio
Para simplicidade de implementação, os únicos 4 núcleos mais poderosos (hi-end e mid-end) do Kirin SoC foram selecionados para serem usados no Player.
Como resultado, o Player demonstra reprodução de mais de 24 fps no dispositivo. A velocidade média de decodificação em uma reprodução de 10 segundos está resumida na Tabela 2.
Tabela 2. Resultados médios da reprodução do conjunto de ferramentas selecionado no dispositivo
Sequência de teste | Velocidade de decodificação (fps) |
ParkScene | 24h39 |
Quimono1 | 25 |
Para verificar a velocidade de reprodução de forma objetiva e subjetiva o Player foi implantado e testado no smartphone Huawei P40 Pro.
A Figura 3 demonstra uma imagem do Player durante a reprodução de bitstream do Kimono no dispositivo.
Figura 3. Imagem do Player funcionando no Huawei P40 Pro
4. Perfil do decodificador otimizado
Figura 4. Perfil de fluxo de bits Kimono do decodificador otimizado
Figura 5. Perfil de fluxo de bits ParkScene do decodificador otimizado
5. Utilização da CPU
A implementação atual do Player é otimizada para o celular Huawei P40 Pro em termos de uso de núcleos de CPU, mais especificamente o SW funciona apenas com 4 núcleos de CPU Kirin 990 mais poderosos (hi-end e mid-end). A Figura 6 e a Figura 7 fornecem a porcentagem de utilização da CPU para cada um dos 4 núcleos poderosos durante a reprodução de 10 segundos.
Figura 6. Utilização de núcleos de CPU de ponta e de ponta. Reprodução de quimono.
Figura 7. Utilização de núcleos de CPU de ponta e de ponta. Reprodução ParkScene.
6. Consumo de energia
Para estimar o consumo de energia, um loop infinito de reprodução de fluxos de bits de teste foi iniciado no dispositivo 100% carregado e o processo funcionou até o dispositivo ser desligado por falta de energia. Como resultado, o Player funcionou por mais de 4,5 horas com velocidade constante de 24 fps. As Figuras 10 e 11 resumem os resultados obtidos.
Figura 10. Consumo de energia e velocidade de reprodução durante reprodução infinita do Kimono
Figura 11. Consumo de energia e velocidade de reprodução durante reprodução infinita do ParkScene
7. Conclusão
A versão inicial do software EVC Player implementada pela Solveig Multimedia demonstra que a reprodução em tempo real de fluxos de bits EVC é viável e pode ser usada em dispositivos móveis modernos com consumo de energia razoável.
- https://www.solveigmm.com/en/howto/improvements-of-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!