From 715c30f034fda8d005935308567ec0efb8f2ab2c Mon Sep 17 00:00:00 2001 From: Jerome Jiang Date: Tue, 4 Dec 2018 18:37:02 -0800 Subject: [PATCH] vp9 screen: Update motion search offset when set to NSTEP. Search method and step parameter might be changed in speed settings. In this case, we should update the search area offset due to the change of search method. Change-Id: I51dc584bbf35e998757da326355dd4b8a4d0093f --- vp9/encoder/vp9_encoder.c | 3 +++ vp9/encoder/vp9_speed_features.c | 9 +-------- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/vp9/encoder/vp9_encoder.c b/vp9/encoder/vp9_encoder.c index a73185623..7d75bc7b7 100644 --- a/vp9/encoder/vp9_encoder.c +++ b/vp9/encoder/vp9_encoder.c @@ -3873,6 +3873,9 @@ static int encode_without_recode_loop(VP9_COMP *cpi, size_t *size, set_size_independent_vars(cpi); set_size_dependent_vars(cpi, &q, &bottom_index, &top_index); + // search method and step parameter might be changed in speed settings. + init_motion_estimation(cpi); + if (cpi->sf.copy_partition_flag) alloc_copy_partition_data(cpi); if (cpi->sf.svc_use_lowres_part && diff --git a/vp9/encoder/vp9_speed_features.c b/vp9/encoder/vp9_speed_features.c index 9b6c69a73..4e01cc31f 100644 --- a/vp9/encoder/vp9_speed_features.c +++ b/vp9/encoder/vp9_speed_features.c @@ -797,18 +797,11 @@ static void set_rt_speed_feature_framesize_independent( } // Special case for screen content: increase motion search on base spatial // layer when high motion is detected or previous SL0 frame was dropped. - // Avoid speed 5 for as there is an issue with SVC datarate test. - // TODO(marpan/jianj): Investigate issue at speed 5. - if (cpi->oxcf.content == VP9E_CONTENT_SCREEN && cpi->oxcf.speed > 5 && + if (cpi->oxcf.content == VP9E_CONTENT_SCREEN && cpi->oxcf.speed >= 5 && cpi->svc.spatial_layer_id == 0 && (cpi->rc.high_num_blocks_with_motion || cpi->svc.last_layer_dropped[0])) { sf->mv.search_method = NSTEP; sf->mv.fullpel_search_step_param = 2; - // TODO(marpan/jianj): Investigate issue for lower setting of step_param - // for spatial layers (namely on lower layers). - if (cpi->use_svc && cm->width != cpi->oxcf.width && - cm->height != cpi->oxcf.height) - sf->mv.fullpel_search_step_param = 4; } } -- 2.40.0