JVET JEM / VCC - der Nachfolger von HEVC

  • Das "Joint Video Exploration Team" (JVET), gegründet 2015 von ITU-T VCEG und ISO/IEC MPEG, entwickelt bei Fraunhofer aus der HEVC-Modell-Software (HM) einen noch komplexeren Videocodec, der laut eines Berichtes bereits AV1 übertreffen kann. Dafür kann der Encoder aber bis 64× so komplex wie HEVC sein, der Decoder noch 16×, wie bei doom9 dokumentiert wurde.


    Besonders aktiv ist das SVN-Repo aber nicht, letzte Änderungen zu Revision 595 (HM-16.6-JEM-7.1) sind schon ein halbes Jahr alt.


    Gesteuert werden kann die Software mit Konfigurationsdateien, da dies mit einzelnen CLI-Parametern doch ziemlich umfangreich werden kann.


    Zum Compilieren unter MSYS2/MinGW64 via makefile für GNU C++ musste ich die Behandlung von Warnungen als Fehler deaktivieren, es wäre also gut möglich, dass die Software nicht wie erwartet arbeitet (allerdings hat Tommy Carrot schon gemeldet, dass er ohne Absturz läuft); für MSVC verschiedener Versionen werden ebenfalls Lösungen angeboten, sowie ein Skript für xcode.

  • Interessante Info. Aber lassen wir uns mal überraschen, wie sich das ganze entwickelt.
    Zumindest mit den derzeitigen Sendestandards im Bereich Satellit, Kabel und terrestrisch sind erst mal Fakten geschaffen, die sicher nicht so schnell über den Haufen geworfen werden (allein schon wegen deren Verbreitung). Da auch noch die "Nachfolgestandards" 4K/8K quasi mit den aktuellen Techniken noch abgedeckt sind, sehe ich kaum Chancen, dass es zu einer nennenswerten Verbreitung kommen wird. Dazu trägt sicher auch die angesprochene Komplexität bei, die wohl kaum ein jemand ohne Fachwissen beherrschen können wird. Ich fürchte daher, dass es genauso in der Historie verschwindet, wie die immer wieder aufpoppenden Versuche, das JPG-Format für Bilder zu ersetzen.


    Grüße Thomas

  • Wenn dem so wäre, dann haben sie es jedenfalls nicht in ihrer README.md dokumentiert. Ich glaube daher eher an eine proprietäre Erweiterung von MPEG-Techniken, habe aber noch nicht nach ausführlicheren Erklärungen auf https://xvc.io gesucht.


    Die erste Implementation von Fraunhofers JVET JEM ist ihr Referenz-Codec (HM), den ich unter MinGW64 compilieren konnte (oben verlinkt). — Link zur Fraunhofer-Website nachgetragen

  • Mittlerweile heißt der Nachfolger VVC = "Versatile Video Coding". Das offizielle Repository ist wohl bei Fraunhofer:


    https://vcgit.hhi.fraunhofer.de/jvet/VVCSoftware_VTM


    Daneben gibt es noch einen weiteren Bugtracker:


    https://ject.hhi.fraunhofer.de/trac/vvc]


    Etwas unübersichtlich... immerhin geht es voran, bisher wurde das Erzeugen von MSYS-Makefiles via CMake noch nicht komplett unterstützt, aber mittlerweile gibt es einen Zweig "cmake-update" mit entsprechendem Patch, der das ermöglicht.


    VVCSoftware_VTM-2.2 cmake-update 67208da2


    Anscheinend wird mindestens SSE4 benötigt, auf einem AMD Phenom-II (max. SSE3) startet das Ergebnis gar nicht erst (external exception c000001d (illegal instruction)).


    Auf einem AMD FX-5600 meldet die MinGW32-Variante (GCC 7.3.0) als verwendeten Zweig [SIMD=SSE42], dagegen meldet die MinGW64-Variante (GCC 8.2.0) als verwendeten Zweig [SIMD=AVX].


    Noch ein allgemeiner Hinweis zur Benutzung: Es wird empfohlen, die Software für das "VCC Test Modell" (VTM) mit vorgefertigten Konfigurationsdateien zu betreiben; eine komplette Konfiguration durch einzelne CLI-Parameter wäre sehr aufwändig, diese wären lediglich geeignet, um Abweichungen von der Komplettkonfiguration festzulegen.


    Bisher wird aber offenbar noch nicht einmal Y4M unterstützt, nur rohes YUV.