Chi siamo Prodotti Supporto Blog

Miglioramenti del decodificatore e del lettore EVC mobile in tempo reale

image

 

  By Olga Krovyakova - May, 26 2021

button

Astratto

Questo articolo descrive i miglioramenti rispetto alla Fase 1 del progetto Lettore video mobile in tempo reale di ottobre 2020, che ha implementato una versione iniziale del lettore, in grado di riprodurre in tempo reale i flussi di bit EVC  . Il lettore è basato sulla versione 6.1 del software di riferimento ETM ed è ottimizzato per l'architettura ARM. Il lettore è sviluppato e testato sullo smartphone Huawei P40 Pro e dimostra una riproduzione in tempo reale a 24 FPS su file di test 1080p con un sottoinsieme di strumenti del profilo principale EVC.

1.Risultati

Riassumendo è stata presentata la prima fase della soluzione che consente la riproduzione in tempo reale delle sequenze codificate con le seguenti limitazioni: 

  • Valore del parametro di quantizzazione: 32; 
  • Set di strumenti di codifica: Affine, DMVR, HTDF, ADMVP, ADCC, AMVR, ATS, IQT, CM_INIT, ADDB, DBF, HMVP, MMVD, POCS, RPL (set Stage1). 

L'EVC Player presentato mostra 25,07 FPS per le sequenze “ParkScene” e 26,02 FPS per le sequenze “Kimono1&rdquo.

I risultati delle ottimizzazioni effettuate durante la Fase 2 mostrano che lo strumento BTT può essere tranquillamente aggiunto al set di strumenti e il QP può essere ridotto a 27 e questo aumenterà la qualità dell'immagine con le condizioni:

  • Valore del parametro di quantizzazione: 27;
  • Set di strumenti di codifica: Affine, DMVR, HTDF, ADMVP, ADCC, AMVR, ATS, IQT, CM_INIT, ADDB, DBF, HMVP, MMVD, POCS, RPL, BTT (di seguito denominato set Stage2).

 

Tabella 1: velocità di riproduzione massima media raggiunta con il set di strumenti selezionato sul dispositivo mobile di prova per QP=27 

Sequenza di prova

Velocità di decodifica del

Decodificatore fase 1 (fps)

Velocità di decodifica del

Decodificatore fase 2 (fps)

Miglioramento delle prestazioni rispetto a

Decodificatore fase 1 (%)

ParkScene

21.36

32,99

53,2

Kimono1

22.85

35.02

54,4

Come risultato delle ottimizzazioni, il decoder mostra un aumento di prestazioni del 53-54% nell'applicazione EVC Player, progettata per lo smartphone Huawei P40 Pro. 

 

Tavolo 2. Set di strumenti selezionati per il miglioramento del giocatore in tempo reale

Nome breve dello strumento

Nome completo dello strumento

ETM6.1 CTC RA

configurazione predefinita

Set di strumenti selezionati, fase 1

Set di strumenti selezionato, fase  2

ADMVP

Previsione avanzata dei vettori di movimento

1

1

1

AFFINE

Previsione affine

1

1

1

HTDF

Filtro dominio trasformazione Hadamard

1

1

1

DMVR

Derivazione dei vettori di moto lato decodificatore

1

1

1

ADCC

Codifica avanzata dei coefficienti

1

1

1

AGGIUNGI

Deblock avanzato

1

1

1

ALFA

Filtro ad anello adattivo

1

0

0

AMVR

Risoluzione dei vettori di movimento adattivi

1

1

1

ATS

Selezione delle trasformazioni adattive

1

1

1

BTT

Alberi binari e ternari

1

0

1

CM_INIT

Inizializzazione della modellazione del contesto

1

1

1

DBF

Filtro di sblocco

1

1

1

EIPD

Direzioni di previsione intra migliorate

1

0

0

HMVP

Previsione dei vettori di movimento della storia

1

1

1

iQT

Quantizzazione e trasformazioni avanzate

1

1

1

MMVD

Unisci con la differenza dei vettori di movimento

1

1

1

POCS

Conteggio avanzato dell'ordine delle immagini

1

1

1

RPL

Elenco delle immagini di riferimento

1

1

1

SUCO

Ordine di codifica dell'unità divisa

1

0

0

IBC

Copia intrablocco

0

0

0

2. Strumenti EVC supportati

Si ritiene che lo strumento BTT abbia il potenziale maggiore, quindi eseguiamo test per lo strumento BTT abilitato in aggiunta al set Stage1 (Tabella 2). 

Le seguenti Figure 1-3 mostrano la codifica EVC, le prestazioni di decodifica e i valori PSNR per i file ParkScene e Kimono1 codificati con valori QP 27-32 con e senza lo strumento BTT64. Per comodità, le cifre contengono valori combinati misurati per i flussi senza BTT64 e di conseguenza con BTT64.

image

Figura 1. Prestazioni di codifica ETM 6.1 su PC con CPU i7-9700 gestito da Windows 10 x64 con e senza lo strumento BTT64 abilitato

image

Figura 2. Prestazioni del decoder Stage 1 su HUAWEI P40 Pro gestito da EMUI 10.1 con e senza lo strumento BTT64 abilitato

image

Figura 3. Valori PSNR dei file codificati dal codificatore ETM 6.1 con e senza lo strumento BTT64 abilitato.

 

La Figura 3 mostra che l'abilitazione di BTT64 non riduce significativamente le prestazioni del decodificatore e migliora anche la qualità del file di output’. Quindi possiamo abilitarlo in sicurezza come strumento EVC aggiuntivo.

