av1/encoder/encodeframe.c
// Decide whether to evaluate the AB partition specified by part_type based on
// split and HORZ/VERT info
Decide whether to evaluate the AB partition specified by part_type based on
split and HORZ/VERT info
Decide whether to evaluate the AB partition specified by part_type based on split and HORZ / VERT info
int evaluate_ab_partition_based_on_split(
    PC_TREE *pc_tree, PARTITION_TYPE rect_part,
    RD_RECT_PART_WIN_INFO *rect_part_win_info, int qindex, int split_idx1,
    int split_idx2) {
  int num_win = 0;
  int num_win_thresh = 3 * (2 * (MAXQ - qindex) / MAXQ);
  bool sub_part_win = (rect_part_win_info == NULL)
                          ? (pc_tree->partitioning == rect_part)
                          : (rect_part == PARTITION_HORZ)
                                ? rect_part_win_info->horz_win
                                : rect_part_win_info->vert_win;
  num_win += (sub_part_win) ? 1 : 0;
  num_win +=
      (pc_tree->split[split_idx1]->partitioning == PARTITION_NONE) ? 1 : 0;
  num_win +=
      (pc_tree->split[split_idx2]->partitioning == PARTITION_NONE) ? 1 : 0;
  if (num_win < num_win_thresh) {
    return 0;
  }
  return 1;
}
int evaluate_ab_partition_based_on_split ( PC_TREE * pc_tree , PARTITION_TYPE rect_part , RD_RECT_PART_WIN_INFO * rect_part_win_info , int qindex , int split_idx1 , int split_idx2 ) { int num_win = 0 ; int num_win_thresh = 3 * ( 2 * ( MAXQ - qindex ) / MAXQ ) ; bool sub_part_win = ( rect_part_win_info == NULL ) ? ( pc_tree -> partitioning == rect_part ) : ( rect_part == PARTITION_HORZ ) ? rect_part_win_info -> horz_win : rect_part_win_info -> vert_win ; num_win += ( sub_part_win ) ? 1 : 0 ; num_win += ( pc_tree -> split [ split_idx1 ] -> partitioning == PARTITION_NONE ) ? 1 : 0 ; num_win += ( pc_tree -> split [ split_idx2 ] -> partitioning == PARTITION_NONE ) ? 1 : 0 ; if ( num_win < num_win_thresh ) { return 0 ; } return 1 ; }
Decide whether to evaluate the AB partition specified by part_type based on
split and HORZ/VERT info
Decide whether to evaluate the AB partition specified by part_type based on split and HORZ / VERT info
// Threshold for number of winners // Conservative pruning for high quantizers