Log in

View Full Version : Motion compensation


wyti
7th November 2009, 11:35
Hi everyone, i see in a lot of filter the following thing :
super = MSuper(c)
backward_vectors = MAnalyse(super, isb = true)
forward_vectors = MAnalyse(super, isb = false)
forward_compensation = MFlow(c,super, forward_vectors)
backward_compensation = MFlow(c,super, backward_vectors)
c = interleave(forward_compensation, c, backward_compensation)
c = use you spatio temporal denoiser
c = selectevery(c,3,1)

I know people call that motion compensated "filter name". But i don't get the idea, why use something like Mflow who create sometimes very ugly frames, and why if the spation temporal denoiser support 3 frames (one before and one after) in it's temporal part, something like this is needed.

Would it be possible to use an another way of increasing the framerate (like MSU one) or do MFlow something special who is very interesting ?

MfA
13th November 2009, 18:07
I know people call that motion compensated "filter name". But i don't get the idea, why use something like Mflow who create sometimes very ugly frames, and why if the spation temporal denoiser support 3 frames (one before and one after) in it's temporal part, something like this is needed.
Because non MC spatio-temporal denoisers tend to only work on static content (ignoring non-local denoisers for a moment, in practice they rarely have enough search range to be able to do without MC either). When the images at a given location don't match up between frames the temporal denoising essentially gets turned off (if it doesn't you get ghosting).

That's why an "ugly frame" is not a problem ... regions which completely fail to match up with the frame to be filtered will be ignored by the denoiser anyway.

MSU's filter creates interpolated frames ... the script you posted creates frame where the image content from neighbouring frames is put in the same locations as in the present frame through MC. Some of the steps in the process are similar but they are still two very different things.

wyti
13th November 2009, 20:01
Thanks for you explanation.

i'll try to rephrase this (because not sure if i understand it right).

The grain on the surface become the grain of the next frames but the objects in themself don't move in interpolated frame, so the denoiser do it's job right and when Motion Compensation give bad result, they're ignored.

You speak of ghosting, I know fft3d filter do some, would it be better to use it without MC or is this a different kind of ghosting ?