Selur's Little Message Board
Simpsons - TFM vs QTGMC - Printable Version

+- Selur's Little Message Board (https://forum.selur.net)
+-- Forum: Hybrid - Support (https://forum.selur.net/forum-1.html)
+--- Forum: Problems & Questions (https://forum.selur.net/forum-3.html)
+--- Thread: Simpsons - TFM vs QTGMC (/thread-4152.html)

Pages: 1 2 3


RE: Simpsons - TFM vs QTGMC - Selur - 14.07.2025

Couldn't find the frame in the source, but the combi of filters + BasicVSR++ should fix the problem. Smile
(you can check the Preview to know for sure)


RE: Simpsons - TFM vs QTGMC - protectron - 14.07.2025

I was wrong about AA not affecting the progressive sequences. Guess I'm down to fixing frames in post.


Quote:Couldn't find the frame in the source

Below is the example. When running Stab or AA before TFM, VS doesn't pick the jagged source frames. The result is really clean and doesn't require additional post processing. BUT, it screws up any progressive sequences.
I can't find a way for TFM to not pick the jagged frames and also save the progressive sequences.

Standard filter order
[Image: temp-Preview-Vapoursynth-File22-55-03-61...fields.png]

Stab / AA first
[Image: temp-Preview-Vapoursynth-File22-55-25-86...-QTGMC.png]

The earlier image of the kid buying a hat demonstrates the progressive damage it does.


RE: Simpsons - TFM vs QTGMC - protectron - 15.07.2025

@Selur any ideas on how to have TFM not choose the deinterlaced source frames? They always seem to be dupes.


RE: Simpsons - TFM vs QTGMC - Selur - 15.07.2025

One could write a script that only uses tfm if tdm.IsCombed reports that the source is combed.
def conditionalTFM(n, f, orig, tfm):
    if f.props._Combed:
        return deint
    else:
        return orig
clipTFM = clip = core.tivtc.TFM(clip=clip) # settings might need adjustments
clipCombProps = core.tdm.IsCombed(clip=clip) # settings might need adjustments
clip = core.std.FrameEval(clip, functools.partial(conditionalTFM, orig=clip, tfm=clipTFM), clipCombProps)

Cu Selur

Ps.: Clean telecined content should have no combing after field matching (just duplicates) and those get removed by decimation. Using the above idea with a deinterlaced instead of a field matcher after appling a field matcher might be a better approach.