From 80de626f9fdbe3ffe6672b203b0c8233beb6ccea Mon Sep 17 00:00:00 2001 From: Marco Paniconi Date: Wed, 8 Apr 2020 18:23:45 -0700 Subject: vp9-rtc: Set disable_16x16part for low-resoln high Q Only affects variance partition at low-resoln, speed 6,7 real-time mode. At very high Q better to save bits from the split to 8x8. bdrate gain ~3% on rtc_derf at very low bitrates Change-Id: I94ee58e67d5ba6277cbab8f8dd9ea45b035c82b5 --- vp9/encoder/vp9_speed_features.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/vp9/encoder/vp9_speed_features.c b/vp9/encoder/vp9_speed_features.c index 7a26c4176..ce58cf204 100644 --- a/vp9/encoder/vp9_speed_features.c +++ b/vp9/encoder/vp9_speed_features.c @@ -787,6 +787,13 @@ static void set_rt_speed_feature_framesize_independent( if (cm->width * cm->height >= 640 * 360) sf->variance_part_thresh_mult = 2; } + // Disable split to 8x8 for low-resolution at very high Q. + // For variance partition (speed >= 6). + if (cm->frame_type != KEY_FRAME && cm->width * cm->height <= 320 * 240 && + sf->partition_search_type == VAR_BASED_PARTITION && + cpi->rc.avg_frame_qindex[INTER_FRAME] > 208) + sf->disable_16x16part_nonkey = 1; + if (sf->nonrd_use_ml_partition) sf->partition_search_type = ML_BASED_PARTITION; -- cgit v1.2.1