29 #ifndef _OPENVX_TYPES_H_ 30 #define _OPENVX_TYPES_H_ 66 #define VX_API_CALL __stdcall 73 #define VX_CALLBACK __stdcall 124 typedef uint32_t vx_bitfield;
126 #if defined(EXPERIMENTAL_PLATFORM_SUPPORTS_16_FLOAT) 131 typedef hfloat vx_float16;
301 typedef enum _vx_bool_e {
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 343 #define VX_TYPE_BOOL 0x010 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 400 #define VX_STATUS_MIN -25 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 434 typedef vx_enum vx_status; 455 #define VX_VENDOR_MASK (0xFFF00000) 462 #define VX_TYPE_MASK (0x000FFF00) 468 #define VX_LIBRARY_MASK (0x000FF000) 473 #define VX_KERNEL_MASK (0x00000FFF) 478 #define VX_ATTRIBUTE_ID_MASK (0x000000FF) 483 #define VX_ENUM_TYPE_MASK (0x000FF000) 488 #define VX_ENUM_MASK (0x00000FFF) 493 #define VX_VENDOR(e) (((vx_uint32)(e) & VX_VENDOR_MASK) >> 20) 498 #define VX_TYPE(e) (((vx_uint32)(e) & VX_TYPE_MASK) >> 8) 503 #define VX_ENUM_TYPE(e) (((vx_uint32)(e) & VX_ENUM_TYPE_MASK) >> 12) 508 #define VX_LIBRARY(e) (((vx_uint32)(e) & VX_LIBRARY_MASK) >> 12) 514 #define VX_SHL(A, B) (((uint32_t)(A)) << ((uint32_t)(B))) 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)) 528 #define VX_ATTRIBUTE_BASE(vendor, object) (VX_SHL(vendor, 20) | VX_SHL(object, 8)) 535 #define VX_KERNEL_BASE(vendor, lib) (VX_SHL(vendor, 20) | VX_SHL(lib, 12)) 545 #define VX_ENUM_BASE(vendor, id) (VX_SHL(vendor, 20) | VX_SHL(id, 12)) 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)) 592 #define VX_ENUM_KERNEL(vendor, lib, num) (vx_enum)(VX_KERNEL_BASE(vendor, lib) + (uint32_t)(num)) 599 #define VX_ATTRIBUTE_ENUM(vendor, object, num) (vx_enum)(VX_ATTRIBUTE_BASE(vendor, object) + (uint32_t)(num)) 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)) 622 #define VX_OUTPUT (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_DIRECTION,0x1)) 624 #define VX_BIDIRECTIONAL (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_DIRECTION, 0x2)) 640 #define VX_HINT_PERFORMANCE_DEFAULT (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_HINT, 0x1)) 644 #define VX_HINT_PERFORMANCE_LOW_POWER (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_HINT, 0x2)) 648 #define VX_HINT_PERFORMANCE_HIGH_SPEED (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_HINT, 0x3)) 656 #define VX_DIRECTIVE_DISABLE_LOGGING (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_DIRECTIVE, 0x0)) 660 #define VX_DIRECTIVE_ENABLE_LOGGING (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_DIRECTIVE, 0x1)) 664 #define VX_DIRECTIVE_DISABLE_PERFORMANCE (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_DIRECTIVE, 0x2)) 668 #define VX_DIRECTIVE_ENABLE_PERFORMANCE (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_DIRECTIVE, 0x3)) 674 #define VX_GRAPH_STATE_UNVERIFIED (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_GRAPH_STATE, 0x0)) 678 #define VX_GRAPH_STATE_VERIFIED (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_GRAPH_STATE, 0x1)) 682 #define VX_GRAPH_STATE_RUNNING (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_GRAPH_STATE, 0x2)) 686 #define VX_GRAPH_STATE_ABANDONED (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_GRAPH_STATE, 0x3)) 690 #define VX_GRAPH_STATE_COMPLETED (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_GRAPH_STATE, 0x4)) 696 #define VX_GRAPH_NUMNODES (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_GRAPH, 0x0)) 702 #define VX_GRAPH_PERFORMANCE (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_GRAPH, 0x2)) 706 #define VX_GRAPH_NUMPARAMETERS (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_GRAPH, 0x3)) 710 #define VX_GRAPH_STATE (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_GRAPH, 0x4)) 722 #define VX_CONVERT_POLICY_WRAP (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_CONVERT_POLICY, 0x0)) 724 #define VX_CONVERT_POLICY_SATURATE (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_CONVERT_POLICY, 0x1)) 737 #define VX_DF_IMAGE_VIRT (VX_DF_IMAGE('V','I','R','T')) 741 #define VX_DF_IMAGE_RGB (VX_DF_IMAGE('R','G','B','2')) 746 #define VX_DF_IMAGE_RGBX (VX_DF_IMAGE('R','G','B','A')) 750 #define VX_DF_IMAGE_NV12 (VX_DF_IMAGE('N','V','1','2')) 754 #define VX_DF_IMAGE_NV21 (VX_DF_IMAGE('N','V','2','1')) 758 #define VX_DF_IMAGE_UYVY (VX_DF_IMAGE('U','Y','V','Y')) 762 #define VX_DF_IMAGE_YUYV (VX_DF_IMAGE('Y','U','Y','V')) 766 #define VX_DF_IMAGE_IYUV (VX_DF_IMAGE('I','Y','U','V')) 770 #define VX_DF_IMAGE_YUV4 (VX_DF_IMAGE('Y','U','V','4')) 775 #define VX_DF_IMAGE_U8 (VX_DF_IMAGE('U','0','0','8')) 780 #define VX_DF_IMAGE_U16 (VX_DF_IMAGE('U','0','1','6')) 785 #define VX_DF_IMAGE_S16 (VX_DF_IMAGE('S','0','1','6')) 790 #define VX_DF_IMAGE_U32 (VX_DF_IMAGE('U','0','3','2')) 795 #define VX_DF_IMAGE_S32 (VX_DF_IMAGE('S','0','3','2')) 805 #define VX_TARGET_ANY (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_TARGET, 0x0000)) 807 #define VX_TARGET_STRING (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_TARGET, 0x0001)) 809 #define VX_TARGET_VENDOR_BEGIN (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_TARGET, 0x1000)) 817 #define VX_REFERENCE_COUNT (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_REFERENCE, 0x0)) 821 #define VX_REFERENCE_TYPE (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_REFERENCE, 0x1)) 825 #define VX_REFERENCE_NAME (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_REFERENCE, 0x2)) 831 #define VX_CONTEXT_VENDOR_ID (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_CONTEXT, 0x0)) 835 #define VX_CONTEXT_VERSION (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_CONTEXT, 0x1)) 839 #define VX_CONTEXT_UNIQUE_KERNELS (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_CONTEXT, 0x2)) 843 #define VX_CONTEXT_MODULES (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_CONTEXT, 0x3)) 847 #define VX_CONTEXT_REFERENCES (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_CONTEXT, 0x4)) 852 #define VX_CONTEXT_IMPLEMENTATION (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_CONTEXT, 0x5)) 856 #define VX_CONTEXT_EXTENSIONS_SIZE (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_CONTEXT, 0x6)) 863 #define VX_CONTEXT_EXTENSIONS (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_CONTEXT, 0x7)) 875 #define VX_CONTEXT_CONVOLUTION_MAX_DIMENSION (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_CONTEXT, 0x8)) 880 #define VX_CONTEXT_OPTICAL_FLOW_MAX_WINDOW_DIMENSION (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_CONTEXT, 0x9)) 889 #define VX_CONTEXT_IMMEDIATE_BORDER (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_CONTEXT, 0xA)) 896 #define VX_CONTEXT_UNIQUE_KERNEL_TABLE (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_CONTEXT, 0xB)) 905 #define VX_CONTEXT_IMMEDIATE_BORDER_POLICY (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_CONTEXT, 0xC)) 912 #define VX_CONTEXT_NONLINEAR_MAX_DIMENSION (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_CONTEXT, 0xd)) 918 #define VX_KERNEL_PARAMETERS (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_KERNEL, 0x0)) 923 #define VX_KERNEL_NAME (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_KERNEL, 0x1)) 928 #define VX_KERNEL_ENUM (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_KERNEL, 0x2)) 935 #define VX_KERNEL_LOCAL_DATA_SIZE (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_KERNEL, 0x3)) 945 #define VX_NODE_STATUS (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_NODE, 0x0)) 951 #define VX_NODE_PERFORMANCE (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_NODE, 0x1)) 955 #define VX_NODE_BORDER (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_NODE, 0x2)) 960 #define VX_NODE_LOCAL_DATA_SIZE (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_NODE, 0x3)) 965 #define VX_NODE_LOCAL_DATA_PTR (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_NODE, 0x4)) 969 #define VX_NODE_PARAMETERS (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_NODE, 0x5)) 973 #define VX_NODE_IS_REPLICATED (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_NODE, 0x6)) 977 #define VX_NODE_REPLICATE_FLAGS (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_NODE, 0x7)) 981 #define VX_NODE_VALID_RECT_RESET (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_NODE, 0x8)) 993 #define VX_PARAMETER_INDEX (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_PARAMETER, 0x0)) 995 #define VX_PARAMETER_DIRECTION (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_PARAMETER, 0x1)) 998 #define VX_PARAMETER_TYPE (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_PARAMETER, 0x2)) 1000 #define VX_PARAMETER_STATE (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_PARAMETER, 0x3)) 1002 #define VX_PARAMETER_REF (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_PARAMETER, 0x4)) 1014 #define VX_IMAGE_WIDTH (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_IMAGE, 0x0)) 1016 #define VX_IMAGE_HEIGHT (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_IMAGE, 0x1)) 1018 #define VX_IMAGE_FORMAT (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_IMAGE, 0x2)) 1020 #define VX_IMAGE_PLANES (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_IMAGE, 0x3)) 1022 #define VX_IMAGE_SPACE (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_IMAGE, 0x4)) 1024 #define VX_IMAGE_RANGE (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_IMAGE, 0x5)) 1026 #define VX_IMAGE_SIZE (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_IMAGE, 0x6)) 1029 #define VX_IMAGE_MEMORY_TYPE (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_IMAGE, 0x7)) 1040 #define VX_SCALAR_TYPE (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_SCALAR, 0x0)) 1051 #define VX_LUT_TYPE (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS,VX_TYPE_LUT, 0x0)) 1053 #define VX_LUT_COUNT (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS,VX_TYPE_LUT, 0x1)) 1055 #define VX_LUT_SIZE (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS,VX_TYPE_LUT, 0x2)) 1057 #define VX_LUT_OFFSET (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS,VX_TYPE_LUT, 0x3)) 1068 #define VX_DISTRIBUTION_DIMENSIONS (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_DISTRIBUTION, 0x0)) 1070 #define VX_DISTRIBUTION_OFFSET (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_DISTRIBUTION, 0x1)) 1072 #define VX_DISTRIBUTION_RANGE (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_DISTRIBUTION, 0x2)) 1074 #define VX_DISTRIBUTION_BINS (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_DISTRIBUTION, 0x3)) 1077 #define VX_DISTRIBUTION_WINDOW (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_DISTRIBUTION, 0x4)) 1079 #define VX_DISTRIBUTION_SIZE (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_DISTRIBUTION, 0x5)) 1091 #define VX_THRESHOLD_TYPE_BINARY (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_THRESHOLD_TYPE, 0x0)) 1093 #define VX_THRESHOLD_TYPE_RANGE (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_THRESHOLD_TYPE, 0x1)) 1105 #define VX_THRESHOLD_TYPE (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_THRESHOLD, 0x0)) 1107 #define VX_THRESHOLD_THRESHOLD_VALUE (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_THRESHOLD, 0x1)) 1109 #define VX_THRESHOLD_THRESHOLD_LOWER (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_THRESHOLD, 0x2)) 1111 #define VX_THRESHOLD_THRESHOLD_UPPER (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_THRESHOLD, 0x3)) 1113 #define VX_THRESHOLD_TRUE_VALUE (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_THRESHOLD, 0x4)) 1115 #define VX_THRESHOLD_FALSE_VALUE (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_THRESHOLD, 0x5)) 1117 #define VX_THRESHOLD_DATA_TYPE (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_THRESHOLD, 0x6)) 1129 #define VX_MATRIX_TYPE (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_MATRIX, 0x0)) 1131 #define VX_MATRIX_ROWS (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_MATRIX, 0x1)) 1133 #define VX_MATRIX_COLUMNS (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_MATRIX, 0x2)) 1135 #define VX_MATRIX_SIZE (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_MATRIX, 0x3)) 1138 #define VX_MATRIX_ORIGIN (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_MATRIX, 0x4)) 1140 #define VX_MATRIX_PATTERN (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_MATRIX, 0x5)) 1153 #define VX_CONVOLUTION_ROWS (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_CONVOLUTION, 0x0)) 1155 #define VX_CONVOLUTION_COLUMNS (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_CONVOLUTION, 0x1)) 1161 #define VX_CONVOLUTION_SCALE (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_CONVOLUTION, 0x2)) 1163 #define VX_CONVOLUTION_SIZE (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_CONVOLUTION, 0x3)) 1175 #define VX_PYRAMID_LEVELS (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_PYRAMID, 0x0)) 1177 #define VX_PYRAMID_SCALE (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_PYRAMID, 0x1)) 1179 #define VX_PYRAMID_WIDTH (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_PYRAMID, 0x2)) 1181 #define VX_PYRAMID_HEIGHT (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_PYRAMID, 0x3)) 1183 #define VX_PYRAMID_FORMAT (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_PYRAMID, 0x4)) 1196 #define VX_REMAP_SOURCE_WIDTH (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_REMAP, 0x0)) 1198 #define VX_REMAP_SOURCE_HEIGHT (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_REMAP, 0x1)) 1200 #define VX_REMAP_DESTINATION_WIDTH (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_REMAP, 0x2)) 1202 #define VX_REMAP_DESTINATION_HEIGHT (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_REMAP, 0x3)) 1214 #define VX_ARRAY_ITEMTYPE (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_ARRAY, 0x0)) 1216 #define VX_ARRAY_NUMITEMS (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_ARRAY, 0x1)) 1218 #define VX_ARRAY_CAPACITY (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_ARRAY, 0x2)) 1220 #define VX_ARRAY_ITEMSIZE (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_ARRAY, 0x3)) 1232 #define VX_OBJECT_ARRAY_ITEMTYPE (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_OBJECT_ARRAY, 0x0)) 1234 #define VX_OBJECT_ARRAY_NUMITEMS (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_OBJECT_ARRAY, 0x1)) 1245 #define VX_VALID_RECT_CALLBACK (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_META_FORMAT, 0x1)) 1262 #define VX_CHANNEL_0 (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_CHANNEL, 0x0)) 1264 #define VX_CHANNEL_1 (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_CHANNEL, 0x1)) 1266 #define VX_CHANNEL_2 (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_CHANNEL, 0x2)) 1268 #define VX_CHANNEL_3 (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_CHANNEL, 0x3)) 1271 #define VX_CHANNEL_R (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_CHANNEL, 0x10)) 1273 #define VX_CHANNEL_G (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_CHANNEL, 0x11)) 1275 #define VX_CHANNEL_B (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_CHANNEL, 0x12)) 1277 #define VX_CHANNEL_A (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_CHANNEL, 0x13)) 1279 #define VX_CHANNEL_Y (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_CHANNEL, 0x14)) 1281 #define VX_CHANNEL_U (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_CHANNEL, 0x15)) 1283 #define VX_CHANNEL_V (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_CHANNEL, 0x16)) 1294 #define VX_MEMORY_TYPE_NONE (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_MEMORY_TYPE, 0x0)) 1297 #define VX_MEMORY_TYPE_HOST (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_MEMORY_TYPE, 0x1)) 1335 #define VX_INTERPOLATION_NEAREST_NEIGHBOR (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_INTERPOLATION, 0x0)) 1338 #define VX_INTERPOLATION_BILINEAR (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_INTERPOLATION, 0x1)) 1341 #define VX_INTERPOLATION_AREA (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_INTERPOLATION, 0x2)) 1352 #define VX_NONLINEAR_FILTER_MEDIAN (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_NONLINEAR, 0x0)) 1354 #define VX_NONLINEAR_FILTER_MIN (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_NONLINEAR, 0x1)) 1356 #define VX_NONLINEAR_FILTER_MAX (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_NONLINEAR, 0x2)) 1369 #define VX_PATTERN_BOX (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_PATTERN, 0x0)) 1371 #define VX_PATTERN_CROSS (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_PATTERN, 0x1)) 1373 #define VX_PATTERN_DISK (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_PATTERN, 0x2)) 1375 #define VX_PATTERN_OTHER (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_PATTERN, 0x3)) 1387 #define VX_COLOR_SPACE_NONE (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_COLOR_SPACE, 0x0)) 1389 #define VX_COLOR_SPACE_BT601_525 (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_COLOR_SPACE, 0x1)) 1391 #define VX_COLOR_SPACE_BT601_625 (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_COLOR_SPACE, 0x2)) 1393 #define VX_COLOR_SPACE_BT709 (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_COLOR_SPACE, 0x3)) 1396 #define VX_COLOR_SPACE_DEFAULT VX_COLOR_SPACE_BT709 1408 #define VX_CHANNEL_RANGE_FULL (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_COLOR_RANGE, 0x0)) 1410 #define VX_CHANNEL_RANGE_RESTRICTED (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_COLOR_RANGE, 0x1)) 1422 #define VX_PARAMETER_STATE_REQUIRED (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_PARAMETER_STATE, 0x0)) 1426 #define VX_PARAMETER_STATE_OPTIONAL (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_PARAMETER_STATE, 0x1)) 1436 #define VX_BORDER_UNDEFINED (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_BORDER, 0x0)) 1440 #define VX_BORDER_CONSTANT (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_BORDER, 0x1)) 1444 #define VX_BORDER_REPLICATE (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_BORDER, 0x2)) 1454 #define VX_BORDER_POLICY_DEFAULT_TO_UNDEFINED (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_BORDER_POLICY, 0x0)) 1456 #define VX_BORDER_POLICY_RETURN_ERROR (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_BORDER_POLICY, 0x1)) 1467 #define VX_TERM_CRITERIA_ITERATIONS (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_TERM_CRITERIA, 0x0)) 1469 #define VX_TERM_CRITERIA_EPSILON (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_TERM_CRITERIA, 0x1)) 1473 #define VX_TERM_CRITERIA_BOTH (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_TERM_CRITERIA, 0x2)) 1484 #define VX_NORM_L1 (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_NORM_TYPE, 0x0)) 1486 #define VX_NORM_L2 (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_NORM_TYPE, 0x1)) 1497 #define VX_DELAY_TYPE (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_DELAY, 0x0)) 1499 #define VX_DELAY_SLOTS (VX_ATTRIBUTE_ENUM(VX_ID_KHRONOS, VX_TYPE_DELAY, 0x1)) 1516 #define VX_READ_ONLY (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_ACCESSOR, 0x1)) 1520 #define VX_WRITE_ONLY (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_ACCESSOR, 0x2)) 1523 #define VX_READ_AND_WRITE (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_ACCESSOR, 0x3)) 1535 #define VX_ROUND_POLICY_TO_ZERO (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_ROUND_POLICY, 0x1)) 1537 #define VX_ROUND_POLICY_TO_NEAREST_EVEN (VX_ENUM(VX_ID_KHRONOS, VX_ENUM_ROUND_POLICY, 0x2)) 1542 #if defined(_WIN32) || defined(UNDER_CE) 1547 #define VX_FMT_REF "%I64u" 1551 #define VX_FMT_SIZE "%I64u" 1556 #define VX_FMT_REF "%lu" 1560 #define VX_FMT_SIZE "%lu" 1566 #define VX_FMT_REF "%p" 1570 #define VX_FMT_SIZE "%zu" 1575 #define VX_SCALE_UNITY (1024u) 1596 typedef struct _vx_imagepatch_addressing_t {
1610 #define VX_IMAGEPATCH_ADDR_INIT {0u, 0u, 0, 0, 0u, 0u, 0u, 0u} 1615 typedef struct _vx_perf_t {
1629 #define VX_PERF_INIT {0ul, 0ul, 0ul, 0ul, 0ul, 0ul} 1635 typedef struct _vx_kernel_info_t {
1652 #define VX_SCALE_PYRAMID_HALF (0.5f) 1657 #define VX_SCALE_PYRAMID_ORB ((vx_float32)0.8408964f) 1662 typedef struct _vx_keypoint_t {
1675 typedef struct _vx_rectangle_t {
1685 typedef struct _vx_coordinates2d_t {
1693 typedef struct _vx_coordinates3d_t {
1703 typedef union _vx_pixel_value_t {
1722 typedef struct _vx_border_t {
1842 #define VX_NOGAP_X 1 struct _vx_image * vx_image
An opaque reference to an image.
struct _vx_delay * vx_delay
The delay object. This is like a ring buffer of objects that is maintained by the OpenVX implementati...
vx_bool
A Boolean value. This allows 0 to be FALSE, as it is in C, and any non-zero to be TRUE...
vx_int32 y
The y coordinate.
vx_int32 x
The x coordinate.
vx_uint16 U16
VX_DF_IMAGE_U16
The 2D Coordinates structure.
uint16_t vx_uint16
A 16-bit unsigned value.
vx_action(* vx_nodecomplete_f)(vx_node node)
A callback to the client after a particular node has completed.
uint8_t vx_uint8
An 8-bit unsigned value.
struct _vx_array * vx_array
The Array Object. Array is a strongly-typed container for other data structures.
vx_int16 S16
VX_DF_IMAGE_S16
vx_uint32 scale_y
Scale of Y dimension. For sub-sampled planes this is the scaling factor of the dimension of the plane...
vx_uint32 step_y
Step of Y dimension in pixels.
vx_uint32 U32
VX_DF_IMAGE_U32
int16_t vx_int16
A 16-bit signed value.
size_t vx_size
A wrapper of size_t to keep the naming convention uniform.
void(* vx_log_callback_f)(vx_context context, vx_reference ref, vx_status status, vx_char string[])
The log callback function [R01650].
The keypoint data structure.
int32_t vx_enum
Sets the standard enumeration type size to be a fixed quantity.
vx_uint32 x
The X coordinate.
struct _vx_threshold * vx_threshold
The Threshold Object. A thresholding object contains the types and limit values of the thresholding r...
struct _vx_distribution * vx_distribution
The Distribution object. This has a user-defined number of bins over a user-defined range (within a u...
struct _vx_parameter * vx_parameter
An opaque reference to a single parameter.
int32_t vx_int32
A 32-bit signed value.
The addressing image patch structure is used by the Host only to address pixels in an image patch...
int64_t vx_int64
A 64-bit signed value.
The 3D Coordinates structure.
char vx_char
An 8 bit ASCII character.
float vx_float32
A 32-bit float value.
vx_float32 strength
The strength of the keypoint. Its definition is specific to the corner detector.
vx_enum mode
See The border mode list..
vx_enum vx_status
A formal status type with known fixed size.
vx_status(* vx_kernel_f)(vx_node node, vx_reference *parameters, vx_uint32 num)
The pointer to the Host side kernel [R01609].
struct _vx_context * vx_context
An opaque reference to the implementation context.
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...
vx_uint32 start_x
The Start X coordinate.
struct _vx_reference * vx_reference
A generic opaque reference to any object within OpenVX.
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].
vx_uint32 y
The Y coordinate.
vx_float32 scale
Initialized to 0 by corner detectors.
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...
vx_float32 error
A tracking method specific error. Initialized to 0 by corner detectors.
vx_int32 stride_x
Stride in X dimension in bytes.
uint32_t vx_df_image
Used to hold a VX_DF_IMAGE code to describe the pixel format and color space.
vx_int32 S32
VX_DF_IMAGE_S32
vx_pixel_value_t constant_value
For the mode VX_BORDER_CONSTANT, this union contains the value of out-of-bound pixels.
vx_uint32 dim_y
Height of patch in Y dimension in pixels.
vx_enum enumeration
The kernel enumeration value from The list of available kernels (or an extension thereof).
vx_uint32 step_x
Step of X dimension in pixels.
vx_status(* vx_unpublish_kernels_f)(vx_context context)
The type of the vxUnpublishKernels entry function of modules loaded by vxLoadKernels and unloaded by ...
double vx_float64
A 64-bit float value (aka double).
struct _vx_pyramid * vx_pyramid
The Image Pyramid object. A set of scaled images.
vx_uint32 x
The X coordinate.
struct _vx_kernel * vx_kernel
An opaque reference to the descriptor of a kernel.
vx_uint32 start_y
The Start Y coordinate.
vx_uint32 dim_x
Width of patch in X dimension in pixels.
vx_int32 tracking_status
A zero indicates a lost point. Initialized to 1 by corner detectors.
Union that describes the value of a pixel for any image format. Use the field corresponding to the im...
The rectangle data structure that is shared with the users. The area of the rectangle can be computed...
#define VX_CALLBACK
Defines calling convention for user callbacks.
vx_int32 stride_y
Stride in Y dimension in bytes.
vx_enum vx_action
The formal typedef of the response from the callback.
vx_uint32 end_x
The End X coordinate.
The Kernel Information Structure. This is returned by the Context to indicate which kernels are avail...
Use with the enumeration VX_NODE_BORDER to set the border mode behavior of a node that supports borde...
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...
struct _vx_object_array * vx_object_array
The ObjectArray Object. ObjectArray is a strongly-typed container of OpenVX data-objects.
struct _vx_convolution * vx_convolution
The Convolution Object. A user-defined convolution kernel of MxM elements [R01411].
#define VX_MAX_KERNEL_NAME
Defines the length of a kernel name string to be added to OpenVX, including the trailing zero [R01652...
struct _vx_remap * vx_remap
The remap table Object. A remap table contains per-pixel mapping of output pixels to input pixels...
uint32_t vx_uint32
A 32-bit unsigned value.
int8_t vx_int8
An 8-bit signed value.
struct _vx_graph * vx_graph
An opaque reference to a graph.
vx_float32 orientation
Initialized to 0 by corner detectors.
vx_uint8 U8
VX_DF_IMAGE_U8
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...
struct _vx_node * vx_node
An opaque reference to a kernel node.
#define VX_API_CALL
Defines calling convention for OpenVX API.
uintptr_t vx_map_id
Holds the address of a variable where the map/unmap functions return a map identifier.
uint64_t vx_uint64
A 64-bit unsigned value.
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...
vx_uint32 end_y
The End Y coordinate.
struct _vx_matrix * vx_matrix
The Matrix Object. An MxN matrix of some unit type.
struct _vx_scalar * vx_scalar
An opaque reference to a scalar [R01409].
vx_uint32 y
The Y coordinate.
vx_uint32 scale_x
Scale of X dimension. For sub-sampled planes this is the scaling factor of the dimension of the plane...
struct _vx_lut * vx_lut
The Look-Up Table (LUT) Object.
vx_uint32 z
The Z coordinate.