[FFmpeg-devel] [PATCH v3 3/3] lavfi: add deshake_opencl filter

Mark Thompson sw at jkqxz.net
Fri Aug 23 03:09:42 EEST 2019


On 08/08/2019 14:24, Jarek Samic wrote:
> ---
> 
> This filter is the subject of my GSoC project.
> 
> This is a video stabilization / deshake filter (name undetermined, feel free to discuss) that uses feature
> point matching and RANSAC to determine a camera path, smooths the camera path with a gaussian filter, and
> then applies the new path to the video.
> 
> There are a number of debug features that can be turned on (viewing point matches, viewing transform
> details, viewing average kernel execution times). See the bottom of the file.
> 
> Since the last version of the patch, I have:
> 
> * Greatly improved the performance of the match_descriptors kernel
>     * Also improved the performance of various other kernels / buffer reads with the same change
> * Tested the filter on the Intel OpenCL drivers
>     * For some reason OpenCL compilation warnings get displayed to the user on this platform; if anyone knows how to fix that, please let me know
> 
> Performance of the harris_response kernel still leaves something to be desired, but I am out of ideas currently to improve it. I am fairly certain
> it is simply caused by poor memory access patterns, but I haven't been able to find any functioning OpenCL profiling tools so I don't have any way
> of confirming that. In any case, even in its current state, the filter is faster than the existing deshake filter on both my NVIDIA GPU and my
> Intel iGPU with improved output quality.
> 
> At this point the filter is ready to be merged (as the end of GSoC is drawing near). If anyone has a few minutes to spare, please take the time
> to give this filter a try and report any bugs / issues (there is only time left to fix major, blocking bugs at this point, such as crashes and
> malformed output, but other issues are always great for future work).
> 
>  configure                       |    1 +
>  doc/filters.texi                |   69 +
>  libavfilter/Makefile            |    2 +
>  libavfilter/allfilters.c        |    1 +
>  libavfilter/opencl/deshake.cl   |  647 +++++++++
>  libavfilter/opencl_source.h     |    1 +
>  libavfilter/vf_deshake_opencl.c | 2202 +++++++++++++++++++++++++++++++
>  7 files changed, 2923 insertions(+)
>  create mode 100644 libavfilter/opencl/deshake.cl
>  create mode 100644 libavfilter/vf_deshake_opencl.c

Everything LGTM, and I did a load more testing (Intel and Mali).

I fixed two unwanted doubles, added version bump, and applied.

Thanks,

- Mark


More information about the ffmpeg-devel mailing list