Per attenersi al concetto di decodifica proposto nella Fase 1, si propone di abilitare la dimensione 64x64 CU per il BTT (di seguito denominato BTT64 per comodità). 

Per ottenere una velocità di riproduzione in tempo reale sul dispositivo di destinazione è importante conoscere gli strumenti EVC che profilano le informazioni durante la decodifica. Tali informazioni sono state raccolte da Android Profiler durante il test decodificato con il decoder Stage 1. La Figura 4 e la Figura 5 mostrano i dati di profilazione ottenuti sul dispositivo di destinazione per i bitstream ParkScene e Kimono1 codificati con il set di strumenti Stage 2 e il valore QP pari a 27.

image

Figura 4. Profilazione del decodificatore per il bitstream ParkScene codificato con il set di strumenti Stage 2 (QP=27)

image

Figura 5. Profilazione del decodificatore per il bitstream Kimono1 codificato con il set di strumenti Stage 2 (QP=27)

Le funzioni che richiedono più tempo sono legate a DMVR, Motion Compensation (MC), Deblocking e Reconstruction. Questi strumenti consumano circa il 77% del tempo di decodifica e sono i migliori candidati per l'ottimizzazione SIMD. 

3. Dettagli di implementazione e riproduzione

Per ottenere la riproduzione in tempo reale sul set di strumenti selezionato, sono state apportate le seguenti modifiche principali al SW di riferimento ETM 6.1:

  1. Implementazione ARM SIMD delle funzioni più critiche nelle parti di Deblocking e Reconstruction
  2. Elaborazione parallela simile a Waterfront (WPP) per processi di deblock e decodifica, thread pull e avvio basato su linea

In preparazione alle ottimizzazioni delle funzionalità multithread sono stati apportati alcuni refactoring e ottimizzazioni aggiuntivi nelle funzioni relative al deblocking. Dopo aver finalizzato l'implementazione multithread, il guadagno FPS del decoder’rispetto al decoder Stage 1 è del 40% per Kimono1 e del 42% per le sequenze ParkScene, e il lettore è in grado di dimostrare la riproduzione a 24 fps sul dispositivo. 

Per verificare oggettivamente e soggettivamente la velocità di riproduzione, il lettore è stato utilizzato e testato sullo smartphone Huawei P40 Pro.

La Figura 6 mostra un'immagine del lettore durante la riproduzione del bitstream Kimono sul dispositivo.

image

Figura 6. Immagine del lettore in funzione su Huawei P40 Pro

4. Profilazione del decoder ottimizzato

image

Figura 7. Profilazione del decodificatore ottimizzata per il bitstream ParkScene codificato con il set di strumenti Stage 2 (QP=27)

image

Figura 8. Profilazione del decodificatore ottimizzata per il bitstream Kimono1 codificato con il set di strumenti Stage 2 (QP=27)

5. Utilizzo della CPU

Il decoder è ottimizzato per il telefono cellulare Huawei P40 Pro in termini di utilizzo dei core della CPU, più specificamente il SW funziona solo con i 4 core CPU Kirin 990 più potenti (hi-end e mid-end). La Figura 9 e la Figura 10 mostrano la percentuale di utilizzo della CPU per ciascuno dei 4 potenti core durante il processo di decodifica.

image

(uN) 

 image

(b)

Figura 9. Utilizzo dei core della CPU di fascia alta e media. Riproduzione del kimono, (a) Fase 1, (b) Fase 2

image(uN)

image

(b)

Figura 10. Utilizzo dei core CPU di fascia alta e media. Riproduzione ParkScene, (a) Fase 1, (b) Fase 2

 

Le Figure 9-10 mostrano che i core di fascia alta e media vengono utilizzati in modo più efficace dal decoder ottimizzato per lo Stage 2.

6. Consumo energetico

Per stimare il consumo energetico, è stato avviato un ciclo di riproduzione infinito di flussi di bit di prova nel lettore con il dispositivo mobile di prova carico al 100% e il processo ha funzionato fino allo spegnimento del dispositivo per insufficienza energetica. Di conseguenza, il lettore ha lavorato per 4 ore e 25 minuti con il file Kimono1 e per 4 ore e 07 minuti con il file ParkScene con una velocità di 24 fps. Le Figure 11 e 12 riassumono i risultati ottenuti.

image

(uN)

image

(b)

Figura 11. Consumo energetico e velocità di riproduzione durante la riproduzione infinita di Kimono, (a) Fase 1, (b) Fase 2

image

(uN)

image

(b)

Figura 12. Consumo energetico e velocità di riproduzione durante la riproduzione infinita di ParkScene, (a) Fase 1, (b) Fase 2

 

Le Figure 11-12 mostrano che il consumo della batteria in Stage 2 è leggermente aumentato rispetto a Stage 1.

7. Conclusione

Solveig Multimedia ha continuato ad apportare ottimizzazioni relative all'algoritmo WPP introdotto nello Stage 1 nonché ottimizzazioni SIMD delle funzioni.

Come risultato delle ottimizzazioni, il decoder mostra un aumento di prestazioni del 53-54% nell'applicazione EVC Player, progettata per lo smartphone Huawei P40 Pro. 

Il decodificatore ottimizzato mostra 33-35 FPS per il set di strumenti proposto, dove è incluso anche lo strumento BTT in modo che tutti gli obiettivi della Fase 2 siano superati. Ciò significa che il valore QP può anche essere ridotto a 23. Per QP=23 il decoder mostra 31,52 FPS per Kimono1 e 28,37 FPS per i file Parkscene, sufficienti per fornire una riproduzione in tempo reale a 24 FPS per entrambi i file.

button

 

 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!