Merge "vp9: speed >= 8: Skip uv variance in model_rd_sb_y_large"

This commit is contained in:
Jerome Jiang 2017-04-26 00:09:21 +00:00 committed by Gerrit Code Review
commit 997e54ea43
2 changed files with 33 additions and 23 deletions

View File

@ -948,9 +948,16 @@ static void chroma_check(VP9_COMP *cpi, MACROBLOCK *x, int bsize,
unsigned int y_sad, int is_key_frame) {
int i;
MACROBLOCKD *xd = &x->e_mbd;
if (is_key_frame) return;
// For speed >= 8, avoid the chroma check if y_sad is above threshold.
if (is_key_frame || (cpi->oxcf.speed >= 8 && y_sad > cpi->vbp_thresholds[1]))
if (cpi->oxcf.speed >= 8) {
if (y_sad > cpi->vbp_thresholds[1] &&
(!cpi->noise_estimate.enabled ||
vp9_noise_estimate_extract_level(&cpi->noise_estimate) < kMedium))
return;
}
for (i = 1; i <= 2; ++i) {
unsigned int uv_sad = UINT_MAX;

View File

@ -461,6 +461,7 @@ static void model_rd_for_sb_y_large(VP9_COMP *cpi, BLOCK_SIZE bsize,
// Transform skipping test in UV planes.
for (i = 1; i <= 2; i++) {
if (cpi->oxcf.speed < 8 || x->color_sensitivity[i - 1]) {
struct macroblock_plane *const p = &x->plane[i];
struct macroblockd_plane *const pd = &xd->plane[i];
const TX_SIZE uv_tx_size = get_uv_tx_size(xd->mi[0], pd);
@ -483,6 +484,9 @@ static void model_rd_for_sb_y_large(VP9_COMP *cpi, BLOCK_SIZE bsize,
skip_uv[j] = 1;
else
break;
} else {
skip_uv[i - 1] = 1;
}
}
// If the transform in YUV planes are skippable, the mode search checks
@ -490,7 +494,6 @@ static void model_rd_for_sb_y_large(VP9_COMP *cpi, BLOCK_SIZE bsize,
if (skip_uv[0] & skip_uv[1]) {
*early_term = 1;
}
return;
}