Commit 7e7d820d authored by Marco's avatar Marco Committed by Jerome Jiang

vp9: Non-rd pickmode: use simple block_yrd under some conditons.

For speed 8 only.
3% speed up for QVGA and 6.3% for VGA on Nexus 6.
~3% avgPSNR decrease on rtc_derf and 2.9% on rtc.

Disabled for now.

Change-Id: I70133f1f6c804d663d594df437bfe7fdb0030d6a
parent 1e224dcb
......@@ -651,6 +651,17 @@ static void block_yrd(VP9_COMP *cpi, MACROBLOCK *x, RD_COST *this_rdc,
}
#endif
if (cpi->sf.use_simple_block_yrd && cpi->common.frame_type != KEY_FRAME &&
!cyclic_refresh_segment_id_boosted(xd->mi[0]->segment_id)) {
unsigned int var_y, sse_y;
(void)tx_size;
model_rd_for_sb_y(cpi, bsize, x, xd, &this_rdc->rate, &this_rdc->dist,
&var_y, &sse_y);
*sse = INT_MAX;
*skippable = 0;
return;
}
(void)cpi;
// The max tx_size passed in is TX_16X16.
......
......@@ -313,6 +313,7 @@ static void set_rt_speed_feature(VP9_COMP *cpi, SPEED_FEATURES *sf, int speed,
sf->allow_acl = 0;
sf->copy_partition_flag = 0;
sf->use_source_sad = 0;
sf->use_simple_block_yrd = 0;
if (speed >= 1) {
sf->allow_txfm_domain_distortion = 1;
......@@ -555,6 +556,7 @@ static void set_rt_speed_feature(VP9_COMP *cpi, SPEED_FEATURES *sf, int speed,
}
}
sf->limit_newmv_early_exit = 0;
sf->use_simple_block_yrd = 0;
}
}
......
......@@ -482,6 +482,8 @@ typedef struct SPEED_FEATURES {
// Compute the source sad for every superblock of the frame,
// prior to encoding the frame, to be used to bypass some encoder decisions.
int use_source_sad;
int use_simple_block_yrd;
} SPEED_FEATURES;
struct VP9_COMP;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment