Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion.

Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules.

 

Go Back   Doom9's Forum > Capturing and Editing Video > Avisynth Usage
Register FAQ Calendar Today's Posts Search

Reply
 
Thread Tools Search this Thread Display Modes
Old 30th December 2005, 21:00   #1  |  Link
Number6
Registered User
 
Join Date: May 2005
Location: UK
Posts: 6
Help with separatefields/weave etc.

Hi guys, hope you all had a nice Christmas.

I've read the guides/threads on processing interlaced/progressive material a thousand times but I still can't get my head round it. I've understand that you should use:

separatefields()
somefilter()
weave()

on spacial filters and:

separatefields()
even = SelectEven(last).somefilter()
odd = SelectOdd(last).somefilter()
Interleave(even, odd)
weave()

on temporal filters, but what I don't understand is whether you have to do this when the original material is progressive, interlaced or both. Can someone enlighten me please?

Also, with a line like:

even = SelectEven(last).somefilter()

how would I write it if I wanted to apply several filters, or one with too many parameters to fit on one line?

Thanks

John.
Number6 is offline   Reply With Quote
Old 31st December 2005, 01:29   #2  |  Link
stickboy
AviSynth Enthusiast
 
Join Date: Jul 2002
Location: California, U.S.
Posts: 1,267
It's for interlaced footage. The point of SeparateFields().SomeFilter().Weave() is to prevent spatial filters from blurring even/odd scanlines that corresponds to different points in time.

For temporal filters, you don't need to use SeparateFields/SelectEven/SelectOdd/Interleave/Weave at all; just apply the filter directly. The second section of code you cited is for spatial-temporal filters.
Quote:
with a line like:

even = SelectEven(last).somefilter()

how would I write it if I wanted to apply several filters, or one with too many parameters to fit on one line?
Code:
even = SelectEven(last).SomeFilter().SomeOtherFilter().YetAnotherFilter().Etc()
or
Code:
even = SelectEven(last).SomeFilter()
even = even.SomeOtherFilter()
even = even.YetAnotherFilter()
even = even.Etc()
or
Code:
function MyFilter(clip c)
{
    c
    SomeFilter()
    SomeOtherFilter()
    YetAnotherFilter()
    Etc()
    return last
}

even = SelectEven(last).MyFilter()
If you want to split up long lines, you also can use the line-continuation character ( \ ):
Code:
someClip = SomeFilter(a, b, c, d, e,
\                     f, g, h, i, j,
\                     k, l, m, n, o)
stickboy is offline   Reply With Quote
Old 31st December 2005, 02:01   #3  |  Link
Number6
Registered User
 
Join Date: May 2005
Location: UK
Posts: 6
Ahh... I see. Thanks a lot stickboy, I finally understand it now. It’s so much clearer when you can see specific examples like those you gave. The guides here are good but for some reason it just was clicking with me.

Cheers

John.
Number6 is offline   Reply With Quote
Old 1st January 2006, 14:34   #4  |  Link
trolltuning
Registered User
 
Join Date: Dec 2003
Posts: 215
Is there any way to put Stickboy's last post in a sticky or FAQ where everyone can find it easily? I think it's the first time I've seen all three methods neatly in one place.
trolltuning is offline   Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +1. The time now is 02:19.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.