[Ffmpeg-cvslog] r7325 - trunk/libavcodec/motion_est.c
michael
subversion
Sun Dec 17 13:07:09 CET 2006
Author: michael
Date: Sun Dec 17 13:07:09 2006
New Revision: 7325
Modified:
trunk/libavcodec/motion_est.c
Log:
limit x/ymin/max to me_range
slight psnr/bitrate gain for most but not all files if me_range is used
Modified: trunk/libavcodec/motion_est.c
==============================================================================
--- trunk/libavcodec/motion_est.c (original)
+++ trunk/libavcodec/motion_est.c Sun Dec 17 13:07:09 2006
@@ -689,6 +689,7 @@
static inline void get_limits(MpegEncContext *s, int x, int y)
{
MotionEstContext * const c= &s->me;
+ int range= c->avctx->me_range >> (1 + !!(c->flags&FLAG_QPEL));
/*
if(c->avctx->me_range) c->range= c->avctx->me_range >> 1;
else c->range= 16;
@@ -710,6 +711,12 @@
c->xmax = - x + s->mb_width *16 - 16;
c->ymax = - y + s->mb_height*16 - 16;
}
+ if(range){
+ c->xmin = FFMAX(c->xmin,-range);
+ c->xmax = FFMIN(c->xmax, range);
+ c->ymin = FFMAX(c->ymin,-range);
+ c->ymax = FFMIN(c->ymax, range);
+ }
}
static inline void init_mv4_ref(MotionEstContext *c){
More information about the ffmpeg-cvslog
mailing list