AVISynth-Script zum Denoisen (VHS)

  • Danke @ selur: Bin gerade mal am Deinterlacen, wobei ich die "NNEDI"-Methoden wegen Fehlermeldung nicht zum Laufen bekomme. VDub gibt mir ständig die Fehlermeldung "what means edi" oder so ...

    Gruß Danny

  • Kann sein, aber ich glaube, daß es ein grundsätzliches Problem ist, da auch alle anderen "NNEDI"-Methoden von VDub mit Fehlermeldungen abgelehnt werden.

  • Ja schon! War wieder mein Fehler!
    Hatte die Zeile: "edi = source.NNEDI(field=-2)" doppelt im Script ... ist mir gerade aufgefallen. Jetzt scheint´s zu gehen.

  • Okay, ich habe also alles mit den verschiedenen Deinterlacer bearbeitet. Schon jetzt zeichnen sich subjektiv sichtbare Unterschiede ab. Was ich allerdings in meine persönliche Wertung nicht nehmen konnte, waren die Deinterlacing-Methoden, die schlußendlich 50fps vorweisen (waren meine Favoriten!). Wie bringe ich die dann wieder runter auf 25fps, um ein vergleichbares Resultat zu haben?

    Danke & Gruß Danny

  • Hatte Didieé in weiser Voraussicht schon in seinem Skript angemerkt:
    # SelectEven() # <- für 25fps progressiv
    ## -oder-
    # SeparateFields().SelectEvery(4,0,3).Weave() # <- für 25i und DVD-Authoring
    einfach das '#'-Zeichen in der gewünschten Zeile entfernen :D

    Cu Selur

  • Um nicht einen neuen Thread zu eröffnen, poste ich hier mal weiter.

    Bin jetzt endlich mal wieder dazu gekommen, an meinen Videos zu schrauben und habe jetzt folgendes Script zusammen:
    ---------------------------------------------------------------------------
    Import("C:\Dokumente und Einstellungen\Office\Desktop\TemporalDegrain.avs")
    Import("C:\Dokumente und Einstellungen\Office\Desktop\FastDegrain.avs")
    Import("C:\Dokumente und Einstellungen\Office\Desktop\TempGaussMC_beta.avs")

    AVISource("C:\Dokumente und Einstellungen\Office\Desktop\raw_basdorf.avi")
    SetMemorymax(768)
    Bob(0,0.5)
    Crop(8,16,-8,-16)
    AddBorders(8,16,8,16)
    ConvertToYV12()
    ChromaShift(C=2,L=-2)
    TemporalDegrain()
    SeparateFields().SelectEvery(4,0,3).Weave()
    ---------------------------------------------------------------------------
    Wäre das Script bis dahin okay? Oder gibt´s vielleicht noch weitere Optimierungsmöglichkeiten?

    Vorweg gesagt, werde ich das Material wohl doch interlaced lassen.

    Nun hätte ich aber dennoch eine Frage:

    Der TemporalDegrain filtert wirklich hervorragend das Rauschen, leider habe ich das Gefühl, daß er auch viel an Detailschärfe nimmt. Besonders fällt es bei z.B. Rasenflächen, Bäumen, Hauswand, etc. auf. Ich habe zwar im Script (TemporalDegrain) noch unterschiedliche Degrain-Werte ausprobiert, fand aber (2) als den optisch besten Wert. Läßt sich zusätzlich noch etwas Schärfe zurückholen, ohne das Rauschen dann wieder zu begünstigen? Vielleicht sogar im Script direkt?

    Ich habe auch gerade mal ebend 2 Videoschnipsel hochgeladen, um das Ganze mal visuell wiederzugeben.

    Rohvideo-Ausschnitt ~ 90 MB

    mit obigen Script bearbeitet (TemporalDegrain) ~ 90 MB

    Möglicherweise habt ihr ja noch Verbesserungsvorschläge!?

    Danke euch schonmal & Gruß Danny :)

  • Hallo,

    habe jetzt nochmal ein wenig mein Script modifiziert. Dies wäre dann die endgültige Variante, um meine leicht bis mäßig verrauschten Videos in den Griff zu bekommen. Gut, der Geschwindigkeitsknaller ist es nicht gerade (~0,3fps), aber wenn das Endergebnis stimmt, was soll´s ... :D
    --------------------------------------------------------------------------
    Import("C:\Dokumente und Einstellungen\Office\Desktop\TemporalDegrain.avs")
    Import("C:\Programme\AviSynth 2.5\plugins\vhssharp.avs")
    LoadPlugin("C:\Programme\AviSynth 2.5\plugins\tdeint.dll")
    LoadPlugin("C:\Programme\AviSynth 2.5\plugins\nnedi.dll")
    LoadPlugin("C:\Programme\AviSynth 2.5\plugins\ChromaShift.dll")

    AVISource("K:\VIDEO\Capture_20070730-015040.avi")
    SetMemorymax(768)
    edi = NNEDI(field=-2)
    tdeint(mode=1, edeint=edi)
    ChromaShift(C=2,L=-3)
    Crop(16,16,-16,-16)
    AddBorders(16,16,16,16)
    ConvertToYV12()
    TemporalDegrain()
    vhssharp(4)
    SeparateFields().SelectEvery(4,0,3).Weave()
    ---------------------------------------------------------------------------

    Wäre super, wenn ihr nochmal drüberschauen könnt (zwecks evtl. Korrektur, Optimierung, etc.), bevor ich dann anfange, etwa 30 Stunden Material zu bearbeiten.

    Danke & Gruß Danny

  • Sieht soweit eigentlich ganz gut aus.

    Kleine Optimierung: Die Zeile "AddBorders(16,16..)" ganz ans Ende schieben. Erstens stören die hinzugefügten schwarzen Ränder die Motion-Engine von TemporalDegrain mehr, als dass sie helfen würden; zweitens hat TemporalDegrain dann eine (etwas) kleinere Fläche zu bearbeiten, was einen (klitzekleinen) Geschwindigkeitsvorteil bringt.

  • Danke Didée!
    Mein Script sieht nun so aus ... hab noch ein bischen rumgespielt.
    -----------------------------------------------------------------------------
    Import("C:\Programme\AviSynth 2.5\plugins\TemporalDegrain.avs")
    Import("C:\Programme\AviSynth 2.5\plugins\vhssharp.avs")
    Import("C:\Programme\AviSynth 2.5\plugins\DeHalo_alpha.avs")
    LoadPlugin("C:\Programme\AviSynth 2.5\plugins\tdeint.dll")
    LoadPlugin("C:\Programme\AviSynth 2.5\plugins\nnedi.dll")
    LoadPlugin("C:\Programme\AviSynth 2.5\plugins\ChromaShift.dll")
    LoadPlugin("C:\Programme\AviSynth 2.5\plugins\AGC.dll")
    LoadPlugin("C:\Programme\AviSynth 2.5\plugins\GuavaComb.dll")

    AVISource("K:\VIDEO\11-07-95 Basdorf\Capture_20070730-015040.avi")
    SetMemorymax(768)
    edi = NNEDI(field=-2)
    tdeint(mode=1, edeint=edi)
    ChromaShift(C=2,L=-3)
    HDRAGC()
    Crop(16,16,-16,-16)
    ConvertToYV12()
    DeHalo_alpha()
    TemporalDegrain()
    vhssharp(4)
    AddBorders(16,16,16,16)
    SeparateFields().SelectEvery(4,0,3).Weave()
    --------------------------------------------------------------------------
    Habe zusätzlich noch DeHalo mit reingenommen, da im Videobild leichte helle Ränder um die Konturen sichtbar waren.
    Weiter sieht durch die AGC.dll sieht das Bild jetzt etwas besser ausgeleuchteter aus, allerdings ist nun auch ein minimales Chroma Noise (diese typischen VHS-Farbflecken rot/blau/gelb) zu erkennen. Habe schon etwas gegoogled und bin über das Plugin GuavaComb gestolpert, allerdings bewirkt das irgendwie überhaupt nichts. Gibt´s dafür irgendwie noch Abhilfe?

    Ansonsten wüßte ich jetzt auch nichts mehr weiter ....

    Danke & Gruß Danny :)

  • Hier jetzt nochmal ein kleines Update meines Scripts.
    ------------------------------------------------------------------------------
    Import("C:\Programme\AviSynth 2.5\plugins\TemporalDegrain.avs")
    Import("C:\Programme\AviSynth 2.5\plugins\vhssharp.avs")
    Import("C:\Programme\AviSynth 2.5\plugins\DeHalo_alpha.avs")
    LoadPlugin("C:\Programme\AviSynth 2.5\plugins\tdeint.dll")
    LoadPlugin("C:\Programme\AviSynth 2.5\plugins\nnedi.dll")
    LoadPlugin("C:\Programme\AviSynth 2.5\plugins\ChromaShift.dll")
    LoadPlugin("C:\Programme\AviSynth 2.5\plugins\cnr2.dll")

    AVISource("K:\VIDEO\11-07-95 Basdorf\Capture_20070730-014131.avi")
    SetMemorymax(768)
    Trim(520,11672)
    edi = NNEDI(field=-2)
    tdeint(mode=1, edeint=edi)
    Crop(16,16,-16,-16)
    Tweak(hue=0.0,sat=0.9,bright=8.0,cont=1.00)
    ChromaShift(C=2,L=-3)
    cnr2()
    ConvertToYV12()
    TemporalDegrain()
    DeHalo_alpha()
    vhssharp(5)
    AddBorders(16,16,16,16)
    SeparateFields().SelectEvery(4,0,3).Weave()
    ---------------------------------------------------------------------------
    Die AGC.dll hab ich wieder rausgenommen. Zwar hat sie das Video gut "ausgeleuchtet", leider aber das Chroma Noise etwas sehr begünstigt. Stattdessen hab ich das Video über Tweak einen Tick heller gemacht und den CNR2-Filter eingesetzt, um wenigstens ein bischen das typische VHS-Chroma Noise zu filtern.

    Den CNR2 habe ich auf default gelassen, da ich mich hier mit den einzelnen Parametern nicht auskenne.

    Auch wollte ich den gesamten Rot-Anteil im Video ein wenig verringern, da ich einige Artefakte ausmachen konnte (gelber Vorhang im Video wies stellenweise leichte rote Hintergrundflecke auf). Über RGBAdjust war es zwecks Farbraum nicht möglich. Vielleicht hat ja noch jemand eine Lösung für den YUY2-Farbraum, die nicht zu kompliziert ist? Ich wollte die Farbveränderung gern vor dem "ConvertToYV12" durchführen.

    VHSSharp habe ich jetzt auf 5, anstatt auf 4 gesetzt, weil ich nicht genau weiß, inwieweit die zusätzliche Filterung mit CNR2 hier nochmals die Schärfe nimmt?

    Wäre super, wenn noch ein paar Anregungen von euch kämen ... :)
    Wenn das Script dann fertig ist, stell ich es auch gern hier rein ... vielleicht hilft es ja dem einen oder anderen Neueinsteiger, nicht?

    Danke & Gruß Danny

  • Hey danke @ sidewinder:

    Ich hatte gestern auch noch diese, leider verlustbehaftete Möglichkeit ausprobiert.
    -----------------------------------------------------------------------------
    LoadVirtualDubPlugin ("C:\Programme\AviSynth 2.5\plugins\VDubFilter\Rgb.vdf", "RGB")

    ConvertToRGB32()
    Rgb (-5, 0, -2)
    ConvertBackToYUY2()
    -----------------------------------------------------------------------------
    Naja, hatte sich ja leider niemand mehr auf mein Script hin gemeldet. Daher der Spagat ...:cool:

    Ich werd aber mal gleich Deine Vorschläge antesten; vielleicht spare ich mir da die Umkonvertierung des Farbraums.

    Im Übrigen suche ich auch noch ne Möglichkeit, das Script hinsichtlich auf die Geschwindigkeit schlußendlich zu optimieren (~0.26 - 0.28 fps) ... is halt nicht gerade der "Überflieger".

    Danke & Gruß Danny :)

Jetzt mitmachen!

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