Log in

View Full Version : QTGMC, some static elements flicker


Pages : [1] 2

Hacker?pcs
7th August 2020, 10:58
I am converting to digital old VHS sports tapes from PAL region (Greece)
Process is
-JVC HR-S7600EK S-VHS
-S-Video Cable
-ATI TV Wonder 600 USB
-AmaRecTV to HuffYUV 4:2:2 720x576 25 fps PAL, PCM Audio
-StaxRip:
x264 4:2:2
--crf 19 --preset veryslow --level 4.1 --vbv-maxrate 62500 --vbv-bufsize 78125 --merange 32 --min-keyint 25 --no-dct-decimate --output-csp i422
Script
#Load/Import stuff
FFVideoSource("D:\vhs_captures\amarec(20200806-1406).avi", cachefile="D:\vhs_captures\amarec(20200806-1406)_temp\amarec(20200806-1406).ffindex", fpsnum=25, fpsden=1)
Crop(12, 2, -14, -12)
AssumeTFF() #this is used because I get back-and-forth frames if I don't use it
QTGMC(preset="Medium", sourceMatch=3, tr1=2, tr2=1, NoiseTR=2)

The result of the sports action is nice, but I get a jumpy/flickering effect on some static content, not all of it but on some

Sample source
https://mega.nz/file/NuJjEICJ#vvsWK6uiTEN1SkABUChe2U-bNaf24pizuQ16bSs8r6s

Sample encode
https://mega.nz/file/N3YxASZb#3tWOM84ntff7rEShK0PXAs3bzguJB6XL0COxrKM9Bm0

What could I do to fix it?

Samples are trimmed/joined with ffmpeg
ffmpeg -ss "$start_time" -to "$end_time" -i original_file.ext -c copy vid_cut.ext
ffmpeg -f concat -safe 0 -i ffmpeg_join_filelist.txt -c copy vid_joined.ext

Cary Knoop
7th August 2020, 17:14
First of all, I would lower the crf during encoding.

Running a double deinterlace using a double width:
A: Preset="Placebo", NoiseProcess=2
B: Preset="Very Slow", NoiseProcess=0, InputType=1

Gave me this:
https://www.dropbox.com/s/37oq5cyvho794z2/test001-a.mp4?dl=0

Hacker?pcs
7th August 2020, 18:15
First of all, I would lower the crf during encoding.

Running a double deinterlace using a double width:
A: Preset="Placebo", NoiseProcess=2
B: Preset="Very Slow", NoiseProcess=0, InputType=DoubleLevel

Gave me this:
https://www.dropbox.com/s/37oq5cyvho794z2/test001-a.mp4?dl=0
I want the result to be the best quality that could be done from the source, I don't mind the file size so that's why I opted for 19 CRF.

Double deinterlace? I didn't know that was a thing, what's the difference with just running Placebo once? It seems Placebo/Slower does a much better job though by itself

Boulder
7th August 2020, 18:26
CRF works so that a lower value is better.

Hacker?pcs
7th August 2020, 18:28
CRF works so that a lower value is better.
I know, I thought he meant lower the quality, ie go higher in CRF :P

I've tried 16-17 but I think it bloats the final result, 18 or 19 is sane enough

Hacker?pcs
7th August 2020, 21:49
Flickering is definitely less with just "QTGMC(preset="Slower")" but I notice it a bit, e.g. here (frames 448/449) every other frame a red dot appears/disappears on the red team's logo

https://thumbs2.imgbox.com/6c/5b/Q3l4jxPu_t.jpg (https://imgbox.com/Q3l4jxPu) https://thumbs2.imgbox.com/9f/99/1srdaL8r_t.jpg (https://imgbox.com/1srdaL8r)

or the letters on the second cut of the sample doesn't flicker that much but still do.
Is there any way to fix it completely? I don't mind how much time will the encode take

Cary Knoop
7th August 2020, 22:34
Try TR2=3

VoodooFX
8th August 2020, 10:26
What could I do to fix it?


Most of it will be gone:

QTGMC(preset="Slower").QTGMC(Preset="Medium", InputType=1)

Forteen88
8th August 2020, 10:58
Flickering is definitely less with just "QTGMC(preset="Slower")"...Isn't QTGMC setting preset=slower by default? Because I read this in the QTGMC3.368.avsi-script,
Preset = default( Preset, "Slower" )

