Log in

View Full Version : Very difficult deflicker


doctorkhv
15th January 2022, 09:25
What kind of deflicker to fix such a video?
https://drive.google.com/file/d/1tqXALbGKHZSwkfKLPYC4s6r8jFf74GEi/view?usp=sharing

Sharc
15th January 2022, 11:17
In AviSynth you can try with
deflicker()
descratch()
spotless()

Don't overdo though in order not to destroy details and the vintage look

Left: original
Right: deflicked
https://www.mediafire.com/file/e0y1x2yivztc2h0/deflicked.mp4/file

doctorkhv
15th January 2022, 11:52
Not bad, but:

1. Changed color space.
probably https://forum.doom9.org/showthread.php?t=175401

2. The flickering of three large spots on the right has not been eliminated.

poisondeathray
15th January 2022, 18:00
1. Changed color space.
probably https://forum.doom9.org/showthread.php?t=175401



The actual "colorspace" does not change , it's probably your method of viewing

Your provided source file was untagged 4:2:0 , but at 1440x1080 - so many programs will assume 709 for the RGB display conversion because the height is >576

Sharc's was resized to 1440x540 ,but the encoding was also untagged . Many programs will use 601 instead of 709 for the display conversion, because the height is 540 (<576).

If you are encoding a file you can tag the proper colorimetry flags. Depending on your workflow and programs, there might be other considerations as well, you'd have to provide more info

johnmeyer
15th January 2022, 19:02
One seldom-discussed method to suppress flicker is to use DCT=1 in the MAnalyze line when using MDegrain to reduce noise. When used after Deflicker you often get extremely good results. I use this on film sources all the time. I've queued up this link to take you directly to a "before/after" which shows flicker reduction:

https://www.youtube.com/watch?v=tBAHzO7rJS0&t=115s

Here is the code I use (in addition to a Deflicker call):

prefiltered = RemoveGrain(stabcrop,2)
superfilt = MSuper(prefiltered, hpad=32, vpad=32,pel=2)
super= MSuper(stabcrop, hpad=32, vpad=32,pel=2)

halfblksize= (block_size>4) ? block_size/2 : 4
halfoverlap= (block_over>2) ? block_over/2 : 2

bvec1 = MAnalyse(superfilt, isb = true, delta = 1, blksize=block_size, overlap=block_over,dct=1)
bvec1 = MRecalculate(super, bvec1, blksize=halfblksize, overlap=halfoverlap,thSAD=100)

fvec1 = MAnalyse(superfilt, isb = false, delta = 1, blksize=block_size, overlap=block_over,dct=1)
fvec1 = MRecalculate(super, fvec1, blksize=halfblksize, overlap=halfoverlap,thSAD=100)

bvec2 = MAnalyse(superfilt, isb = true, delta = 2, blksize=block_size, overlap=block_over,dct=1)
bvec2 = MRecalculate(super, bvec2, blksize=halfblksize, overlap=halfoverlap,thSAD=100)

fvec2 = MAnalyse(superfilt, isb = false, delta = 2, blksize=block_size, overlap=block_over,dct=1)
fvec2 = MRecalculate(super, fvec2, blksize=halfblksize, overlap=halfoverlap,thSAD=100)

denoised=stabcrop.MDegrain2(super, bvec1,fvec1,bvec2,fvec2,thSAD=denoising_strength).levels(0,gamma,255,0,255).tweak(sat=saturation).unsharpmask(PRE_sharp_ness,PRE_radi_us,0)

Emulgator
15th January 2022, 23:19
Good work, John !

StainlessS
16th January 2022, 07:36
John,

super= MSuper(stabcrop, hpad=32, vpad=32,pel=2,Levels=1)

I think you can add the levels=1 thing above, maybe a bit faster.
(All levels only needed for MAnalyse() on Superfilt, there is no MAnalyse() on Super clip)

lansing
16th January 2022, 16:22
There is Neat Video
https://www.youtube.com/watch?v=r_F6D5lvB3I