]> granicus.if.org Git - libvpx/commitdiff
Adjust rt speed steps.
authorYaowu Xu <yaowu@google.com>
Wed, 26 Mar 2014 23:15:00 +0000 (16:15 -0700)
committerYaowu Xu <yaowu@google.com>
Fri, 28 Mar 2014 23:40:28 +0000 (16:40 -0700)
This commit adjusted the speed steps in rt mode to make the steps
more evenly spaced on speed and quality, specifically:
1. Merged 3 and 4 into one single step 3 and removed confilicting
features.
2. Move 8, 7, 6, 5 to be 7, 6, 5, 4 repsectively.

Change-Id: I38d56d61531f3561d772aef953c411c8fb38c063

test/datarate_test.cc
vp9/encoder/vp9_onyx_if.c
vp9/encoder/vp9_speed_features.c

index 8f7cc7a373d4ba80d4b2c23e2f6f887ee628b2e5..1b921f0a16effafd4ca6d89cefe1a2bb48389f31 100644 (file)
@@ -580,8 +580,8 @@ VP8_INSTANTIATE_TEST_CASE(DatarateTestLarge, ALL_TEST_MODES);
 VP9_INSTANTIATE_TEST_CASE(DatarateTestVP9Large,
                           ::testing::Values(::libvpx_test::kOnePassGood,
                           ::libvpx_test::kRealTime),
-                          ::testing::Range(2, 6));
-// TODO(marpan): Speed 6 and 7 fails on one of these tests, for
-// real-time mode. So for now test up to speed 5, and start at 2
+                          ::testing::Range(2, 5));
+// TODO(marpan): Speed 5 to 7 fails on one of these tests, for
+// real-time mode. So for now test up to speed 4, and start at 2
 // (since speed 0 and 1 are slow). Enable more speeds when issue is fixed.
 }  // namespace
index 754122e1005ccb4e90021139db4e5a7a9a217fd8..ef10cfca6271158efaf1ad1344bce72a76ac603f 100644 (file)
@@ -40,6 +40,7 @@
 #include "vp9/encoder/vp9_ratectrl.h"
 #include "vp9/encoder/vp9_rdopt.h"
 #include "vp9/encoder/vp9_segmentation.h"
+#include "vp9/encoder/vp9_speed_features.h"
 #include "vp9/encoder/vp9_temporal_filter.h"
 #include "vp9/encoder/vp9_resize.h"
 #include "vp9/encoder/vp9_svc_layercontext.h"
index fd89d3304a3ef9fccea29e62e32f80ae13b1fff0..f090350775f747b838979111aad0674717341367 100644 (file)
@@ -207,15 +207,6 @@ static void set_rt_speed_feature(VP9_COMMON *cm,
   }
   if (speed >= 3) {
     sf->use_square_partition_only = 1;
-    if (MIN(cm->width, cm->height) >= 720)
-      sf->disable_split_mask = DISABLE_ALL_SPLIT;
-    else
-      sf->disable_split_mask = DISABLE_ALL_INTER_SPLIT;
-
-    sf->mode_search_skip_flags = FLAG_SKIP_INTRA_DIRMISMATCH
-        | FLAG_SKIP_INTRA_BESTINTER | FLAG_SKIP_COMP_BESTINTRA
-        | FLAG_SKIP_INTRA_LOWVAR;
-
     sf->disable_filter_search_var_thresh = 100;
     sf->use_lastframe_partitioning = LAST_FRAME_PARTITION_ALL;
     sf->use_uv_intra_rd_estimate = 1;
@@ -224,16 +215,13 @@ static void set_rt_speed_feature(VP9_COMMON *cm,
     sf->use_fast_coef_updates = 2;
     sf->adaptive_rd_thresh = 4;
     sf->mode_skip_start = 6;
-    sf->encode_breakout_thresh = 400;
     sf->allow_skip_recode = 0;
-  }
-  if (speed >= 4) {
     sf->optimize_coefficients = 0;
     sf->disable_split_mask = DISABLE_ALL_SPLIT;
     sf->lpf_pick = LPF_PICK_FROM_Q;
     sf->encode_breakout_thresh = 700;
   }
-  if (speed >= 5) {
+  if (speed >= 4) {
     int i;
     sf->last_partitioning_redo_frequency = 4;
     sf->adaptive_rd_thresh = 5;
@@ -258,7 +246,7 @@ static void set_rt_speed_feature(VP9_COMMON *cm,
     sf->max_intra_bsize = BLOCK_32X32;
     sf->allow_skip_recode = 1;
   }
-  if (speed >= 6) {
+  if (speed >= 5) {
     sf->max_partition_size = BLOCK_32X32;
     sf->min_partition_size = BLOCK_8X8;
     sf->partition_check =
@@ -268,12 +256,12 @@ static void set_rt_speed_feature(VP9_COMMON *cm,
     sf->search_method = FAST_DIAMOND;
     sf->allow_skip_recode = 0;
   }
-  if (speed >= 7) {
+  if (speed >= 6) {
     sf->partition_search_type = VAR_BASED_FIXED_PARTITION;
     sf->use_nonrd_pick_mode = 1;
     sf->search_method = FAST_DIAMOND;
   }
-  if (speed >= 8) {
+  if (speed >= 7) {
     int i;
     for (i = 0; i < BLOCK_SIZES; ++i)
       sf->disable_inter_mode_mask[i] = 14;    // only search NEARESTMV (0)