From e8a4a3e2b1a4b6ff62a33ca47841617c0e75e288 Mon Sep 17 00:00:00 2001 From: Marco Date: Fri, 11 Sep 2015 11:23:26 -0700 Subject: [PATCH] Avoid scaling last_source, unless needed. Save some encoding time, for the case of spatial layers or under dynamic resizing mode. Change-Id: If4a8eb6f0376c3d2dde8465fde6bfd86ab704920 --- vp9/encoder/vp9_encoder.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/vp9/encoder/vp9_encoder.c b/vp9/encoder/vp9_encoder.c index a9622cbd8..7a4cf3cc6 100644 --- a/vp9/encoder/vp9_encoder.c +++ b/vp9/encoder/vp9_encoder.c @@ -3201,7 +3201,13 @@ static void encode_without_recode_loop(VP9_COMP *cpi, cpi->Source = vp9_scale_if_required(cm, cpi->un_scaled_source, &cpi->scaled_source); - if (cpi->unscaled_last_source != NULL) + + // Avoid scaling last_source unless its needed. + // Last source is currently only used for screen-content mode, + // or if partition_search_type == SOURCE_VAR_BASED_PARTITION. + if (cpi->unscaled_last_source != NULL && + (cpi->oxcf.content == VP9E_CONTENT_SCREEN || + cpi->sf.partition_search_type == SOURCE_VAR_BASED_PARTITION)) cpi->Last_Source = vp9_scale_if_required(cm, cpi->unscaled_last_source, &cpi->scaled_last_source);