Code
function contrabob(clip c, string "speed"){speed = default( speed, "fast" ) # "fast" = bob(), "slow" = NNEDI3(speed=="fast") ? c.bob(-.5,.25) \ c.nnedi3(field=-2)maxx=last.mt_logic(last.selectevery(1,-1),"max",U=3,V=3).mt_logic(last.selectevery(1,1),"max",U=3,V=3)minn=last.mt_logic(last.selectevery(1,-1),"min",U=3,V=3).mt_logic(last.selectevery(1,1),"min",U=3,V=3)clense(reduceflicker=false).merge(last,0.51)mt_adddiff(mt_makediff(last,last.clense(reduceflicker=false),U=3,V=3),U=3,V=3)sharpen(0,1).mt_clamp(maxx,minn,0,0,U=3,V=3)return(last)}
Code
[...]
movie = main + end
analyse = movie.bob()
output = movie.contrabob("fast") # oder "slow" - aber erst wenn alles andere wirklich stimmt ...
output.srestore(mode=4,dclip=analyse)
Alles anzeigen
... immer unter der Voraussetzung, dass die Quelle das ist, was wir hier annehmen (interlacing mit fieldblending). Bereits eine "kleine" Abweichung von der angenommenen Charakteristik kann die "richtige" Lösung zu einem kapitalen Fehlschlag werden lassen.
(Es gab schon desöfteren den Fall, dass tage- und seitenlang über eine Lösung theoretisiert wurde, und dann kam schließlich doch noch ein Sample, und - siehe da: "Ach! SO ist das?! Okay, dann waren alle bisherigen Vorschläge leider falsch"...)