Use small transform size in non-rd real-time mode
In non-rd real-time mode, choosing smaller transform size in encoding gives better video quality and good speed gain than choosing larger transform size. This patch set tx size search method to ALLOW_8X8, which is better than using 4x4 or other larger sizes. Borg tests on rtc set at speed 6 showed significant gain on quality. PSNR gain: 11.034% and SSIM gain: 15.466%. The speed gain is 5% - 12% for <720p clips, and 2% - 7% for 720p clips. Change-Id: If4dc74ed2df359346b059f47fb73b4a0193ec548
This commit is contained in:
@@ -2418,6 +2418,8 @@ static TX_MODE select_tx_mode(const VP9_COMP *cpi) {
|
||||
return rd_opt->tx_select_threshes[frame_type][ALLOW_32X32] >
|
||||
rd_opt->tx_select_threshes[frame_type][TX_MODE_SELECT] ?
|
||||
ALLOW_32X32 : TX_MODE_SELECT;
|
||||
} else if (cpi->sf.tx_size_search_method == USE_TX_8X8) {
|
||||
return ALLOW_8X8;
|
||||
} else {
|
||||
unsigned int total = 0;
|
||||
int i;
|
||||
|
||||
@@ -269,6 +269,8 @@ static void set_rt_speed_feature(VP9_COMP *cpi, SPEED_FEATURES *sf,
|
||||
sf->partition_search_type = SOURCE_VAR_BASED_PARTITION;
|
||||
sf->search_type_check_frequency = 50;
|
||||
sf->source_var_thresh = 360;
|
||||
|
||||
sf->tx_size_search_method = USE_TX_8X8;
|
||||
}
|
||||
|
||||
if (speed >= 7) {
|
||||
|
||||
@@ -58,7 +58,8 @@ typedef enum {
|
||||
USE_FULL_RD = 0,
|
||||
USE_LARGESTINTRA,
|
||||
USE_LARGESTINTRA_MODELINTER,
|
||||
USE_LARGESTALL
|
||||
USE_LARGESTALL,
|
||||
USE_TX_8X8
|
||||
} TX_SIZE_SEARCH_METHOD;
|
||||
|
||||
typedef enum {
|
||||
|
||||
Reference in New Issue
Block a user