On Mon, Feb 09, 2015 at 03:41:24PM -0800, Alexey Titov wrote: > --- > libavfilter/unsharp.h | 4 ++ > libavfilter/unsharp_opencl.c | 81 +++++++++++++++++------- > libavfilter/unsharp_opencl_kernel.h | 122 > ++++++++++++++++++++++++++---------- > 3 files changed, 150 insertions(+), 57 deletions(-)
By how much is it faster ? Please add benchmark scores to the commit message > > diff --git a/libavfilter/unsharp.h b/libavfilter/unsharp.h > index c2aed64..fc651c0 100644 > --- a/libavfilter/unsharp.h > +++ b/libavfilter/unsharp.h > @@ -41,6 +41,10 @@ typedef struct { > cl_kernel kernel_chroma; > cl_mem cl_luma_mask; > cl_mem cl_chroma_mask; > + cl_mem cl_luma_mask_x; > + cl_mem cl_chroma_mask_x; > + cl_mem cl_luma_mask_y; > + cl_mem cl_chroma_mask_y; > int in_plane_size[8]; > int out_plane_size[8]; > int plane_num; > diff --git a/libavfilter/unsharp_opencl.c b/libavfilter/unsharp_opencl.c > index 5c6b5ef..4adad63 100644 > --- a/libavfilter/unsharp_opencl.c > +++ b/libavfilter/unsharp_opencl.c > @@ -87,52 +87,52 @@ end: > return ret; > } > > -static int compute_mask_matrix(cl_mem cl_mask_matrix, int step_x, int step_y) > +static int copy_separable_masks(cl_mem cl_mask_x, cl_mem cl_mask_y, int > step_x, int step_y) > { > - int i, j, ret = 0; > - uint32_t *mask_matrix, *mask_x, *mask_y; > - size_t size_matrix = sizeof(uint32_t) * (2 * step_x + 1) * (2 * step_y + > 1); > + int ret = 0; > + uint32_t *mask_x, *mask_y; > + size_t size_mask_x = sizeof(uint32_t) * (2 * step_x + 1); > + size_t size_mask_y = sizeof(uint32_t) * (2 * step_y + 1); > - mask_x = av_mallocz_array(2 * step_x + 1, sizeof(uint32_t)); > + mask_x = av_mallocz_array((2 * step_x + 1), sizeof(uint32_t)); unneeded change > if (!mask_x) { > ret = AVERROR(ENOMEM); > goto end; > } > - mask_y = av_mallocz_array(2 * step_y + 1, sizeof(uint32_t)); > + mask_y = av_mallocz_array((2 * step_y + 1), sizeof(uint32_t)); unnneeded change [...] -- Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB Awnsering whenever a program halts or runs forever is On a turing machine, in general impossible (turings halting problem). On any real computer, always possible as a real computer has a finite number of states N, and will either halt in less than N cycles or never halt.
signature.asc
Description: Digital signature
_______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel