ref: b04d766800f39ed97361d2ec13b740cbf5bca534
parent: 61c4295af8c56c3dbe3a97a8a80a29099e587c69
author: Yunqing Wang <[email protected]>
date: Thu May 29 12:53:23 EDT 2014
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
--- a/vp9/encoder/vp9_encodeframe.c
+++ b/vp9/encoder/vp9_encodeframe.c
@@ -2418,6 +2418,8 @@
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;
--- a/vp9/encoder/vp9_speed_features.c
+++ b/vp9/encoder/vp9_speed_features.c
@@ -269,6 +269,8 @@
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) {
--- a/vp9/encoder/vp9_speed_features.h
+++ b/vp9/encoder/vp9_speed_features.h
@@ -58,7 +58,8 @@
USE_FULL_RD = 0,
USE_LARGESTINTRA,
USE_LARGESTINTRA_MODELINTER,
- USE_LARGESTALL
+ USE_LARGESTALL,
+ USE_TX_8X8
} TX_SIZE_SEARCH_METHOD;
typedef enum {