[FFmpeg-devel] [PATCH V2 2/2] lavfi/opencl: add nlmeans_opencl filter

Song, Ruiling ruiling.song at intel.com
Wed Apr 17 05:43:03 EEST 2019



> -----Original Message-----
> From: ffmpeg-devel [mailto:ffmpeg-devel-bounces at ffmpeg.org] On Behalf Of
> Mark Thompson
> Sent: Wednesday, April 17, 2019 5:28 AM
> To: ffmpeg-devel at ffmpeg.org
> Subject: Re: [FFmpeg-devel] [PATCH V2 2/2] lavfi/opencl: add nlmeans_opencl
> filter
> 
> On 12/04/2019 16:09, Ruiling Song wrote:
> > Signed-off-by: Ruiling Song <ruiling.song at intel.com>
> 
> I can't work out where the problem is, but there is something really weirdly
> nondeterministic going on here.
> 
> E.g.
> 
> $ ./ffmpeg_g -y -init_hw_device opencl:0.0 -i ~/video/test/jellyfish-120-mbps-
> 4k-uhd-hevc-10bit.mkv -an -filter_hw_device opencl0 -vf
> format=yuv420p,hwupload,nlmeans_opencl,hwdownload,format=yuv420p -
> frames:v 10 -f framemd5 -
> ...
> 0,          0,          0,        1, 12441600, 8b8805818076b23ae6f80ec2b5a349d4
> 0,          1,          1,        1, 12441600, 7a7fdaa083dc337cfb6af31b643f30a3
> 0,          2,          2,        1, 12441600, b10ef2a1e5125cc67e262e086f8040b5
> 0,          3,          3,        1, 12441600, c06b53ad90e0357e537df41b63d5b1dc
> 0,          4,          4,        1, 12441600, 5aa2da07703859a3dee080847dd17d46
> 0,          5,          5,        1, 12441600, 733364c6be6af825057e905a6092937d
> 0,          6,          6,        1, 12441600, 47edae2dec956a582b04babb745d26b0
> 0,          7,          7,        1, 12441600, 4e45fe8268df4298d06a17ab8e46c3e9
> 0,          8,          8,        1, 12441600, 960d722a3f8787c9191299a114c04174
> 0,          9,          9,        1, 12441600, e759c07ee4834a9cf94bfcb4128e7612
> $ ./ffmpeg_g -y -init_hw_device opencl:0.0 -i ~/video/test/jellyfish-120-mbps-
> 4k-uhd-hevc-10bit.mkv -an -filter_hw_device opencl0 -vf
> format=yuv420p,hwupload,nlmeans_opencl,hwdownload,format=yuv420p -
> frames:v 10 -f framemd5 -
> 0,          0,          0,        1, 12441600, 8b8805818076b23ae6f80ec2b5a349d4
> [Parsed_nlmeans_opencl_2 @ 0x5557ae580d00] integral image overflow
> 2157538
> 0,          1,          1,        1, 12441600, bce72e10a9f1118940c5a8392ad78ec3
> 0,          2,          2,        1, 12441600, b10ef2a1e5125cc67e262e086f8040b5
> 0,          3,          3,        1, 12441600, c06b53ad90e0357e537df41b63d5b1dc
> 0,          4,          4,        1, 12441600, 5aa2da07703859a3dee080847dd17d46
> 0,          5,          5,        1, 12441600, 733364c6be6af825057e905a6092937d
> 0,          6,          6,        1, 12441600, 47edae2dec956a582b04babb745d26b0
> 0,          7,          7,        1, 12441600, 4e45fe8268df4298d06a17ab8e46c3e9
> 0,          8,          8,        1, 12441600, 960d722a3f8787c9191299a114c04174
> 0,          9,          9,        1, 12441600, e759c07ee4834a9cf94bfcb4128e7612
> $ ./ffmpeg_g -y -init_hw_device opencl:0.0 -i ~/video/test/jellyfish-120-mbps-
> 4k-uhd-hevc-10bit.mkv -an -filter_hw_device opencl0 -vf
> format=yuv420p,hwupload,nlmeans_opencl,hwdownload,format=yuv420p -
> frames:v 10 -f framemd5 -
> 0,          0,          0,        1, 12441600, 8b8805818076b23ae6f80ec2b5a349d4
> 0,          1,          1,        1, 12441600, 7a7fdaa083dc337cfb6af31b643f30a3
> [Parsed_nlmeans_opencl_2 @ 0x557c51fbfe80] integral image overflow
> 2098545
> 0,          2,          2,        1, 12441600, 68b390535adc5cfa0f8a7942c42a47ca
> 0,          3,          3,        1, 12441600, c06b53ad90e0357e537df41b63d5b1dc
> 0,          4,          4,        1, 12441600, 5aa2da07703859a3dee080847dd17d46
> 0,          5,          5,        1, 12441600, 733364c6be6af825057e905a6092937d
> 0,          6,          6,        1, 12441600, 47edae2dec956a582b04babb745d26b0
> 0,          7,          7,        1, 12441600, 4e45fe8268df4298d06a17ab8e46c3e9
> 0,          8,          8,        1, 12441600, 960d722a3f8787c9191299a114c04174
> 0,          9,          9,        1, 12441600, e759c07ee4834a9cf94bfcb4128e7612
> 
> Frame 1 gave an overflow on the second run, and gets a different answer, then
> frame 2 in the same way on the third run?  I can't characterise when this
> happens, it seems to be pretty random with low probability.

I tried to reproduce on my SKL and KBL, with Beignet and Neo. And didn't reproduce the issue.
As I am encountering some network issue, I didn't get the video sample you provide (I am using https://4ksamples.com/ses-astra-uhd-test-2-2160p-uhdtv/ ), I can try later to download the same video as you.
May be an OpenCL driver issue? I am not sure yet. So could you provide what hardware and opencl driver version you are using? So I can do some debugging if possible.

> 
> (Input here is a 4K file from <http://jell.yfish.us/>, but I don't think it matters - I
> saw it with others sometimes as well.)
> 
> >  configure                       |   1 +
> >  doc/filters.texi                |   4 +
> >  libavfilter/Makefile            |   1 +
> >  libavfilter/allfilters.c        |   1 +
> >  libavfilter/opencl/nlmeans.cl   | 115 +++++++++
> >  libavfilter/opencl_source.h     |   1 +
> >  libavfilter/vf_nlmeans_opencl.c | 442 ++++++++++++++++++++++++++++++++
> >  7 files changed, 565 insertions(+)
> >  create mode 100644 libavfilter/opencl/nlmeans.cl
> >  create mode 100644 libavfilter/vf_nlmeans_opencl.c
> 
> Code all looks fine, as far as I can tell.
> 
> Thanks,
> 
> - Mark
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> 
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".


More information about the ffmpeg-devel mailing list