[Ffmpeg-cvslog] CVS: ffmpeg/libavcodec motion_est_template.c, 1.29, 1.30 utils.c, 1.179, 1.180 avcodec.h, 1.464, 1.465

Michael Niedermayer michaelni
Sun May 7 23:10:32 CEST 2006


On Sun, May 07, 2006 at 09:59:14PM +0200, Guillaume POIRIER wrote:
> Hi,
> Michael Niedermayer CVS a ?crit :
> >Update of /cvsroot/ffmpeg/ffmpeg/libavcodec
> >In directory mail:/var2/tmp/cvs-serv10138
> >
> >Modified Files:
> >	motion_est_template.c utils.c avcodec.h 
> >Log Message:
> >make zero motion vector threshold user setable
> > 
> >
> Could you give us, poor mortals, some more information about this new 
> option? What happens if you lower/raise it? 

if the surrounding MVs are 0,0 and the score of the current block with MV=0,0
is below that threshold then 0,0 is used as motion vector and further 
motion estimation is skiped

xvid has something similar, except that their test is for equal MVs instead
of 0,0 and their threshold is dynamically calculated as the MAX or MIN of the
surrounding blocks (this algorithm is from the EPZS paper IIRC) and is turned
on when cartoon mode is used

a long time ago i tried the EPZS skip algo and found no improvment in speed 
or qualty, maybe that should be tried again though (needs volunteer though/
i wont do it anytime soon)

> Why would you want to tune 
> it (what kind of material, ...)

i dont know, its just a value which was hardcoded at 256 until now ...
raising it should make motion estimation faster and prefer 0,0 MVs

> >+
> >+    /**
> >+     *
> >+     * note: value depends upon the compare functin used for fullpel ME
> >+     * - encoding: set by user.
> >+     * - decoding: unused
> >+     */
> >+    int mv0_threshold;
> >} AVCodecContext;
> >
> Somehow, It would be quite cool if MEncoder could use FFmpeg's option 
> parser, so we wouldn't need to update MEncoder each time we want to take 
> advantage of lavc's new options.


> What would it take to do that?

a volunteer :)
on the ffmpeg specific side of this its either
going over the list of AVOptions and adding them into the applications
parser dynamically or feeding the option string(s) from the comand line
into av_set_string() whichever is easier/prefered



In the past you could go to a library and read, borrow or copy any book
Today you'd get arrested for mere telling someone where the library is

More information about the ffmpeg-cvslog mailing list