Hacker?pcs
8th August 2020, 13:10
I've tried some things, SourceMatch=3 adds flickering so I've removed it.
Placebo is more smoother (very little) than Slower but doesn't do noticeable difference to flickering

Isn't QTGMC setting preset=slower by default?
For some reason I've had it to medium, now I've left it to the default Slower preset

Try TR2=3
It doesn't seem to do any noticeable difference to flickering

Most of it will be gone:

QTGMC(preset="Slower").QTGMC(Preset="Medium", InputType=1)
QTGMC(preset="Slower", tr1=2, tr2=1, NoiseTR=2).QTGMC(Preset="Medium", InputType=1)
it does a good job of taking rid the flicker, on the letters (2nd cut of the sample) it's practically gone, on the logo on the first cut it's there again (on the spot I've pointed above) but much less. Any way to completely eliminate that?

Sorry for asking again, but how does double QTGMC works better than one time? I'm curious

Also as I don't have experience in AviSynth scripting, how does using the filters with a dot in between them differentiate from placing them in two difference lines?

VoodooFX
8th August 2020, 13:49
Any way to completely eliminate that?
Answer is yes (https://forum.doom9.org/showthread.php?t=176860). Make a mask with those ~4 flickering pixels and inpaint them. Use Trim() to cure video only at selected frame ranges.


Sorry for asking again, but how does double QTGMC works better than one time? I'm curious
Second instance is doing completely different thing on progressive output of the first instance.

Boulder
8th August 2020, 14:00
You could also test MCBob. It's the grandfather of QTGMC and some people like it better.

https://forum.doom9.org/showthread.php?t=174121

By the way, I wonder why MRecalculate has never been included in the vector search in QTGMC. Nowadays when CPU power is not much of an issue, it could be useful to search with a larger blocksize and recalculate down to a very small blocksize. I've noticed that it will calm the vector field so maybe it would help in situations like these.

Hacker?pcs
8th August 2020, 14:37
You could also test MCBob. It's the grandfather of QTGMC and some people like it better.

https://forum.doom9.org/showthread.php?t=174121
StaxRip uses 64 bit Avisynth and I get "no function named sh_Bob (line 86)" which I would guess it's from nnedi2 requirement which I can't find in 64 bit to load it

Answer is yes (https://forum.doom9.org/showthread.php?t=176860). Make a mask with those ~4 flickering pixels and inpaint them. Use Trim() to cure video only at selected frame ranges.
Hm I don't want to go to that length, I'll leave it at the level of two QTGMC runs.
About that, how damaging to the video running QTGMC a second time is, over the deinterlaced result of the first run? I mean am I sacrificing too much to fix the flickering?
Also, could I use the two times QTGMC technique as a default for every de-interlacing needed (be it VHS like this, TV, DVDs, whatever) or use it only if I encounter similar problems on the end result?

Boulder
8th August 2020, 15:36
StaxRip uses 64 bit Avisynth and I get "no function named sh_Bob (line 86)" which I would guess it's from nnedi2 requirement which I can't find in 64 bit to load it
sb_Bob is in the toolkit script: https://raw.githubusercontent.com/realfinder/AVS-Stuff/master/avs%202.5%20and%20up/Zs_RF_Shared.avsi

MCBob does support 64-bit Avisynth+, I just tested it myself.

Hacker?pcs
8th August 2020, 16:26
sb_Bob is in the toolkit script: https://raw.githubusercontent.com/realfinder/AVS-Stuff/master/avs%202.5%20and%20up/Zs_RF_Shared.avsi

MCBob does support 64-bit Avisynth+, I just tested it myself.
StaxRip's Zs_RF_Shared was version V1.127 and didn't have it, updated it and it works

I've tried it, it seems that the letters on the second cut which are flickering with QTGMC Medium aren't deinterlaced properly

Source / MCBob / QTGMC x2

https://thumbs2.imgbox.com/5a/e2/996ENSa4_t.jpg (https://imgbox.com/996ENSa4) https://thumbs2.imgbox.com/92/bb/sDQfU12K_t.jpg (https://imgbox.com/sDQfU12K) https://thumbs2.imgbox.com/eb/3d/FIXXefTf_t.jpg (https://imgbox.com/FIXXefTf)

and the logo flickering on the first cut is also similar to QTGMC's medium

real.finder
8th August 2020, 16:53
did you try this?

mcbob(blocksize=4, exEdi=sanimebob(nnedi3pad=true, nnrep=2, bobpresmooth=true, usetfm=true))
smam

anyway, there are also BWDIF https://forum.doom9.org/showthread.php?t=181739

Hacker?pcs
8th August 2020, 17:15
did you try this?

mcbob(blocksize=4, exEdi=sanimebob(nnedi3pad=true, nnrep=2, bobpresmooth=true, usetfm=true))
smam

anyway, there are also BWDIF https://forum.doom9.org/showthread.php?t=181739
"No function "sanimebob""
Where can I find it?

real.finder
8th August 2020, 17:28
"No function "sanimebob""
Where can I find it?

https://raw.githubusercontent.com/realfinder/AVS-Stuff/master/avs%202.5%20and%20up/AnimeIVTC.avsi

hello_hello
8th August 2020, 18:22
Also as I don't have experience in AviSynth scripting, how does using the filters with a dot in between them differentiate from placing them in two difference lines?

There's no difference for the previous example. When you use a dot, Avisynth expects a function to follow on the same line, unless you use a line break (backslash).

I guess it's mostly useful for chaining functions together when creating variables.

The following:

SourceFilter() Function1() Function2()

is the same as:

SourceFilter()
Function1()
Function2()

and:

SourceFilter().Function1().Function2()

To apply more than one function when creating a variable though, it's often easier to chain them together:

Video1 = SourceFilter().Function1().Function2()
return Video1

Or chaining functions over multiple lines. Something like:

Video1 = \
SourceFilter().\
Function1().Function2()
return Video1

The following way, Functions 1 & 2 wouldn't be applied to the Video1 variable:

https://forum.doom9.org/showthread.php?p=1621382#post1621382

Video1 = SourceFilter() Function1() Function2()
return Video1

Hacker?pcs
8th August 2020, 19:39
Something offtopic, any filter that could benefit the source, besides deinterlacing? I mean if anyone spot an error in the video that a filter could improve it, I don't have much knowledge on this and some advice could help

There's no difference for the previous example. When you use a dot, Avisynth expects a function to follow on the same line, unless you use a line break (backslash).
[snip]
Thanks for the writeup, really informative.

https://raw.githubusercontent.com/realfinder/AVS-Stuff/master/avs%202.5%20and%20up/AnimeIVTC.avsi
I can't get it to work after trying a lot, MPC opening the .avs crashes with Access Violation, StaxRip crashes too

https://pastebin.com/raw/GdWCMf9E

Also I've tried BWDIF, image is a lot more inferior to QTGMC and motion (BWDIF(field=3)) is a lot less smooth

real.finder
8th August 2020, 20:32
Something offtopic, any filter that could benefit the source, besides deinterlacing? I mean if anyone spot an error in the video that a filter could improve it, I don't have much knowledge on this and some advice could help


Thanks for the writeup, really informative.


I can't get it to work after trying a lot, MPC opening the .avs crashes with Access Violation, StaxRip crashes too

https://pastebin.com/raw/GdWCMf9E

Also I've tried BWDIF, image is a lot more inferior to QTGMC and motion (BWDIF(field=3)) is a lot less smooth

seems you have some old dlls

indeed BWDIF alone not work better, that why I asked for adding edeint in it

and yes your video need more filtering like dehalo/deringing

Hacker?pcs
8th August 2020, 22:12
and yes your video need more filtering like dehalo/deringing
Could you point some references to read on what are those and how to do those (which filters are good)?

I still have this question about QTGMC x2
, I'll leave it at the level of two QTGMC runs.
About that, how damaging to the video running QTGMC a second time is, over the deinterlaced result of the first run? I mean am I sacrificing too much to fix the flickering?
Also, could I use the two times QTGMC technique as a default for every de-interlacing needed (be it VHS like this, TV, DVDs, whatever) or use it only if I encounter similar problems on the end result?

real.finder
8th August 2020, 23:35
Could you point some references to read on what are those and how to do those (which filters are good)?

for Analog video LGhost and edgesidebleed (you will need to tune them for your source by play with their settings)

maybe you will need others, see http://avisynth.nl/index.php/External_filters

Cary Knoop
8th August 2020, 23:39
I still have this question about QTGMC x2
The 2x won't help the flickering.
The only way to get rid of it without damaging your video is to use masking.

Hacker?pcs
8th August 2020, 23:52
for Analog video LGhost and edgesidebleed (you will need to tune them for your source by play with their settings)

maybe you will need others, see http://avisynth.nl/index.php/External_filters
Thanks for the hints, will look into it more

seems you have some old dlls
I checked each of the dlls/avsi for updates and that did the trick, it works now.
But it
mcbob(blocksize=4, exEdi=sanimebob(nnedi3pad=true, nnrep=2, bobpresmooth=true, usetfm=true))
smam
is too slow, ~1-2fps (older i5 3470, @stock) and most importantly on frames 448-449 there is flickering similar or worse to Slower QTGMC and the image quality overall isn't good (too soft), it doesn't seem to worth the very long (and not feasible) time

The 2x won't help the flickering.
The only way to get rid of it without damaging your video is to use masking.
It does help, it makes it flicker less

Cary Knoop
9th August 2020, 00:05
It does help, it makes it flicker less
In general, double deinterlace can help, QTGMC is great but sometimes it does not do a good job deinterlacing some of the chroma, a double deinterlace will often take care of the residual problems.

real.finder
9th August 2020, 01:24
Hacker?pcs

can you post unprocessed video sample?

Hacker?pcs
9th August 2020, 08:45
Hacker?pcs

can you post unprocessed video sample?
Check the first post of the topic
Sample source
https://mega.nz/file/NuJjEICJ#vvsWK6uiTEN1SkABUChe2U-bNaf24pizuQ16bSs8r6s



In general, double deinterlace can help, QTGMC is great but sometimes it does not do a good job deinterlacing some of the chroma, a double deinterlace will often take care of the residual problems.
Does the second pass do much "damage" though? Or is it negligible, considering the fixes it does?

Cary Knoop
9th August 2020, 16:03
Does the second pass do much "damage" though? Or is it negligible, considering the fixes it does?
No, as long as you do not denoise.

Hacker?pcs
9th August 2020, 16:08
No, as long as you do not denoise.
You mean with other filters after the second QTGMC run or via settings of the second QTGMC run? I don't do either though, I just do
QTGMC(preset="Slower").QTGMC(Preset="Medium", InputType=1)
and that's the last filter applied to video (and the only one applied, I only deinterlace)

Cary Knoop
9th August 2020, 16:43
No, QTGMC by default does denoise quite a bit.

I would add NoiseProcess=2, SourceMatch=3 to the second (progressive) deinterlace and at least select the 'slower' preset.
By the way your source would definitely benefit from using FineDehalo()

As for ghosting, I am not sure if there is a good quality deghosting filter in avi/vapour synth that would filter out the multiple 'echos'.

real.finder
9th August 2020, 16:59
both seems ok


AssumeTFF()

#~ BWDIF(-2).QTGMC(InputType=1)
QTGMC(EdiExt=BWDIF(-2))

edit: seems BWDIF has bug in Double rate, the output has same frame repeated twice every time

edit: BWDIF(-2).daa3mod(false).QTGMC(InputType=1) seems fine but it will be better after Asd fix the bug in BWDIF and even better if BWDIF get edeint parameter

Hacker?pcs
9th August 2020, 22:26
No, QTGMC by default does denoise quite a bit.

I would add NoiseProcess=2, SourceMatch=3 to the second (progressive) deinterlace and at least select the 'slower' preset.
By the way your source would definitely benefit from using FineDehalo()

As for ghosting, I am not sure if there is a good quality deghosting filter in avi/vapour synth that would filter out the multiple 'echos'.
Making it
QTGMC(preset="Slower").QTGMC(Preset="Slower", InputType=1, SourceMatch=3, NoiseProcess=2)
makes the end result more smooth I think? which is the opposite of the intended effect and flickering is introduced again more than medium

1st run Slower
2nd run: Medium / Slower-SM3-NP2

https://thumbs2.imgbox.com/c5/15/gXyEE0Sr_t.jpg (https://imgbox.com/gXyEE0Sr) https://thumbs2.imgbox.com/2a/5a/JY3TQoY9_t.jpg (https://imgbox.com/JY3TQoY9)

https://thumbs2.imgbox.com/ef/90/dYtDsfQ5_t.jpg (https://imgbox.com/dYtDsfQ5) https://thumbs2.imgbox.com/7a/7d/NSbE1ku1_t.jpg (https://imgbox.com/NSbE1ku1)

but making the second run just Slower
QTGMC(preset="Slower").QTGMC(Preset="Slower", InputType=1)
is less smoother than 2nd run at Medium (in a good way) and the flickering effect is more effectively reduced, making it a good candidate for the final choice.
Both on placebo makes the flicker even more reduced but the result from Slower/Slower and Slower/Medium is too smoothed

1st-2nd runs: Slower-Medium / Slower-Slower / Placebo-Placebo

https://thumbs2.imgbox.com/ff/05/QMlqIMjQ_t.jpg (https://imgbox.com/QMlqIMjQ) https://thumbs2.imgbox.com/cc/64/eIeCb0KJ_t.jpg (https://imgbox.com/eIeCb0KJ) https://thumbs2.imgbox.com/40/5c/kt7IKSPz_t.jpg (https://imgbox.com/kt7IKSPz)

About FineDehalo, I've tried adding it with the settings StaxRip adds
FineDehalo(rx=2.0, ry=2.0, thmi=80, thma=128, thlimi=50, thlima=100, darkstr=1.0, brightstr=1.0, showmask=0, contra=0.0, excl=true)

and the result is not nice, it adds a kind of blurring (pay attentions to the S logo top left and the shadows of the players)

Slower/Slower 2x QTGMC with / without FineDehalo

https://thumbs2.imgbox.com/cc/64/eIeCb0KJ_t.jpg (https://imgbox.com/eIeCb0KJ) https://thumbs2.imgbox.com/a8/66/N3RWPVOU_t.jpg (https://imgbox.com/N3RWPVOU)

Ghosting is too severe by the source's nature, for bad RF signal in 1995 I would guess nothing would save it and if it even tries it would be too pervasive and not natural

both seems ok


AssumeTFF()

#~ BWDIF(-2).QTGMC(InputType=1)
QTGMC(EdiExt=BWDIF(-2))

edit: seems BWDIF has bug in Double rate, the output has same frame repeated twice every time

edit: BWDIF(-2).daa3mod(false).QTGMC(InputType=1) seems fine but it will be better after Asd fix the bug in BWDIF and even better if BWDIF get edeint parameter
All three have bad motion and bad image quality in comparison to QTGMC unfortunately

real.finder
10th August 2020, 02:29
All three have bad motion and bad image quality in comparison to QTGMC unfortunately

you need to wait for the BWDIF fix (Double rate/bad motion) as I said

keep in mind that QTGMC did denoise and sharp, and your goal is to get less shimmer output so image quality is not considered since you can denoise and sharp with dedicated filters unless you mean there are some interlaced remains (which will get better if BWDIF get edeint parameter and Double rate bug fixed) and sometimes you have to choose between two things either less shimmer or less interlaced remains

Cary Knoop
10th August 2020, 03:26
QTGMC makes spaghetti out of BWDIF.

Hacker?pcs
10th August 2020, 11:53
you need to wait for the BWDIF fix (Double rate/bad motion) as I said

keep in mind that QTGMC did denoise and sharp, and your goal is to get less shimmer output so image quality is not considered since you can denoise and sharp with dedicated filters unless you mean there are some interlaced remains (which will get better if BWDIF get edeint parameter and Double rate bug fixed) and sometimes you have to choose between two things either less shimmer or less interlaced remains
You mean that QTGMC on Slower (or on any setting) applies denoise/sharpen and instead of using its own filters to make it not do it and have dedicated denoise/sharper filters that are better do it right? How could that happen and also have good quality deinterlacing?

real.finder
10th August 2020, 18:01
You mean that QTGMC on Slower (or on any setting) applies denoise/sharpen and instead of using its own filters to make it not do it and have dedicated denoise/sharper filters that are better do it right? How could that happen and also have good quality deinterlacing?

you can't use QTGMC without it denoise, since it use mdegrain for deinterlacing, but you can turn off the sharp

that why mcbob preferable for some people since it not use denoise or sharp and preserves the original fields, but it need clean source (VHS never fit)

there are some denoisers (plugins or scripts) that can work with interlaced source, you can use them before any deinterlaced and you will get better deinterlaced (less shimmer), deRainbow (before deinterlaced) also help in your case

also for QTGMC you can try use big ThSAD1 (more than 1000) maybe and/or TR1=2 and MatchTR2=2 to kill shimmering and more details :) and get more blur

johnmeyer
10th August 2020, 21:28
I've only been skimming this thread, but my advice is to just forget doing deinterlacing. Why do you think you need it? It just degrades the image. Your TV set or media player can do this for you.

If you still want to keep doing it, I'd look at the field order a little more. The fact that you have to do an AssumeTFF() says that the capture system may have a field order reversal. You will most definitely get "shimmering" artifacts if you reverse the fields.

Did anyone provide a sample of the video? I think I can tell you exactly what is going on if you provide 5-10 seconds of fast motion. You need to cut this directly from your final result, without any further re-encoding.

hello_hello
10th August 2020, 21:54
I've only been skimming this thread, but my advice is to just forget doing deinterlacing. Why do you think you need it? It just degrades the image. Your TV set or media player can do this for you.

A TV set or media player won't de-interlace to the same quality as QTGMC.
Plus if you're re-encoding, interlaced encoding is less efficient than progressive, and what about any encoding artefacts or encoding inaccuracies? If you encode as interlaced wouldn't that make it even harder for your TV set or media player to de-interlace?

The fact that you have to do an AssumeTFF() says that the capture system may have a field order reversal. You will most definitely get "shimmering" artifacts if you reverse the fields.

Bob de-interlacing creates a whole frame out of each field, so the wrong field order would cause motion to jump forwards and backwards and forwards and backwards with each successive frame, as the new frames won't be successive moments in time as the original fields would be.

Hacker?pcs
10th August 2020, 22:27
I've only been skimming this thread, but my advice is to just forget doing deinterlacing. Why do you think you need it? It just degrades the image. Your TV set or media player can do this for you.

If you still want to keep doing it, I'd look at the field order a little more. The fact that you have to do an AssumeTFF() says that the capture system may have a field order reversal. You will most definitely get "shimmering" artifacts if you reverse the fields.

Did anyone provide a sample of the video? I think I can tell you exactly what is going on if you provide 5-10 seconds of fast motion. You need to cut this directly from your final result, without any further re-encoding.
I don't like interlacing, somewhere down the line it must be removed to be able to be viewable on non-TV devices and quality real-time de-interlacing isn't possible (or most people don't even care to be quality one) be it on YouTube, video players or whatever. In the future TVs may not be interlace-combatible at all and that makes the files I make doomed to bad deinterlacing on the fly, besides on all other devices too

Generally I hate it with a passion, it's a relic of the past that unfortunately we have to deal with it and it's a real joke that TV broadcasting continues to this day this idiocy and I'm real glad it stops with 4K, it took way long though
https://nofilmschool.com/2013/07/4k-uhd-color-space-gamut-frame-rate

TFF is the correct order, BFF produces back-and-forth frames as I've said on the first post and hello_hello says.

You can find a source sample from the capture card in the first post and also the encode with the QTGMC's settings I quote there, no need uploading 5-10 tries I've done throughout the thread :p

johnmeyer
10th August 2020, 23:44
I don't like interlacing, somewhere down the line it must be removed to be able to be viewable on non-TV devices and quality real-time de-interlacing isn't possible (or most people don't even care to be quality one) be it on YouTube, video players or whatever. In the future TVs may not be interlace-combatible at all and that makes the files I make doomed to bad deinterlacing on the fly, besides on all other devices too

Generally I hate it with a passion, it's a relic of the past that unfortunately we have to deal with it and it's a real joke that TV broadcasting continues to this day this idiocy and I'm real glad it stops with 4K, it took way long though
https://nofilmschool.com/2013/07/4k-uhd-color-space-gamut-frame-rate

TFF is the correct order, BFF produces back-and-forth frames as I've said on the first post and hello_hello says.

You can find a source sample from the capture card in the first post and also the encode with the QTGMC's settings I quote there, no need uploading 5-10 tries I've done throughout the thread :pI didn't realize that you had links since you put them inside of a code block in your initial post. Next time, just copy the URL and the forum will make it live, or use the "Insert Link" feature.

I looked at the original and then looked at your initial attempt. I watched the original using VLC and watched it both with deinterlacing turned off as well as with VLC doing YADIF deinterlacing. I watched both clips several times and then looked at some snapshots.

VLC's deinterlaced output looks better than your QTGMC output every single time.

So, my recommendation still stands. If, in the future, there are no players or TVs which deinterlace (an extremely unlikely prediction, given the need to deal with legacy video) you can deinterlace then. In the meantime, you are wasting your time trying to deinterlace, and I stand by my original recommendation that you instead skip it. Your time would be much better spent denoising the source using MDegrain2 or something similar.

Hacker?pcs
11th August 2020, 00:04
I definitely won't leave the result interlaced, it's a menace that in the future somebody will have to deal with it, either for editing, play on a PC, bad modern TV deinterlacing, etc

Yadif is inferior, the image just isn't good enough and the motion isn't that good even on 50fps mode

QTGMC Slower-Slower / yadifmod2(order=1, mode=1)

https://thumbs2.imgbox.com/cc/64/eIeCb0KJ_t.jpg (https://imgbox.com/eIeCb0KJ) https://thumbs2.imgbox.com/be/a6/3roYWcPX_t.jpg (https://imgbox.com/3roYWcPX)

Note that on VLC yadifx2 (double framerate mode) on my sample doesn't recognize TFF and does BFF, ie back-and-forth frames and yadif on VLC is the original fps one which makes the motion choppy

real.finder
11th August 2020, 00:23
BWDIF Double rate bug just fixed https://github.com/Asd-g/AviSynth-BWDIF

AVISource("amarec(20200806-1406)_sample.avi")
ConvertToYV16
AssumeTFF
DFMDeRainbow(interlaced=true)
QTGMC(EdiExt=BWDIF(-2),ThSAD1=1500,MatchTR2=2,tr2=2)

https://www.solidfiles.com/v/AB8vB3wGNZX75

not perfect but again it will be better when BWDIF get edeint parameter

real.finder
11th August 2020, 00:46
Note that on VLC yadifx2 (double framerate mode) on my sample doesn't recognize TFF and does BFF, ie back-and-forth frames and yadif on VLC is the original fps one which makes the motion choppy

that because .avi should be BFF (avi has no info for field order IIRC)

hello_hello
11th August 2020, 05:33
I looked at the original and then looked at your initial attempt. I watched the original using VLC and watched it both with deinterlacing turned off as well as with VLC doing YADIF deinterlacing. I watched both clips several times and then looked at some snapshots.

VLC's de-interlaced output looks better than your QTGMC output every single time.

VLC doesn't get the field order right.

I used MPC-HC and de-interlaced with fffdshow, because you can force TFF, but even with the field order correct I think Hacker?pcs's original sample looks better than Yadif. There's less aliasing, although SourceMatch caused a little more flickering.

Your time would be much better spent denoising the source using MDegrain2 or something similar

Do you mean de-noising as QTGMC does, only not de-interlacing at the same time to repair any shimmering and aliasing too? I don't understand.

Personally I don't mind QTGMC's default settings, but I imagine it might look too "smooth" for some people. It gets rid of the noise though, and kills mist of the flickering.

Hacker?pcs
12th August 2020, 11:39
BWDIF Double rate bug just fixed https://github.com/Asd-g/AviSynth-BWDIF

AVISource("amarec(20200806-1406)_sample.avi")
ConvertToYV16
AssumeTFF
DFMDeRainbow(interlaced=true)
QTGMC(EdiExt=BWDIF(-2),ThSAD1=1500,MatchTR2=2,tr2=2)

https://www.solidfiles.com/v/AB8vB3wGNZX75

not perfect but again it will be better when BWDIF get edeint parameter
This is a nice result, it has some interlacing artifacts on the second cut's letters but the logo flickering is almost gone, image is alright and motion is good.

Here are some tests, and a second sample with the small ball in the big picture motion that seems that Slower/Slower QTGMC doesn't handle well

Sample 2:
https://mega.nz/file/0ygF2ZCD#VYfabWr2i5Ho6HfqOZ0hmRR9pdlYh5CwkMzjPtWYmAQ

1) QTGMC(preset="Slower")
2) QTGMC(preset="Slower").QTGMC(Preset="Medium", InputType=1)
3) QTGMC(preset="Slower").QTGMC(Preset="Slower", InputType=1)
4) QTGMC(EdiExt=BWDIF(-2),ThSAD1=1500,MatchTR2=2,tr2=2)

