HEVC-Codec-Vergleich der Moskauer Staatlichen Universität. So verbessern Sie die Ergebnisse
Von Olga Krovyakova - geändert am 6. Oktober 2023, erstellt am 3. April 2019.
Im Oktober 2015 veröffentlichte die Graphics & Media Lab Video Group der Fakultät für Informatik der Moskauer Staatlichen Universität (CS MSU Graphics & Media Lab) einen weiteren Codec-Vergleichsbericht, diesmal mit mehreren Codecs im HEVC-Format.
Der Ausgangspunkt dieser Forschung war, dass wir den Unterschied in den Voreinstellungen für AVC- und HEVC-Tests bemerkten. Für AVC wurde ein unverändertes schnelles Profil mit einer einzelnen GOP verwendet, während für HEVC-Tests ein modifiziertes Profil mit mehreren GOP verwendet wurde. Außerdem zeigte der x264-Codierer bei schneller Transcodierung in SSIM/Bitraten-Korrelationsdiagrammen bessere Ergebnisse als x265, unabhängig von der Codierungsgeschwindigkeit – für “Apple Tree”, die einzige im offenen Bericht beschriebene Datei. Es stellte sich sofort die Frage: Was wäre, wenn diese oder andere offensichtliche Optionen das Bild verändern könnten?
Der Bericht vergleicht Voreinstellungen, empfiehlt’jedoch keine diesbezüglichen Verbesserungen. In diesem Artikel haben wir eine ähnliche Überprüfung durchgeführt und Empfehlungen zur Änderung der x265-Encoder-Voreinstellungen entwickelt. Für die Videosequenz, die mit der in der kostenlosen Version des Berichts analysierten identisch ist, tragen unsere vorgeschlagenen Änderungen der Kodierungsparameter dazu bei, die Komprimierungseffizienz zu erhöhen und den x265-Kodierer bei der Berichtsdiagrammerstellung zu rehabilitieren.
Die geänderten Voreinstellungen erheben keinen Anspruch auf Universalität, da das Testen mehrerer Videosequenzen den Rahmen dieser Untersuchung sprengen würde. Sie können jedoch als Ausgangspunkt für die Suche nach Möglichkeiten zur Verbesserung der x265-Kodierungseffizienz empfohlen werden.
Über das Projekt
Die Aufgabe der Videokodierung im Prozess der Multimediaverarbeitung, sei es Übertragung, Schnitt, Bearbeitung oder Speicherung, ist in der Anwendungs-/Dienstentwicklung und -konfiguration im laufenden Betrieb allgegenwärtig. Da es eine große Anzahl gängiger Video-Codecs gibt, die oft vom gleichen Typ sind, ist es’nicht einfach, den besten auszuwählen und dann die richtigen Einstellungen anzuwenden. Es ist’höchstwahrscheinlich, dass diese Überlegungen das laufende Videovergleichsprojekt gefördert haben, das im Jahr 2000 vom Lab of Computer Graphics and Multimedia der CMC MSU gestartet und betrieben wurde. Im Oktober 2015 wurde ein Codec-Vergleichsbericht herausgegeben, der mehrere HEVC-Formate berücksichtigte Codecs und andere Codecs in aktiver Entwicklung. Als Modellkompressor wurde in ihrem Bericht x264 gewählt. Einer der anderen dort erwähnten interessanten Kompressoren war x265. Dieses Format wird das Hauptthema unserer Studie sein.
Das Analysetool ist SolveigMM Zond 265, ein HEVC/H.265- und AVC/H.264-Analysator.
Die Methodik des Codec-Vergleichs und der Parameterauswahl
Lassen Sie uns’die Methodik beschreiben. Der Vergleich wird anhand dieser Kriterien durchgeführt: Bitrate – Qualität (SSIM, PSNR) – Leistung. Die Methodik zum Vergleich der Korrelation von Bitrate/metrischer Qualität (siehe Punkt C4) ist wie folgt.
Wir wählen mehrere Bitratenwerte aus (z. B. 7 Werte: 1, 2, 4, 6, 8, 10 und 12 Mbit/s) und berechnen alle erforderlichen Qualitätsmetriken für jeden Codec.
Wir platzieren die Ausgabewerte im Diagramm: Qualitätsmetrik (horizontale Achse) – Bitrate (vertikale Achse).
- Wir führen eine lineare Interpolation durch.
- Wir wählen einen maximalen Bereich aus, in dem alle Diagramme definiert sind, und ermitteln Bereiche unter allen darin enthaltenen Diagrammen.
- Als einQualitätsmaß eines bestimmten Codecs (oder einer Voreinstellung) nehmen wir das Verhältnis seiner Fläche zur Fläche des Modellcodecs. Je kleiner der empfangene Wert ist, desto effektiver ist der Codec.
Als Modell wählen wir x265 mit der im Bericht gewählten Voreinstellung (Tabelle 1). Der Bericht verwendet eine frühere Version des Kompressors, die hier zu finden ist: x265 1.5+460-ac85c775620f. Allerdings bringt die neueste Version’keine radikalen Änderungen mit sich.
Die verwendeten Kompressor-Voreinstellungen sind in Tabelle 1 aufgeführt (für die Desktop-Plattform).
Rippen | x265 -p veryslow --bitrate %BITRATE_KBPS% %SOURCE_FILE% -o %TARGET_FILE% --input-res %WIDTH%x%HEIGHT% --fps %FPS% |
Universelle Kodierung | x265 -p medium --bitrate %BITRATE_KBPS% %SOURCE_FILE% -o %TARGET_FILE% --input-res %WIDTH%x%HEIGHT% --fps %FPS% |
Schnelle Transkodierung | x265 -p ultrafast --ref 3 --bitrate %BITRATE_KBPS% %SOURCE_FILE% -o %TARGET_FILE% --input-res %WIDTH%x%HEIGHT% --fps %FPS% |
Um voreingestellte Änderungsempfehlungen vorzuschlagen, führen wir einen Test aller voreingestellten Einstellungen durch, um deren individuelle Auswirkungen auf Qualität und Leistung zu bewerten. Hier ist der Aktionsplan:
- Wir kodieren die Datei, indem wir jeden voreingestellten Parameter ändern: von der schnellen Transkodierung bis zum universellen, vom universellen bis zum Rippen, während wir gleichzeitig die Kodierzeit einsparen.
- Wir berechnen das Qualitätsmaß (auf die gleiche Weise wie im obigen Bereich) und die referenzielle Codierungszeit (den minimalen Wert der FPS-Codierung für den „voreingestellten geänderten Parameter“ der Datei im Verhältnis zu allen ausgewählten Bitratenwerten).
- Aus der Tabelle bestehend aus veränderbarem Parameter, Qualitätsmaß und minimalem FPS wählen wir die Parameter aus, mit denen sich die Presets verbessern lassen.
Wir beschränken uns auf die Voreinstellungen für Universal Encoding und Ripping (Tabelle 2) und schalten die Parameter „-p medium“ und „-p ultrafast“ frei. Wir fügen außerdem zwei weitere hinzu, die im Bericht weggelassen wurden: „--keyint -1 --tune ssim“. Wir ergänzen die Voreinstellungen mit den genannten Parametern für eine schnelle bzw. universelle Transkodierung.
Tabelle 2. Parameter – Kandidaten für die Änderung der MSU HEVC Video Codec-Vergleichsberichtsvoreinstellungen.
Universelle Kodierung | --rc-lookahead 20 --scenecut 40 --ctu 64 --min-cu-size 8 --bframes 4 --b-adapt 2 --subme 1 --me hex --early-skip --sao -- signhide --weightp --rd 3 --aq-strength 1.0 --aq-mode 1 --cutree --no-fast-intra |
"„Ripping“" | --weightb --amp --rect --rc-lookahead 40 --bframes 8 --tu-inter- Depth 3 --tu-intra- Depth 3 --rd 6 --rdoq 2 --psy-rdoq 1.0 - -subme 4 --max-merge 4 --me star --ref 5 --b-intra --lookahead-slices 0 |
Testen
Für die in der kostenlosen Version des Berichts verwendete Testsequenz „Apple Tree“ (Bild 1) ist kein Download-Link verfügbar. Wir’werden ein ähnliches Modell auswählen, dessen Hauptmerkmal – die Nahaufnahme ist, eine große Menge kleiner Details. Zum Beispiel „big_buck_bunny_1080p_h264.mov“, das Intervall von 338 Bildern ab Sekunde 24:
ffmpeg -i big_buck_bunny_1080p_h264.mov -ss 00:00:24 -frames:v 338 -c:v rawvideo -pix_fmt yuv420p sample.yuv
Bild. 1. Merkmale der Sequenz „Apfelbaum“"
Um die drei Schritte des obigen Plans zu realisieren und Zeit beim Kopieren der erforderlichen Zahlen aus der Zond 265-Schnittstelle zu sparen, ist es’praktisch, die Befehlszeilenfunktion zu verwenden (Tabelle 3):
zond265_x64 %COMPRESSED_FILE% -iref %REFERENCE_420P_FILE% -nowait -report t=quality,statstream qm=SSIM o=%TARGET_CSV_FILE%
Sie können die Liste aller Parameter und ihre vollständige Beschreibung auf der Zond 265-Seiteeinsehen.
Tabelle 3. Parameter der Zond 265-Befehlszeile, die für die Skriptkompilierung erforderlich sind.
Parameter | Beschreibung |
---|---|
-iref | Festlegen der Referenz-YUV-Datei |
-bericht | Angabe des Zond 265-Betriebsmodus in der Befehlszeile |
t=Qualität,Statstream | Erstellung von zwei ausgewählten Berichten: Qualitäts- und Videostream-Statistiken. |
qm=SSIM | Qualitätsmetrik zur Berechnung |
ö | Pfad zur Berichtsdatei im CSV-Format |
-jetzt warten | Pausenfrei. Zond 265 navigiert automatisch und ohne Verzögerung von Datei zu Datei. |
Hier sind zwei Skripte für Python 2.7: eines für die Kodierung von 266 Dateien (20 Einstellungen für die erste, 18 Einstellungen für die zweite Voreinstellung, für 7 Bitratenwerte: 1, 2, 4, 6, 8 , 10, 12 Mbit/s), der andere für das Kompilieren eines Berichts im CSV-Format (die Datei – die Beziehung der FPS-Kodierung zur Modellkonfiguration – die Beziehung der SSIM-Metrik zur Modellkonfiguration).
Wie Sie in den Berichtstabellen für das Dateifragment „big_buck_bunny_1080p_h264.mov“ (Tabellen 5 und 6) sehen können, können Konfigurationen geändert werden’, beispielsweise wie in Tabelle 4 angegeben Zur Erinnerung: Für bessere Ergebnisse sollte der Wert „Qualitätsmaß“ kleiner als eins und der Wert „Relative Codierungszeit“ – größer als eins sein.
Der Test wurde mit der folgenden Hardwarekonfiguration durchgeführt: Intel Core i7-2600@3,4 GHz, 16 GB RAM. Die größte Qualitätsverbesserung bei der Konfiguration der schnellen Kodierung bringt der Parameter „--min-cu-size 8“, bei universeller Kodierung’der Parameter „--rdoq-level 2“ (der allerdings langsamer wird). Codierung am meisten).
Tabelle 4. Ändern der Voreinstellungen des MSU HEVC Video Codec-Vergleichsberichts zur Verbesserung der Codierungseffizienz bei gleicher Codierungsgeschwindigkeit.
Schnelle Transkodierung | x265 -p ultrafast --ref 3 --rc-lookahead 20 --min-cu-size 8 --bframes 4 --early-skip --cutree --tune ssim --bitrate %BITRATE_KBPS% %SOURCE_FILE% -o %TARGET_FILE% --input-res %WIDTH%x%HEIGHT% --fps %FPS% |
Universelle Kodierung | x265 -p medium --weightb --bframes 8 --tu-intra- Depth 3 --psy-rdoq 1.0 --b-intra --lookahead-slices 0 --tune ssim --bitrate % BITRATE_KBPS% %SOURCE_FILE% -o %TARGET_FILE% --input-res %WIDTH%x%HEIGHT% --fps %FPS% |
Tabelle 6. Der Bericht über die Änderung der Voreinstellung der universellen Kodierung.
Aufbau | Qualitätsmaßstab | Relative Kodierungszeit |
---|---|---|
Schnelle Transkodierung (Modell) | 1 | 1 |
Schnelle Transkodierung (modifiziert) | 0,69 | 0,97 |
Universelle Transkodierung (Modell) | 1 | 1 |
Universelle Transkodierung (modifiziert) | 0,85 | 0,94 |
Lassen Sie uns’die Auswirkungen der Optionsänderung – in Zond 265 bewerten. Wir öffnen die mit der geänderten Voreinstellung codierte Datei im schnellen Transkodierungsmodus für die Bitrate von 8 Mbit/s und vergleichen sie mit . Datei, die mit der unveränderten Voreinstellungcodiert ist. Die Größe der größten Kodierungseinheit bleibt unverändert und beträgt 32x32 (Feld „--ctu 32“). Allerdings verringert sich die Größe der minimalen Einheit von 16 auf 8 (Feld „--min-cu-size 8“). Dieser Parameter lieferte die größte Qualitätsverbesserung. Die Anzahl der B-Frames erhöhte sich von 3 auf 4 (Feld „—bframes“), allerdings erhöhte sich auch die maximale Anzahl der Referenzframes (Feld „--ref 4“). Das Feld „SSIM“ markiert zwei Maximalwerte für die Diagramme SSIM/PSNR für drei Komponenten: Helligkeit (Luma) und zwei Farbkomponenten (Cb, Cr). Ihre Werte stiegen von 0,9623-0,9966 auf 0,9771-0,9991. Die verbleibenden zusätzlichen Parameter (--rc-lookahead 20 --early-skip --cutree) beeinflussen den Kodierungsalgorithmus, nicht jedoch die Art des Ausgabevideos. Dies spiegelt sich hauptsächlich in der Kodierungsgeschwindigkeit wider (siehe Tabelle 5). Erwähnenswert ist’, dass sich das Bild des dekodierten Frames optisch verändert hat – Kodierungsartefakte werden nicht mehr angezeigt.
Bild. 2. Screenshot einer Zond 265-Datei, die mit der modifizierten schnellen Kodierungskonfiguration kodiert wurde
Sie können die Parameter der kodierten Datei auch mit einer modifizierten und unmodifizierten universellen Kodierungsvoreinstellung überprüfen (Abb. 3). Die Größe der minimalen TU’-Partitionen hat sich nicht geändert und beträgt weiterhin 4x4 (Feld „--tu-intra- Depth 3“), die Anzahl der B-Frames ist ebenfalls unverändert geblieben und beträgt 3 (Feld „--bframes“) 3"). SSIM stieg von 0,9789-0,9994 auf 0,9811-0,9992. Im Vergleich zur Schnelltranskodierungskonfiguration hat sich die Größe der maximalen Einheit erhöht und beträgt nun 64x64 (Feld „--ctu 64“), der SAO-Filter wurde hinzugefügt (Feld „--sao“).
Bild. 3. Screenshot der Zond 265-Datei, die mit einer modifizierten universellen Kodierungskonfiguration kodiert wurde
Als Ergebnis der durchgeführten Tests schlagen wir eine Liste von Optionen zur Verbesserung der Kodierungseffizienz (Verbesserung des SSIM-Metrikwerts bei gleicher Bitrate und Kodierungsgeschwindigkeit) für die schnellen und universellen Kodierungskonfigurationen vor. Unter Verwendung vorgeschlagener Änderungen für die Datei mit vielen kleinen Details verbesserte sich der Wert des integralen „Qualitätsmaßes“ des MSU HEVC Video Codec-Vergleichsberichts um 31 % bei der schnellen Transkodierung und um 15 % bei der universellen Transkodierung, mit einem unbedeutenden Wert Änderung der Kodierungsgeschwindigkeit. Da der Test für jede Option separat durchgeführt wurde, ist es in der Praxis nur sinnvoll, mehrere praktische Optionen auszuwählen und nicht die gesamte Vorschlagsliste.
Verweise
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!