/* * JOCL - Java bindings for OpenCL * * Copyright 2009 Marco Hutter - http://www.jocl.org/ */ // A simple image convolution kernel __kernel void convolution( __global uchar4 *input, __global float *mask, __global uchar4 *output, const int2 imageSize, const int2 maskSize, const int2 maskOrigin) { int gx = get_global_id(0); int gy = get_global_id(1); if (gx >= maskOrigin.x && gy >= maskOrigin.y && gx < imageSize.x - (maskSize.x-maskOrigin.x-1) && gy < imageSize.y - (maskSize.y-maskOrigin.y-1)) { float4 sum = (float4)0; for(int mx=0; mx= 0 && gx < imageSize.x && gy >= 0 && gy < imageSize.y) { output[mul24(gy, imageSize.x)+gx] = (uchar4)0; } } }