Disable adaptive pred filter for non-split mode
If sf->disable_split_mask is DISABLE_ALL_SPLIT, disable sf->adaptive_pred_interp_filter to avoid unnecessary operations. Change-Id: Icb59174b2f4e9a3c3c16a696deb8018e5bd999eb
This commit is contained in:
Родитель
bfaf415ea7
Коммит
fee045d13a
|
@ -1935,14 +1935,17 @@ static void encode_sb_row(VP9_COMP *cpi, const TileInfo *const tile,
|
|||
|
||||
BLOCK_SIZE i;
|
||||
MACROBLOCK *x = &cpi->mb;
|
||||
for (i = BLOCK_4X4; i < BLOCK_8X8; ++i) {
|
||||
const int num_4x4_w = num_4x4_blocks_wide_lookup[i];
|
||||
const int num_4x4_h = num_4x4_blocks_high_lookup[i];
|
||||
const int num_4x4_blk = MAX(4, num_4x4_w * num_4x4_h);
|
||||
for (x->sb_index = 0; x->sb_index < 4; ++x->sb_index)
|
||||
for (x->mb_index = 0; x->mb_index < 4; ++x->mb_index)
|
||||
for (x->b_index = 0; x->b_index < 16 / num_4x4_blk; ++x->b_index)
|
||||
get_block_context(x, i)->pred_interp_filter = SWITCHABLE;
|
||||
|
||||
if (cpi->sf.adaptive_pred_interp_filter) {
|
||||
for (i = BLOCK_4X4; i < BLOCK_8X8; ++i) {
|
||||
const int num_4x4_w = num_4x4_blocks_wide_lookup[i];
|
||||
const int num_4x4_h = num_4x4_blocks_high_lookup[i];
|
||||
const int num_4x4_blk = MAX(4, num_4x4_w * num_4x4_h);
|
||||
for (x->sb_index = 0; x->sb_index < 4; ++x->sb_index)
|
||||
for (x->mb_index = 0; x->mb_index < 4; ++x->mb_index)
|
||||
for (x->b_index = 0; x->b_index < 16 / num_4x4_blk; ++x->b_index)
|
||||
get_block_context(x, i)->pred_interp_filter = SWITCHABLE;
|
||||
}
|
||||
}
|
||||
|
||||
vp9_zero(cpi->mb.pred_mv);
|
||||
|
|
|
@ -972,6 +972,9 @@ void vp9_set_speed_features(VP9_COMP *cpi) {
|
|||
if (cpi->encode_breakout && cpi->oxcf.mode == MODE_REALTIME &&
|
||||
sf->encode_breakout_thresh > cpi->encode_breakout)
|
||||
cpi->encode_breakout = sf->encode_breakout_thresh;
|
||||
|
||||
if (sf->disable_split_mask == DISABLE_ALL_SPLIT)
|
||||
sf->adaptive_pred_interp_filter = 0;
|
||||
}
|
||||
|
||||
static void alloc_raw_frame_buffers(VP9_COMP *cpi) {
|
||||
|
|
Загрузка…
Ссылка в новой задаче