VideoHelp Forum
+ Reply to Thread
Results 1 to 27 of 27
Thread
  1. I have a source I am trying to get deinterlaced and no matter how I adjust the settings, I still see leftover artifacts in the lines. They are tiny, but they are there and there is a lot of them.

    I am currently using MeGui's suggestion of tfm(order=0).tdecimate(mode=1,hybrid=0) (All I adjusted was the hybrid from 3 to 0)

    I tried changing the order, mode, and hybrid and they still seem to be leftover in my finished output. Is there some kind of special setting or pulldown that I don't know about here?


    A 33 second demuxed video sample can be found here

    https://mega.nz/#!x9AyyAhI!EwjwrtS-_fab1kxvBz76rgHcFqH_90PRPPO_ivc4FS8
    Quote Quote  
  2. I saw lots of dot crawl and DCT ringing but no residual combing. Maybe you could post an image showing what you're looking to fix.
    Quote Quote  
  3. Sure, here is what I'm talking about.

    https://slow.pics/c/Aib4Ukdk
    https://slow.pics/c/Tcj4RhO4
    https://slow.pics/c/WZ6rQHlV
    https://slow.pics/c/xo8u0sC1


    That first and second one shows it the best. Those are all over the place if you look hard enough for them. Not only on lines, but in random spots everywhere on clothing and other places.
    I tried maa antialiaser and it helps the lines a little in some places, but it does not remove them, especially from the clothing areas when not on lines.


    Code:
    DGDecode_mpeg2source("C:\Users\???\Desktop\Encoding\The Pirates Of Dark Water\Episode 1\VTS_02_1.d2v", info=3)
    checkmate(thr=9, max=9, tthr2=0)
    LoadPlugin("C:\Program Files (x86)\MeGui\tools\avisynth_plugin\ColorMatrix.dll")
    ColorMatrix(hints=true, interlaced=true, threads=0)
    bifrost()
    LoadPlugin("C:\Program Files (x86)\MeGui\tools\avisynth_plugin\TIVTC.dll")
    tfm(order=0).tdecimate(mode=1,hybrid=0)
    crop( 8, 2, -8, 0)
    LanczosResize(640,480) # Lanczos (Sharp)
    Last edited by killerteengohan; 10th Dec 2019 at 12:05.
    Quote Quote  
  4. They seem to be a side effect of using checkmate or tcomb to remove the dot crawl. I don't see them when I remove that filter. Unfortunately, I want to remove the dot crawl, so removing that is not an option.
    Quote Quote  
  5. Those artifacts aren't residual combing. They are noise from DCT ringing, and different quantization levels in the two fields -- a result of overcompression. Maybe something along the lines of:

    Code:
    CheckMate(thr=10, max=20, tthr2=0)
    vinverse()
    Santiag()
    MergeChroma(aWarpSharp2(depth=5), aWarpSharp2(depth=20))
    dfttest(tbsize=1) # or some other light spacial/temporal noise reducer
    Quote Quote  
  6. It has nothing to do with the deinterlacing? They don't seem to appear if QTGMC deinterlacing is used instead of TIVTC.

    Either way, Santiag cleans them up nicely. I think I will choose that for it's fix. Thanks!
    Quote Quote  
  7. Originally Posted by killerteengohan View Post
    It has nothing to do with the deinterlacing? They don't seem to appear if QTGMC deinterlacing is used instead of TIVTC.

    Either way, Santiag cleans them up nicely. I think I will choose that for it's fix. Thanks!
    Two problems with what you are saying:

    1. TIVTC is NOT deinterlacing. It is a totally different thing: it removes repeated fields that are added, typically to make 24 fps film play at (nominally) 30 fps.

    2. QTGMC is more than a deinterlacer and also includes a noise reduction module. Therefore, it will clean some types of noise, independent of anything it may be doing to deinterlace a source.
    Quote Quote  
  8. Originally Posted by killerteengohan View Post
    It has nothing to do with the deinterlacing?
    I didn't notice that you could click on the images to see the circled versions. (Also, I think the first image was different before.) The circled artifacts are horizontal time base errors, usually from VHS tapes (I didn't see any of that in your video clip). If you're capturing these your self you should get a horizontal time base corrector. Either an expensive S-VHS deck with one or use an old Panasonic ES10 or ES15 DVD recorder in pass through mode. Otherwise I would use vinverse() to blur them away. That will also reduce the inter-line stripes that come from different levels in the two fields.
    Last edited by jagabo; 10th Dec 2019 at 19:14.
    Quote Quote  
  9. Originally Posted by jagabo View Post
    Originally Posted by killerteengohan View Post
    It has nothing to do with the deinterlacing?
    I didn't notice that you could click on the images to see the circled versions. (Also, I think the first image was different before.) The circled artifacts are horizontal time base errors, usually from VHS tapes (I didn't see any of that in your video clip). If you're capturing these your self you should get a horizontal time base corrector. Either an expensive S-VHS deck with one or use an old Panasonic ES10 or ES15 DVD recorder in pass through mode. Otherwise I would use vinverse() to blur them away. That will also reduce the inter-line stripes that come from different levels in the two fields.
    Yeah, its an image comparison site. You can either click on the image or use the arrow keys on the keyboard to flip back and forth through the compared images. (I'm not surprised you didnt see it in the clip. It wouldn't be in the untouched video clip, until you apply the script I was using and pasted in my next post. They don't appear until an anti dot crawl filter is being used)

    The santiag you mentioned earlier however got rid of all of it, and it turned out nice. Luckily, I did not have to blur them out and could keep the image sharper with it.
    Last edited by killerteengohan; 10th Dec 2019 at 19:42.
    Quote Quote  
  10. Something I just now noticed as well now that I have moved on with a finished script. I'm not sure why they did this, but the first disc was 29.976fps. Once I got to disc 2 they were 23.976 fps progressive on the disc. Those artifacts I mentioned are in it as well, even without the dot crawl filter. Luckily, santiag still cleans these perfectly as well, but there is a problem this time. They are so large and leftover, that it simply smears them and it looks like ghosting.

    I don't see that very often where one disc is progressive and the rest are interlaced.
    Last edited by killerteengohan; 10th Dec 2019 at 20:52.
    Quote Quote  
  11. Please have a look at this new uploaded sample Jagabo. This is a problem I'm not sure how to handle. It looks like the disc maker deinterlaced the video or something into progressive and left combing artifacts in it or did it improperly.

    https://forum.videohelp.com/images/imgfiles/PhNbLyi.png

    Santiag is somewhat helping, but its not cleaning things now and its causing what looks like ghosting when applied in this. This being progressive, is also making the dot crawl harder to remove since I cant apply it before TIVTC because there is none to be used.

    Here is the new sample clip

    https://mega.nz/#!w9wF1AJZ!Gu3CM6iOKFecw26nTVdufK9-ArW07drya4GA4G1O0VA
    Last edited by killerteengohan; 10th Dec 2019 at 20:31.
    Quote Quote  
  12. The video contains some interlaced frames but it's encoded progressive. Even if you IVTC you will be left with blended chroma (progressive encoding of interlaced frames ends blends the chroma of the two fields together). It would be pretty hard to remove that blending. In some cases you could use chroma from the frame before or after. But for some there is no matching unblended chroma.

    If you built an dg index in Force Film or Ignore mode just use TFM(). If you used Honor Pulldown Flags use TFM().TDecimate().
    Quote Quote  
  13. Yeah, I used honor pulldown flags. So just leave TFM and TDecimate blank?

    One out of the 5 episodes on that disc did get an interlaced detection in MeGui and it suggested this. tfm(order=-1).tdecimate(mode=1,hybrid=3)

    Would the blank one you suggest or the MeGui analyze suggestion be better? I know for a fact the hybrid=3 is going to add in ghosted/blended frames. I never used them with no parameter adjustments before like you suggested, so not sure what to expect if I use that.
    Last edited by killerteengohan; 10th Dec 2019 at 22:35.
    Quote Quote  
  14. I said TFM().TDecimate() just as shorthand. Use whatever arguments work best.

    I did see a few orphaned fields -- TFM(clip2=QTGMC(FPSDivisor=2)) might work better than just TFM(). Specifying the field order (1) may be best because the video is encoded progressive -- the decoder doesn't know those interlaced frames are TFF. And although the short clip has all soft pulldown there could be other parts with hard pulldown.

    I don't think there's any need to use hybrid=3 in TDecimate(). And yes, mode=1 may work best for animation.
    Quote Quote  
  15. Thanks, I'll try them out.
    Last edited by killerteengohan; 11th Dec 2019 at 04:36.
    Quote Quote  
  16. Wow, I never knew you could integrate and or use qtgmc inside of tfm like you suggested. Thats a nice thing to have learned.


    Here's the results of me trying all of them and watching the output video.


    Using nothing at all




    Using only santiag()




    Using Hybrid=3




    The nothing at all has the original artifacts.

    Using santiag reduces them, but they are still quite visible during playback. I tried to ignore them but couldn't. They are just too visible and appear frequently. I don't mind the smearing/blending it did to places like that guys hair, but I do mind the solid looking comb artifacts that are left over like on her eye and his arm.

    Using Hybrid=3 got rid of them nicely. I couldn't even tell those artifacts were ever there and santiag was not really needed. The only downside is this made many many frames have ghosting/blending where it was not before, and in places the artifacts did not even originally exist. It took good clean frames and blended or duplicated them. If it did not add in all this extra ghosting/blending, I would love this solution.

    Using the first suggestion of yours also cleaned them well like hybrid=3, but it removed several frames from the video and its jittery now. Somehow it's still the same length though.


    So this is a tough call which to go with. I would love the cleaning that hybrid=3 gave but not get its nasty side effect.

    I am going to see if QTGMC can maybe provide a better solution. I will let you know how that second suggestion of yours with the qtgmc inside the tfm works out. The preview I saw in the preview window looked very promising. It does indeed look like I get the cleaning of the hybrid=3 without all that ghosting side effect. Another bonus of your suggestion is the leftover aliasing that hybrid=3 had seems fixed as well.
    Thanks for all this time helping me!
    Last edited by killerteengohan; 11th Dec 2019 at 03:33.
    Quote Quote  
  17. I ended up trying this TFM(clip2=QTGMC(preset="slow", matchpreset="slow", matchpreset2="slow", FPSDivisor=2, sourcematch=3))

    Wow that clip=2 is a godsend. It not only worked great, but for some reason, it creates less motion artifacts, and smudges less lines between frames than simply using QTGMC on its own outside of TFM in the same exact way.

    Thanks for that one, this will be a huge help in the future. I wish I had known about this a couple years back.


    QTGMC on its own
    QTGMC(preset="slow", matchpreset="slow", matchpreset2="slow", fpsdivisor=2, sourcematch=3)




    QTGMC inside of TFM()
    TFM(clip2=QTGMC(preset="slow", matchpreset="slow", matchpreset2="slow", FPSDivisor=2, sourcematch=3))



    Easy flip comparison shot (That's a pretty big difference)

    https://slow.pics/c/iSKtQGTS


    I'm not sure why it does a better job with lines and artifacts, but I can't complain lol.

    I did however notice that QTGMC on its own cleans dot crawl better. When used inside of TFM, it does not seem to have any effect on the dot crawl. Thats interesting.
    Last edited by killerteengohan; 11th Dec 2019 at 04:35.
    Quote Quote  
  18. Clip2 is only used when TFM can't find a matching field to complete the frame (ie, orphaned fields). So it makes no difference on the majority of the frames of this video. For example, with the latest clip, if you use just TFM() (no other filtering) you'll see that frame 268 has an orphaned field:

    Image
    [Attachment 51060 - Click to enlarge]


    TMF() couldn't find a matching field so it crudely deinterlaced instead (simple bob in moving areas).
    Last edited by jagabo; 11th Dec 2019 at 08:26.
    Quote Quote  
  19. Well that explains quite a bit about the results I mentioned with dot crawl, the lines, and less motion artifacts. I was unaware that it was used that little.
    Quote Quote  
  20. Here I made clip2 all red so you could see exactly which pixels were taken from clip2:

    Image
    [Attachment 51071 - Click to enlarge]


    Most frames showed no red at all.
    Quote Quote  
  21. Oh, so it doesn't need to use the entire frame. I just uses certain pixels from the looks of it.

    How did you do that? I would like to be able to view it on all the episodes myself.
    Quote Quote  
  22. Originally Posted by killerteengohan View Post
    Oh, so it doesn't need to use the entire frame. I just uses certain pixels from the looks of it.
    Yes, only the parts where it detected comb artifacts.

    Originally Posted by killerteengohan View Post
    How did you do that? I would like to be able to view it on all the episodes myself.
    I just used an all red clip for clip2.

    Code:
    red = BlankClip(source, color=$ff0000)
    Quote Quote  
  23. Thanks! I had to specify what source= to get it to work, but it seems to be working for me.
    Quote Quote  
  24. I meant "source" symbolically -- whatever video you are going to TFM. BlankClip will create a clip with the same properties as that clip (frame size, frame rate, colorspace, etc.) but all red (or whatever color you indicate).
    Quote Quote  
  25. Do I have to worry about or look out for false positives? Will it use clip=2 when it was not necessary to do so?
    Quote Quote  
  26. Yes, but that's always a possible problem with TFM. Sometimes the post processor sees alternating thin horizontal lines as residual combing and tries to deinterlace them. You can turn off the post processor (pp=0 or 1) but then it will let combing through at orphaned fields. Or you can adjust the residual combing threshold (cthresh) to make it more or less likely to see combing.
    Quote Quote  
  27. Well so far on every episode I checked by watching 5-8 minutes straight each, clip2 has barely been used, and when it has been used its been quite accurate and or made it look much better so I guess I don't really have to worry all that much.

    Thanks for all that help and info. I learned quite a bit today.
    Quote Quote  



Similar Threads

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