From: Jerome Jiang Date: Mon, 14 Nov 2016 18:22:00 +0000 (-0800) Subject: vp9: Speed 8: Turn off 4x4avg for low-res non-key frames. X-Git-Tag: v1.6.1~95 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=eff68a3a4df99b8f475a1e3e5eb842bcb928fe00;p=libvpx vp9: Speed 8: Turn off 4x4avg for low-res non-key frames. Changes only affects speed = 8 for low resolutions. Metrics for avgPSNR/SSIM on rtc_derf (low resolutions) show loss of 0.5/0.6%. On Nexus 6, the encoding time is reduced by ~5.9% on average across all low-res clips. Visually little/no change on rtc_derf clips. Change-Id: I68dd50e558d72dcc1af8317d224bfae5e3bd872d --- diff --git a/vp9/encoder/vp9_encodeframe.c b/vp9/encoder/vp9_encodeframe.c index 3ab05375f..7cf7b90db 100644 --- a/vp9/encoder/vp9_encodeframe.c +++ b/vp9/encoder/vp9_encodeframe.c @@ -834,8 +834,8 @@ static int choose_partitioning(VP9_COMP *cpi, const TileInfo *const tile, } } - threshold_4x4avg = - (cpi->oxcf.speed < 8) ? thresholds[1] << 1 : thresholds[2] >> 1; + // For non keyframes, disable 4x4 average for low resolution when speed = 8 + threshold_4x4avg = (cpi->oxcf.speed < 8) ? thresholds[1] << 1 : INT64_MAX; memset(x->variance_low, 0, sizeof(x->variance_low));