Zu viel Weichzeichnung an bestimmten Stellen

  • Ich habe vor kurzem (zu Testzwecken) ein paar DV-AVI-Videos durch den x264-Encoder gejagt. Als Profil habe ich „HQ-Slow“ mit einer Bitrate von 6500 kbps verwendet. Dabei sind mir im fertigen Video ein paar „unschöne“ Stellen aufgefallen.

    Ein Ändern der Deblocking-Werte auf (-3, -3) oder (-6, -6) brachte keine nennenswerte Verbesserung. Auch ein Deaktivieren des Deplocking-Filters brachte nicht viel.

    Zum Vergleich habe ich auch das Resultat von Nero Recode 2 hier mit angefügt. Die Bildausschnitte stammen aus dem ersten Frame einer neuen Szene und sind 150 % vergrößert worden.

    Original
    [Blockierte Grafik: http://img70.imageshack.us/img70/3668/original0540x04325wr.jpg]

    X264, Profil „HQ-Slow“, 6500 kbps
    [Blockierte Grafik: http://img82.imageshack.us/img82/6663/x26465000540x04324cr.jpg]

    Nero Recode 2, 6,52 Mbps
    [Blockierte Grafik: http://img5.imageshack.us/img5/369/nero65000540x04321ux.jpg]

  • Auch mit der aktuellsten Version („x264 core:44 svn-411“) zeigen sich diese „softigen“ Bereiche.

    Unter MeGUI x264 0.2.3.2033 habe ich das Profil „HQ-Slow“ geladen und die Bitrate auf 6500 kbps eingestellt.

    C:\Programme\x264\x264.exe --pass 2 --bitrate 6500 --stats ".stats" --ref 5 --bframes 3 --b-pyramid --weightb --filter -2,-2 --subme 6 --trellis 1 --analyse all --8x8dct --progress --no-psnr --output "C:\Temp\video\video.mp4" "C:\Temp\video\video.avs"

    Zwar bescheinigen mir die via AviSynth ermittelten SSIM-Werte bessere Zahlen für das komplette x264-Video (das Testvideo hat eine Länge von 32 Sekunden) gegenüber dem Nero-Recode-2-Video, doch fallen diese „softigen“ Frames dann doch etwas aus der Reihe, wie ich finde. Bei den mit Nero Recode 2 enkodierten Videos sieht man sogar noch das Rauschen der Camcorder-Aufnahme! Zugegeben, das Material ist alles andere als „stressfrei“. Man muss dem x264-Encoder schon mindestens 5000 kbps Bitrate zur Verfügung stellen (hängt natürlich stark vom Quellmaterial ab), damit das resultierende Video in etwa das Niveau eines guten Mpeg-2-Videos mit 6500 kbps Bitrate (VBR, 2-pass) hat (getestet mit dem Procoder Express).

    Procoder Express, 6500 kbps
    [Blockierte Grafik: http://img326.imageshack.us/img326/5488/procoder65000540x04320nn.jpg]

    Einmal editiert, zuletzt von Archimedes1 (29. September 2008 um 11:42)

  • Hab jetzt nen Canapus Decoder von nem Kumpel => das Material muß deinterlaced werden (macht Recode selber)
    versucht mal:

    Code
    LoadPlugin("L:\Programme\AviSynth\plugins\TDeint.dll")            # TDeint 1.0 RC 2 (http://bengal.missouri.edu/~kes25c/)
    AviSource("c:\video.avi")
    ConvertToYv12()
    TDeint(type=3)

    http://rapidshare.de/files/12436001/video.mp4.html

    Cu Selur

  • Ausgerechnet auf 150% zu vergrößern, halte ich (besonders bei Interlaced-Material) auch eigentlich für besonders unpassend, weil in dem vergrößerten Bild dann auch garantiert jeder Pixel eine Mischung aus umgebenden Pixeln ist, die zusätzlich noch mal weicher wirkt als das Original.

    x264 kann ja bis heute noch nicht interlaced encodieren. Ateme's H.264-Encoder kann, wenn man das einstellt. Und was er darüber hinaus auch noch hat, ist eine Option, die das Rauschen aus dem Original teilweise wiederherstellen soll.

  • Der Nero AVC-Codec, der zur Zeit in Recode ist, basiert ja auf dem Ateme-Codec der letzten Runde, den wir im englischen doom9-Forum getestet hatten. Ich gehe deshalb davon aus, dass Nero Recode zur Zeit schon interlaced arbeiten kann (müsste nur mal schauen, ob es da auch passende Optionen in den Profilen gibt...).

    Die aktuelle Beta-Version ist da noch etwas weiter entwickelt, zugegeben. Aber nicht revolutionär besser.

  • Zitat

    (müsste nur mal schauen, ob es da auch passende Optionen in den Profilen gibt...).

    zumindest in Nero 7 nicht,....

    Leider kann ich mit Nero Recode auch keinen Vergleichsencode machen, da ich bei 6000kBit/s etwa 3MB für den Clip erhalten würde, da Nero Recode aber keine kleineren Zielgrößen als 30MB zulässt encoded Nero Recode bei mir mit 16MBit und kriegt so ein 9.6MB großes File raus. ;)
    =>Archimedes1 sicher das die Datenrate bei deinem Recode Screenshot auch stimmt? (selbst ein konstanter Quantizer 18 encode bei x264 sieht einiges smoother aus)
    Falls die Datenrate stimmt und Nero Recode bei 6500kBit bei deiner Quelle wirklich so gute Qualität liefert, dann benutz Nero Recode. :)
    (wobei ich auch Nero eher das Avisynthscript mit TDeint füttern würde)

    Cu Selur

  • Also, zunächst einmal, wenn man bei Nero Recode 2 die Option „DVDs und Videos zu Nero Digital recodieren“ auswählt, kann man im nächsten Fenster, nachdem man ein Video importiert hat, unter „Video“ auch das Deinterlacen deaktivieren (bei interlaced Material ist die Voreinstellung immer "deinterlacen"). Ist die Quelle bereits progressiv, erkannt das Nero und deinterlacing ist automatisch deaktiviert.

    Wenn’s von Interesse ist, könnte ich natürlich auch den kompletten Clip (ca. 115 MB) hochladen. Die Datenrate hat bei Nero Recode 2 schon gestimmt – die resultierenden Dateien waren dann auch fast gleich groß.

    Zitat

    Properly dealing with adaptive interlacing in all cases takes lots of code. x264 doesn't support interlacing.


    Das erklärt natürlich so manches. ;) Werde den Clip via geändertem AviSynth-Script nochmal durch beide Encoder jagen.

    Einmal editiert, zuletzt von Archimedes1 (29. September 2008 um 11:43)

  • Sollte man tatsächlich in die Verlegenheit kommen, interlaced Material nach interlaced H.264/AVC zu enkodieren, so führt wohl kein Weg an Nero Recode 2 vorbei, wenn wir die wesentlich teueren Lösungen mal außen vor lassen.

    Ich habe den Clip jetzt noch mal deinterlaced (via AviSynth) den beiden Encodern angeboten. Dabei ist mir zu meiner Schande etwas aufgefallen. Ich habe hier ja immer die I-Frames (1. Frame einer neuen Szene) betrachtet – und die waren bei Nero Recode 2 in der Tat stets besser. Deswegen sind mir diese „softigen Bereiche“ im gleichen Frame beim x264-Video auch so aufgefallen. Anhand der ermittelten SSIM-Werte über alle Frames war aber schon klar, dass das gesamte x264-Video die Nase vorne hatte. Als ich dann begann, die nachfolgenden Frames einer Sichtanalyse zu unterziehen, stellte ich fest, dass auch Nero diese Bereiche „softet“. Ich habe da wohl zu viel erwartet - auch H.264/AVC kann nicht zaubern. Danke aber schon mal für die Unterstützung.

    Bleibt noch die Frage, wenn der x264-Encoder interlaced Quellen nicht unterstützt, was macht er, wenn er eine interlaced Quelle zum Verarbeiten bekommt? Deinterlacen im eigentlichen Sinn wird er wohl nicht?

    Einmal editiert, zuletzt von Archimedes1 (29. September 2008 um 11:43)

  • Bei Interlaced Video sind ja zwei Fields in einem Frame verwoben. Ob es sich bei den Daten, die der Encoder geliefert bekommt, um zwei verwobene Fields oder ein echtes Frame handelt, weiß er nicht.

    Er behandelt also die zwei Fields, als ob es ein Frame wäre. Das funktioniert auch, ist aber nicht so sonderlich optimal.

    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.

Jetzt mitmachen!

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