summaryrefslogtreecommitdiff
path: root/vp9/encoder/vp9_pickmode.c
diff options
context:
space:
mode:
authorMarco <marpan@google.com>2016-02-24 16:16:44 -0800
committerMarco <marpan@google.com>2016-03-11 09:22:36 -0800
commitcaa8de547f5860bfbb83626811d631dbf6d2b5d1 (patch)
treedc9df9139897eb8f09692b4cea4f65c503bb9c0e /vp9/encoder/vp9_pickmode.c
parentc3d6da666ec2564611d1fac0759a8a453726ec9a (diff)
downloadlibvpx-caa8de547f5860bfbb83626811d631dbf6d2b5d1.tar
libvpx-caa8de547f5860bfbb83626811d631dbf6d2b5d1.tar.gz
libvpx-caa8de547f5860bfbb83626811d631dbf6d2b5d1.tar.bz2
libvpx-caa8de547f5860bfbb83626811d631dbf6d2b5d1.zip
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
Diffstat (limited to 'vp9/encoder/vp9_pickmode.c')
-rw-r--r--vp9/encoder/vp9_pickmode.c7
1 files changed, 5 insertions, 2 deletions
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.