shithub: libvpx

Download patch

ref: 80de626f9fdbe3ffe6672b203b0c8233beb6ccea
parent: 8dc6f353c6d04329cf59529f41a6f46d9dbfcafa
author: Marco Paniconi <marpan@google.com>
date: Wed Apr 8 14:23:45 EDT 2020

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

--- a/vp9/encoder/vp9_speed_features.c
+++ b/vp9/encoder/vp9_speed_features.c
@@ -787,6 +787,13 @@
     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;