Über uns Produkte Support FAQ Bloggen

Verbesserungen des mobilen Echtzeit-EVC-Decoders und -Players

image

 

   Von Olga Krovyakova - 26. Mai 2021

button

Abstrakt

In diesem Artikel werden die Verbesserungen gegenüber Stufe 1 des Projekts Real-time Mobile Video Player vom Oktober 2020 beschrieben, bei dem eine frühe Version des Players implementiert wurde, die in der Lage ist,  EVC-Bitströme in Echtzeit wiederzugeben. Der Player basiert auf der ETM-Referenzsoftware Version 6.1 und ist für die ARM-Architektur optimiert. Der Player wurde auf dem Huawei P40 Pro-Smartphone entwickelt und getestet und demonstriert eine Echtzeitwiedergabe mit 24 FPS bei 1080p-Testdateien mit einer Teilmenge der EVC-Hauptprofiltools.

1.Ergebnisse

Zusammenfassend wurde die erste Stufe der Lösung vorgestellt, die eine Echtzeitwiedergabe der codierten Sequenzen mit folgenden Einschränkungen ermöglicht: 

  • Quantisierungsparameterwert: 32; 
  • Codierungstools-Set: Affine, DMVR, HTDF, ADMVP, ADCC, AMVR, ATS, IQT, CM_INIT, ADDB, DBF, HMVP, MMVD, POCS, RPL (Stage1-Set). 

Der vorgestellte EVC Player zeigt 25,07 FPS für die Sequenzen “ParkScene” und 26,02 FPS für die Sequenzen “Kimono1&rdquo.

Die Ergebnisse der in Phase 2 vorgenommenen Optimierungen zeigen, dass das BTT-Tool sicher zum Tools-Set hinzugefügt und der QP auf 27 reduziert werden kann. Dadurch wird die Bildqualität unter den folgenden Bedingungen erhöht:

  • Quantisierungsparameterwert: 27;
  • Codierungstools-Set: Affine, DMVR, HTDF, ADMVP, ADCC, AMVR, ATS, IQT, CM_INIT, ADDB, DBF, HMVP, MMVD, POCS, RPL, BTT (im Folgenden als Stage2-Set bezeichnet).

 

Tabelle 1 – Durchschnittliche maximale Wiedergabegeschwindigkeit, die mit dem ausgewählten Toolset auf dem mobilen Testgerät für QP=27 erreicht wurde 

Testsequenz

Dekodierungsgeschwindigkeit des

Decoder der Stufe 1 (fps)

Dekodierungsgeschwindigkeit des

Decoder der Stufe 2 (fps)

Leistungsgewinn gegenüber dem

Decoder der Stufe 1 (%)

ParkSzene

21.36

32,99

53,2

Kimono1

22.85

35.02

54,4

Als Ergebnis der Optimierungen zeigt der Decoder 53–54 % der Leistungssteigerung in der EVC-Player-Anwendung, die für das Huawei P40 Pro-Smartphone entwickelt wurde. 

 

Tabelle 2. Ausgewähltes Toolset zur Echtzeit-Player-Verbesserung

Kurzname des Werkzeugs

Vollständiger Name des Werkzeugs

ETM6.1 CTC RA

standardkonfiguration

Ausgewähltes Toolset, Stufe 1

Ausgewähltes Toolset, Stufe  2

ADMVP

Erweiterte Vorhersage von Bewegungsvektoren

1

1

1

AFFIN

Affine Vorhersage

1

1

1

HTDF

Hadamard-Transformationsdomänenfilter

1

1

1

DMVR

Decoderseitige Ableitung von Bewegungsvektoren

1

1

1

ADCC

Erweiterte Koeffizientenkodierung

1

1

1

ADDB

Erweiterte Deblockierung

1

1

1

ALF

Adaptiver Schleifenfilter

1

0

0

AMVR

Adaptive Motion Vectors-Auflösung

1

1

1

ATS

Auswahl adaptiver Transformationen

1

1

1

BTT

Binäre und ternäre Bäume

1

0

1

CM_INIT

Initialisierung der Kontextmodellierung

1

1

1

DBF

Deblocking-Filter

1

1

1

EIPD

Verbesserte Intra-Vorhersagerichtungen

1

0

0

HMVP

Geschichte Bewegungsvektoren Vorhersage

1

1

1

iQT

Erweiterte Quantisierung und Transformationen

1

1

1

MMVD

Mit Bewegungsvektordifferenz verschmelzen

1

1

1

POCS