1)
https://mega.nz/file/p25V3B7I#2sWmhgdWs5ZKx-034kJ_91nGTPoRcvseN325h5CDlGA
https://mega.nz/file/9yoDwDhS#LM-xfw0Pba4rxWyC1w9vNCXdXJzOYT0SGPY4Wx4JXAs

2)
https://mega.nz/file/0voFGJQZ#TndhRVlBaIL01X8fjz5CQJluI4ZPyTiW5_DD_8XPsMM
https://mega.nz/file/gihz1TxA#uqXCKRbEaoPLiVI733jydMW7PDDCdgkP0rjUVNZrqUQ

3)
https://mega.nz/file/Jyx1GDxb#yGLqdpv7nufuZuku-DAKGdon9-ZmAnZZtfjlqXwVoBM
https://mega.nz/file/tjwBCJSC#FhDTAcGUSL7H5zj4MIO7c4XfFQyckFLvtT4bFd-8MaA

4)
https://mega.nz/file/MuxxAJJB#uLdObA7AMT2wiYyduCXrmYZFRRvTLz7ZJZIedsHB5Pc
https://mega.nz/file/ov53gR6Z#hFDL7I7pQ__WtocK4bKBfn5dizwp8HMjwDDesyt6bnI


1 vs 2 vs 3 vs 4
Notes: QTGMC 1 has visible flickering, 2 and 3 progressively removes it. 4 BWDIF has practically no flickering but the logo is a bit "pixelated", lower quality than the others

