]> granicus.if.org Git - libvpx/commitdiff
Fixed VP9 denoiser COPY_BLOCK case
authorTim Kopp <tkopp@google.com>
Fri, 13 Jun 2014 23:02:36 +0000 (16:02 -0700)
committerTim Kopp <tkopp@google.com>
Fri, 20 Jun 2014 14:18:42 +0000 (07:18 -0700)
Now copies the src to the correct location in the running average buffer.

Change-Id: I9c83c96dc7a97f42c8df16ab4a9f18b733181f34

vp9/encoder/vp9_denoiser.c

index fc939c5dce8b43d2e7eb4c3b9768634648f77e90..ff54033d003023fdd4bbc28f57d31144c58e8128 100644 (file)
@@ -93,20 +93,21 @@ void vp9_denoiser_denoise(VP9_DENOISER *denoiser, MACROBLOCK *mb,
   int decision = COPY_BLOCK;
 
   YV12_BUFFER_CONFIG avg = denoiser->running_avg_y[INTRA_FRAME];
+  YV12_BUFFER_CONFIG mc_avg = denoiser->mc_running_avg_y;
+  uint8_t *avg_start = block_start(avg.y_buffer, avg.y_stride, mi_row, mi_col);
+  uint8_t *mc_avg_start = block_start(mc_avg.y_buffer, mc_avg.y_stride,
+                                          mi_row, mi_col);
   struct buf_2d src = mb->plane[0].src;
 
-  update_running_avg(denoiser->mc_running_avg_y.y_buffer,
-                     denoiser->mc_running_avg_y.y_stride,
-                     denoiser->running_avg_y[INTRA_FRAME].y_buffer,
-                     denoiser->running_avg_y[INTRA_FRAME].y_stride,
+
+  update_running_avg(mc_avg_start, mc_avg.y_stride, avg_start, avg.y_stride,
                      mb->plane[0].src.buf, mb->plane[0].src.stride, 0, bs);
 
   if (decision == FILTER_BLOCK) {
     // TODO(tkopp)
   }
   if (decision == COPY_BLOCK) {
-    copy_block(block_start(avg.y_buffer, avg.y_stride, mi_row, mi_col),
-               avg.y_stride, src.buf, src.stride, bs);
+    copy_block(avg_start, avg.y_stride, src.buf, src.stride, bs);
   }
 }