[x264] Allgemeine Frage zur DVD Sicherung

  • Da ich seit kurzem einen Networked Media Tank besitze dachte ich mir es ist mal wieder Zeit sich mit der Umkonvertierung von DVD's zu beschäftigen. Soll heißen meine DVD's sollen in ein aktuelles platzsparendes Format gebracht werden.

    Das Video soll möglichst originalgetreu und anamorph eingeschrumpft werden.
    Somit fällt das Script auch relativ spartanisch aus:

    Code
    DGDecode_mpeg2source("X:\VideoFile.d2v", info=3)ColorMatrix(hints=true, threads=0)crop( Nur die Balken entfernen)Undot()

    Nun Frage ich mich gleich zu beginn ob dies ausreicht oder ob man heutzutage spezielle Filter zusätzlich einbringt. Ich bin selbst bei Undot() unsicher ob es überhaupt dort reingehört. Ich meine mich zu erinnern, dass man es nutzen sollte um die Kompression etwas anzuheben.

    Den eigentlichen Codier-Vorgang übernimmt x264 dann mit folgender Kommandozeile:

    Code
    program --crf 20 --level 3.1 --ref 8 --mixed-refs
    --no-fast-pskip --no-dct-decimate --no-psnr --no-ssim
    --direct auto --deblock -1:-1 --subme 8 --trellis 2
    --partitions p8x8,b8x8,i4x4,i8x8 --8x8dct --vbv-bufsize 14000
    --vbv-maxrate 17500 --me umh --threads auto --thread-input
    --progress --bframes 3 --b-adapt 2 --b-pyramid --weightb
    --output "output" "input"
    --sar 16:11 [I][bzw. 12:11][/I]

    Wie sind eure Meinungen?

    Edit:
    Mittlerweile teste ich noch ob vielleicht doch auch nur CRF22 ausreicht.

    3 Mal editiert, zuletzt von XadoX (14. Mai 2009 um 15:17)

  • ...psy rdo? psy trellis? adaptive quantization?...


    Wenn ich mit nicht irre verwendet x264 bei nicht angabe default Werde dafür? (RDO=1, Trellis=0)
    Ich muss diesbzgl. nochmals in dein x264 Wissenswertes schauen.

    ...anstatt undot würde ich eher removegrain verwenden...


    ist einen Versuch wert.

    Edit:
    Gibt es eine einfach Lösung zwei Encodes aneinanderzu halten um z.B. einen Optischen Vergleich zwischen CRF20 & CRF22 durchzuführen.

  • Wenn du sie nur nebeneinander sehen willst: StackHorizontal / StackVertical.

    Ich habe in meiner Script Wühlkiste noch sowas gefunden:

    Link

  • CRF22 scheided für mich aus. Ich meine mir zumindest einzubilden, dass das Bild sichtbar blockiger wird.

    UnDot() scheint mir das Bild an Details zu mindern.

  • CRF <22: Dann hast du "vernünftig hohe" Ansprüche. :ja:

    UnDot: Jeder Rauschfilter vermindert Details. Als "Median-Filter" ist UnDot relativ dumm und plättet jedes Detail (vor allem "Salz & Pfeffer"-Störungen, also sehr stark abweichende einzelne Pixel); es gibt auch Median-Filter für AviSynth, die Ausreißer im Bild sanfter begrenzen. Und noch aufwändigere und "intelligentere" Filter, die häufig auch mehrere aufeinander folgende Bilder vergleichen (also nicht nur spatial, sondern auch temporal arbeiten).

  • Da ich das Video aber möglichst in seiner Ursprungsform erhalten möchte werde ich wohl auch auf Rauschfilter verzichten.
    Bei meinen Testencodes lag die Größen-Diffenrenz bei ca. 4%, soll heißen mit Rauschfilter war das File um 4% kleiner. Damit kann ich leben.

    5 Mal editiert, zuletzt von XadoX (25. Mai 2009 um 09:15)

  • Beim Vergleich zwischen dem Original MPEG und dem x264 Encode erkennt man leichte Änderung im Bild. x264 scheint das Bild etwas weicher zu machen (zumindest im Vergleich einzelner Standbilder).

    Wie könnte ich das Weichzeichnen am ehesten verhindern?

    Einmal editiert, zuletzt von XadoX (25. Mai 2009 um 09:15)

  • 1) Mehr Bitrate. ;)...


    Ich weiß eigentlich hätte ich nicht fragen dürfen :ani_lol:

    Punkt 2 sollte ich mir mal näher ansehen.

    Edit:
    Ich versuche mal den Alpha Wert um einen herabzusetzen:

    Code
    --deblock -2:-1

    2 Mal editiert, zuletzt von XadoX (25. Mai 2009 um 10:49)

    • Deadzones scheiden ja aus da Trellis eingesetzt wird
    • AQ Wert herabsetzen führte nur zu Makroblock bildung
    • Deblocking lasse ich vorerst auf -1:-1
    • Vielversprechend ist psy-rd/trellis


    Das experimentieren mit psy-rd/trellis hat sich gelohnt, hiermit kann ich wohl das Grundrauschen am ehesten erhalten. Leider führt das dann natürlich dazu das die Dateigröße ansteigt (im Schnitt um 30% bei 1.5:1.0).

  • Das experimentieren mit psy-rd/trellis hat sich gelohnt, hiermit kann ich wohl das Grundrauschen am ehesten erhalten. Leider führt das dann natürlich dazu das die Dateigröße ansteigt (im Schnitt um 30% bei 1.5:1.0).

    1. Psy-Trellis 1.0 ist ziemlich hoch. Du solltest es eher im Bereich 0.2 bis 0.4 versuchen, um zusätzliche Artefakte durch Psy-Trellis zu vermeiden.

    2. Wenn die Datei größer wird, dann heißt das noch lange nicht, dass deine Psy-RDO/Trellis Einstellungen tatsächlich besser sind, als die Defaults! Das ließe sich erst dann sagen, wenn deine Einstellungen bei gleicher Dateigröße besser aussehen als die Defaults. So wird die bessere Qualität aber vor allem durch die höhere Bitrate erkauft! Ich würde daher empfehlen Psy-RDO erstmal auf Default zu belassen, Psy-Trellis auf maximal 0.2 einzustellen und stattdessen lieber den CRF Wert um 1-2 zu reduzieren. Dann bekommst du ebenfalls eine bessere Qualität durch eine höhere Bitrate, aber mit weniger aggressiven Psy Optimierungen. Bei Psy Optimierungen ist mehr nicht unbedingt auch besser...

    3. AutoVAQ könnte in der Tat hilfreich sein. Du musst aber bedenken, dass mit AutoVAQ die CRF Skala neu definiert wird. Sprich: Bei dem selben CRF Wert kann AutoVAQ deutlich kleinere (oder deutlich größere) Dateien liefern. Du musst also gegebenenfalls deinen CRF Wert neu austarieren, um mit AutoVAQ vergleichbare Ergebnisse zu erhalten!

  • Wie bereits geschildert ist das Bild ansich schon als gut zu bewerten. Leider stellte ich fest das mit der Ur-x264 Konfiguration einiges an Informationen weichegezeichnet wird (Zumindest auf das Standbild bezogen, ich finde es sehr schwierig laufende Bilder zu vergleichen).

    Ich haben nun versucht das Filmgrain besser erhalten zu können. Arbeiten tue ich dabei mit MeGUi und dessen referenzierter x264.

    3 Mal editiert, zuletzt von XadoX (26. Mai 2009 um 14:39)

  • ...und stattdessen lieber den CRF Wert um 1-2 zu reduzieren. Dann bekommst du ebenfalls bessere Qualität...


    Tatsache das Reduzieren von CRF20 auf CRF19 und brachte den selben verbessernden Effekt.

    Des Weiteren habe ich gelesen das No-Fast-P-Skip nicht mehr nötig wäre. Somit sieht meine jetzige Konfiguration folgendermaßen aus:
    program --crf 19 --level 3.1 --ref 8 --mixed-refs --bframes 3 --b-adapt 2 --b-pyramid --weightb --direct auto --deblock -1:-1 --subme 8 --trellis 2 --psy-rd 1.0:0.2 --partitions p8x8,b8x8,i4x4,i8x8 --8x8dct --vbv-bufsize 14000 --vbv-maxrate 17500 --me umh --threads auto --thread-input --progress --no-psnr --no-ssim --output "output" "input" --sar 16:11

    Einmal editiert, zuletzt von XadoX (26. Mai 2009 um 14:59)

  • Zitat von XadoX

    Zumindest auf das Standbild bezogen, ich finde es sehr schwierig laufende Bilder zu vergleichen.

    Ja. Allerdings sind einzelne Standbilder nicht immer aussagekräftig, was die Qualität bei der tatsächlichen Wiedergabe angeht.

    Tatsache das Reduzieren von CRF20 auf CRF19 und brachte den selben verbessernden Effekt.

    Des Weiteren habe ich gelesen das No-Fast-P-Skip nicht mehr nötig wäre. Somit sieht meine jetzige Konfiguration folgendermaßen aus:
    program --crf 19 --level 3.1 --ref 8 --mixed-refs --bframes 3 --b-adapt 2 --b-pyramid --weightb --direct auto --deblock -1:-1 --subme 8 --trellis 2 --psy-rd 1.0:0.2 --partitions p8x8,b8x8,i4x4,i8x8 --8x8dct --vbv-bufsize 14000 --vbv-maxrate 17500 --me umh --threads auto --thread-input --progress --no-psnr --no-ssim --output "output" "input" --sar 16:11

    No-Fast-P-Skip bringt wenn überhaupt nur eine geringfügige Verbesserung. Und "--partitions" kannst du auch weg lassen, wenn du eh nur wieder die Defaults setzt ;)

    Außerdem: Wenn du schon VBV benutzen musst, dann solltest du mit dem 2-Pass Modus enkodieren! Alternativ kannst du auch den ersten der beiden Durchgänge mit CRF ausführen.

  • Ich muss gestehen das ich eines der DXVA-SD Profile von Sharktooth ausgesucht haben und einfach anstellte des 2-Pass auf CRF geändert haben.

    Zitat von LoRd_MuldeR

    ...Wenn du schon VBV benutzen musst, dann solltest du mit dem 2-Pass Modus enkodieren...

    Weshalb dies? Limitiert vielleicht auch schon die Level3.1 Begrenzung die VBV-Werte?

    Edit:

    Code
    program --crf 19 --level 3.1 --ref 8 --mixed-refs --bframes 3--b-adapt 2 --weightb --deblock -1:-1 --subme 8--trellis 2 --psy-rd 1.0:0.2 --me umh--threads auto --thread-input --progress --no-psnr --no-ssim--output "output" "input" --sar 16:11

    13 Mal editiert, zuletzt von XadoX (27. Mai 2009 um 08:26)

  • Zitat

    Weshalb dies? Limitiert vielleicht auch schon die Level3.1 Begrenzung die VBV-Werte?


    Ja, die Leveleinstellungen beschränken u.a. auch die vbv Werte. Diese werden nur nicht angezeigt, da die Defaultwerte des entsprechenden Levels genommen werden.
    Da vbv Beschränkungen nur sicher eingehalten werden können wenn man ein Multipass Encoding macht, wird statt einem 1pass ein 2pass encoding empfohlen.

    Cu Selur

Jetzt mitmachen!

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