VideoHelp Forum

+ Reply to Thread
Results 1 to 18 of 18
Thread
  1. Captures & Restoration lollo's Avatar
    Join Date
    Jul 2018
    Location
    Italy
    Search Comp PM
    I have an analog capture where the frame and field patterns is weird: a mixed of interlaced frames and progressive frames that I know how to manage, but then blends at (even) field level.

    Click image for larger version

Name:	img.png
Views:	79
Size:	1.71 MB
ID:	67098

    Any idea how to deal with the last?
    Image Attached Files
    Quote Quote  
  2. Try
    Code:
    yadifmod2(mode=1,order=1)
    srestore(frate=25/1.000)
    Quote Quote  
  3. There nothing unusual about that at all. It's a standard field blended NTSC to PAL conversion. As Sharc points out, use a smart bob followed by SRestore. I think the frame rate should be 23.976 though.
    Quote Quote  
  4. Captures & Restoration lollo's Avatar
    Join Date
    Jul 2018
    Location
    Italy
    Search Comp PM
    Thanks to both, I will try what you suggest
    Quote Quote  
  5. Code:
    LWLibavVideoSource("spots_beg_ufo_sIII1c_amtv_v2_cut.avi") 
    AssumeTFF()
    QTGMC()
    SRestore()
    Image Attached Files
    Quote Quote  
  6. @jagabo: which QTGMC and sRestore are you using?
    When I use:
    Code:
    # loading source: C:\Users\Selur\Desktop\spots_beg_ufo_sIII1c_amtv_v2_cut.avi
    LWLibavVideoSource("C:\Users\Selur\Desktop\SPOTS_~1.AVI")
    AssumeTFF()
    QTGMC()
    srestore()
    return last
    I get different results than your clip, mine still got ghosting.
    I suspect that something is wrong with my QTGMC or sRestore version.
    (probably QTGMC)
    (I attached the versions of the script that I used here.)

    Cu Selur
    Image Attached Files
    Last edited by Selur; 6th Oct 2022 at 10:16.
    users currently on my ignore list: deadrats, Stears555
    Quote Quote  
  7. Captures & Restoration lollo's Avatar
    Join Date
    Jul 2018
    Location
    Italy
    Search Comp PM
    I get different results than your clip, mine still got ghosting.
    Same for me, using QTGMC v3.364 and srestore v2.797 I still have ghosting.


    Edit: adding images

    my QTGMC+Srestore version, now also odd field has blending
    Click image for larger version

Name:	srestored.png
Views:	21
Size:	1.69 MB
ID:	67109

    jagabo QTGMC+Srestore version
    Click image for larger version

Name:	srestored_jagabo.png
Views:	22
Size:	1.12 MB
ID:	67110
    Last edited by lollo; 6th Oct 2022 at 11:21.
    Quote Quote  
  8. I have QTGMC v3.375 and Srestore v2.796. But I tried using the versions Selur uploaded and got the same result as my earlier upload.

    Keep in mind that SRestore may take a while to lock into the clear/blend pattern. If you just seek around in an editor it may not give clean results. Seek about 30 frames back and step forward frame by frame until you get to the frame you want to check.
    Quote Quote  
  9. QTGMC produced 2 or 3 back/forth jerks and few residual ghosts. That's why i suggested yadifmod2 as the bobber, which did solve the issue here. Don't know why yadifmod2 behaved better.
    My QTGMC is 3.382s and SRestore is 2.795.
    Quote Quote  
  10. Originally Posted by Sharc View Post
    QTGMC produced 2 or 3 back/forth jerks and few residual ghosts. That's why i suggested yadifmod2 as the bobber, which did solve the issue here. Don't know why yadifmod2 behaved better.
    My QTGMC is 3.382s and SRestore is 2.795.
    Did you set the field order before calling QTGMC? AssumeTFF().
    Quote Quote  
  11. Originally Posted by jagabo View Post
    Originally Posted by Sharc View Post
    QTGMC produced 2 or 3 back/forth jerks and few residual ghosts. That's why i suggested yadifmod2 as the bobber, which did solve the issue here. Don't know why yadifmod2 behaved better.
    My QTGMC is 3.382s and SRestore is 2.795.
    Did you set the field order before calling QTGMC? AssumeTFF().
    Worse even. I still had AssumeBFF() in the script from a leftover. My bad.
    It's ok now with AssumeTFF().
    I don't think SRestore can completely and perfectly remove the ghosts, but it's as good as it can get.
    Last edited by Sharc; 6th Oct 2022 at 14:18.
    Quote Quote  
  12. Keep in mind that SRestore may take a while to lock into the clear/blend pattern. If you just seek around in an editor it may not give clean results. Seek about 30 frames back and step forward frame by frame until you get to the frame you want to check.
    okay, that did it for me in Avisynth.
    users currently on my ignore list: deadrats, Stears555
    Quote Quote  
  13. Captures & Restoration lollo's Avatar
    Join Date
    Jul 2018
    Location
    Italy
    Search Comp PM
    okay, that did it for me in Avisynth.
    That did it for me as well. Once the output of the AviSynth script is fully created through VirtualDub, it is ok.

    Thanks jagabo for the hint, the temporary visualization of the script with VirtualDub is not accurate. A good lesson for the future.

    Image
    [Attachment 67114 - Click to enlarge]
    Quote Quote  
  14. This same hint applies to quite a few other AVISynth filters.

    It gets even more complicated if you use any sort of AVISynth multi-threading (different versions of AVISynth do this differently). In some cases I cannot do any seeking and have to disable all multi-threading in order to test the scripts. Then, the only way some scripts will work correctly is if they are started at frame 0, and then only go forward from that point.
    Quote Quote  
  15. Captures & Restoration lollo's Avatar
    Join Date
    Jul 2018
    Location
    Italy
    Search Comp PM
    This same hint applies to quite a few other AVISynth filters.
    Thanks John. Yes, I experienced that, for example, a temporal denoiser with high temporal radius (i.e. 12) needs seeking through many frames to show its results while testing a script. I did not play attention to Srestore behaviour, then my mistake.

    if you use any sort of AVISynth multi-threading
    I never did and I will never do
    Quote Quote  
  16. Hmm,... seems like adding a
    Preroll(Int(last.FrameRate()))
    behind the sRestore call also seems to fix the issue.
    users currently on my ignore list: deadrats, Stears555
    Quote Quote  
  17. Originally Posted by Selur View Post
    Hmm,... seems like adding a
    Preroll(Int(last.FrameRate()))
    behind the sRestore call also seems to fix the issue.
    Nice find. I didn't know there was a Preroll filter built into AviSynth+ now. In the past I've used TIVTC's RequestLinear() filter for that.
    Quote Quote  
  18. iirc. Preroll was added with Avisynth 2.6 even before Avisynth+ (but I could be wrong )
    users currently on my ignore list: deadrats, Stears555
    Quote Quote  



Similar Threads