- Welcome
- Getting Started With the NVIDIA DriveWorks SDK
- Modules
- Samples
- Tools
- Tutorials
- SDK Porting Guide
- DriveWorks API
- More
Defines image abstractions, and streamer and format conversion APIs.
Unless explicitly specified, all errors returned by DW APIs are non recoverable and the user application should transition to fail safe mode. In addition, any error code not described in this documentation should be consider as fatal and the user application should also transition to fail safe mode.
Data Structures | |
struct | dwImageCPU |
Defines a CPU-based image. More... | |
struct | dwImageCUDA |
Defines a CUDA image. More... | |
struct | dwImageDataLines |
Container for data lines from the camera. More... | |
struct | dwImageMetaData |
Additional meta information stored with each image. More... | |
struct | dwImageNvMedia |
Defines an NvMedia image. More... | |
struct | dwImagePool |
Specifies a pool of images. More... | |
struct | dwImageProperties |
Defines the properties of the image. More... | |
struct | dwImageRawProperties |
struct | dwImageSensorStatistics |
Sensor statistics associated with the image. More... | |
struct | dwImageSplineControlPoint |
Modules | |
Image Streamer | |
Defines the image streamer function, enabling streaming images between different APIs. | |
Macros | |
#define | DW_ISP_MAX_COLOR_COMPONENT (4U) |
#define | DW_MAX_IMAGE_PLANES 3 |
#define | DW_MAX_NUM_TEMPERATURES 4 |
should be the same as the DEVBLK_CDI_MAX_NUM_TEMPERATURES in NvSIPLCDICommon.h of NvSIPL More... | |
Typedefs | |
typedef struct dwImageObject const * | dwConstImageHandle_t |
typedef struct dwImageAllocationAttrList * | dwImageAllocationAttrListHandle_t |
typedef struct dwImageObject * | dwImageHandle_t |
typedef uint32_t | GLenum |
typedef uint32_t | GLuint |
Functions | |
DW_API_PUBLIC dwStatus | dwImage_copyConvert (dwImageHandle_t const output, dwConstImageHandle_t const input, dwContextHandle_t const context) |
Converts CUDA or NvMedia images by copying into an output image, following the properties in the output image. More... | |
DW_API_PUBLIC dwStatus | dwImage_copyConvertAsync (dwImageHandle_t const output, dwConstImageHandle_t const input, cudaStream_t const stream, dwContextHandle_t const context) |
Converts CUDA or NvMedia images by copying into an output image, following the properties in the output image. More... | |
DW_API_PUBLIC dwStatus | dwImage_create (dwImageHandle_t *const image, dwImageProperties properties, dwContextHandle_t const ctx) |
Creates and allocates resources for a dwImageHandle_t based on the properties passed as input. More... | |
DW_API_PUBLIC dwStatus | dwImage_createAndBindBuffer (dwImageHandle_t *const image, dwImageProperties properties, void *const buffersIn[DW_MAX_IMAGE_PLANES], size_t const pitches[DW_MAX_IMAGE_PLANES], size_t const bufferCount, dwContextHandle_t const ctx) |
Creates a dwImageHandle_t based on the properties passed and binds a memory buffer provided by the application. More... | |
DW_API_PUBLIC dwStatus | dwImage_createAndBindCUDAArray (dwImageHandle_t *const image, dwImageProperties properties, cudaArray_t const buffers[DW_MAX_IMAGE_PLANES], size_t const bufferCount, dwContextHandle_t const ctx) |
Creates a dwImageHandle_t based on the properties passed and binds a cudaArray_t to it. More... | |
DW_API_PUBLIC dwStatus | dwImage_createAndBindNvMedia (dwImageHandle_t *image, NvMediaImage *nvmImage) |
Creates a dwImageHandle_t based on an nvmedia image. More... | |
DW_API_PUBLIC dwStatus | dwImage_destroy (dwImageHandle_t const image) |
Destroys the image handle and frees any memory created by dwImage_create(). More... | |
DW_API_PUBLIC dwStatus | dwImage_getCPU (dwImageCPU **const imageCPU, dwImageHandle_t const image) |
Retrieves the dwImageCPU of a dwImageHandle_t. More... | |
DW_API_PUBLIC dwStatus | dwImage_getCUDA (dwImageCUDA **const imageCUDA, dwImageHandle_t const image) |
Retrieves the dwImageCUDA of a dwImageHandle_t. More... | |
DW_API_PUBLIC dwStatus | dwImage_getDataLayout (size_t *const elementSize, size_t *const planeCount, uint32_t planeChannelCount[DW_MAX_IMAGE_PLANES], dwVector2ui planeSize[DW_MAX_IMAGE_PLANES], dwImageProperties const *const prop) |
Returns the expected data layout of an image given its properties. More... | |
DW_API_PUBLIC dwStatus | dwImage_getMetaData (dwImageMetaData *const metaData, dwConstImageHandle_t const image) |
Retrieves the metadata of a dwImageHandle_t. More... | |
DW_API_PUBLIC dwStatus | dwImage_getNvMedia (dwImageNvMedia **imageNvMedia, dwImageHandle_t image) |
Retrieves the dwImageNvMedia of a dwImageHandle_t. More... | |
DW_API_PUBLIC dwStatus | dwImage_getPixelType (dwTrivialDataType *const type, dwImageFormat const format) |
Retrieves dwTrivialDataType associated with a specific format. More... | |
DW_API_PUBLIC dwStatus | dwImage_getPlaneCount (size_t *const planeCount, dwImageFormat const format) |
Retrieves number of planes of the image format. More... | |
DW_API_PUBLIC dwStatus | dwImage_getProperties (dwImageProperties *const properties, dwConstImageHandle_t const image) |
Retrieves the properties of a dwImageHandle_t. More... | |
DW_API_PUBLIC dwStatus | dwImage_getTimestamp (dwTime_t *const timestamp, dwConstImageHandle_t const image) |
Retrieves the timestamp of acquisition of a dwImageHandle_t. More... | |
DW_API_PUBLIC dwStatus | dwImage_setMetaData (dwImageMetaData const *const metaData, dwImageHandle_t const image) |
Sets the metadata of a dwImageHandle_t. More... | |
DW_API_PUBLIC dwStatus | dwImage_setTimestamp (dwTime_t const timestamp, dwImageHandle_t const image) |
Sets the timestamp of a dwImageHandle_t. More... | |
DW_API_PUBLIC dwStatus | dwImageCUDA_getPlaneAsImage (dwImageCUDA *const planeImage, dwImageCUDA const *const srcImage, uint32_t const planeIdx) |
Returns a specific plane of a CUDA image as its own single-plane CUDA image. More... | |
DW_API_PUBLIC dwStatus | dwImageCUDA_mapToROI (dwImageCUDA *const dstImg, dwImageCUDA const *const srcImg, dwRect const roi) |
Returns a dwImageCUDA that is mapped to a region of interest in the data of the srcImg. More... | |
struct dwImageCPU |
Data Fields | ||
---|---|---|
uint8_t * | data[DW_MAX_IMAGE_PLANES] | Specifies the raw image data. |
size_t | pitch[DW_MAX_IMAGE_PLANES] | Specifies the pitch of the image in bytes. |
dwImageProperties | prop | Specifies the properites of the image. |
dwTime_t | timestamp_us | Specifies the time, in microseconds, when the image was acquired. |
struct dwImageCUDA |
Data Fields | ||
---|---|---|
cudaArray_t | array[DW_MAX_IMAGE_PLANES] | Holds the CUDA image plane data. |
void * | dptr[DW_MAX_IMAGE_PLANES] | Holds the pointer to the image planes. |
size_t | pitch[DW_MAX_IMAGE_PLANES] | Defines the pitch of each plane in bytes. |
dwImageProperties | prop | Defines the properties of the image. |
dwTime_t | timestamp_us | Specifies the time, in microseconds, when the image was acquired. |
struct dwImageDataLines |
Data Fields | ||
---|---|---|
uint8_t * | bottomLineData | |
uint32_t | bytesPerLine | |
dwVector2ui | embeddedDataSize | this defines the number of rows before and after the image |
uint8_t * | topLineData | pointer to the beginning of top and bottom lines |
struct dwImageMetaData |
Data Fields | ||
---|---|---|
dwImageAllocationAttrListHandle_t | allocAttrs | Allocation attributes used by internal drivers. |
float32_t | analogGain | Specifies the analog Gain. |
float32_t | conversionGain | Specifies the conversion Gain. |
dwImageDataLines | dataLines |
embedded data lines. This is where the meta data defined above are parsed from A RAW image coming from a sensor often contains this information arranged as extra lines before and after the image. The full image is stored in a buffer structured as [TOP DATA][IMAGE][BOTTOM DATA] (top * W) + (H * W) + (bott * W) |
float32_t | digitalGain | Specifies the digital Gain. |
float32_t | exposureTime | Specifies the exposure time (microsecond) |
uint32_t | flags | combination of multiple flags 'dwImageMetaDataFlags' defining which of the meta fields are valid |
uint32_t | frameSequenceNumber | Holds a frame sequence number, that is, a monotonically increasing frame counter. |
dwImageSplineControlPoint | gtmSplineControlPoint[18U] | Holds the global tonemap block, containing a set of spline control points. |
uint32_t | msbPosition | Specifies the msb of the pixel data. |
dwImageRawProperties | rawProperties | |
dwImageSensorStatistics | sensorStatistics | Holds info on sensor statistics at the time of the image capture. |
float32_t | wbGain[4] | Specifies the sensor white balance gains : R(0) G1(1) G2(2) B(3) |
struct dwImageNvMedia |
Data Fields | ||
---|---|---|
NvMediaImage * | img | Holds the pointer to the NvMedia image. |
NvSciBufObj | imgBuf | Holds the pointer to the NvSciBufObj image. |
dwImageProperties | prop | Holds image properties. |
dwTime_t | timestamp_us | Specifies the time, in microseconds, when the image was acquired. |
struct dwImagePool |
Data Fields | ||
---|---|---|
size_t | imageCount | |
dwImageHandle_t * | images |
struct dwImageProperties |
Data Fields | ||
---|---|---|
dwImageFormat | format | Specifies the format of the image. |
uint32_t | height | Specifies the height of the image in pixels. |
dwImageMemoryType | memoryLayout | Memory layout type. |
dwImageMetaData | meta | additional meta information stored with the image. Not all images might provide it |
dwImageType | type | Specifies the type of image. |
uint32_t | width | Specifies the width of the image in pixels. |
struct dwImageRawProperties |
struct dwImageSensorStatistics |
Data Fields | ||
---|---|---|
float32_t | alpha | Holds power factor for isp statistics compression. Valid range: [0.5, 1.0]. |
float32_t | analogGain | Specifies the analog Gain. |
float32_t | autoAwbGainGain[DW_ISP_MAX_COLOR_COMPONENT] | Holds the total white balance gains, which includes both sensor channel and ISP gains. |
float32_t | brightnessKey | Holds the scene brightness key. |
float32_t | cct | Holds the correlated color temperature. |
float32_t | conversionGain | Specifies the conversion Gain. |
float32_t | digitalGain | Specifies the digital Gain. |
float32_t | exposureTime | Specifies the exposure time (microsecond) |
float64_t | luminanceCalibrationFactor | Holds luminance constant (aperture^2/Kc) value for calibrated camera. |
uint8_t | numTemperatures |
Holds the number of active temperatures. Valid only if DW_IMAGE_FLAGS_SENSOR_TEMPERATURE is enabled. Value range: [1, DEVBLK_CDI_MAX_NUM_TEMPERATURES]. The DEVBLK_CDI_MAX_NUM_TEMPERATURES is defined in NvSIPLCDICommon.h of NvSIPL The value is equal to the number of the temperature sensors in the specific image sensor being used. |
float32_t | rawImageMidTone | Holds the midtone value of the raw image. |
float32_t | sensorTempCelsius[DW_MAX_NUM_TEMPERATURES] |
Holds the values of active sensor temperatures in degrees Celsius. Valid only if DW_IMAGE_FLAGS_SENSOR_TEMPERATURE is enabled. Indexes are in the range [0, numTemperatures - 1]. These values are obtained from the mapped registers of image sensor by NvSIPL and the detailed implemetation is depending on the camera module and camera driver. |
float32_t | wbGain[4] | Specifies the sensor white balance gains : R(0) G1(1) G2(2) B(3) |
struct dwImageSplineControlPoint |
#define DW_MAX_NUM_TEMPERATURES 4 |
typedef struct dwImageObject const* dwConstImageHandle_t |
typedef struct dwImageAllocationAttrList* dwImageAllocationAttrListHandle_t |
typedef struct dwImageObject* dwImageHandle_t |
enum dwImageFormat |
Format of the image represented as DW_IMAGE_FORMAT_COLORSPACE(_PIXELTYPE)(_PIXELORDER)
enum dwImageMemoryType |
enum dwImageMetaDataFlags |
Flags defining the meta information available in an image.
enum dwImageType |
DW_API_PUBLIC dwStatus dwImage_copyConvert | ( | dwImageHandle_t const | output, |
dwConstImageHandle_t const | input, | ||
dwContextHandle_t const | context | ||
) |
Converts CUDA or NvMedia images by copying into an output image, following the properties in the output image.
The output image must have been memory allocated (see 'dwImage_create'). Note that both images must be of the same type. If the properties and memory layout of both images are the same, an identical copy of the input image onto the output image is performed. The sizes must match (for conversion with resize, see dwImageTransformation under dw/imageprocessing/geometry). The conversion is performed, for both image types using DW's GPU kernel implementations. For use of the VIC engine via NvMedia2D, refer to dwImageTransformation
[out] | output | A pointer to the output image. |
[in] | input | A pointer to the input image. |
[in] | context | The sdk context. |
DW_API_PUBLIC dwStatus dwImage_copyConvertAsync | ( | dwImageHandle_t const | output, |
dwConstImageHandle_t const | input, | ||
cudaStream_t const | stream, | ||
dwContextHandle_t const | context | ||
) |
Converts CUDA or NvMedia images by copying into an output image, following the properties in the output image.
The output image must have been memory allocated (see 'dwImage_create'). Note that both images must be of the same type. If the properties and memory layout of both images are the same, an identical copy of the input image onto the output image is performed. The sizes must match (for conversion with resize, see dwImageTransformation under dw/imageprocessing/geometry). The conversion is performed, for both image types using DW's GPU kernel implementations. For use of the VIC engine via NvMedia2D, refer to dwImageTransformation
[out] | output | A pointer to the output image. |
[in] | input | A pointer to the input image. |
[in] | stream | The CUDA stream for executing the conversion kernel. Note this is ignored in case of NvMedia |
[in] | context | The sdk context. |
DW_API_PUBLIC dwStatus dwImage_create | ( | dwImageHandle_t *const | image, |
dwImageProperties | properties, | ||
dwContextHandle_t const | ctx | ||
) |
Creates and allocates resources for a dwImageHandle_t based on the properties passed as input.
[out] | image | A handle to the image |
[in] | properties | The image properties. |
[in] | ctx | The DriveWorks context. |
DW_API_PUBLIC dwStatus dwImage_createAndBindBuffer | ( | dwImageHandle_t *const | image, |
dwImageProperties | properties, | ||
void *const | buffersIn[DW_MAX_IMAGE_PLANES], | ||
size_t const | pitches[DW_MAX_IMAGE_PLANES], | ||
size_t const | bufferCount, | ||
dwContextHandle_t const | ctx | ||
) |
Creates a dwImageHandle_t based on the properties passed and binds a memory buffer provided by the application.
Valid only for types of DW_IMAGE_CPU and DW_IMAGE_CUDA with DW_IMAGE_LAYOUT_PITCH (or DEFAULT) layout.
[out] | image | A handle to the image |
[in] | properties | The image properties. |
[in] | buffersIn | An array of pointers to individual buffers. |
[in] | pitches | An array of pitches for each buffer. |
[in] | bufferCount | The number of buffers (maximum is DW_MAX_IMAGE_PLANES). |
[in] | ctx | The DriveWorks context. |
DW_API_PUBLIC dwStatus dwImage_createAndBindCUDAArray | ( | dwImageHandle_t *const | image, |
dwImageProperties | properties, | ||
cudaArray_t const | buffers[DW_MAX_IMAGE_PLANES], | ||
size_t const | bufferCount, | ||
dwContextHandle_t const | ctx | ||
) |
Creates a dwImageHandle_t based on the properties passed and binds a cudaArray_t to it.
Valid only for types of DW_IMAGE_CUDA with DW_IMAGE_LAYOUT_BLOCK layout
[out] | image | A handle to the image |
[in] | properties | The image properties. |
[in] | buffers | An array of pointers to cudaArray_t. |
[in] | bufferCount | The number of buffers (maximum is DW_MAX_IMAGE_PLANES). |
[in] | ctx | The DriveWorks context. |
DW_API_PUBLIC dwStatus dwImage_createAndBindNvMedia | ( | dwImageHandle_t * | image, |
NvMediaImage * | nvmImage | ||
) |
Creates a dwImageHandle_t based on an nvmedia image.
[out] | image | A handle to the image |
[in] | nvmImage | The pointer to an NvMediaImage. |
DW_API_PUBLIC dwStatus dwImage_destroy | ( | dwImageHandle_t const | image | ) |
Destroys the image handle and frees any memory created by dwImage_create().
If the image was created with createAndBindX, it will unbind the memory and delete the handle without freeing the buffers
[in] | image | A handle to the image |
DW_API_PUBLIC dwStatus dwImage_getCPU | ( | dwImageCPU **const | imageCPU, |
dwImageHandle_t const | image | ||
) |
Retrieves the dwImageCPU of a dwImageHandle_t.
The image must have been created as a DW_IMAGE_CPU type Note that any modification to the image retrieved will modify the content of the original handle
[out] | imageCPU | A pointer to the dwImageCPU pointer |
[in] | image | A handle to the image |
DW_API_PUBLIC dwStatus dwImage_getCUDA | ( | dwImageCUDA **const | imageCUDA, |
dwImageHandle_t const | image | ||
) |
Retrieves the dwImageCUDA of a dwImageHandle_t.
The image must have been created as a DW_IMAGE_CUDA type. Note that any modification to the image retrieved will modify the content of the original handle
[out] | imageCUDA | A pointer to the dwImageCUDA pointer |
[in] | image | A handle to the image |
DW_API_PUBLIC dwStatus dwImage_getDataLayout | ( | size_t *const | elementSize, |
size_t *const | planeCount, | ||
uint32_t | planeChannelCount[DW_MAX_IMAGE_PLANES], | ||
dwVector2ui | planeSize[DW_MAX_IMAGE_PLANES], | ||
dwImageProperties const *const | prop | ||
) |
Returns the expected data layout of an image given its properties.
The byte size for plane i's row is:
elementSize*planeChannelCount[i]*planeWidth[i]
[out] | elementSize | Size in bytes of the pixel type |
[out] | planeCount | Number of planes |
[out] | planeChannelCount | Number of channels within each plane |
[out] | planeSize | Size of each plane |
[in] | prop | A pointer to the image properties to compute data layout from. |
DW_API_PUBLIC dwStatus dwImage_getMetaData | ( | dwImageMetaData *const | metaData, |
dwConstImageHandle_t const | image | ||
) |
Retrieves the metadata of a dwImageHandle_t.
[out] | metaData | A pointer to the metadata |
[in] | image | A handle to the image |
DW_API_PUBLIC dwStatus dwImage_getNvMedia | ( | dwImageNvMedia ** | imageNvMedia, |
dwImageHandle_t | image | ||
) |
Retrieves the dwImageNvMedia of a dwImageHandle_t.
The image must have been created as a DW_IMAGE_NVEMDIA type Note that any modification to the image retrieved will modify the content of the original handle
[out] | imageNvMedia | A pointer to the dwImageNvMedia pointer |
[in] | image | A handle to the image |
DW_API_PUBLIC dwStatus dwImage_getPixelType | ( | dwTrivialDataType *const | type, |
dwImageFormat const | format | ||
) |
Retrieves dwTrivialDataType associated with a specific format.
[out] | type | The datatype |
[in] | format | The format |
DW_API_PUBLIC dwStatus dwImage_getPlaneCount | ( | size_t *const | planeCount, |
dwImageFormat const | format | ||
) |
Retrieves number of planes of the image format.
[out] | planeCount | The plane count |
[in] | format | The format |
DW_API_PUBLIC dwStatus dwImage_getProperties | ( | dwImageProperties *const | properties, |
dwConstImageHandle_t const | image | ||
) |
Retrieves the properties of a dwImageHandle_t.
[out] | properties | A pointer to the properties |
[in] | image | A handle to the image |
DW_API_PUBLIC dwStatus dwImage_getTimestamp | ( | dwTime_t *const | timestamp, |
dwConstImageHandle_t const | image | ||
) |
Retrieves the timestamp of acquisition of a dwImageHandle_t.
[out] | timestamp | A pointer to the timestamp |
[in] | image | A handle to the image |
DW_API_PUBLIC dwStatus dwImage_setMetaData | ( | dwImageMetaData const *const | metaData, |
dwImageHandle_t const | image | ||
) |
Sets the metadata of a dwImageHandle_t.
[in] | metaData | A pointer to the metadata |
[in] | image | A handle to the image |
DW_API_PUBLIC dwStatus dwImage_setTimestamp | ( | dwTime_t const | timestamp, |
dwImageHandle_t const | image | ||
) |
Sets the timestamp of a dwImageHandle_t.
[out] | timestamp | Timestamp to be set |
[in] | image | A handle to the image |
DW_API_PUBLIC dwStatus dwImageCUDA_getPlaneAsImage | ( | dwImageCUDA *const | planeImage, |
dwImageCUDA const *const | srcImage, | ||
uint32_t const | planeIdx | ||
) |
Returns a specific plane of a CUDA image as its own single-plane CUDA image.
No data is copied, only the pointers are duplicated.
[out] | planeImage | 'dwImageCUDA' to be filled with a single plane from 'srcImage' |
[in] | srcImage | Source image to extract plane from |
[in] | planeIdx | Index of the plane to extract |
DW_API_PUBLIC dwStatus dwImageCUDA_mapToROI | ( | dwImageCUDA *const | dstImg, |
dwImageCUDA const *const | srcImg, | ||
dwRect const | roi | ||
) |
Returns a dwImageCUDA that is mapped to a region of interest in the data of the srcImg.
NOTE: only single plane images are supported.
[out] | dstImg | A pointer to the dwImageCUDA containing the roi. NOTE: the properties will reflect the size of the roi. (NOTE: this is not a copy) |
[in] | srcImg | A pointer to the source dwImageCUDA. |
[in] | roi | A dwRect specifying the coordinates of the region of interest. |