VideoHelp Forum
+ Reply to Thread
Results 1 to 15 of 15
Thread
  1. I have a source that appears interlaced. TIVTC/TFM is not getting the horizontal lines very well, and all of my media players play the .m2ts file back at 60fps, so I want to try to deinterlace it to 60fps.

    QTGMC is way too slow on this 1080p video, so that is not an option for me. It's okay for SD video but 1080p HD it's a problem for me. It's an annoyance trying to get the script to load in a previewer, or into the encoder because it takes so long to load even 1 frame when using QTGMC. It would easily take over a month to finish if I ran it with QTGMC.

    What is a good alternative filter to deinterlace this to 60fps with avisynth?
    Quote Quote  
  2. https://github.com/HomeOfVapourSynthEvolution/havsfunc/blob/master/havsfunc.py#L1507
    you can just use ultra fast setting, that will use Bwdif deinterlace
    Quote Quote  
  3. Or just use bwdif directly. Given that you're usually dealing with animated material it's not likely your source is really 60 fps. I suspect it's a PAL/NTSC conversion. Maybe you're planning an SRestore() after bobbing? A sample would help, as usual.
    Last edited by jagabo; 11th Jan 2023 at 23:19.
    Quote Quote  
  4. Originally Posted by jagabo View Post
    A sample would help, as usual.
    Here is the sample.
    https://mega.nz/file/QogDwR7C#jtJMdHaFc_L3URfJtEodeOWMyvGQlWMPJAp9blPXyio

    It's the last 30 seconds when the text is scrolling that's giving me the most trouble.

    tfm(order=1) is just not doing a very good job with it. Most of the other animation looks fine the majority of the time with it though.
    Quote Quote  
  5. Ah yes, the scrolling end credits are sometimes added as interlaced video. Since it's only the last part of the video you could field match the body of the video then QTGMC just the last 30 seconds.

    The whole video at 60p:
    Code:
    LWLibavVideoSource("00002 Sample.m2ts") 
    AssumeTFF()
    
    part1 = Trim(0,1739).TFM().TDecimate().ChangeFPS(60000, 1001)
    part2 = QTGMC()
    part1++part2
    prefetch(12)
    or this is much faster but still looks decent:

    Code:
    LWLibavVideoSource("00002 Sample.m2ts") 
    AssumeTFF()
    
    part1 = Trim(0,1739).TFM().TDecimate().ChangeFPS(60000, 1001)
    part2 = Trim(1740,0).BWDIF(field=-2).QTGMC(InputType=2)
    
    part1++part2
    
    prefetch(12)
    Or the whole video at 24p:
    Code:
    LWLibavVideoSource("00002 Sample.m2ts") 
    AssumeTFF()
    
    part1 = Trim(0,1739).TFM().TDecimate()
    part2 = Trim(1740,0).QTGMC().FrameRateConverter(24000, 1001)
    
    part1++part2
    prefetch(12)
    The use of QTGMC and FrameRateConverter is very slow but it looks pretty good.
    Quote Quote  
  6. I already had the idea to do tfm for the animation, and qtgmc for the text. You have helped me with VFR end credits like this before, but I cannot really use the QTGMC though as I stated. It's way too slow. That scrolling text comes after every 2-5 minute clip in the hour long video. That is not just ending credits or a one time thing.

    I know the QTGMC comes out and looks great, but last time I waited multiple weeks for just the VFR 2 minute ending credits to finish last time I did this to a 1080p source with QTGMC. I really do not want to wait that long again if I don't have to. This is going to be even more frames than that was when you add up all the on and off text scenes, so the time will be even longer.

    That's why I was fishing for recommended alternatives to QTGMC, because it's ridiculously slow for me when using on 1080p. It's even worse when other slow filters I wish to use are included.
    I figured problem solved if I just made it all 60fps like my media players play it back, but QTGMC is the only good way I know how to deinterlace to 60fps, and it's too slow to use for over an hour of footage.

    I do not have prefetch, or 64-bit avisynth+ to accelerate the process any.
    Last edited by killerteengohan; 13th Jan 2023 at 05:20.
    Quote Quote  
  7. Originally Posted by killerteengohan View Post
    I know the QTGMC comes out and looks great, but last time I waited multiple weeks for just the VFR 2 minute ending credits to finish last time I did this to a 1080p source with QTGMC.
    Two weeks to QTGMC two minutes of 1080i video? It only takes about 5 minutes to QTGMC() the last 30 seconds of the sample clip with 64 bit AviSynth+, single threaded (Core i9 9900K). With 8 threads it's down to less than a minute and a half. I also tried single threaded with 32 bit AviSynth+. It took less than 8 minutes.
    Quote Quote  
  8. Originally Posted by jagabo View Post
    Originally Posted by killerteengohan View Post
    I know the QTGMC comes out and looks great, but last time I waited multiple weeks for just the VFR 2 minute ending credits to finish last time I did this to a 1080p source with QTGMC.
    Two weeks to QTGMC two minutes of 1080i video? It only takes about 5 minutes to QTGMC() the last 30 seconds of the sample clip with 64 bit AviSynth+, single threaded (Core i9 9900K). With 8 threads it's down to less than a minute and a half. I also tried single threaded with 32 bit AviSynth+. It took less than 8 minutes.
    I'm not using fast QTGMC settings or the defaults, this is also a 10 year old computer with a multiple generations older processor than yours, and avisynth 2.6. Your QTGMC is probably also a more updated version for use in avisynth+ that's much better optimized. The one I have to use is version 3.32.

    Code:
    QTGMC(preset="slow", matchpreset="slow", matchpreset2="slow", FPSDivisor=2, sourcematch=3, tr1=2, tr2=1, NoiseTR=2, sharpness=0.1))
    
    source5 = last
    f3kdb(range=5, grainy=32, grainc=32, y=56, cb=56, cr=56)
    MergeLuma(last, source5, weight=0.4)
    MergeChroma(last, source5)
    mctemporaldenoise(sigma=1, sharp=false, radius=1, ecrad=1, AGstr=0.5, GFthr=1.00)
    MergeLuma(last, source5, weight=0.4)
    MergeChroma(last, source5)
    
    LimitedSharpenFaster(ss_x=1.00, ss_y=1.00, strength=3, overshoot=0, undershoot=0, soft=0, edgemode=0)
    That takes about 2-3 minutes just to load one frame for me when using on 1080p.
    Quote Quote  
  9. It's not just QTGMC, you have other filters like mctemporaldenoise on a 1080 video - that is a huge problem with x86 avs (or any x86 program) - you probably have memory access bottleneck - that makes it exponentially slower
    Quote Quote  
  10. Yes, once you run out of physical memory and start using virtual memory get a few orders of magnitude slowdown. Add more DRAM if you can.
    Quote Quote  
  11. This is faster than QTGMC and doesn't look too bad for the credits at 24p:

    Code:
    SeparateFields()
    SelectEven()
    Santiag(2,2)
    nnedi3(dh=true)
    FrameRateConverter(24000, 1001)
    Or you could FrameRateConvert() to 60p instead for smoother scrolling.
    Quote Quote  
  12. From what I can see normal Bob() do a perfect job here, why bother with QTGMC?
    Quote Quote  
  13. Originally Posted by poisondeathray View Post
    It's not just QTGMC, you have other filters like mctemporaldenoise on a 1080 video - that is a huge problem with x86 avs (or any x86 program) - you probably have memory access bottleneck - that makes it exponentially slower
    Even without that mcdenoise or any other filter being used its still super slow for me. QTGMC just doesn't go well with 1080p on this computer even if it's the only thing in the script.

    That mctemporaldenoise only takes about 6-12 seconds to load a preview frame when I hit refresh preview button. I typically get about 4-7 FPS encoding when using that filter on 1080p video. I use it quite a lot. It is slow, but its not devastatingly slow and is very acceptable. The QTGMC takes minutes however and goes about 0.33 fps or lower.

    There may very well be a memory bottleneck with mctemporaldenoise. It's almost always at a constant 2 GB of RAM in encoder, [I believe that is the limit if not using 64-bit] but the CPU is like 6-12%.
    That is why I run multiple workers/encoders when doing multiple episodes if I am using it. I typically run 4-5 separate things at the same time to use up more of my CPU and RAM, because only one barely uses any of my CPU, or 32GB of RAM.
    Last edited by killerteengohan; 14th Jan 2023 at 18:46.
    Quote Quote  
  14. Originally Posted by jagabo View Post
    This is faster than QTGMC and doesn't look too bad for the credits at 24p:

    Code:
    SeparateFields()
    SelectEven()
    Santiag(2,2)
    nnedi3(dh=true)
    FrameRateConverter(24000, 1001)
    Or you could FrameRateConvert() to 60p instead for smoother scrolling.

    I was just going to use santiag on those text frames to reduce visibility of the horizontal lines, but this works even better on the text and looks great!

    I will use TFM for all the animation, and this for the text scrolling scenes.

    Thanks!
    Quote Quote  



Similar Threads

Visit our sponsor! Try DVDFab and backup Blu-rays!