Here's an improved script with no need to do any sharpening now. It throws away the existing interpolated lines (the even lines) and starts again, quality is improved over the version I posted above. If you wanted you could put LSFmod it back in with a conservative value for strength in the range of 30-60 or so.
The GrainRestore setting improves the sharpness, so if you boost it from 0.7 to say 1.0 it will sharpen the image also. Personally I'd leave it on about 0.7 and use LSFmod with a setting of about 40 to bring the sharpness up a bit if that's what you want - but I don't think it needs to be quite as sharp as the source (which is due in part to the sharpness of the aliasing).
orig=avisource("great_white_clip.avi").killaudio()
orig.ChubbyRain2(th=7,sft=15)
converttoyuy2()
separatefields()
assumeframebased()
selectodd()
nnedi3(dh=true)
stackvertical(crop(0,1,0,0),orig.converttoyuy2().crop(0,479,0,0))
converttoyv12()
QTGMC(Preset="Placebo",TR2=0,NoiseProcess=2,NoiseRestore=0,GrainRestore=0.7).selecteven()
centre=crop(10,0,-10,-2)
centre=centre.BlindDeHalo3(rx=3,ry=2.5,strength=150,sharpness=0.5,tweaker=0)
stackhorizontal(crop(0,0,10,0), \
stackvertical(centre,crop(10,478,-10,0)), \
crop(710,0,0,0))
#stackhorizontal(orig,last)
Quick notes: Retaining the video grain (GrainRestore setting in QTGMC) won't do anything for you when authoring for DVD since it'll all be blurred out by the MPEG2 compression, but it will look nice if you ever decide to release it as MPEG4 AVC. You don't want the video looking "processed".
Screenshot of this script...
Before:
After:
By the way, I posted this in another thread, if you had the desire to make it 60i you could just add this to the end of my script and you'll get a full proper interlaced version (a very close approximation to what the original 60i video would have looked like):
even=last.converttoyuy2().separatefields().selecteven()
threads=10
super_params="{pel:2,gpu:0}"
analyse_params="""{block:{w:8,h:8,overlap:3},
main:{search:{coarse:{distance:-10}}},
refine:[{thsad:200}]}"""
smoothfps_params="{algo:21}"
super = SVSuper(super_params)
vectors = SVAnalyse(super, analyse_params)
SVSmoothFps(super, vectors, smoothfps_params,url="www.svp-team.com",mt=threads)
odd=converttoyuy2().selectodd().separatefields().selectodd()
interleave(even,odd)
weave()
Probably not a good idea for release, but not a bad one if you want to watch it on a CRT tellie.