ref: 55834d42cc7d2a5cdcfec8472fd4b88a1f720102
parent: bf46feb379cdd672df6bc08ac84c9f40519b1016
author: Yunqing Wang <[email protected]>
date: Tue Jun 17 12:59:28 EDT 2014
Modify non-rd intra mode checking Speed 6 uses small tx size, namely 8x8. max_intra_bsize needs to be modified accordingly to ensure valid intra mode checking. Borg test on RTC set showed an overall PSNR gain of 0.335% in speed -6. This also changes speed -5 encoding by allowing DC_PRED checking for block32x32. Borg test on RTC set showed a slight PSNR gain of 0.145%, and no noticeable speed change. Change-Id: I1502978d8fbe265b3bb235db0f9c35ba0703cd45
--- a/vp9/encoder/vp9_pickmode.c
+++ b/vp9/encoder/vp9_pickmode.c
@@ -469,7 +469,7 @@
// Perform intra prediction search, if the best SAD is above a certain
// threshold.
if (!x->skip && best_rd > inter_mode_thresh &&
- bsize < cpi->sf.max_intra_bsize) {
+ bsize <= cpi->sf.max_intra_bsize) {
for (this_mode = DC_PRED; this_mode <= DC_PRED; ++this_mode) {
vp9_predict_intra_block(xd, 0, b_width_log2(bsize),
mbmi->tx_size, this_mode,
--- a/vp9/encoder/vp9_speed_features.c
+++ b/vp9/encoder/vp9_speed_features.c
@@ -270,6 +270,10 @@
sf->source_var_thresh = 360;
sf->tx_size_search_method = USE_TX_8X8;
+ // TODO(yunqingwang): max_intra_bsize is used to decide if DC_PRED mode
+ // is checked for a partition block. Later, we can try to allow large
+ // partitions to do intra mode checking.
+ sf->max_intra_bsize = BLOCK_8X8;
}
if (speed >= 7) {