PDA

View Full Version : separate fields /weave question


nuked
10th August 2003, 04:17
Hello. I'm not new at all to ivtc/force-film/deinterlacing issues and I think I understand them all better than average. Now I'm trying to play with the other option... the 50 or 60 fps route. In this area there are a few things I don't know, but I know enough to tell that at least half the stuff I read is wrong or at best not entirely correct, but kinda sorta works anyway. Anyway, I'm gonna start by trying to understand a couple of things before I just ask (How do you do blah?).

The first simple question bugging me which may be of little use anyway is why can I Separatefields() as many times as want and get shorter and shorter images, but afterwards I can only weave() once? I can think of several possible answers, but simce I have very little knowledge of the actual io or header structure of things avisyth I wont bother to start guessing. Particulary though I want to usderstand what things are really still fields and what things have become frames and when. Thanks.

stickboy
10th August 2003, 06:07
For each clip, Avisynth keeps track if it's frame-based or field-based. If it's frame-based, it means that the clip is either progressive or it's interlaced (both fields are visible in one frame).

If it's field-based, that means each frame represents a different field.

If you call SeparateFields() on a frame-based clip, you get a half-height clip with double the frames that's now field-based. If you call SeparateFields() on a field-based clip, nothing is supposed to happen. (This isn't what actually happens though. I think it's a bug.)

If you call Weave() on a field-based clip, you get back the original, frame-based clip. If you call Weave() on a frame-based clip, nothing happens.

Therefore, if you must call SeparateFields() and Weave() multiple times, the way you're supposed to do it is:
AVISource("foo.avi")
SeparateFields()
AssumeFrameBased() # this should be required
SeparateFields()

Weave()
AssumeFieldBased()
Weave()

See the documentation to AssumeFrameBased()/AssumeFieldBased(), SeparateFields(), and Weave() for more information.

nuked
10th August 2003, 08:29
I was about coming to the conclusion that it was a bug, but wasn't sure I didn't have everything upsidedown. I found the Info() command now which is helping alot with figuring out what everything is doing. Well I probably won't need to do that anyway, but just wanted to make sure I'm understanding how stuff works. Thanks.