[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