Erweiterte Bildreihenfolgezählung

1

1

1

RPL

Referenzbildliste

1

1

1

SUCO

Kodierungsreihenfolge der geteilten Einheiten

1

0

0

IBC

Intra-Block-Kopie

0

0

0

2. Unterstützte EVC-Tools

Das BTT-Tool gilt als das Werkzeug mit dem größten Potenzial, daher führen wir Tests für das BTT-Tool durch, das zusätzlich zum Stage1-Set aktiviert ist (Tabelle 2). 

Die folgenden Abbildungen 1-3 zeigen EVC-Kodierung, Dekodierungsleistung und PSNR-Werte für die Dateien ParkScene und Kimono1, kodiert mit den QP-Werten 27-32 mit und ohne BTT64-Tool. Der Einfachheit halber enthalten die Zahlen kombinierte Werte, die für Streams ohne BTT64 und entsprechend mit BTT64 gemessen wurden.

image

Abbildung 1. ETM 6.1-Codierungsleistung auf einem PC mit i7-9700-CPU unter Windows 10 x64 mit und ohne aktiviertem BTT64-Tool

image

Abbildung 2. Leistung des Decoders der Stufe 1 auf dem mit EMUI 10.1 betriebenen Huawei P40 Pro mit und ohne aktiviertem BTT64-Tool

image

Abbildung 3. PSNR-Werte von Dateien, die mit dem ETM 6.1-Encoder mit und ohne aktiviertem BTT64-Tool codiert wurden.

 

Abbildung 3 zeigt, dass die Aktivierung von BTT64 die Decoderleistung nicht wesentlich verringert und auch die Qualität der Ausgabedatei’verbessert. Daher können wir es sicher als zusätzliches EVC-Tool aktivieren.

Um an dem in Stufe 1 vorgeschlagenen Dekodierungskonzept festzuhalten, wird vorgeschlagen, die CU-Größe 64x64 für das BTT zu aktivieren (der Einfachheit halber im Folgenden als BTT64 bezeichnet). 

Um eine Wiedergabegeschwindigkeit in Echtzeit auf dem Zielgerät zu erreichen, ist es wichtig, beim Dekodieren die Profilierungsinformationen der EVC-Tools zu kennen. Diese Informationen wurden vom Android Profiler im Test erfasst und mit dem Decoder der Stufe 1 dekodiert. Abbildung 4 und Abbildung 5 zeigen die erhaltenen Profilierungsdaten auf dem Zielgerät für die ParkScene- und Kimono1-Bitströme, die mit dem Toolset der Stufe 2 und einem QP-Wert von 27 codiert wurden.

image

Abbildung 4. Decoder-Profilerstellung für den ParkScene-Bitstream, codiert mit dem Stage 2-Toolset (QP=27)

image

Abbildung 5. Decoder-Profilerstellung für den Kimono1-Bitstream, codiert mit dem Stage 2-Toolset (QP=27)

Die zeitaufwändigsten Funktionen beziehen sich auf DMVR, Bewegungskompensation (MC), Deblocking und Rekonstruktion. Diese Tools verbrauchen etwa 77 % der Dekodierungszeit und sind die besten Kandidaten für die SIMD-Optimierung. 

3. Implementierungsdetails und Wiedergabe

Um eine Echtzeitwiedergabe auf dem ausgewählten Toolset zu erreichen, wurden die folgenden Hauptmodifikationen zusätzlich zur ETM 6.1-Referenz-SW durchgeführt:

  1. ARM SIMD-Implementierung der kritischsten Funktionen in Deblocking- und Rekonstruktionsteilen
  2. Waterfront-ähnliche Parallelverarbeitung (WPP) für Deblocking- und Decodierungsprozesse, Thread-Pull und zeilenbasierten Start

Als Vorbereitung auf die Optimierungen der Multithread-Funktionalität gab es einige zusätzliche Refactorings und Optimierungen bei Funktionen im Zusammenhang mit der Deblockierung. Nach Abschluss der Multithread-Implementierung beträgt der FPS-Gewinn des Decoders’gegenüber dem Stage 1-Decoder 40 % für die Kimono1- und 42 % für die ParkScene-Sequenzen, und der Player ist in der Lage, eine Wiedergabe mit 24 fps auf dem Gerät zu demonstrieren. 

Um die Wiedergabegeschwindigkeit objektiv und subjektiv zu überprüfen, wurde der Player auf dem Huawei P40 Pro-Smartphone bereitgestellt und getestet.

