Consolidate simple_motion_search based models

This patch creates a model based on features from simple_motion_search
and outputs the class probability for the 10 partition types.

Currently this replaces the model in simple_motion_search_prune_rect
with a relaxed threshold. But a better performance should be achievable
by fine-tuning the thresholds.

Performance:
 OVR_PSNR | SPEED_UP | SPEED_UP:OVR_PSNR |
  0.038%  |  1.783%  |      46.921:1     |

The PSNR is averaged over 60 frames on midres. The speed up is averaged
over30 frames on 4 midres clips with 5 bitrates each.

STATS_CHANGED

Change-Id: I4d64dab6713867d8f9af06d10420073bdf25c5a4
diff --git a/av1/encoder/encodeframe.c b/av1/encoder/encodeframe.c
index 2e72203..f1bbe3f 100644
--- a/av1/encoder/encodeframe.c
+++ b/av1/encoder/encodeframe.c
@@ -3488,6 +3488,7 @@
   const MV ref_mv_full = { .row = 0, .col = 0 };
   simple_motion_search(cpi, x, mi_row, mi_col, bsize, ref, ref_mv_full,
                        num_planes, use_subpixel);
+  aom_clear_system_state();
 
   // Start getting the features
   int f_idx = 0;
@@ -3525,6 +3526,48 @@
   }
 }
 
+static void full_pixel_motion_search_based_split(
+    AV1_COMP *const cpi, MACROBLOCK *x, int mi_row, int mi_col,
+    BLOCK_SIZE bsize, int *partition_none_allowed, int *partition_horz_allowed,
+    int *partition_vert_allowed, int *do_rectangular_split) {
+  const NN_CONFIG *nn_config = NULL;
+  float split_only_thresh = 0.0f;
+  if (bsize == BLOCK_128X128) {
+    nn_config = &full_pixel_motion_search_based_split_nn_config_128;
+    split_only_thresh = full_pixel_motion_search_based_split_thresh_128;
+  } else if (bsize == BLOCK_64X64) {
+    nn_config = &full_pixel_motion_search_based_split_nn_config_64;
+    split_only_thresh = full_pixel_motion_search_based_split_thresh_64;
+  } else if (bsize == BLOCK_32X32) {
+    nn_config = &full_pixel_motion_search_based_split_nn_config_32;
+    split_only_thresh = full_pixel_motion_search_based_split_thresh_32;
+  } else if (bsize == BLOCK_16X16) {
+    nn_config = &full_pixel_motion_search_based_split_nn_config_16;
+    split_only_thresh = full_pixel_motion_search_based_split_thresh_16;
+  } else if (bsize == BLOCK_8X8) {
+    // Disable BLOCK_8X8 for now
+#if !CONFIG_DISABLE_FULL_PIXEL_SPLIT_8X8
+    nn_config = &full_pixel_motion_search_based_split_nn_config_8;
+    split_only_thresh = full_pixel_motion_search_based_split_thresh_8;
+#endif
+  } else {
+    assert(0 && "Unexpected block size in full_pixel_motion_based_split");
+  }
+  if (nn_config) {
+    float features[6] = { 0 };
+    float score = 0;
+    get_res_var_features(cpi, x, mi_row, mi_col, bsize, features);
+    av1_nn_predict(features, nn_config, &score);
+
+    if (score > split_only_thresh) {
+      *partition_none_allowed = 0;
+      *partition_horz_allowed = 0;
+      *partition_vert_allowed = 0;
+      *do_rectangular_split = 0;
+    }
+  }
+}
+
 // Given a list of ref frames in refs, performs simple_motion_search on each of
 // the refs and returns the ref with the smallest sse. Returns -1 if none of the
 // ref in the list is available. Also stores the best sse and var in best_sse,
@@ -3594,27 +3637,21 @@
 // Performs fullpixel simple_motion_search with LAST_FRAME and ALTREF_FRAME on
 // each subblocks and extract the variance and sse of residues. Then store the
 // var and sse from each partition subblock to features. The DC qindex is also
-// stored in features. The last two entries are whether the current block is
-// located on the right or bottom edge, but current they are not used for bsize
-// less than BLOCK_64X64.
-// Here features is assumed to be a length 21 array.
+// stored in features.
+// Here features is assumed to be a length 19 array.
 // After this function is called, we will store the following to features:
 // features[0:17] = var and sse from subblocks
 // features[18] = DC q_index
-// features[19] = is_bottom
-// features[20] = is_right
-#define FEATURES 21
-static void simple_motion_search_prune_rect_features(
+#define NUM_FEATURES 19
+static void simple_motion_search_prune_part_features(
     AV1_COMP *const cpi, MACROBLOCK *x, PC_TREE *pc_tree, int mi_row,
     int mi_col, BLOCK_SIZE bsize, float *features) {
   // TODO(chiyotsai@google.com): Cache the result of the motion search from the
   // larger bbsize.
-  const AV1_COMMON *const cm = &cpi->common;
   const int w_mi = mi_size_wide[bsize];
   const int h_mi = mi_size_high[bsize];
   int f_idx = 0;
   assert(mi_size_wide[bsize] == mi_size_high[bsize]);
-  assert(!frame_is_intra_only(cm));
   assert(cpi->ref_frame_flags & ref_frame_flag_list[LAST_FRAME] ||
          cpi->ref_frame_flags & ref_frame_flag_list[ALTREF_FRAME]);
 
@@ -3623,8 +3660,8 @@
   const int num_refs = 2;
   const int use_subpixel = 0;
 
-  unsigned int best_sse = 0, best_var = 0;
   unsigned int none_sse = 0, none_var = 0;
+  unsigned int int_features[NUM_FEATURES - 1];
 
   // Doing whole block first to update the mv
   simple_motion_search_get_best_ref(cpi, x, pc_tree, mi_row, mi_col, bsize,
@@ -3638,12 +3675,10 @@
     const int sub_mi_col = mi_col + (r_idx & 1) * w_mi / 2;
     const int sub_mi_row = mi_row + (r_idx >> 1) * h_mi / 2;
 
-    simple_motion_search_get_best_ref(cpi, x, pc_tree, sub_mi_row, sub_mi_col,
-                                      subsize, ref_list, num_refs, use_subpixel,
-                                      r_idx, &best_sse, &best_var);
-
-    features[f_idx++] = logf(1.0f + (float)best_var);
-    features[f_idx++] = logf(1.0f + (float)best_sse);
+    simple_motion_search_get_best_ref(
+        cpi, x, pc_tree, sub_mi_row, sub_mi_col, subsize, ref_list, num_refs,
+        use_subpixel, r_idx, &int_features[f_idx + 1], &int_features[f_idx]);
+    f_idx += 2;
   }
 
   // Horz subblocks
@@ -3652,12 +3687,11 @@
     const int sub_mi_col = mi_col + 0;
     const int sub_mi_row = mi_row + r_idx * h_mi / 2;
 
-    simple_motion_search_get_best_ref(cpi, x, pc_tree, sub_mi_row, sub_mi_col,
-                                      subsize, ref_list, num_refs, use_subpixel,
-                                      -1, &best_sse, &best_var);
+    simple_motion_search_get_best_ref(
+        cpi, x, pc_tree, sub_mi_row, sub_mi_col, subsize, ref_list, num_refs,
+        use_subpixel, -1, &int_features[f_idx + 1], &int_features[f_idx]);
 
-    features[f_idx++] = logf(1.0f + (float)best_var);
-    features[f_idx++] = logf(1.0f + (float)best_sse);
+    f_idx += 2;
   }
 
   // Vert subblock
@@ -3666,17 +3700,21 @@
     const int sub_mi_col = mi_col + r_idx * w_mi / 2;
     const int sub_mi_row = mi_row + 0;
 
-    simple_motion_search_get_best_ref(cpi, x, pc_tree, sub_mi_row, sub_mi_col,
-                                      subsize, ref_list, num_refs, use_subpixel,
-                                      -1, &best_sse, &best_var);
+    simple_motion_search_get_best_ref(
+        cpi, x, pc_tree, sub_mi_row, sub_mi_col, subsize, ref_list, num_refs,
+        use_subpixel, -1, &int_features[f_idx + 1], &int_features[f_idx]);
 
-    features[f_idx++] = logf(1.0f + (float)best_var);
-    features[f_idx++] = logf(1.0f + (float)best_sse);
+    f_idx += 2;
   }
 
   // Whole block
-  features[f_idx++] = logf(1.0f + (float)none_var);
-  features[f_idx++] = logf(1.0f + (float)none_sse);
+  int_features[f_idx++] = none_var;
+  int_features[f_idx++] = none_sse;
+
+  aom_clear_system_state();
+  for (int idx = 0; idx < f_idx; idx++) {
+    features[idx] = logf(1.0f + (float)int_features[idx]);
+  }
 
   const MACROBLOCKD *xd = &x->e_mbd;
   set_offsets(cpi, &xd->tile, x, mi_row, mi_col, bsize);
@@ -3685,89 +3723,96 @@
   const int dc_q = av1_dc_quant_QTX(x->qindex, 0, xd->bd) >> (xd->bd - 8);
   features[f_idx++] = logf(1.0f + (float)(dc_q * dc_q) / 256.0f);
 
-  // Decide whethe we are on the edges
-  features[f_idx++] = (float)(mi_row + h_mi / 2 >= cm->mi_rows);
-  features[f_idx++] = (float)(mi_col + w_mi / 2 >= cm->mi_cols);
-
-  assert(f_idx == FEATURES);
+  assert(f_idx == NUM_FEATURES);
 }
 
-#define NUM_CLASSES 3
-static void simple_motion_search_prune_rect(AV1_COMP *const cpi, MACROBLOCK *x,
-                                            PC_TREE *pc_tree, int mi_row,
-                                            int mi_col, BLOCK_SIZE bsize,
-                                            int *prune_horz, int *prune_vert) {
+#define MAX_NUM_CLASSES 10
+static void simple_motion_search_prune_part(
+    AV1_COMP *const cpi, MACROBLOCK *x, PC_TREE *pc_tree, int mi_row,
+    int mi_col, BLOCK_SIZE bsize, int *partition_none_allowed,
+    int *partition_horz_allowed, int *partition_vert_allowed,
+    int *do_square_split, int *do_rectangular_split, int *prune_horz,
+    int *prune_vert) {
+  const AV1_COMMON *const cm = &cpi->common;
+  // Get model parameters
   const NN_CONFIG *nn_config = NULL;
-  float thresh = 0.0f;
-  const float *ml_mean, *ml_std;
+  const float *prune_thresh = NULL, *only_thresh = NULL;
+  const float *ml_mean = NULL, *ml_std = NULL;
+
   if (bsize == BLOCK_128X128) {
-    nn_config = &simple_motion_search_prune_rect_nn_config_128;
-    ml_mean = simple_motion_search_prune_rect_mean_128;
-    ml_std = simple_motion_search_prune_rect_std_128;
-    thresh = simple_motion_search_prune_rect_thresh_128;
+    nn_config = &simple_motion_search_prune_part_nn_config_128;
+    ml_mean = simple_motion_search_prune_part_mean_128;
+    ml_std = simple_motion_search_prune_part_std_128;
+    prune_thresh = simple_motion_search_prune_part_prune_thresh_128;
+    only_thresh = simple_motion_search_prune_part_only_thresh_128;
   } else if (bsize == BLOCK_64X64) {
-    nn_config = &simple_motion_search_prune_rect_nn_config_64;
-    ml_mean = simple_motion_search_prune_rect_mean_64;
-    ml_std = simple_motion_search_prune_rect_std_64;
-    thresh = simple_motion_search_prune_rect_thresh_64;
+    nn_config = &simple_motion_search_prune_part_nn_config_64;
+    ml_mean = simple_motion_search_prune_part_mean_64;
+    ml_std = simple_motion_search_prune_part_std_64;
+    prune_thresh = simple_motion_search_prune_part_prune_thresh_64;
+    only_thresh = simple_motion_search_prune_part_only_thresh_64;
   } else if (bsize == BLOCK_32X32) {
-    nn_config = &simple_motion_search_prune_rect_nn_config_32;
-    ml_mean = simple_motion_search_prune_rect_mean_32;
-    ml_std = simple_motion_search_prune_rect_std_32;
-    thresh = simple_motion_search_prune_rect_thresh_32;
+    nn_config = &simple_motion_search_prune_part_nn_config_32;
+    ml_mean = simple_motion_search_prune_part_mean_32;
+    ml_std = simple_motion_search_prune_part_std_32;
+    prune_thresh = simple_motion_search_prune_part_prune_thresh_32;
+    only_thresh = simple_motion_search_prune_part_only_thresh_32;
   } else if (bsize == BLOCK_16X16) {
-    nn_config = &simple_motion_search_prune_rect_nn_config_16;
-    ml_mean = simple_motion_search_prune_rect_mean_16;
-    ml_std = simple_motion_search_prune_rect_std_16;
-    thresh = simple_motion_search_prune_rect_thresh_16;
+    nn_config = &simple_motion_search_prune_part_nn_config_16;
+    ml_mean = simple_motion_search_prune_part_mean_16;
+    ml_std = simple_motion_search_prune_part_std_16;
+    prune_thresh = simple_motion_search_prune_part_prune_thresh_16;
+    only_thresh = simple_motion_search_prune_part_only_thresh_16;
   } else if (bsize == BLOCK_8X8) {
-    nn_config = &simple_motion_search_prune_rect_nn_config_8;
-    ml_mean = simple_motion_search_prune_rect_mean_8;
-    ml_std = simple_motion_search_prune_rect_std_8;
-    thresh = simple_motion_search_prune_rect_thresh_8;
+    nn_config = &simple_motion_search_prune_part_nn_config_8;
+    ml_mean = simple_motion_search_prune_part_mean_8;
+    ml_std = simple_motion_search_prune_part_std_8;
+    prune_thresh = simple_motion_search_prune_part_prune_thresh_8;
+    only_thresh = simple_motion_search_prune_part_only_thresh_8;
   } else {
-    assert(0 && "Unexpected block size in simple_motion_prune_rect");
+    assert(0 && "Unexpected block size in simple_motion_prune_part");
   }
 
-  if (nn_config && thresh > 0.0f) {
-    // Get Features
-    float features[FEATURES] = { 0.0f };
-    simple_motion_search_prune_rect_features(cpi, x, pc_tree, mi_row, mi_col,
-                                             bsize, features);
-    for (int f_idx = 0; f_idx < FEATURES; f_idx++) {
-      features[f_idx] =
-          (features[f_idx] - ml_mean[f_idx]) / (0.0001f + ml_std[f_idx]);
-    }
-
-    // Some features are constant in the training data. In this case, disable
-    // these features.
-    if (bsize == BLOCK_128X128) {
-      features[6] = 0.0f;
-      features[7] = 0.0f;
-    }
-    if (bsize < BLOCK_64X64) {
-      features[FEATURES - 2] = 0.0f;
-      features[FEATURES - 1] = 0.0f;
-    }
-
-    const int HORZ = 0, VERT = 1;
-    float scores[NUM_CLASSES] = { 0.0f }, probs[NUM_CLASSES] = { 0.0f };
-
-    av1_nn_predict(features, nn_config, scores);
-    aom_clear_system_state();
-
-    av1_nn_softmax(scores, probs, NUM_CLASSES);
-
-    if (probs[HORZ] <= thresh) {
-      *prune_horz = 1;
-    }
-    if (probs[VERT] <= thresh) {
-      *prune_vert = 1;
-    }
+  // If there is no valid threshold, return immediately.
+  if (!nn_config || (prune_thresh[PARTITION_HORZ] == 0.0f &&
+                     prune_thresh[PARTITION_VERT] == 0.0f)) {
+    return;
   }
+
+  // Get features
+  float features[NUM_FEATURES] = { 0.0f };
+  simple_motion_search_prune_part_features(cpi, x, pc_tree, mi_row, mi_col,
+                                           bsize, features);
+  for (int f_idx = 0; f_idx < NUM_FEATURES; f_idx++) {
+    features[f_idx] = (features[f_idx] - ml_mean[f_idx]) / ml_std[f_idx];
+  }
+
+  // Get probabilities
+  float scores[MAX_NUM_CLASSES] = { 0.0f }, probs[MAX_NUM_CLASSES] = { 0.0f };
+  const int num_classes =
+      (bsize == BLOCK_128X128 || bsize == BLOCK_8X8) ? 4 : 10;
+
+  av1_nn_predict(features, nn_config, scores);
+  aom_clear_system_state();
+
+  av1_nn_softmax(scores, probs, num_classes);
+
+  // Determine if we should prune rectangular partitions.
+  if (cpi->sf.simple_motion_search_prune_rect && !frame_is_intra_only(cm) &&
+      (*partition_horz_allowed || *partition_vert_allowed) &&
+      bsize >= BLOCK_8X8 && !av1_superres_scaled(cm)) {
+    *prune_horz = probs[PARTITION_HORZ] <= prune_thresh[PARTITION_HORZ];
+    *prune_vert = probs[PARTITION_VERT] <= prune_thresh[PARTITION_VERT];
+  }
+
+  // Silence compiler warnings
+  (void)only_thresh;
+  (void)partition_none_allowed;
+  (void)do_square_split;
+  (void)do_rectangular_split;
 }
-#undef NUM_CLASSES
-#undef FEATURES
+#undef MAX_NUM_CLASSES
+#undef NUM_FEATURES
 
 // TODO(jinging,jimbankoski,rbultje): properly skip partition types that are
 // unlikely to be selected depending on previous rate-distortion optimization
@@ -4049,59 +4094,30 @@
 
   MB_MODE_INFO *split_mbmi[4] = { 0 };
 
-  // Perform a full_pixel_search and use the residue to estimate whether we
-  // should split directly.
-  // TODO(chiyotsai@google.com): Try the algorithm on hdres and speed 0.
-  // Also try pruning PARTITION_SPLIT
-  if (cpi->sf.full_pixel_motion_search_based_split && bsize >= BLOCK_8X8 &&
+  // Use simple_motion_search to prune partitions. This must be done prior to
+  // PARTITION_SPLIT to propagate the initial mvs to a smaller blocksize.
+  const int try_split_only =
+      cpi->sf.simple_motion_search_split_only && bsize >= BLOCK_8X8 &&
       do_square_split && mi_row + mi_size_high[bsize] <= cm->mi_rows &&
       mi_col + mi_size_wide[bsize] <= cm->mi_cols && !frame_is_intra_only(cm) &&
-      !av1_superres_scaled(cm)) {
-    const NN_CONFIG *nn_config = NULL;
-    float split_only_thresh = 0.0f;
-    if (bsize == BLOCK_128X128) {
-      nn_config = &full_pixel_motion_search_based_split_nn_config_128;
-      split_only_thresh = full_pixel_motion_search_based_split_thresh_128;
-    } else if (bsize == BLOCK_64X64) {
-      nn_config = &full_pixel_motion_search_based_split_nn_config_64;
-      split_only_thresh = full_pixel_motion_search_based_split_thresh_64;
-    } else if (bsize == BLOCK_32X32) {
-      nn_config = &full_pixel_motion_search_based_split_nn_config_32;
-      split_only_thresh = full_pixel_motion_search_based_split_thresh_32;
-    } else if (bsize == BLOCK_16X16) {
-      nn_config = &full_pixel_motion_search_based_split_nn_config_16;
-      split_only_thresh = full_pixel_motion_search_based_split_thresh_16;
-    } else if (bsize == BLOCK_8X8) {
-#if !CONFIG_DISABLE_FULL_PIXEL_SPLIT_8X8
-      // Disable BLOCK_8X8 for now
-      nn_config = &full_pixel_motion_search_based_split_nn_config_8;
-      split_only_thresh = full_pixel_motion_search_based_split_thresh_8;
-#endif
-    } else {
-      assert(0 && "Unexpected block size in full_pixel_motion_based_split");
-    }
-    if (nn_config) {
-      float features[6] = { 0 };
-      float score = 0;
-      get_res_var_features(cpi, x, mi_row, mi_col, bsize, features);
-      av1_nn_predict(features, nn_config, &score);
+      !av1_superres_scaled(cm);
 
-      if (score > split_only_thresh) {
-        partition_none_allowed = 0;
-        partition_horz_allowed = 0;
-        partition_vert_allowed = 0;
-        do_rectangular_split = 0;
-      }
-    }
+  if (try_split_only) {
+    full_pixel_motion_search_based_split(
+        cpi, x, mi_row, mi_col, bsize, &partition_none_allowed,
+        &partition_horz_allowed, &partition_vert_allowed,
+        &do_rectangular_split);
   }
 
-  // Prune PARTITION_HORZ and PARTITION_VERT. This must be done prior to
-  // PARTITION_SPLIT to propagate the initial mvs to a smaller blocksize.
-  if (cpi->sf.simple_motion_search_prune_rect && !frame_is_intra_only(cm) &&
-      (partition_horz_allowed || partition_vert_allowed) &&
-      bsize >= BLOCK_8X8) {
-    simple_motion_search_prune_rect(cpi, x, pc_tree, mi_row, mi_col, bsize,
-                                    &prune_horz, &prune_vert);
+  const int try_prune_rect =
+      cpi->sf.simple_motion_search_prune_rect && !frame_is_intra_only(cm) &&
+      (partition_horz_allowed || partition_vert_allowed) && bsize >= BLOCK_8X8;
+
+  if (try_prune_rect) {
+    simple_motion_search_prune_part(
+        cpi, x, pc_tree, mi_row, mi_col, bsize, &partition_none_allowed,
+        &partition_horz_allowed, &partition_vert_allowed, &do_square_split,
+        &do_rectangular_split, &prune_horz, &prune_vert);
   }
 
 BEGIN_PARTITION_SEARCH:
@@ -4686,9 +4702,9 @@
 
   if (cpi->sf.ml_prune_ab_partition && ext_partition_allowed &&
       partition_horz_allowed && partition_vert_allowed) {
-    // TODO(huisu@google.com): x->source_variance may not be the current block's
-    // variance. The correct one to use is pb_source_variance.
-    // Need to re-train the model to fix it.
+    // TODO(huisu@google.com): x->source_variance may not be the current
+    // block's variance. The correct one to use is pb_source_variance. Need to
+    // re-train the model to fix it.
     ml_prune_ab_partition(bsize, pc_tree->partitioning,
                           get_unsigned_bits(x->source_variance),
                           best_rdc.rdcost, horz_rd, vert_rd, split_rd,
@@ -4936,8 +4952,8 @@
 
   // partition4_allowed is 1 if we can use a PARTITION_HORZ_4 or
   // PARTITION_VERT_4 for this block. This is almost the same as
-  // ext_partition_allowed, except that we don't allow 128x32 or 32x128 blocks,
-  // so we require that bsize is not BLOCK_128X128.
+  // ext_partition_allowed, except that we don't allow 128x32 or 32x128
+  // blocks, so we require that bsize is not BLOCK_128X128.
   const int partition4_allowed =
       ext_partition_allowed && bsize != BLOCK_128X128;
   int partition_horz4_allowed = partition4_allowed && partition_horz_allowed;
@@ -5554,7 +5570,7 @@
     PC_TREE *const pc_root = td->pc_root[mib_size_log2 - MIN_MIB_SIZE_LOG2];
     pc_root->index = 0;
 
-    if (sf->simple_motion_search_prune_rect) {
+    if (sf->simple_motion_search_prune_rect && !frame_is_intra_only(cm)) {
       init_simple_motion_search_mvs(pc_root);
     }
 
@@ -6235,7 +6251,8 @@
   cm->delta_q_info.delta_q_present_flag = cpi->oxcf.deltaq_mode != NO_DELTA_Q;
   cm->delta_q_info.delta_lf_present_flag = cpi->oxcf.deltaq_mode == DELTA_Q_LF;
   cm->delta_q_info.delta_lf_multi = DEFAULT_DELTA_LF_MULTI;
-  // update delta_q_present_flag and delta_lf_present_flag based on base_qindex
+  // update delta_q_present_flag and delta_lf_present_flag based on
+  // base_qindex
   cm->delta_q_info.delta_q_present_flag &= cm->base_qindex > 0;
   cm->delta_q_info.delta_lf_present_flag &= cm->base_qindex > 0;
 
@@ -6372,8 +6389,9 @@
                   best_warp_error);
               if (warp_error < best_warp_error) {
                 best_warp_error = warp_error;
-                // Save the wm_params modified by av1_refine_integerized_param()
-                // rather than motion index to avoid rerunning refine() below.
+                // Save the wm_params modified by
+                // av1_refine_integerized_param() rather than motion index to
+                // avoid rerunning refine() below.
                 memcpy(&(cm->global_motion[frame]), &tmp_wm_params,
                        sizeof(WarpedMotionParams));
               }
@@ -6559,7 +6577,8 @@
 #endif  // CONFIG_ENTROPY_STATS
       }
     }
-    // Re-check on the skip mode status as reference mode may have been changed.
+    // Re-check on the skip mode status as reference mode may have been
+    // changed.
     SkipModeInfo *const skip_mode_info = &current_frame->skip_mode_info;
     if (frame_is_intra_only(cm) ||
         current_frame->reference_mode == SINGLE_REFERENCE) {
diff --git a/av1/encoder/partition_model_weights.h b/av1/encoder/partition_model_weights.h
index ab3d71b..0bec4cc 100644
--- a/av1/encoder/partition_model_weights.h
+++ b/av1/encoder/partition_model_weights.h
@@ -2573,6 +2573,12 @@
 #endif  // CONFIG_ONE_PASS_SVM
 
 // Below are the models used for full_pixel_motion_search_based_split
+static const float full_pixel_motion_search_based_split_thresh_128 = 2.0f;
+static const float full_pixel_motion_search_based_split_thresh_64 = 2.0f;
+static const float full_pixel_motion_search_based_split_thresh_32 = 2.0f;
+static const float full_pixel_motion_search_based_split_thresh_16 = 2.0f;
+static const float full_pixel_motion_search_based_split_thresh_8 = 2.0f;
+
 // BLOCK_128X128
 #define NUM_HIDDEN_LAYERS_128 1
 #define NUM_FEATURES_128 6
@@ -2631,8 +2637,6 @@
   },
 };
 
-static const float full_pixel_motion_search_based_split_thresh_128 = 2.0f;
-
 #undef NUM_HIDDEN_LAYERS_128
 #undef NUM_FEATURES_128
 #undef NUM_LAYER_0_UNITS_128
@@ -2696,8 +2700,6 @@
   },
 };
 
-static const float full_pixel_motion_search_based_split_thresh_64 = 2.0f;
-
 #undef NUM_HIDDEN_LAYERS_64
 #undef NUM_FEATURES_64
 #undef NUM_LAYER_0_UNITS_64
@@ -2761,8 +2763,6 @@
   },
 };
 
