PDA

View Full Version : Any way to turn low motion into no motion?


PowerMacG4
8th May 2003, 23:12
I am looking for a filter that can take every 16x16 or 8x8 or whatever block, and check if there is motion going on inside that block beyond a certain treshhold. If there is, keep the frame the way it is. If there is no motion, or little amounts of motion, keep the frame solid.
Sort of like Donald's Dup filter, just working with blocks and ME instead of frames and whatever he uses.

Is this possible? Has it been done? Do I have to write it myself? :-)

Guest
9th May 2003, 00:02
Dup is already block-based. I don't see any reason why motion estimation will give you more than a sum of absolute differences. What is the basis of your request? What do you hope to gain over Dup?

PowerMacG4
9th May 2003, 04:24
Well, in certain good anime encodes, areas of the screen which are still, are 100% still, no blocks, no faint moving, just complete stillness. I want to achieve that, but smoothers do not give me the best results for what I am trying to achieve. Dup may be block based, but the version that I have used (newest off of your site), removed entire frames (to my knowledge) and not just the certain blocks which contained little movement.

I will try again later.

Guest
9th May 2003, 04:41
Your first post is not clear. It talks about keeping the entire frame. Now you have clarified that you want to copy and not just detect on a per-block basis. Dup does not do that, although it has been discussed.

You'll have to write it yourself, although I fear it may make disjointed frames.

MasterYoshidino
9th May 2003, 08:17
The closest is Dust filter, it's FaeryDust, if you use it right, should look pretty good. (it has motion detection of shifted chroma/luma) Hope this helps you.

PowerMacG4
9th May 2003, 18:54
Sorry about my earlier post. I read the thread ealier about you discussing making Dup do things in blocks instead of full frame.

Of course, I do not know the Avisynth API, or how to play with the YV12 colorspace. And yes, I've looked at many examples and sample code on avisynth.org. :)

Oh well.

MrTibs
4th June 2003, 17:16
Here is an example of how you can use Temporalsmoother without bluring movement. This will effectively turn low motion into no motion and is excelent at stabilizing backgrounds. The NoMosmooth is used for moving areas and can be replaced with the filter of your choice.

BTW, this is amazing when working with very noisy sources without bluring edges. (Some artifacts are created with higher TempSmooth settings.)

mask=MotionMask(1,10,true,true)
MaskedMix(TemporalSmoother(4),NoMoSmooth() ,mask)