x264 - Lossless Encoding

  • Hallo,

    x264 ermöglicht mit -qp 0 verlustloses Encoding.
    Wie wirken denn dann die ganzen übrigen Einstellungen?
    Ich kann mit MeGUI als Frontend immer noch alle anderen Einstellungen tätigen, wie bspw. unterschiedliche Profil- und Levelbeschränkungen, Makroblock-Optionen, B-Frames, eben einfach alles, wie sonst auch.
    Warum sind gerade die Optionen zur Bewegungsabschätzung und die Quantisierungsoptionen nicht ausgegraut?
    Warum sollte man weitreichend nach Bewegung suchen lassen, wenn doch sowieso nicht quantisiert wird? Verlustlos ist doch verlustlos, ohne wenn und aber oder doch nicht?
    Erleuchtet mich doch bitte mal :).

    greets
    LTJ

  • Also seit kurzem werden B-Frames im "lossless" Modus (QP=0) deaktiviert, da sie der Kompression schaden (das gilt natürlich nur für den "lossless" Modus). Außerdem lag zuvor ein Bug vor, durch den die B-Frames nicht mehr 100% verlustfrei waren. Also ist jetzt zumindest die "--bframe" Option im "lossless" Mode wirkungslos. Welche Optionen sonst noch deaktiviert bzw. wirkungslos sind, weiß ich nicht. Die Bewegungsabschätzung ist aber sehr wohl weiterhin aktiv! Je genauer x264 den aktuellen Frame aus den vorherigen Frames vorhersagen kann (und nichts anderes machen die Bewegungsvektoren), desto geringer fällt die Differenz zwischen vorhergesagtem und tatsächlichem Frame aus. Und nur diese Differenz wird letztendlich im Datenstrom gespeichert. Das ist nach wie vor verlustfrei, wenn das Differenzbild nicht Quantisiert wird. Je weniger "Informationen" aber im Differenzbild stecken, desto weniger Speicher belegt es nach der Entropie-Kodierung...


    [Update]

    Ich denke, das hier dürfte der entsprechende Code-Block für den "lossless" Mode sein:

    Also wird im wesentlichen "--trellis 0", "--nr 0", "--psy-rd 0:0" und "--bframe 0" gesetzt, die "flat" matrix geladen sowie die I/P bzw. P/B Faktoren auf "1.0" gesetzt ;)

    Wenn CABAC deaktiviert ist (CAVLC), dann wird zusätzlich "--8x8dct" deaktiviert...

  • Danke, erstmal OK soweit.
    Können lossless encodete Streams denn auch geauthored werden, heißt, entsprechen die den Blu-Ray Spezifikationen? Kann man wahrscheinlich so pauschal nicht sagen oder?

    greets
    LTJ

  • Können lossless encodete Streams denn auch geauthored werden, heißt, entsprechen die den Blu-Ray Spezifikationen?

    Ziemlich sicher: Nein!

    Allein schon deshalb, weil man mit "lossless" wohl außerhalb jeglicher Bitraten-Beschränkungen der von Blu-Ray unterstützen H.264 Levels liegt ;)
    Soweit ich weiß, unterstütz Blu-Ray das High Profile @ Level 4.1, was folglich einer maximale Datenrate von 62.5 Mbit/s entsprechen würde.
    Und ich wüsste auch nicht, wie man irgendwelche VBV Restriktionen umsetzten sollte, wenn man "lossless" arbeitet. Ich glaub das ist unmöglich.

    Davon abgesehen benutzt x264 nun schon seit einiger Zeit für den "lossless" Mode das "Predictive Lossless" aus dem High 4:4:4 Profil.
    Aber das unterstützen bisher überhaupt nur sehr weniger Deocoder. Mir fällt da nur CoreAVC und (seit kurzem) ffdshow ein. Aber Standalone Player?
    Wohl kaum ...

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!