Unklarheiten bezüglich neueren x264CLI Optionen


  • Ich werde das mit crf und trellis testen. 2 Pass ist bei mir aus der Mode gekommen, seitdem ich die Leistungsfähigkeit von crf wirklich begriffen und ertestet habe.


    Wie gesagt, ich bräuchte nur ne Quelle, dann teste ich alle Möglichkeiten durch.

    Ich hab hier nen E6300 auf 2,8GHZ im Rechner, der hat genügend Reserven um sowas mal zu testen. Nur ne ordentliche Quelle hab ich nicht.

  • Gut, hab jetzt mal nen Test gemacht.

    Ausgangsmaterial ist hochwertiges HD-Filmmaterial, heruntergerechnet auf 1280x720. Außerdem wurde deinterlaced.
    Getestet wurden sowohl 2-Pass verfahren als auch die crf Methode.


    avs-script

    Zitat


    DGDecode_mpeg2source("F:\x264 test\x264 test.d2v")
    tfm(order=1).tdecimate()
    crop( 0, 0, -4, -2)
    Lanczos4Resize(1280,720)


    2-Pass Kommandozeile

    Zitat

    --pass 2 --bitrate 1000 --stats "F:\x264 test\x264 test.stats" --ref 3 --mixed-refs (--no-fast-pskip) --bframes 3 --b-pyramid --bime --weightb --direct auto --filter -2,-2 (--trellis 2) --analyse all --8x8dct --vbv-maxrate 25000 --threads 2 --thread-input --progress (--no-dct-decimate) --output "F:\x264 test\x264 2pass 0-1-1.mp4" "F:\x264 test\x264 test.avs"


    Crf Kommandozeile

    Zitat

    --crf 22 --ref 3 --mixed-refs (--no-fast-pskip) --bframes 3 --b-pyramid --bime --weightb --direct auto --filter -2,-2 (--trellis 2) --analyse all --8x8dct --vbv-maxrate 25000 --threads 2 --thread-input --progress (--no-dct-decimate) --output "F:\x264 test\x264 2-1-1.mp4" "F:\x264 test\x264 test.avs"


    Als Hilfsprogramm habe ich Megui in der Version 0.2.4.1026 benutzt.
    x264 lag in der Version r614-1 vor.


    Da ich absolut eine Null auf dem Gebiet Microsoft Excel (o.ä.) bin, habe ich es nicht geschafft das ganze als Diagramm darzustellen. Darher die kleine pdf am Ende dieses Posts.


    Mein Persönliches Fazit: Unter crf schwanken die Größen der Einzelnen Dateien teilweise sehr stark. 0-0-0 ist hierbei am kleinsten, liefert aber allen Anschein nach die schlechteste Qualität. Das beste Ergebnis scheinen hier 2-0-0 (1-0-0) und 0-0-1 zu liefern. Auffällig und für meine begrenzten Kenntnisse merkwürdig ist es, dass ob Trellis 1 oder 2 gewählt ist keinerlei Unterschied macht.


    Mehr hab ich jetzt aus mangelnder Zeit noch nicht ausgewertet. Wer noch mehr mit den Ergebnisse anfangen will, kann sich auch die Orginal .ods zu gemüte führen.

  • Vielen Dank für Deinen Test!
    Jetzt gibts mal eine Basis auf die man sich beziehen kann. Selber habe ich zwar schon trellis/pskip/decimate durchprobiert und nie grosse Unterschiede in der Qualität gefunden. Hatte aber nie den gleichen Film in allen Varianten durchprobiert, daher herzlichen Dank.

    Müsste man die Ergebnisse von PSNR/SSIM nicht noch auf die letzlich vom codec verwendete Bitrate normalisieren? Damit wäre der Unterschied noch geringer.
    Denke aber das sich PSNR/Bitrate nicht linear verhalten und sich nicht trivial normalieren lässt. Oder lieg ich da jetzt ganz falsch?

  • Vielen Dank für Deinen Test!
    Jetzt gibts mal eine Basis auf die man sich beziehen kann. Selber habe ich zwar schon trellis/pskip/decimate durchprobiert und nie grosse Unterschiede in der Qualität gefunden. Hatte aber nie den gleichen Film in allen Varianten durchprobiert, daher herzlichen Dank.

    Müsste man die Ergebnisse von PSNR/SSIM nicht noch auf die letzlich vom codec verwendete Bitrate normalisieren? Damit wäre der Unterschied noch geringer.
    Denke aber das sich PSNR/Bitrate nicht linear verhalten und sich nicht trivial normalieren lässt. Oder lieg ich da jetzt ganz falsch?


    Naja, die Unterschiede in der Qualität sind ja auch marginal.

    Ich stelle mir außerdem die Frage, ob SSIM und PSNR wirklich die Unterschiede zwischen no-fast-p-skip und fast-p-skip erfassen kann.
    Ich denke, dass ist eher ein subjektives empfinden (bessere Himmel etc).

  • Zumindest die SSIM gibt ein bisschen Auskunft über die "subjektiv empfundene Qualität". Ist aber eh so, das sowohl PSNR als auch nur SSIM Bewertungen sind die unser "psychovisuelles System" nicht nachbilden können.
    Das mit "besseren Himmel" ist auch meine Motivation. Ich encode eher alte Filme und möchte soviel "originale Unreinheiten" als möglich behalten.
    Die diskutierten Parameter helfen dabei ein wenig. Auffällige Unterschiede zwischen no-fast-p-skip und fast-p-skip habe ich bisher noch nie bemerkt.
    Sinnvoll wäre vermutlich Einzelsequenzen von Testfilmen zu encoden und dann möglichst viele Personen im ABX Verfahren bewerten lassen. Bisschen Aufwand halt ...

    Als Auswahlkriterium hätten wir noch den Geschwindigkeitsunterschied. Zwischen 0-1-0 und 0-0-1 wird wohl kein Unterschied gewesen sein, aber zwischen 1-0-0 und 0-0-1 ? Das wäre vielleicht auch noch interessant zu wissen.

    Vielleicht noch eine rein subjektive Bewertung von Dir:
    Habe mir das ParkRun nicht runtergeladen-etwas gross, aber möglicherweise sind da Sequenzen mit Himmel u.ä. enthalten die Du (wenn Zeit&Lust) bewerten könntest.

  • Zumindest die SSIM gibt ein bisschen Auskunft über die "subjektiv empfundene Qualität". Ist aber eh so, das sowohl PSNR als auch nur SSIM Bewertungen sind die unser "psychovisuelles System" nicht nachbilden können.
    Das mit "besseren Himmel" ist auch meine Motivation. Ich encode eher alte Filme und möchte soviel "originale Unreinheiten" als möglich behalten.
    Die diskutierten Parameter helfen dabei ein wenig. Auffällige Unterschiede zwischen no-fast-p-skip und fast-p-skip habe ich bisher noch nie bemerkt.
    Sinnvoll wäre vermutlich Einzelsequenzen von Testfilmen zu encoden und dann möglichst viele Personen im ABX Verfahren bewerten lassen. Bisschen Aufwand halt ...

    Als Auswahlkriterium hätten wir noch den Geschwindigkeitsunterschied. Zwischen 0-1-0 und 0-0-1 wird wohl kein Unterschied gewesen sein, aber zwischen 1-0-0 und 0-0-1 ? Das wäre vielleicht auch noch interessant zu wissen.

    Vielleicht noch eine rein subjektive Bewertung von Dir:
    Habe mir das ParkRun nicht runtergeladen-etwas gross, aber möglicherweise sind da Sequenzen mit Himmel u.ä. enthalten die Du (wenn Zeit&Lust) bewerten könntest.


    Ich habe nicht das Parkrun encodet, sondern nen Privaten HD Clip, den ich als wesentlich geeigneter angesehen habe :)

    Vom Subjektiven Empfinden gefällt mir 2-0-1 am absolut besten.


    Von den FPS waren alle 2-x-x und 1-x-x alle auf etwa 3,5-3,7FPS. Alle 0-x-x hatten an die 4.1-4.3 FPS (crf). Im 2-pass verhält es sich ähnlich.

  • Darf ich mal dumm fragen:
    Was ist besser, größere oder kleinere PSNR und SSIM-Werte (Google brachte zwar ausführliche Beschreibungen und Formeln, aber nicht die einfache Antwort auf diese Frage).

    Gruß

    akapuma

    Wer weiß, wovon er redet, kann es sich leisten, sich verständlich auszudrücken.
    Besucht auch meine Homepage: http://akapuma.info

  • Darf ich mal dumm fragen:
    Was ist besser, größere oder kleinere PSNR und SSIM-Werte (Google brachte zwar ausführliche Beschreibungen und Formeln, aber nicht die einfache Antwort auf diese Frage).

    Gruß

    akapuma


    Größere.

    Sieht man eigentich schon daran, wenn man meine Ergebnisse vom crf und 2pass gegeneinander antreten lässt. Das Ergebnis crf ist wesentlich hochwertiger als des 2pass, welches auch nur mit einer Bitrate von 1000 arbeitet.

  • <table border="1" cellspacing="0" cols="6" frame="below" rules="groups"> <colgroup><col width="43"><col width="118"><col width="86"><col width="86"><col width="86"><col width="86"></colgroup> <tbody> <tr> <td align="left" height="25" width="43">
    </td> <td align="left" width="118">
    </td> <td align="left" width="86">
    </td> <td align="right" width="86">
    </td> <td align="left" width="86">
    </td> <td align="right" width="86">
    </td> </tr> </tbody> <tbody> <tr> <td align="center" height="17">Trellis</td> <td align="center">No-dct-decimation</td> <td align="center">No-fast-pskip</td> <td align="center">SSIM</td> <td align="center">PSNR</td> <td align="center">Bitrate</td> </tr> </tbody> <tbody> <tr> <td sdval="0" sdnum="1031;" align="center" height="17">0</td> <td sdval="0" sdnum="1031;" align="center">0</td> <td sdval="1" sdnum="1031;" align="center">1</td> <td align="right">0.9259247</td> <td sdval="37267" sdnum="1031;" align="right">37267</td> <td align="right">1008.50</td> </tr> </tbody> <tbody> <tr> <td sdval="2" sdnum="1031;" align="center" height="17">2</td> <td sdval="0" sdnum="1031;" align="center">0</td> <td sdval="1" sdnum="1031;" align="center">1</td> <td align="right">0.9256851</td> <td sdval="37304" sdnum="1031;" align="right">37304</td> <td align="right">1009.91</td> </tr> </tbody> <tbody> <tr> <td sdval="1" sdnum="1031;" align="center" height="17">1</td> <td sdval="0" sdnum="1031;" align="center">0</td> <td sdval="1" sdnum="1031;" align="center">1</td> <td align="right">0.9256851</td> <td sdval="37304" sdnum="1031;" align="right">37304</td> <td align="right">1009.91</td> </tr> </tbody> <tbody> <tr> <td sdval="1" sdnum="1031;" align="center" height="17">1</td> <td sdval="1" sdnum="1031;" align="center">1</td> <td sdval="1" sdnum="1031;" align="center">1</td> <td align="right">0.9256419</td> <td sdval="37279" sdnum="1031;" align="right">37279</td> <td align="right">1008.01</td> </tr> </tbody> <tbody> <tr> <td sdval="2" sdnum="1031;" align="center" height="17">2</td> <td sdval="1" sdnum="1031;" align="center">1</td> <td sdval="1" sdnum="1031;" align="center">1</td> <td align="right">0.9256419</td> <td sdval="37279" sdnum="1031;" align="right">37279</td> <td align="right">1008.01</td> </tr> </tbody> <tbody> <tr> <td sdval="1" sdnum="1031;" align="center" height="17">1</td> <td sdval="1" sdnum="1031;" align="center">1</td> <td sdval="0" sdnum="1031;" align="center">0</td> <td align="right">0.9255352</td> <td sdval="37279" sdnum="1031;" align="right">37279</td> <td align="right">1007.89</td> </tr> </tbody> <tbody> <tr> <td sdval="2" sdnum="1031;" align="center" height="17">2</td> <td sdval="1" sdnum="1031;" align="center">1</td> <td sdval="0" sdnum="1031;" align="center">0</td> <td align="right">0.9255352</td> <td sdval="37279" sdnum="1031;" align="right">37279</td> <td align="right">1007.89</td> </tr> </tbody> <tbody> <tr> <td sdval="0" sdnum="1031;" align="center" height="17">0</td> <td sdval="1" sdnum="1031;" align="center">1</td> <td sdval="0" sdnum="1031;" align="center">0</td> <td align="right">0.9254644</td> <td sdval="37228" sdnum="1031;" align="right">37228</td> <td align="right">1006.85</td> </tr> </tbody> <tbody> <tr> <td sdval="2" sdnum="1031;" align="center" height="17">2</td> <td sdval="0" sdnum="1031;" align="center">0</td> <td sdval="0" sdnum="1031;" align="center">0</td> <td align="right">0.9249624</td> <td sdval="37252" sdnum="1031;" align="right">37252</td> <td align="right">1008.35</td> </tr> </tbody> <tbody> <tr> <td sdval="1" sdnum="1031;" align="center" height="17">1</td> <td sdval="0" sdnum="1031;" align="center">0</td> <td sdval="0" sdnum="1031;" align="center">0</td> <td align="right">0.9249624</td> <td sdval="37252" sdnum="1031;" align="right">37252</td> <td align="right">1008.35</td> </tr> </tbody> <tbody> <tr> <td sdval="0" sdnum="1031;" align="center" height="17">0</td> <td sdval="1" sdnum="1031;" align="center">1</td> <td sdval="1" sdnum="1031;" align="center">1</td> <td align="right">0.9244073</td> <td sdval="37091" sdnum="1031;" align="right">37091</td> <td align="right">1008.97</td> </tr> </tbody> <tbody> <tr> <td sdval="0" sdnum="1031;" align="center" height="17">0</td> <td sdval="0" sdnum="1031;" align="center">0</td> <td sdval="0" sdnum="1031;" align="center">0</td> <td align="right">0.9241560</td> <td sdval="37082" sdnum="1031;" align="right">37082</td> <td align="right">1007.73</td> </tr> </tbody> </table>

    Ich hab die 2pass Ergebnisse mal nach SSIM Werten sortiert.

    1. schön zu sehen, dass no-fast-pskip zu helfen scheint.
    2. Anfangs überraschend fand ich, dass Trellis bei den SSIM Werten eher negativ auffällt, die PSNR Werte scheinen aber davon zu profitieren. Wird Trellis nur auf PSNR Werte optimiert? Okay, das Trellis wenig macht war zu erwarten. Und das Trellis 1&2 sich nicht unterscheiden hatte ich auch vermutet.
    3. Erstaunlich finde ich das das Deaktivieren der DCT-Decimation auch eher negativ ist unabhänig von Trellis.

    Es ergibt sich also aus diesen Ergebnissen folgende Reihenfolge:
    (gut nach schlecht)
    1. Trellis: off , no-dct-decimation: off, no-fast-pskip: on
    2. Trellis: on , no-dct-decimation: off, no-fast-pskip: on
    3. Trellis: on , no-dct-decimation: on, no-fast-pskip: on
    4. Trellis: on , no-dct-decimation: on, no-fast-pskip: off
    5. Trellis: off , no-dct-decimation: on, no-fast-pskip: off
    6. Trellis: on , no-dct-decimation: off, no-fast-pskip: off
    7. Trellis: off , no-dct-decimation: on, no-fast-pskip: on
    8. Trellis: off , no-dct-decimation: off, no-fast-pskip: off

    => no-fast-pskip sollte immer an sein

    Cu Selur

    Ps.: bräuchten vermutlich einiges mehr an Tests um wirklich verlässliche Schlussfolgerungen ziehen zu können.
    Schön ist auf jeden Fall zu sehen, dass die Einstellungen relativ wenig machen. ;)

  • SSIM von 1 wäre optimal. PSNR ist ein Signal/Rauschverhältnis, daher besser wenn gross (viel gutes Signal zu wenig rauschen).
    SSIM bringt ein bisschen "subjektive menschliche" Bewertung mit rein und sagt daher zumindest imho mehr aus wie PSNR.

  • Was lässt sich daraus schließen?
    Das Trellis2 es den Performanceverlust gar nicht wert ist? Oder ein Fehler in der Revision. Ich mein, man muss sich mal überlegen: Insgesamt 16 Encodes mit Trellis, die sich jeweils untereinander in Bezug auf Trellis von der messbaren Qualität nicht unterscheiden.

    Wozu also Trellis 2?

    Zitat


    3. Erstaunlich finde ich das das Deaktivieren der DCT-Decimation auch eher negativ ist unabhänig von Trellis.

    Cu Selur

    Deckt sich eigentlich mit meinen subjektiven Erfahrungen.


    Edit: Nochmals thema Trellis: Man sollte da auch nicht vergessen, die Änderung der Bitrate zu vergleichen.

    Prozentual mal der Unterschied zwischen 2-0-1 (1-0-1) und 0-0-1 auseinandergenommen.

    Der SSIM ist in etwa 0.036% schlechter.
    Der PSNR ist in etwa 0.01% besser.
    Die Bitrate ist ebenfalls um 0.01% besser.


    Was mich wegen der engen Relation von PSNR und Bitrate zu einem weiteren Vergleich bringt:

    Höchste Bitrate (2-0-1) gegen niedrigste Bitrate (0-0-0) PSNR Vergleich:

    PSNR liegt um 0.01% auseinander (2-0-1 0.01% besser)
    Die Bitrate liegt 0.01% auseinander.
    SSIM liegt um 0.01% auseinander, ist im Gegensatz zum Vergleich oben also schlechter.

    Hm: Ich werde mal versuchen die ganze Relation irgendwie Graphisch dazustellen.

  • Trellis 2 ist eine Sonderform von Trellis 1, bei der jeder Encodiermodus, der in Betracht gezogen wird "trellisiert" wird, bei Trellis 1 nur die, die schlussendlich ausgewählt wurden.

    Dass Trellis 1 nicht wesentlich schlechter ist, zeigt, dass die Auswahlheuristiken gut sind, und sich durch Trellis nicht wesentlich durcheinanderbringen lassen.

    Trellis 2 sollte man genau wie -me esa und -qpfile als Option sehen, die für Experimente interessant, aber im Alltag nicht nötig sind.

    Es gibt eine Theorie, die besagt, dass das Universum sofort verschwinden und etwas noch Unerklärlicheres und Bizarres an seine Stelle treten wird, sobald jemand herausfindet, wofür es gut ist und warum es existiert.

    Es gibt eine andere Theorie, die besagt, dass das bereits geschehen ist.

  • Yup, sehe es auch so, dass bei Trellis eher die Frage ist ob es aktiviert ist oder nicht und nicht ob Trellis 1 oder 2 daran ist.

    Zitat

    Nochmals thema Trellis: Man sollte da auch nicht vergessen, die Änderung der Bitrate zu vergleichen.


    die minimale Schwankungen sehe ich als nicht bewertenswert an (Ich rede hier vom 2pass Encoding, für 1pass Verfahren siehe Aussagen von hier: http://forum.gleitz.info/showpost.php?p=312890&postcount=36)

    Cu Selur

  • Hm, mich interessiert das jetzt mit der Abhängigkeit von Bitrate zu PSNR und Bitrate zu SSIM, ohne Rücksicht auf gewählte Einstellungen.

    Hier mal ein Vergleich


    Das sind zwar nur Nuancen, aber dennoch korreliert PSNR eher mit der Bitrate als SSIM.

    Ich mache jetzt nochmal einen test, das wird spaßig :D


    Edit: Gut, vergesst das. Mein Verdacht hat sich als ziemlich falsch erwiesen :(

Jetzt mitmachen!

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