Abbildung 6 zeigt ein Bild des Players während der Kimono-Bitstream-Wiedergabe auf dem Gerät.

image

Abbildung 6. Bild des Players, der auf dem Huawei P40 Pro läuft

4. Profilierung des optimierten Decoders

image

Abbildung 7. Optimiertes Decoder-Profiling für den ParkScene-Bitstream, codiert mit dem Stage 2-Toolset (QP=27)

image

Abbildung 8. Optimiertes Decoder-Profiling für den Kimono1-Bitstream, codiert mit dem Stage 2-Toolset (QP=27)

5. CPU-Auslastung

Der Decoder ist hinsichtlich der CPU-Kernauslastung für das Mobiltelefon Huawei P40 Pro optimiert, genauer gesagt funktioniert die SW nur mit den 4 leistungsstärksten Kirin 990-CPU-Kernen (Hi-End und Mid-End). Abbildung 9 und Abbildung 10 zeigen den Prozentsatz der CPU-Auslastung für jeden der vier leistungsstarken Kerne während des Dekodierungsprozesses.

image

(a) 

 image

(b)

Abbildung 9. Auslastung der High-End- und Mid-End-CPU-Kerne. Kimono-Wiedergabe, (a) Stufe 1, (b) Stufe 2

image(a)

image

(b)

Abbildung 10. Auslastung der High-End- und Mid-End-CPU-Kerne. ParkScene-Wiedergabe, (a) Stufe 1, (b) Stufe 2

 

Die Abbildungen 9–10 zeigen, dass High- und Mid-End-Kerne vom für Stufe 2 optimierten Decoder effektiver genutzt werden.

6. Stromverbrauch

Um den Stromverbrauch abzuschätzen, wurde im Player bei 100 % geladenem Test-Mobilgerät eine unendliche Wiedergabeschleife von Test-Bitstreams gestartet und der Vorgang funktionierte, bis sich das Gerät aufgrund von Energiemangel abschaltete. Infolgedessen arbeitete der Player 4 Stunden und 25 Minuten mit der Kimono1-Datei und 4 Stunden und 07 Minuten mit der ParkScene-Datei mit einer Geschwindigkeit von 24 fps. Die Abbildungen 11 und 12 fassen die erzielten Ergebnisse zusammen.

image

(a)

image

(b)

Abbildung 11. Stromverbrauch und Wiedergabegeschwindigkeit während der unendlichen Wiedergabe von Kimono, (a) Stufe 1, (b) Stufe 2

image

(a)

image

(b)

Abbildung 12. Stromverbrauch und Wiedergabegeschwindigkeit während der unendlichen Wiedergabe von ParkScene, (a) Stufe 1, (b) Stufe 2

 

Die Abbildungen 11-12 zeigen, dass der Batterieverbrauch in Stufe 2 im Vergleich zu Stufe 1leicht gestiegen ist.

7. Fazit

Solveig Multimedia führte weiterhin Optimierungen im Zusammenhang mit dem in Stufe 1 eingeführten WPP-Algorithmus sowie den SIMD-Optimierungen der Funktionen durch.

Als Ergebnis der Optimierungen zeigt der Decoder 53–54 % der Leistungssteigerung in der EVC-Player-Anwendung, die für das Huawei P40 Pro-Smartphone entwickelt wurde. 

Der optimierte Decoder zeigt 33–35 FPS für das vorgeschlagene Toolset, wobei das BTT-Tool zusätzlich enthalten ist, sodass alle Ziele der Stufe 2 übererfüllt sind. Und das bedeutet, dass der QP-Wert auch auf 23 gesenkt werden kann. Bei QP=23 zeigt der Decoder 31,52 FPS für die Kimono1- und 28,37 FPS für die Parkscene-Dateien an, was ausreicht, um eine Echtzeitwiedergabe beider Dateien mit 24 FPS zu ermöglichen.

button
  • https://www.solveigmm.com/en/howto/early-implementation-of-mobile-real-time-evc-player-mpeg-submission-october-2020/

 

Über den Autor

imageOlga Krovyakova ist seit 2010 Technical Support Manager bei Solveig Multimedia.

Sie ist Autorin zahlreicher Text- und Video-Richtlinien für Produkte: Video Splitter, HyperCam, WMP Trimmer Plugin, AVI Trimmer+ und TriMP4.

Sie arbeitet jeden Tag mit Programmen und weiß daher sehr gut, wie sie funktionieren. Wenden Sie sich bei Fragen an Olga über support@solveigmm.com.

Sie hilft Ihnen gerne weiter!