Frame-by-frame vertical jitter removal for interlaced video?
1 Attachment(s)
My VHS captures have occasional vertical jitter, I believe the problem to be a weak "start of frame" signal from the VCR causing the capture card to delay the start of frame for a line or two. So I wrote an AviSynth function that lets you manually correct these glitches, frame by frame:
Code:
function MoveFieldDownAndBackfill(clip c, int numRows) { Code:
ShiftFieldsDownAndBackfill(6,0,1) Sometimes you will need to shift both fields down by up to 2 lines each. This code is very inefficient, and locating the glitched frames is a manual process, so it's best not to use this on more than a couple of dozen glitches in a video file. But it stabilizes the frame pretty well without resorting to brute force like using something like stab(). I've attached a restored jitter clip that was posted in this thread. Also, another useful thing to do is call FreezeFrame() when the image is static. For example: Code:
FreezeFrame(2,10,7) |
1 Attachment(s)
Negative numbers will now move the field up. Only one function changed:
Code:
function MoveFieldDownAndBackfill(clip c, int numRows) { |
To check my work, I like to put the following line into a 2nd .avs file that loads the first:
Code:
clip = AviSource("MyVideo.avs") I also use FreezeFrame to fix some timebase errors, and occasionally JDL_FreezeRegion when the error is only in part of the frame with little movement. |
Site design, images and content © 2002-2024 The Digital FAQ, www.digitalFAQ.com
Forum Software by vBulletin · Copyright © 2024 Jelsoft Enterprises Ltd.