Fixes for key frame coding at speed 5.
Keep the same transform cutoff and partition selection for speed 5 as in speeds >=6 (non-rd speed settings). Existing setting for key frame at speed 5 allowed transform size up to 32x32 on key frames, and did not allow for 4x4 block partition size. This created more visual artifacts on first few frames. avgPSNR/overallPSNR/SSIM gains of 0.2/0.7/0.8 for rtc_derf(low-res) set, and 0/0.7/1.1 gains for rtc set. Change-Id: I8c139ec6c9bb74e14b4ffbad5f12e94f18a59c0b
This commit is contained in:
parent
c8b9658ecc
commit
fb2a89b1fb
@ -2885,8 +2885,7 @@ static TX_MODE select_tx_mode(const VP9_COMP *cpi, MACROBLOCKD *const xd) {
|
||||
if (xd->lossless)
|
||||
return ONLY_4X4;
|
||||
if (cpi->common.frame_type == KEY_FRAME &&
|
||||
cpi->sf.use_nonrd_pick_mode &&
|
||||
cpi->sf.partition_search_type == VAR_BASED_PARTITION)
|
||||
cpi->sf.use_nonrd_pick_mode)
|
||||
return ALLOW_16X16;
|
||||
if (cpi->sf.tx_size_search_method == USE_LARGESTALL)
|
||||
return ALLOW_32X32;
|
||||
@ -3583,8 +3582,15 @@ static void encode_nonrd_sb_row(VP9_COMP *cpi,
|
||||
INT64_MAX, td->pc_root);
|
||||
} else {
|
||||
choose_partitioning(cpi, tile_info, x, mi_row, mi_col);
|
||||
nonrd_select_partition(cpi, td, tile_data, mi, tp, mi_row, mi_col,
|
||||
BLOCK_64X64, 1, &dummy_rdc, td->pc_root);
|
||||
// TODO(marpan): Seems like nonrd_select_partition does not support
|
||||
// 4x4 partition. Since 4x4 is used on key frame, use this switch
|
||||
// for now.
|
||||
if (cm->frame_type == KEY_FRAME)
|
||||
nonrd_use_partition(cpi, td, tile_data, mi, tp, mi_row, mi_col,
|
||||
BLOCK_64X64, 1, &dummy_rdc, td->pc_root);
|
||||
else
|
||||
nonrd_select_partition(cpi, td, tile_data, mi, tp, mi_row, mi_col,
|
||||
BLOCK_64X64, 1, &dummy_rdc, td->pc_root);
|
||||
}
|
||||
|
||||
break;
|
||||
|
Loading…
x
Reference in New Issue
Block a user