The OpenVX Specification  a73e458
vx_kernels.h
1 /*
2  * Copyright (c) 2012-2017 The Khronos Group Inc.
3  *
4  * Permission is hereby granted, free of charge, to any person obtaining a
5  * copy of this software and/or associated documentation files (the
6  * "Materials"), to deal in the Materials without restriction, including
7  * without limitation the rights to use, copy, modify, merge, publish,
8  * distribute, sublicense, and/or sell copies of the Materials, and to
9  * permit persons to whom the Materials are furnished to do so, subject to
10  * the following conditions:
11  *
12  * The above copyright notice and this permission notice shall be included
13  * in all copies or substantial portions of the Materials.
14  *
15  * MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS
16  * KHRONOS STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS
17  * SPECIFICATIONS AND HEADER INFORMATION ARE LOCATED AT
18  * https://www.khronos.org/registry/
19  *
20  * THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
21  * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
22  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
23  * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
24  * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
25  * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
26  * MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
27  */
28 
29 #ifndef _OPENVX_KERNELS_H_
30 #define _OPENVX_KERNELS_H_
31 
37 #ifdef __cplusplus
38 extern "C" {
39 #endif
40 
49 #define VX_LIBRARY_KHR_BASE 0x0
50 
75 #define VX_KERNEL_COLOR_CONVERT (VX_ENUM_KERNEL(VX_ID_KHRONOS, VX_LIBRARY_KHR_BASE, 0x1))
76 
85 #define VX_KERNEL_CHANNEL_EXTRACT (VX_ENUM_KERNEL(VX_ID_KHRONOS, VX_LIBRARY_KHR_BASE, 0x2))
86 
93 #define VX_KERNEL_CHANNEL_COMBINE (VX_ENUM_KERNEL(VX_ID_KHRONOS, VX_LIBRARY_KHR_BASE, 0x3))
94 
98 #define VX_KERNEL_SOBEL_3x3 (VX_ENUM_KERNEL(VX_ID_KHRONOS, VX_LIBRARY_KHR_BASE , 0x4))
99 
105 #define VX_KERNEL_MAGNITUDE (VX_ENUM_KERNEL(VX_ID_KHRONOS, VX_LIBRARY_KHR_BASE, 0x5))
106 
112 #define VX_KERNEL_PHASE (VX_ENUM_KERNEL(VX_ID_KHRONOS, VX_LIBRARY_KHR_BASE, 0x6))
113 
121 #define VX_KERNEL_SCALE_IMAGE (VX_ENUM_KERNEL(VX_ID_KHRONOS, VX_LIBRARY_KHR_BASE, 0x7))
122 
126 #define VX_KERNEL_TABLE_LOOKUP (VX_ENUM_KERNEL(VX_ID_KHRONOS, VX_LIBRARY_KHR_BASE, 0x8))
127 
131 #define VX_KERNEL_HISTOGRAM (VX_ENUM_KERNEL(VX_ID_KHRONOS, VX_LIBRARY_KHR_BASE, 0x9))
132 
136 #define VX_KERNEL_EQUALIZE_HISTOGRAM (VX_ENUM_KERNEL(VX_ID_KHRONOS, VX_LIBRARY_KHR_BASE, 0xA))
137 
141 #define VX_KERNEL_ABSDIFF (VX_ENUM_KERNEL(VX_ID_KHRONOS, VX_LIBRARY_KHR_BASE, 0xB))
142 
146 #define VX_KERNEL_MEAN_STDDEV (VX_ENUM_KERNEL(VX_ID_KHRONOS, VX_LIBRARY_KHR_BASE, 0xC))
147 
151 #define VX_KERNEL_THRESHOLD (VX_ENUM_KERNEL(VX_ID_KHRONOS, VX_LIBRARY_KHR_BASE, 0xD))
152 
156 #define VX_KERNEL_INTEGRAL_IMAGE (VX_ENUM_KERNEL(VX_ID_KHRONOS, VX_LIBRARY_KHR_BASE, 0xE))
157 
161 #define VX_KERNEL_DILATE_3x3 (VX_ENUM_KERNEL(VX_ID_KHRONOS, VX_LIBRARY_KHR_BASE, 0xF))
162 
166 #define VX_KERNEL_ERODE_3x3 (VX_ENUM_KERNEL(VX_ID_KHRONOS, VX_LIBRARY_KHR_BASE, 0x10))
167 
171 #define VX_KERNEL_MEDIAN_3x3 (VX_ENUM_KERNEL(VX_ID_KHRONOS, VX_LIBRARY_KHR_BASE, 0x11))
172 
176 #define VX_KERNEL_BOX_3x3 (VX_ENUM_KERNEL(VX_ID_KHRONOS, VX_LIBRARY_KHR_BASE, 0x12))
177 
181 #define VX_KERNEL_GAUSSIAN_3x3 (VX_ENUM_KERNEL(VX_ID_KHRONOS, VX_LIBRARY_KHR_BASE, 0x13))
182 
186 #define VX_KERNEL_CUSTOM_CONVOLUTION (VX_ENUM_KERNEL(VX_ID_KHRONOS, VX_LIBRARY_KHR_BASE, 0x14))
187 
191 #define VX_KERNEL_GAUSSIAN_PYRAMID (VX_ENUM_KERNEL(VX_ID_KHRONOS, VX_LIBRARY_KHR_BASE, 0x15))
192 
196 #define VX_KERNEL_ACCUMULATE (VX_ENUM_KERNEL(VX_ID_KHRONOS, VX_LIBRARY_KHR_BASE, 0x16))
197 
201 #define VX_KERNEL_ACCUMULATE_WEIGHTED (VX_ENUM_KERNEL(VX_ID_KHRONOS, VX_LIBRARY_KHR_BASE, 0x17))
202 
206 #define VX_KERNEL_ACCUMULATE_SQUARE (VX_ENUM_KERNEL(VX_ID_KHRONOS, VX_LIBRARY_KHR_BASE, 0x18))
207 
211 #define VX_KERNEL_MINMAXLOC (VX_ENUM_KERNEL(VX_ID_KHRONOS, VX_LIBRARY_KHR_BASE, 0x19))
212 
216 #define VX_KERNEL_CONVERTDEPTH (VX_ENUM_KERNEL(VX_ID_KHRONOS, VX_LIBRARY_KHR_BASE, 0x1A))
217 
221 #define VX_KERNEL_CANNY_EDGE_DETECTOR (VX_ENUM_KERNEL(VX_ID_KHRONOS, VX_LIBRARY_KHR_BASE, 0x1B))
222 
226 #define VX_KERNEL_AND (VX_ENUM_KERNEL(VX_ID_KHRONOS, VX_LIBRARY_KHR_BASE, 0x1C))
227 
231 #define VX_KERNEL_OR (VX_ENUM_KERNEL(VX_ID_KHRONOS, VX_LIBRARY_KHR_BASE, 0x1D))
232 
236 #define VX_KERNEL_XOR (VX_ENUM_KERNEL(VX_ID_KHRONOS, VX_LIBRARY_KHR_BASE, 0x1E))
237 
241 #define VX_KERNEL_NOT (VX_ENUM_KERNEL(VX_ID_KHRONOS, VX_LIBRARY_KHR_BASE, 0x1F))
242 
246 #define VX_KERNEL_MULTIPLY (VX_ENUM_KERNEL(VX_ID_KHRONOS, VX_LIBRARY_KHR_BASE, 0x20))
247 
251 #define VX_KERNEL_ADD (VX_ENUM_KERNEL(VX_ID_KHRONOS, VX_LIBRARY_KHR_BASE, 0x21))
252 
256 #define VX_KERNEL_SUBTRACT (VX_ENUM_KERNEL(VX_ID_KHRONOS, VX_LIBRARY_KHR_BASE, 0x22))
257 
261 #define VX_KERNEL_WARP_AFFINE (VX_ENUM_KERNEL(VX_ID_KHRONOS, VX_LIBRARY_KHR_BASE, 0x23))
262 
266 #define VX_KERNEL_WARP_PERSPECTIVE (VX_ENUM_KERNEL(VX_ID_KHRONOS, VX_LIBRARY_KHR_BASE, 0x24))
267 
271 #define VX_KERNEL_HARRIS_CORNERS (VX_ENUM_KERNEL(VX_ID_KHRONOS, VX_LIBRARY_KHR_BASE, 0x25))
272 
276 #define VX_KERNEL_FAST_CORNERS (VX_ENUM_KERNEL(VX_ID_KHRONOS, VX_LIBRARY_KHR_BASE, 0x26))
277 
281 #define VX_KERNEL_OPTICAL_FLOW_PYR_LK (VX_ENUM_KERNEL(VX_ID_KHRONOS, VX_LIBRARY_KHR_BASE, 0x27))
282 
286 #define VX_KERNEL_REMAP (VX_ENUM_KERNEL(VX_ID_KHRONOS, VX_LIBRARY_KHR_BASE, 0x28))
287 
291 #define VX_KERNEL_HALFSCALE_GAUSSIAN (VX_ENUM_KERNEL(VX_ID_KHRONOS, VX_LIBRARY_KHR_BASE, 0x29))
292 
293  /* kernel added in OpenVX 1.1 */
294 
298 #define VX_KERNEL_LAPLACIAN_PYRAMID (VX_ENUM_KERNEL(VX_ID_KHRONOS, VX_LIBRARY_KHR_BASE, 0x2A))
299 
303 #define VX_KERNEL_LAPLACIAN_RECONSTRUCT (VX_ENUM_KERNEL(VX_ID_KHRONOS, VX_LIBRARY_KHR_BASE, 0x2B))
304 
308 #define VX_KERNEL_NON_LINEAR_FILTER (VX_ENUM_KERNEL(VX_ID_KHRONOS, VX_LIBRARY_KHR_BASE, 0x2C))
309 
310  /* insert new kernels here */
313 #define VX_KERNEL_MAX_1_0 (VX_ENUM_KERNEL(VX_ID_KHRONOS, VX_LIBRARY_KHR_BASE, 0x2D))
315 #ifdef __cplusplus
316 }
317 #endif
318 
319 #endif /* _OPEN_VISION_LIBRARY_KERNELS_H_ */