View Full Version : Need Filter against "one line bobbing" in progressive source
Beave
19th December 2005, 16:14
I have some 720p captures, that randomly jump up and down by one line. I guess something went wrong, when making them progressive. It looks kind of ugly and hurts the compressebility. The decimate filter also has some trouble finding the dublicates.
Is there some avisynth filter, that would detect if the picture jumps one pixel line down or up and corrects it? Is there an official name for this effect? Maybe I can do a search for it then.
redfordxx
20th December 2005, 11:40
Just a starting idea, you have to finalize it:
How about create one-line-shifted duplicate of the clip and then compare frames with previous. You will have probably to upsample it coz you can't shift YV12 by one line.
For comparing:Decimate, PSNR... I don't know, you have to find out which metric gives you good values for some threshold. Maybe it's better to compare only some side parts of the movie, for it's faster and there could be less motion. E.g.:line1=StackHorizontal(clip.crop(32,32,320,-32)),clip.crop(-32-320,32,320,-32))
clipYUY2=clip.ConvertToYUY2(<matrix>)
line2=StackHorizontal(clipYUY2.crop(32,33,320,-31)),clipYUY2.crop(-32-320,33,320,-31))Then compare line1 and line2 consecutive frames...
Then conditional filtering.
Beave
20th December 2005, 22:32
Yeah, thanks. I guess there will be a way by using some avisynth programming, but I'm not as good in this, as I would like.
I tried the DePan() Filter, which gave me a better result than without. Some parts still jump up and down while others stay fixed. This filter only shifts part of the picture, but it looks smoother overall. Don't know what side effects this filter has on other parts of the movie though.
That's what I tried:
mpeg2source("720p_source.d2v",cpu=4,iPP=false)
SelectOdd()
i = ConvertToYV12()
mdata = DePanEstimate(i)
DePanStabilize(i, data=mdata, dymax=1, dxmax=0, info =true)
Decimate()
ColorMatrix()
Any other ideas I could try?
Beave
5th January 2006, 17:54
I got another idea:
There is a small black bar at the bottom which could be cropped away. This bar also changes by one pixel randomly every few frames when the picture moves.
Maybe I could take some filter that could give me an autocrop value which I could write into a variable and compare that value to the one from my previous frame. If this value changes by one pixel I could then change the cropping parameters to compensate for that "bobbing". What do you think? Could it work somehow?
Unfortunatly I'm not that good in avs script writing so I'm asking for a little help here. Could someone point me into the right direction, please?
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.