fvisagie
20th November 2012, 14:28
Hi All,
I'm missing something about MRecalculate() and I hope you can set me straight. I read that mvtools2.html says
Refines and recalculates motion data of previously estimated (by MAnalyse) motion vectors with different super clip or new parameters set (e.g. lesser block size), after divide, etc. The two-stage method may be also useful for more stable (robust) motion estimation.I also found some discussions on the MVTools thread but am still struggling to find a summary of where and how MRecalculate() is useful.
For instance, the example given by mvtools2.html is
AVISource("c:\test.avi") # or MPEG2Source, DirectShowSource, some previous filter, etc
prefiltered = DeGrainMedian() # some smoothing
super = MSuper(hpad=16, vpad=16, levels=1) # one level is enough for MRecalculate
superfilt = MSuper(prefiltered, hpad=16, vpad=16) # all levels for MAnalyse
backward = MAnalyse(superfilt, isb = true, blksize=16)
forward = MAnalyse(superfilt, isb = false, blksize=16)
# recalculate for original source clip and other block size
forward_re = MRecalculate(super, forward, blksize=8, thSAD=100)
backward_re = MRecalculate(super, backward, blksize=8, thSAD=100)
MFlowFps(super, backward_re, forward_re, num=50, den=1)I understand that motion vectors from a prefiltered clip should generally be stabler and that afterwards you'd use those with your actual input clip, but what's the benefit in the example of doing MAnalyse(blksize=16) followed by MRecalculate(blksize=8), compared to just MAnalyse(blksize=8)? It would seem that blksize=16 helps to find large moving areas and blksize=8 refines the search for finer detail and smaller movement? What other uses are there for MRecalculate()?
I'm missing something about MRecalculate() and I hope you can set me straight. I read that mvtools2.html says
Refines and recalculates motion data of previously estimated (by MAnalyse) motion vectors with different super clip or new parameters set (e.g. lesser block size), after divide, etc. The two-stage method may be also useful for more stable (robust) motion estimation.I also found some discussions on the MVTools thread but am still struggling to find a summary of where and how MRecalculate() is useful.
For instance, the example given by mvtools2.html is
AVISource("c:\test.avi") # or MPEG2Source, DirectShowSource, some previous filter, etc
prefiltered = DeGrainMedian() # some smoothing
super = MSuper(hpad=16, vpad=16, levels=1) # one level is enough for MRecalculate
superfilt = MSuper(prefiltered, hpad=16, vpad=16) # all levels for MAnalyse
backward = MAnalyse(superfilt, isb = true, blksize=16)
forward = MAnalyse(superfilt, isb = false, blksize=16)
# recalculate for original source clip and other block size
forward_re = MRecalculate(super, forward, blksize=8, thSAD=100)
backward_re = MRecalculate(super, backward, blksize=8, thSAD=100)
MFlowFps(super, backward_re, forward_re, num=50, den=1)I understand that motion vectors from a prefiltered clip should generally be stabler and that afterwards you'd use those with your actual input clip, but what's the benefit in the example of doing MAnalyse(blksize=16) followed by MRecalculate(blksize=8), compared to just MAnalyse(blksize=8)? It would seem that blksize=16 helps to find large moving areas and blksize=8 refines the search for finer detail and smaller movement? What other uses are there for MRecalculate()?