-static const float full_pixel_motion_search_based_split_thresh_32 = 2.0f;
-
 #undef NUM_HIDDEN_LAYERS_32
 #undef NUM_FEATURES_32
 #undef NUM_LAYER_0_UNITS_32
@@ -2826,8 +2826,6 @@
   },
 };
 
-static const float full_pixel_motion_search_based_split_thresh_16 = 2.0f;
-
 #undef NUM_HIDDEN_LAYERS_16
 #undef NUM_FEATURES_16
 #undef NUM_LAYER_0_UNITS_16
@@ -2892,231 +2890,232 @@
   },
 };
 
-static const float full_pixel_motion_search_based_split_thresh_8 = 2.0f;
-
-#undef NUM_HIDDEN_LAYERS_8
-#undef NUM_FEATURES_8
-#undef NUM_LAYER_0_UNITS_8
-#undef NUM_LOGITS_8
 #endif
 
-// simple_motion_search_prune_rect
-// Thresholds
-static float simple_motion_search_prune_rect_thresh_128 = 0.0110f;
-static float simple_motion_search_prune_rect_thresh_64 = 0.0474f;
-static float simple_motion_search_prune_rect_thresh_32 = 0.0293f;
-static float simple_motion_search_prune_rect_thresh_16 = 0.0180f;
-static float simple_motion_search_prune_rect_thresh_8 = 0.0f;
+// Model based on simple_motion_search
 
