[FFmpeg-cvslog] bwdif_vulkan: clamp the temporarily interpolated sample spatially

Lynne git at videolan.org
Tue Jul 4 01:53:29 EEST 2023


ffmpeg | branch: master | Lynne <dev at lynne.ee> | Tue Jul  4 00:48:09 2023 +0200| [9ff834c2a0dbbe5544ec09b56d077a3b21f728c0] | committer: Lynne

bwdif_vulkan: clamp the temporarily interpolated sample spatially

This makes the filter output match that of the C version.
It was left intentionally while we figured out if it was better
or not, and while it makes certain samples better, it makes static
samples jump around slightly.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=9ff834c2a0dbbe5544ec09b56d077a3b21f728c0
---

 libavfilter/vf_bwdif_vulkan.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/libavfilter/vf_bwdif_vulkan.c b/libavfilter/vf_bwdif_vulkan.c
index 1fc74d1544..db916b22cd 100644
--- a/libavfilter/vf_bwdif_vulkan.c
+++ b/libavfilter/vf_bwdif_vulkan.c
@@ -86,8 +86,7 @@ static const char filter_fn[] = {
     C(0,                                                                                              )
     C(1,     bvec4 interpolate_cnd1 = greaterThan(abs(fc - fe), temp_diff[0]);                        )
     C(1,     vec4 interpol = mix(interpolate_cur, interpolate_all, interpolate_cnd1);                 )
-    /* Cliping interpol between [fd - diff, fd + diff] is intentionally left out.
-     * Removing the clipping increases quality. TODO: research and fix the C version to match this. */
+    C(1,     interpol = clamp(interpol, fd - diff, fd + diff);                                        )
     C(1,     return mix(interpol, fd, diff_mask);                                                     )
     C(0, }                                                                                            )
 };



More information about the ffmpeg-cvslog mailing list