Verbesserungen des mobilen Echtzeit-EVC-Decoders und -Players
Von Olga Krovyakova - 26. Mai 2021
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.
Abbildung 1. ETM 6.1-Codierungsleistung auf einem PC mit i7-9700-CPU unter Windows 10 x64 mit und ohne aktiviertem BTT64-Tool
Abbildung 2. Leistung des Decoders der Stufe 1 auf dem mit EMUI 10.1 betriebenen Huawei P40 Pro mit und ohne aktiviertem BTT64-Tool
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.
Abbildung 4. Decoder-Profilerstellung für den ParkScene-Bitstream, codiert mit dem Stage 2-Toolset (QP=27)
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:
- ARM SIMD-Implementierung der kritischsten Funktionen in Deblocking- und Rekonstruktionsteilen
- 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.
Abbildung 6. Bild des Players, der auf dem Huawei P40 Pro läuft
4. Profilierung des optimierten Decoders
Abbildung 7. Optimiertes Decoder-Profiling für den ParkScene-Bitstream, codiert mit dem Stage 2-Toolset (QP=27)
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.
(a)
(b)
Abbildung 9. Auslastung der High-End- und Mid-End-CPU-Kerne. Kimono-Wiedergabe, (a) Stufe 1, (b) Stufe 2
(a)
(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.
(a)
(b)
Abbildung 11. Stromverbrauch und Wiedergabegeschwindigkeit während der unendlichen Wiedergabe von Kimono, (a) Stufe 1, (b) Stufe 2
(a)
(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.
- https://www.solveigmm.com/en/howto/early-implementation-of-mobile-real-time-evc-player-mpeg-submission-october-2020/
Olga 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!