[FFmpeg-devel] [PATCH] lavfilter/vf_unsharp: add the OPENCL share buffer for the unsharp video filter

weixuan wang batmanwwx at gmail.com
Sat Jul 27 09:15:06 CEST 2013


* *

*Hi,*

* ***

*I found that there are two video filters having the OPENCL supports in the
latest trunk. The two video filters are deshake video filter and unsharp
video filter. when I used all of the two filters with the OPENCL, i find
out a idea to get a better performance of them.***

*In these OPENCL filters, they first copy the input frame buffer into the
input OPENCL buffer like this:***

*av_opencl_buffer_write_image(unsharp->opencl_ctx.cl_inbuf,***

*unsharp->opencl_ctx.cl_inbuf_size,0, in->data,
unsharp->opencl_ctx.in_plane_size,***

*unsharp->opencl_ctx.plane_num);***

*the in->data is the input frame buffer and the
unsharp->opencl_ctx.cl_inbuf is the input OPENCL buffer.***

*They use the input OPENCL buffer to run the kernel and get the output
OPENCL buffer. They then copy the output OPENCL buffer into the output
frame buffer like this:***

*av_opencl_buffer_read_image(out->data, unsharp->opencl_ctx.out_plane_size,*
**

*unsharp->opencl_ctx.plane_num, unsharp->opencl_ctx.cl_outbuf,***

*unsharp->opencl_ctx.cl_outbuf_size);***

*the out->data is the output frame buffer and the unsharp->opencl_ctx.cl_
outbuf is the output OPENCL buffer.***

*if I use two or more video filters with the OPENCL, the time of the data
copying will be very long. So I have a idea:***

*if the first video filter is using the OPENCL and the next video filter is
using the OPENCL too, we can remove the output data copying of the first
video filter and the input data copying of the next video filter. we can
directly use the output OPENCL buffer of the first video filter as the
input OPENCL buffer of the next video filter.***

*I implement a patch for my idea. This patch is implemented for the unsharp
video filter. you can run the command:” **ffmpeg -i test.mp4 -vf
"unsharp=opencl=1,unsharp=opencl=1" -y out.mpg” to test the improvement of
the performance. *

*If this patch can be accepted by community, I will continue to implement
the patch for the deshake video filter.*
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-lavfilter-vf_unsharp-add-the-OPENCL-share-buffer-for.patch
Type: application/octet-stream
Size: 11340 bytes
Desc: not available
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20130727/df8c6dfe/attachment.obj>


More information about the ffmpeg-devel mailing list