[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