View Full Version : deinterlace 50fps idea
Terka
24th June 2005, 12:39
after trying many deinterlacers at 50i -> 50p every time i got flickering results. i tried VDub convolution 3d and tre result for static parts was much better. is there any possibility to select non moving (small moving=flickering)parts and process them using layering with prev and next frames. I think could be a way to get interesting results. Or some sugestion to good deinterlace method? :thanks:
scharfis_brain
24th June 2005, 12:59
somekindof50fpsdeinterlacer()
last.trim(1,0).mergeluma(last,0.5).mergechroma(last,0.5)
Terka
27th June 2005, 08:20
yes, but the big parts become blurred-motion blur. if i know there are utilities (mv-tools) to select the large moving areas, where the merging wont be.
Didée
27th June 2005, 10:04
So you should try mvbob() (http://forum.doom9.org/showthread.php?p=606487&highlight=mvbob%28%29#post606487). Even if the inventor is not fully satisfied with it ;) , it is one of the most advanced bob-deinterlacers we do have for AviSynth. Probably "the" most advanced one.
Mug Funky
27th June 2005, 12:11
you could also set the threshold of whatever deinterlacer a bit higher.
kernelbob and tdeint, plus any other deinterlacer that calls itself "smart bob" or "motion-adaptive" will do what i think you're asking. my current favourite is leakKernelBob, which is a sped-up version of kerneldeint. it's got it's limits, but it's great for standards-conversion where the fields will end up back together anyway (albeit with a bit of wobble). also, tdeint is very good (better results than kernelbob, but slower by a fair bit) - it'll check anywhere it can to find pixels it can use, and when there are none it uses a sophisticated interpolation.
Terka
28th June 2005, 11:26
I have already tried mvbob, but the flickering is there (DV camcorder source)
are leakKernelBob and tdeint able to do deinterlace -> 50p? Or better could you write all deiterlacers which are able to do conversion -> 50p thanks :)
mg262
28th June 2005, 11:56
are leakKernelBob and tdeint able to do deinterlace -> 50p? Or better could you write all deiterlacers which are able to do conversion -> 50p thanks :)
I believe Bob means precisely 50i->50p (or equivalent at other frame rates), so anything called xyzBob will do what you want -- although I can't speak for the flickering!
Terka
29th June 2005, 10:55
how can i do select parts which are moving and do the layering only with the rest of picture? is it possible?
mg262
29th June 2005, 12:06
how can i do select parts which are moving and do the layering only with the rest of picture? is it possible?@Mug Funky pointed you at some things which work this way... if you're not happy with those and you want to select the parts of the picture yourself, the filter you are looking for is MaskTools.
Are you sure the flickering is just caused by deinterlacing?
Terka
29th June 2005, 12:35
yes i am. the camcorder is hold in hand :(
Didée
29th June 2005, 13:24
Hmh ... quickly, from the guts:
PutAnyBobberHere( last )
o = last
# mergeluma(temporalsoften(1,255,255,255,2),0.75) # AviSynth Access Violation, yippieh
yv12lutxy(temporalsoften(1,255,255,255,2),"x y 3 * + 4 /",U=2,V=2)
ts=last # .sharpen(0,1) # try this too - should be okay
FlickeringParts=yv12lutxy(ts, ts.temporalsoften(1,255,255,255,2),"255 x y - abs 64 * -")
maskedmerge(o,ts,FlickeringParts)
Should do the job. Completely untested, so check for unwanted artefacts. Luma only, chroma is passed through. Will also denoise. That value of '64' perhaps could be tweaked.
edit: there was a small but important 'abs' missing in the 2nd LUT, which caused ghosting. Script corrected.
Also added a vertical sharpener to the affected parts. It's commented, un-comment it to try it.
Hmh. This seems to make a simple bob() rather smart, and static subtitles etc get rock stable. Some small ghosting appears ... but considering the simplicity and speed, it's not that bad ... what cheek!
Terka
29th June 2005, 13:50
ill try it thanks!
Terka
8th April 2006, 13:30
tried, works quite good, but i had to convert to yv12.
could it be done without the conversion-speedup gain? (changed ->mt_lutxy)
avisource("c:\!psi.avi")
loadplugin("C:\Program Files\AviSynth2\plugins\mt_masktools.dll")
bob()( last )
ConvertToYV12()
o = last
# mergeluma(temporalsoften(1,255,255,255,2),0.75) # AviSynth Access Violation, yippieh
mt_lutxy(temporalsoften(1,255,255,255,2),"x y 3 * + 4 /",U=2,V=2)
ts=last # .sharpen(0,1) # try this too - should be okay
FlickeringParts=mt_lutxy(ts, ts.temporalsoften(1,255,255,255,2),"255 x y - abs 64 * -")
maskedmerge(o,ts,FlickeringParts)
dukey
8th April 2006, 21:12
i want a deinterlacer like this
(mostly for ntsc->pal converts) to make 50fps video
if(frame is progressive) {
duplicate frame
}
else {
seperate fields
double vertical resolution of fields
}
Terka
26th July 2006, 07:32
tried, works quite good, but i had to convert to yv12.
could it be done without the conversion-speedup gain? (changed ->mt_lutxy)
Quote:
avisource("c:\!psi.avi")
loadplugin("C:\Program Files\AviSynth2\plugins\mt_masktools.dll")
bob()( last )
ConvertToYV12()
o = last
# mergeluma(temporalsoften(1,255,255,255,2),0.75) # AviSynth Access Violation, yippieh
mt_lutxy(temporalsoften(1,255,255,255,2),"x y 3 * + 4 /",U=2,V=2)
ts=last # .sharpen(0,1) # try this too - should be okay
FlickeringParts=mt_lutxy(ts, ts.temporalsoften(1,255,255,255,2),"255 x y - abs 64 * -")
maskedmerge(o,ts,FlickeringParts)
foxyshadis
26th July 2006, 09:40
As soon as you start touching masks you're in YV12-only land, sorry. The YUY2->YV12 conversion is extremely fast anyway, it's not like it'll bog you down; the slowdown from using maskedmerge vs mt_merge is likely almost as much. ;) And change ts.temporalsoften(1,255,255,255,2) to ts.temporalsoften(1,255,0,255,2) if there's an absolute need for speed.
Trixter
26th July 2006, 20:35
As soon as you start touching masks you're in YV12-only land, sorry.
I've wondered: Why is this? YV12 is 4:2:0 which is noticable. I've got a good CPU; why can't everything accept YUY2 (4:2:2) or 4:4:4 even? 4:2:0 is produces noticable artifacts on high-contrast edges.
foxyshadis
26th July 2006, 20:51
Because Manao has never wanted to make an interleaved version of masktools. However, MT2 for avisynth 2.6 will support yv16 and yv24 colorspaces, along with yv411 or whatever other planar colorspaces you can come up with. 16-bit support would probably require a lot of rewriting though, sadly.
Anyway, 2.6 is still in pre-alpha stages and it might be quite a while before it's ready. In the meantime, if you want to use other colorspaces, you can use GeneralConvolution (I think that's the name).
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.