summaryrefslogtreecommitdiff
path: root/vp9
diff options
context:
space:
mode:
authorJerome Jiang <jianj@google.com>2017-04-10 13:55:35 -0700
committerJerome Jiang <jianj@google.com>2017-04-11 00:26:56 +0000
commitf16f08e55bce50f3b5200ba9ced2d044b151f8af (patch)
treeded27c7244544ce68173f5cd8c19896cfeb469a2 /vp9
parentff1fef9607354869c034ce8b40f55d8a7988727e (diff)
downloadlibvpx-f16f08e55bce50f3b5200ba9ced2d044b151f8af.tar
libvpx-f16f08e55bce50f3b5200ba9ced2d044b151f8af.tar.gz
libvpx-f16f08e55bce50f3b5200ba9ced2d044b151f8af.tar.bz2
libvpx-f16f08e55bce50f3b5200ba9ced2d044b151f8af.zip
vp9: speed >= 8: Adjust speed settings on ARM.
Set adaptive_rd_thresh to 2 when simple block yrd is not used. Fix regression caused by computing y sad without int_pro_motion_estimation on low res motion clips. Overall 0.07% quality loss on rtc_derf. Change only affects low res on speed 8. Change-Id: Ic6a188a56529f1034d6431005fb4b0e24e8a7e27
Diffstat (limited to 'vp9')
-rw-r--r--vp9/encoder/vp9_encodeframe.c2
-rw-r--r--vp9/encoder/vp9_speed_features.c5
2 files changed, 5 insertions, 2 deletions
diff --git a/vp9/encoder/vp9_encodeframe.c b/vp9/encoder/vp9_encodeframe.c
index 9b09e3891..aed934fd3 100644
--- a/vp9/encoder/vp9_encodeframe.c
+++ b/vp9/encoder/vp9_encodeframe.c
@@ -1142,7 +1142,7 @@ static int choose_partitioning(VP9_COMP *cpi, const TileInfo *const tile,
mi->mv[0].as_int = 0;
mi->interp_filter = BILINEAR;
- if (cpi->oxcf.speed >= 8)
+ if (cpi->oxcf.speed >= 8 && !low_res)
y_sad = cpi->fn_ptr[bsize].sdf(
x->plane[0].src.buf, x->plane[0].src.stride, xd->plane[0].pre[0].buf,
xd->plane[0].pre[0].stride);
diff --git a/vp9/encoder/vp9_speed_features.c b/vp9/encoder/vp9_speed_features.c
index 2e0ca5b66..f74b6b0e9 100644
--- a/vp9/encoder/vp9_speed_features.c
+++ b/vp9/encoder/vp9_speed_features.c
@@ -555,7 +555,10 @@ static void set_rt_speed_feature_framesize_independent(
}
// Since the short_circuit_low_temp_var is used, reduce the
// adaptive_rd_thresh level.
- sf->adaptive_rd_thresh = 1;
+ if (cm->width > 320 && cm->height > 240)
+ sf->adaptive_rd_thresh = 1;
+ else
+ sf->adaptive_rd_thresh = 2;
}
sf->limit_newmv_early_exit = 0;
if (cm->width > 320 && cm->height > 240) sf->use_simple_block_yrd = 1;