Tricubic interpolation

I have been thinking a lot about how to convert between various frame rates. Basic frame rate conversion works by dropping or duplicating frames. For example converting 30fps material to 25fps material will drop one frame in every six. More advanced techniques such as those employed by Motion Perfect or MSU AFRC are able to create new frames based on the existing frames that exist. These frames are more than a simple blend of the existing frames and use motion detection algorithms to resolve an intermediate frame from two source frames.

The approach that I would like to try is to use tricubic interpolation this is similar to the well known bicubic interpolation that is used to scale images in two dimensions. Tricubic interpolation operates in three dimensions x y and t. While there exists a library for calculating interpolated points in three dimensions, I have no clue how to use the library for my purposes because I do not yet fully understand how to compute the numerical derivatives.

Convert 4:3 to 16:9 Pal

I had some video footage at 4:3 aspect which I wanted to scale and crop to fit a 16:9 wide-screen PAL format. My first attempt was to scale the video to 720×540 (maintaining the 4:3 aspect ratio) and then crop to 720×405 (a 16:9 ratio)

mplayer -vf scale=720:540,crop=720:405 movie.mpg

However PAL has a resolution of 720×576 so I then had to scale the video again

mplayer -vf scale=720:540,crop=720:405,scale=720:576 -aspect 16/9 movie.mpg

What I wanted was to do this in a more simple manner. I realised that I mearly need to scale it to be larger in the first operation, But how much larger? Well since I wanted to crop the same proportion of the image I simply needed to calculate the aspect of the cropped proportion. Which was 540/405 or 4/3 So I actually want my video to be 4/3 taller than its final height. So we want the movie to be 576 × 4/3 = 768

mplayer -vf scale=720:768,crop=720:576 -aspect 16/9 movie.mpg

Scale Diagram