Interpolate Video


Each video has its own framerate. If we want to change it (for timelapse or slow motion) the best thing is to shoot the scene with suitable framerate. But even in post production we can do something. The simplest method is to remove some frames to speed up the movie or add some to slow it down (from now on, for simplicity we will consider only the timelapse). Needless to say, the result is not smooth and the viewer will notice it immediately. A better method is to use the interpolation, mediating the pairs of frames that alternate. For example, if we have a sequence of frames 1, 2, 3, 4, 5, 6, 7, 8... we can make a timelapse mixing frames 1 and 2, 3 and 4, 5 and 6, 7 and 8 and so on. So we will have a new sequence of 4 frames instead of the initial 8: $\underline{{12, 34, 56, 78}}$... We will get 50% acceleration but it will always be of bad quality because of the too rough blending between the pairs of frames. Blending can be improved by weighing it differently by 50%frame1 + 50%frame2, but the result is still unsatisfactory. Further improvements can be achieved by using logarithmic or exponential interpolation instead of linear interpolation. But the most sophisticated methods that lead to better results are based on optical flow analysis. These analyses the movement of circumscribed areas over a given period of time. With this method the intermediate frames do not derive from an approximate blending, but from the calculation of the vector of the motion between two frames that determines the displacement (warping) of the moving figure in the new intermediate frame. Interpolate Video works this way.


The practical use of Interpolate Video is a little different than the theory. The interpolate effect tries to create the illusion of a higher frame rate from source footage of very low framerates by averaging frames over time. It averages two input frames for each output frame. You choose a zone to be evaluated (macroblock size) and a radius (search radius) where you can search for this macroblock in the following frames. The Use optic flow button is activated and playback starts. The plugin will calculate the motion vector (which can be made visible by the draw motion vectors button) and apply it to intermediate frames. This operation is CPU intensive. Once the analysis is done, we can scroll the video by unchecking the two buttons and obtaining the desired result. There are two ways of specifying the input frames. You can specify an input frame rate which is lower than the project frame rate (imput frames per seconds). This causes input frames to be taken at even intervals. You can also specify keyframe locations as the positions of the input frames (use keyframes as input). In this mode the output frame rate is used as the input frame rate and you just create keyframes wherever you want to specify an input frame.

The CINELERRA-GG Community, 2021