Index: source/libvpx/vp8/encoder/denoising.c |
=================================================================== |
--- source/libvpx/vp8/encoder/denoising.c (revision 271012) |
+++ source/libvpx/vp8/encoder/denoising.c (working copy) |
@@ -51,17 +51,13 @@ |
* [16, 255] 6 7 |
*/ |
-int vp8_denoiser_filter_c(YV12_BUFFER_CONFIG *mc_running_avg, |
- YV12_BUFFER_CONFIG *running_avg, MACROBLOCK *signal, |
- unsigned int motion_magnitude, int y_offset, |
- int uv_offset) |
+int vp8_denoiser_filter_c(unsigned char *mc_running_avg_y, int mc_avg_y_stride, |
+ unsigned char *running_avg_y, int avg_y_stride, |
+ unsigned char *sig, int sig_stride, |
+ unsigned int motion_magnitude) |
{ |
- unsigned char *sig = signal->thismb; |
- int sig_stride = 16; |
- unsigned char *mc_running_avg_y = mc_running_avg->y_buffer + y_offset; |
- int mc_avg_y_stride = mc_running_avg->y_stride; |
- unsigned char *running_avg_y = running_avg->y_buffer + y_offset; |
- int avg_y_stride = running_avg->y_stride; |
+ unsigned char *running_avg_y_start = running_avg_y; |
+ unsigned char *sig_start = sig; |
int r, c, i; |
int sum_diff = 0; |
int adj_val[3] = {3, 4, 6}; |
@@ -130,8 +126,7 @@ |
if (abs(sum_diff) > SUM_DIFF_THRESHOLD) |
return COPY_BLOCK; |
- vp8_copy_mem16x16(running_avg->y_buffer + y_offset, avg_y_stride, |
- signal->thismb, sig_stride); |
+ vp8_copy_mem16x16(running_avg_y_start, avg_y_stride, sig_start, sig_stride); |
return FILTER_BLOCK; |
} |
@@ -285,12 +280,17 @@ |
if (decision == FILTER_BLOCK) |
{ |
+ unsigned char *mc_running_avg_y = |
+ denoiser->yv12_mc_running_avg.y_buffer + recon_yoffset; |
+ int mc_avg_y_stride = denoiser->yv12_mc_running_avg.y_stride; |
+ unsigned char *running_avg_y = |
+ denoiser->yv12_running_avg[INTRA_FRAME].y_buffer + recon_yoffset; |
+ int avg_y_stride = denoiser->yv12_running_avg[INTRA_FRAME].y_stride; |
+ |
/* Filter. */ |
- decision = vp8_denoiser_filter(&denoiser->yv12_mc_running_avg, |
- &denoiser->yv12_running_avg[INTRA_FRAME], |
- x, |
- motion_magnitude2, |
- recon_yoffset, recon_uvoffset); |
+ decision = vp8_denoiser_filter(mc_running_avg_y, mc_avg_y_stride, |
+ running_avg_y, avg_y_stride, |
+ x->thismb, 16, motion_magnitude2); |
} |
if (decision == COPY_BLOCK) |
{ |