Defines image abstractions, and streamer and format conversion APIs.
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 | dwImageProperties |
Defines the properties of the image. More... | |
Modules | |
Image Streamer | |
Defines the image streamer function, enabling streaming images between different APIs. | |
Macros | |
#define | DW_MAX_IMAGE_PLANES 3 |
Typedefs | |
typedef struct dwImageObject const * | dwConstImageHandle_t |
typedef struct dwImageObject * | dwImageHandle_t |
typedef uint32_t | GLenum |
typedef uint32_t | GLuint |
Functions | |
DW_API_PUBLIC dwStatus | dwImage_copyConvert (dwImageHandle_t output, dwConstImageHandle_t input, dwContextHandle_t 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 output, dwConstImageHandle_t input, cudaStream_t stream, dwContextHandle_t 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 *image, dwImageProperties properties, dwContextHandle_t 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 *image, dwImageProperties properties, void *buffersIn[DW_MAX_IMAGE_PLANES], size_t pitches[DW_MAX_IMAGE_PLANES], size_t bufferCount, dwContextHandle_t 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 *image, dwImageProperties properties, cudaArray_t buffers[DW_MAX_IMAGE_PLANES], size_t bufferCount, dwContextHandle_t 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 image) |
Destroys the image handle and frees any memory created by dwImage_create(). More... | |
DW_API_PUBLIC dwStatus | dwImage_getCPU (dwImageCPU **imageCPU, dwImageHandle_t image) |
Retrieves the dwImageCPU of a dwImageHandle_t. More... | |
DW_API_PUBLIC dwStatus | dwImage_getCUDA (dwImageCUDA **imageCUDA, dwImageHandle_t image) |
Retrieves the dwImageCUDA of a dwImageHandle_t. More... | |
DW_API_PUBLIC dwStatus | dwImage_getDataLayout (size_t *elementSize, size_t *planeCount, uint32_t planeChannelCount[DW_MAX_IMAGE_PLANES], dwVector2ui planeSize[DW_MAX_IMAGE_PLANES], const dwImageProperties *prop) |
Returns the expected data layout of an image given its properties. More... | |
DW_API_PUBLIC dwStatus | dwImage_getMetaData (dwImageMetaData *metaData, dwConstImageHandle_t 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 *type, const dwImageFormat format) |
Retrieves dwTrivialDataType associated with a specific format. More... | |
DW_API_PUBLIC dwStatus | dwImage_getPlaneCount (size_t *planeCount, const dwImageFormat format) |
Retrieves number of planes of the image format. More... | |
DW_API_PUBLIC dwStatus | dwImage_getProperties (dwImageProperties *properties, dwConstImageHandle_t image) |
Retrieves the properties of a dwImageHandle_t. More... | |
DW_API_PUBLIC dwStatus | dwImage_getTimestamp (dwTime_t *timestamp, dwConstImageHandle_t image) |
Retrieves the timestamp of acquisition of a dwImageHandle_t. More... | |
DW_API_PUBLIC dwStatus | dwImage_setTimestamp (dwTime_t timestamp, dwImageHandle_t image) |
Sets the timestamp of a dwImageHandle_t. More... | |
DW_API_PUBLIC dwStatus | dwImageCUDA_getPlaneAsImage (dwImageCUDA *planeImage, const dwImageCUDA *srcImage, uint32_t planeIdx) |
Returns a specific plane of a CUDA image as its own single-plane CUDA image. More... | |
DW_API_PUBLIC dwStatus | dwImageCUDA_mapToROI (dwImageCUDA *dstImg, const dwImageCUDA *srcImg, dwRect 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 | ||
---|---|---|
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. |
uint32_t | msbPosition | Specifies the msb of the pixel data. |
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. |
dwImageProperties | prop | Holds image properties. |
dwTime_t | timestamp_us | Specifies the time, in microseconds, when the image was acquired. |
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. |
typedef struct dwImageObject const* dwConstImageHandle_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 | output, |
dwConstImageHandle_t | input, | ||
dwContextHandle_t | 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)
[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 | output, |
dwConstImageHandle_t | input, | ||
cudaStream_t | stream, | ||
dwContextHandle_t | 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)
[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 * | image, |
dwImageProperties | properties, | ||
dwContextHandle_t | 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 * | image, |
dwImageProperties | properties, | ||
void * | buffersIn[DW_MAX_IMAGE_PLANES], | ||
size_t | pitches[DW_MAX_IMAGE_PLANES], | ||
size_t | bufferCount, | ||
dwContextHandle_t | 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 * | image, |
dwImageProperties | properties, | ||
cudaArray_t | buffers[DW_MAX_IMAGE_PLANES], | ||
size_t | bufferCount, | ||
dwContextHandle_t | 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 | 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 ** | imageCPU, |
dwImageHandle_t | 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 ** | imageCUDA, |
dwImageHandle_t | 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 * | elementSize, |
size_t * | planeCount, | ||
uint32_t | planeChannelCount[DW_MAX_IMAGE_PLANES], | ||
dwVector2ui | planeSize[DW_MAX_IMAGE_PLANES], | ||
const dwImageProperties * | 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 * | metaData, |
dwConstImageHandle_t | 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 * | type, |
const dwImageFormat | format | ||
) |
Retrieves dwTrivialDataType associated with a specific format.
[out] | type | The datatype |
[in] | format | The format |
DW_API_PUBLIC dwStatus dwImage_getPlaneCount | ( | size_t * | planeCount, |
const dwImageFormat | 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 * | properties, |
dwConstImageHandle_t | 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 * | timestamp, |
dwConstImageHandle_t | 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_setTimestamp | ( | dwTime_t | timestamp, |
dwImageHandle_t | 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 * | planeImage, |
const dwImageCUDA * | srcImage, | ||
uint32_t | 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 * | dstImg, |
const dwImageCUDA * | srcImg, | ||
dwRect | 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. |