Frage zu Peachsmoother() und DNR2()

  • @ arlsair

    Ich hatte mal vor einiger Zeit 2 Scripte für Captures zusammengestellt und mir wurde eben berichtet, dass eben der Peachsmoother Macken hätte. (Schwimmen von Kanten bei langsamen Bewegungen)
    Aber nicht in Zusammenhang mit diesen Scripten, sondern generell.
    Ich konnte dies nicht feststellen. Daher eben diese Frage, welche Erfahrungen IHR hier gemacht habt.

    Diese Scripte sind für Noisy TvCaptures gedacht.

    Avisource progressive capture:

    Code
    Avisource("Your Avisourec Here.avi")#ConverttoYUY2() # Only needed when using xvid/Dvix YV12 based capturesundot() Limiter() Bicubicresize(480,576) # calculate using FitCD!!TemporalSoften(1,5,8,5,2).peachsmoother().Unfilter(60,0).Undot()Limiter()# AddBorders(xx, xx, xx, xx) # calculate using FitCD!!Letterbox(16,16,16,16)DCTFilter(1,1,1,1,1,1,0.5,0)

    Avisource interlaced Capture:

  • Hallo Leute,

    ich habe in den letzten Tagen und Wochen die verschiedensten Filter ausprobiert. Hier sind meine Favoriten und Kommentare...

    Die folgenden drei arbeiten sehr gut als temporale Filter:

    Peachsmother:
    Dank Selbstkonfiguration ungemein leistungsfähig und leicht zu handhaben. Reagiert aber etwas träge auf schwankende Rauschanteile und zieht bei langsamen Bewegungen von Flächen mit scharfen Kanten leichte Schlieren bzw. bei starker Rauschunterdrückung Artefakte. Killt ansonsten starkes und schwaches Rauschen fast vollständig ohne weniger rauschende Szenen weichzuzeichnen oder Bewegungen verschwimmen zu lassen oder zu zerhacken. Unterstützt leider nur das YUY2-Format.

    Bsp:
    PeachSmoother(NoiseReduction=45,Stability=30,DoSpatial=TRUE,Spatial=30,Readout=false)


    FluxSmooth:
    beseitigt sehr effektiv Rauschen ohne grosse Seiteneffekte bei bewegten Szenen.

    Bsp: FluxSmooth(4,-1)

    DNR2:
    im "dnr2"-Mode ein sehr leistungsfähiger Rauschkiller mit wenig Artefakten bei ruhigen Szenen. Ist sehr "scharf", zerhackt aber Bewegungen und daher i.A. nicht so gut wie FluxSmooth.

    Gut als schwachkonfigurierter 2. temporaler Filter hinter Fluxsmooth bei hohem Rauschanteil zu gebrauchen.
    Bsp: dnr2(4,2,4,2,4,2,"dnr2")

    Spatiale Filter:

    deen:
    im "a3d"-Mode ein sehr effektiver Filter mit wenig Seiteneffekten.

    deen("a3d",rad=2,thrY=2,thrUV=4,min=0.25,tthY=2,tthUV=4,scd=4)

    Undot:
    killt herausstechende einzelne Pixel. Sollte nur hinter einem (temporalen oder ganz schwachen spatialen) Filter eingesetzt werden, da er sonst das Bild minimal verfremdet. Ist extrem schnell und verbessert für einen derart einfachen Filter verblüffend die Komprimierbarkeit bei nur wenig Abstrichen in der Qualität.

    Vaguedenoiser:
    verringert den Detaillevel, analog zum Quantisizer-Setting in Codecs. Kein sehr effektiver Rauschfilter, kann aber gut jpeg-ähnliche Artefakte beseitigen.

    Bsp:
    VagueDenoiser(threshold=0.8,method=1,nsteps=7,chroma=true)


    mfg, Heini011.

  • Hi,

    es scheint, als wenn bis heute DustV5 das qualitativ beste Filterset ist, wenn Geschwindigkeit kein Thema ist.

    Hier ist mein Skript mit der besten temporalen+spatialen Filterkombination für ein Video, das Szenen mit mittlerem und solche mit hohem Rauschanteil enthält. Die Parameter und die Reihenfolge der Filter hatte ich durch Austesten aller sinnvoller Kombinationen mit dem mir vorliegenden Fimmaterial optimiert.


    --
    function hq_filter(clip c) {
    c=Unfilter(c,5,5)
    c=FaeryDust(c,8)
    c=ConvertToYV12(c)
    c=FluxSmooth(c,3,-1)
    c=deen(c,"a3d",rad=2,thrY=2,thrUV=4,min=0.25,tthY=2,tthUV=4,scd=4)
    c=BicubicResize(c,772,424,0.0,0.6).crop(2,12,-2,-10)
    return c
    }

    function lq_filter(clip c) {
    c=Unfilter(c,5,5)
    c=PixieDust(c,6)
    c=UnDot(c)
    c=ConvertToYV12(c)
    c=FluxSmooth(c,4,-1)
    c=deen(c,"a3d",rad=2,thrY=4,thrUV=7,min=0.25,tthY=4,tthUV=7,scd=6)
    c=MSharpen(c,threshold=7,strength=20,mask=false,highq=true)
    c=BicubicResize(c,772,424,0.0,0.5).crop(2,12,-2,-10)
    return c
    }



    mpeg2source("video.d2v",cpu=4)

    BicubicResize(880,640,0,0.6)

    ConvertToYUY2()

    hq=hq_filter()
    lq=lq_filter()

    # trim(b,e) -> trim( b-6 , e+2 ).filter().trim( 6 , -(e-b+1) )
    # trim(u,v).filter().trim( 6 , -(v-u-7) )

    hq.trim(0,9655).trim(0,9653) + \
    lq.trim(9648,10244).trim(6,-589) + \
    hq.trim(10237,10609).trim(6,-365) + \
    lq.trim(10602,11474).trim(6,-865) + \
    ....

    ---


    mfg, Heini011

  • Zitat von Heini011

    mpeg2source("video.d2v",cpu=4)

    BicubicResize(880,640,0,0.6)

    Hi, sag mal brauch ich diese Zeile auch? Ich benutzt LanczosResize
    LanczosResize(672,544,6,0,672,552)
    kann ich den weiter benutzen oder wie sollte ich den umrechnen?

    und dann verstehe ich die trimumrechnung nicht wirklich... ich habe die einen einfachen trim:
    Trim(101,159191) ++ Trim(160320,210380)
    Wie kann ich den umrechnenlassen?

    Ach ja, und welche plugins sollte ich für dieses script laden?

    Sorry für die vielen fragen, aber ich möchte das script schon gerne ausprobieren, nur leider weiß ich nicht wie ich das hinkriegen soll...

    ---

Jetzt mitmachen!

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