View Single Post
Old 21st March 2019, 01:14   #30  |  Link
hello_hello
Registered User
 
Join Date: Mar 2011
Posts: 4,823
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.

Last edited by hello_hello; 21st March 2019 at 10:17.
hello_hello is offline   Reply With Quote