The OpenVX Specification  a73e458
vx_types.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_TYPES_H_
30 #define _OPENVX_TYPES_H_
31 
37 #include <stdint.h>
38 #include <stddef.h>
39 
61 #ifndef VX_API_ENTRY
62 #define VX_API_ENTRY
63 #endif
64 #ifndef VX_API_CALL
65 #if defined(_WIN32)
66 #define VX_API_CALL __stdcall
67 #else
68 #define VX_API_CALL
69 #endif
70 #endif
71 #ifndef VX_CALLBACK
72 #if defined(_WIN32)
73 #define VX_CALLBACK __stdcall
74 #else
75 #define VX_CALLBACK
76 #endif
77 #endif
78 
82 typedef char vx_char;
83 
87 typedef uint8_t vx_uint8;
88 
92 typedef uint16_t vx_uint16;
93 
97 typedef uint32_t vx_uint32;
98 
102 typedef uint64_t vx_uint64;
103 
107 typedef int8_t vx_int8;
108 
112 typedef int16_t vx_int16;
113 
117 typedef int32_t vx_int32;
118 
122 typedef int64_t vx_int64;
123 
124 typedef uint32_t vx_bitfield;
125 
126 #if defined(EXPERIMENTAL_PLATFORM_SUPPORTS_16_FLOAT)
127 
131 typedef hfloat vx_float16;
132 #endif
133 
137 typedef float vx_float32;
138 
142 typedef double vx_float64;
143 
153 typedef struct _vx_reference *vx_reference;
154 
160 typedef int32_t vx_enum;
161 
165 typedef size_t vx_size;
166 
170 typedef uint32_t vx_df_image;
171 
175 typedef uintptr_t vx_map_id;
176 
183 typedef struct _vx_scalar *vx_scalar;
184 
190 typedef struct _vx_image *vx_image;
191 
198 typedef struct _vx_kernel *vx_kernel;
199 
205 typedef struct _vx_parameter *vx_parameter;
206 
212 typedef struct _vx_node *vx_node;
213 
219 typedef struct _vx_graph *vx_graph;
220 
226 typedef struct _vx_context *vx_context;
227 
234 typedef struct _vx_delay *vx_delay;
235 
240 typedef struct _vx_lut *vx_lut;
241 
247 typedef struct _vx_distribution *vx_distribution;
248 
253 typedef struct _vx_matrix *vx_matrix;
254 
259 typedef struct _vx_pyramid *vx_pyramid;
260 
266 typedef struct _vx_threshold *vx_threshold;
267 
272 typedef struct _vx_convolution *vx_convolution;
273 
278 typedef struct _vx_remap *vx_remap;
279 
283 typedef struct _vx_array *vx_array;
284 
288 typedef struct _vx_object_array *vx_object_array;
289 
301 typedef enum _vx_bool_e {
306 } vx_bool;
307 
317 typedef struct _vx_meta_format* vx_meta_format;
318 
325 #define VX_TYPE_INVALID 0x000
326 #define VX_TYPE_CHAR 0x001
327 #define VX_TYPE_INT8 0x002
328 #define VX_TYPE_UINT8 0x003
329 #define VX_TYPE_INT16 0x004
330 #define VX_TYPE_UINT16 0x005
331 #define VX_TYPE_INT32 0x006
332 #define VX_TYPE_UINT32 0x007
333 #define VX_TYPE_INT64 0x008
334 #define VX_TYPE_UINT64 0x009
335 #define VX_TYPE_FLOAT32 0x00A
336 #define VX_TYPE_FLOAT64 0x00B
337 #define VX_TYPE_ENUM 0x00C
338 #define VX_TYPE_SIZE 0x00D
339 #define VX_TYPE_DF_IMAGE 0x00E
340 #if defined(EXPERIMENTAL_PLATFORM_SUPPORTS_16_FLOAT)
341 #define VX_TYPE_FLOAT16 0x00F
342 #endif
343 #define VX_TYPE_BOOL 0x010
345  /* add new scalar types here */
346 
347 #define VX_TYPE_SCALAR_MAX (VX_TYPE_BOOL+1)
349 #define VX_TYPE_RECTANGLE 0x020
350 #define VX_TYPE_KEYPOINT 0x021
351 #define VX_TYPE_COORDINATES2D 0x022
352 #define VX_TYPE_COORDINATES3D 0x023
354 #define VX_TYPE_USER_STRUCT_START 0x100
355 #define VX_TYPE_VENDOR_STRUCT_START 0x400
356 #define VX_TYPE_KHRONOS_OBJECT_START 0x800
357 #define VX_TYPE_VENDOR_OBJECT_START 0xC00
359 #define VX_TYPE_KHRONOS_STRUCT_MAX VX_TYPE_USER_STRUCT_START - 1
361 #define VX_TYPE_USER_STRUCT_END VX_TYPE_VENDOR_STRUCT_START - 1
362 #define VX_TYPE_VENDOR_STRUCT_END VX_TYPE_KHRONOS_OBJECT_START - 1
363 #define VX_TYPE_KHRONOS_OBJECT_END VX_TYPE_VENDOR_OBJECT_START - 1
364 #define VX_TYPE_VENDOR_OBJECT_END 0xFFF
367 #define VX_TYPE_REFERENCE 0x800
368 #define VX_TYPE_CONTEXT 0x801
369 #define VX_TYPE_GRAPH 0x802
370 #define VX_TYPE_NODE 0x803
371 #define VX_TYPE_KERNEL 0x804
372 #define VX_TYPE_PARAMETER 0x805
373 #define VX_TYPE_DELAY 0x806
374 #define VX_TYPE_LUT 0x807
375 #define VX_TYPE_DISTRIBUTION 0x808
376 #define VX_TYPE_PYRAMID 0x809
377 #define VX_TYPE_THRESHOLD 0x80A
378 #define VX_TYPE_MATRIX 0x80B
379 #define VX_TYPE_CONVOLUTION 0x80C
380 #define VX_TYPE_SCALAR 0x80D
381 #define VX_TYPE_ARRAY 0x80E
382 #define VX_TYPE_IMAGE 0x80F
383 #define VX_TYPE_REMAP 0x810
384 #define VX_TYPE_ERROR 0x811
385 #define VX_TYPE_META_FORMAT 0x812
386 #define VX_TYPE_OBJECT_ARRAY 0x813
388  /* \todo add new object types here */
389 
400 #define VX_STATUS_MIN -25
401  /* add new codes here */
402 #define VX_ERROR_REFERENCE_NONZERO -24
403 #define VX_ERROR_MULTIPLE_WRITERS -23
404 #define VX_ERROR_GRAPH_ABANDONED -22
405 #define VX_ERROR_GRAPH_SCHEDULED -21
406 #define VX_ERROR_INVALID_SCOPE -20
407 #define VX_ERROR_INVALID_NODE -19
408 #define VX_ERROR_INVALID_GRAPH -18
409 #define VX_ERROR_INVALID_TYPE -17
410 #define VX_ERROR_INVALID_VALUE -16
411 #define VX_ERROR_INVALID_DIMENSION -15
412 #define VX_ERROR_INVALID_FORMAT -14
413 #define VX_ERROR_INVALID_LINK -13
414 #define VX_ERROR_INVALID_REFERENCE -12
415 #define VX_ERROR_INVALID_MODULE -11
416 #define VX_ERROR_INVALID_PARAMETERS -10
417 #define VX_ERROR_OPTIMIZED_AWAY -9
418 #define VX_ERROR_NO_MEMORY -8
419 #define VX_ERROR_NO_RESOURCES -7
420 #define VX_ERROR_NOT_COMPATIBLE -6
421 #define VX_ERROR_NOT_ALLOCATED -5
422 #define VX_ERROR_NOT_SUFFICIENT -4
423 #define VX_ERROR_NOT_SUPPORTED -3
424 #define VX_ERROR_NOT_IMPLEMENTED -2
425 #define VX_FAILURE -1
426 #define VX_SUCCESS 0
434 typedef vx_enum vx_status;
435 
441 
450 
455 #define VX_VENDOR_MASK (0xFFF00000)
456 
462 #define VX_TYPE_MASK (0x000FFF00)
463 
468 #define VX_LIBRARY_MASK (0x000FF000)
469 
473 #define VX_KERNEL_MASK (0x00000FFF)
474 
478 #define VX_ATTRIBUTE_ID_MASK (0x000000FF)
479 
483 #define VX_ENUM_TYPE_MASK (0x000FF000)
484 
488 #define VX_ENUM_MASK (0x00000FFF)
489 
493 #define VX_VENDOR(e) (((vx_uint32)(e) & VX_VENDOR_MASK) >> 20)
494 
498 #define VX_TYPE(e) (((vx_uint32)(e) & VX_TYPE_MASK) >> 8)
499 
503 #define VX_ENUM_TYPE(e) (((vx_uint32)(e) & VX_ENUM_TYPE_MASK) >> 12)
504 
508 #define VX_LIBRARY(e) (((vx_uint32)(e) & VX_LIBRARY_MASK) >> 12)
509 
514 #define VX_SHL(A, B) (((uint32_t)(A)) << ((uint32_t)(B)))
515 
516 
522 #define VX_DF_IMAGE(a,b,c,d) (VX_SHL(a, 0) | VX_SHL(b, 8) | VX_SHL(c, 16) | VX_SHL(d,24))
523 
528 #define VX_ATTRIBUTE_BASE(vendor, object) (VX_SHL(vendor, 20) | VX_SHL(object, 8))
529 
535 #define VX_KERNEL_BASE(vendor, lib) (VX_SHL(vendor, 20) | VX_SHL(lib, 12))
536 
545 #define VX_ENUM_BASE(vendor, id) (VX_SHL(vendor, 20) | VX_SHL(id, 12))
546 
555 #define VX_ENUM_DIRECTION 0x00
556 #define VX_ENUM_ACTION 0x01
557 #define VX_ENUM_HINT 0x02
558 #define VX_ENUM_DIRECTIVE 0x03
559 #define VX_ENUM_INTERPOLATION 0x04
560 #define VX_ENUM_OVERFLOW 0x05
561 #define VX_ENUM_COLOR_SPACE 0x06
562 #define VX_ENUM_COLOR_RANGE 0x07
563 #define VX_ENUM_PARAMETER_STATE 0x08
564 #define VX_ENUM_CHANNEL 0x09
565 #define VX_ENUM_CONVERT_POLICY 0x0A
566 #define VX_ENUM_THRESHOLD_TYPE 0x0B
567 #define VX_ENUM_BORDER 0x0C
568 #define VX_ENUM_COMPARISON 0x0D
569 #define VX_ENUM_MEMORY_TYPE 0x0E
570 #define VX_ENUM_TERM_CRITERIA 0x0F
571 #define VX_ENUM_NORM_TYPE 0x10
572 #define VX_ENUM_ACCESSOR 0x11
573 #define VX_ENUM_ROUND_POLICY 0x12
574 #define VX_ENUM_TARGET 0x13
575 #define VX_ENUM_BORDER_POLICY 0x14
576 #define VX_ENUM_GRAPH_STATE 0x15
577 #define VX_ENUM_NONLINEAR 0x16
578 #define VX_ENUM_PATTERN 0x17
586 #define VX_ENUM(vendor, id, num) (vx_enum)(VX_ENUM_BASE(vendor, id) + (uint32_t)(num))
587 
592 #define VX_ENUM_KERNEL(vendor, lib, num) (vx_enum)(VX_KERNEL_BASE(vendor, lib) + (uint32_t)(num))
593 
594 
599 #define VX_ATTRIBUTE_ENUM(vendor, object, num) (vx_enum)(VX_ATTRIBUTE_BASE(vendor, object) + (uint32_t)(num))
600 
601 
609 #define VX_ACTION_CONTINUE (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_ACTION, 0x0))
610 #define VX_ACTION_ABANDON (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_ACTION, 0x1))
620 #define VX_INPUT (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_DIRECTION, 0x0))
621 
622 #define VX_OUTPUT (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_DIRECTION,0x1))
623 
624 #define VX_BIDIRECTIONAL (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_DIRECTION, 0x2))
625 
640 #define VX_HINT_PERFORMANCE_DEFAULT (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_HINT, 0x1))
641 
644 #define VX_HINT_PERFORMANCE_LOW_POWER (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_HINT, 0x2))
645 
648 #define VX_HINT_PERFORMANCE_HIGH_SPEED (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_HINT, 0x3))
649 
656 #define VX_DIRECTIVE_DISABLE_LOGGING (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_DIRECTIVE, 0x0))
657 
660 #define VX_DIRECTIVE_ENABLE_LOGGING (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_DIRECTIVE, 0x1))
661 
664 #define VX_DIRECTIVE_DISABLE_PERFORMANCE (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_DIRECTIVE, 0x2))
665 
668 #define VX_DIRECTIVE_ENABLE_PERFORMANCE (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_DIRECTIVE, 0x3))
669 
670 
674 #define VX_GRAPH_STATE_UNVERIFIED (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_GRAPH_STATE, 0x0))
675 
678 #define VX_GRAPH_STATE_VERIFIED (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_GRAPH_STATE, 0x1))
679 
682 #define VX_GRAPH_STATE_RUNNING (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_GRAPH_STATE, 0x2))
683 
686 #define VX_GRAPH_STATE_ABANDONED (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_GRAPH_STATE, 0x3))
687 
690 #define VX_GRAPH_STATE_COMPLETED (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_GRAPH_STATE, 0x4))
691 
692 
696 #define VX_GRAPH_NUMNODES (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_GRAPH, 0x0))
697 
702 #define VX_GRAPH_PERFORMANCE (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_GRAPH, 0x2))
703 
706 #define VX_GRAPH_NUMPARAMETERS (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_GRAPH, 0x3))
707 
710 #define VX_GRAPH_STATE (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_GRAPH, 0x4))
711 
712 
722 #define VX_CONVERT_POLICY_WRAP (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_CONVERT_POLICY, 0x0))
723 
724 #define VX_CONVERT_POLICY_SATURATE (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_CONVERT_POLICY, 0x1))
725 
737 #define VX_DF_IMAGE_VIRT (VX_DF_IMAGE('V','I','R','T'))
738 
741 #define VX_DF_IMAGE_RGB (VX_DF_IMAGE('R','G','B','2'))
742 
746 #define VX_DF_IMAGE_RGBX (VX_DF_IMAGE('R','G','B','A'))
747 
750 #define VX_DF_IMAGE_NV12 (VX_DF_IMAGE('N','V','1','2'))
751 
754 #define VX_DF_IMAGE_NV21 (VX_DF_IMAGE('N','V','2','1'))
755 
758 #define VX_DF_IMAGE_UYVY (VX_DF_IMAGE('U','Y','V','Y'))
759 
762 #define VX_DF_IMAGE_YUYV (VX_DF_IMAGE('Y','U','Y','V'))
763 
766 #define VX_DF_IMAGE_IYUV (VX_DF_IMAGE('I','Y','U','V'))
767 
770 #define VX_DF_IMAGE_YUV4 (VX_DF_IMAGE('Y','U','V','4'))
771 
775 #define VX_DF_IMAGE_U8 (VX_DF_IMAGE('U','0','0','8'))
776 
780 #define VX_DF_IMAGE_U16 (VX_DF_IMAGE('U','0','1','6'))
781 
785 #define VX_DF_IMAGE_S16 (VX_DF_IMAGE('S','0','1','6'))
786 
790 #define VX_DF_IMAGE_U32 (VX_DF_IMAGE('U','0','3','2'))
791 
795 #define VX_DF_IMAGE_S32 (VX_DF_IMAGE('S','0','3','2'))
796 
805 #define VX_TARGET_ANY (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_TARGET, 0x0000))
806 
807 #define VX_TARGET_STRING (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_TARGET, 0x0001))
808 
809 #define VX_TARGET_VENDOR_BEGIN (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_TARGET, 0x1000))
810 
817 #define VX_REFERENCE_COUNT (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_REFERENCE, 0x0))
818 
821 #define VX_REFERENCE_TYPE (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_REFERENCE, 0x1))
822 
825 #define VX_REFERENCE_NAME (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_REFERENCE, 0x2))
826 
827 
831 #define VX_CONTEXT_VENDOR_ID (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_CONTEXT, 0x0))
832 
835 #define VX_CONTEXT_VERSION (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_CONTEXT, 0x1))
836 
839 #define VX_CONTEXT_UNIQUE_KERNELS (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_CONTEXT, 0x2))
840 
843 #define VX_CONTEXT_MODULES (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_CONTEXT, 0x3))
844 
847 #define VX_CONTEXT_REFERENCES (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_CONTEXT, 0x4))
848 
852 #define VX_CONTEXT_IMPLEMENTATION (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_CONTEXT, 0x5))
853 
856 #define VX_CONTEXT_EXTENSIONS_SIZE (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_CONTEXT, 0x6))
857 
863 #define VX_CONTEXT_EXTENSIONS (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_CONTEXT, 0x7))
864 
875 #define VX_CONTEXT_CONVOLUTION_MAX_DIMENSION (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_CONTEXT, 0x8))
876 
880 #define VX_CONTEXT_OPTICAL_FLOW_MAX_WINDOW_DIMENSION (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_CONTEXT, 0x9))
881 
889 #define VX_CONTEXT_IMMEDIATE_BORDER (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_CONTEXT, 0xA))
890 
896 #define VX_CONTEXT_UNIQUE_KERNEL_TABLE (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_CONTEXT, 0xB))
897 
905 #define VX_CONTEXT_IMMEDIATE_BORDER_POLICY (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_CONTEXT, 0xC))
906 
912 #define VX_CONTEXT_NONLINEAR_MAX_DIMENSION (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_CONTEXT, 0xd))
913 
918 #define VX_KERNEL_PARAMETERS (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_KERNEL, 0x0))
919 
923 #define VX_KERNEL_NAME (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_KERNEL, 0x1))
924 
928 #define VX_KERNEL_ENUM (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_KERNEL, 0x2))
929 
935 #define VX_KERNEL_LOCAL_DATA_SIZE (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_KERNEL, 0x3))
936 
937 
945 #define VX_NODE_STATUS (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_NODE, 0x0))
946 
951 #define VX_NODE_PERFORMANCE (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_NODE, 0x1))
952 
955 #define VX_NODE_BORDER (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_NODE, 0x2))
956 
960 #define VX_NODE_LOCAL_DATA_SIZE (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_NODE, 0x3))
961 
965 #define VX_NODE_LOCAL_DATA_PTR (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_NODE, 0x4))
966 
969 #define VX_NODE_PARAMETERS (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_NODE, 0x5))
970 
973 #define VX_NODE_IS_REPLICATED (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_NODE, 0x6))
974 
977 #define VX_NODE_REPLICATE_FLAGS (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_NODE, 0x7))
978 
981 #define VX_NODE_VALID_RECT_RESET (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_NODE, 0x8))
982 
993 #define VX_PARAMETER_INDEX (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_PARAMETER, 0x0))
994 
995 #define VX_PARAMETER_DIRECTION (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_PARAMETER, 0x1))
996 
998 #define VX_PARAMETER_TYPE (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_PARAMETER, 0x2))
999 
1000 #define VX_PARAMETER_STATE (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_PARAMETER, 0x3))
1001 
1002 #define VX_PARAMETER_REF (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_PARAMETER, 0x4))
1003 
1014 #define VX_IMAGE_WIDTH (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_IMAGE, 0x0))
1015 
1016 #define VX_IMAGE_HEIGHT (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_IMAGE, 0x1))
1017 
1018 #define VX_IMAGE_FORMAT (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_IMAGE, 0x2))
1019 
1020 #define VX_IMAGE_PLANES (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_IMAGE, 0x3))
1021 
1022 #define VX_IMAGE_SPACE (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_IMAGE, 0x4))
1023 
1024 #define VX_IMAGE_RANGE (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_IMAGE, 0x5))
1025 
1026 #define VX_IMAGE_SIZE (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_IMAGE, 0x6))
1027 
1029 #define VX_IMAGE_MEMORY_TYPE (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_IMAGE, 0x7))
1030 
1040 #define VX_SCALAR_TYPE (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_SCALAR, 0x0))
1041 
1051 #define VX_LUT_TYPE (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS,VX_TYPE_LUT, 0x0))
1052 
1053 #define VX_LUT_COUNT (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS,VX_TYPE_LUT, 0x1))
1054 
1055 #define VX_LUT_SIZE (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS,VX_TYPE_LUT, 0x2))
1056 
1057 #define VX_LUT_OFFSET (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS,VX_TYPE_LUT, 0x3))
1058 
1068 #define VX_DISTRIBUTION_DIMENSIONS (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_DISTRIBUTION, 0x0))
1069 
1070 #define VX_DISTRIBUTION_OFFSET (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_DISTRIBUTION, 0x1))
1071 
1072 #define VX_DISTRIBUTION_RANGE (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_DISTRIBUTION, 0x2))
1073 
1074 #define VX_DISTRIBUTION_BINS (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_DISTRIBUTION, 0x3))
1075 
1077 #define VX_DISTRIBUTION_WINDOW (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_DISTRIBUTION, 0x4))
1078 
1079 #define VX_DISTRIBUTION_SIZE (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_DISTRIBUTION, 0x5))
1080 
1091 #define VX_THRESHOLD_TYPE_BINARY (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_THRESHOLD_TYPE, 0x0))
1092 
1093 #define VX_THRESHOLD_TYPE_RANGE (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_THRESHOLD_TYPE, 0x1))
1094 
1105 #define VX_THRESHOLD_TYPE (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_THRESHOLD, 0x0))
1106 
1107 #define VX_THRESHOLD_THRESHOLD_VALUE (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_THRESHOLD, 0x1))
1108 
1109 #define VX_THRESHOLD_THRESHOLD_LOWER (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_THRESHOLD, 0x2))
1110 
1111 #define VX_THRESHOLD_THRESHOLD_UPPER (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_THRESHOLD, 0x3))
1112 
1113 #define VX_THRESHOLD_TRUE_VALUE (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_THRESHOLD, 0x4))
1114 
1115 #define VX_THRESHOLD_FALSE_VALUE (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_THRESHOLD, 0x5))
1116 
1117 #define VX_THRESHOLD_DATA_TYPE (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_THRESHOLD, 0x6))
1118 
1129 #define VX_MATRIX_TYPE (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_MATRIX, 0x0))
1130 
1131 #define VX_MATRIX_ROWS (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_MATRIX, 0x1))
1132 
1133 #define VX_MATRIX_COLUMNS (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_MATRIX, 0x2))
1134 
1135 #define VX_MATRIX_SIZE (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_MATRIX, 0x3))
1136 
1138 #define VX_MATRIX_ORIGIN (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_MATRIX, 0x4))
1139 
1140 #define VX_MATRIX_PATTERN (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_MATRIX, 0x5))
1141 
1153 #define VX_CONVOLUTION_ROWS (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_CONVOLUTION, 0x0))
1154 
1155 #define VX_CONVOLUTION_COLUMNS (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_CONVOLUTION, 0x1))
1156 
1161 #define VX_CONVOLUTION_SCALE (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_CONVOLUTION, 0x2))
1162 
1163 #define VX_CONVOLUTION_SIZE (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_CONVOLUTION, 0x3))
1164 
1175 #define VX_PYRAMID_LEVELS (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_PYRAMID, 0x0))
1176 
1177 #define VX_PYRAMID_SCALE (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_PYRAMID, 0x1))
1178 
1179 #define VX_PYRAMID_WIDTH (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_PYRAMID, 0x2))
1180 
1181 #define VX_PYRAMID_HEIGHT (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_PYRAMID, 0x3))
1182 
1183 #define VX_PYRAMID_FORMAT (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_PYRAMID, 0x4))
1184 
1196 #define VX_REMAP_SOURCE_WIDTH (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_REMAP, 0x0))
1197 
1198 #define VX_REMAP_SOURCE_HEIGHT (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_REMAP, 0x1))
1199 
1200 #define VX_REMAP_DESTINATION_WIDTH (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_REMAP, 0x2))
1201 
1202 #define VX_REMAP_DESTINATION_HEIGHT (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_REMAP, 0x3))
1203 
1214 #define VX_ARRAY_ITEMTYPE (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_ARRAY, 0x0))
1215 
1216 #define VX_ARRAY_NUMITEMS (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_ARRAY, 0x1))
1217 
1218 #define VX_ARRAY_CAPACITY (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_ARRAY, 0x2))
1219 
1220 #define VX_ARRAY_ITEMSIZE (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_ARRAY, 0x3))
1221 
1232 #define VX_OBJECT_ARRAY_ITEMTYPE (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_OBJECT_ARRAY, 0x0))
1233 
1234 #define VX_OBJECT_ARRAY_NUMITEMS (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_OBJECT_ARRAY, 0x1))
1235 
1245 #define VX_VALID_RECT_CALLBACK (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_META_FORMAT, 0x1))
1246 
1262 #define VX_CHANNEL_0 (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_CHANNEL, 0x0))
1263 
1264 #define VX_CHANNEL_1 (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_CHANNEL, 0x1))
1265 
1266 #define VX_CHANNEL_2 (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_CHANNEL, 0x2))
1267 
1268 #define VX_CHANNEL_3 (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_CHANNEL, 0x3))
1269 
1271 #define VX_CHANNEL_R (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_CHANNEL, 0x10))
1272 
1273 #define VX_CHANNEL_G (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_CHANNEL, 0x11))
1274 
1275 #define VX_CHANNEL_B (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_CHANNEL, 0x12))
1276 
1277 #define VX_CHANNEL_A (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_CHANNEL, 0x13))
1278 
1279 #define VX_CHANNEL_Y (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_CHANNEL, 0x14))
1280 
1281 #define VX_CHANNEL_U (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_CHANNEL, 0x15))
1282 
1283 #define VX_CHANNEL_V (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_CHANNEL, 0x16))
1284 
1294 #define VX_MEMORY_TYPE_NONE (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_MEMORY_TYPE, 0x0))
1295 
1297 #define VX_MEMORY_TYPE_HOST (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_MEMORY_TYPE, 0x1))
1298 
1335 #define VX_INTERPOLATION_NEAREST_NEIGHBOR (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_INTERPOLATION, 0x0))
1336 
1338 #define VX_INTERPOLATION_BILINEAR (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_INTERPOLATION, 0x1))
1339 
1341 #define VX_INTERPOLATION_AREA (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_INTERPOLATION, 0x2))
1342 
1352 #define VX_NONLINEAR_FILTER_MEDIAN (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_NONLINEAR, 0x0))
1353 
1354 #define VX_NONLINEAR_FILTER_MIN (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_NONLINEAR, 0x1))
1355 
1356 #define VX_NONLINEAR_FILTER_MAX (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_NONLINEAR, 0x2))
1357 
1369 #define VX_PATTERN_BOX (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_PATTERN, 0x0))
1370 
1371 #define VX_PATTERN_CROSS (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_PATTERN, 0x1))
1372 
1373 #define VX_PATTERN_DISK (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_PATTERN, 0x2))
1374 
1375 #define VX_PATTERN_OTHER (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_PATTERN, 0x3))
1376 
1387 #define VX_COLOR_SPACE_NONE (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_COLOR_SPACE, 0x0))
1388 
1389 #define VX_COLOR_SPACE_BT601_525 (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_COLOR_SPACE, 0x1))
1390 
1391 #define VX_COLOR_SPACE_BT601_625 (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_COLOR_SPACE, 0x2))
1392 
1393 #define VX_COLOR_SPACE_BT709 (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_COLOR_SPACE, 0x3))
1394 
1396 #define VX_COLOR_SPACE_DEFAULT VX_COLOR_SPACE_BT709
1397 
1408 #define VX_CHANNEL_RANGE_FULL (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_COLOR_RANGE, 0x0))
1409 
1410 #define VX_CHANNEL_RANGE_RESTRICTED (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_COLOR_RANGE, 0x1))
1411 
1422 #define VX_PARAMETER_STATE_REQUIRED (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_PARAMETER_STATE, 0x0))
1423 
1426 #define VX_PARAMETER_STATE_OPTIONAL (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_PARAMETER_STATE, 0x1))
1427 
1436 #define VX_BORDER_UNDEFINED (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_BORDER, 0x0))
1437 
1440 #define VX_BORDER_CONSTANT (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_BORDER, 0x1))
1441 
1444 #define VX_BORDER_REPLICATE (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_BORDER, 0x2))
1445 
1454 #define VX_BORDER_POLICY_DEFAULT_TO_UNDEFINED (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_BORDER_POLICY, 0x0))
1455 
1456 #define VX_BORDER_POLICY_RETURN_ERROR (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_BORDER_POLICY, 0x1))
1457 
1467 #define VX_TERM_CRITERIA_ITERATIONS (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_TERM_CRITERIA, 0x0))
1468 
1469 #define VX_TERM_CRITERIA_EPSILON (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_TERM_CRITERIA, 0x1))
1470 
1473 #define VX_TERM_CRITERIA_BOTH (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_TERM_CRITERIA, 0x2))
1474 
1484 #define VX_NORM_L1 (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_NORM_TYPE, 0x0))
1485 
1486 #define VX_NORM_L2 (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_NORM_TYPE, 0x1))
1487 
1497 #define VX_DELAY_TYPE (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_DELAY, 0x0))
1498 
1499 #define VX_DELAY_SLOTS (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_DELAY, 0x1))
1500 
1516 #define VX_READ_ONLY (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_ACCESSOR, 0x1))
1517 
1520 #define VX_WRITE_ONLY (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_ACCESSOR, 0x2))
1521 
1523 #define VX_READ_AND_WRITE (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_ACCESSOR, 0x3))
1524 
1535 #define VX_ROUND_POLICY_TO_ZERO (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_ROUND_POLICY, 0x1))
1536 
1537 #define VX_ROUND_POLICY_TO_NEAREST_EVEN (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_ROUND_POLICY, 0x2))
1538 
1542 #if defined(_WIN32) || defined(UNDER_CE)
1543 #if defined(_WIN64)
1544 
1547 #define VX_FMT_REF "%I64u"
1548 
1551 #define VX_FMT_SIZE "%I64u"
1552 #else
1553 
1556 #define VX_FMT_REF "%lu"
1557 
1560 #define VX_FMT_SIZE "%lu"
1561 #endif
1562 #else
1563 
1566 #define VX_FMT_REF "%p"
1567 
1570 #define VX_FMT_SIZE "%zu"
1571 #endif
1572 
1575 #define VX_SCALE_UNITY (1024u)
1576 
1596 typedef struct _vx_imagepatch_addressing_t {
1606 
1610 #define VX_IMAGEPATCH_ADDR_INIT {0u, 0u, 0, 0, 0u, 0u, 0u, 0u}
1611 
1615 typedef struct _vx_perf_t {
1624 } vx_perf_t;
1625 
1629 #define VX_PERF_INIT {0ul, 0ul, 0ul, 0ul, 0ul, 0ul}
1630 
1635 typedef struct _vx_kernel_info_t {
1641 
1648 
1652 #define VX_SCALE_PYRAMID_HALF (0.5f)
1653 
1657 #define VX_SCALE_PYRAMID_ORB ((vx_float32)0.8408964f)
1658 
1662 typedef struct _vx_keypoint_t {
1670 } vx_keypoint_t;
1671 
1675 typedef struct _vx_rectangle_t {
1680 } vx_rectangle_t;
1681 
1685 typedef struct _vx_coordinates2d_t {
1689 
1693 typedef struct _vx_coordinates3d_t {
1698 
1703 typedef union _vx_pixel_value_t {
1704  vx_uint8 RGB[3];
1705  vx_uint8 RGBX[4];
1706  vx_uint8 YUV[3];
1712  vx_uint8 reserved[16];
1714 
1722 typedef struct _vx_border_t {
1729 } vx_border_t;
1730 
1738 
1746 
1754 typedef vx_status(VX_CALLBACK *vx_kernel_f)(vx_node node, const vx_reference *parameters, vx_uint32 num);
1755 
1766 
1777 
1792 typedef vx_status(VX_CALLBACK *vx_kernel_validate_f)(vx_node node, const vx_reference parameters[], vx_uint32 num, vx_meta_format metas[]);
1793 
1825 typedef vx_status(VX_CALLBACK *vx_kernel_image_valid_rectangle_f)(vx_node node, vx_uint32 index, const vx_rectangle_t* const input_valid[], vx_rectangle_t* const output_valid[]);
1826 
1830 typedef void (VX_CALLBACK *vx_log_callback_f)(vx_context context,
1831  vx_reference ref,
1832  vx_status status,
1833  const vx_char string[]);
1834 
1842 #define VX_NOGAP_X 1
1843 
1846 #endif
struct _vx_image * vx_image
An opaque reference to an image.
Definition: vx_types.h:190
struct _vx_delay * vx_delay
The delay object. This is like a ring buffer of objects that is maintained by the OpenVX implementati...
Definition: vx_types.h:234
vx_uint64 avg
Holds the average of the durations.
Definition: vx_types.h:1620
vx_bool
A Boolean value. This allows 0 to be FALSE, as it is in C, and any non-zero to be TRUE...
Definition: vx_types.h:301
The "false" value.
Definition: vx_types.h:303
vx_int32 y
The y coordinate.
Definition: vx_types.h:1664
vx_int32 x
The x coordinate.
Definition: vx_types.h:1663
vx_uint16 U16
VX_DF_IMAGE_U16
Definition: vx_types.h:1708
The 2D Coordinates structure.
Definition: vx_types.h:1685
uint16_t vx_uint16
A 16-bit unsigned value.
Definition: vx_types.h:92
vx_uint64 beg
Holds the first measurement in a set.
Definition: vx_types.h:1617
vx_action(* vx_nodecomplete_f)(vx_node node)
A callback to the client after a particular node has completed.
Definition: vx_types.h:449
uint8_t vx_uint8
An 8-bit unsigned value.
Definition: vx_types.h:87
struct _vx_array * vx_array
The Array Object. Array is a strongly-typed container for other data structures.
Definition: vx_types.h:283
vx_int16 S16
VX_DF_IMAGE_S16
Definition: vx_types.h:1709
vx_uint32 scale_y
Scale of Y dimension. For sub-sampled planes this is the scaling factor of the dimension of the plane...
Definition: vx_types.h:1602
vx_uint32 step_y
Step of Y dimension in pixels.
Definition: vx_types.h:1604
vx_uint32 U32
VX_DF_IMAGE_U32
Definition: vx_types.h:1710
int16_t vx_int16
A 16-bit signed value.
Definition: vx_types.h:112
size_t vx_size
A wrapper of size_t to keep the naming convention uniform.
Definition: vx_types.h:165
void(* vx_log_callback_f)(vx_context context, vx_reference ref, vx_status status, vx_char string[])
The log callback function [R01650].
Definition: vx_types.h:1830
The keypoint data structure.
Definition: vx_types.h:1662
int32_t vx_enum
Sets the standard enumeration type size to be a fixed quantity.
Definition: vx_types.h:160
vx_uint32 x
The X coordinate.
Definition: vx_types.h:1686
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:266
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:247
struct _vx_parameter * vx_parameter
An opaque reference to a single parameter.
Definition: vx_types.h:205
int32_t vx_int32
A 32-bit signed value.
Definition: vx_types.h:117
The addressing image patch structure is used by the Host only to address pixels in an image patch...
Definition: vx_types.h:1596
The "true" value.
Definition: vx_types.h:305
int64_t vx_int64
A 64-bit signed value.
Definition: vx_types.h:122
The 3D Coordinates structure.
Definition: vx_types.h:1693
char vx_char
An 8 bit ASCII character.
Definition: vx_types.h:82
vx_uint64 max
Holds the maximum of the durations.
Definition: vx_types.h:1623
float vx_float32
A 32-bit float value.
Definition: vx_types.h:137
vx_float32 strength
The strength of the keypoint. Its definition is specific to the corner detector.
Definition: vx_types.h:1665
vx_enum mode
See The border mode list..
Definition: vx_types.h:1724
vx_enum vx_status
A formal status type with known fixed size.
Definition: vx_types.h:434
vx_status(* vx_kernel_f)(vx_node node, vx_reference *parameters, vx_uint32 num)
The pointer to the Host side kernel [R01609].
Definition: vx_types.h:1754
struct _vx_context * vx_context
An opaque reference to the implementation context.
Definition: vx_types.h:226
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:317
vx_uint32 start_x
The Start X coordinate.
Definition: vx_types.h:1676
struct _vx_reference * vx_reference
A generic opaque reference to any object within OpenVX.
Definition: vx_types.h:153
vx_status(* vx_kernel_image_valid_rectangle_f)(vx_node node, vx_uint32 index, vx_rectangle_t *input_valid[], vx_rectangle_t *output_valid[])
A user-defined callback function to set the valid rectangle of an output image [R01631].
Definition: vx_types.h:1825
vx_uint32 y
The Y coordinate.
Definition: vx_types.h:1695
vx_float32 scale
Initialized to 0 by corner detectors.
Definition: vx_types.h:1666
vx_status(* vx_publish_kernels_f)(vx_context context)
The type of the vxPublishKernels entry function of modules loaded by vxLoadKernels and unloaded by vx...
Definition: vx_types.h:1737
vx_float32 error
A tracking method specific error. Initialized to 0 by corner detectors.
Definition: vx_types.h:1669
vx_int32 stride_x
Stride in X dimension in bytes.
Definition: vx_types.h:1599
uint32_t vx_df_image
Used to hold a VX_DF_IMAGE code to describe the pixel format and color space.
Definition: vx_types.h:170
vx_int32 S32
VX_DF_IMAGE_S32
Definition: vx_types.h:1711
vx_pixel_value_t constant_value
For the mode VX_BORDER_CONSTANT, this union contains the value of out-of-bound pixels.
Definition: vx_types.h:1728
vx_uint64 min
Holds the minimum of the durations.
Definition: vx_types.h:1621
vx_uint32 dim_y
Height of patch in Y dimension in pixels.
Definition: vx_types.h:1598
vx_enum enumeration
The kernel enumeration value from The list of available kernels (or an extension thereof).
Definition: vx_types.h:1640
vx_uint32 step_x
Step of X dimension in pixels.
Definition: vx_types.h:1603
vx_status(* vx_unpublish_kernels_f)(vx_context context)
The type of the vxUnpublishKernels entry function of modules loaded by vxLoadKernels and unloaded by ...
Definition: vx_types.h:1745
double vx_float64
A 64-bit float value (aka double).
Definition: vx_types.h:142
struct _vx_pyramid * vx_pyramid
The Image Pyramid object. A set of scaled images.
Definition: vx_types.h:259
vx_uint32 x
The X coordinate.
Definition: vx_types.h:1694
struct _vx_kernel * vx_kernel
An opaque reference to the descriptor of a kernel.
Definition: vx_types.h:198
vx_uint32 start_y
The Start Y coordinate.
Definition: vx_types.h:1677
vx_uint32 dim_x
Width of patch in X dimension in pixels.
Definition: vx_types.h:1597
vx_uint64 tmp
Holds the last measurement.
Definition: vx_types.h:1616
vx_int32 tracking_status
A zero indicates a lost point. Initialized to 1 by corner detectors.
Definition: vx_types.h:1668
Union that describes the value of a pixel for any image format. Use the field corresponding to the im...
Definition: vx_types.h:1703
The rectangle data structure that is shared with the users. The area of the rectangle can be computed...
Definition: vx_types.h:1675
vx_uint64 num
Holds the number of measurements.
Definition: vx_types.h:1622
#define VX_CALLBACK
Defines calling convention for user callbacks.
Definition: vx_types.h:75
vx_int32 stride_y
Stride in Y dimension in bytes.
Definition: vx_types.h:1600
vx_uint64 sum
Holds the summation of durations.
Definition: vx_types.h:1619
vx_enum vx_action
The formal typedef of the response from the callback.
Definition: vx_types.h:440
vx_uint64 end
Holds the last measurement in a set.
Definition: vx_types.h:1618
vx_uint32 end_x
The End X coordinate.
Definition: vx_types.h:1678
The Kernel Information Structure. This is returned by the Context to indicate which kernels are avail...
Definition: vx_types.h:1635
Use with the enumeration VX_NODE_BORDER to set the border mode behavior of a node that supports borde...
Definition: vx_types.h:1722
vx_status(* vx_kernel_deinitialize_f)(vx_node node, vx_reference *parameters, vx_uint32 num)
The pointer to the kernel deinitializer [R01618]. If the host code requires a call to deinitialize da...
Definition: vx_types.h:1776
struct _vx_object_array * vx_object_array
The ObjectArray Object. ObjectArray is a strongly-typed container of OpenVX data-objects.
Definition: vx_types.h:288
struct _vx_convolution * vx_convolution
The Convolution Object. A user-defined convolution kernel of MxM elements [R01411].
Definition: vx_types.h:272
#define VX_MAX_KERNEL_NAME
Defines the length of a kernel name string to be added to OpenVX, including the trailing zero [R01652...
Definition: vx.h:45
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:278
uint32_t vx_uint32
A 32-bit unsigned value.
Definition: vx_types.h:97
int8_t vx_int8
An 8-bit signed value.
Definition: vx_types.h:107
The performance measurement structure. The time or durations are in units of nano seconds...
Definition: vx_types.h:1615
struct _vx_graph * vx_graph
An opaque reference to a graph.
Definition: vx_types.h:219
vx_float32 orientation
Initialized to 0 by corner detectors.
Definition: vx_types.h:1667
vx_uint8 U8
VX_DF_IMAGE_U8
Definition: vx_types.h:1707
vx_status(* vx_kernel_validate_f)(vx_node node, vx_reference parameters[], vx_uint32 num, vx_meta_format metas[])
The user-defined kernel node parameters validation function [R01623]. The function only needs to fill...
Definition: vx_types.h:1792
struct _vx_node * vx_node
An opaque reference to a kernel node.
Definition: vx_types.h:212
#define VX_API_CALL
Defines calling convention for OpenVX API.
Definition: vx_types.h:68
uintptr_t vx_map_id
Holds the address of a variable where the map/unmap functions return a map identifier.
Definition: vx_types.h:175
uint64_t vx_uint64
A 64-bit unsigned value.
Definition: vx_types.h:102
vx_status(* vx_kernel_initialize_f)(vx_node node, vx_reference *parameters, vx_uint32 num)
The pointer to the kernel initializer [R01613]. If the host code requires a call to initialize data o...
Definition: vx_types.h:1765
vx_uint32 end_y
The End Y coordinate.
Definition: vx_types.h:1679
struct _vx_matrix * vx_matrix
The Matrix Object. An MxN matrix of some unit type.
Definition: vx_types.h:253
struct _vx_scalar * vx_scalar
An opaque reference to a scalar [R01409].
Definition: vx_types.h:183
vx_uint32 y
The Y coordinate.
Definition: vx_types.h:1687
vx_uint32 scale_x
Scale of X dimension. For sub-sampled planes this is the scaling factor of the dimension of the plane...
Definition: vx_types.h:1601
struct _vx_lut * vx_lut
The Look-Up Table (LUT) Object.
Definition: vx_types.h:240
vx_uint32 z
The Z coordinate.
Definition: vx_types.h:1696