AV1 RT: Adjust thrs for var-based partition. Add TX size search This increases threshold for 32x32->16x16 split and adds tx size search for speed 6. Overall perf impact is very small, but I see good BDRate gain (overall 4%, max 9%) for speed 6. For speed7 the speed up is 11% with BDRate loss of 0.22%. Change-Id: I70e385fd232765d3e5a5eb4ceecf4ee8ff0b0864
diff --git a/av1/encoder/speed_features.c b/av1/encoder/speed_features.c index ce86f0d..103e053 100644 --- a/av1/encoder/speed_features.c +++ b/av1/encoder/speed_features.c
@@ -681,9 +681,7 @@ sf->mode_search_skip_flags |= FLAG_SKIP_INTRA_DIRMISMATCH; sf->use_real_time_ref_set = 1; sf->tx_type_search.prune_mode = PRUNE_2D_MORE; - // Can't use LARGEST TX mode with pre-calculated partition - // and disabled TX64 - if (!cpi->oxcf.enable_tx64) sf->tx_size_search_level = 1; + sf->tx_size_search_level = 1; sf->use_comp_ref_nonrd = 0; sf->inter_mode_rd_model_estimation = 2; sf->cdef_pick_method = CDEF_PICK_FROM_Q; @@ -706,7 +704,6 @@ sf->mv.search_method = FAST_DIAMOND; sf->partition_search_type = VAR_BASED_PARTITION; sf->mode_search_skip_flags |= FLAG_SKIP_INTRA_DIRMISMATCH; - sf->tx_size_search_level = 1; sf->use_nonrd_pick_mode = 1; sf->use_comp_ref_nonrd = 0; sf->inter_mode_rd_model_estimation = 2;
diff --git a/av1/encoder/var_based_part.c b/av1/encoder/var_based_part.c index 39a8d28..59b8c7e 100644 --- a/av1/encoder/var_based_part.c +++ b/av1/encoder/var_based_part.c
@@ -416,7 +416,7 @@ if (last_qindex >= QINDEX_HIGH_THR) { threshold_base = (5 * threshold_base) >> 1; thresholds[1] = threshold_base >> 3; - thresholds[2] = threshold_base; + thresholds[2] = threshold_base << 2; thresholds[3] = threshold_base << 5; } else if (last_qindex < QINDEX_LOW_THR) { thresholds[1] = threshold_base >> 3;