avfilter/vf_removegrain: clip to uint16 instead to uint8
authorPaul B Mahol <onemda@gmail.com>
Fri, 10 Jul 2015 10:45:51 +0000 (10:45 +0000)
committerPaul B Mahol <onemda@gmail.com>
Fri, 10 Jul 2015 10:50:28 +0000 (10:50 +0000)
This is how original filter behaves.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
libavfilter/vf_removegrain.c
tests/ref/fate/filter-removegrain-mode-06
tests/ref/fate/filter-removegrain-mode-08

index 318f17a..77b3561 100644 (file)
@@ -167,10 +167,10 @@ static int mode06(int c, int a1, int a2, int a3, int a4, int a5, int a6, int a7,
     const int cli3 = av_clip(c, mi3, ma3);
     const int cli4 = av_clip(c, mi4, ma4);
 
-    const int c1 = av_clip_uint8((FFABS(c - cli1) << 1) + d1);
-    const int c2 = av_clip_uint8((FFABS(c - cli2) << 1) + d2);
-    const int c3 = av_clip_uint8((FFABS(c - cli3) << 1) + d3);
-    const int c4 = av_clip_uint8((FFABS(c - cli4) << 1) + d4);
+    const int c1 = av_clip_uint16((FFABS(c - cli1) << 1) + d1);
+    const int c2 = av_clip_uint16((FFABS(c - cli2) << 1) + d2);
+    const int c3 = av_clip_uint16((FFABS(c - cli3) << 1) + d3);
+    const int c4 = av_clip_uint16((FFABS(c - cli4) << 1) + d4);
 
     const int mindiff = FFMIN(FFMIN(c1, c2), FFMIN(c3, c4));
 
@@ -231,10 +231,10 @@ static int mode08(int c, int a1, int a2, int a3, int a4, int a5, int a6, int a7,
     const int cli3 = av_clip(c, mi3, ma3);
     const int cli4 = av_clip(c, mi4, ma4);
 
-    const int c1 = av_clip_uint8(FFABS(c - cli1) + (d1 << 1));
-    const int c2 = av_clip_uint8(FFABS(c - cli2) + (d2 << 1));
-    const int c3 = av_clip_uint8(FFABS(c - cli3) + (d3 << 1));
-    const int c4 = av_clip_uint8(FFABS(c - cli4) + (d4 << 1));
+    const int c1 = av_clip_uint16(FFABS(c - cli1) + (d1 << 1));
+    const int c2 = av_clip_uint16(FFABS(c - cli2) + (d2 << 1));
+    const int c3 = av_clip_uint16(FFABS(c - cli3) + (d3 << 1));
+    const int c4 = av_clip_uint16(FFABS(c - cli4) + (d4 << 1));
 
     const int mindiff = FFMIN(FFMIN(c1, c2), FFMIN(c3, c4));
 
index da55d02..8d3d318 100644 (file)
@@ -1,2 +1,2 @@
 #tb 0: 1/25
-0,          0,          0,        1,   152064, 0x19a63f92
+0,          0,          0,        1,   152064, 0x38e84065
index 5f9a1f4..3a05d10 100644 (file)
@@ -1,2 +1,2 @@
 #tb 0: 1/25
-0,          0,          0,        1,   152064, 0x820d85aa
+0,          0,          0,        1,   152064, 0x8f7c85a2