Commit 1ed7b5bdd0 for aom

commit 1ed7b5bdd049193d89f98d9ecc446779d01b21de
Author: Bhaskarabhatla V S K S Yaswanth Sastry <yaswanth.sastry@ittiam.com>
Date:   Mon Feb 16 16:43:38 2026 +0530

    Improve rectangular pruning sfs in speed 3

    This patch extends the sf 'rect_partition_eval_thresh' to speed=3. Also,
    the sf 'less_rectangular_check_level' is made less aggressive for higher
    QPs for speed 3.

    Encoder performance results averaged over all resolutions are as
    follows:

          Encoder Instruction          BD-Rate Loss(%)
     cpu   Count Reduction(%)   avg.psnr   ssim    vmaf   vmaf_neg
      3         -2.62           -0.4184  -0.7264 -0.8790  -0.7874

    STATS_CHANGED for speed = 3.

    Change-Id: I06554213a4b9b0859cc6ed0fdaf353af0ad748a0

diff --git a/av1/encoder/speed_features.c b/av1/encoder/speed_features.c
index 8b3b4ebede..fd69f4e406 100644
--- a/av1/encoder/speed_features.c
+++ b/av1/encoder/speed_features.c
@@ -1092,7 +1092,6 @@ static void set_good_speed_features_framesize_independent(
   sf->gm_sf.prune_ref_frame_for_gm_search = boosted ? 0 : 1;
   sf->gm_sf.disable_gm_search_based_on_stats = 1;

-  sf->part_sf.less_rectangular_check_level = 1;
   sf->part_sf.ml_prune_partition = 1;
   sf->part_sf.prune_ext_partition_types_search_level = 1;
   sf->part_sf.prune_part4_search = 2;
@@ -1265,7 +1264,6 @@ static void set_good_speed_features_framesize_independent(
     sf->gm_sf.prune_zero_mv_with_sse = 1;
     sf->gm_sf.num_refinement_steps = 0;

-    sf->part_sf.less_rectangular_check_level = 2;
     sf->part_sf.simple_motion_search_prune_agg =
         allow_screen_content_tools
             ? SIMPLE_AGG_LVL0
@@ -2918,9 +2916,9 @@ void av1_set_speed_features_qindex_dependent(AV1_COMP *cpi, int speed) {
     }
   }

-  if (speed >= 4) {
+  if (speed >= 3) {
     // Disable rectangular partitions for lower quantizers
-    const int aggr = AOMMIN(1, speed - 4);
+    const int aggr = (speed <= 4) ? 0 : 1;
     const int qindex_thresh[2] = { 65, 80 };
     int disable_rect_part;
     disable_rect_part = !boosted;
@@ -2947,8 +2945,13 @@ void av1_set_speed_features_qindex_dependent(AV1_COMP *cpi, int speed) {
         sf->mv_sf.search_method = NSTEP_8PT;
       }
     }
+    sf->part_sf.less_rectangular_check_level = 1;
   }

+  if (speed == 3)
+    sf->part_sf.less_rectangular_check_level =
+        (cm->quant_params.base_qindex >= 170) ? 1 : 2;
+
   if (speed >= 4) {
     // Disable LR search at low and high quantizers and enable only for
     // mid-quantizer range.
@@ -2961,6 +2964,7 @@ void av1_set_speed_features_qindex_dependent(AV1_COMP *cpi, int speed) {
         sf->lpf_sf.disable_wiener_coeff_refine_search = true;
       }
     }
+    sf->part_sf.less_rectangular_check_level = 2;
   }

   if (speed == 1) {