VPI - Vision Programming Interface

2.0 Release

Types.h File Reference

Defines all types needed for programming with VPI. More...

#include "ImageFormat.h"
#include "Interpolation.h"
#include "PixelType.h"
#include "Status.h"
#include "Version.h"
#include <stdint.h>
+ Include dependency graph for Types.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  VPIParallelForConfig
 Stores the ParallelFor configuration. More...
struct  VPIKeypoint
 Stores a keypoint coordinate. More...
struct  VPIHomographyTransform2D
 Stores a generic 2D homography transform. More...
struct  VPIBoundingBox
 Stores a generic 2D bounding box. More...
struct  VPIKLTTrackedBoundingBox
 Stores a bounding box that is being tracked by KLT Tracker. More...
struct  VPIRectangleI
 Stores the geometric information of a rectangle. More...


 Defines the termination criteria macros. More...
 Termination based on maximum error (epsilon).
Common object flags.

These flags can be passed to the creation function of the following objects:

They might change some of the characteristics of the created object to conform to some expected behavior.

 Specifies that the memory will be accessed by only one stream at a time. More...
#define VPI_RESTRICT_MEM_USAGE   (1ULL << 17)
 Flag to restrict memory resources usage. More...
#define VPI_REQUIRE_BACKENDS   (1ULL << 18)
 Require creation of requested backends. More...


typedef void(* VPIParallelTask) (int taskId, int threadId, void *vpiData)
 Parallel task function pointer type.
typedef void(* VPIParallelForCallback) (VPIParallelTask task, int taskCount, void *vpiData, void *userData)
 Parallel for callback function pointer type. More...
typedef void * VPINativeThreadHandle
 A handle to OS-specific thread handle.
typedef struct VPIArrayImpl * VPIArray
 A handle to an array.
typedef struct VPIContextImpl * VPIContext
 A handle to a context.
typedef struct VPIEventImpl * VPIEvent
 A handle to an event.
typedef struct VPIStreamImpl * VPIStream
 A handle to a stream.
typedef struct VPIImageImpl * VPIImage
 A handle to an image.
typedef struct VPIPyramidImpl * VPIPyramid
 A handle to an image pyramid.
typedef struct VPIPayloadImpl * VPIPayload
 A handle to an algorithm payload.
typedef float VPICameraIntrinsic[2][3]
 Camera intrinsic matrix. More...
typedef float VPICameraExtrinsic[3][4]
 Camera extrinsic matrix. More...
typedef float VPIPerspectiveTransform[3][3]
 Represents a 2D perspective transform. More...


enum  VPIBorderExtension
 Image border extension specify how pixel values outside of the image domain should be constructed. More...
enum  VPIConversionPolicy
 Policy used when converting between image types. More...
enum  VPIOpticalFlowQuality
 Defines the quality of the optical flow algorithm. More...
enum  VPILockMode
 Defines the lock modes used by memory lock functions. More...
enum  VPIEventState
 Defines the states of the event. More...
enum  VPIFlipMode
 Defines image flip directions. More...

Memory creation flags.

These flags can be used when creating images, pyramids or arrays.

 Tegra-only backends.
 Tegra-only backends.
 All backends.
enum  VPIBackend
 VPI Backend types. More...

Detailed Description

Defines all types needed for programming with VPI.

Definition in file Types.h.

Macro Definition Documentation



Specifies that the memory will be accessed by only one stream at a time.

By default memories are created up so that at multiple streams can access it for reading simultaneously. Doing so might incur in increased system resources utilization. By specifying this flag when creating a VPIImage, VPIArray or VPIPyramid, when it's known that they won't be used concurrently by different streams, better resource allocation is achieved.

Definition at line 136 of file Types.h.


#define VPI_REQUIRE_BACKENDS   (1ULL << 18)

Require creation of requested backends.

With this flag set, the creation functions will require that the given backends are created. If any fail, the creation function will return an error. If not set, it'll try to enable the given backends, but disable the ones that are incompatible with the object parameters or not enabled in current context.

When applied to a context, this flag isn't propagated to objects created when this context is active.

Definition at line 159 of file Types.h.


#define VPI_RESTRICT_MEM_USAGE   (1ULL << 17)

Flag to restrict memory resources usage.

When passed as flags to certain VPI functions, it will instruct them to use less memory resources, in exchange of limiting their functionality. Please refer to documentation of these functions for further explanation on the trade-offs involved.

Definition at line 146 of file Types.h.

Enumeration Type Documentation

◆ VPIFlipMode

Defines image flip directions.

This is used by algorithms such as Image Flip


Flip horizontally.


Flip vertically.


Flip horizontally and vertically.

This effectively rotates the image 180 degrees.

Definition at line 526 of file Types.h.