rtc-screen: Increase partition thresholds for high resoln
For resolutions above 1920x1080 in screen mode:
disable 8x8 blocks. Also increase thresh[2] (split to 16x16)
for resolutions above 1920x1080.
~10-20% encoder fps speedup on 4K test clips.
Quality impact is small/minimal.
Change-Id: Icc79c2ec13b53fb41dd7dd5112cc34f9fd5b4b8f
diff --git a/av1/encoder/speed_features.c b/av1/encoder/speed_features.c
index 84df127..85cc3f7 100644
--- a/av1/encoder/speed_features.c
+++ b/av1/encoder/speed_features.c
@@ -1397,6 +1397,8 @@
sf->rt_sf.force_half_pel_block = 1;
sf->rt_sf.reduce_zeromv_mvres = true;
}
+ if (speed >= 10 && cm->width * cm->height > 1920 * 1080)
+ sf->part_sf.disable_8x8_part_based_on_qidx = 1;
sf->rt_sf.skip_cdef_sb = 1;
sf->rt_sf.use_rtc_tf = 0;
sf->rt_sf.use_comp_ref_nonrd = 0;
diff --git a/av1/encoder/var_based_part.c b/av1/encoder/var_based_part.c
index f47c81d..bb1ee9a 100644
--- a/av1/encoder/var_based_part.c
+++ b/av1/encoder/var_based_part.c
@@ -563,8 +563,10 @@
thresholds[2] = (5 * threshold_base) >> 2;
} else if (cm->width < 1920 && cm->height < 1080) {
thresholds[2] = threshold_base << 1;
- } else {
+ } else if (cm->width < 2560 && cm->height < 1440) {
thresholds[2] = (5 * threshold_base) >> 1;
+ } else {
+ thresholds[2] = (7 * threshold_base) >> 1;
}
// Tune thresholds less or more aggressively to prefer larger partitions
if (cpi->sf.rt_sf.prefer_large_partition_blocks >= 3) {