From 03973017a7138e196a3e2a8aecf4877780de7fd8 Mon Sep 17 00:00:00 2001
From: Yunqing Wang <yunqingwang@google.com>
Date: Thu, 2 Jun 2011 14:47:06 -0400
Subject: [PATCH] Remove hex search's variance calculation while in real-time
 mode

In real-time mode motion search, there is no need to calculate
variance. This change improved encoding speed by 1% ~ 2%(speed=-5).

Change-Id: I65b874901eb599ac38fe8cf9cad898c14138d431
---
 vp8/encoder/mcomp.c           | 7 +------
 vp8/encoder/mcomp.h           | 1 -
 vp8/encoder/pickinter.c       | 2 +-
 vp8/encoder/temporal_filter.c | 3 +--
 4 files changed, 3 insertions(+), 10 deletions(-)

diff --git a/vp8/encoder/mcomp.c b/vp8/encoder/mcomp.c
index 50c4745b13..d22fdb2e6f 100644
--- a/vp8/encoder/mcomp.c
+++ b/vp8/encoder/mcomp.c
@@ -842,7 +842,6 @@ int vp8_hex_search
     int_mv *best_mv,
     int search_param,
     int sad_per_bit,
-    int *num00,
     const vp8_variance_fn_ptr_t *vfp,
     int *mvsadcost[2],
     int *mvcost[2],
@@ -996,12 +995,8 @@ cal_neighbors:
 
     best_mv->as_mv.row = br;
     best_mv->as_mv.col = bc;
-    this_mv.as_mv.row = br<<3;
-    this_mv.as_mv.col = bc<<3;
 
-    this_offset = (unsigned char *)(*(d->base_pre) + d->pre + (br * (in_what_stride)) + bc);
-    return vfp->vf(what, what_stride, this_offset, in_what_stride, &bestsad)
-        + mv_err_cost(&this_mv, center_mv, mvcost, x->errorperbit) ;
+    return bestsad;
 }
 #undef CHECK_BOUNDS
 #undef CHECK_POINT
diff --git a/vp8/encoder/mcomp.h b/vp8/encoder/mcomp.h
index bf9fa6f76e..44ed055db9 100644
--- a/vp8/encoder/mcomp.h
+++ b/vp8/encoder/mcomp.h
@@ -40,7 +40,6 @@ extern int vp8_hex_search
     int_mv *best_mv,
     int search_param,
     int error_per_bit,
-    int *num00,
     const vp8_variance_fn_ptr_t *vf,
     int *mvsadcost[2],
     int *mvcost[2],
diff --git a/vp8/encoder/pickinter.c b/vp8/encoder/pickinter.c
index e6716fac26..456059cf89 100644
--- a/vp8/encoder/pickinter.c
+++ b/vp8/encoder/pickinter.c
@@ -762,7 +762,7 @@ void vp8_pick_inter_mode(VP8_COMP *cpi, MACROBLOCK *x, int recon_yoffset,
             if (cpi->sf.search_method == HEX)
             {
                 bestsme = vp8_hex_search(x, b, d, &mvp, &d->bmi.mv, step_param,
-                                      sadpb, &num00, &cpi->fn_ptr[BLOCK_16X16],
+                                      sadpb, &cpi->fn_ptr[BLOCK_16X16],
                                       x->mvsadcost, x->mvcost, &best_ref_mv);
                 mode_mv[NEWMV].as_int = d->bmi.mv.as_int;
             }
diff --git a/vp8/encoder/temporal_filter.c b/vp8/encoder/temporal_filter.c
index 2997f77d11..c1ca7d4ed7 100644
--- a/vp8/encoder/temporal_filter.c
+++ b/vp8/encoder/temporal_filter.c
@@ -153,7 +153,6 @@ static int vp8_temporal_filter_find_matching_mb_c
     int further_steps;
     int sadpb = x->sadperbit16;
     int bestsme = INT_MAX;
-    int num00 = 0;
 
     BLOCK *b = &x->block[0];
     BLOCKD *d = &x->e_mbd.block[0];
@@ -201,7 +200,7 @@ static int vp8_temporal_filter_find_matching_mb_c
         &best_ref_mv1, &d->bmi.mv,
         step_param,
         sadpb,
-        &num00, &cpi->fn_ptr[BLOCK_16X16],
+        &cpi->fn_ptr[BLOCK_16X16],
         mvsadcost, mvcost, &best_ref_mv1);
 
 #if ALT_REF_SUBPEL_ENABLED
-- 
GitLab