04.09.2020, 16:56
Selur,
I think i miss spoke
In VIVTC i understood that TDeint is used as post-processor (something to get rid of the combed frames IVTC misses),
You recently added qtgmc and needi3 to VIVTC as a deinterlacer of residual combed frames.
Shijan has said that when using qtgmc and needi3 that there are jaggies on straight lines oriented diagonally. But not on the vivtc internal deinterlacer.
This has been mentioned before and people have suggested that TDeint is the culprit for miss catagorizing progressive frames as combed. And hence TDeintmod was created. As it will only send combed frames.
So what i gather you are saying is VIVTC does not call or use TDeint in any form or function. (i Also know qtgmc likewise doesn’t use TDeint)
Because if VIVTC does use TDeint, i was asking if we could substitute TDeintMod instead.
Hope that makes sense,
I think i miss spoke
In VIVTC i understood that TDeint is used as post-processor (something to get rid of the combed frames IVTC misses),
You recently added qtgmc and needi3 to VIVTC as a deinterlacer of residual combed frames.
Shijan has said that when using qtgmc and needi3 that there are jaggies on straight lines oriented diagonally. But not on the vivtc internal deinterlacer.
This has been mentioned before and people have suggested that TDeint is the culprit for miss catagorizing progressive frames as combed. And hence TDeintmod was created. As it will only send combed frames.
So what i gather you are saying is VIVTC does not call or use TDeint in any form or function. (i Also know qtgmc likewise doesn’t use TDeint)
Because if VIVTC does use TDeint, i was asking if we could substitute TDeintMod instead.
Hope that makes sense,
f = 1 #field
clip = core.vivtc.VFM(clip, mode = 0, order=f, mi = 74, cthresh = 8) #IVTC
def conditionalDeint(n, f, orig, deint):
if f.props._Combed:
return deint
else:
return orig
deint = core.tdm.TDeintMod(clip, order=1, edeint=core.nnedi3.nnedi3(clip, field=1)) #Deinterlacer goes here!
#deint = havsfunc.QTGMC(clip, TFF=True, Preset="Medium", InputType=2 ) #Slower alternative, untested
combProps = clip #Get _Combed flag from VFM
#combProps = core.tdm.IsCombed(clip) #Get _Combed flag from IsCombed.
clip = core.std.FrameEval(clip, functools.partial(conditionalDeint, orig=clip, deint=deint), clip)
clip = core.vivtc.VDecimate(clip)