summaryrefslogtreecommitdiff
path: root/vp9/encoder
diff options
context:
space:
mode:
authorMarco <marpan@google.com>2015-12-14 12:43:32 -0800
committerMarco <marpan@google.com>2015-12-14 12:54:10 -0800
commit6f17954f853788b02e97bbb8bf8fcb4f8c69c4a8 (patch)
treee257662bc7e7f6fb0fab0e352cd5a573ace7f817 /vp9/encoder
parente19b7df8d33c795e0daf4432315325ec445d21bd (diff)
downloadlibvpx-6f17954f853788b02e97bbb8bf8fcb4f8c69c4a8.tar
libvpx-6f17954f853788b02e97bbb8bf8fcb4f8c69c4a8.tar.gz
libvpx-6f17954f853788b02e97bbb8bf8fcb4f8c69c4a8.tar.bz2
libvpx-6f17954f853788b02e97bbb8bf8fcb4f8c69c4a8.zip
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
Diffstat (limited to 'vp9/encoder')
-rw-r--r--vp9/encoder/vp9_encodeframe.c3
1 files changed, 2 insertions, 1 deletions
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;
}