Merge "vp9: speed >= 8: Skip uv variance in model_rd_sb_y_large"
This commit is contained in:
commit
997e54ea43
@ -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;
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user