]> granicus.if.org Git - libvpx/commitdiff
Localize x->encode_breakout setup to non-rd mode search
authorJingning Han <jingning@google.com>
Tue, 18 Dec 2018 00:49:09 +0000 (16:49 -0800)
committerJingning Han <jingning@google.com>
Tue, 18 Dec 2018 00:50:15 +0000 (16:50 -0800)
The breakout speed feature is currently only used by the non-rd
mode search path. Localize it to simplify set_offset() logic.

Change-Id: I27e7519c987a7caac2e4bd6be0ede1b9c8320e55

vp9/encoder/vp9_encodeframe.c
vp9/encoder/vp9_pickmode.c

index 98343f0d2436912ec42451091aabb054707674f7..e6ba0b644e9b7865ce39e7753ec1ca3b7cbf253e 100644 (file)
@@ -240,11 +240,8 @@ static void set_offsets(VP9_COMP *cpi, const TileInfo *const tile,
       mi->segment_id = get_segment_id(cm, map, bsize, mi_row, mi_col);
     }
     vp9_init_plane_quantizers(cpi, x);
-
-    x->encode_breakout = cpi->segment_encode_breakout[mi->segment_id];
   } else {
     mi->segment_id = 0;
-    x->encode_breakout = cpi->encode_breakout;
   }
 
   // required by vp9_append_sub8x8_mvs_for_idx() and vp9_find_best_ref_mvs()
index babfe4a33a14e403868677b367ba67098f5ea264..a3240513f15f16fb843fe34c9268e21eb7f9a9c1 100644 (file)
@@ -898,6 +898,7 @@ static void encode_breakout_test(
   // Skipping threshold for dc.
   unsigned int thresh_dc;
   int motion_low = 1;
+
   if (cpi->use_svc && ref_frame == GOLDEN_FRAME) return;
   if (mi->mv[0].as_mv.row > 64 || mi->mv[0].as_mv.row < -64 ||
       mi->mv[0].as_mv.col > 64 || mi->mv[0].as_mv.col < -64)
@@ -1703,6 +1704,10 @@ void vp9_pick_inter_mode(VP9_COMP *cpi, MACROBLOCK *x, TileDataEnc *tile_data,
 
   init_best_pickmode(&best_pickmode);
 
+  x->encode_breakout = seg->enabled
+                           ? cpi->segment_encode_breakout[mi->segment_id]
+                           : cpi->encode_breakout;
+
   x->source_variance = UINT_MAX;
   if (cpi->sf.default_interp_filter == BILINEAR) {
     best_pickmode.best_pred_filter = BILINEAR;