From: Marco Date: Thu, 25 Feb 2016 00:16:44 +0000 (-0800) Subject: vp9 non-rd pickmode. Some adjustments for vbr mode. X-Git-Tag: v1.6.0~303 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=caa8de547f5860bfbb83626811d631dbf6d2b5d1;p=libvpx vp9 non-rd pickmode. Some adjustments for vbr mode. Some adjustments to inter-mode selection for vbr mode. Condition some of the bias to low/zero motion on cbr mode, and don't use int_pro_motion_estimation for golden ref (treat it same as last ref). Change only affect 1 pass vbr mode, speed >=5 (non-rd pickmode). Encoding time increase within ~5%. Avg PSNR/SSIM on RTC set increase by ~2%, all clips up, ranging from 0.5 to 4%. Change-Id: I0048d0104a8816773d91a2b1484d601169d9bad7 --- diff --git a/vp9/encoder/vp9_pickmode.c b/vp9/encoder/vp9_pickmode.c index e53917f6c..f29a5d84a 100644 --- a/vp9/encoder/vp9_pickmode.c +++ b/vp9/encoder/vp9_pickmode.c @@ -1363,7 +1363,9 @@ void vp9_pick_inter_mode(VP9_COMP *cpi, MACROBLOCK *x, continue; if (this_mode == NEWMV) { - if (ref_frame > LAST_FRAME && !cpi->use_svc) { + if (ref_frame > LAST_FRAME && + !cpi->use_svc && + cpi->oxcf.rc_mode == VPX_CBR) { int tmp_sad; int dis, cost_list[5]; @@ -1598,7 +1600,8 @@ void vp9_pick_inter_mode(VP9_COMP *cpi, MACROBLOCK *x, this_rdc.rate += ref_frame_cost[ref_frame]; this_rdc.rdcost = RDCOST(x->rdmult, x->rddiv, this_rdc.rate, this_rdc.dist); - if (cpi->oxcf.speed >= 5 && + if (cpi->oxcf.rc_mode == VPX_CBR && + cpi->oxcf.speed >= 5 && cpi->oxcf.content != VP9E_CONTENT_SCREEN && !x->sb_is_skin) { // Bias against non-zero (above some threshold) motion for large blocks.