https://thumbs2.imgbox.com/3a/00/Rnhk1vDD_t.png (https://imgbox.com/Rnhk1vDD) https://thumbs2.imgbox.com/91/38/eskNTCHr_t.png (https://imgbox.com/eskNTCHr) https://thumbs2.imgbox.com/c9/63/sPMiIoja_t.png (https://imgbox.com/sPMiIoja) https://thumbs2.imgbox.com/05/66/nRXTEiOY_t.png (https://imgbox.com/nRXTEiOY)

Note: On QTGMC 1, Α and Δ letters are "jumpy", they are shaking visibly, on 2 and 3 this is progressively fixed. BWDIF 4 doesn't have jumpiness but there are interlacing artifacts

https://thumbs2.imgbox.com/73/d5/Wr9xO7kZ_t.png (https://imgbox.com/Wr9xO7kZ) https://thumbs2.imgbox.com/0d/a6/eGVfxSsZ_t.png (https://imgbox.com/eGVfxSsZ) https://thumbs2.imgbox.com/b8/a3/djOva7vZ_t.png (https://imgbox.com/djOva7vZ) https://thumbs2.imgbox.com/78/0a/6Yw6aOSC_t.png (https://imgbox.com/6Yw6aOSC)

Note: On the second sample I provided on this post, the motion of the moving ball is of concern. On QTGMC 1 it's good enough but on 2 and a lot more on 3 it deteriorates in non-natural way. BWDIF is similar to QTGMC 1

