diff --git a/av1/encoder/block.h b/av1/encoder/block.h
index ecbc1aa..35af535 100644
--- a/av1/encoder/block.h
+++ b/av1/encoder/block.h
@@ -1352,9 +1352,9 @@
   //! Flag to indicate to test the superblock MV for the coding block in the
   // nonrd_pickmode.
   int sb_me_block;
-  //! Flag to indicate superblock selected column scroll.
+  //! Counter for superblock selected column scroll.
   int sb_col_scroll;
-  //! Flag to indicate superblock selected row scroll.
+  //! Counter for superblock selected row scroll.
   int sb_row_scroll;
   //! Motion vector from superblock MV derived from int_pro_motion() in
   // the variance_partitioning.
diff --git a/av1/encoder/encodeframe.c b/av1/encoder/encodeframe.c
index e971c9c..4bb5c0d 100644
--- a/av1/encoder/encodeframe.c
+++ b/av1/encoder/encodeframe.c
@@ -175,6 +175,8 @@
 void av1_init_rtc_counters(MACROBLOCK *const x) {
   av1_init_cyclic_refresh_counters(x);
   x->cnt_zeromv = 0;
+  x->sb_col_scroll = 0;
+  x->sb_row_scroll = 0;
 }
 
 void av1_accumulate_rtc_counters(AV1_COMP *cpi, const MACROBLOCK *const x) {
@@ -1281,8 +1283,6 @@
     x->sb_me_block = 0;
     x->sb_me_partition = 0;
     x->sb_me_mv.as_int = 0;
-    x->sb_col_scroll = 0;
-    x->sb_row_scroll = 0;
     x->sb_force_fixed_part = 1;
     x->color_palette_thresh = 64;
     x->force_color_check_block_level = 0;
diff --git a/av1/encoder/ratectrl.c b/av1/encoder/ratectrl.c
index 0953089..571411d 100644
--- a/av1/encoder/ratectrl.c
+++ b/av1/encoder/ratectrl.c
@@ -3327,11 +3327,15 @@
   }
   // Update the high_motion_content_screen_rtc flag on TL0. Avoid the update
   // if too many consecutive frame drops occurred.
-  const uint64_t thresh_high_motion = 9 * 64 * 64;
+  const int scale =
+      (unscaled_src->y_width * unscaled_src->y_height > 1920 * 1080) ? 24 : 10;
+  const uint64_t thresh_high_motion = scale * 64 * 64;
   if (cpi->svc.temporal_layer_id == 0 && rc->drop_count_consec < 3) {
     cpi->rc.high_motion_content_screen_rtc = 0;
     if (cpi->oxcf.speed >= 11 &&
         cpi->oxcf.tune_cfg.content == AOM_CONTENT_SCREEN &&
+        rc->num_col_blscroll_last_tl0 == 0 &&
+        rc->num_row_blscroll_last_tl0 == 0 &&
         rc->percent_blocks_with_motion > 40 &&
         rc->prev_avg_source_sad > thresh_high_motion &&
         rc->avg_source_sad > thresh_high_motion &&
diff --git a/av1/encoder/speed_features.c b/av1/encoder/speed_features.c
index fe1e0af..3d43845 100644
--- a/av1/encoder/speed_features.c
+++ b/av1/encoder/speed_features.c
@@ -1706,7 +1706,7 @@
   if (cpi->oxcf.tune_cfg.content == AOM_CONTENT_SCREEN) {
     // TODO(marpan): Check settings for speed 7 and 8.
     if (speed >= 7) {
-      sf->rt_sf.reduce_mv_pel_precision_highmotion = 1;
+      sf->rt_sf.reduce_mv_pel_precision_highmotion = 0;
       sf->mv_sf.use_bsize_dependent_search_method = 0;
       sf->rt_sf.skip_cdef_sb = 1;
       sf->rt_sf.increase_color_thresh_palette = 1;
@@ -1725,7 +1725,6 @@
       sf->rt_sf.nonrd_prune_ref_frame_search = 3;
       sf->rt_sf.var_part_split_threshold_shift = 10;
       sf->mv_sf.subpel_search_method = SUBPEL_TREE_PRUNED_MORE;
-      sf->rt_sf.reduce_mv_pel_precision_highmotion = 3;
       sf->rt_sf.reduce_mv_pel_precision_lowcomplex = 1;
       sf->lpf_sf.cdef_pick_method = CDEF_PICK_FROM_Q;
       sf->rt_sf.nonrd_check_partition_merge_mode = 0;
diff --git a/av1/encoder/var_based_part.c b/av1/encoder/var_based_part.c
index 3027726..d4e196c 100644
--- a/av1/encoder/var_based_part.c
+++ b/av1/encoder/var_based_part.c
@@ -1368,9 +1368,9 @@
       x->sb_me_mv.as_int = mi->mv[0].as_int;
       if (cpi->svc.temporal_layer_id == 0) {
         if (abs(mi->mv[0].as_mv.col) > 16 && abs(mi->mv[0].as_mv.row) == 0)
-          x->sb_col_scroll = 1;
+          x->sb_col_scroll++;
         else if (abs(mi->mv[0].as_mv.row) > 16 && abs(mi->mv[0].as_mv.col) == 0)
-          x->sb_row_scroll = 1;
+          x->sb_row_scroll++;
       }
     } else {
       x->sb_me_partition = 0;
