Comply qindex based speed features with EXTQUANT
Change-Id: I1fc8efef2830e3893a73088c9b21a151f8d9a6e2
diff --git a/av1/encoder/speed_features.c b/av1/encoder/speed_features.c
index f50ec0c..7476160 100644
--- a/av1/encoder/speed_features.c
+++ b/av1/encoder/speed_features.c
@@ -1403,8 +1403,18 @@
const int boosted = frame_is_boosted(cpi);
const int is_720p_or_larger = AOMMIN(cm->width, cm->height) >= 720;
const int is_1080p_or_larger = AOMMIN(cm->width, cm->height) >= 1080;
+#if CONFIG_EXTQUANT
+ const int qindex_offset = MAXQ_OFFSET * (cm->seq_params.bit_depth - 8);
+#endif // CONFIG_EXTQUANT
if (is_720p_or_larger && cpi->oxcf.mode == GOOD && speed == 0) {
- if (cm->quant_params.base_qindex <= 128) {
+#if CONFIG_EXTQUANT
+ const int qindex_thresh = 124 + qindex_offset;
+ const int qindex_thresh2 = 113 + qindex_offset;
+#else
+ const int qindex_thresh = 128;
+ const int qindex_thresh2 = 108;
+#endif // CONFIG_EXTQUANT
+ if (cm->quant_params.base_qindex <= qindex_thresh) {
sf->rd_sf.perform_coeff_opt = 2 + is_1080p_or_larger;
memcpy(winner_mode_params->coeff_opt_dist_threshold,
coeff_opt_dist_thresholds[sf->rd_sf.perform_coeff_opt],
@@ -1417,7 +1427,8 @@
sf->inter_sf.skip_repeated_newmv = 1;
sf->tx_sf.model_based_prune_tx_search_level = 0;
- if (is_1080p_or_larger && cm->quant_params.base_qindex <= 108) {
+ if (is_1080p_or_larger &&
+ cm->quant_params.base_qindex <= qindex_thresh2) {
sf->inter_sf.selective_ref_frame = 2;
sf->rd_sf.tx_domain_dist_level = boosted ? 1 : 2;
sf->rd_sf.tx_domain_dist_thres_level = 1;
@@ -1435,8 +1446,13 @@
if (cpi->oxcf.mode == GOOD && speed >= 3) {
// Disable extended partitions for lower quantizers
+#if CONFIG_EXTQUANT
+ const int qindex_thresh =
+ (cm->features.allow_screen_content_tools ? 85 : 108) + qindex_offset;
+#else
const int qindex_thresh =
cm->features.allow_screen_content_tools ? 50 : 100;
+#endif // CONFIG_EXTQUANT
if (cm->quant_params.base_qindex <= qindex_thresh && !boosted) {
sf->part_sf.ext_partition_eval_thresh = BLOCK_128X128;
}
@@ -1444,7 +1460,11 @@
if (cpi->oxcf.mode == GOOD && speed >= 4) {
// Disable extended partitions for lower quantizers
+#if CONFIG_EXTQUANT
+ const int qindex_thresh = (boosted ? 100 : 119) + qindex_offset;
+#else
const int qindex_thresh = boosted ? 80 : 120;
+#endif // CONFIG_EXTQUANT
if (cm->quant_params.base_qindex <= qindex_thresh &&
!frame_is_intra_only(&cpi->common)) {
sf->part_sf.ext_partition_eval_thresh = BLOCK_128X128;
@@ -1452,7 +1472,11 @@
}
if (cpi->oxcf.mode == GOOD && speed >= 5) {
+#if CONFIG_EXTQUANT
+ const int qindex_thresh = (boosted ? 108 : 143) + qindex_offset;
+#else
const int qindex_thresh = boosted ? 100 : 160;
+#endif // CONFIG_EXTQUANT
if (cm->quant_params.base_qindex <= qindex_thresh &&
!frame_is_intra_only(&cpi->common)) {
sf->part_sf.ext_partition_eval_thresh = BLOCK_128X128;