]> granicus.if.org Git - libvpx/commitdiff
Modify non-rd intra mode checking
authorYunqing Wang <yunqingwang@google.com>
Tue, 17 Jun 2014 23:59:28 +0000 (16:59 -0700)
committerYunqing Wang <yunqingwang@google.com>
Wed, 18 Jun 2014 18:38:44 +0000 (11:38 -0700)
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

vp9/encoder/vp9_pickmode.c
vp9/encoder/vp9_speed_features.c

index 3f4fcd1e1ac7991eca6ea6d977b2ed7df215c1a8..9f39b8dd811c700be0d007ef849b43e2efcac350 100644 (file)
@@ -469,7 +469,7 @@ int64_t vp9_pick_inter_mode(VP9_COMP *cpi, MACROBLOCK *x,
   // 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,
index 6beb8723432d1b508c7401f1bd56231a1cf6e215..83d900d4296043b12f697176a296c9ea2af9942e 100644 (file)
@@ -270,6 +270,10 @@ static void set_rt_speed_feature(VP9_COMP *cpi, SPEED_FEATURES *sf,
     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) {