From f16f08e55bce50f3b5200ba9ced2d044b151f8af Mon Sep 17 00:00:00 2001 From: Jerome Jiang Date: Mon, 10 Apr 2017 13:55:35 -0700 Subject: [PATCH] vp9: speed >= 8: Adjust speed settings on ARM. Set adaptive_rd_thresh to 2 when simple block yrd is not used. Fix regression caused by computing y sad without int_pro_motion_estimation on low res motion clips. Overall 0.07% quality loss on rtc_derf. Change only affects low res on speed 8. Change-Id: Ic6a188a56529f1034d6431005fb4b0e24e8a7e27 --- vp9/encoder/vp9_encodeframe.c | 2 +- vp9/encoder/vp9_speed_features.c | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/vp9/encoder/vp9_encodeframe.c b/vp9/encoder/vp9_encodeframe.c index 9b09e3891..aed934fd3 100644 --- a/vp9/encoder/vp9_encodeframe.c +++ b/vp9/encoder/vp9_encodeframe.c @@ -1142,7 +1142,7 @@ static int choose_partitioning(VP9_COMP *cpi, const TileInfo *const tile, mi->mv[0].as_int = 0; mi->interp_filter = BILINEAR; - if (cpi->oxcf.speed >= 8) + if (cpi->oxcf.speed >= 8 && !low_res) y_sad = cpi->fn_ptr[bsize].sdf( x->plane[0].src.buf, x->plane[0].src.stride, xd->plane[0].pre[0].buf, xd->plane[0].pre[0].stride); diff --git a/vp9/encoder/vp9_speed_features.c b/vp9/encoder/vp9_speed_features.c index 2e0ca5b66..f74b6b0e9 100644 --- a/vp9/encoder/vp9_speed_features.c +++ b/vp9/encoder/vp9_speed_features.c @@ -555,7 +555,10 @@ static void set_rt_speed_feature_framesize_independent( } // Since the short_circuit_low_temp_var is used, reduce the // adaptive_rd_thresh level. - sf->adaptive_rd_thresh = 1; + if (cm->width > 320 && cm->height > 240) + sf->adaptive_rd_thresh = 1; + else + sf->adaptive_rd_thresh = 2; } sf->limit_newmv_early_exit = 0; if (cm->width > 320 && cm->height > 240) sf->use_simple_block_yrd = 1;