From 5f39262dccb82a46cbce7a51c255432d22ef4049 Mon Sep 17 00:00:00 2001 From: Marco Date: Fri, 14 Apr 2017 10:16:44 -0700 Subject: [PATCH] vp9: Adjust speed features for speed 8 at low resoln. For low resolutions (<= CIF): use quarter-pixel and simple_block_yrd. ~5% gain on RTC_derf. ~6-7% slowdown on ARM. Change-Id: I4439ebd1116b9decac04786503f978840b68a60c --- vp9/encoder/vp9_speed_features.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/vp9/encoder/vp9_speed_features.c b/vp9/encoder/vp9_speed_features.c index f74b6b0e9..54a90c77b 100644 --- a/vp9/encoder/vp9_speed_features.c +++ b/vp9/encoder/vp9_speed_features.c @@ -533,7 +533,11 @@ static void set_rt_speed_feature_framesize_independent( if (cpi->row_mt && cpi->oxcf.max_threads > 1) sf->adaptive_rd_thresh_row_mt = 1; - sf->mv.subpel_force_stop = (content == VP9E_CONTENT_SCREEN) ? 3 : 2; + if (content == VP9E_CONTENT_SCREEN) + sf->mv.subpel_force_stop = 3; + else if (cm->width > 352 && cm->height > 288) + sf->mv.subpel_force_stop = 2; + if (content == VP9E_CONTENT_SCREEN) sf->lpf_pick = LPF_PICK_MINIMAL_LPF; // Only keep INTRA_DC mode for speed 8. if (!is_keyframe) { @@ -555,13 +559,13 @@ static void set_rt_speed_feature_framesize_independent( } // Since the short_circuit_low_temp_var is used, reduce the // adaptive_rd_thresh level. - if (cm->width > 320 && cm->height > 240) + if (cm->width > 352 && cm->height > 288) 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; + sf->use_simple_block_yrd = 1; } // Turn off adaptive_rd_thresh if row_mt is on for speed 5, 6, 7. if (speed >= 5 && speed < 8 && cpi->row_mt && cpi->num_workers > 1) {