1 __kernel void box_blur_hor
(__global const float4
*in
,
5 const int size
= 2 * radius
+ 1;
6 const int gidx
= get_global_id
(0);
7 const int gidy
= get_global_id
(1);
8 const int src_rowstride
= get_global_size
(0) + size -
1;
9 const int dst_rowstride
= get_global_size
(0);
11 const int src_offset
= gidx
+ gidy
* src_rowstride
+ radius
;
12 const int dst_offset
= gidx
+ gidy
* dst_rowstride
;
14 const int src_start_ind
= src_offset - radius
;
18 for
(int i
= 0; i < size; i++)
20 mean
+= in
[src_start_ind
+ i
];
23 out
[dst_offset] = mean / (float)(size);
26 __kernel void box_blur_ver (__global const float4 *in,
30 const int size = 2 * radius + 1;
31 const int gidx = get_global_id (0);
32 const int gidy = get_global_id (1);
33 const int src_rowstride = get_global_size (0);
34 const int dst_rowstride = get_global_size (0);
36 const int src_offset = gidx + (gidy + radius) * src_rowstride;
37 const int dst_offset = gidx + gidy * dst_rowstride;
39 const int src_start_ind = src_offset - radius * src_rowstride;
43 for (int i = 0; i < size; i++)
45 mean += in[src_start_ind + i * src_rowstride];
48 out[dst_offset] = mean
/ (float)(size);