-// Fature Mean and STD
-static const float simple_motion_search_prune_rect_mean_128[21] = {
-  11.604144f, 11.682196f,  3.7685435f, 3.7804017f, 7.8815756f,  7.9477367f,
-  0.0f,       0.0f,        13.777283f, 13.947528f, 9.778015f,   9.928518f,
-  13.281822f, 13.399953f,  4.8135943f, 4.8724947f, 15.4357195f, 15.643948f,
-  5.396575f,  0.32303867f, 0.67696136f
+// Thresholds for doing a single type of partition
+// TODO(chiyotsai@google.com): Set the thresholds for PARTITION_SPLIT.
+static const float simple_motion_search_prune_part_only_thresh_128[10] = {
+  1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f
+};
+static const float simple_motion_search_prune_part_only_thresh_64[10] = {
+  1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f
+};
+static const float simple_motion_search_prune_part_only_thresh_32[10] = {
+  1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f
+};
+static const float simple_motion_search_prune_part_only_thresh_16[10] = {
+  1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f
+};
+static const float simple_motion_search_prune_part_only_thresh_8[10] = {
+  1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f
 };
 
-static const float simple_motion_search_prune_rect_std_128[21] = {
-  2.37926165f, 2.39487077f, 5.55090993f, 5.56816496f, 5.86562017f, 5.91202901f,
-  0.f,         0.f,         3.023728f,   3.09614066f, 7.2767266f,  7.38752563f,
-  2.86607484f, 2.92342436f, 7.11769239f, 7.21289304f, 3.04497061f, 3.11716899f,
-  2.16907162f, 0.46764017f, 0.46764017f
+// Thresholds for pruning a partition type
+// TODO(chiyotsai@google.com): Retune the thresholds for rectangular partition.
+static const float simple_motion_search_prune_part_prune_thresh_128[10] = {
+  0.0f, 0.0110f, 0.0110f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f
+};
+static const float simple_motion_search_prune_part_prune_thresh_64[10] = {
+  0.0f, 0.0110f, 0.0110f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f
+};
+static const float simple_motion_search_prune_part_prune_thresh_32[10] = {
+  0.0f, 0.0110f, 0.0110f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f
+};
+static const float simple_motion_search_prune_part_prune_thresh_16[10] = {
+  0.0f, 0.0110f, 0.0110f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f
+};
+static const float simple_motion_search_prune_part_prune_thresh_8[10] = {
+  0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f
 };
 
-static const float simple_motion_search_prune_rect_mean_64[21] = {
-  9.546619f,  9.643238f,   8.884359f,   8.972756f,  7.794842f,  7.8717923f,
-  7.1152596f, 7.1850014f,  10.407013f,  10.490796f, 8.493282f,  8.560566f,
-  10.409792f, 10.496752f,  9.690868f,   9.771279f,  11.277545f, 11.354459f,
-  5.4520044f, 0.18779919f, 0.069017194f
+// Mean and std
+static const float simple_motion_search_prune_part_mean_128[19] = {
+  11.561261f, 11.626691f, 10.820066f, 10.880652f, 11.193911f,
+  11.269741f, 10.509796f, 10.584754f, 12.659430f, 12.724323f,
+  12.254200f, 12.326454f, 12.632568f, 12.694887f, 11.814313f,
+  11.872458f, 13.690346f, 13.753730f, 5.165726f,
+};
+static const float simple_motion_search_prune_part_std_128[19] = {
+  2.434728f, 2.429037f, 3.701918f, 3.709713f, 3.288111f, 3.286657f, 4.174337f,
+  4.185339f, 2.531916f, 2.540137f, 3.488878f, 3.496263f, 2.459336f, 2.460739f,
+  3.919058f, 3.930766f, 2.511685f, 2.524923f, 2.257989f,
+};
+static const float simple_motion_search_prune_part_mean_64[19] = {
+  10.073195f, 10.158249f, 9.627341f,  9.708094f,  9.002025f,
+  9.076430f,  8.597153f,  8.668316f,  11.021699f, 11.097507f,
+  9.852887f,  9.919513f,  11.007151f, 11.085718f, 10.525035f,
+  10.599575f, 11.936800f, 12.007580f, 4.860905f,
+};
+static const float simple_motion_search_prune_part_std_64[19] = {
+  2.272113f, 2.256767f, 3.023892f, 3.027094f, 3.794186f, 3.808349f, 4.143885f,
+  4.164291f, 2.262401f, 2.249636f, 4.039632f, 4.053496f, 2.234799f, 2.219867f,
+  3.136350f, 3.139975f, 2.199973f, 2.187191f, 2.185985f,
+};
+static const float simple_motion_search_prune_part_mean_32[19] = {
+  8.499073f, 8.600074f, 8.508158f,  8.611221f,  8.498978f, 8.599821f, 8.506126f,
+  8.609448f, 9.481358f, 9.569901f,  9.481697f,  9.569918f, 9.469805f, 9.557789f,
+  9.483047f, 9.572816f, 10.416696f, 10.496502f, 4.413157f,
+};
+static const float simple_motion_search_prune_part_std_32[19] = {
+  2.129560f, 2.117602f, 2.115962f, 2.104043f, 2.136564f, 2.125870f, 2.125247f,
+  2.114250f, 2.146261f, 2.134374f, 2.160289f, 2.149360f, 2.116179f, 2.103744f,
+  2.099453f, 2.087138f, 2.115011f, 2.101419f, 2.024279f,
+};
+static const float simple_motion_search_prune_part_mean_16[19] = {
+  6.990048f, 7.116367f, 6.883459f, 7.007796f, 6.993151f, 7.119445f, 6.886147f,
+  7.010345f, 7.994230f, 8.099907f, 7.998478f, 8.104088f, 7.988468f, 8.092865f,
+  7.868373f, 7.971079f, 8.946122f, 9.037547f, 3.976610f,
+};
+static const float simple_motion_search_prune_part_std_16[19] = {
+  1.963746f, 1.954729f, 2.127820f, 2.126451f, 1.963392f, 1.955016f, 2.126736f,
+  2.126004f, 1.991209f, 1.981070f, 1.992683f, 1.983143f, 1.986913f, 1.977408f,
+  2.200119f, 2.197786f, 1.997332f, 1.986091f, 1.829684f,
+};
+static const float simple_motion_search_prune_part_mean_8[19] = {
+  5.362649f, 5.561670f, 5.362880f, 5.564151f, 5.365307f, 5.565139f, 5.365830f,
+  5.567452f, 6.453082f, 6.598073f, 6.458814f, 6.604363f, 6.454421f, 6.599441f,
+  6.458431f, 6.604804f, 7.469143f, 7.585015f, 3.625800f,
+};
+static const float simple_motion_search_prune_part_std_8[19] = {
+  1.846273f, 1.835266f, 1.846272f, 1.834365f, 1.836967f, 1.826428f, 1.837247f,
+  1.825985f, 1.886601f, 1.874138f, 1.874622f, 1.862656f, 1.877218f, 1.865398f,
+  1.874494f, 1.862057f, 1.896421f, 1.883210f, 1.670200f,
 };
 
-static const float simple_motion_search_prune_rect_std_64[21] = {
-  2.23464762f, 2.21863539f, 3.21971256f, 3.23065164f, 4.18375011f, 4.21000297f,
-  4.53527463f, 4.56834182f, 2.21565913f, 2.2037133f,  4.46751945f, 4.49201358f,
-  2.20418352f, 2.19160329f, 3.37069652f, 3.38308883f, 2.16617912f, 2.15762416f,
-  2.1803145f,  0.39055183f, 0.25348345f
-};
-
-static const float simple_motion_search_prune_rect_mean_32[21] = {
-  8.275947f,  8.388577f, 8.292438f, 8.407772f,  8.279809f,  8.392666f,
-  8.28561f,   8.401827f, 9.224074f, 9.3211355f, 9.226464f,  9.323693f,
-  9.212805f,  9.309509f, 9.233987f, 9.332952f,  10.133105f, 10.220646f,
-  4.6501865f, 0.0f,      0.0f
-};
-
-static const float simple_motion_search_prune_rect_std_32[21] = {
-  2.09335807f, 2.08341914f, 2.07920105f, 2.06925832f, 2.10582478f, 2.09748485f,
-  2.08927523f, 2.08082628f, 2.11305703f, 2.10245119f, 2.12675492f, 2.11696847f,
-  2.08239718f, 2.07103501f, 2.06091744f, 2.04943504f, 2.08402831f, 2.07140636f,
-  2.02292239f, 10000000.0f, 1000000.0f
-};
-
-static const float simple_motion_search_prune_rect_mean_16[21] = {
-  6.9436703f, 7.0858636f, 6.830941f, 6.9708f,   6.951976f,  7.09403f,
-  6.834843f,  6.974434f,  7.936405f, 8.054485f, 7.9468045f, 8.064759f,
-  7.933151f,  8.049844f,  7.806229f, 7.921054f, 8.88205f,   8.984465f,
-  3.982615f,  0.0f,       0.0f
-};
-
-static const float simple_motion_search_prune_rect_std_16[21] = {
-  1.98710805f, 1.98327083f, 2.16578f,    2.17021027f, 1.98690513f, 1.98316086f,
-  2.16677687f, 2.17170578f, 2.0234987f,  2.01648209f, 2.02484412f, 2.01804831f,
-  2.0183788f,  2.01223316f, 2.24933317f, 2.25114926f, 2.03808057f, 2.02950528f,
-  1.85362437f, 1000000.0f,  1000000.0f
-};
-
-static const float simple_motion_search_prune_rect_mean_8[21] = {
-  5.30744f,   5.5219445f, 5.307067f,  5.5238867f, 5.309048f, 5.52433f,
-  5.3082213f, 5.5255504f, 6.3853498f, 6.5441704f, 6.389904f, 6.549225f,
-  6.388841f,  6.5474386f, 6.39165f,   6.5517707f, 7.383806f, 7.512947f,
-  3.6749654f, 0.0f,       0.0f
-};
-
-static const float simple_motion_search_prune_rect_std_8[21] = {
-  1.84657375f, 1.83810653f, 1.84723929f, 1.83793395f, 1.83993859f, 1.83183525f,
-  1.84099489f, 1.83202961f, 1.89125934f, 1.87992053f, 1.88265554f, 1.87171106f,
-  1.88345242f, 1.87305873f, 1.88187027f, 1.87079384f, 1.91317406f, 1.90146775f,
-  1.71587616f, 1000000.0f,  1000000.0f
-};
-
-// Model Parameters
 // BLOCK_128X128
 #define NUM_HIDDEN_LAYERS_128 1
-#define NUM_FEATURES_128 21
+#define NUM_FEATURES_128 19
 #define NUM_LAYER_0_UNITS_128 24
-#define NUM_LOGITS_128 3
+#define NUM_LOGITS_128 4
 
-static const float simple_motion_search_prune_rect_layer_0_bias_128[] = {
-  -1.03082f,  -1.44423f,  -0.0663546f, -0.273647f, -0.0271498f, -0.84201f,
-  -0.45019f,  -0.581675f, -0.161953f,  0.583636f,  -1.48401f,   -1.61788f,
-  -0.828226f, -0.567531f, -0.888807f,  -0.688982f, -1.42025f,   -0.930348f,
-  -1.24374f,  -0.207484f, -1.30764f,   -0.753248f, -1.02665f,   0.230935f
+static const float simple_motion_search_prune_part_logits_kernel_128[] = {
+  -0.12815f,   -1.2107f,    0.525183f,  0.379155f,   -2.04966f,  -0.212818f,
+  -0.0609484f, -0.119338f,  1.07054f,   -0.0304129f, 0.563817f,  -0.0204729f,
+  0.757013f,   0.464791f,   0.191185f,  0.183903f,   -2.71738f,  1.41455f,
+  -0.449089f,  -0.0344047f, 0.349133f,  -0.945292f,  0.63729f,   -0.973444f,
+  -0.203447f,  -19.7875f,   -12.7536f,  -0.260806f,  0.934733f,  -3.17648f,
+  -1.11806f,   -4.63145f,   -16.0947f,  -24.203f,    -2.94649f,  -8.34109f,
+  -0.720804f,  -5.16623f,   -0.443715f, 0.510014f,   -4.2846f,   -11.2272f,
+  0.187633f,   -10.0189f,   -0.915574f, -0.235434f,  -2.57912f,  0.151642f,
+  -0.180428f,  -0.110439f,  0.349015f,  -1.83906f,   -3.38461f,  -0.309185f,
+  -9.3706f,    -5.54824f,   0.45334f,   -8.48801f,   0.392325f,  -4.19948f,
+  -0.535814f,  -4.92133f,   0.0159878f, 0.275078f,   -2.65358f,  1.32524f,
+  -0.761795f,  -14.782f,    -4.15338f,  -0.177581f,  -0.158376f, -0.0832793f,
+  0.226712f,   -0.349409f,  0.0529463f, -0.412873f,  -0.241807f, 0.19054f,
+  0.79237f,    0.218937f,   -1.60466f,  0.845653f,   -0.287058f, 0.766271f,
+  -0.455829f,  0.00261991f, 0.506805f,  -0.0593004f, 2.25348f,   -2.29282f,
+  0.0491916f,  0.38261f,    -0.281848f, -0.17802f,   -0.472124f, 0.204326f
 };
 
-static const float simple_motion_search_prune_rect_logits_bias_128[] = {
-  0.0329258f, 0.184642f, -0.149705f
+static const float simple_motion_search_prune_part_layer_0_kernel_128[] = {
+  0.485797f,   -0.326149f,  0.238042f,     -1.41255f,     -0.00899515f,
+  -0.715324f,  0.623049f,   0.502229f,     0.54064f,      -0.0667834f,
+  0.0591777f,  -0.435869f,  0.221466f,     -0.222184f,    0.696493f,
+  -0.514433f,  -0.771882f,  -0.080914f,    -1.58162f,     -0.214871f,
+  -0.0141856f, -0.566004f,  -1.01071f,     -0.0400122f,   -0.212581f,
+  0.144009f,   0.156065f,   0.419812f,     0.351579f,     -0.0363798f,
+  0.272286f,   0.177348f,   0.643484f,     -0.686943f,    -1.5021f,
+  -0.283203f,  -0.317958f,  0.834615f,     1.18195f,      0.704402f,
+  0.723567f,   0.0765064f,  0.0998969f,    0.358114f,     -0.471958f,
+  -0.33568f,   -0.0455057f, 0.0659417f,    0.717502f,     1.40203f,
+  -1.78214f,   -1.00743f,   -0.217992f,    -0.244456f,    -0.681988f,
+  0.199185f,   1.27797f,    0.744351f,     0.853728f,     0.976386f,
+  1.5212f,     0.246886f,   0.458125f,     -0.278508f,    -0.601164f,
+  -0.874409f,  -0.0882617f, -0.93093f,     -0.0279819f,   0.289613f,
+  -0.795015f,  1.2224f,     0.464495f,     -0.996107f,    -1.05131f,
+  0.780663f,   1.70779f,    -0.122481f,    2.64976f,      0.284897f,
+  -0.129159f,  -0.0472128f, 0.190105f,     0.549306f,     -0.829239f,
+  -2.87392f,   0.0735607f,  -1.00692f,     -0.0171315f,   0.217386f,
+  0.715055f,   1.2976f,     -0.387801f,    -0.301424f,    -0.265159f,
+  0.381381f,   -0.637641f,  0.424966f,     0.317794f,     1.99832f,
+  0.604094f,   0.444838f,   0.354898f,     -0.2603f,      -0.625206f,
+  1.37372f,    0.474128f,   1.47492f,      -0.318267f,    -0.32122f,
+  -1.29434f,   0.426303f,   -0.604944f,    -2.33438f,     -1.33476f,
+  -2.13254f,   2.28472f,    0.844804f,     0.366394f,     0.148218f,
+  -0.0996413f, -0.665787f,  1.30951f,      0.447868f,     -0.160892f,
+  0.336539f,   -0.461251f,  -0.940939f,    1.9886f,       0.774578f,
+  -0.0274317f, -0.288034f,  -0.188082f,    0.296018f,     -0.171846f,
+  0.245583f,   0.39913f,    -0.0544446f,   0.823534f,     0.215969f,
+  -0.393239f,  -0.208693f,  -0.336752f,    0.258191f,     1.03315f,
+  -0.0356378f, -0.35999f,   0.48529f,      1.09123f,      -0.243654f,
+  0.131594f,   -2.5832f,    1.26485f,      -0.700618f,    0.466223f,
+  -0.525984f,  2.19872f,    0.685663f,     1.40228f,      1.10528f,
+  0.0451285f,  -0.39981f,   -0.644025f,    -1.31137f,     0.836056f,
+  -0.884238f,  0.394441f,   -0.16017f,     -1.45246f,     -1.24252f,
+  0.195623f,   0.716485f,   -0.0522381f,   0.271321f,     0.560211f,
+  0.685537f,   -0.117774f,  -0.227596f,    0.346762f,     -0.402137f,
+  0.00528979f, 0.756388f,   0.181091f,     -0.513235f,    -0.354307f,
+  1.04355f,    -0.114563f,  0.457349f,     -0.525175f,    -1.306f,
+  -1.57685f,   -1.69919f,   0.393799f,     1.35822f,      -0.496799f,
+  0.102504f,   -0.0950497f, 0.518029f,     0.211844f,     0.385925f,
+  0.366614f,   0.52377f,    -0.22419f,     -0.209355f,    0.343361f,
+  0.0535484f,  0.320409f,   0.467987f,     -0.00542184f,  -1.02011f,
+  0.488822f,   -0.248647f,  0.113298f,     -0.665206f,    0.374419f,
+  0.731859f,   1.20004f,    -0.000319085f, -0.000491633f, -0.260543f,
+  0.804927f,   -0.410925f,  0.960751f,     0.281493f,     0.607288f,
+  -0.681745f,  -0.0925707f, -2.06876f,     -0.52926f,     0.864695f,
+  -0.712922f,  0.706643f,   -0.651177f,    -0.231887f,    -0.318515f,
+  0.0635488f,  -0.183294f,  -0.589271f,    0.288583f,     0.38702f,
+  0.582912f,   0.225519f,   1.23027f,      0.108471f,     1.3328f,
+  0.689896f,   -2.21988f,   -0.337789f,    -0.762238f,    1.79149f,
+  0.840519f,   0.825442f,   0.460811f,     0.434437f,     2.13268f,
+  -0.341805f,  -0.139746f,  -1.66773f,     -0.583511f,    -0.238547f,
+  0.156871f,   0.719404f,   1.05882f,      -0.173445f,    -0.867368f,
+  0.170469f,   1.57755f,    1.36095f,      -0.418987f,    -0.396689f,
+  0.289496f,   -0.292606f,  0.688943f,     0.176553f,     0.853828f,
+  1.19608f,    -0.557087f,  -0.58118f,     1.12805f,      0.232023f,
+  -0.167864f,  -0.222265f,  -0.719284f,    -0.802184f,    -2.85383f,
+  -1.01816f,   -1.344f,     -0.154875f,    0.308999f,     -0.62822f,
+  0.389045f,   -0.498046f,  -0.0646747f,   0.056343f,     0.188288f,
+  0.493475f,   0.241337f,   0.122423f,     -0.506522f,    0.0492923f,
+  0.0642163f,  -0.508636f,  0.0328815f,    0.78567f,      0.224673f,
+  0.627972f,   0.759423f,   1.16089f,      1.28274f,      1.19646f,
+  1.63401f,    1.56657f,    -0.131442f,    -0.423053f,    -0.599536f,
+  -1.20933f,   0.0438751f,  -0.538444f,    -0.749136f,    -0.769951f,
+  -1.06683f,   -1.66474f,   0.136208f,     1.35745f,      -0.960854f,
+  2.32612f,    0.349384f,   1.04506f,      -0.888194f,    1.28114f,
+  0.579831f,   0.53927f,    -1.07214f,     0.456708f,     -0.884062f,
+  0.789767f,   -0.776746f,  -0.0143946f,   -0.930974f,    -0.632568f,
+  -1.487f,     0.0284456f,  -0.865849f,    -1.51263f,     0.117335f,
+  -0.671304f,  -0.367558f,  -0.650224f,    1.09562f,      0.246097f,
+  0.461775f,   -0.722606f,  0.0886829f,    -0.490978f,    1.92718f,
+  0.864959f,   0.0705385f,  -0.543902f,    1.4704f,       -0.643494f,
+  0.194486f,   0.890657f,   0.901154f,     -0.458931f,    0.209679f,
+  0.303869f,   -0.167078f,  1.60197f,      1.05005f,      -0.499959f,
+  0.930484f,   -0.555236f,  -0.778482f,    -0.772935f,    -0.590988f,
+  -0.122397f,  -0.346605f,  0.100747f,     -0.237732f,    -0.180927f,
+  0.136491f,   -0.230076f,  1.52049f,      1.70212f,      0.415758f,
+  -0.811552f,  0.570249f,   1.73167f,      0.808393f,     -1.28608f,
+  0.518307f,   0.601205f,   0.258751f,     -0.498631f,    -0.790802f,
+  -0.465072f,  -0.507542f,  0.312956f,     -0.485421f,    -0.0525576f,
+  0.24136f,    -0.201595f,  -0.721587f,    0.190955f,     -0.123108f,
+  -0.263243f,  -0.36142f,   -0.105093f,    0.0651603f,    0.240065f,
+  0.241104f,   -0.238277f,  -1.11714f,     1.50723f,      0.443715f,
+  1.83051f,    1.29719f,    -0.0367089f,   1.57883f,      1.96011f,
+  0.0373268f,  0.480469f,   0.497726f,     1.47078f,      -0.359254f,
+  0.120578f,   -0.651964f,  -0.537215f,    -1.20527f,     -0.374681f,
+  -0.443443f,  -0.39421f,   0.688228f,     0.0989643f,    -1.28785f,
+  -1.24392f,   -0.165236f,  1.1812f,       -0.76329f,     1.44085f,
+  -0.540544f,  0.0958765f,  -0.31224f,     0.471211f,     -0.997358f,
+  1.16174f,    -0.948466f,  0.660749f,     -0.574517f,    1.42706f,
+  -0.477758f,  0.509914f,   -0.930534f,    0.722869f,     -0.955477f,
+  -0.383073f
 };
 
-static const float simple_motion_search_prune_rect_layer_0_kernel_128[] = {
-  1.21707f,     0.767617f,    0.998833f,   0.748885f,    0.730957f,
-  0.861834f,    -0.338539f,   0.013964f,   -0.0727181f,  0.37719f,
-  0.736542f,    0.970103f,    -1.53509f,   -1.79112f,    0.303347f,
-  -0.0237058f,  -0.468634f,   -0.314464f,  -0.0506157f,  0.205808f,
-  -0.566808f,   0.260802f,    -0.321415f,  1.08033f,     0.664636f,
-  1.14234f,     1.45592f,     0.105783f,   -0.319643f,   -0.969693f,
-  -0.128036f,   0.464112f,    0.214481f,   0.0348054f,   -0.795667f,
-  0.804816f,    0.766327f,    -0.661083f,  -0.320675f,   1.09434f,
-  0.426732f,    -0.515712f,   0.556748f,   1.02103f,     0.0789273f,
-  -0.212123f,   0.968215f,    1.24967f,    -0.170443f,   0.0887567f,
-  -0.236266f,   0.622019f,    -0.0482016f, 1.21882f,     -0.610779f,
-  0.207403f,    -0.298613f,   0.289028f,   -0.727855f,   -0.537925f,
-  -0.129818f,   -0.209714f,   -0.260345f,  0.977842f,    1.51966f,
-  -0.848417f,   -0.344469f,   -0.612265f,  -0.844221f,   -0.181775f,
-  -0.0752922f,  0.132546f,    1.39445f,    0.176311f,    0.0865965f,
-  0.0885483f,   1.18521f,     0.271723f,   -0.00613283f, 0.167888f,
-  -0.262459f,   -1.83077f,    0.0367826f,  -0.187464f,   -0.448555f,
-  0.402736f,    -0.41658f,    -0.772893f,  -0.573372f,   -0.270687f,
-  0.0525691f,   -0.0195788f,  0.906929f,   0.925847f,    -0.670372f,
-  -0.695974f,   -0.0617974f,  -0.127294f,  0.518828f,    0.331416f,
-  -1.08477f,    -0.828586f,   0.786335f,   0.121287f,    -0.287118f,
-  0.12047f,     0.0770493f,   -0.206039f,  -0.686495f,   -2.20468f,
-  -0.0053142f,  0.0421935f,   -0.228364f,  0.262388f,    -0.154042f,
-  0.56318f,     0.25525f,     0.797393f,   1.38502f,     -0.70006f,
-  -0.25912f,    0.115122f,    -0.425162f,  -0.82411f,    -0.465218f,
-  0.576937f,    0.340786f,    -0.494503f,  -1.68303f,    -1.89255f,
-  -0.734966f,   -1.50882f,    0.152946f,   0.0355278f,   0.429251f,
-  0.8991f,      -1.10166f,    -0.722933f,  0.544538f,    -1.01641f,
-  -0.159005f,   -0.0412827f,  0.392484f,   0.0540428f,   0.136978f,
-  0.333809f,    -0.595976f,   -0.639076f,  0.149363f,    -0.545998f,
-  -0.358742f,   -0.734408f,   -1.05771f,   0.304367f,    0.234233f,
-  1.4708f,      1.52837f,     0.498601f,   -0.155039f,   -0.749137f,
-  0.645608f,    -0.313543f,   -0.320999f,  0.356842f,    0.0702166f,
-  -1.02796f,    0.92566f,     -1.18203f,   -0.22097f,    1.37971f,
-  -0.296376f,   -0.0254071f,  0.0205492f,  1.19537f,     -0.286633f,
-  0.296902f,    -0.444691f,   0.976126f,   -0.0065986f,  1.20317f,
-  -1.10465f,    -0.295417f,   0.48273f,    0.48458f,     -0.406933f,
-  1.46102f,     -1.04861f,    1.01175f,    -0.946596f,   1.66844f,
-  -0.246026f,   -0.57829f,    -0.89914f,   0.289559f,    -0.188926f,
-  0.206735f,    -0.272003f,   -0.327669f,  -0.113352f,   -0.713005f,
-  -0.363715f,   1.25897f,     0.450371f,   -1.0458f,     -0.752533f,
-  -0.0799224f,  1.02614f,     -1.08083f,   -0.536049f,   0.504551f,
-  0.213136f,    0.115929f,    0.523182f,   0.714035f,    1.02583f,
-  1.6386f,      0.00803417f,  0.0973748f,  -0.217814f,   0.71939f,
-  -0.140389f,   -0.488582f,   -1.24631f,   0.803631f,    0.138188f,
-  0.0333013f,   -0.519193f,   -0.483745f,  -0.36371f,    0.1839f,
-  0.0352195f,   -0.591134f,   0.139432f,   -2.00368f,    -1.46711f,
-  -0.268942f,   0.150863f,    0.00577831f, -0.257733f,   0.454567f,
-  -0.046806f,   0.105841f,    -0.411153f,  -0.58749f,    0.328028f,
-  0.132938f,    0.454583f,    0.455181f,   -0.383746f,   0.786252f,
-  1.31958f,     -1.28544f,    -1.38559f,   -1.99272f,    1.35343f,
-  0.895747f,    0.27401f,     0.0801937f,  0.0635348f,   0.246139f,
-  1.97013f,     1.48526f,     0.0988332f,  -0.0769758f,  0.0800849f,
-  0.181255f,    -0.265881f,   -0.135451f,  0.0176318f,   -0.221732f,
-  -0.193488f,   0.158928f,    -0.0669842f, 0.202504f,    0.61163f,
-  -0.744555f,   -0.594422f,   -0.398642f,  -0.637939f,   -0.324602f,
-  0.148604f,    1.22074f,     1.31154f,    -1.01658f,    -1.28208f,
-  -0.129768f,   -0.206114f,   0.60629f,    0.366167f,    -0.134153f,
-  -0.0929645f,  -0.470631f,   0.518892f,   -0.733017f,   -0.111685f,
-  -0.204559f,   -0.267483f,   -0.265051f,  1.32226f,     1.13088f,
-  -0.00946599f, -0.272144f,   -0.362412f,  -0.672511f,   -0.652476f,
-  -0.546448f,   0.0253537f,   -0.153191f,  -0.824345f,   -0.714531f,
-  -0.0305819f,  0.230982f,    -1.10796f,   -0.288268f,   -0.0650801f,
-  1.1042f,      -0.245663f,   0.804774f,   0.986003f,    0.861027f,
-  -0.126863f,   -0.257142f,   0.160107f,   -0.725933f,   -1.33207f,
-  -0.0114378f,  0.182624f,    0.829975f,   0.00865911f,  0.206114f,
-  0.000599693f, -0.7338f,     -1.62608f,   0.411364f,    -0.703702f,
-  0.192228f,    0.960493f,    0.889854f,   0.561844f,    0.833141f,
-  0.445264f,    0.438172f,    0.269368f,   -0.174156f,   -1.11718f,
-  -0.690091f,   -0.119548f,   -0.430536f,  0.3507f,      0.804611f,
-  0.298009f,    -0.257488f,   -0.887408f,  -0.500912f,   -0.217641f,
-  -0.338373f,   0.20756f,     0.248316f,   -0.750743f,   0.310385f,
-  0.00491777f,  0.331145f,    -0.356869f,  0.356782f,    0.0577628f,
-  -0.0513289f,  0.325407f,    -0.12384f,   0.723623f,    -1.34327f,
-  -1.12374f,    0.183475f,    0.0640967f,  0.113537f,    -0.315936f,
-  1.61401f,     -0.294137f,   0.306785f,   0.605552f,    0.199964f,
-  0.526132f,    0.947164f,    0.685252f,   0.646895f,    -0.338617f,
-  -0.00734127f, 0.648188f,    -1.00204f,   0.00213791f,  0.679308f,
-  -0.202302f,   -0.46856f,    0.848246f,   0.597811f,    -0.0631533f,
-  -0.324955f,   1.33773f,     -0.0374205f, -0.454397f,   -0.397027f,
-  -0.228798f,   0.0115105f,   -0.392123f,  0.701074f,    0.442658f,
-  -0.174989f,   -0.156202f,   -0.186211f,  -1.02877f,    -0.1514f,
-  -0.886684f,   0.715379f,    0.868128f,   -0.203152f,   -0.359135f,
-  1.16497f,     0.602318f,    0.669703f,   -0.6824f,     1.20655f,
-  -0.170322f,   -0.110273f,   1.14943f,    1.07666f,     0.79441f,
-  0.817437f,    -0.103962f,   -0.235231f,  -0.228969f,   -1.00497f,
-  -0.219239f,   -0.318307f,   0.303288f,   1.58335f,     -0.424882f,
-  -0.537245f,   1.51033f,     0.323441f,   -0.159631f,   -0.074288f,
-  0.354562f,    1.4227f,      0.604905f,   -0.834905f,   -0.84153f,
-  -0.488386f,   -0.75274f,    0.167785f,   -0.237989f,   -0.55223f,
-  0.895587f,    -0.401557f,   -0.235388f,  0.673556f,    -1.4807f,
-  -1.18495f,    -1.03931f,    -0.719854f,  0.556845f,    -0.053345f,
-  0.72716f,     -1.11511f,    0.490595f,   0.283416f,    1.35235f,
-  0.549703f,    1.08873f,     0.360714f,   0.237269f,    -0.320985f,
-  0.251012f,    -0.88053f,    0.609055f,   0.0685435f,   -0.0673053f,
-  -0.145312f,   0.203616f,    0.0716763f,  0.781634f,    -0.624368f,
-  -2.14444f,    -0.00187426f, 0.179946f,   1.42648f,     1.27037f,
-  0.465913f,    0.820793f,    -1.60283f,   -0.699741f,   -0.314398f,
-  -0.309158f,   0.277909f,    -0.0981238f, 0.558628f,    0.862353f,
-  -1.26681f,    -1.18465f,    0.348659f,   0.272992f,    -0.36775f,
-  -0.342381f,   0.155123f,    -0.34212f,   0.436529f
+static const float simple_motion_search_prune_part_logits_bias_128[] = {
+  0.814703f, -1.18485f, -1.49788f, -0.0054509f
 };
 
-static const float simple_motion_search_prune_rect_logits_kernel_128[] = {
-  -1.66602f,   0.424545f,   -45.8807f,  -0.0704016f, 0.149002f,   -1.41176f,
-  -0.984448f,  -0.903546f,  1.55762f,   -2.60542f,   -12.5839f,   1.55755f,
-  -1.99348f,   -0.0172324f, -10.8159f,  0.536906f,   0.0313958f,  -0.513672f,
-  0.0266578f,  -0.768594f,  0.826601f,  -3.59099f,   -1.54627f,   0.287491f,
-  0.870765f,   -0.304472f,  0.785962f,  -0.437929f,  -0.170165f,  1.02601f,
-  0.968915f,   -0.446069f,  0.635064f,  -0.0501538f, -1.07004f,   -1.43273f,
-  0.210884f,   -14.4229f,   0.159498f,  -0.0865989f, -1.28704f,   0.337704f,
-  1.80598f,    -0.157148f,  0.811136f,  1.36998f,    -0.437967f,  -1.94766f,
-  -0.506979f,  0.245296f,   0.164039f,  0.855018f,   0.410343f,   -0.795219f,
-  -0.0400102f, 0.353871f,   -0.622041f, 0.951203f,   0.806822f,   0.071401f,
-  0.490487f,   0.125621f,   0.634072f,  -0.464813f,  -0.0219197f, -0.254174f,
-  0.0230487f,  0.130726f,   -0.487066f, -0.536771f,  0.923402f,   -0.0148827f
+static const float simple_motion_search_prune_part_layer_0_bias_128[] = {
+  -0.283185f, -2.5867f,  -2.07531f, -2.31513f,  -1.85869f,  -0.310685f,
+  -0.802324f, 0.056964f, -1.43881f, 2.84016f,   -1.15494f,  -2.30652f,
+  0.015622f,  0.303776f, 0.774322f, -1.25979f,  -2.37144f,  -1.35687f,
+  0.743607f,  0.768569f, -1.09908f, -0.470101f, -0.615497f, 1.04214f
 };
 
-static const NN_CONFIG simple_motion_search_prune_rect_nn_config_128 = {
+static const NN_CONFIG simple_motion_search_prune_part_nn_config_128 = {
   NUM_FEATURES_128,
   NUM_LOGITS_128,
   NUM_HIDDEN_LAYERS_128,
@@ -3124,12 +3123,12 @@
       NUM_LAYER_0_UNITS_128,
   },
   {
-      simple_motion_search_prune_rect_layer_0_kernel_128,
-      simple_motion_search_prune_rect_logits_kernel_128,
+      simple_motion_search_prune_part_layer_0_kernel_128,
+      simple_motion_search_prune_part_logits_kernel_128,
   },
   {
-      simple_motion_search_prune_rect_layer_0_bias_128,
-      simple_motion_search_prune_rect_logits_bias_128,
+      simple_motion_search_prune_part_layer_0_bias_128,
+      simple_motion_search_prune_part_logits_bias_128,
   },
 };
 
@@ -3140,122 +3139,161 @@
 
 // BLOCK_64X64
 #define NUM_HIDDEN_LAYERS_64 1
-#define NUM_FEATURES_64 21
-#define NUM_LAYER_0_UNITS_64 20
-#define NUM_LOGITS_64 3
+#define NUM_FEATURES_64 19
+#define NUM_LAYER_0_UNITS_64 24
+#define NUM_LOGITS_64 10
 
-static const float simple_motion_search_prune_rect_layer_0_bias_64[] = {
-  -0.474538f,  0.182615f,  -0.116926f, -0.31614f,  0.458541f,
-  -0.462508f,  0.0110579f, -0.937514f, -0.776792f, -0.749243f,
-  -0.40515f,   0.453758f,  -0.181677f, -0.271274f, -0.634132f,
-  -0.0814499f, -0.363025f, -0.747829f, -0.598476f, 0.553188f
+static const float simple_motion_search_prune_part_logits_kernel_64[] = {
+  -2.71432f,    0.853994f,   0.740156f,   -0.30982f,   -0.448512f,  0.0984177f,
+  -0.664821f,   -0.150188f,  0.104798f,   1.27746f,    0.217043f,   -0.553914f,
+  -0.985639f,   1.99904f,    -0.994877f,  0.0697683f,  0.64856f,    -0.412276f,
+  -0.740292f,   0.93851f,    0.647461f,   0.874707f,   -1.06881f,   0.704589f,
+  0.641148f,    -0.23997f,   -0.0955951f, 0.249869f,   -0.240726f,  0.420737f,
+  -0.558423f,   -0.863005f,  0.981276f,   -0.520796f,  0.206416f,   -0.0512005f,
+  -0.76665f,    -0.341038f,  -0.727661f,  0.348269f,   -0.0786858f, -0.370214f,
+  -0.292226f,   -0.106107f,  0.262638f,   1.0065f,     0.558744f,   -0.0492801f,
+  -1.22877f,    0.225909f,   0.485238f,   -0.009513f,  -0.299224f,  -0.405938f,
+  -0.379131f,   0.0190173f,  -0.66387f,   0.846164f,   0.298606f,   -0.811507f,
+  -0.0853147f,  -0.146277f,  0.0860954f,  0.151524f,   0.239613f,   -0.0141985f,
+  0.684708f,    -0.0732401f, -0.709585f,  -1.86211f,   -0.622393f,  -0.503456f,
+  0.482376f,    -0.10075f,   -0.449184f,  0.999368f,   0.442391f,   -0.60335f,
+  0.631041f,    0.377315f,   -0.141438f,  -0.395021f,  -0.750439f,  0.79456f,
+  0.29555f,     -1.51727f,   0.964882f,   -0.256708f,  -0.182677f,  0.727967f,
+  0.411337f,    -0.252901f,  -0.546165f,  -0.620733f,  0.948828f,   0.187498f,
+  -6.20879f,    0.1671f,     -0.131667f,  -0.0719152f, -0.101839f,  -0.326827f,
+  0.00418824f,  -0.819253f,  -0.168854f,  -0.588437f,  -0.192699f,  0.126879f,
+  -0.0287044f,  -0.686708f,  -0.445826f,  -0.0993483f, -0.682881f,  0.0685043f,
+  -0.472371f,   -0.399788f,  0.170985f,   -0.164692f,  -0.380181f,  -0.268889f,
+  -3.16193f,    -0.965943f,  -0.178737f,  -0.517274f,  -0.102274f,  -0.359742f,
+  0.0117419f,   -0.0690246f, 0.206539f,   -1.29449f,   0.0976349f,  -0.188444f,
+  0.160939f,    -0.387867f,  -0.34513f,   -0.221073f,  -0.326615f,  0.0302811f,
+  0.245349f,    -0.381586f,  0.0414228f,  -0.414076f,  0.0232891f,  -0.118837f,
+  -2.81659f,    -0.288328f,  -0.0328096f, -0.61535f,   -0.23593f,   -1.16019f,
+  -0.0619081f,  0.0646133f,  -0.313036f,  -0.390373f,  -0.0481636f, 0.0450287f,
+  0.196415f,    -0.717419f,  -0.0707908f, -0.2078f,    -0.459761f,  0.230835f,
+  -0.0703036f,  -0.112402f,  -0.170908f,  0.0485359f,  -0.237293f,  -0.989058f,
+  -2.05295f,    0.134268f,   -0.173105f,  -0.493955f,  -0.28408f,   -0.91465f,
+  -0.00206022f, -0.297255f,  0.161636f,   -0.52414f,   -0.324677f,  -0.321039f,
+  0.188412f,    -0.333399f,  -0.325067f,  -0.024484f,  0.128572f,   0.20541f,
+  -0.0743476f,  0.0762302f,  -0.0370672f, -1.53757f,   -0.199054f,  -0.318512f,
+  -3.41239f,    -0.50942f,   0.100088f,   0.395587f,   0.00633016f, 0.851201f,
+  -0.0700995f,  -0.685436f,  0.0817234f,  -0.632139f,  -0.41931f,   0.15613f,
+  -0.201166f,   -0.0721472f, -0.239791f,  0.656797f,   -0.501886f,  -0.160969f,
+  -0.561536f,   -0.491154f,  -0.213447f,  0.21926f,    -0.542261f,  0.594975f,
+  -1.75303f,    0.284615f,   -0.0128245f, -0.0316972f, -0.300138f,  -0.980628f,
+  -0.332859f,   0.19298f,    -0.248332f,  0.445278f,   -0.470188f,  -0.483686f,
+  0.361407f,    -0.363551f,  0.175335f,   -0.401025f,  0.494573f,   0.366983f,
+  0.302351f,    -0.368503f,  -0.443071f,  -0.562775f,  -0.375816f,  -0.657459f
 };
 
-static const float simple_motion_search_prune_rect_logits_bias_64[] = {
-  0.126455f, -0.308021f, 0.133681f
+static const float simple_motion_search_prune_part_layer_0_kernel_64[] = {
+  0.615272f,   -0.151592f,   0.346172f,   -0.0656032f,  0.212875f,
+  0.0798838f,  -0.146093f,   -0.230484f,  -0.620322f,   0.0277852f,
+  -0.400931f,  -0.777044f,   -0.0871401f, -0.248128f,   0.471518f,
+  -0.34174f,   -0.149884f,   -0.0763207f, 0.900372f,    0.233323f,
+  -0.788699f,  0.28221f,     0.327214f,   -0.244877f,   -0.414568f,
+  0.0472988f,  0.168193f,    0.64126f,    0.56686f,     -0.318429f,
+  0.530612f,   -0.750709f,   0.0400333f,  -0.023951f,   -0.0218727f,
+  -0.0449836f, -0.0764245f,  -0.070088f,  -0.0427561f,  -0.0873884f,
+  -0.216423f,  0.622787f,    0.0297492f,  -0.233673f,   0.510639f,
+  0.481654f,   -0.234274f,   0.347734f,   -0.480302f,   0.832741f,
+  0.228223f,   0.247019f,    -0.32416f,   0.352315f,    -1.1491f,
+  0.00806435f, -0.439654f,   0.151723f,   -0.0719021f,  0.463499f,
+  0.00134313f, 0.0553619f,   -0.582163f,  -0.215118f,   -0.291413f,
+  0.889738f,   0.284575f,    0.00450409f, -0.896799f,   0.0303598f,
+  0.187935f,   -0.160993f,   0.089854f,   0.0450689f,   -0.548899f,
+  -0.10556f,   0.29384f,     -0.154158f,  0.423591f,    0.322065f,
+  0.244633f,   -0.320866f,   0.739022f,   -0.500495f,   0.595557f,
+  -0.62001f,   0.259688f,    0.114985f,   -0.13888f,    -0.0737616f,
+  0.801863f,   -0.0606944f,  0.238712f,   -0.0636556f,  0.04317f,
+  0.359843f,   -0.273265f,   0.782092f,   0.341857f,    0.884373f,
+  0.378388f,   0.632049f,    0.633597f,   -0.32103f,    -1.1014f,
+  -0.852525f,  -0.867999f,   0.228625f,   0.444601f,    0.246595f,
+  0.386288f,   -0.341772f,   -0.335849f,  -0.482717f,   0.00928882f,
+  -0.262618f,  0.497003f,    0.579316f,   0.371681f,    -0.440324f,
+  0.115786f,   -0.112295f,   0.07564f,    -0.326419f,   -0.195152f,
+  0.315485f,   -0.368989f,   0.281852f,   0.418865f,    0.807047f,
+  0.293759f,   -0.129749f,   -1.26096f,   -0.0526466f,  -0.618876f,
+  0.330563f,   0.26479f,     0.364751f,   0.68361f,     0.500237f,
+  -0.564011f,  0.158277f,    -0.214105f,  0.50558f,     0.69422f,
+  -0.172224f,  -0.280568f,   0.17241f,    -0.500658f,   -0.00418558f,
+  -0.420356f,  0.0453594f,   0.00471851f, -0.273979f,   0.355633f,
+  0.515393f,   0.0699701f,   -0.413576f,  0.487255f,    -0.388845f,
+  -0.192441f,  -0.353274f,   -0.1773f,    0.256746f,    -0.380197f,
+  0.023061f,   0.431125f,    1.0368f,     -0.0915799f,  -0.268898f,
+  0.0408016f,  0.593356f,    0.308486f,   0.508452f,    -0.0623963f,
+  0.307066f,   0.180916f,    0.326197f,   0.246641f,    0.270665f,
+  -0.145655f,  -0.341277f,   0.0218018f,  -0.326939f,   -0.203528f,
+  -0.25496f,   -0.772783f,   -0.306114f,  -0.79778f,    0.690016f,
+  -0.183109f,  -0.076211f,   -0.474873f,  -0.0219729f,  -0.152253f,
+  -0.0315833f, -0.134908f,   -0.111871f,  0.0409385f,   -0.282586f,
+  -0.101171f,  0.351942f,    0.30023f,    0.369243f,    0.0619639f,
+  -0.170842f,  -0.235501f,   -0.615927f,  0.883574f,    0.150949f,
+  -0.338489f,  -0.213431f,   -0.6075f,    -0.107739f,   -0.251963f,
+  0.143906f,   0.254205f,    -0.260084f,  0.224897f,    0.609902f,
+  0.5606f,     0.795273f,    0.117204f,   0.345592f,    0.243912f,
+  0.0626369f,  -0.166448f,   -0.886364f,  -0.280833f,   -0.0891074f,
+  0.0372486f,  -0.138729f,   0.120189f,   0.345857f,    0.176341f,
+  0.481862f,   -0.137464f,   -0.208001f,  0.621677f,    -0.121462f,
+  0.00445475f, 0.159351f,    0.149918f,   0.198679f,    -0.489814f,
+  -0.30931f,   -0.39161f,    0.268615f,   0.323864f,    0.770061f,
+  0.27962f,    0.536173f,    0.122727f,   0.571712f,    0.48351f,
+  -0.13558f,   -0.426532f,   -0.100426f,  -0.209695f,   0.470483f,
+  -0.424789f,  0.0973791f,   -0.296483f,  -0.302057f,   -0.918591f,
+  0.16328f,    0.0335916f,   0.415762f,   -0.235873f,   -0.00934998f,
+  -0.0967718f, 0.616418f,    0.0931619f,  -0.447975f,   0.156388f,
+  -0.40139f,   0.382807f,    -0.578455f,  1.01437f,     0.37469f,
+  -0.986411f,  -0.827175f,   0.0344976f,  -0.00244486f, -0.142117f,
+  -0.344406f,  -0.0124787f,  -0.226427f,  -0.301835f,   -0.705097f,
+  0.214542f,   -0.0346878f,  -0.255193f,  0.552685f,    -0.104125f,
+  0.77408f,    0.00984395f,  0.0476041f,  -0.244548f,   -0.35082f,
+  -0.487322f,  0.700091f,    -0.138812f,  -0.0110718f,  -0.0400376f,
+  0.254488f,   -0.0867923f,  -0.215463f,  1.03355f,     0.214947f,
+  0.385536f,   0.140597f,    -0.234973f,  -0.0611124f,  1.0974f,
+  0.463592f,   -0.393788f,   -0.428132f,  -0.14664f,    -0.156533f,
+  -0.113426f,  -0.111081f,   -0.0228256f, 0.354909f,    -0.0232978f,
+  0.177394f,   0.0503901f,   -0.220314f,  0.170207f,    0.236719f,
+  0.681525f,   -0.245544f,   -0.119278f,  -0.258491f,   -0.285309f,
+  0.186384f,   -0.119177f,   -0.279398f,  -0.097341f,   -0.324634f,
+  -0.296797f,  -1.3325f,     0.147225f,   0.0158408f,   -0.0365257f,
+  -0.166737f,  -0.159859f,   -0.0765398f, 0.0973026f,   0.294529f,
+  -0.16425f,   0.241506f,    0.561487f,   0.799885f,    -0.565667f,
+  -0.254387f,  -0.360831f,   -0.138432f,  0.406999f,    0.463259f,
+  -0.497314f,  -0.00549591f, -0.0313973f, -0.386042f,   -0.364537f,
+  -0.079987f,  0.148503f,    0.0532473f,  -0.0196838f,  0.232687f,
+  0.212998f,   0.2142f,      0.409001f,   -0.104871f,   -0.217793f,
+  0.0161162f,  -0.371663f,   0.887427f,   0.420187f,    -0.649711f,
+  -0.398999f,  0.448972f,    -0.116108f,  0.0444676f,   -0.501289f,
+  -0.0410878f, 0.00447241f,  -0.402102f,  -0.0926268f,  -0.254362f,
+  -0.395526f,  0.165273f,    0.339347f,   0.91932f,     -0.280113f,
+  0.320112f,   -0.102728f,   -0.131682f,  -0.566621f,   0.386611f,
+  0.146975f,   0.333248f,    -0.179748f,  0.655328f,    0.222658f,
+  0.349512f,   -0.135588f,   -0.22506f,   -0.353001f,   -0.400244f,
+  -0.815125f,  0.72407f,     0.281178f,   -0.109426f,   -0.0977383f,
+  -0.679406f,  -0.401318f,   0.308941f,   -0.594461f,   0.482289f,
+  -0.168467f,  0.76529f,     -0.155056f,  0.0874018f,   0.266124f,
+  -0.0808725f, 0.078792f,    -0.33271f,   -1.0637f,     -0.172125f,
+  0.427025f,   0.332865f,    0.625523f,   0.264166f,    -0.843882f,
+  -0.275777f,  -0.657372f,   0.172814f,   0.0490389f,   -0.561928f,
+  0.0998399f,  0.106047f,    0.39061f,    0.422161f,    0.46369f,
+  -0.364271f,  -0.326968f,   -0.527243f,  -0.618535f,   -0.287804f,
+  -0.211365f,  0.349277f,    0.456535f,   -0.0815191f,  -0.156835f,
+  0.57273f
 };
 
-static const float simple_motion_search_prune_rect_layer_0_kernel_64[] = {
-  -0.0955396f,   0.0114924f,   -0.0810431f,  -0.33444f,     -0.0463965f,
-  0.222538f,     0.41684f,     -0.00203436f, 0.173122f,     -0.146179f,
-  1.02976f,      0.64903f,     -0.27027f,    0.0609664f,    -0.869307f,
-  -0.536022f,    0.14875f,     -0.105693f,   0.272891f,     -0.847822f,
-  0.722511f,     0.175457f,    0.206427f,    -0.124699f,    0.0164477f,
-  0.331568f,     0.298744f,    -0.249587f,   -0.0546789f,   -0.165438f,
-  -0.201993f,    -0.47814f,    -0.284996f,   0.100211f,     0.439414f,
-  0.00431976f,   -0.607345f,   0.395876f,    0.432077f,     -0.201182f,
-  -1.1626f,      -0.915202f,   0.606548f,    -0.00805195f,  0.214499f,
-  0.573404f,     0.0129565f,   -0.139539f,   -0.195218f,    -0.0423162f,
-  0.529606f,     0.18719f,     0.775243f,    0.236413f,     -1.00591f,
-  0.00202726f,   -1.07701f,    -0.0113505f,  -0.248246f,    -0.218112f,
-  0.126451f,     -0.595388f,   -0.25106f,    0.468711f,     -0.322513f,
-  0.196981f,     -0.176692f,   -0.178078f,   -0.33736f,     0.00877613f,
-  -0.299936f,    0.29493f,     -0.483572f,   0.244207f,     -0.193008f,
-  0.582392f,     -0.156948f,   0.134005f,    0.227288f,     0.879863f,
-  0.196686f,     -0.300996f,   -0.95266f,    -0.0235455f,   -0.385976f,
-  -0.000688855f, -0.328365f,   -0.39592f,    0.177301f,     0.134001f,
-  -0.240523f,    0.137593f,    -0.707273f,   -0.407333f,    -0.544081f,
-  -0.184395f,    0.37896f,     0.313908f,    0.188172f,     -0.088467f,
-  0.123425f,     0.285585f,    0.664772f,    -0.107437f,    -0.530605f,
-  0.426075f,     -0.0956688f,  0.475769f,    -0.226957f,    0.497479f,
-  -0.0973361f,   0.646813f,    -0.248913f,   0.117196f,     0.188191f,
-  0.27117f,      -0.292378f,   0.0290377f,   -0.366001f,    -0.203164f,
-  -0.305397f,    -0.526796f,   -0.923496f,   0.834984f,     0.144627f,
-  0.0103899f,    0.534548f,    -0.141897f,   0.509968f,     0.450873f,
-  0.0828022f,    0.0413851f,   0.549486f,    -0.0542229f,   -0.64852f,
-  -0.781963f,    -0.423665f,   -0.216567f,   0.531318f,     0.167107f,
-  1.06594f,      0.183964f,    -0.405879f,   -0.599571f,    0.0253738f,
-  -0.0213327f,   -0.270245f,   0.636231f,    0.116171f,     0.466784f,
-  0.137297f,     0.280382f,    0.0981868f,   -0.238947f,    0.210817f,
-  0.673252f,     -0.0756914f,  0.302537f,    0.0108696f,    -0.0499553f,
-  -0.730525f,    -0.103359f,   -0.301728f,   -0.508398f,    -1.09406f,
-  0.600343f,     0.459265f,    0.514783f,    -0.124542f,    -0.282827f,
-  -0.405428f,    -0.150063f,   0.0314231f,   -0.500199f,    0.0359638f,
-  -0.160956f,    0.652848f,    0.414537f,    -0.550212f,    -0.526028f,
-  -0.0172567f,   0.0431145f,   -0.211108f,   -0.505671f,    0.118762f,
-  -0.0996169f,   1.37903f,     -0.372669f,   -0.214101f,    0.550215f,
-  -0.310568f,    0.0083277f,   -0.0692804f,  0.407818f,     0.313041f,
-  0.0600635f,    -0.545026f,   0.169041f,    -0.413315f,    -0.22927f,
-  -0.493042f,    0.462788f,    -0.141082f,   -0.207174f,    -0.145312f,
-  0.598829f,     -0.417438f,   -0.507561f,   1.54015f,      -0.177759f,
-  0.603537f,     -0.362839f,   0.752922f,    -0.42223f,     0.452005f,
-  -0.164136f,    0.663698f,    -0.293401f,   0.105774f,     -0.436602f,
-  0.0114064f,    -0.521943f,   0.402816f,    -0.325515f,    0.71272f,
-  -0.410154f,    0.166539f,    -0.861678f,   0.241501f,     0.00812334f,
-  -0.271946f,    0.29494f,     -0.336918f,   0.198301f,     -0.421108f,
-  0.276482f,     -0.471011f,   -0.0353971f,  -0.255519f,    0.747247f,
-  -0.208496f,    0.20575f,     -0.093769f,   0.371016f,     -0.462553f,
-  0.439527f,     -0.501947f,   0.678913f,    0.0592761f,    -0.707379f,
-  -0.487351f,    0.568444f,    -0.0136548f,  0.310498f,     -0.0174319f,
-  0.538175f,     -0.194489f,   0.115937f,    -0.278316f,    0.207121f,
-  -0.228797f,    0.921146f,    0.0199402f,   0.189315f,     -0.489682f,
-  -0.127664f,    -0.0551134f,  -0.242746f,   -0.675769f,    0.093105f,
-  -0.0351411f,   0.350513f,    0.133148f,    -0.0808761f,   -0.313078f,
-  0.189685f,     -0.272904f,   -0.49433f,    -0.308289f,    0.477897f,
-  -0.282002f,    -0.176614f,   -0.28103f,    -0.184417f,    -0.396787f,
-  -0.233235f,    -0.00850453f, -0.23164f,    0.042675f,     0.293457f,
-  0.0409628f,    0.00362038f,  -0.00953663f, 0.52735f,      0.315472f,
-  0.128795f,     -0.170787f,   -0.222383f,   0.200515f,     -0.257473f,
-  -0.695571f,    -0.332731f,   -0.189031f,   0.043103f,     -0.0762694f,
-  -0.11686f,     0.194413f,    0.596174f,    -0.0803632f,   -0.518048f,
-  -0.61079f,     -0.206706f,   0.855604f,    0.579438f,     -0.296687f,
-  0.343656f,     -0.112966f,   -0.183152f,   0.051364f,     0.583126f,
-  0.163844f,     0.000238682f, -0.37819f,    -0.116122f,    -0.0576168f,
-  -0.395958f,    -0.171348f,   0.73339f,     0.60445f,      -0.28147f,
-  -0.198162f,    -0.797905f,   -0.335843f,   0.460551f,     -0.87145f,
-  -0.666152f,    -0.411679f,   -0.0148538f,  -0.233716f,    0.1255f,
-  0.203786f,     0.407784f,    0.202491f,    0.0351974f,    -0.45079f,
-  -0.557643f,    0.711177f,    0.282461f,    -0.000344185f, 0.199394f,
-  0.354731f,     0.218657f,    -0.1121f,     0.154379f,     0.46884f,
-  -0.873247f,    -0.41062f,    0.162392f,    0.300664f,     0.338705f,
-  0.00701477f,   0.20115f,     0.0422753f,   0.0658235f,    0.193637f,
-  -0.286329f,    -0.284851f,   0.00751998f,  -0.0736767f,   0.281419f,
-  0.34741f,      0.182409f,    -0.209542f,   -0.357005f,    -0.183123f,
-  -0.983305f,    0.381148f,    1.01159f,     -0.421924f,    -0.0129082f,
-  -0.235917f,    0.404203f,    -0.32379f,    -0.416939f,    -0.000212733f,
-  -0.349122f,    -0.0866705f,  0.229621f,    0.311834f,     0.313783f,
-  -0.439797f,    -0.267139f,   0.609396f,    0.589986f,     0.169516f,
-  -0.342366f,    0.66604f,     0.724562f,    -0.225231f,    -0.180633f,
-  -0.469166f,    -0.353687f,   -0.474233f,   -0.360121f,    -0.465193f,
-  -0.20589f,     -0.47386f,    0.462577f,    0.105843f,     0.226433f,
-  0.30877f,      -0.0671077f,  -0.171733f,   -0.179051f,    -0.326866f,
-  0.217511f,     0.250185f,    1.10298f,     -0.0389183f,   -0.138711f
+static const float simple_motion_search_prune_part_logits_bias_64[] = {
+  0.272852f,  -0.260088f, 0.11881f,   0.146764f,  0.00289019f,
+  -0.559007f, -0.203668f, -0.268267f, -0.218921f, -0.260717f
 };
 
-static const float simple_motion_search_prune_rect_logits_kernel_64[] = {
-  -0.936738f, 0.663296f,  -0.890015f, -0.179846f,  0.419942f,  -0.492271f,
-  0.798717f,  1.59471f,   -0.991652f, -0.0991069f, -1.67343f,  -0.763593f,
-  0.364504f,  -0.489659f, 0.71856f,   -0.139119f,  -0.411379f, -0.79228f,
-  0.389401f,  0.704645f,  0.608738f,  0.0178282f,  0.885372f,  -0.376533f,
-  -0.424384f, -0.229964f, -0.974063f, -0.150809f,  -0.189564f, -2.72888f,
-  -1.70892f,  -0.430297f, -0.258505f, -0.0379024f, -0.226415f, -0.430415f,
-  0.411709f,  0.083831f,  -0.925193f, 0.535882f,   0.209211f,  -0.244211f,
-  0.264178f,  0.167529f,  0.0457353f, 1.27182f,    -0.350646f, -1.64938f,
-  0.319059f,  0.428646f,  2.78301f,   0.647146f,   0.238655f,  -0.268889f,
-  -0.136987f, 0.300992f,  0.461351f,  0.477707f,   0.147197f,  -0.183917f
+static const float simple_motion_search_prune_part_layer_0_bias_64[] = {
+  -2.12804f,   0.445147f,  -0.0210471f, 0.533662f,   0.662023f,  0.020519f,
+  -0.0452071f, -0.343995f, 0.112379f,   -0.16776f,   0.112004f,  0.932147f,
+  -1.22944f,   -0.822248f, 0.370083f,   -0.0951491f, 0.0631258f, -0.875801f,
+  0.996276f,   0.116103f,  0.925914f,   0.054293f,   -1.02697f,  -0.359516f
 };
 
-static const NN_CONFIG simple_motion_search_prune_rect_nn_config_64 = {
+static const NN_CONFIG simple_motion_search_prune_part_nn_config_64 = {
   NUM_FEATURES_64,
   NUM_LOGITS_64,
   NUM_HIDDEN_LAYERS_64,
@@ -3263,12 +3301,12 @@
       NUM_LAYER_0_UNITS_64,
   },
   {
-      simple_motion_search_prune_rect_layer_0_kernel_64,
-      simple_motion_search_prune_rect_logits_kernel_64,
+      simple_motion_search_prune_part_layer_0_kernel_64,
+      simple_motion_search_prune_part_logits_kernel_64,
   },
   {
-      simple_motion_search_prune_rect_layer_0_bias_64,
-      simple_motion_search_prune_rect_logits_bias_64,
+      simple_motion_search_prune_part_layer_0_bias_64,
+      simple_motion_search_prune_part_logits_bias_64,
   },
 };
 
@@ -3277,142 +3315,163 @@
 #undef NUM_LAYER_0_UNITS_64
 #undef NUM_LOGITS_64
 
+// BLOCK_32X32
 #define NUM_HIDDEN_LAYERS_32 1
-#define NUM_FEATURES_32 21
+#define NUM_FEATURES_32 19
 #define NUM_LAYER_0_UNITS_32 24
-#define NUM_LOGITS_32 3
+#define NUM_LOGITS_32 10
 
-static const float simple_motion_search_prune_rect_layer_0_bias_32[] = {
-  -0.150877f,  0.377067f,  -0.322903f, -0.253833f, -1.34836f,  -0.0407889f,
-  0.340694f,   -0.493511f, -0.106756f, 0.306534f,  -0.244238f, 0.274641f,
-  -0.251146f,  -0.340148f, -0.449601f, -0.99361f,  0.242116f,  -1.03158f,
-  -0.0317092f, -0.505396f, -0.286031f, 0.815326f,  0.105512f,  -0.733433f
+static const float simple_motion_search_prune_part_logits_kernel_32[] = {
+  -1.22965f,   0.49978f,    -0.376271f,  0.0615445f,  -0.212491f,  0.58427f,
+  0.142683f,   2.62142f,    -0.459751f,  -0.570143f,  0.72257f,    -0.64127f,
+  0.266919f,   0.3235f,     0.64405f,    -0.0398269f, -1.82822f,   -0.366573f,
+  0.753387f,   -0.274241f,  -0.484971f,  -0.503907f,  -0.911176f,  -0.455827f,
+  -0.706345f,  0.0687611f,  -0.362788f,  -0.369416f,  -0.530408f,  0.0812615f,
+  -0.863012f,  -0.613333f,  -0.268833f,  0.0982181f,  0.19374f,    -0.147078f,
+  -0.0200551f, 0.363817f,   0.179229f,   0.429671f,   0.905826f,   -0.441191f,
+  0.48874f,    0.539192f,   -0.418992f,  -0.468762f,  -0.482158f,  -0.770778f,
+  -0.743739f,  0.0175955f,  -0.40662f,   0.0276107f,  0.0110658f,  -0.119298f,
+  0.698777f,   -0.187602f,  -0.300483f,  -0.147972f,  0.324042f,   -0.0265165f,
+  -0.375496f,  0.245762f,   -0.111271f,  -0.829879f,  -0.434606f,  -0.367099f,
+  0.113229f,   -0.755101f,  -0.0623393f, -0.13764f,   -0.205864f,  -0.332027f,
+  0.966638f,   0.477078f,   0.262501f,   -0.110232f,  0.141242f,   -0.699602f,
+  -0.14943f,   -2.36868f,   0.556236f,   0.345883f,   -0.466765f,  0.279446f,
+  -0.56809f,   -0.356351f,  -0.503855f,  -0.607959f,  -0.0328514f, 0.313352f,
+  -0.644447f,  0.221808f,   0.254575f,   0.476802f,   1.40433f,    0.317169f,
+  0.109761f,   -0.0105197f, -0.22896f,   -0.389234f,  0.423948f,   -0.272114f,
+  -1.02704f,   -1.50706f,   0.0563541f,  -0.0371609f, -0.306187f,  0.0570354f,
+  -0.367998f,  0.0949103f,  -0.254703f,  -0.0853516f, 1.56471f,    -0.594372f,
+  -0.23582f,   0.267108f,   0.015297f,   -0.318317f,  0.287599f,   -0.687022f,
+  0.360804f,   -0.177637f,  -0.118144f,  -0.418225f,  -0.985658f,  -0.391334f,
+  -0.772539f,  -0.44002f,   0.0722112f,  -0.0825626f, 0.0466844f,  0.0525818f,
+  -0.788047f,  0.120401f,   -0.785688f,  -0.346177f,  0.240363f,   0.0248826f,
+  -0.0815654f, 0.39317f,    -0.122372f,  0.199969f,   0.202777f,   -0.1979f,
+  0.313558f,   -0.180202f,  0.191204f,   -0.313598f,  0.155464f,   -0.600106f,
+  0.0230461f,  -0.718126f,  0.266874f,   -0.313614f,  0.0352148f,  0.131058f,
+  -0.221112f,  0.115419f,   -1.41928f,   -0.909453f,  0.341747f,   -0.25318f,
+  -0.312476f,  -0.288919f,  -0.0135884f, -0.278496f,  0.381449f,   -0.0725586f,
+  0.254479f,   -0.0658647f, -0.694657f,  -0.0653643f, -0.0233378f, -0.484902f,
+  -0.104919f,  -1.52446f,   0.0140919f,  -0.142396f,  -0.11836f,   0.113235f,
+  -1.21564f,   0.0618471f,  0.0421833f,  -0.883143f,  0.288008f,   -0.278322f,
+  -0.185151f,  -0.616223f,  0.334549f,   0.370898f,   0.24646f,    -0.027439f,
+  0.366905f,   -0.40628f,   0.0260464f,  -0.506151f,  0.0191214f,  -0.104617f,
+  -0.848722f,  -1.66357f,   -0.194607f,  0.0346545f,  -0.412502f,  0.200471f,
+  -0.285588f,  0.0309609f,  -0.150546f,  0.569096f,   0.210382f,   0.14322f,
+  0.908182f,   1.23553f,    -0.432935f,  -0.0963189f, -0.610778f,  -0.532583f,
+  -0.302028f,  -0.600906f,  -0.0777476f, 0.0230625f,  0.375802f,   -0.466292f,
+  1.01104f,    -1.16706f,   0.0121855f,  0.0100479f,  -0.147181f,  0.255058f,
+  -0.285898f,  -0.167804f,  -0.240171f,  -1.15287f,   -1.51181f,   0.0859809f,
+  0.0811324f,  -0.829305f,  0.272793f,   0.407484f,   0.324943f,   0.230197f
 };
 
-static const float simple_motion_search_prune_rect_logits_bias_32[] = {
-  -0.0847271f, -0.140019f, 0.123488f
+static const float simple_motion_search_prune_part_layer_0_kernel_32[] = {
+  -0.0711848f, 0.187893f,     -0.0532872f,  -0.0403218f, 0.132223f,
+  0.0150309f,  0.132917f,     -0.00883543f, -0.0614934f, 0.207838f,
+  -0.102772f,  0.127833f,     -0.332145f,   0.00237219f, -0.338402f,
+  0.123288f,   -0.248341f,    -0.0182967f,  -1.16283f,   -0.166611f,
+  -0.220962f,  -0.268939f,    -0.207455f,   -0.214904f,  -0.0639896f,
+  -0.0729676f, -0.000552725f, 0.217902f,    0.350537f,   -0.0217492f,
+  0.136239f,   0.0641448f,    0.515814f,    0.525507f,   0.240539f,
+  0.109375f,   0.322722f,     -1.20791f,    0.323287f,   0.0231209f,
+  -0.194629f,  0.143504f,     0.193943f,    -0.15059f,   -0.0156431f,
+  -0.210354f,  0.13426f,      -0.379795f,   0.0585494f,  0.0947257f,
+  0.948153f,   0.492681f,     -0.977907f,   -0.30367f,   0.216922f,
+  -0.366185f,  0.00734769f,   0.528627f,    0.334327f,   0.0222445f,
+  0.400606f,   -0.0313966f,   -0.047664f,   -0.512993f,  -0.433836f,
+  0.340769f,   -0.131347f,    -0.518235f,   -0.220933f,  -0.379338f,
+  -0.116978f,  0.143766f,     0.456281f,    -0.0921022f, -0.0109533f,
+  -0.107467f,  0.335672f,     -0.313228f,   0.175586f,   0.108769f,
+  0.129646f,   -0.053502f,    0.272574f,    0.220172f,   1.51046f,
+  0.255032f,   -0.162058f,    -0.770721f,   0.238623f,   -0.65159f,
+  -0.0354393f, -0.577323f,    0.0954972f,   -0.661719f,  0.227893f,
+  -0.0584787f, 0.234849f,     -0.16515f,    -0.247194f,  0.12563f,
+  0.39043f,    -0.178219f,    -0.0629665f,  0.395761f,   0.24224f,
+  -0.336032f,  0.552893f,     -0.300073f,   -0.235499f,  -0.33557f,
+  0.0398952f,  -0.853526f,    -0.550247f,   1.13965f,    0.197325f,
+  -0.0750203f, 0.145096f,     0.128642f,    0.113606f,   0.0972738f,
+  0.219874f,   0.252284f,     0.833398f,    0.398332f,   0.802753f,
+  0.650573f,   -0.725374f,    -0.548798f,   -0.668723f,  -0.705524f,
+  -0.929613f,  -0.138145f,    0.161306f,    0.578878f,   0.0605056f,
+  0.720406f,   0.163571f,     0.707962f,    -0.0777347f, 0.52085f,
+  0.279096f,   0.180012f,     -0.459535f,   0.219678f,   -0.273058f,
+  -0.030387f,  -0.262664f,    0.367791f,    -0.899145f,  -1.07191f,
+  -1.15497f,   0.460442f,     0.020009f,    -0.329794f,  0.846777f,
+  0.287855f,   0.603544f,     0.645424f,    0.00753003f, -0.0666031f,
+  -0.141114f,  -0.149588f,    -0.431897f,   -0.591811f,  0.134026f,
+  0.0933469f,  -0.130808f,    -0.0335611f,  -0.488446f,  -0.275566f,
+  -0.937488f,  0.245793f,     -0.548915f,   0.0108641f,  -0.216292f,
+  0.00680863f, -0.113137f,    -0.137064f,   0.083321f,   0.689742f,
+  -0.213193f,  0.172408f,     -0.123794f,   0.383401f,   -0.496176f,
+  0.427836f,   -0.644447f,    0.967995f,    0.181371f,   0.301512f,
+  -0.376098f,  -0.0571203f,   0.0012891f,   0.467542f,   -0.400791f,
+  -0.204521f,  0.253847f,     0.107368f,    -0.434741f,  -0.389665f,
+  0.30953f,    0.053949f,     -0.0415711f,  0.0432576f,  -0.319656f,
+  -0.228939f,  -0.0928546f,   0.164408f,    1.26655f,    0.991928f,
+  -0.0596439f, 0.0786943f,    0.001457f,    0.282831f,   0.0975484f,
+  0.13724f,    0.0891527f,    -0.0471925f,  0.255467f,   -0.469073f,
+  -0.0759757f, 0.331197f,     0.139434f,    -0.0118866f, 0.359463f,
+  -0.774947f,  -0.474647f,    -1.36563f,    0.24901f,    0.776025f,
+  0.150621f,   0.192407f,     0.752499f,    0.0435322f,  -0.0334263f,
+  0.470741f,   -0.781907f,    -0.149471f,   -0.649484f,  -0.866079f,
+  0.536967f,   0.541611f,     -0.00237101f, -0.119688f,  -0.594591f,
+  -0.967503f,  0.545025f,     -0.335037f,   -0.172105f,  -0.532514f,
+  -0.442211f,  -0.0864824f,   0.038418f,    -0.337492f,  -0.412653f,
+  0.0778177f,  0.0824839f,    -0.232478f,   0.553077f,   0.179073f,
+  0.222848f,   -0.261019f,    0.854277f,    -0.643185f,  0.476021f,
+  -0.0174448f, 0.621669f,     -0.527978f,   0.45279f,    -0.286967f,
+  0.328291f,   0.0627781f,    0.495794f,    0.0156424f,  -0.170515f,
+  -0.435815f,  -0.264061f,    -0.964473f,   0.259361f,   -0.297514f,
+  0.667044f,   0.719631f,     -0.812974f,   -0.350331f,  0.594795f,
+  -0.106071f,  -0.409225f,    0.283481f,    0.5735f,     -0.231666f,
+  -0.270059f,  0.687725f,     0.349693f,    0.0637911f,  0.208738f,
+  0.299087f,   -0.249188f,    -0.426365f,   -1.01906f,   0.0919539f,
+  -0.198362f,  0.256663f,     -0.302723f,   0.457283f,   0.433322f,
+  0.242223f,   0.740515f,     0.247248f,    0.436274f,   0.588906f,
+  0.852493f,   0.385838f,     0.243232f,    -0.501191f,  0.212121f,
+  0.297253f,   -0.664029f,    -0.470196f,   0.0175681f,  -1.01849f,
+  -0.619865f,  -1.26982f,     -0.088134f,   -0.29233f,   -0.196112f,
+  -0.141886f,  0.0602684f,    0.469327f,    0.0227135f,  0.275863f,
+  0.161156f,   -0.864189f,    -0.72576f,    0.62214f,    0.804845f,
+  0.183776f,   -0.155777f,    -0.0826676f,  -0.23302f,   0.0845181f,
+  -0.126365f,  0.0925764f,    0.889037f,    -0.208894f,  0.441273f,
+  0.476529f,   0.510144f,     0.321464f,    0.764386f,   0.198938f,
+  -0.669809f,  -0.13214f,     -0.426596f,   -0.547804f,  -0.0953238f,
+  0.164997f,   0.275626f,     -0.0469242f,  -0.923263f,  -1.05855f,
+  -0.487197f,  0.261922f,     -0.108634f,   0.409852f,   0.142348f,
+  0.153656f,   -0.119714f,    0.490507f,    -0.26725f,   -0.0651784f,
+  -0.962803f,  -0.596098f,    -0.686329f,   0.66723f,    0.290971f,
+  0.692586f,   0.56926f,      -0.0494205f,  -0.498585f,  -0.1832f,
+  -0.571507f,  -0.438308f,    0.607958f,    0.985154f,   0.131991f,
+  0.0469712f,  0.415769f,     -0.518799f,   -0.353338f,  -0.219197f,
+  -0.159141f,  0.085484f,     -0.405673f,   -0.222816f,  0.813276f,
+  0.323344f,   -0.235178f,    -0.40799f,    -0.083177f,  0.514834f,
+  0.177916f,   0.0197744f,    -0.523574f,   -0.445548f,  -0.21085f,
+  0.760991f,   0.170654f,     -0.00312635f, -0.175464f,  0.665364f,
+  -0.713881f,  -0.701069f,    -0.628863f,   1.03196f,    -0.0414137f,
+  -0.0163186f, 0.16796f,      -0.0263498f,  0.484873f,   0.153922f,
+  0.0593931f,  0.171615f,     0.330269f,    -0.0728948f, 0.42332f,
+  0.294273f,   -0.0185935f,   -0.609248f,   -0.305841f,  -0.293534f,
+  0.0766015f,  0.130506f,     0.16716f,     0.0168997f,  -0.429074f,
+  -0.744995f,  -0.972633f,    0.50621f,     -0.275645f,  0.402252f,
+  -0.0190824f, 0.637343f,     -0.410791f,   0.546844f,   -0.555088f,
+  0.491182f,   -0.0369695f,   0.974657f,    -0.142378f,  -0.148588f,
+  -0.217919f,  0.0146815f,    -0.419912f,   0.111356f,   -0.640505f,
+  -0.352691f
 };
 
-static const float simple_motion_search_prune_rect_layer_0_kernel_32[] = {
-  0.30266f,    -0.404167f,   0.184244f,    -0.204914f,   0.186292f,
-  -0.185721f,  0.2343f,      -0.309748f,   0.629703f,    -0.161018f,
-  0.586971f,   -0.122501f,   0.258395f,    -0.345766f,   0.425087f,
-  -0.288511f,  0.58389f,     -0.122772f,   -1.0191f,     -0.331509f,
-  -0.155374f,  -0.131892f,   -0.257301f,   -0.0936263f,  -0.173647f,
-  -0.25349f,   -0.297998f,   -0.165697f,   -0.259397f,   -0.308744f,
-  0.13609f,    -0.659645f,   -0.658289f,   0.691323f,    0.302487f,
-  0.503949f,   0.320062f,    0.798778f,    0.459502f,    0.0319676f,
-  -0.231042f,  0.216936f,    0.656985f,    -0.278082f,   0.522593f,
-  -0.120114f,  0.565497f,    -0.158329f,   0.599947f,    -0.222883f,
-  0.385044f,   -0.58876f,    0.363486f,    -0.672838f,   0.233821f,
-  -0.357066f,  0.290888f,    -0.420639f,   -0.376543f,   -0.748431f,
-  0.341052f,   0.305233f,    -0.273799f,   0.0572371f,   0.187165f,
-  0.31469f,    -0.0141874f,  0.172004f,    -0.0819225f,  0.252624f,
-  0.190534f,   -0.0790111f,  -0.309345f,   -0.256681f,   -0.145961f,
-  -0.0955447f, -0.324261f,   -0.227545f,   -0.291766f,   -0.176335f,
-  0.104228f,   1.31795f,     -0.122225f,   -0.00231043f, 0.00262551f,
-  0.0643949f,  0.302213f,    0.00923296f,  0.112109f,    0.0823432f,
-  -0.0480501f, 0.050152f,    -0.133536f,   -0.0943857f,  -0.0255181f,
-  -0.104284f,  0.072475f,    -0.116041f,   -0.103424f,   0.0894712f,
-  -0.0565939f, -0.0803143f,  -1.05708f,    0.0692672f,   0.27409f,
-  0.646258f,   0.0493468f,   0.316645f,    -0.520888f,   0.245417f,
-  -0.476851f,  0.571094f,    0.25759f,     0.111997f,    -0.382122f,
-  0.602901f,   -0.387416f,   0.17528f,     -0.536206f,   0.370157f,
-  -0.0598445f, 0.0351273f,   -0.888124f,   -0.0380012f,  0.0037939f,
-  -0.278387f,  -0.349207f,   -0.286866f,   -0.141381f,   0.0113867f,
-  -0.363429f,  -0.23672f,    -0.127249f,   -0.0618156f,  0.865495f,
-  0.285948f,   0.808533f,    0.165837f,    -0.589867f,   -0.396041f,
-  -0.30314f,   -0.186404f,   0.370238f,    0.520893f,    0.095395f,
-  0.0105089f,  0.214409f,    0.0380188f,   0.111472f,    0.06696f,
-  0.0996208f,  0.238311f,    0.00447955f,  0.0334197f,   0.24364f,
-  -0.159119f,  -0.105443f,   -0.4223f,     0.120655f,    -0.0656574f,
-  -0.0979482f, -0.112141f,   0.0832164f,   -0.982145f,   -0.577622f,
-  1.31481f,    -0.0729726f,  0.260851f,    -0.304419f,   0.05496f,
-  -0.101393f,  -0.136905f,   -0.113133f,   0.10068f,     -0.243494f,
-  -0.0521267f, -0.396234f,   0.248386f,    -0.498069f,   0.0660911f,
-  0.391867f,   0.30568f,     -0.141968f,   0.229426f,    -0.098988f,
-  0.0390286f,  1.05619f,     -0.358586f,   -0.220905f,   0.0801896f,
-  -0.235616f,  -0.191875f,   -0.195233f,   0.0236047f,   -0.12518f,
-  -0.11065f,   -0.201486f,   -0.618409f,   -0.613389f,   -0.321614f,
-  -0.324938f,  0.749192f,    0.537903f,    0.761206f,    0.503924f,
-  0.195202f,   -0.00838913f, 0.128977f,    0.18535f,     -0.19846f,
-  -0.222905f,  -0.0526954f,  -0.179f,      -0.315802f,   -0.028573f,
-  -0.704001f,  -0.255896f,   -0.292945f,   0.243154f,    -0.0101149f,
-  0.227509f,   -0.323767f,   0.827498f,    0.177415f,    0.217882f,
-  -0.320858f,  0.926904f,    0.14992f,     0.137888f,    -0.295178f,
-  -0.172849f,  0.111864f,    -0.0638878f,  -0.331824f,   -0.234096f,
-  0.0562124f,  -0.115936f,   0.165391f,    -0.357548f,   0.642385f,
-  0.205559f,   0.606645f,    0.402024f,    0.0671416f,   -0.341089f,
-  -0.550208f,  -0.627616f,   0.386765f,    -0.0826835f,  0.194135f,
-  -0.323129f,  -0.216731f,   -0.0473442f,  -0.230099f,   -0.223107f,
-  -0.157901f,  -0.196825f,   -0.137026f,   -0.0885836f,  -0.156467f,
-  -0.574477f,  -0.531131f,   -0.488885f,   -0.585363f,   0.909019f,
-  0.734626f,   0.662438f,    0.780993f,    0.358014f,    -0.0470738f,
-  -0.0196115f, -0.159158f,   -0.142333f,   0.272001f,    0.183535f,
-  0.258324f,   0.00783186f,  0.0370277f,   0.299222f,    0.148317f,
-  0.0255202f,  -0.289325f,   0.074542f,    -0.297216f,   -0.134052f,
-  -0.0724699f, 0.00723407f,  -0.393625f,   0.11831f,     -0.925339f,
-  -0.438459f,  1.00802f,     0.247505f,    0.195977f,    0.366527f,
-  0.129965f,   0.429437f,    0.202284f,    0.440758f,    0.200634f,
-  0.639987f,   0.207631f,    0.245741f,    -0.304722f,   0.0543015f,
-  -0.25859f,   0.0874036f,   -0.336049f,   0.263197f,    -0.204705f,
-  -0.552149f,  -1.05707f,    -0.38142f,    0.123726f,    -0.31445f,
-  0.33148f,    0.16558f,     0.470366f,    0.15454f,     0.356113f,
-  0.294223f,   0.132882f,    0.236889f,    -0.307471f,   -0.187956f,
-  -0.232843f,  -0.127055f,   -0.327118f,   -0.253123f,   -0.288136f,
-  0.293925f,   -0.757913f,   -0.695626f,   0.0674771f,   -0.0791973f,
-  -0.0663982f, 0.138042f,    0.0944698f,   -0.225499f,   -0.248548f,
-  0.25318f,    0.0517455f,   -0.486571f,   -0.504592f,   0.628462f,
-  0.492846f,   0.471343f,    0.231574f,    -0.592017f,   0.226039f,
-  -0.536864f,  -0.404826f,   0.382626f,    -0.11126f,    0.16268f,
-  -0.195043f,  -0.331804f,   -0.141593f,   -0.177255f,   0.0455108f,
-  0.14209f,    -0.144151f,   -0.159788f,   0.361794f,    0.13538f,
-  0.180654f,   0.154808f,    0.124516f,    0.142742f,    -0.480668f,
-  -0.773066f,  0.535723f,    -0.336229f,   0.201306f,    -0.343304f,
-  0.432312f,   0.121089f,    -0.211339f,   0.333237f,    -0.587896f,
-  0.504565f,   -0.101135f,   0.717786f,    -0.021451f,   0.219768f,
-  -0.0491637f, 0.351394f,    -0.771172f,   0.212839f,    -0.114615f,
-  0.648602f,   -0.506628f,   0.0682527f,   -0.186903f,   -0.17884f,
-  -0.539165f,  -0.0501128f,  0.363953f,    -0.0582328f,  -0.108791f,
-  0.028609f,   -0.432395f,   0.00869045f,  0.0718638f,   -0.0457797f,
-  0.0460659f,  -0.295409f,   0.679474f,    0.666139f,    0.586366f,
-  0.725428f,   -0.205199f,   -0.540827f,   -0.47579f,    -0.828132f,
-  0.174364f,   -0.300155f,   0.134658f,    -0.202005f,   -0.21941f,
-  -0.301165f,  -0.217839f,   -0.00468189f, 0.0196276f,   -0.273809f,
-  -0.0579939f, -0.291044f,   0.16528f,     0.117749f,    0.374272f,
-  0.21857f,    0.149568f,    -0.862803f,   -0.457729f,   0.260053f,
-  0.542802f,   0.20875f,     0.566169f,    0.0138947f,   -0.00926447f,
-  0.21053f,    -0.336753f,   -0.112768f,   -0.0418503f,  -0.120371f,
-  -0.0160341f, -0.144839f,   -0.189578f,   -0.188411f,   -0.0410867f,
-  0.185114f,   0.0929855f,   -0.0893646f,  -0.0443794f,  0.114525f,
-  -0.111265f,  -0.0555613f,  0.230279f,    0.368952f,    0.988605f,
-  -0.0727516f, -0.137696f,   0.643078f,    -0.283231f,   0.37273f,
-  0.393343f,   0.137257f,    -0.028331f,   0.0440161f,   0.032468f,
-  0.71373f,    0.124146f,    -0.388189f,   -0.669179f,   0.0837899f,
-  -0.381673f,  0.345236f,    -0.358017f,   -0.0583598f,  -0.736627f,
-  -0.0769623f, 0.156985f,    -0.288763f,   0.767518f,    0.166668f,
-  0.503661f,   0.179627f,    0.353413f,    -0.529735f,   0.231143f,
-  0.0659671f,  0.20884f,     -0.219304f,   -0.405746f,   -0.924161f,
-  0.0215154f,  -0.224603f,   0.0552142f,   0.0182611f,   -0.307353f,
-  -0.494348f,  0.394429f,    0.248368f,    0.054821f
+static const float simple_motion_search_prune_part_logits_bias_32[] = {
+  0.0868818f, 0.370904f,  0.126136f,  0.57768f,   -0.316245f,
+  -0.526958f, -0.451775f, -0.595569f, -0.805166f, -0.592605f
 };
 
-static const float simple_motion_search_prune_rect_logits_kernel_32[] = {
-  -0.0331377f, 0.7848f,    -1.19164f,  0.157774f,    -0.784731f,  -0.424402f,
-  -0.821959f,  -1.22346f,  0.312851f,  1.0622f,      -0.154046f,  -0.364553f,
-  -1.21152f,   -0.296875f, 0.214748f,  0.945568f,    -0.378736f,  0.582235f,
-  0.0378807f,  0.933609f,  -0.181642f, -0.299656f,   -0.178872f,  -0.172049f,
-  -0.332916f,  -0.266806f, -1.67998f,  0.278216f,    -0.579313f,  -0.359449f,
-  0.465232f,   -0.857095f, 0.026849f,  -0.464277f,   -0.447601f,  0.417111f,
-  0.831748f,   -0.390425f, 0.416616f,  0.723334f,    0.306278f,   -0.890092f,
-  0.114596f,   -1.11322f,  -0.100165f, -0.246978f,   0.00824933f, 0.713278f,
-  0.809144f,   -0.142374f, 2.21987f,   -0.688482f,   1.1447f,     0.31233f,
-  -0.633595f,  0.541453f,  -0.365008f, 0.000583967f, 0.300029f,   0.0648236f,
-  0.191301f,   0.619809f,  -1.14674f,  -1.19871f,    -0.0516684f, -0.26913f,
-  0.7267f,     -0.213969f, 0.328374f,  0.373149f,    0.443977f,   0.0908275f
+static const float simple_motion_search_prune_part_layer_0_bias_32[] = {
+  -1.85942f, 0.727049f,   -0.0421259f, 0.759194f,   0.241057f,  0.0752973f,
+  0.321934f, -0.593116f,  -0.873202f,  -0.238779f,  0.851339f,  -0.536633f,
+  -0.18552f, -0.0941714f, 0.0153855f,  -1.34736f,   -0.870722f, 0.0973251f,
+  0.491483f, 0.650638f,   -0.205986f,  -0.0499654f, -1.00592f,  0.65992f
 };
 
-static const NN_CONFIG simple_motion_search_prune_rect_nn_config_32 = {
+static const NN_CONFIG simple_motion_search_prune_part_nn_config_32 = {
   NUM_FEATURES_32,
   NUM_LOGITS_32,
   NUM_HIDDEN_LAYERS_32,
@@ -3420,12 +3479,12 @@
       NUM_LAYER_0_UNITS_32,
   },
   {
-      simple_motion_search_prune_rect_layer_0_kernel_32,
-      simple_motion_search_prune_rect_logits_kernel_32,
+      simple_motion_search_prune_part_layer_0_kernel_32,
+      simple_motion_search_prune_part_logits_kernel_32,
   },
   {
-      simple_motion_search_prune_rect_layer_0_bias_32,
-      simple_motion_search_prune_rect_logits_bias_32,
+      simple_motion_search_prune_part_layer_0_bias_32,
+      simple_motion_search_prune_part_logits_bias_32,
   },
 };
 
@@ -3436,141 +3495,121 @@
 
 // BLOCK_16X16
 #define NUM_HIDDEN_LAYERS_16 1
-#define NUM_FEATURES_16 21
-#define NUM_LAYER_0_UNITS_16 24
-#define NUM_LOGITS_16 3
+#define NUM_FEATURES_16 19
+#define NUM_LAYER_0_UNITS_16 16
+#define NUM_LOGITS_16 10
 
-static const float simple_motion_search_prune_rect_layer_0_bias_16[] = {
-  0.604848f,  0.905399f,  -0.519689f, 0.401153f,   0.281126f,  -1.27562f,
-  -0.337675f, -0.104628f, -0.156367f, -0.0754566f, 1.31977f,   0.564316f,
-  -0.716749f, 0.590499f,  0.480629f,  -0.581097f,  0.0266441f, -0.836869f,
-  -0.93972f,  -1.18115f,  -1.43279f,  -0.0912462f, 0.197468f,  0.0233385f
+static const float simple_motion_search_prune_part_logits_kernel_16[] = {
+  0.274123f,   -0.551439f,  0.578938f,   -0.213001f,  -0.310021f,
+  0.0301311f,  -0.377388f,  -3.16339f,   0.434616f,   0.264216f,
+  0.320385f,   -1.41657f,   1.05919f,    -0.396075f,  -0.855458f,
+  0.418105f,   -0.0769093f, -0.54773f,   -0.215041f,  -0.13885f,
+  -0.209062f,  -0.526914f,  0.211082f,   -2.34741f,   -0.000587922f,
+  -0.431294f,  0.757511f,   -0.184199f,  -0.623552f,  -0.221362f,
+  -0.628871f,  0.646393f,   -0.192193f,  0.0166809f,  -0.061691f,
+  -0.214283f,  -0.35264f,   0.361452f,   -0.0160958f, -0.0475499f,
+  0.196822f,   0.44674f,    -0.408064f,  -0.559148f,  -0.67489f,
+  -0.202201f,  -0.358012f,  -0.341735f,  -0.325682f,  0.220407f,
+  -0.642416f,  0.350069f,   0.430505f,   -0.0997745f, -0.300435f,
+  1.25364f,    -0.869717f,  -0.0728051f, -0.172433f,  0.385328f,
+  -2.13737f,   0.673629f,   0.580102f,   -0.0745359f, -0.442542f,
+  -0.208393f,  -0.44303f,   0.318855f,   0.0557663f,  0.268257f,
+  -0.0941132f, -4.52876f,   -0.638897f,  -0.907808f,  0.28328f,
+  0.619328f,   -1.64249f,   0.0241431f,  -0.0880383f, 0.299287f,
+  -0.248316f,  0.039253f,   -0.544645f,  -0.141389f,  0.0185283f,
+  -1.01973f,   -0.269349f,  -4.88803f,   -0.632892f,  0.181151f,
+  0.193291f,   0.592713f,   -1.71466f,   0.398923f,   0.00355734f,
+  0.212158f,   -0.949188f,  0.386679f,   -0.243317f,  -0.17458f,
+  0.0576348f,  0.096034f,   -0.282317f,  -4.13556f,   -0.516689f,
+  0.169427f,   -0.541422f,  0.529281f,   -1.45161f,   -0.0417835f,
+  0.0174299f,  -0.26404f,   -0.105773f,  0.102701f,   -0.65039f,
+  0.308121f,   -0.185395f,  0.273611f,   -0.408464f,  -6.09866f,
+  -0.512249f,  0.0668662f,  -0.547454f,  0.62565f,    -1.63952f,
+  0.510116f,   0.127461f,   -0.506263f,  0.113016f,   -0.258605f,
+  -0.308066f,  0.0957733f,  0.059395f,   -0.915338f,  0.499407f,
+  -10.3199f,   -0.32224f,   -0.677307f,  1.13218f,    -0.0888689f,
+  -0.108029f,  -0.156533f,  -0.391431f,  0.576607f,   -0.0833897f,
+  0.536752f,   -0.0832957f, -0.0957492f, -0.135149f,  0.423881f,
+  0.317691f,   -7.29755f,   0.104775f,   0.534134f,   -0.797288f,
+  -0.386335f,  -0.20785f,   -0.0507494f, -0.338127f,  -0.868801f
 };
 
-static const float simple_motion_search_prune_rect_logits_bias_16[] = {
-  0.382982f, 0.0828581f, -0.531509f
+static const float simple_motion_search_prune_part_layer_0_kernel_16[] = {
+  -0.244782f,   0.00425059f, -0.337534f,  -0.423125f,   -0.349549f,
+  -0.00261207f, -0.0845866f, -0.259278f,  -0.375872f,   0.00052185f,
+  -0.427483f,   0.175625f,   -0.357737f,  0.129946f,    0.97588f,
+  1.19281f,     -0.51292f,   -0.100629f,  1.04044f,     0.197375f,
+  -0.210977f,   -0.20334f,   0.173408f,   0.431999f,    0.083979f,
+  -0.334416f,   -0.171408f,  0.160035f,   -0.0464933f,  0.164574f,
+  -0.162781f,   1.01648f,    0.624844f,   -1.20372f,    -0.698742f,
+  0.335747f,    -0.362217f,  -0.0817772f, -0.0366522f,  -0.249627f,
+  -0.3135f,     0.256151f,   -0.257869f,  0.0816391f,   -0.256592f,
+  0.071219f,    -0.295956f,  0.287213f,   -0.375107f,   -0.149275f,
+  0.0449292f,   0.49489f,    -0.958944f,  0.386166f,    -0.76147f,
+  -0.223786f,   1.91139f,    -0.0866129f, -0.516556f,   0.871813f,
+  0.389086f,    0.3205f,     0.605997f,   -0.531384f,   -0.693121f,
+  0.728219f,    0.223733f,   -0.58534f,   -0.410249f,   0.0271334f,
+  -0.43904f,    0.325998f,   -0.123988f,  0.103988f,    -0.2227f,
+  0.0779071f,   0.100073f,   -0.924956f,  -0.00472742f, -0.21932f,
+  -0.220187f,   -0.719278f,  0.099118f,   -0.0891471f,  0.743678f,
+  -0.173308f,   0.588225f,   -0.31524f,   1.1415f,      0.408762f,
+  -0.213088f,   -0.291621f,  0.655754f,   0.531725f,    -0.013178f,
+  -0.100753f,   -0.0775942f, -0.181806f,  -0.441297f,   -0.00589338f,
+  0.14217f,     -0.0592671f, 0.10907f,    1.47619f,     0.813817f,
+  0.1996f,      0.178263f,   -0.569958f,  -0.374858f,   -0.743922f,
+  -0.269343f,   -0.118752f,  0.0797114f,  0.027829f,    -0.133402f,
+  -0.164884f,   -0.42919f,   0.0682661f,  -0.206438f,   0.0184534f,
+  -0.141316f,   -0.138817f,  0.0305671f,  0.295578f,    -0.236413f,
+  0.172918f,    -0.35082f,   -0.0986917f, -0.650484f,   0.13655f,
+  0.212195f,    0.549501f,   1.64941f,    0.152883f,    0.0117464f,
+  -0.200688f,   -0.0412075f, -0.0296324f, 0.122624f,    0.1871f,
+  -0.515693f,   0.20351f,    0.333617f,   0.254752f,    0.293802f,
+  -0.428904f,   -0.0312053f, -0.879481f,  -0.516353f,   -0.417837f,
+  -0.230442f,   0.229367f,   0.615339f,   0.327347f,    0.288747f,
+  0.596166f,    0.497054f,   0.536953f,   0.462426f,    0.517022f,
+  -0.287359f,   -0.162824f,  -0.249174f,  -0.364887f,   -0.538065f,
+  -0.506783f,   -0.163213f,  -0.617007f,  -0.70433f,    -0.759151f,
+  -0.235183f,   -0.196496f,  0.0925943f,  -0.0786896f,  0.135073f,
+  -0.106243f,   -0.190647f,  -0.311848f,  -0.428009f,   0.467477f,
+  0.259139f,    1.4948f,     0.986061f,   -0.534924f,   -0.193525f,
+  -0.66125f,    -0.693799f,  -0.489594f,  0.238264f,    0.249978f,
+  -0.365372f,   -0.197998f,  -0.664471f,  -0.0312145f,  -0.297293f,
+  0.0278792f,   -0.877716f,  0.0473106f,  0.913044f,    0.815569f,
+  0.789972f,    0.641374f,   -0.122848f,  -0.353137f,   -0.381102f,
+  -0.960138f,   -0.166101f,  0.230364f,   0.534173f,    0.398882f,
+  0.0599076f,   0.00176035f, 0.291062f,   0.021087f,    0.374562f,
+  0.402516f,    0.144006f,   -0.149598f,  0.065063f,    -0.0774656f,
+  -0.18804f,    -0.21123f,   0.0119723f,  -0.244286f,   0.109912f,
+  -0.98136f,    -0.583136f,  -1.3897f,    0.33196f,     0.319226f,
+  0.490015f,    0.316438f,   0.565049f,   0.163159f,    0.523771f,
+  0.325115f,    -0.0515304f, -0.0827355f, 0.112763f,    -0.517608f,
+  -0.161398f,   -0.124513f,  -0.0384277f, -0.49491f,    -1.53384f,
+  -1.3086f,     1.20601f,    0.399591f,   0.233774f,    0.0154149f,
+  -0.431196f,   0.187116f,   0.033398f,   0.655468f,    -0.390814f,
+  0.418144f,    -0.572053f,  0.936493f,   -0.116933f,   -0.20803f,
+  -0.908834f,   1.2524f,     -0.285888f,  0.227437f,    -0.317727f,
+  -0.6331f,     0.159656f,   0.244652f,   0.169768f,    0.379279f,
+  0.37089f,     0.118264f,   0.150946f,   0.536513f,    -0.261398f,
+  -0.15329f,    -0.413112f,  -0.243792f,  -0.215096f,   0.288741f,
+  -0.193763f,   -0.130652f,  -0.328159f,  -0.719996f,   -1.66213f,
+  0.0815627f,   0.129643f,   -0.0974464f, -0.0660102f,  0.349602f,
+  0.120356f,    -0.144144f,  -0.13641f,   -0.154818f,   -0.468552f,
+  -0.442585f,   -0.312206f,  0.879662f,   0.846103f,    0.0485413f,
+  0.18676f,     -0.477959f,  -0.112404f,  -0.366477f
 };
 
-static const float simple_motion_search_prune_rect_layer_0_kernel_16[] = {
-  -0.0137765f, 0.104086f,   -0.44562f,    0.109335f,    -0.0995125f,
-  0.33779f,    -0.247983f,  -0.0269306f,  -0.12548f,    0.244954f,
-  -0.141774f,  0.245495f,   0.164542f,    -0.322561f,   0.278364f,
-  -0.388579f,  -0.109738f,  -0.00625609f, -0.619319f,   -0.131171f,
-  -0.730775f,  0.281942f,   0.100904f,    -0.00913587f, -0.283333f,
-  0.111223f,   0.19052f,    -0.121298f,   0.0927429f,   0.0169582f,
-  -0.113234f,  -0.125363f,  -0.113387f,   0.380221f,    0.249298f,
-  0.224214f,   -0.198153f,  0.294508f,    -0.0908771f,  -0.00896f,
-  -0.281519f,  -1.10096f,   0.21474f,     0.230463f,    0.24372f,
-  0.226703f,   0.169519f,   0.1931f,      0.276608f,    0.158364f,
-  0.436632f,   0.494405f,   0.494894f,    0.441254f,    -0.51685f,
-  -0.449008f,  -0.681206f,  -0.364304f,   -0.697746f,   -0.988111f,
-  0.0425659f,  -0.238608f,  -0.262493f,   -0.258514f,   0.214822f,
-  0.202649f,   0.231151f,   -0.112502f,   0.376416f,    0.0225609f,
-  0.133387f,   -0.11108f,   0.114849f,    -0.786054f,   -0.160745f,
-  -0.274457f,  0.298882f,   -0.0566582f,  0.0962105f,   -0.406176f,
-  -0.294602f,  -0.486952f,  0.268228f,    0.221875f,    0.341673f,
-  -0.102889f,  0.334006f,   -0.138139f,   -0.0657011f,  0.0410996f,
-  0.0249068f,  -0.472228f,  -0.563824f,   -0.28245f,    -0.271622f,
-  -0.642636f,  0.660948f,   0.166975f,    0.66627f,     0.580663f,
-  0.0380072f,  -0.222593f,  0.218306f,    0.234312f,    -0.449846f,
-  0.481742f,   0.0140617f,  0.459234f,    0.105462f,    0.43153f,
-  0.0604343f,  0.571201f,   0.100403f,    -0.198422f,   -0.172223f,
-  -0.196068f,  -0.14779f,   0.198848f,    -0.337978f,   -0.126215f,
-  -0.152699f,  -0.557159f,  -0.924557f,   -0.148909f,   0.342301f,
-  -0.0270579f, 0.0795163f,  0.246079f,    0.258882f,    0.22873f,
-  0.164371f,   0.214495f,   0.703272f,    0.190126f,    -0.45768f,
-  -0.0380901f, -0.696992f,  -0.208314f,   0.153809f,    -0.0104163f,
-  -0.213472f,  -0.0116897f, -0.765393f,   -0.726445f,   0.889219f,
-  0.181781f,   -0.317054f,  0.195929f,    -0.28841f,    0.0281734f,
-  -0.21678f,   -0.0403133f, -0.28103f,    0.23518f,     -0.078372f,
-  0.324097f,   0.197703f,   -0.0438831f,  0.293011f,    0.147023f,
-  -0.15583f,   0.602368f,   0.323747f,    -0.0696472f,  -0.138903f,
-  -0.235809f,  -0.214106f,  0.381436f,    -0.197114f,   -0.0760917f,
-  -0.693474f,  -0.125265f,  0.507725f,    0.1515f,      0.570555f,
-  0.39068f,    -0.177914f,  -0.427112f,   0.559952f,    0.426243f,
-  -0.115127f,  -0.238974f,  0.237318f,    -0.401725f,   -0.24896f,
-  0.054505f,   -0.15472f,   -0.240788f,   0.00553721f,  -0.0487255f,
-  -0.110616f,  -0.158394f,  -0.00527821f, -0.0843736f,  0.0498573f,
-  -0.223363f,  -0.0990239f, -0.328193f,   0.0838312f,   -0.34158f,
-  -0.053957f,  0.0707963f,  0.225876f,    -0.0677109f,  0.397276f,
-  -0.715533f,  -0.388504f,  1.37571f,     -0.130365f,   -0.906101f,
-  0.0155999f,  -0.0182067f, -0.0328974f,  -0.107512f,   -0.0808009f,
-  -0.0809275f, -0.177219f,  0.0284174f,   -0.10669f,    0.148234f,
-  0.0663233f,  0.0972058f,  0.0344283f,   -0.087383f,   0.0990781f,
-  -0.152435f,  -0.126361f,  0.220532f,    1.32584f,     -0.286357f,
-  -1.62617f,   0.0802221f,  -0.201848f,   -0.193333f,   -0.228532f,
-  -0.025903f,  -0.10709f,   -0.200741f,   -0.332323f,   0.644584f,
-  0.386651f,   0.621749f,   0.302185f,    -0.243676f,   -0.461595f,
-  -0.433389f,  -0.593147f,  0.418157f,    0.299837f,    0.50064f,
-  -0.124775f,  0.31177f,    0.061886f,    -0.0240068f,  -0.101382f,
-  -0.0639972f, -0.190383f,  -0.0549615f,  -0.0423341f,  0.0745784f,
-  0.149147f,   -0.271457f,  0.305835f,    -0.02771f,    0.416986f,
-  -0.0147757f, 0.262974f,   0.0109217f,   0.475815f,    0.13407f,
-  -1.67536f,   0.174608f,   0.112184f,    -0.0290066f,  -0.287501f,
-  0.352614f,   0.420432f,   -0.255287f,   -0.228031f,   0.437014f,
-  0.403499f,   -0.250898f,  -0.119217f,   -0.442683f,   0.365867f,
-  -0.209472f,  -0.426959f,  0.309496f,    0.105961f,    0.342443f,
-  0.543127f,   -0.693675f,  -0.250245f,   -0.74935f,    0.339296f,
-  0.0147475f,  0.0775698f,  0.235613f,    0.164551f,    0.351877f,
-  0.120343f,   -0.0549392f, 0.662616f,    0.118493f,    0.625549f,
-  0.296793f,   -0.693809f,  -0.318807f,   -0.658186f,   0.118517f,
-  -0.625897f,  -0.334193f,  -0.495502f,   -0.0580679f,  -0.502108f,
-  0.610184f,   -0.212568f,  0.65402f,     -0.205777f,   0.611087f,
-  -0.190758f,  0.469293f,   -0.0106184f,  0.162331f,    -0.23283f,
-  0.26207f,    -0.339728f,  0.225619f,    -0.356367f,   0.232606f,
-  -0.459364f,  -0.486175f,  -1.20263f,    0.530313f,    -0.189706f,
-  -0.459413f,  -0.442404f,  -0.468157f,   0.359397f,    0.508712f,
-  -0.465745f,  -0.509933f,  0.579796f,    0.290483f,    0.210952f,
-  0.0430353f,  0.126729f,   0.203994f,    -0.845814f,   -0.391114f,
-  0.469904f,   0.204385f,   0.222419f,    0.0260472f,   0.165553f,
-  -0.298396f,  -0.154579f,  0.184736f,    -0.448324f,   0.288347f,
-  -0.225289f,  0.18267f,    -0.157379f,   0.177178f,    -0.425429f,
-  0.567151f,   -0.189216f,  0.344062f,    -0.424986f,   0.309711f,
-  -0.0967332f, 0.417457f,   -0.176185f,   0.741058f,    0.115775f,
-  -0.526939f,  -0.0416508f, 0.29145f,     0.368292f,    -0.0320823f,
-  -0.174854f,  -0.147699f,  0.345198f,    -0.0989291f,  -0.108224f,
-  -0.0361128f, 0.569509f,   -0.0537022f,  0.386112f,    0.0218484f,
-  -0.0917452f, -0.326464f,  -0.707277f,   -0.92936f,    0.529203f,
-  -0.0414848f, 0.265231f,   -0.201359f,   -0.278621f,   -0.109272f,
-  -0.22415f,   -0.166414f,  0.300664f,    -0.363893f,   -0.114208f,
-  0.349553f,   -0.131075f,  0.469761f,    0.292534f,    0.700264f,
-  -0.0446578f, -0.636988f,  -0.592225f,   -0.00240535f, -0.390981f,
-  0.138289f,   -0.0259559f, 0.552166f,    0.0787941f,   -0.145882f,
-  0.119166f,   0.0342518f,  0.0238706f,   0.0467874f,   0.159073f,
-  0.273887f,   0.104308f,   0.0355133f,   -0.240499f,   0.00161169f,
-  -0.214345f,  -0.197885f,  -0.0937018f,  0.298671f,    -0.15795f,
-  0.226991f,   -0.648197f,  -0.541824f,   -0.54904f,    0.00723252f,
-  -0.0886648f, 0.249384f,   0.0171777f,   0.204561f,    0.244553f,
-  0.173363f,   0.125727f,   0.00160048f,  0.0877024f,   0.210767f,
-  0.294793f,   0.0564319f,  0.273757f,    -0.472057f,   -0.40342f,
-  -0.663498f,  -0.294652f,  -0.723821f,   -0.556186f,   1.01032f,
-  -0.341018f,  0.487445f,   0.154666f,    0.160475f,    0.0803587f,
-  0.122818f,   -0.256329f,  0.0187389f,   0.0534024f,   0.339258f,
-  0.449883f,   0.0913971f,  0.794922f,    0.149188f,    -0.754102f,
-  -0.332147f,  -1.11099f,   -0.51734f,    0.37661f,     0.0851593f,
-  0.0638272f,  -0.0391679f, -0.768516f,   -0.151253f,   0.0189179f,
-  -0.0957418f, 0.0703774f,  -0.0844274f,  0.0122935f,   -0.16257f,
-  0.052147f,   -0.125905f,  0.151829f,    0.060688f,    -0.120052f,
-  -0.0462407f, -0.214985f,  -0.166619f,   -0.0131363f,  0.0969969f,
-  -0.0109037f, 1.60049f,    -0.195615f,   -0.761682f
+static const float simple_motion_search_prune_part_logits_bias_16[] = {
+  0.791815f,  0.888054f,  0.406071f, -0.217564f, -0.504713f,
+  -0.514339f, -0.200842f, -1.09239f, -1.78297f,  -2.41754f
 };
 
-static const float simple_motion_search_prune_rect_logits_kernel_16[] = {
-  0.195953f,   0.266914f,   1.09626f,    -0.278587f,  0.315735f,   0.750366f,
-  -0.0773732f, -0.011841f,  -0.0652182f, -0.24263f,   -0.714462f,  -0.310441f,
-  -0.39794f,   0.560316f,   -0.67357f,   -1.25198f,   -0.2683f,    -0.163392f,
-  0.470548f,   0.504874f,   0.215693f,   -0.762583f,  -0.650757f,  0.651298f,
-  -0.0890686f, 0.141904f,   -0.367436f,  -0.0478515f, -0.154226f,  1.00121f,
-  -0.311319f,  -0.146908f,  -0.259843f,  -0.41941f,   -0.650639f,  0.667579f,
-  -0.143973f,  -0.076802f,  0.0112008f,  -1.03765f,   0.507756f,   -0.197687f,
-  -0.592847f,  -1.12017f,   0.143625f,   -0.139294f,  0.19386f,    0.198762f,
-  0.104138f,   -0.203013f,  -0.262737f,  0.154887f,   -0.0434276f, -1.03264f,
-  0.619039f,   -0.0234598f, -0.0827021f, 0.53719f,    0.478445f,   -0.0073367f,
-  0.55982f,    -0.0391153f, -0.222824f,  1.93238f,    0.193033f,   0.533387f,
-  0.142532f,   -0.179864f,  -0.802229f,  0.0993041f,  -0.179998f,  -0.837372f
+static const float simple_motion_search_prune_part_layer_0_bias_16[] = {
+  0.89469f,   0.10871f,  0.664404f,  -0.00639695f, -0.745647f, 0.910444f,
+  0.168436f,  -4.05854f, 1.00981f,   0.743352f,    -0.73947f,  -2.5654f,
+  -0.654753f, 0.602252f, -0.973004f, 1.1113f
 };
 
-static const NN_CONFIG simple_motion_search_prune_rect_nn_config_16 = {
+static const NN_CONFIG simple_motion_search_prune_part_nn_config_16 = {
   NUM_FEATURES_16,
   NUM_LOGITS_16,
   NUM_HIDDEN_LAYERS_16,
@@ -3578,12 +3617,12 @@
       NUM_LAYER_0_UNITS_16,
   },
   {
-      simple_motion_search_prune_rect_layer_0_kernel_16,
-      simple_motion_search_prune_rect_logits_kernel_16,
+      simple_motion_search_prune_part_layer_0_kernel_16,
+      simple_motion_search_prune_part_logits_kernel_16,
   },
   {
-      simple_motion_search_prune_rect_layer_0_bias_16,
-      simple_motion_search_prune_rect_logits_bias_16,
+      simple_motion_search_prune_part_layer_0_bias_16,
+      simple_motion_search_prune_part_logits_bias_16,
   },
 };
 
@@ -3594,141 +3633,136 @@
 
 // BLOCK_8X8
 #define NUM_HIDDEN_LAYERS_8 1
-#define NUM_FEATURES_8 21
+#define NUM_FEATURES_8 19
 #define NUM_LAYER_0_UNITS_8 24
-#define NUM_LOGITS_8 3
+#define NUM_LOGITS_8 4
 
-static const float simple_motion_search_prune_rect_layer_0_bias_8[] = {
-  0.0929719f,  -1.04451f,  0.436521f,  0.244658f, -0.211554f, 0.236841f,
-  0.351304f,   -0.335641f, -0.133174f, 0.3716f,   0.342397f,  0.00966127f,
-  0.110529f,   0.548292f,  0.318773f,  0.218123f, 0.14769f,   0.234058f,
-  -0.0831903f, 0.134574f,  0.371851f,  0.322827f, 0.376413f,  0.537242f
+static const float simple_motion_search_prune_part_logits_kernel_8[] = {
+  -0.806717f,  0.0244927f,  -0.0280725f, 0.210426f,   0.0820434f,  -0.0222324f,
+  -0.0728984f, -0.424785f,  -0.0568035f, -0.0744017f, 0.204282f,   0.43611f,
+  0.319456f,   0.119903f,   -0.333224f,  -0.932499f,  0.105907f,   0.0905287f,
+  -0.612538f,  0.0978191f,  -0.0858663f, 0.0468925f,  -0.312509f,  0.0527469f,
+  0.308466f,   -0.139768f,  -0.468023f,  -0.069522f,  0.248949f,   0.0408582f,
+  0.199935f,   -0.448705f,  0.242315f,   0.00472276f, -0.468445f,  -0.591226f,
+  0.107975f,   0.261228f,   -0.10724f,   0.104639f,   -0.211234f,  -0.304658f,
+  -0.261689f,  -0.259529f,  0.0331369f,  -0.468468f,  -0.0555605f, -0.0495414f,
+  0.247612f,   -0.112518f,  -0.393122f,  0.302172f,   -0.252151f,  0.076605f,
+  -0.34155f,   -0.182731f,  0.154079f,   -0.464538f,  -0.396327f,  -0.654858f,
+  0.0921198f,  0.202867f,   -0.0712573f, 0.0349611f,  0.243043f,   -0.177452f,
+  -0.205536f,  -0.268024f,  0.0358315f,  -0.560347f,  -0.204207f,  -0.0890628f,
+  -1.013f,     -0.461748f,  -0.429801f,  -0.100352f,  -0.34369f,   0.115318f,
+  -0.556285f,  -0.0751575f, 0.183418f,   -0.285223f,  0.197177f,   -0.825216f,
+  -0.125709f,  -0.100452f,  0.180481f,   0.764462f,   0.136609f,   -0.660743f,
+  0.212887f,   -0.410408f,  -0.330839f,  -0.714646f,  -0.115863f,  -0.389509f
 };
 
-static const float simple_motion_search_prune_rect_logits_bias_8[] = {
-  0.00590608f, 0.0627245f, -0.131135f
+static const float simple_motion_search_prune_part_layer_0_kernel_8[] = {
+  0.0561017f,   0.530692f,    0.129047f,   0.296138f,   0.407593f,
+  0.151159f,    0.180472f,    0.298995f,   -0.0265362f, -0.380313f,
+  -0.136716f,   -0.0644648f,  0.00808564f, 0.0875876f,  -0.0719683f,
+  -0.0996071f,  -1.49722f,    -1.31176f,   1.54169f,    -0.50717f,
+  -0.0186767f,  -0.525924f,   0.0402954f,  -0.553913f,  0.139015f,
+  0.171752f,    -0.376497f,   0.485084f,   0.182424f,   -0.0236465f,
+  0.380048f,    -0.185493f,   0.554435f,   0.241565f,   -0.225917f,
+  -1.08637f,    -0.305121f,   1.3603f,     0.0806333f,  -0.0697466f,
+  0.216192f,    0.0493694f,   0.0620039f,  -0.0042489f, 0.0707283f,
+  0.0998331f,   -0.0252022f,  0.342077f,   -0.200664f,  0.335261f,
+  -0.100772f,   0.212881f,    -0.374258f,  0.310442f,   -1.95981f,
+  -1.16615f,    1.88243f,     0.503536f,   -0.0919037f, 0.392323f,
+  0.33149f,     0.563121f,    -0.0898854f, 0.130267f,   0.404959f,
+  1.06767f,     0.75134f,     0.810919f,   0.865237f,   -1.08001f,
+  -0.949809f,   -1.24941f,    -0.95081f,   -0.539575f,  -0.355324f,
+  -0.110592f,   -0.311277f,   0.023022f,   -0.039287f,  0.491298f,
+  -0.248853f,   -0.294741f,   0.288811f,   0.470638f,   0.330094f,
+  0.146603f,    0.0958486f,   0.308326f,   -0.87134f,   -1.06074f,
+  -0.315428f,   0.717577f,    -0.0174599f, -0.491904f,  0.977014f,
+  0.922693f,    0.0265707f,   -0.743468f,  -0.273647f,  -0.430625f,
+  -0.473789f,   0.119983f,    0.476441f,   0.639803f,   -0.0753475f,
+  -0.0746323f,  -0.0422539f,  0.013454f,   -0.0174412f, -0.253015f,
+  -0.279585f,   0.11562f,     -0.396919f,  0.306388f,   0.430346f,
+  0.275945f,    -0.196508f,   0.00180146f, 0.396652f,   0.324022f,
+  -0.142132f,   0.1768f,      -0.0746152f, 0.314189f,   -0.031924f,
+  0.254196f,    -0.253449f,   0.1537f,     -0.98635f,   -0.850926f,
+  0.0762147f,   -0.652507f,   1.16528f,    -0.122595f,  -0.00561333f,
+  0.424954f,    -0.00258127f, -0.421957f,  -0.0714059f, 0.782031f,
+  -0.0129133f,  -0.00544328f, -0.193527f,  -0.0936037f, -0.00490983f,
+  -0.852396f,   -0.649662f,   0.820325f,   0.484966f,   0.265405f,
+  -0.33032f,    0.104917f,    -0.364478f,  0.26858f,    0.068847f,
+  -0.0751046f,  0.238931f,    -0.151554f,  0.0296385f,  -0.14869f,
+  -0.173547f,   -0.397285f,   0.0561029f,  -0.0681254f, 0.222631f,
+  -0.00800993f, 0.0686761f,   0.196754f,   0.249358f,   0.348125f,
+  -2.22757f,    0.186675f,    -0.0426998f, 0.123301f,   -0.0196412f,
+  0.104882f,    0.138482f,    0.340663f,   0.0684671f,  -1.22841f,
+  -1.08539f,    -1.1055f,     -0.732678f,  0.766626f,   0.727742f,
+  1.26906f,     0.812594f,    -0.446312f,  -0.166752f,  0.396628f,
+  0.00141587f,  0.0137288f,   -0.0920456f, 0.123027f,   -0.118517f,
+  -0.0412321f,  -0.124952f,   0.00875945f, 0.0149883f,  -0.0218859f,
+  -0.233299f,   -0.0812722f,  0.269917f,   0.0246593f,  0.0915655f,
+  -0.019122f,   0.706718f,    -0.172051f,  -1.85551f,   0.0578997f,
+  0.100269f,    0.131412f,    -0.0952751f, 0.181419f,   -0.0106305f,
+  0.106179f,    -0.142344f,   0.0916649f,  -0.41298f,   0.113846f,
+  -0.322459f,   0.0415754f,   -0.2205f,    -0.224231f,  0.147907f,
+  -0.135093f,   -0.398757f,   1.93381f,    0.20456f,    -0.205381f,
+  -0.263999f,   0.364463f,    -0.424052f,  -0.0166924f, -0.319968f,
+  0.0439144f,   -0.692733f,   0.678982f,   -0.445194f,  -0.527451f,
+  0.383248f,    0.330927f,    -0.0367725f, 0.572847f,   -0.620804f,
+  -0.286471f,   1.39367f,     0.470732f,   0.0751676f,  0.637958f,
+  0.574865f,    0.411091f,    0.263806f,   0.555064f,   0.047788f,
+  0.201792f,    -0.0821822f,  -0.0226181f, -0.176679f,  -0.612642f,
+  -0.992254f,   -0.292099f,   -0.562201f,  -0.567948f,  -0.767681f,
+  1.33645f,     0.0932564f,   -0.421675f,  0.198262f,   -0.401979f,
+  0.244609f,    -0.261484f,   0.0304534f,  -0.200004f,  0.00951232f,
+  -0.085364f,   0.555152f,    -0.243778f,  0.371369f,   0.152997f,
+  0.154443f,    -0.281229f,   0.967176f,   1.0212f,     0.276169f,
+  0.0962747f,   0.449737f,    0.300859f,   0.376659f,   0.165669f,
+  0.332263f,    0.238315f,    0.376668f,   -0.139238f,  -0.0694765f,
+  -0.256137f,   -0.262146f,   -0.246265f,  0.0261978f,  -0.118975f,
+  -0.207184f,   -0.614041f,   -0.866987f,  -1.75604f,   -0.04917f,
+  0.0794673f,   -0.355224f,   0.0035685f,  -0.340216f,  0.398567f,
+  -0.314826f,   -0.12464f,    0.693428f,   0.701697f,   0.511653f,
+  0.861303f,    -0.64449f,    -1.06257f,   -0.773944f,  -0.838084f,
+  0.802429f,    -0.24573f,    0.720913f,   -0.31002f,   0.615694f,
+  0.287994f,    0.18495f,     0.0188525f,  0.374338f,   -0.12243f,
+  0.613532f,    0.132456f,    0.177285f,   -0.187238f,  0.0872563f,
+  -0.425068f,   0.154711f,    -0.24283f,   -0.193267f,  -1.14008f,
+  -1.17759f,    0.517845f,    0.458782f,   -0.161137f,  0.142772f,
+  0.2811f,      0.171871f,    0.276129f,   0.018275f,   0.390464f,
+  -0.156414f,   0.108248f,    -0.0909085f, -0.11346f,   0.0815138f,
+  0.0729377f,   -0.0769677f,  0.0110251f,  -0.46098f,   -0.421538f,
+  -2.18003f,    0.6639f,      0.541278f,   0.704337f,   0.480695f,
+  0.727474f,    0.473937f,    0.770863f,   0.41774f,    -0.112943f,
+  -0.107412f,   0.083639f,    -0.351127f,  -0.149221f,  0.0705735f,
+  -0.0908294f,  -0.0789572f,  -1.62533f,   -2.14051f,   -0.188871f,
+  0.796224f,    0.00144302f,  0.467569f,   -0.113915f,  0.660595f,
+  0.101025f,    0.020895f,    0.604505f,   -0.26598f,   -0.149282f,
+  -0.548818f,   -0.140463f,   0.13669f,    -0.0955724f, -0.694851f,
+  -0.13438f,    -0.384164f,   -0.600513f,  1.48183f,    0.16481f,
+  0.340894f,    -0.190813f,   0.487458f,   0.0769957f,  0.192901f,
+  0.039483f,    0.213366f,    -0.508968f,  -0.494034f,  -0.987906f,
+  -0.188502f,   -0.907188f,   0.0109838f,  -0.275008f,  -0.331017f,
+  -0.447202f,   0.0521897f,   0.837215f,   0.344802f,   0.216526f,
+  0.456105f,    0.139706f,    -0.373955f,  0.0232853f,  -0.365632f,
+  -0.0586727f,  0.828841f,    0.737974f,   -0.933899f,  -0.0620807f,
+  -0.262087f,   -0.0551274f,  -0.374378f,  0.118385f,   -0.0375933f,
+  -0.39549f,    -0.0844191f,  0.274343f,   0.21814f,    0.52751f,
+  0.449546f,    0.075518f,    0.369501f,   0.345248f,   0.403972f,
+  -0.465168f,   -0.551238f,   -0.354305f,  -0.233872f,  0.664137f,
+  -0.214848f,   -0.0363864f,  0.446154f,   -0.500073f,  -1.07883f,
+  -1.07772f
 };
 
-static const float simple_motion_search_prune_rect_layer_0_kernel_8[] = {
-  0.236236f,    -0.197322f,   0.0388012f,   0.0886282f,   -0.294053f,
-  -0.155901f,   0.0896536f,   0.207173f,    -0.225464f,   0.245884f,
-  0.0924547f,   0.0988347f,   -0.146962f,   -0.236533f,   0.242752f,
-  0.276294f,    0.0918088f,   -0.121309f,   -0.265552f,   0.182409f,
-  0.0786249f,   0.115241f,    0.12636f,     0.286668f,    -0.000413442f,
-  0.077513f,    0.105336f,    0.048894f,    0.128857f,    -0.190525f,
-  -0.0230398f,  -0.0545946f,  -0.0740677f,  -0.217745f,   0.0473918f,
-  -0.236371f,   0.0358959f,   0.0798586f,   -0.273776f,   -0.791735f,
-  0.212685f,    0.013666f,    -0.1398f,     0.192162f,    -0.0564259f,
-  0.121955f,    0.136823f,    0.0543089f,   0.092825f,    0.0444147f,
-  -0.422158f,   -0.346276f,   0.00682844f,  -0.323295f,   0.159034f,
-  -0.028898f,   -0.0962342f,  0.191407f,    -0.0995829f,  0.110343f,
-  0.457121f,    0.128277f,    -0.189447f,   0.122764f,    -0.107316f,
-  0.258696f,    -0.137755f,   -0.192561f,   -0.275515f,   -0.0133461f,
-  -0.0209125f,  0.135886f,    0.0973947f,   0.431854f,    0.462813f,
-  -0.423939f,   0.090637f,    -0.158307f,   0.110351f,    -0.188819f,
-  -0.379815f,   0.297234f,    0.116816f,    0.14929f,     -0.05142f,
-  0.142802f,    -0.107308f,   0.0743166f,   -0.181902f,   0.112688f,
-  0.326051f,    -0.0466441f,  -0.0585087f,  0.319181f,    0.201889f,
-  -0.0519778f,  0.246045f,    0.129589f,    -0.222352f,   0.410679f,
-  -0.0468719f,  -0.224405f,   -0.378599f,   -0.0708272f,  0.291255f,
-  -0.275413f,   -0.286772f,   0.146303f,    0.00502366f,  0.273997f,
-  0.0615063f,   -0.128801f,   0.140438f,    0.00988162f,  -0.416282f,
-  -0.0501521f,  0.0601391f,   0.425444f,    0.204404f,    -0.161582f,
-  0.228264f,    -0.147466f,   -0.142093f,   0.155618f,    0.125181f,
-  -0.117226f,   -0.0940137f,  0.199695f,    0.122635f,    -0.0343566f,
-  0.25744f,     -0.170798f,   0.170312f,    -0.221076f,   0.210397f,
-  -0.344634f,   -0.42091f,    -0.00364981f, -0.0145637f,  0.321783f,
-  0.0783587f,   0.250987f,    -0.00987271f, -0.695387f,   0.484135f,
-  -0.189236f,   0.340221f,    -0.0261936f,  0.177004f,    -0.101495f,
-  0.0458288f,   0.00996208f,  -0.131282f,   0.239959f,    -0.0646483f,
-  0.259072f,    -0.294724f,   -0.0485913f,  0.120665f,    0.271345f,
-  -0.0236157f,  -0.186769f,   0.200163f,    -0.112428f,   -0.038864f,
-  -0.729764f,   0.320225f,    0.20533f,     -0.0731921f,  -0.0625873f,
-  -0.487145f,   0.0819456f,   -0.0344899f,  0.19262f,     0.324683f,
-  0.215074f,    -0.464162f,   -0.123737f,   -0.062616f,   0.402956f,
-  0.18635f,     -0.197769f,   0.100533f,    -0.293992f,   0.145554f,
-  0.212232f,    -0.297656f,   0.112656f,    -0.00207075f, -0.163881f,
-  -0.124628f,   -0.225694f,   0.268492f,    0.166006f,    0.298173f,
-  -0.122093f,   0.238944f,    -0.132759f,   0.387168f,    0.283462f,
-  0.0376998f,   -0.0527518f,  -0.131649f,   -0.187971f,   0.0433382f,
-  -0.182108f,   -0.0159221f,  -0.306503f,   -0.116393f,   -0.278279f,
-  0.194667f,    0.191931f,    -0.0155848f,  0.061354f,    -0.187866f,
-  -0.199614f,   0.27465f,     0.173959f,    -0.142243f,   -0.275063f,
-  -0.436406f,   -0.0414135f,  -0.0867722f,  0.144904f,    0.457838f,
-  0.396556f,    -0.234414f,   0.286493f,    0.182848f,    -0.0964301f,
-  0.0647563f,   0.330323f,    0.0106972f,   0.291926f,    0.249374f,
-  0.126498f,    0.131904f,    0.144133f,    0.290967f,    0.279663f,
-  -0.07275f,    0.298849f,    0.0509303f,   0.0835576f,   -0.36213f,
-  -0.215041f,   -0.431314f,   -0.363423f,   -0.68542f,    -0.311905f,
-  -0.0158718f,  -0.278136f,   0.22943f,     -0.065407f,   -0.180358f,
-  -0.190041f,   0.178827f,    -0.0956258f,  -0.361751f,   0.0555846f,
-  0.0391926f,   0.18493f,     0.349155f,    0.0620533f,   0.107822f,
-  -0.37479f,    -0.214229f,   0.0156212f,   0.12353f,     0.0838783f,
-  0.0516166f,   -0.297401f,   -0.324205f,   0.165416f,    -0.180237f,
-  0.000455288f, 0.0165856f,   0.269442f,    -0.0050627f,  -0.17379f,
-  -0.159357f,   -0.0197761f,  -0.442358f,   0.292338f,    -0.281192f,
-  -0.220797f,   -0.31968f,    -0.13081f,    -0.0714009f,  -0.241106f,
-  0.0445559f,   0.286437f,    0.174064f,    -0.0707783f,  0.179205f,
-  -0.0858393f,  -0.182413f,   0.0464337f,   0.273138f,    -0.0686158f,
-  -0.0846032f,  -0.00880094f, 0.500096f,    -0.157471f,   -0.141422f,
-  0.381825f,    -0.233019f,   -0.10411f,    -0.429038f,   -0.383961f,
-  -0.0143021f,  0.332843f,    0.319908f,    -0.200207f,   0.185621f,
-  -0.0827178f,  0.208406f,    0.249769f,    -0.0723191f,  -0.164118f,
-  0.2306f,      0.514743f,    -0.168576f,   0.162905f,    -0.0639156f,
-  -0.00377544f, -0.0357603f,  -0.366609f,   -0.439581f,   -0.390316f,
-  -0.0256173f,  0.184651f,    0.225793f,    0.277336f,    -0.271053f,
-  -0.039194f,   0.308709f,    -0.0823194f,  0.215845f,    -0.0305934f,
-  0.207156f,    0.0242133f,   0.178076f,    -0.0147258f,  -0.501016f,
-  0.0425183f,   -0.32334f,    -0.117133f,   0.211239f,    0.11304f,
-  0.224753f,    0.289255f,    -0.353953f,   -0.251153f,   -0.284117f,
-  0.0381016f,   -0.0220049f,  -0.146197f,   0.0198448f,   0.0830073f,
-  0.0769781f,   0.245701f,    0.0345686f,   -0.171671f,   -0.0749316f,
-  -0.156164f,   0.077471f,    0.171366f,    0.00549367f,  -0.0917314f,
-  -0.348183f,   0.186549f,    0.155758f,    0.12377f,     0.228549f,
-  -0.372118f,   0.224414f,    0.0303148f,   -0.00673295f, 0.0855743f,
-  0.109336f,    0.360171f,    -0.0578394f,  -0.34167f,    -0.0415367f,
-  -0.278975f,   0.283761f,    0.398667f,    -0.340301f,   -0.232094f,
-  0.126067f,    0.193787f,    -0.176406f,   0.0546539f,   -0.0549633f,
-  0.105809f,    -0.0926057f,  -0.0116372f,  -0.098266f,   0.116753f,
-  -0.0661511f,  0.439646f,    -0.0927268f,  0.0999881f,   -0.170887f,
-  0.221045f,    0.0309981f,   0.253644f,    0.327211f,    0.0822908f,
-  -0.206893f,   -0.0705511f,  -0.0183062f,  -0.062421f,   -0.26241f,
-  -0.0850025f,  0.215664f,    -0.445837f,   0.265127f,    -0.24374f,
-  0.0182374f,   0.199747f,    0.192634f,    -0.0547674f,  0.237479f,
-  -0.22589f,    0.0199568f,   -0.00226449f, -0.370026f,   -0.085982f,
-  0.120268f,    -0.201913f,   -0.0241852f,  -0.0902752f,  -0.125417f,
-  -0.138451f,   0.139834f,    0.035369f,    0.973304f,    -0.133185f,
-  -0.0372511f,  -0.0939797f,  0.0750327f,   0.131332f,    -0.0948143f,
-  -0.227437f,   0.0718025f,   -0.241555f,   0.0954081f,   -0.114389f,
-  0.144256f,    0.177365f,    0.025649f,    -0.224896f,   -0.0699606f,
-  -0.31351f,    0.0349252f,   -0.492566f,   0.00455435f,  0.94466f,
-  0.100314f,    0.294475f,    0.152531f,    -0.165193f,   -0.0367636f,
-  -0.153355f,   0.216961f,    0.0382139f,   -0.251386f,   0.0728174f,
-  -0.122198f,   0.178884f,    0.0375681f,   -0.215692f,   0.241714f,
-  0.293426f,    0.110962f,    -0.327579f,   0.113138f,    0.373479f,
-  -0.518696f,   0.253503f,    -0.0688753f,  -0.109652f,   0.0778219f,
-  0.110266f,    -0.0355493f,  0.289359f,    -0.137474f,   -0.0457507f,
-  -0.0755428f,  -0.134834f,   0.384724f,    0.167317f,    0.227267f,
-  -0.179717f,   -0.189428f,   -0.389926f,   -0.445401f,   -0.144119f,
-  0.0681414f,   0.5804f,      -0.271505f,   -0.0127296f
+static const float simple_motion_search_prune_part_logits_bias_8[] = {
+  1.09425f, -0.345875f, -0.56098f, -1.84859f
 };
 
-static const float simple_motion_search_prune_rect_logits_kernel_8[] = {
-  0.0534772f,   0.76338f,    0.00330479f, -0.418013f, 0.308282f,   0.126139f,
-  0.0381165f,   0.230419f,   0.267358f,   -0.265256f, 0.314815f,   -0.345259f,
-  -0.332239f,   -0.0974348f, -0.135406f,  -0.411826f, 0.469479f,   0.328913f,
-  -0.142056f,   0.0970277f,  0.408218f,   -0.266971f, 0.496125f,   -0.579164f,
-  -0.00991023f, 0.743371f,   -0.305708f,  0.235066f,  0.30313f,    -0.285641f,
-  -0.291385f,   0.449725f,   0.0123259f,  0.247515f,  -0.0168741f, -0.0156247f,
-  0.221771f,    -0.0213741f, 0.485301f,   0.291499f,  -0.423436f,  0.223715f,
-  -0.428009f,   0.563144f,   0.157696f,   -0.4129f,   0.0360898f,  -0.137376f,
-  -0.264407f,   -1.90753f,   0.543665f,   0.0238804f, 0.0785367f,  -0.315858f,
-  0.826249f,    -0.279287f,  -0.0639901f, 0.269955f,  0.221804f,   0.84004f,
-  -0.102974f,   -0.423812f,  0.21655f,    -0.301221f, 0.969496f,   -0.278917f,
-  -0.493561f,   0.34022f,    -0.765727f,  0.778922f,  -0.196643f,  0.120032f
+static const float simple_motion_search_prune_part_layer_0_bias_8[] = {
+  -1.75332f, 0.419404f,  -0.0423004f, 0.345601f, -2.40097f,  -0.574857f,
+  -2.53366f, -0.207096f, -1.08866f,   0.801763f, -2.72428f,  -2.39884f,
+  1.04072f,  -0.782749f, -1.47003f,   -2.98207f, 0.8829f,    1.81741f,
+  -2.02369f, 0.241717f,  -0.178749f,  -3.00588f, -0.232007f, 0.21717f
 };
 
-static const NN_CONFIG simple_motion_search_prune_rect_nn_config_8 = {
+static const NN_CONFIG simple_motion_search_prune_part_nn_config_8 = {
   NUM_FEATURES_8,
   NUM_LOGITS_8,
   NUM_HIDDEN_LAYERS_8,
@@ -3736,12 +3770,12 @@
       NUM_LAYER_0_UNITS_8,
   },
   {
-      simple_motion_search_prune_rect_layer_0_kernel_8,
-      simple_motion_search_prune_rect_logits_kernel_8,
+      simple_motion_search_prune_part_layer_0_kernel_8,
+      simple_motion_search_prune_part_logits_kernel_8,
   },
   {
-      simple_motion_search_prune_rect_layer_0_bias_8,
-      simple_motion_search_prune_rect_logits_bias_8,
+      simple_motion_search_prune_part_layer_0_bias_8,
+      simple_motion_search_prune_part_logits_bias_8,
   },
 };
 
diff --git a/av1/encoder/speed_features.c b/av1/encoder/speed_features.c
index 15442be..a6ca533 100644
--- a/av1/encoder/speed_features.c
+++ b/av1/encoder/speed_features.c
@@ -271,7 +271,7 @@
     // speed.
     sf->prune_single_motion_modes_by_simple_trans = 1;
 
-    sf->full_pixel_motion_search_based_split = 1;
+    sf->simple_motion_search_split_only = 1;
     sf->simple_motion_search_prune_rect = 1;
 
     sf->disable_wedge_search_var_thresh = 0;
@@ -554,7 +554,7 @@
   for (i = 0; i < PARTITION_BLOCK_SIZES; ++i) {
     sf->ml_partition_search_breakout_thresh[i] = -1;  // -1 means not enabled.
   }
-  sf->full_pixel_motion_search_based_split = 0;
+  sf->simple_motion_search_split_only = 0;
   sf->simple_motion_search_prune_rect = 0;
 
   // Set this at the appropriate speed levels
diff --git a/av1/encoder/speed_features.h b/av1/encoder/speed_features.h
index e2964c8..c7debb1 100644
--- a/av1/encoder/speed_features.h
+++ b/av1/encoder/speed_features.h
@@ -605,10 +605,6 @@
   // Prune intra mode candidates based on source block gradient stats.
   int intra_angle_estimation;
 
-  // Performs full pixel motion search before none_partition to decide if we
-  // want to split directly without trying other partition types.
-  int full_pixel_motion_search_based_split;
-
   // Skip obmc or warped motion mode when neighborhood motion field is
   // identical
   int skip_obmc_in_uniform_mv_field;
@@ -639,6 +635,10 @@
   // PARTITION_HORZ and PARTITION_VERT.
   int simple_motion_search_prune_rect;
 
+  // Perform simple motion search before none_partition to decide if we
+  // want to split directly without trying other partition types.
+  int simple_motion_search_split_only;
+
   int cb_pred_filter_search;
 
   // adaptive interp_filter search to allow skip of certain filter types.