vp9: speed >= 8: Adjust speed settings on ARM.
authorJerome Jiang <jianj@google.com>
Mon, 10 Apr 2017 20:55:35 +0000 (13:55 -0700)
committerJerome Jiang <jianj@google.com>
Tue, 11 Apr 2017 00:26:56 +0000 (00:26 +0000)
Set adaptive_rd_thresh to 2 when simple block yrd is not used.

Fix regression caused by computing y sad without
int_pro_motion_estimation on low res motion clips.

Overall 0.07% quality loss on rtc_derf.

Change only affects low res on speed 8.

Change-Id: Ic6a188a56529f1034d6431005fb4b0e24e8a7e27

vp9/encoder/vp9_encodeframe.c
vp9/encoder/vp9_speed_features.c

index 9b09e38..aed934f 100644 (file)
@@ -1142,7 +1142,7 @@ static int choose_partitioning(VP9_COMP *cpi, const TileInfo *const tile,
     mi->mv[0].as_int = 0;
     mi->interp_filter = BILINEAR;
 
-    if (cpi->oxcf.speed >= 8)
+    if (cpi->oxcf.speed >= 8 && !low_res)
       y_sad = cpi->fn_ptr[bsize].sdf(
           x->plane[0].src.buf, x->plane[0].src.stride, xd->plane[0].pre[0].buf,
           xd->plane[0].pre[0].stride);
index 2e0ca5b..f74b6b0 100644 (file)
@@ -555,7 +555,10 @@ static void set_rt_speed_feature_framesize_independent(
       }
       // Since the short_circuit_low_temp_var is used, reduce the
       // adaptive_rd_thresh level.
-      sf->adaptive_rd_thresh = 1;
+      if (cm->width > 320 && cm->height > 240)
+        sf->adaptive_rd_thresh = 1;
+      else
+        sf->adaptive_rd_thresh = 2;
     }
     sf->limit_newmv_early_exit = 0;
     if (cm->width > 320 && cm->height > 240) sf->use_simple_block_yrd = 1;