From 6f17954f853788b02e97bbb8bf8fcb4f8c69c4a8 Mon Sep 17 00:00:00 2001 From: Marco Date: Mon, 14 Dec 2015 12:43:32 -0800 Subject: Non-rd variance partition: Adjust logic for 32->16 force split. Lower the threshold for splitting 32x32->16x16 based on average variance, and add lower bound condition for this split to occur. This prevents unneccassry splitting for areas with very low variance. Change-Id: Ibeb33b3d993632c2019f296eb87ef3b7e3568189 --- vp9/encoder/vp9_encodeframe.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'vp9/encoder') diff --git a/vp9/encoder/vp9_encodeframe.c b/vp9/encoder/vp9_encodeframe.c index 1606b16a2..85fce1ce4 100644 --- a/vp9/encoder/vp9_encodeframe.c +++ b/vp9/encoder/vp9_encodeframe.c @@ -923,7 +923,8 @@ static int choose_partitioning(VP9_COMP *cpi, get_variance(&vt.split[i].part_variances.none); if (vt.split[i].part_variances.none.variance > thresholds[1] || (!is_key_frame && - vt.split[i].part_variances.none.variance > (3 * avg_16x16[i]) >> 2)) { + vt.split[i].part_variances.none.variance > (thresholds[1] >> 1) && + vt.split[i].part_variances.none.variance > (avg_16x16[i] >> 1))) { force_split[i + 1] = 1; force_split[0] = 1; } -- cgit v1.2.3