Affected is the blue channel of RGB space, but there's another catch: it seems that it's only footage of
one certain of several cameras. (Split in R'G'B', and look at the 2nd half of the sample: only the background is affected. On the songstress in the foreground, the blue channel is clean.)
For that reason, I probably would not go for RGB:Blue processing, but rather for YUV:UV processing. The improvement is still good, and there's less risk to lose important data in not-affected sections.
Spaghetti-code: (using NNEDI3, Masktools and RemoveGrain/Repair)
Code:
mpeg2source("VTS_04_VOBID_001_CELLID_011_1.demuxed_cut.d2v")
o=last
fields=o.separatefields().turnleft()
fields.nnedi3(field=-2)
merge(selecteven(),selectodd())
d1=mt_makediff(fields,last,Y=2,U=3,V=3)
d2=mt_makediff(last,last.removegrain(0,20),Y=2,U=3,V=3)
last.mt_adddiff(d2.repair(d1,0,12).mt_lutxy(d1,"x 128 - y 128 - * 0 < 128 x 128 - abs y 128 - abs < x y ? ?",Y=2,U=3,V=3),Y=2,U=3,V=3)
turnright().assumefieldbased().assumebff().weave()
o.mergechroma(last)
stackvertical(o,last)
#bob(0,0) # just to check it out
return(last)
Seems okay to my eyes.