summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRonald S. Bultje <rbultje@google.com>2012-07-16 16:46:46 -0700
committerRonald S. Bultje <rbultje@google.com>2012-07-18 09:39:52 -0700
commit84d2298828d668f843032834fbb42a476fa2596f (patch)
treeddf7ca3eb5f73e2e147fd6b69a2e9ba8a5391b3a
parentc6b9039fd94aede59ac1086a379955137fc8e1b8 (diff)
downloadlibvpx-84d2298828d668f843032834fbb42a476fa2596f.tar
libvpx-84d2298828d668f843032834fbb42a476fa2596f.tar.gz
libvpx-84d2298828d668f843032834fbb42a476fa2596f.tar.bz2
libvpx-84d2298828d668f843032834fbb42a476fa2596f.zip
Don't auto-default to comp-pred unless content is static.
Although it can be useful, in some cases it causes artifacts in motion- based content. Change-Id: I27bb80901020c40636e2018a8217759175a23f5b
-rw-r--r--vp8/encoder/encodeframe.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/vp8/encoder/encodeframe.c b/vp8/encoder/encodeframe.c
index ee0ed2921..52d3c8625 100644
--- a/vp8/encoder/encodeframe.c
+++ b/vp8/encoder/encodeframe.c
@@ -1318,15 +1318,13 @@ void vp8_encode_frame(VP8_COMP *cpi) {
if (frame_type == 3)
pred_type = SINGLE_PREDICTION_ONLY;
else if (cpi->rd_prediction_type_threshes[frame_type][1] >
- cpi->rd_prediction_type_threshes[frame_type][0] &&
+ cpi->rd_prediction_type_threshes[frame_type][0] &&
cpi->rd_prediction_type_threshes[frame_type][1] >
- cpi->rd_prediction_type_threshes[frame_type][2] &&
- check_dual_ref_flags(cpi))
+ cpi->rd_prediction_type_threshes[frame_type][2] &&
+ check_dual_ref_flags(cpi) && cpi->static_mb_pct == 100)
pred_type = COMP_PREDICTION_ONLY;
else if (cpi->rd_prediction_type_threshes[frame_type][0] >
- cpi->rd_prediction_type_threshes[frame_type][1] &&
- cpi->rd_prediction_type_threshes[frame_type][0] >
- cpi->rd_prediction_type_threshes[frame_type][2])
+ cpi->rd_prediction_type_threshes[frame_type][2])
pred_type = SINGLE_PREDICTION_ONLY;
else
pred_type = HYBRID_PREDICTION;