]> granicus.if.org Git - libvpx/commitdiff
Simplifying vp9_set_speed_features() function.
authorDmitry Kovalev <dkovalev@google.com>
Fri, 8 Aug 2014 23:29:24 +0000 (16:29 -0700)
committerDmitry Kovalev <dkovalev@google.com>
Fri, 8 Aug 2014 23:29:24 +0000 (16:29 -0700)
Change-Id: I3e67230690b81ef54ef48ae26107fe7bc880ab8e

vp9/encoder/vp9_encoder.c
vp9/encoder/vp9_speed_features.c

index 41f0e5c3b8ec1b4f8594e36aca656ec9748523b7..d3b806cc2e3722b5142a52eae918a6437528a8e6 100644 (file)
@@ -1018,10 +1018,6 @@ VP9_COMP *vp9_create_compressor(VP9EncoderConfig *oxcf) {
       vp9_sub_pixel_avg_variance4x4,
       vp9_sad4x4x3, vp9_sad4x4x8, vp9_sad4x4x4d)
 
-  cpi->full_search_sad = vp9_full_search_sad;
-  cpi->diamond_search_sad = vp9_diamond_search_sad;
-  cpi->refining_search_sad = vp9_refining_search_sad;
-
   /* vp9_init_quantizer() is first called here. Add check in
    * vp9_frame_init_quantizer() so that vp9_init_quantizer is only
    * called later when needed. This will avoid unnecessary calls of
index f2e99cf22a989beec538a64c950cf78a6db136d9..5084364de6f160865937a05c9a119e49a851e206 100644 (file)
@@ -388,21 +388,19 @@ void vp9_set_speed_features(VP9_COMP *cpi) {
   sf->recode_tolerance = 25;
   sf->default_interp_filter = SWITCHABLE;
 
-  switch (oxcf->mode) {
-    case ONE_PASS_BEST:
-    case TWO_PASS_SECOND_BEST:  // This is the best quality mode.
-      cpi->diamond_search_sad = vp9_full_range_search;
-      break;
-    case TWO_PASS_FIRST:
-    case ONE_PASS_GOOD:
-    case TWO_PASS_SECOND_GOOD:
+  if (oxcf->mode == REALTIME) {
+    set_rt_speed_feature(cpi, sf, oxcf->speed, oxcf->content);
+  } else {
+    if (!is_best_mode(oxcf->mode))
       set_good_speed_feature(cpi, cm, sf, oxcf->speed);
-      break;
-    case REALTIME:
-      set_rt_speed_feature(cpi, sf, oxcf->speed, oxcf->content);
-      break;
   }
 
+  cpi->full_search_sad = vp9_full_search_sad;
+  cpi->diamond_search_sad = is_best_mode(oxcf->mode) ? vp9_full_range_search
+                                                     : vp9_diamond_search_sad;
+  cpi->refining_search_sad = vp9_refining_search_sad;
+
+
   // Slow quant, dct and trellis not worthwhile for first pass
   // so make sure they are always turned off.
   if (oxcf->pass == 1)