Hey all, it's been a while. Recently I updated RollAway to use SVP. Here it is:
Code:
function RollAwaySVP_alpha1(clip c, float amount, int segh, int "pel", int "blk", int "ovr")
{
Assert(c.height%segh == 0, "'segh' must be a dividend of clip height")
ctime = amount/2.0
segs = c.height/segh
den = segs-1
num = den
mult = segs/(ctime/50)
rad = segs/2
test = Default(test, false)
flip = Default(flip, false)
pel = Default(pel, 1)
blk = Default(blk, 16)
ovr = Default(ovr, 2)
thSAD = Default(thSAD, 100)
super = c.SVSuper("{pel:"+String(pel)+"}")
vec = SVAnalyse(super, "{block:{w:"+String(blk)+",h:"+String(blk)+",overlap:"+String(ovr)+"}}")
long = SVSmoothFps(c, super, vec, "{rate:{num:"+String(mult)+",den:1},algo:2}", "www.svp-team.com", 1.0, GetMTMode(true))
stack = BlankClip(long)
GScript("""
for(r=-rad,rad-1,1)
{
nseg = long.SelectEvery(1, -r).Crop(0, (r+rad)*segh, -0, segh)
stack = StackVertical(stack, nseg)
}
""")
return stack.SelectEvery(int(mult), 0).Crop(0, long.height, -0, -0)
}
It requires the SVP plugins, as well as Gavino's GScript (no more recursion!). It's not nearly as fast as cretindesalpes' version, but it doesn't suffer from low bit depth issues like his, and it is far more stable than my previous versions. Give it a try and let me know what you think.