20 __global
char* restrict outputImageDX,
21 __global
char* restrict outputImageDY)
29 const int column = get_global_id(0);
30 const int row = get_global_id(1);
33 const int offset = row * width + column;
41 uchar leftLoad = *(inputImage + (offset + 0));
42 uchar middleLoad = *(inputImage + (offset + 1));
43 uchar rightLoad = *(inputImage + (offset + 2));
52 short leftData = convert_short(leftLoad);
53 short middleData = convert_short(middleLoad);
54 short rightData = convert_short(rightLoad);
67 short dx = rightData - leftData;
68 short dy = rightData + leftData + middleData * (short)2;
76 leftLoad = *(inputImage + (offset + width * 1 + 0));
77 rightLoad = *(inputImage + (offset + width * 1 + 2));
79 leftData = convert_short(leftLoad);
80 rightData = convert_short(rightLoad);
87 dx += (rightData - leftData) * (
short)2;
90 leftLoad = *(inputImage + (offset + width * 2 + 0));
91 middleLoad = *(inputImage + (offset + width * 2 + 1));
92 rightLoad = *(inputImage + (offset + width * 2 + 2));
94 leftData = convert_short(leftLoad);
95 middleData = convert_short(middleLoad);
96 rightData = convert_short(rightLoad);
103 dx += rightData - leftData;
104 dy -= rightData + leftData + middleData * (short)2;
115 *(outputImageDX + offset + width + 1) = convert_char(dx >> 3);
116 *(outputImageDY + offset + width + 1) = convert_char(dy >> 3);