![]() |
|
stab() with zero range - Printable Version +- Selur's Little Message Board (https://forum.selur.net) +-- Forum: Hybrid - Support (https://forum.selur.net/forum-1.html) +--- Forum: Problems & Questions (https://forum.selur.net/forum-3.html) +--- Thread: stab() with zero range (/thread-4175.html) |
stab() with zero range - Graven - 04.08.2025 I would have thought that stab() with a range of zero would have a placebo effect, but on the test video I tried it appears to have a significant effect (i.e. 2-3% increase) on the resulting lossless encoded video size. Not that I can see it visually, mind you. Is this to be expected? Ahhh, setting range=1 gives the same file size ... so maybe 0 is just treated as 1 RE: stab() with zero range - Selur - 04.08.2025 Hmm,.. I wonder why. With range=1 Hybrid uses: clip = stabilize.Stab(clp=clip,mirror=0)clip = stabilize.Stab(clp=clip,range=0,mirror=0)def Stab(clp, range=1, dxmax=4, dymax=4, mirror=0):
if not isinstance(clp, vs.VideoNode):
raise TypeError('Stab: This is not a clip')
temp = AverageFrames(clp, weights=[1] * 15, scenechange=25 / 255)
if hasattr(core,'zsmooth'):
inter = core.std.Interleave([core.zsmooth.Repair(temp, AverageFrames(clp, weights=[1] * 3, scenechange=25 / 255), 1), clp])
else:
inter = core.std.Interleave([core.rgvs.Repair(temp, AverageFrames(clp, weights=[1] * 3, scenechange=25 / 255), 1), clp])
mdata = core.depan.DePanEstimate(inter, range=range, trust=0, dxmax=dxmax, dymax=dymax)
last = core.depan.DePan(inter, data=mdata, offset=-1, mirror=mirror)
return last[::2]depan.DePanEstimate(clip clip[, int range=0, float trust=4.0, int winx, int winy, int wleft=-1, int wtop=-1, int dxmax=winx/4, int dymax=winy/4, float zoommax=1.0, float stab=1.0, float pixaspect=1.0])
...
range: Number of previous (and also next) frames (fields) near requested frame to estimate motion.should differ assuming the motion does change between the frames,... Cu Selur |