https://thumbs2.imgbox.com/e8/01/wgYuCDx0_t.png (https://imgbox.com/wgYuCDx0) https://thumbs2.imgbox.com/75/69/f2NAHPlh_t.png (https://imgbox.com/f2NAHPlh) https://thumbs2.imgbox.com/1e/c0/JBjT3BH0_t.png (https://imgbox.com/JBjT3BH0) https://thumbs2.imgbox.com/e0/9e/xSQsC5DH_t.png (https://imgbox.com/xSQsC5DH)

I think the Slower-Medium QTGMC solution for a balance in logo flickering - Ball motion and no interlacing artifacts may be my final choice

Cary Knoop
12th August 2020, 16:48
VLC's deinterlaced output looks better than your QTGMC output every single time.

No kidding, you must have some very special VLC build. :D

real.finder
12th August 2020, 21:15
This is a nice result, it has some interlacing artifacts on the second cut's letters but the logo flickering is almost gone, image is alright and motion is good.

QTGMC(EdiExt=BWDIF(-2),ThSAD1=1500,MatchTR2=2,tr2=2).daa3mod(false)

it's better now

anyway I still wait https://github.com/Asd-g/AviSynth-BWDIF/issues/3

ChaosKing
12th August 2020, 21:26
You need to ask in vapoursynth repo and then it gets ported to avs xD

But it's funny how the life cycle for some plugins are: avs to vs to avs

real.finder
12th August 2020, 21:30
You need to ask in vapoursynth repo and then it gets ported to avs xD

But it's funny how the life cycle for some plugins are: avs to vs to avs

it's good idea but also bad since I am never used vs in my life so how can I tell if the update work? so since you use both then can you do it please? :)