Update Portuguese translation
[gegl.git] / opencl / boxblur-1d.cl
blobfadb3dcb77921ee29cc6754b657789ec3b7bf0db
1 __kernel void box_blur_hor (__global const float4 *in,
2 __global float4 *out,
3 const int radius)
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;
16 float4 mean = 0.0f;
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,
27 __global float4 *out,
28 const int radius)
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;
41 float4 mean = 0.0f;
43 for (int i = 0; i < size; i++)
45 mean += in[src_start_ind + i * src_rowstride];
48 out[dst_offset] = mean / (float)(size);