Use diamond search to build tpl model and arf frames
authorJingning Han <jingning@google.com>
Thu, 26 Jul 2018 23:41:55 +0000 (16:41 -0700)
committerJingning Han <jingning@google.com>
Fri, 27 Jul 2018 18:16:50 +0000 (11:16 -0700)
Use diamond search for full pixel motion estimation to build
the temporal dependency model and the source arf frame. This gives
better full pixel motion estimation accuracy. It improves the
compression performance.

In speed 0,
         avg PSNR     overall PSNR     SSIM
midres    -0.32%        -0.30%        -0.65%
hdres     -0.88%        -0.91%        -1.31%
nflx2k    -0.47%        -0.48%        -0.81%

In speed 1,
        avg PSNR      overall PSNR     SSIM
midres    -0.24%        -0.28%        -0.50%
hdres     -0.82%        -0.83%        -1.18%
nflx2k    -0.58%        -0.60%        -0.89%

The encoding speed change is minor due to the fact that such motion
estimation is triggered once at the beginning of each group of
picture coding.

Change-Id: Ib25c0ff4f7450c85fd7a38d24319bd7ae1b9dac8

vp9/encoder/vp9_encoder.c
vp9/encoder/vp9_temporal_filter.c

index 2204339..e38df29 100644 (file)
@@ -5584,7 +5584,7 @@ uint32_t motion_compensated_prediction(VP9_COMP *cpi, ThreadData *td,
   MACROBLOCK *const x = &td->mb;
   MACROBLOCKD *const xd = &x->e_mbd;
   MV_SPEED_FEATURES *const mv_sf = &cpi->sf.mv;
-  const SEARCH_METHODS search_method = HEX;
+  const SEARCH_METHODS search_method = NSTEP;
   int step_param;
   int sadpb = x->sadperbit16;
   uint32_t bestsme = UINT_MAX;
index 4db3e6f..9a357c1 100644 (file)
@@ -230,7 +230,7 @@ static uint32_t temporal_filter_find_matching_mb_c(VP9_COMP *cpi,
   MACROBLOCK *const x = &td->mb;
   MACROBLOCKD *const xd = &x->e_mbd;
   MV_SPEED_FEATURES *const mv_sf = &cpi->sf.mv;
-  const SEARCH_METHODS search_method = HEX;
+  const SEARCH_METHODS search_method = NSTEP;
   int step_param;
   int sadpb = x->sadperbit16;
   uint32_t bestsme = UINT_MAX;