develop/amd_openvx/openvx/include/VX/vx_compatibility.h Source File

develop/amd_openvx/openvx/include/VX/vx_compatibility.h Source File#

MIVisionX: develop/amd_openvx/openvx/include/VX/vx_compatibility.h Source File
vx_compatibility.h
1/*
2 * Copyright (c) 2012-2026 The Khronos Group Inc.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17#ifndef VX_1_0_1_NAMING_COMPATIBILITY
18#define VX_1_0_1_NAMING_COMPATIBILITY
19
20#define VX_TYPE_SCALAR_MAX (VX_TYPE_BOOL + 1)
21
22#define vx_border_mode_e vx_border_e
23#define vx_border_mode_policy_e vx_border_policy_e
24#define _vx_border_mode_t _vx_border_t
25#define vx_border_mode_t vx_border_t
26
27#define VX_ENUM_BORDER_MODE VX_ENUM_BORDER
28#define VX_BORDER_MODE_POLICY VX_BORDER_POLICY
29#define VX_BORDER_MODE_UNDEFINED VX_BORDER_UNDEFINED
30#define VX_BORDER_MODE_CONSTANT VX_BORDER_CONSTANT
31#define VX_BORDER_MODE_REPLICATE VX_BORDER_REPLICATE
32#define VX_BORDER_MODE_UNSUPPORTED_POLICY_DEFAULT_TO_UNDEFINED VX_BORDER_POLICY_DEFAULT_TO_UNDEFINED
33#define VX_BORDER_MODE_UNSUPPORTED_POLICY_RETURN_ERROR VX_BORDER_POLICY_RETURN_ERROR
34
35#define VX_REF_ATTRIBUTE_COUNT VX_REFERENCE_COUNT
36#define VX_REF_ATTRIBUTE_TYPE VX_REFERENCE_TYPE
37#define VX_REF_ATTRIBUTE_NAME VX_REFERENCE_NAME
38
39#define VX_CONTEXT_ATTRIBUTE_VENDOR_ID VX_CONTEXT_VENDOR_ID
40#define VX_CONTEXT_ATTRIBUTE_VERSION VX_CONTEXT_VERSION
41#define VX_CONTEXT_ATTRIBUTE_UNIQUE_KERNELS VX_CONTEXT_UNIQUE_KERNELS
42#define VX_CONTEXT_ATTRIBUTE_MODULES VX_CONTEXT_MODULES
43#define VX_CONTEXT_ATTRIBUTE_REFERENCES VX_CONTEXT_REFERENCES
44#define VX_CONTEXT_ATTRIBUTE_IMPLEMENTATION VX_CONTEXT_IMPLEMENTATION
45#define VX_CONTEXT_ATTRIBUTE_EXTENSIONS_SIZE VX_CONTEXT_EXTENSIONS_SIZE
46#define VX_CONTEXT_ATTRIBUTE_EXTENSIONS VX_CONTEXT_EXTENSIONS
47#define VX_CONTEXT_ATTRIBUTE_CONVOLUTION_MAXIMUM_DIMENSION VX_CONTEXT_CONVOLUTION_MAX_DIMENSION
48#define VX_CONTEXT_ATTRIBUTE_OPTICAL_FLOW_WINDOW_MAXIMUM_DIMENSION VX_CONTEXT_OPTICAL_FLOW_MAX_WINDOW_DIMENSION
49#define VX_CONTEXT_ATTRIBUTE_IMMEDIATE_BORDER_MODE VX_CONTEXT_IMMEDIATE_BORDER
50#define VX_CONTEXT_ATTRIBUTE_UNIQUE_KERNEL_TABLE VX_CONTEXT_UNIQUE_KERNEL_TABLE
51
52#define VX_KERNEL_ATTRIBUTE_PARAMETERS VX_KERNEL_PARAMETERS
53#define VX_KERNEL_ATTRIBUTE_NAME VX_KERNEL_NAME
54#define VX_KERNEL_ATTRIBUTE_ENUM VX_KERNEL_ENUM
55#define VX_KERNEL_ATTRIBUTE_LOCAL_DATA_SIZE VX_KERNEL_LOCAL_DATA_SIZE
56#define VX_KERNEL_ATTRIBUTE_LOCAL_DATA_PTR (VX_ATTRIBUTE_BASE(VX_ID_KHRONOS, VX_TYPE_KERNEL) + 0x4)
57
58#define VX_NODE_ATTRIBUTE_STATUS VX_NODE_STATUS
59#define VX_NODE_ATTRIBUTE_PERFORMANCE VX_NODE_PERFORMANCE
60#define VX_NODE_ATTRIBUTE_BORDER_MODE VX_NODE_BORDER
61#define VX_NODE_ATTRIBUTE_LOCAL_DATA_SIZE VX_NODE_LOCAL_DATA_SIZE
62#define VX_NODE_ATTRIBUTE_LOCAL_DATA_PTR VX_NODE_LOCAL_DATA_PTR
63
64#define VX_PARAMETER_ATTRIBUTE_INDEX VX_PARAMETER_INDEX
65#define VX_PARAMETER_ATTRIBUTE_DIRECTION VX_PARAMETER_DIRECTION
66#define VX_PARAMETER_ATTRIBUTE_TYPE VX_PARAMETER_TYPE
67#define VX_PARAMETER_ATTRIBUTE_STATE VX_PARAMETER_STATE
68#define VX_PARAMETER_ATTRIBUTE_REF VX_PARAMETER_REF
69
70#define VX_IMAGE_ATTRIBUTE_WIDTH VX_IMAGE_WIDTH
71#define VX_IMAGE_ATTRIBUTE_HEIGHT VX_IMAGE_HEIGHT
72#define VX_IMAGE_ATTRIBUTE_FORMAT VX_IMAGE_FORMAT
73#define VX_IMAGE_ATTRIBUTE_PLANES VX_IMAGE_PLANES
74#define VX_IMAGE_ATTRIBUTE_SPACE VX_IMAGE_SPACE
75#define VX_IMAGE_ATTRIBUTE_RANGE VX_IMAGE_RANGE
76#define VX_IMAGE_ATTRIBUTE_SIZE VX_IMAGE_SIZE
77
78#define VX_SCALAR_ATTRIBUTE_TYPE VX_SCALAR_TYPE
79
80#define VX_GRAPH_ATTRIBUTE_NUMNODES VX_GRAPH_NUMNODES
81#define VX_GRAPH_ATTRIBUTE_STATUS (VX_ATTRIBUTE_BASE(VX_ID_KHRONOS, VX_TYPE_GRAPH) + 0x1)
82#define VX_GRAPH_ATTRIBUTE_PERFORMANCE VX_GRAPH_PERFORMANCE
83#define VX_GRAPH_ATTRIBUTE_NUMPARAMETERS VX_GRAPH_NUMPARAMETERS
84
85#define VX_LUT_ATTRIBUTE_TYPE VX_LUT_TYPE
86#define VX_LUT_ATTRIBUTE_COUNT VX_LUT_COUNT
87#define VX_LUT_ATTRIBUTE_SIZE VX_LUT_SIZE
88
89#define VX_DISTRIBUTION_ATTRIBUTE_DIMENSIONS VX_DISTRIBUTION_DIMENSIONS
90#define VX_DISTRIBUTION_ATTRIBUTE_OFFSET VX_DISTRIBUTION_OFFSET
91#define VX_DISTRIBUTION_ATTRIBUTE_RANGE VX_DISTRIBUTION_RANGE
92#define VX_DISTRIBUTION_ATTRIBUTE_BINS VX_DISTRIBUTION_BINS
93#define VX_DISTRIBUTION_ATTRIBUTE_WINDOW VX_DISTRIBUTION_WINDOW
94#define VX_DISTRIBUTION_ATTRIBUTE_SIZE VX_DISTRIBUTION_SIZE
95
96#define VX_THRESHOLD_ATTRIBUTE_TYPE VX_THRESHOLD_TYPE
97#define VX_THRESHOLD_ATTRIBUTE_THRESHOLD_VALUE VX_THRESHOLD_THRESHOLD_VALUE
98#define VX_THRESHOLD_ATTRIBUTE_THRESHOLD_LOWER VX_THRESHOLD_THRESHOLD_LOWER
99#define VX_THRESHOLD_ATTRIBUTE_THRESHOLD_UPPER VX_THRESHOLD_THRESHOLD_UPPER
100#define VX_THRESHOLD_ATTRIBUTE_TRUE_VALUE VX_THRESHOLD_TRUE_VALUE
101#define VX_THRESHOLD_ATTRIBUTE_FALSE_VALUE VX_THRESHOLD_FALSE_VALUE
102#define VX_THRESHOLD_ATTRIBUTE_DATA_TYPE VX_THRESHOLD_DATA_TYPE
103
104#define VX_MATRIX_ATTRIBUTE_TYPE VX_MATRIX_TYPE
105#define VX_MATRIX_ATTRIBUTE_ROWS VX_MATRIX_ROWS
106#define VX_MATRIX_ATTRIBUTE_COLUMNS VX_MATRIX_COLUMNS
107#define VX_MATRIX_ATTRIBUTE_SIZE VX_MATRIX_SIZE
108
109#define VX_CONVOLUTION_ATTRIBUTE_ROWS VX_CONVOLUTION_ROWS
110#define VX_CONVOLUTION_ATTRIBUTE_COLUMNS VX_CONVOLUTION_COLUMNS
111#define VX_CONVOLUTION_ATTRIBUTE_SCALE VX_CONVOLUTION_SCALE
112#define VX_CONVOLUTION_ATTRIBUTE_SIZE VX_CONVOLUTION_SIZE
113
114#define VX_PYRAMID_ATTRIBUTE_LEVELS VX_PYRAMID_LEVELS
115#define VX_PYRAMID_ATTRIBUTE_SCALE VX_PYRAMID_SCALE
116#define VX_PYRAMID_ATTRIBUTE_WIDTH VX_PYRAMID_WIDTH
117#define VX_PYRAMID_ATTRIBUTE_HEIGHT VX_PYRAMID_HEIGHT
118#define VX_PYRAMID_ATTRIBUTE_FORMAT VX_PYRAMID_FORMAT
119
120#define VX_REMAP_ATTRIBUTE_SOURCE_WIDTH VX_REMAP_SOURCE_WIDTH
121#define VX_REMAP_ATTRIBUTE_SOURCE_HEIGHT VX_REMAP_SOURCE_HEIGHT
122#define VX_REMAP_ATTRIBUTE_DESTINATION_WIDTH VX_REMAP_DESTINATION_WIDTH
123#define VX_REMAP_ATTRIBUTE_DESTINATION_HEIGHT VX_REMAP_DESTINATION_HEIGHT
124
125#define VX_ARRAY_ATTRIBUTE_ITEMTYPE VX_ARRAY_ITEMTYPE
126#define VX_ARRAY_ATTRIBUTE_NUMITEMS VX_ARRAY_NUMITEMS
127#define VX_ARRAY_ATTRIBUTE_CAPACITY VX_ARRAY_CAPACITY
128#define VX_ARRAY_ATTRIBUTE_ITEMSIZE VX_ARRAY_ITEMSIZE
129
130#define VX_DELAY_ATTRIBUTE_TYPE VX_DELAY_TYPE
131#define VX_DELAY_ATTRIBUTE_SLOTS VX_DELAY_SLOTS
132
133#define VX_INTERPOLATION_TYPE_AREA VX_INTERPOLATION_AREA
134#define VX_INTERPOLATION_TYPE_BILINEAR VX_INTERPOLATION_BILINEAR
135#define VX_INTERPOLATION_TYPE_NEAREST_NEIGHBOR VX_INTERPOLATION_NEAREST_NEIGHBOR
136
137#define VX_IMAGE_SIZE (VX_ATTRIBUTE_BASE(VX_ID_KHRONOS, VX_TYPE_IMAGE) + 0x6)
138
139#define VX_META_FORMAT_ATTRIBUTE_DELTA_RECTANGLE (VX_ATTRIBUTE_BASE(VX_ID_KHRONOS, VX_TYPE_META_FORMAT) + 0x0)
140#define VX_HINT_SERIALIZE (VX_ENUM_BASE(VX_ID_KHRONOS, VX_ENUM_HINT) + 0x0)
141
142#define vx_import_type_e vx_memory_type_e
143#define VX_ENUM_IMPORT_MEM VX_ENUM_MEMORY_TYPE
144#define VX_IMPORT_TYPE_NONE VX_MEMORY_TYPE_NONE
145#define VX_IMPORT_TYPE_HOST VX_MEMORY_TYPE_HOST
146
147#define VX_TYPE_OBJECT_MAX VX_TYPE_KHRONOS_OBJECT_END
148#define VX_TYPE_STRUCT_MAX VX_TYPE_KHRONOS_STRUCT_MAX
149
150#define VX_KERNEL_INVALID (VX_KERNEL_BASE(VX_ID_KHRONOS, VX_LIBRARY_KHR_BASE) + 0x0)
151#define VX_KERNEL_ACCUMULATE (VX_KERNEL_BASE(VX_ID_KHRONOS, VX_LIBRARY_KHR_BASE) + 0x16)
152#define VX_KERNEL_ACCUMULATE_WEIGHTED (VX_KERNEL_BASE(VX_ID_KHRONOS, VX_LIBRARY_KHR_BASE) + 0x17)
153#define VX_KERNEL_ACCUMULATE_SQUARE (VX_KERNEL_BASE(VX_ID_KHRONOS, VX_LIBRARY_KHR_BASE) + 0x18)
154#define VX_KERNEL_NORMALIZATION_LAYER (VX_KERNEL_BASE(VX_ID_KHRONOS, VX_LIBRARY_KHR_NN_EXTENSION) + 0x4)
155
156#define VX_THRESHOLD_THRESHOLD_VALUE (VX_ATTRIBUTE_BASE(VX_ID_KHRONOS, VX_TYPE_THRESHOLD) + 0x1)
157#define VX_THRESHOLD_THRESHOLD_LOWER (VX_ATTRIBUTE_BASE(VX_ID_KHRONOS, VX_TYPE_THRESHOLD) + 0x2)
158#define VX_THRESHOLD_THRESHOLD_UPPER (VX_ATTRIBUTE_BASE(VX_ID_KHRONOS, VX_TYPE_THRESHOLD) + 0x3)
159#define VX_THRESHOLD_TRUE_VALUE (VX_ATTRIBUTE_BASE(VX_ID_KHRONOS, VX_TYPE_THRESHOLD) + 0x4)
160#define VX_THRESHOLD_FALSE_VALUE (VX_ATTRIBUTE_BASE(VX_ID_KHRONOS, VX_TYPE_THRESHOLD) + 0x5)
161#define VX_THRESHOLD_DATA_TYPE (VX_ATTRIBUTE_BASE(VX_ID_KHRONOS, VX_TYPE_THRESHOLD) + 0x6)
162
163#define VX_BIDIRECTIONAL (VX_ENUM_BASE(VX_ID_KHRONOS, VX_ENUM_DIRECTION) + 0x2)
164
165
166typedef vx_status(VX_CALLBACK *vx_kernel_input_validate_f)(vx_node node, vx_uint32 index);
167
168typedef vx_status(VX_CALLBACK *vx_kernel_output_validate_f)(vx_node node, vx_uint32 index, vx_meta_format meta);
169
176
177#ifdef __cplusplus
178extern "C" {
179#endif
180
181VX_API_ENTRY vx_kernel VX_API_CALL vxAddKernel(vx_context context,
182 const vx_char name[VX_MAX_KERNEL_NAME],
183 vx_enum enumeration,
184 vx_kernel_f func_ptr,
185 vx_uint32 numParams,
186 vx_kernel_input_validate_f input,
187 vx_kernel_output_validate_f output,
190
191VX_API_ENTRY vx_size VX_API_CALL vxComputeImagePatchSize(vx_image image,
192 const vx_rectangle_t *rect,
193 vx_uint32 plane_index);
194
195VX_API_ENTRY vx_status VX_API_CALL vxAccessImagePatch(vx_image image,
196 const vx_rectangle_t *rect,
197 vx_uint32 plane_index,
199 void **ptr,
200 vx_enum usage);
201
202VX_API_ENTRY vx_status VX_API_CALL vxCommitImagePatch(vx_image image,
203 const vx_rectangle_t *rect,
204 vx_uint32 plane_index,
205 const vx_imagepatch_addressing_t *addr,
206 const void *ptr);
207
208VX_API_ENTRY vx_status VX_API_CALL vxAccessArrayRange(vx_array arr, vx_size start, vx_size end, vx_size *stride, void **ptr, vx_enum usage);
209
210VX_API_ENTRY vx_status VX_API_CALL vxCommitArrayRange(vx_array arr, vx_size start, vx_size end, const void *ptr);
211
212VX_API_ENTRY vx_status VX_API_CALL vxAccessDistribution(vx_distribution distribution, void **ptr, vx_enum usage);
213
214VX_API_ENTRY vx_status VX_API_CALL vxCommitDistribution(vx_distribution distribution, const void * ptr);
215
216VX_API_ENTRY vx_status VX_API_CALL vxAccessLUT(vx_lut lut, void **ptr, vx_enum usage);
217
218VX_API_ENTRY vx_status VX_API_CALL vxCommitLUT(vx_lut lut, const void *ptr);
219
220VX_API_ENTRY vx_status VX_API_CALL vxReadMatrix(vx_matrix mat, void *array);
221
222VX_API_ENTRY vx_status VX_API_CALL vxWriteMatrix(vx_matrix mat, const void *array);
223
224VX_API_ENTRY vx_status VX_API_CALL vxReadConvolutionCoefficients(vx_convolution conv, vx_int16 *array);
225
226VX_API_ENTRY vx_status VX_API_CALL vxWriteConvolutionCoefficients(vx_convolution conv, const vx_int16 *array);
227
228VX_API_ENTRY vx_status VX_API_CALL vxReadScalarValue(vx_scalar ref, void *ptr);
229
230VX_API_ENTRY vx_status VX_API_CALL vxWriteScalarValue(vx_scalar ref, const void *ptr);
231
232VX_API_ENTRY vx_status VX_API_CALL vxSetRemapPoint(vx_remap table, vx_uint32 dst_x, vx_uint32 dst_y, vx_float32 src_x,vx_float32 src_y);
233
234VX_API_ENTRY vx_status VX_API_CALL vxGetRemapPoint(vx_remap table, vx_uint32 dst_x, vx_uint32 dst_y, vx_float32 *src_x, vx_float32 *src_y);
235
236VX_API_ENTRY vx_threshold VX_API_CALL vxCreateThreshold(vx_context c, vx_enum thresh_type, vx_enum data_type);
237
238VX_API_ENTRY vx_node VX_API_CALL vxAccumulateImageNode(vx_graph graph, vx_image input, vx_image accum);
239
240VX_API_ENTRY vx_node VX_API_CALL vxAccumulateWeightedImageNode(vx_graph graph, vx_image input, vx_scalar alpha, vx_image accum);
241
242VX_API_ENTRY vx_node VX_API_CALL vxAccumulateSquareImageNode(vx_graph graph, vx_image input, vx_scalar shift, vx_image accum);
243
244VX_API_ENTRY vx_status VX_API_CALL vxuAccumulateImage(vx_context context, vx_image input, vx_image accum);
245
246VX_API_ENTRY vx_status VX_API_CALL vxuAccumulateWeightedImage(vx_context context, vx_image input, vx_scalar alpha, vx_image accum);
247
248VX_API_ENTRY vx_status VX_API_CALL vxuAccumulateSquareImage(vx_context context, vx_image input, vx_scalar shift, vx_image accum);
249
250VX_API_ENTRY vx_node VX_API_CALL vxNormalizationLayer(vx_graph graph, vx_tensor inputs, vx_enum type,
251 vx_size normalization_size,
252 vx_float32 alpha,
253 vx_float32 beta,
254 vx_tensor outputs);
255
256#ifdef __cplusplus
257}
258#endif
259
260#endif /* VX_1_0_1_NAMING_COMPATIBILITY */
Definition vx_compatibility.h:170
vx_int32 delta_end_y
The change in the end y.
Definition vx_compatibility.h:174
vx_int32 delta_start_x
The change in the start x.
Definition vx_compatibility.h:171
vx_int32 delta_start_y
The change in the start y.
Definition vx_compatibility.h:172
vx_int32 delta_end_x
The change in the end x.
Definition vx_compatibility.h:173
The addressing image patch structure is used by the Host only to address pixels in an image patch....
Definition vx_types.h:1582
The rectangle data structure that is shared with the users. The area of the rectangle can be computed...
Definition vx_types.h:1711
#define VX_MAX_KERNEL_NAME
Defines the length of a kernel name string to be added to OpenVX, including the trailing zero.
Definition vx.h:41
struct _vx_convolution * vx_convolution
The Convolution Object. A user-defined convolution kernel of MxM elements.
Definition vx_types.h:271
struct _vx_context * vx_context
An opaque reference to the implementation context.
Definition vx_types.h:225
struct _vx_scalar * vx_scalar
An opaque reference to a scalar.
Definition vx_types.h:182
uint32_t vx_uint32
A 32-bit unsigned value.
Definition vx_types.h:89
struct _vx_threshold * vx_threshold
The Threshold Object. A thresholding object contains the types and limit values of the thresholding r...
Definition vx_types.h:265
int16_t vx_int16
A 16-bit signed value.
Definition vx_types.h:104
struct _vx_kernel * vx_kernel
An opaque reference to the descriptor of a kernel.
Definition vx_types.h:197
size_t vx_size
A wrapper of size_t to keep the naming convention uniform.
Definition vx_types.h:164
struct _vx_remap * vx_remap
The remap table Object. A remap table contains per-pixel mapping of output pixels to input pixels.
Definition vx_types.h:277
struct _vx_tensor * vx_tensor
The multidimensional data object (Tensor).
Definition vx_types.h:294
struct _vx_lut * vx_lut
The Look-Up Table (LUT) Object.
Definition vx_types.h:239
struct _vx_matrix * vx_matrix
The Matrix Object. An MxN matrix of some unit type.
Definition vx_types.h:252
vx_status(VX_CALLBACK * vx_kernel_initialize_f)(vx_node node, const vx_reference *parameters, vx_uint32 num)
The pointer to the kernel initializer. If the host code requires a call to initialize data once all t...
Definition vx_types.h:1837
vx_enum vx_status
A formal status type with known fixed size.
Definition vx_types.h:453
vx_status(VX_CALLBACK * vx_kernel_deinitialize_f)(vx_node node, const vx_reference *parameters, vx_uint32 num)
The pointer to the kernel deinitializer. If the host code requires a call to deinitialize data during...
Definition vx_types.h:1848
int32_t vx_enum
Sets the standard enumeration type size to be a fixed quantity.
Definition vx_types.h:159
struct _vx_graph * vx_graph
An opaque reference to a graph.
Definition vx_types.h:218
struct _vx_node * vx_node
An opaque reference to a kernel node.
Definition vx_types.h:211
int32_t vx_int32
A 32-bit signed value.
Definition vx_types.h:109
char vx_char
An 8-bit ASCII character.
Definition vx_types.h:74
#define VX_API_CALL
Defines calling convention for OpenVX API.
Definition vx_types.h:60
struct _vx_array * vx_array
The Array Object. Array is a strongly-typed container for other data structures.
Definition vx_types.h:282
vx_status(VX_CALLBACK * vx_kernel_f)(vx_node node, const vx_reference *parameters, vx_uint32 num)
The pointer to the Host side kernel.
Definition vx_types.h:1826
struct _vx_meta_format * vx_meta_format
This object is used by output validation functions to specify the meta data of the expected output da...
Definition vx_types.h:330
struct _vx_distribution * vx_distribution
The Distribution object. This has a user-defined number of bins over a user-defined range (within a u...
Definition vx_types.h:246
float vx_float32
A 32-bit float value.
Definition vx_types.h:136
#define VX_CALLBACK
Defines calling convention for user callbacks.
Definition vx_types.h:67
struct _vx_image * vx_image
An opaque reference to an image.
Definition vx_types.h:189