Quote:
Originally Posted by Myrsloik
I'll increase it to 63 for the next version. But be aware that once a frames only changes +-1% it probably won't have a visible impact at all. All calculations are done with no loss of precision.
|
Great, thanks - would it be possible to get even more? I am aiming for at least a 30x speedup, which would mean 30*3,8 (19/5) frames (if the function above is used to determine the weight for each frame) need to be processed.
Quote:
Originally Posted by Myrsloik
How accurate does it have to be? Chopped off sinc not good enough?
|
I replicated the effect in Photoshop and a few percent off never made a visible difference. If possible, I would still prefer a fair degree of precision but in the end, if I can load a ProRes444 (12bit) file and render to EXR or DPX without any degradation I am fine.
Here is a sketch for the script, obviously this is in AVS style and even there I don't really have an idea how to do it but it should give an idea what I have in mind. If you have any ideas what to improve conceptually or how to actually execute it, feel free to post it. :-)
Code:
function haventcomeupwithacoolnameyet(parameters)
{
speedup = default( speedup, 5 ) # speedup rate, float
pre_speedup = default( pre_speedup, 0 ) # if this offers no speed gain, use it to determine the threshold where more samples don't make the result any smoother
shutter = default(shutter, 1 ) # 1 = symmetrical blend (the one posted)
# 2 = asymmetrical blend
# 3 = square shutter, can be >360°, rounded to nearest possible value
# 4 = experimental idea, after first pass, pixels with higher local contrast are given more weight in second pass
cutoff = default(false) # cutoff negative weights
pad = default(false) # optional padding to 360° shutter for >360° shutter sources with MVtools before frame averaging, optional denoising
warnings = default(true) # show only warnings
OSD = default(false) # displays parameters, frame count pre/post and warnings
bars = default(false) # visualises how blending works by generating blank clip with white bars on grey background with clip properties (optionally show video as pip in corner)
# generate_frame_weights() outputs weight for each frame based on the selected blend type
# For square shutters, round to multiple of 360°/speedup
generate_frame_weights(speedup, shutter) #outputs weight for each frame based on the selected shutter type
{however that might work...} # generates w1, w2, w4, ...,w99
c.misc.AverageFrames(clip, [w1, w2, w4, ...,w99])
}