# HG changeset patch # User michael # Date 1166357229 0 # Node ID dbaae8e5ec55063a65d8c62b1127131e3cbf0258 # Parent 7e907f7d6a2143ceb3cc5a269041c70aebd8304a limit x/ymin/max to me_range slight psnr/bitrate gain for most but not all files if me_range is used diff -r 7e907f7d6a21 -r dbaae8e5ec55 motion_est.c --- a/motion_est.c Sun Dec 17 11:11:44 2006 +0000 +++ b/motion_est.c Sun Dec 17 12:07:09 2006 +0000 @@ -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){