Sobre Produtos Suporte Blog

Melhorias no decodificador e player EVC móvel em tempo real

image

 

  By Olga Krovyakova - May, 26 2021

button

Abstrato

Este artigo descreve as melhorias em relação ao Estágio 1 do projeto Real-time Mobile Video Player de outubro de 2020, que implementou uma versão inicial do player, capaz de reproduzir fluxos de bits EVC  em tempo real. 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 a 24 FPS em arquivos de teste 1080p com um subconjunto de ferramentas de perfil principal EVC.

1.Resultados

Resumindo foi apresentada a primeira etapa da solução que permite uma reprodução em tempo real das sequências codificadas com as seguintes restrições: 

  • Valor do parâmetro de quantização: 32; 
  • Conjunto de ferramentas de codificação: Affine, DMVR, HTDF, ADMVP, ADCC, AMVR, ATS, IQT, CM_INIT, ADDB, DBF, HMVP, MMVD, POCS, RPL (conjunto Stage1). 

O EVC Player apresentado demonstra 25,07 FPS para as sequências “ParkScene” e 26,02 FPS para as sequências “Kimono1&rdquo.

Os resultados das otimizações feitas durante a Etapa 2 mostram que a ferramenta BTT pode ser adicionada com segurança ao conjunto de ferramentas e o QP pode ser reduzido para 27 e isso aumentará a qualidade da imagem com as condições:

  • Valor do parâmetro de quantização: 27;
  • Conjunto de ferramentas de codificação: Affine, DMVR, HTDF, ADMVP, ADCC, AMVR, ATS, IQT, CM_INIT, ADDB, DBF, HMVP, MMVD, POCS, RPL, BTT (mais conhecido como conjunto Stage2).

 

Tabela 1 - Velocidade média máxima de reprodução alcançada com o conjunto de ferramentas selecionado no dispositivo móvel de teste para QP=27 

Sequência de teste

Velocidade de decodificação do

Decodificador de estágio 1 (fps)

Velocidade de decodificação do

Decodificador de estágio 2 (fps)

Ganho de desempenho ao longo do

Decodificador de estágio 1 (%)

ParkScene

21h36

32,99

53,2

Quimono1

22,85

35.02

54,4

Como resultado das otimizações, o decodificador apresenta 53-54% de ganho de desempenho no aplicativo EVC player, projetado para smartphone Huawei P40 Pro. 

 

Mesa 2. Conjunto de ferramentas selecionado para melhoria do jogador em tempo real

Nome abreviado da ferramenta

Nome completo da ferramenta

ETM6.1 CTC RA

configuração padrão

Conjunto de ferramentas selecionado, estágio 1

Conjunto de ferramentas selecionado, estágio  2

ADMVP

Previsão avançada de vetores de movimento

1

1

1

AFINO

Previsão afim

1

1

1

HTML

Filtro de domínio de transformação Hadamard

1

1

1

DMVR

Derivação de vetores de movimento do lado do decodificador

1

1

1

ADCC

Codificação de Coeficientes Avançados

1

1

1

ADDB

Desbloqueio Avançado

1

1

1

ALF

Filtro de Loop Adaptativo

1

0

0

AMVR

Resolução de vetores de movimento adaptativos

1

1

1

ATS

Seleção de transformações adaptativas

1

1

1

BTT

Árvores Binárias e Ternárias

1

0

1

CM_INIT

Inicialização de modelagem de contexto

1

1

1

DBF

Filtro de desbloqueio

1

1

1

EIPD

Direções de previsão intra-aprimoradas

1

0

0

HMVP

História Vetores de movimento Previsão

1

1

1

qT

Quantização e Transformações Avançadas

1

1

1

DMVM

Mesclar com diferença de vetores de movimento

1

1

1

POCS

Contagem avançada de pedidos de imagens

1

1

1

RPL

Lista de imagens de referência

1

1

1

SUCO

Ordem de codificação de unidade dividida

1

0

0

IBC

Cópia intrabloco

0

0

0

2. Ferramentas EVC suportadas

A ferramenta BTT é considerada a ferramenta de maior potencial, por isso realizamos testes para a ferramenta BTT adicionalmente habilitada ao conjunto Stage1 (Tabela 2). 

As Figuras 1-3 a seguir mostram codificação EVC, desempenho de decodificação e valores PSNR para os arquivos ParkScene e Kimono1 codificados com valores QP 27-32 com e sem ferramenta BTT64. Por conveniência, os números contêm valores combinados medidos para fluxos sem BTT64 e com BTT64 respectivamente.

image

Figura 1. Desempenho de codificação ETM 6.1 em PC com CPU i7-9700 operado por Windows 10 x64 com e sem ferramenta BTT64 habilitada

image

Figura 2. Desempenho do decodificador de estágio 1 no HUAWEI P40 Pro operado pela EMUI 10.1 com e sem a ferramenta BTT64 habilitada

image

Figura 3. Valores PSNR de arquivos codificados pelo codificador ETM 6.1 com e sem ferramenta BTT64 habilitada.

 

A Figura 3 mostra que habilitar o BTT64 não reduz significativamente o desempenho do decodificador e também melhora a qualidade do arquivo de saída’. Portanto, podemos habilitá-lo com segurança como uma ferramenta EVC extra.

