From: Dmitry Kovalev Date: Sat, 1 Mar 2014 00:09:17 +0000 (-0800) Subject: Merge "Replacing int_mv with MV." X-Git-Tag: v1.4.0~2197 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=4aacfb0f859280ae73ef20f7b717203793624f47;p=libvpx Merge "Replacing int_mv with MV." --- 4aacfb0f859280ae73ef20f7b717203793624f47 diff --cc vp9/encoder/vp9_pickmode.c index e739e34c0,05ba651c7..edb14ea42 --- a/vp9/encoder/vp9_pickmode.c +++ b/vp9/encoder/vp9_pickmode.c @@@ -272,24 -267,15 +272,24 @@@ int64_t vp9_pick_inter_mode(VP9_COMP *c continue; sub_pixel_motion_search(cpi, x, tile, bsize, mi_row, mi_col, - &frame_mv[NEWMV][ref_frame]); + &frame_mv[NEWMV][ref_frame].as_mv); } - mbmi->mode = this_mode; - mbmi->mv[0].as_int = frame_mv[this_mode][ref_frame].as_int; - vp9_build_inter_predictors_sby(xd, mi_row, mi_col, bsize); + if (frame_mv[this_mode][ref_frame].as_int == 0) { + dist = x->mode_sad[ref_frame][INTER_OFFSET(ZEROMV)]; + } else if (this_mode != NEARESTMV && + frame_mv[NEARESTMV][ref_frame].as_int == + frame_mv[this_mode][ref_frame].as_int) { + dist = x->mode_sad[ref_frame][INTER_OFFSET(NEARESTMV)]; + } else { + mbmi->mode = this_mode; + mbmi->mv[0].as_int = frame_mv[this_mode][ref_frame].as_int; + vp9_build_inter_predictors_sby(xd, mi_row, mi_col, bsize); + dist = x->mode_sad[ref_frame][INTER_OFFSET(this_mode)] = + cpi->fn_ptr[bsize].sdf(p->src.buf, p->src.stride, + pd->dst.buf, pd->dst.stride, INT_MAX); + } - dist = cpi->fn_ptr[bsize].sdf(p->src.buf, p->src.stride, - pd->dst.buf, pd->dst.stride, INT_MAX); this_rd = rate + dist; if (this_rd < best_rd) {