Merge "Adjust rt speed steps."

This commit is contained in:
Yaowu Xu 2014-03-31 07:08:31 -07:00 коммит произвёл Gerrit Code Review
Родитель 1bc32afd3c 6fc20a8434
Коммит 8a099deb60
3 изменённых файлов: 8 добавлений и 19 удалений

Просмотреть файл

@ -580,8 +580,8 @@ VP8_INSTANTIATE_TEST_CASE(DatarateTestLarge, ALL_TEST_MODES);
VP9_INSTANTIATE_TEST_CASE(DatarateTestVP9Large, VP9_INSTANTIATE_TEST_CASE(DatarateTestVP9Large,
::testing::Values(::libvpx_test::kOnePassGood, ::testing::Values(::libvpx_test::kOnePassGood,
::libvpx_test::kRealTime), ::libvpx_test::kRealTime),
::testing::Range(2, 6)); ::testing::Range(2, 5));
// TODO(marpan): Speed 6 and 7 fails on one of these tests, for // TODO(marpan): Speed 5 to 7 fails on one of these tests, for
// real-time mode. So for now test up to speed 5, and start at 2 // 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. // (since speed 0 and 1 are slow). Enable more speeds when issue is fixed.
} // namespace } // namespace

Просмотреть файл

@ -40,6 +40,7 @@
#include "vp9/encoder/vp9_ratectrl.h" #include "vp9/encoder/vp9_ratectrl.h"
#include "vp9/encoder/vp9_rdopt.h" #include "vp9/encoder/vp9_rdopt.h"
#include "vp9/encoder/vp9_segmentation.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_temporal_filter.h"
#include "vp9/encoder/vp9_resize.h" #include "vp9/encoder/vp9_resize.h"
#include "vp9/encoder/vp9_svc_layercontext.h" #include "vp9/encoder/vp9_svc_layercontext.h"

Просмотреть файл

@ -207,15 +207,6 @@ static void set_rt_speed_feature(VP9_COMMON *cm,
} }
if (speed >= 3) { if (speed >= 3) {
sf->use_square_partition_only = 1; 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->disable_filter_search_var_thresh = 100;
sf->use_lastframe_partitioning = LAST_FRAME_PARTITION_ALL; sf->use_lastframe_partitioning = LAST_FRAME_PARTITION_ALL;
sf->use_uv_intra_rd_estimate = 1; 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->use_fast_coef_updates = 2;
sf->adaptive_rd_thresh = 4; sf->adaptive_rd_thresh = 4;
sf->mode_skip_start = 6; sf->mode_skip_start = 6;
sf->encode_breakout_thresh = 400;
sf->allow_skip_recode = 0; sf->allow_skip_recode = 0;
}
if (speed >= 4) {
sf->optimize_coefficients = 0; sf->optimize_coefficients = 0;
sf->disable_split_mask = DISABLE_ALL_SPLIT; sf->disable_split_mask = DISABLE_ALL_SPLIT;
sf->lpf_pick = LPF_PICK_FROM_Q; sf->lpf_pick = LPF_PICK_FROM_Q;
sf->encode_breakout_thresh = 700; sf->encode_breakout_thresh = 700;
} }
if (speed >= 5) { if (speed >= 4) {
int i; int i;
sf->last_partitioning_redo_frequency = 4; sf->last_partitioning_redo_frequency = 4;
sf->adaptive_rd_thresh = 5; 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->max_intra_bsize = BLOCK_32X32;
sf->allow_skip_recode = 1; sf->allow_skip_recode = 1;
} }
if (speed >= 6) { if (speed >= 5) {
sf->max_partition_size = BLOCK_32X32; sf->max_partition_size = BLOCK_32X32;
sf->min_partition_size = BLOCK_8X8; sf->min_partition_size = BLOCK_8X8;
sf->partition_check = sf->partition_check =
@ -268,12 +256,12 @@ static void set_rt_speed_feature(VP9_COMMON *cm,
sf->search_method = FAST_DIAMOND; sf->search_method = FAST_DIAMOND;
sf->allow_skip_recode = 0; sf->allow_skip_recode = 0;
} }
if (speed >= 7) { if (speed >= 6) {
sf->partition_search_type = VAR_BASED_FIXED_PARTITION; sf->partition_search_type = VAR_BASED_FIXED_PARTITION;
sf->use_nonrd_pick_mode = 1; sf->use_nonrd_pick_mode = 1;
sf->search_method = FAST_DIAMOND; sf->search_method = FAST_DIAMOND;
} }
if (speed >= 8) { if (speed >= 7) {
int i; int i;
for (i = 0; i < BLOCK_SIZES; ++i) for (i = 0; i < BLOCK_SIZES; ++i)
sf->disable_inter_mode_mask[i] = 14; // only search NEARESTMV (0) sf->disable_inter_mode_mask[i] = 14; // only search NEARESTMV (0)