Bobbing, ReInterlacing und Rauschfilter

  • Moin, sorry, falls der Thread Titel wenig aussagend ist, aber was anderes ist mir leider nicht eingefallen.

    Aber jetzt zum Thema. Stein des Anstoßes war dieser Thread vom FlaskMPEG-Board zur Frage, wie man ein Interlaced Video so bearbeiten kann, daß man einerseits Filter einsetzen kann, die progressives Material voraussetzen und am Ende wieder einen Interlaced Clip erhält.

    Mögliche Lösung:


    source = SegmentedDirectShowSource("g:\_temp\julius001.avi")
    \.Crop(0,2,-0,-2).ConvertToYUY2().GreyScale()

    Clip = Bob(Source,0,0.5)

    Top = SelectOdd(clip).separateFields().SelectOdd()

    Bottom = SelectEven(Clip).SeparateFields().SelectEven()

    Fertig = Interleave(Top,Bottom).Weave()

    return Fertig


    Als ich das fertige Script gesehen hatte, fiel mir auf, daß man hierbei z.B. bei TV Material sehr effektiv Rauschfilter einsetzen kann bevor man Deinterlacer einsetzt:


    source = SegmentedDirectShowSource("g:\_temp\julius001.avi").Crop(0,2,-0,-2).ConvertToYUY2().GreyScale()
    \.SeparateFields().DeleteFrame(0).Weave()

    Clip = Bob(Source,0,0.5)
    \.Cnr2()
    \.undot()
    \.peachsmoother(NoiseReduction=50,Stability=30)
    \.GuavaComb(Mode="PAL",Recall=78,MaxVariation=25,Activation=30)

    Top = SelectOdd(clip).separateFields().SelectOdd()

    Bottom = SelectEven(Clip).SeparateFields().SelectEven()

    Fertig = Interleave(Top,Bottom).Weave()
    \.KernelDeint(order=1,threshold=10,sharp=false,twoway=false,map=false,debug=false)
    \.Convolution3d(preset="movieLQ")
    \.Sharpen(0.05)

    return Fertig


    Und selbst wenn deinterlacing nicht notwendig ist, hatte ich den Eindruck, daß der Eisatz von Rauschfiltern wesentlich effektiver ist, als bei folgendem Aufbau:

    SegmentedDirectShowSource("g:\_temp\julius001.avi")

    killaudio()

    Crop(0,2,-0,-2)

    ConvertToYUY2()´

    KernelDeint(order=1,threshold=10,sharp=false,twoway=false,map=false,debug=false)

    Cnr2()

    undot()

    GuavaComb(Mode="PAL",Recall=75,MaxVariation=25,Activation=30)

    peachsmoother(NoiseReduction=30,Stability=20)

    Convolution3d(preset="movieLQ")

    Meine Frage jetzt:

    Bilde ich mir da nur was ein, oder kann es u.U. wirklich effektiver sein o.g. Umweg zu gehen? Ich bilde es mit zumindest ein, aber da vier Augen mehr sehen als zwei, und es hier jede Menge Argusaugen gibt,wäre ich dankbar für Tests und Meinungen.

    Danke schon mal.

  • 1)

    dieses reinterlacer:

    Code
    Top = SelectOdd(clip).separateFields().SelectOdd()Bottom = SelectEven(Clip).SeparateFields().SelectEven()Fertig = Interleave(Top,Bottom).Weave()

    besser durch

    Code
    separatefields().selectevery(4,1,2).weave

    oder

    Code
    separatefields().selectevery(4,0,3).weave

    zum reinterlacing ersetzten. ist uebersichtlicher und schneller.

    2) wenn man entrauschen will, ist sicherlich

    bob()
    entrauscher()
    reinterlacer()
    kernelbob()
    weiterefilter()
    reinterlacer()

    besser, als

    kernelbob()
    entrauscher()
    weiterefilter()
    reinterlacer()


    weil, der deinterlacer ja allergisch auf rauschen reagiert und letztenendes nur noch bobbt...
    allerdings muss man 2x bobben.
    1x mit dem stupid-bob und dann das 2. mal mit einem richtigen adaptiven bobber...

Jetzt mitmachen!

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