VideoHelp Forum
+ Reply to Thread
Results 1 to 3 of 3
Thread
  1. 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. 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