VideoHelp Forum
+ Reply to Thread
Results 1 to 3 of 3
Thread
  1. Member
    Join Date: Aug 2013
    Location: France
    Search Comp PM
    Hi,

    I've been reading the MVTools documentation recently, there's an example to apply the degrain filter on interlaced fields by separating them and apply the MDegrain2 function it them and Weave them together after :

    Code:
    function MDegrain2i2(clip source, int "overlap", int "dct")
    {
    overlap=default(overlap,0) # overlap value (0 to 4 for blksize=8)
    dct=default(dct,0) # use dct=1 for clip with light flicker
    fields=source.SeparateFields() # separate by fields
    super = fields.MSuper()
    backward_vec2 = super.MAnalyse(isb = true, delta = 2, overlap=overlap, dct=dct)
    forward_vec2 = super.MAnalyse(isb = false, delta = 2, overlap=overlap, dct=dct)
    backward_vec4 = super.MAnalyse(isb = true, delta = 4, overlap=overlap, dct=dct)
    forward_vec4 = super.MAnalyse(isb = false, delta = 4, overlap=overlap, dct=dct)
    fields.MDegrain2(super, backward_vec2,forward_vec2,backward_vec4,forward_vec4,thSAD=400)
    Weave()
    }
    Is it possible to use the same technique for an other filter ? For exemple
    Code:
    Function FixChromaBleeding2 (clip input)
    I tired to invoke the function this way : FixChromaBleeding2(fields) but avisyth throws me a syntax error.
    What am I doing wrong ?

    Thanks a lot ?
    Quote Quote  
  2. Member
    Join Date: Sep 2007
    Location: Canada
    Search Comp PM
    MDegrain2i2 - it's actually not the correct way to do it, because even and odd fields have a vertical offset .

    If FixChromaBleeding2 is intended for progressive footage, you should group even and odd fields, apply filter, then weave

    SeparateFields()
    ev=SelectEven().Filter1()
    od=SelectOdd().Filter1()
    Interleave(ev,od)
    Weave()

    Replace "Filter1()" with whatever progressive filter

    This way isn't quite perfect either, because you don't get temporal filtering accross 2 consecutive fields . The only way to do that is to use a good bobber first, then reinterlace . But bob deinterlacing has many drawbacks as well
    Quote Quote  
  3. Member
    Join Date: Dec 2005
    Location: Finland
    Search Comp PM
    If the material is something that will stay interlaced afterwards, I'd use Bob(0,1) and then weave the fields back after filtering. It's not quite perfect as far as the temporal alignment of the fields go, of course, but it will preserve the original fields quite well.

    If the filters used really require "progressive" material to work on then QTGMC() is probably the way to go instead.
    Quote Quote  



Similar Threads