Fix partition eval flag setting Under x->must_find_valid_partition, partition eval flags are set appropriately based on min_partition_size. BUG=aomedia:2602 STATS_CHANGED probably for 4K contents Change-Id: I6a092a17a58d968d77f8f8c129e4d11ebfe2121d
diff --git a/av1/encoder/encodeframe.c b/av1/encoder/encodeframe.c index 8c93bf4..3e1522e 100644 --- a/av1/encoder/encodeframe.c +++ b/av1/encoder/encodeframe.c
@@ -2816,14 +2816,17 @@ BEGIN_PARTITION_SEARCH: if (x->must_find_valid_partition) { - do_square_split = bsize_at_least_8x8; - partition_none_allowed = has_rows && has_cols; + do_square_split = bsize_at_least_8x8 && (blksize > min_partition_size); + partition_none_allowed = + has_rows && has_cols && (blksize >= min_partition_size); partition_horz_allowed = has_cols && bsize_at_least_8x8 && cpi->oxcf.enable_rect_partitions && + (blksize > min_partition_size) && get_plane_block_size(get_partition_subsize(bsize, PARTITION_HORZ), xss, yss) != BLOCK_INVALID; partition_vert_allowed = has_rows && bsize_at_least_8x8 && cpi->oxcf.enable_rect_partitions && + (blksize > min_partition_size) && get_plane_block_size(get_partition_subsize(bsize, PARTITION_VERT), xss, yss) != BLOCK_INVALID; terminate_partition_search = 0; @@ -4627,12 +4630,11 @@ float features[FEATURE_SIZE_MAX_MIN_PART_PRED] = { 0.0f }; av1_get_max_min_partition_features(cpi, x, mi_row, mi_col, features); - max_sq_size = - AOMMIN(av1_predict_max_partition(cpi, x, features), max_sq_size); + max_sq_size = AOMMAX( + AOMMIN(av1_predict_max_partition(cpi, x, features), max_sq_size), + min_sq_size); } - min_sq_size = AOMMIN(min_sq_size, max_sq_size); - const int num_passes = cpi->oxcf.sb_multipass_unit_test ? 2 : 1; if (num_passes == 1) {