Avoid scaling last_source, unless needed.
authorMarco <marpan@chromium.org>
Fri, 11 Sep 2015 18:23:26 +0000 (11:23 -0700)
committerMarco <marpan@chromium.org>
Fri, 11 Sep 2015 18:53:25 +0000 (11:53 -0700)
Save some encoding time, for the case of spatial layers
or under dynamic resizing mode.

Change-Id: If4a8eb6f0376c3d2dde8465fde6bfd86ab704920

vp9/encoder/vp9_encoder.c

index a9622cb..7a4cf3c 100644 (file)
@@ -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);