]> granicus.if.org Git - libvpx/commitdiff
vp9_encoder: only alloc tpl stats if enabled
authorJames Zern <jzern@google.com>
Tue, 10 Jul 2018 05:56:54 +0000 (22:56 -0700)
committerJames Zern <jzern@google.com>
Tue, 10 Jul 2018 05:56:54 +0000 (22:56 -0700)
defer the allocation to post speed feature setup

Change-Id: I20713a2b1856fd5479c883d50772a2b54bcbb3bc

vp9/encoder/vp9_encoder.c

index b51c71c897bbd9243a464c69b63e9bf3486e0b3b..fc6c016bae166f80f480b2616690057cb1949f00 100644 (file)
@@ -2339,24 +2339,26 @@ VP9_COMP *vp9_create_compressor(VP9EncoderConfig *oxcf,
   }
 #endif  // !CONFIG_REALTIME_ONLY
 
-  for (frame = 0; frame < MAX_LAG_BUFFERS; ++frame) {
-    int mi_cols = mi_cols_aligned_to_sb(cm->mi_cols);
-    int mi_rows = mi_cols_aligned_to_sb(cm->mi_rows);
-
-    CHECK_MEM_ERROR(cm, cpi->tpl_stats[frame].tpl_stats_ptr,
-                    vpx_calloc(mi_rows * mi_cols,
-                               sizeof(*cpi->tpl_stats[frame].tpl_stats_ptr)));
-    cpi->tpl_stats[frame].is_valid = 1;
-    cpi->tpl_stats[frame].width = mi_cols;
-    cpi->tpl_stats[frame].height = mi_rows;
-    cpi->tpl_stats[frame].stride = mi_cols;
-    cpi->tpl_stats[frame].mi_rows = cm->mi_rows;
-    cpi->tpl_stats[frame].mi_cols = cm->mi_cols;
-  }
-
   vp9_set_speed_features_framesize_independent(cpi);
   vp9_set_speed_features_framesize_dependent(cpi);
 
+  if (cpi->sf.enable_tpl_model) {
+    for (frame = 0; frame < MAX_LAG_BUFFERS; ++frame) {
+      int mi_cols = mi_cols_aligned_to_sb(cm->mi_cols);
+      int mi_rows = mi_cols_aligned_to_sb(cm->mi_rows);
+
+      CHECK_MEM_ERROR(cm, cpi->tpl_stats[frame].tpl_stats_ptr,
+                      vpx_calloc(mi_rows * mi_cols,
+                                 sizeof(*cpi->tpl_stats[frame].tpl_stats_ptr)));
+      cpi->tpl_stats[frame].is_valid = 1;
+      cpi->tpl_stats[frame].width = mi_cols;
+      cpi->tpl_stats[frame].height = mi_rows;
+      cpi->tpl_stats[frame].stride = mi_cols;
+      cpi->tpl_stats[frame].mi_rows = cm->mi_rows;
+      cpi->tpl_stats[frame].mi_cols = cm->mi_cols;
+    }
+  }
+
   // Allocate memory to store variances for a frame.
   CHECK_MEM_ERROR(cm, cpi->source_diff_var, vpx_calloc(cm->MBs, sizeof(diff)));
   cpi->source_var_thresh = 0;