Para manter o conceito de decodificação proposto na Etapa 1, propõe-se habilitar o tamanho 64x64 CU para o BTT (mais referido como BTT64 por conveniência). 

Para obter velocidade de reprodução em tempo real no dispositivo de destino, é importante conhecer as ferramentas EVC que traçam o perfil das informações durante a decodificação. Essas informações foram coletadas pelo Android Profiler no teste decodificado com o decodificador Stage 1. A Figura 4 e a Figura 5 demonstram os dados de perfil obtidos no dispositivo de destino para os fluxos de bits ParkScene e Kimono1 codificados com o conjunto de ferramentas do Estágio 2 e o valor QP igual a 27.

image

Figura 4. Perfil do decodificador para o fluxo de bits ParkScene codificado com o conjunto de ferramentas do Estágio 2 (QP = 27)

image

Figura 5. Perfil do decodificador para o fluxo de bits Kimono1 codificado com o conjunto de ferramentas do Estágio 2 (QP = 27)

As funções mais demoradas estão relacionadas ao DMVR, Compensação de Movimento (MC), Desbloqueio e Reconstrução. Essas ferramentas consomem cerca de 77% do tempo de decodificação e são as melhores candidatas para otimização do SIMD. 

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:

  1. Implementação ARM SIMD das funções mais críticas em peças de Desbloqueio e Reconstrução
  2. Processamento paralelo semelhante ao Waterfront (WPP) para processos de desbloqueio e decodificação, extração de thread e inicialização baseada em linha

Como preparação para as otimizações da funcionalidade multithread, houve algumas refatorações e otimizações adicionais nas funções relacionadas ao desbloqueio. Após finalizar a implementação multithread, o ganho de FPS do decodificador’em relação ao decodificador do Estágio 1 é de 40% para o Kimono1 e 42% para as sequências ParkScene, e o Player é capaz de demonstrar reprodução de 24 fps no dispositivo. 

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 6 demonstra uma imagem do Player durante a reprodução de bitstream do Kimono no dispositivo.

image

Figura 6. Imagem do Player funcionando no Huawei P40 Pro

4. Perfil do decodificador otimizado

image

Figura 7. Perfil de decodificador otimizado para o fluxo de bits ParkScene codificado com o conjunto de ferramentas do Estágio 2 (QP = 27)

image

Figura 8. Perfil de decodificador otimizado para o fluxo de bits Kimono1 codificado com o conjunto de ferramentas do Estágio 2 (QP = 27)

5. Utilização da CPU

O decodificador é otimizado para o celular Huawei P40 Pro em termos de uso de núcleos de CPU, mais especificamente o SW funciona apenas com os 4 núcleos de CPU Kirin 990 mais poderosos (hi-end e mid-end). A Figura 9 e a Figura 10 exibem a porcentagem de utilização da CPU para cada um dos 4 núcleos poderosos durante o processo de decodificação.

image

(a) 

 image

(b)

Figura 9. Utilização de núcleos de CPU de ponta e de ponta. Reprodução de quimono, (a) Estágio 1, (b) Estágio 2

image(a)

image

(b)

Figura 10. Utilização de núcleos de CPU de ponta e de ponta. Reprodução ParkScene, (a) Estágio 1, (b) Estágio 2

 

As Figuras 9 a 10 mostram que os núcleos de alta e média gama são usados de forma mais eficaz pelo decodificador otimizado do Estágio 2.

6. Consumo de energia

Para estimar o consumo de energia, um loop infinito de reprodução de fluxos de bits de teste foi lançado no Player no Dispositivo Móvel de Teste 100% carregado e o processo funcionou até o dispositivo ser desligado por falta de energia. Com isso, o Player funcionou por 4h 25m com o arquivo Kimono1 e 4h 07m com o arquivo ParkScene com velocidade de 24 fps. As Figuras 11 e 12 resumem os resultados obtidos.

image

(a)

image

(b)

Figura 11. Consumo de energia e velocidade de reprodução durante a reprodução infinita de Kimono, (a) Estágio 1, (b) Estágio 2

image

(a)

image

(b)

Figura 12. Consumo de energia e velocidade de reprodução durante a reprodução infinita de ParkScene, (a) Estágio 1, (b) Estágio 2

 

As Figuras 11-12 mostram que o consumo da bateria no Estágio 2 aumentou ligeiramente em comparação com o Estágio 1.

7. Conclusão

A Solveig Multimedia continuou a fazer otimizações relacionadas ao algoritmo WPP introduzido na Etapa 1, bem como às otimizações SIMD das funções.

Como resultado das otimizações, o decodificador apresenta 53-54% de ganho de desempenho no aplicativo EVC player, projetado para smartphone Huawei P40 Pro. 

O decodificador otimizado mostra 33-35 FPS para o conjunto de ferramentas proposto, onde a ferramenta BTT é incluída adicionalmente para que todos os objetivos do Estágio 2 sejam superados. E isso significa que o valor QP também pode ser reduzido para 23. Para QP=23 o decodificador mostra 31,52 FPS para o Kimono1 e 28,37 FPS para os arquivos Parkscene, o que é suficiente para fornecer uma reprodução em tempo real de 24 FPS para ambos os arquivos.

button
  • https://www.solveigmm.com/en/howto/early-implementation-of-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!