Man I’ve put this little project off for a long time – I’ve ripped the GT3 PSS video files onto my HDD in the summer and, until now, I couldn’t find a good way to de-interlace the video…
Anyway, now that I’ve found a way to de-interlace the video in real time, here’s a quick summary of what you gotta do:
1 – Rip the MPEG stream from your PS2 DVD onto your HDD (using something like Extractor (link) ).
(1.1 – Rename the extension from .mpg to .pss ? – I can’t remember… It was such a long time since I ripped the video…)
2 – Demux the PSS file to get a M2V and WAV file (using something like PSS Demux (link) ).
3 – Use ffdshow to feed the video into AviSynth to "do the de-interlacing magic" in real time (using well… ffdshow (link) and AviSynth (link) )!!!
I’m not gonna go through step 1 and 2 blow by blow, as the only thing that’s difficult about it is to scan the DVD for MPG streams (using Extractor), and then pretty much a 3 month old baby can do step 2 (which, only involves dragging the PSS file into PSS Demux).
Anyway, before I go to step 3 and begin the fun of using ffdshow with AviSynth, if you play the PSS file, you’d get something like this:
Yup, that’s right – the top half is one field and the bottom half is another field…
So, step 3:
3.1 – Load up ffdshow
3.2 – Create a new profile
3.3 – Check (enable) the "Avisynth" filter and enter the following:
top = Crop(0,0,width,height/2)
bottom = Crop(0,height/2,width,height/2)
LoadPlugin("C:Program FilesAviSynthpluginsLeak KernelDeintLeakKernelDeint.dll")
LeakKernelDeint(0, 5, true, true, true, false, false, 0)
Note that I used "Leak KernelDeint" (link) instead of the normal "KernelDeint" as it offers me better optimizations.
Now when you play your video with the newly created profile, you should get something like this:
The reason why I used ffdshow in step 3 is so that I can create 1 profile and use that across different videos if necessary, plus it’s easier to tweak in real time if you needed to…
Actually, if you watch the video, you would have noticed that the first 2263 frames (or so) are progressive (non-interlaced) frames and then the video "change mode" from then on to two-way interlaced (i.e. 1 interlaced frame contains information for previous and next frame).
Below is a screen cap of frame 2297:
You can clearly see this two-way interlacing on the blue "GT" text and on top of the wheel arch – and this is where the "two-way" feature of the de-interlacer comes in.
Below shows this same frame but totally (minus the de-interlacing artifacts…) de-interlaced:
But yeah, I guess they really shouldn’t have mixed interlaced material with progressive materials in the same video file in the first place…
—- Update —-
2007-09-14 @ 16:29:
There’s a much better solution in a later blog entry that deinterlaces sans artifacts :