VideoHelp Forum

Our website is made possible by displaying online advertisements to our visitors. Consider supporting us by disable your adblocker or try DVDFab Passkey and copy Blu-ray and DVDs! :)
+ Reply to Thread
Results 1 to 6 of 6
Thread
  1. Hi there,

    I'm dealing with an NTSC DVD of a film shot in a PAL country, using avisynth. All the frames are blended. I tried Yadif(order=-1, mode=1) srestore() which does bring it down to 25FPS, but there's frame skipping and some ghosting. I've tried order=1 in yadif but it doesn't help.

    I'd like at least to get rid of the interlacing and the frame skipping; ideally, the ghosting should go, too

    Here are two examples. The "vanilla" doesn't have any treatment done to it, and the "yadif srestore" one has the lines above.

    Thanks!

    Note: I also tried tried tfm()TDecimate() just in case, to bring it to 23.976, but I get the same problems.
    Image Attached Files
    Quote Quote  
  2. Given you sample is interlaced video but overcompressed in progressive mode:

    Code:
    AssumeTFF()
    Yadif(mode=1) # or better: QTGMC()
    SRestore(frate=25)
    worked pretty well here. QTGMC version attached.
    Image Attached Files
    Quote Quote  
  3. Thanks a bunch! Yes, that's much better. Still a little bit of ghosting, but nothing too terrible.

    I don't really understand what AssumeTFF() does, though. The avisynth page is a bit cryptic to me:

    AssumeTFF and AssumeBFF let you tell AviSynth what you believe the field order a clip has.

    They do not change the actual field order, just the internal state flags in AviSynth relating to the source clip used.
    Could you maybe explain it a bit better? I'd like to understand what's going on Thanks in advance.
    Last edited by bruno321; 6th Oct 2018 at 03:47.
    Quote Quote  
  4. Put on your bobber alone. Yadif(Mode=1), QTGMC, whatever. Find a place with steady movement and play it. I use VDub and the right-arrow key for these things. If it plays smoothly, you're okay and can put on SRestore. If it plays with a herky-jerky back-and-forth motion, the field order is incorrect and then you (usually) put on AssumeTFF (Assume Top Field First) before the bobber. Test again and then put on SRestore.

    The field order has to be correct or the unblending will fail. As you discovered. And just because you need AssumeTFF for the sample doesn't necessarily mean you need it for the complete video. In cutting it you might have reversed the field order. Always test with the bobber alone first.
    Quote Quote  
  5. Originally Posted by bruno321 View Post
    I don't really understand what AssumeTFF() does, though.
    Each frame of interlaced video contains two half pictures, called fields. One field comprises the even numbered scan lines (0, 2, 4... 478), the other the odd numbered scan lines (1, 3, 5... 479). They are intended to be seen separately and sequentially. The field order determines which of the two fields is seen first. If the field order is set wrong you get fast jerky playback because the fields are show out of order, two steps forward, one step back, repeated at 60 fields per second. With the fields (frames after Yadif(mode=1) or QTGMC()) out of order SRestore doesn't work properly.
    Quote Quote  
  6. For determining field order I always use this:

    AssumeTFF
    Separatefields()

    Step through the resulting video, field-by-field. If the motion looks normal, the video is top field first. However, if the motion goes backwards and forwards ("two steps forward, one step back"), then field order is BFF. The other suggestions will probably work as well, but I've been doing it this way for a long time and feel that it is really hard for me to screw this up (which I seem to do a lot).
    Quote Quote  



Similar Threads