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
+ Reply to Thread
Results 1 to 27 of 27
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.
Sure, here is what I'm talking about.
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.
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 11:05.
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.
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:
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
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!
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.
Last edited by jagabo; 10th Dec 2019 at 18:14.
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 18:42.
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 19:52.
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.
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
Last edited by killerteengohan; 10th Dec 2019 at 19:31.
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().
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 21:35.
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.
Thanks, I'll try them out.
Last edited by killerteengohan; 11th Dec 2019 at 03:36.
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()
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 02:33.
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)
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 03:35.
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:
[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 07:26.
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.
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.
Thanks! I had to specify what source= to get it to work, but it seems to be working for me.
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).
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?
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.
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.