Here's my latest theory. I didn't like SRestore when I tried it originally, but I think that's because Yadif was de-interlacing. When I switched to QTGMC it was better.
Here's an encode with
QTGMC()
SRestore(25)
AssumeFPS(24000,1001)
VTS_02_1.demuxed SRestore.mkv
The only problem is in a few places there's duplicate frames where (I assume) SRestore took out a frame with blending, when it probably would have been better to leave a slightly blended frame instead (you can see a break in movement as the car goes past the pole, as the guy in the blue jacket walks past the group, and three or four times as they walk down the stairs). So I checked the sample and there only seems to be two patterns of frames to keep using
FixBlendX instead of SRestore. You have to decide where to use each pattern yourself, but it solves the problem of repeated frames.
The two sections in the sample are these:
B.Trim(0,723) ++ \
C.Trim(724,0)
but it leaves two blended frames on scene changes, so if you're very fussy.... for the blended frame in clip B, I swapped it out for the same frame in clip C, and for clip C I swapped the frame out from clip B.
Wouldn't it be nice if the whole episode could be done with just two patterns, even if you have to find them yourself?
Edit: Doh! Changed the script below so it only has to de-interlace once.
mpeg2source("D:\VTS_02_1.demuxed.d2v")
A = last.QTGMC()
B = A.FixBlendX(1,25.0,10)
C = A.FixBlendX(8,25.0,10)
B.Trim(0,292) ++ \
C.Trim(293,293) ++ \
B.Trim(294,723) ++ \
C.Trim(724,965) ++ \
B.Trim(966,966) ++ \
C.Trim(967,0)
AssumeFPS(24000,1001)
crop(16, 6, -14, -6)
Spline36Resize(704,528)
Gradfun3()
VTS_02_1.demuxed FixBlendX.mkv
The downside is de-interlacing does blur fine detail a bit more than using TFM(), even with QTGMC. Maybe one of QTGMC's lossless modes would work better here.
Normally when I'm looking for the frames to keep with FixBlend, I'd de-interlace with Yadif(mode=1) and replace it with QTGMC() for encoding. This is the first time that hasn't worked.