shithub: libvpx

Download patch

ref: dbe4d9c4ebac47ba39678a3f4e3953dd26891be5
parent: e55e3f80319e9cae14b91b649bc861b0b5297c53
author: Jingning Han <jingning@google.com>
date: Thu Jul 26 12:41:55 EDT 2018

Use diamond search to build tpl model and arf frames

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

--- a/vp9/encoder/vp9_encoder.c
+++ b/vp9/encoder/vp9_encoder.c
@@ -5584,7 +5584,7 @@
   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;
--- a/vp9/encoder/vp9_temporal_filter.c
+++ b/vp9/encoder/vp9_temporal_filter.c
@@ -230,7 +230,7 @@
   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;