vp9-rtc: Fixes for low-resoln
authorMarco Paniconi <marpan@google.com>
Wed, 20 Mar 2019 20:39:48 +0000 (13:39 -0700)
committerMarco Paniconi <marpan@google.com>
Wed, 20 Mar 2019 20:42:20 +0000 (13:42 -0700)
The force smooth_filter should only be used
for noisy content, so for now keep it off and
add TODO. Also fix/adjust low-resoln condition
and threshold in cyclic refresh.

Change-Id: I6c456dc9f23daabba20badd65a2f7ee6c5e259c4

vp9/encoder/vp9_aq_cyclicrefresh.c
vp9/encoder/vp9_pickmode.c

index 5cc0e03..b3b5460 100644 (file)
@@ -530,9 +530,9 @@ void vp9_cyclic_refresh_update_parameters(VP9_COMP *const cpi) {
     cr->rate_boost_fac = 10;
   }
   // Adjust some parameters for low resolutions.
-  if (cm->width <= 352 && cm->height <= 288) {
+  if (cm->width * cm->height <= 352 * 288) {
     if (rc->avg_frame_bandwidth < 3000) {
-      cr->motion_thresh = 16;
+      cr->motion_thresh = 64;
       cr->rate_boost_fac = 13;
     } else {
       cr->max_qdelta_perc = 70;
index 86831b9..0f29739 100644 (file)
@@ -1700,11 +1700,10 @@ void vp9_pick_inter_mode(VP9_COMP *cpi, MACROBLOCK *x, TileDataEnc *tile_data,
   int no_scaling = 0;
   unsigned int thresh_svc_skip_golden = 500;
   unsigned int thresh_skip_golden = 500;
-  int force_smooth_filter =
-      (cpi->oxcf.speed >= 8 && cm->width * cm->height <= 320 * 240 &&
-       cm->base_qindex >= 200)
-          ? 1
-          : 0;
+  // TODO(marpan/jianj): forcing smooth_interpol is visually better for noisy
+  // content, at low resolns. Look into adding this conditon. For now keep
+  // it off.
+  int force_smooth_filter = 0;
   int scene_change_detected =
       cpi->rc.high_source_sad ||
       (cpi->use_svc && cpi->svc.high_source_sad_superframe);