]> granicus.if.org Git - libvpx/commitdiff
Enable using fast HEX search in non-rd pick mode
authorYunqing Wang <yunqingwang@google.com>
Thu, 27 Feb 2014 17:16:25 +0000 (09:16 -0800)
committerYunqing Wang <yunqingwang@google.com>
Thu, 27 Feb 2014 19:48:07 +0000 (11:48 -0800)
Added fast HEX search while doing non-rd partition picking to
speed up the encoder.

Borg test(speed 7) on rtc set showed 1.8% overall PSNR loss.
Encoder speedup was 5% - 15% for different rtc clips.

Change-Id: I9c83026eabc70b69fcc747c90369ec60bfa3ca24

vp9/encoder/vp9_pickmode.c

index 0d0dc0cc74cfcc2e3ebfe1c95199d1c0f4dc575d..4628f7e44ba37daf593456972d667902a1004682 100644 (file)
@@ -98,8 +98,15 @@ static int full_pixel_motion_search(VP9_COMP *cpi, MACROBLOCK *x,
   mvp_full.col >>= 3;
   mvp_full.row >>= 3;
 
-  vp9_full_pixel_diamond(cpi, x, &mvp_full, step_param, sadpb, further_steps, 1,
-                         &cpi->fn_ptr[bsize], &ref_mv.as_mv, &tmp_mv->as_mv);
+  if (cpi->sf.search_method == FAST_HEX) {
+    vp9_fast_hex_search(x, &mvp_full, step_param, sadpb, &cpi->fn_ptr[bsize],
+                        1, &ref_mv.as_mv, &tmp_mv->as_mv);
+  } else {
+    vp9_full_pixel_diamond(cpi, x, &mvp_full, step_param, sadpb, further_steps,
+                           1, &cpi->fn_ptr[bsize], &ref_mv.as_mv,
+                           &tmp_mv->as_mv);
+  }
+
   x->mv_col_min = tmp_col_min;
   x->mv_col_max = tmp_col_max;
   x->mv_row_min = tmp_row_min;