| Index: source/libvpx/vp8/common/postproc.c
|
| ===================================================================
|
| --- source/libvpx/vp8/common/postproc.c (revision 292072)
|
| +++ source/libvpx/vp8/common/postproc.c (working copy)
|
| @@ -214,6 +214,7 @@
|
| x = 50 + (x - 50) * 10 / 8;
|
| return x * x / 3;
|
| }
|
| +
|
| void vp8_mbpost_proc_across_ip_c(unsigned char *src, int pitch, int rows, int cols, int flimit)
|
| {
|
| int r, c, i;
|
| @@ -226,14 +227,14 @@
|
| int sumsq = 0;
|
| int sum = 0;
|
|
|
| - for (i = -8; i<0; i++)
|
| + for (i = -8; i < 0; i++)
|
| s[i]=s[0];
|
|
|
| /* 17 avoids valgrind warning - we buffer values in c in d
|
| * and only write them when we've read 8 ahead...
|
| */
|
| - for (i = cols; i<cols+17; i++)
|
| - s[i]=s[cols-1];
|
| + for (i = 0; i < 17; i++)
|
| + s[i+cols]=s[cols-1];
|
|
|
| for (i = -8; i <= 6; i++)
|
| {
|
| @@ -264,7 +265,6 @@
|
| }
|
| }
|
|
|
| -
|
| void vp8_mbpost_proc_down_c(unsigned char *dst, int pitch, int rows, int cols, int flimit)
|
| {
|
| int r, c, i;
|
| @@ -284,8 +284,8 @@
|
| /* 17 avoids valgrind warning - we buffer values in c in d
|
| * and only write them when we've read 8 ahead...
|
| */
|
| - for (i = rows; i < rows+17; i++)
|
| - s[i*pitch]=s[(rows-1)*pitch];
|
| + for (i = 0; i < 17; i++)
|
| + s[(i+rows)*pitch]=s[(rows-1)*pitch];
|
|
|
| for (i = -8; i <= 6; i++)
|
| {
|
| @@ -385,13 +385,13 @@
|
| }
|
| #endif
|
|
|
| -#if !(CONFIG_TEMPORAL_DENOISING)
|
| void vp8_de_noise(VP8_COMMON *cm,
|
| YV12_BUFFER_CONFIG *source,
|
| YV12_BUFFER_CONFIG *post,
|
| int q,
|
| int low_var_thresh,
|
| - int flag)
|
| + int flag,
|
| + int uvfilter)
|
| {
|
| int mbr;
|
| double level = 6.0e-05 * q * q * q - .0067 * q * q + .306 * q + .0065;
|
| @@ -412,18 +412,20 @@
|
| source->y_buffer + 16 * mbr * source->y_stride,
|
| source->y_buffer + 16 * mbr * source->y_stride,
|
| source->y_stride, source->y_stride, source->y_width, limits, 16);
|
| -
|
| - vp8_post_proc_down_and_across_mb_row(
|
| - source->u_buffer + 8 * mbr * source->uv_stride,
|
| - source->u_buffer + 8 * mbr * source->uv_stride,
|
| - source->uv_stride, source->uv_stride, source->uv_width, limits, 8);
|
| - vp8_post_proc_down_and_across_mb_row(
|
| - source->v_buffer + 8 * mbr * source->uv_stride,
|
| - source->v_buffer + 8 * mbr * source->uv_stride,
|
| - source->uv_stride, source->uv_stride, source->uv_width, limits, 8);
|
| + if (uvfilter == 1) {
|
| + vp8_post_proc_down_and_across_mb_row(
|
| + source->u_buffer + 8 * mbr * source->uv_stride,
|
| + source->u_buffer + 8 * mbr * source->uv_stride,
|
| + source->uv_stride, source->uv_stride, source->uv_width, limits,
|
| + 8);
|
| + vp8_post_proc_down_and_across_mb_row(
|
| + source->v_buffer + 8 * mbr * source->uv_stride,
|
| + source->v_buffer + 8 * mbr * source->uv_stride,
|
| + source->uv_stride, source->uv_stride, source->uv_width, limits,
|
| + 8);
|
| + }
|
| }
|
| }
|
| -#endif
|
|
|
| double vp8_gaussian(double sigma, double mu, double x)
|
| {
|
|
|