]> granicus.if.org Git - libvpx/commitdiff
Using SPEED_FEATURES instead of VP9_COMP in vp9_init_search_range().
authorDmitry Kovalev <dkovalev@google.com>
Thu, 1 May 2014 23:36:51 +0000 (16:36 -0700)
committerDmitry Kovalev <dkovalev@google.com>
Thu, 1 May 2014 23:36:51 +0000 (16:36 -0700)
Change-Id: I961d50d6fafdd37ef7f23f0a871d28e28d2084ca

vp9/encoder/vp9_encoder.c
vp9/encoder/vp9_mcomp.c
vp9/encoder/vp9_mcomp.h
vp9/encoder/vp9_rdopt.c
vp9/encoder/vp9_speed_features.h

index 395d26aef6332f4d6fff330969a9f3cfe8125b8d..0fb00f13f0b7569b0bfe01dd80f68afa33d7f5fd 100644 (file)
@@ -2097,7 +2097,7 @@ static void encode_frame_to_data_rate(VP9_COMP *cpi,
   cm->lf.mode_ref_delta_update = 0;
 
   // Initialize cpi->mv_step_param to default based on max resolution.
-  cpi->mv_step_param = vp9_init_search_range(cpi, max_mv_def);
+  cpi->mv_step_param = vp9_init_search_range(sf, max_mv_def);
   // Initialize cpi->max_mv_magnitude and cpi->mv_step_param if appropriate.
   if (sf->auto_mv_step_size) {
     if (frame_is_intra_only(cm)) {
@@ -2109,7 +2109,7 @@ static void encode_frame_to_data_rate(VP9_COMP *cpi,
         // Allow mv_steps to correspond to twice the max mv magnitude found
         // in the previous frame, capped by the default max_mv_magnitude based
         // on resolution.
-        cpi->mv_step_param = vp9_init_search_range(cpi, MIN(max_mv_def, 2 *
+        cpi->mv_step_param = vp9_init_search_range(sf, MIN(max_mv_def, 2 *
                                  cpi->max_mv_magnitude));
       cpi->max_mv_magnitude = 0;
     }
index bbec4da761060c97b62ccaffbbbac4e6df6bc25f..5cd9fc7d7dbb2699519c45591848696a20edff45 100644 (file)
@@ -51,7 +51,7 @@ void vp9_set_mv_search_range(MACROBLOCK *x, const MV *mv) {
     x->mv_row_max = row_max;
 }
 
-int vp9_init_search_range(VP9_COMP *cpi, int size) {
+int vp9_init_search_range(const SPEED_FEATURES *sf, int size) {
   int sr = 0;
 
   // Minimum search size no matter what the passed in value.
@@ -60,8 +60,8 @@ int vp9_init_search_range(VP9_COMP *cpi, int size) {
   while ((size << sr) < MAX_FULL_PEL_VAL)
     sr++;
 
-  sr += cpi->sf.reduce_first_step_size;
-  sr = MIN(sr, (cpi->sf.max_step_search_steps - 2));
+  sr += sf->reduce_first_step_size;
+  sr = MIN(sr, (sf->max_step_search_steps - 2));
   return sr;
 }
 
index 1f524f1f621e638ef88c79ea4bdd04a53c688502..827957d62c39dc9035f5056d4fdb844d2115380e 100644 (file)
@@ -62,7 +62,9 @@ int vp9_get_mvpred_av_var(const MACROBLOCK *x,
                           int use_mvcost);
 
 struct VP9_COMP;
-int vp9_init_search_range(struct VP9_COMP *cpi, int size);
+struct SPEED_FEATURES;
+
+int vp9_init_search_range(const struct SPEED_FEATURES *sf, int size);
 
 // Runs sequence of diamond searches in smaller steps for RD
 int vp9_full_pixel_diamond(const struct VP9_COMP *cpi, MACROBLOCK *x,
index f309aac966343e9fcaeb66180994c44bb12d37d3..1f4a7d65212e5a033045e92fdf0e42565adea0d1 100644 (file)
@@ -1836,8 +1836,8 @@ static int64_t rd_pick_best_sub8x8_mode(VP9_COMP *cpi, MACROBLOCK *x,
             // Take wtd average of the step_params based on the last frame's
             // max mv magnitude and the best ref mvs of the current block for
             // the given reference.
-            step_param = (vp9_init_search_range(cpi, max_mv) +
-                          cpi->mv_step_param) >> 1;
+            step_param = (vp9_init_search_range(&cpi->sf, max_mv) +
+                              cpi->mv_step_param) / 2;
           } else {
             step_param = cpi->mv_step_param;
           }
@@ -2389,8 +2389,8 @@ static void single_motion_search(VP9_COMP *cpi, MACROBLOCK *x,
     // Take wtd average of the step_params based on the last frame's
     // max mv magnitude and that based on the best ref mvs of the current
     // block for the given reference.
-    step_param = (vp9_init_search_range(cpi, x->max_mv_context[ref]) +
-                  cpi->mv_step_param) >> 1;
+    step_param = (vp9_init_search_range(&cpi->sf, x->max_mv_context[ref]) +
+                    cpi->mv_step_param) / 2;
   } else {
     step_param = cpi->mv_step_param;
   }
index cff99a6dc131dd24633e6f2f5c0c86d36308dfc2..a384a436043d861bfa0d4ddc9cd9a4d5e9ffd02f 100644 (file)
@@ -129,7 +129,7 @@ typedef enum {
   ONE_LOOP_REDUCED = 2
 } FAST_COEFF_UPDATE;
 
-typedef struct {
+typedef struct SPEED_FEATURES {
   // Frame level coding parameter update
   int frame_parameter_update;