]> granicus.if.org Git - libvpx/commitdiff
vp8: for spatial resize, reallocate denoiser in vp8_allocate_comp.
authorMarco Paniconi <marpan@google.com>
Thu, 7 Aug 2014 20:53:50 +0000 (13:53 -0700)
committerMarco Paniconi <marpan@google.com>
Thu, 7 Aug 2014 20:55:32 +0000 (13:55 -0700)
Change-Id: I1827efe2126501a4a5637ee3ae85233d7526bc0e

vp8/encoder/onyx_if.c

index 91b9138bf424641400f353749c450471da2d0b0b..e93b65c0b8cc85fce48c1a7ac1d55ef286f1e37a 100644 (file)
@@ -1277,6 +1277,16 @@ void vp8_alloc_compressor_data(VP8_COMP *cpi)
 
     vpx_free(cpi->tplist);
     CHECK_MEM_ERROR(cpi->tplist, vpx_malloc(sizeof(TOKENLIST) * cm->mb_rows));
+
+#if CONFIG_TEMPORAL_DENOISING
+    if (cpi->oxcf.noise_sensitivity > 0) {
+      vp8_denoiser_free(&cpi->denoiser);
+      vp8_denoiser_allocate(&cpi->denoiser, width, height,
+                            cm->mb_rows, cm->mb_cols,
+                            ((cpi->oxcf.noise_sensitivity == 3) ?
+                            1 : 0));
+    }
+#endif
 }
 
 
@@ -2762,19 +2772,6 @@ static int resize_key_frame(VP8_COMP *cpi)
             cm->Height = new_height;
             vp8_alloc_compressor_data(cpi);
             scale_and_extend_source(cpi->un_scaled_source, cpi);
-#if CONFIG_TEMPORAL_DENOISING
-            // TODO(marpan): denoiser_allocate() is not called in
-            // vp8_alloc_compressor_data() (currently denoiser_allocate is
-            // only called in change_config()). Check if we can move this call
-            // of denoiser_free/allocate into vp8_alloc_compressor_data().
-            if (cpi->oxcf.noise_sensitivity > 0) {
-              vp8_denoiser_free(&cpi->denoiser);
-              vp8_denoiser_allocate(&cpi->denoiser, new_width, new_height,
-                                    cm->mb_rows, cm->mb_cols,
-                                    ((cpi->oxcf.noise_sensitivity == 3) ?
-                                    1 : 0));
-            }
-#endif
             return 1;
         }
     }