50#ifndef DW_IMAGE_IMAGE_H_
51#define DW_IMAGE_IMAGE_H_
65#if (defined(__cplusplus) && (defined(LINUX) || defined(VIBRANTE)))
66#pragma GCC diagnostic push
67#pragma GCC diagnostic ignored "-Wold-style-cast"
70#include <cuda_runtime.h>
72#if (defined(__cplusplus) && (defined(LINUX) || defined(VIBRANTE)))
73#pragma GCC diagnostic pop
78#if VIBRANTE_PDK_DECIMAL < 6000400
79#include <nvmedia_image.h>
80#include <nvmedia_isp_stat.h>
91#define DW_MAX_IMAGE_PLANES 3
92#define DW_ISP_MAX_COLOR_COMPONENT (4U)
94#define DW_MAX_NUM_TEMPERATURES 4
346 DW_DEPRECATED(
"This structure variable is deprecated and will be removed in the next major release. Please use the new variable in sensorStatistics in this struct");
350 DW_DEPRECATED(
"This structure variable is deprecated and will be removed in the next major release. Please use the new variable in sensorStatistics in this struct");
354 DW_DEPRECATED(
"This structure variable is deprecated and will be removed in the next major release. Please use the new variable in sensorStatistics in this struct");
358 DW_DEPRECATED(
"This structure variable is deprecated and will be removed in the next major release. Please use the new variable in sensorStatistics in this struct");
361 float32_t wbGain[4]
DW_DEPRECATED(
"This structure variable is deprecated and will be removed in the next major release. Please use the new variable in sensorStatistics in this struct");
365 DW_DEPRECATED(
"This structure variable is deprecated and will be removed in the next major release. Please use the new variable in rawProperties in this struct");
443#if VIBRANTE_PDK_DECIMAL < 6000400
446 DW_DEPRECATED(
"NvMediaImage is deprecated and will be removed in the next major release.");
515#if VIBRANTE_PDK_DECIMAL < 6000400
526DW_DEPRECATED(
"dwImage_createAndBindNvMedia is deprecated. Since NvMediaImage is entirely removed this functionality is entirely removed. .")
730 uint32_t
const planeIdx);
763 size_t*
const planeCount,
NVIDIA DriveWorks API: Core Status Methods
NVIDIA DriveWorks API: Core Types
NVIDIA DriveWorks API: Core Methods
NVIDIA DriveWorks API: Core Exports
struct dwContextObject * dwContextHandle_t
Context handle.
#define DW_DEPRECATED(msg)
dwStatus
Status definition.
float float32_t
Specifies POD types.
dwTrivialDataType
Specifies a type indicator of the underlying trivial data type.
int64_t dwTime_t
Specifies a timestamp unit, in microseconds.
Defines a two-element unsigned-integer vector.
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
NvMediaImage * img
Holds the pointer to the NvMedia image.
dwImageProperties prop
Specifies the properites of the image.
void * dptr[DW_MAX_IMAGE_PLANES]
Holds the pointer to the image planes.
dwTime_t timestamp_us
Specifies the time, in microseconds, when the image was acquired.
dwImageProperties prop
Defines the properties of the image.
float32_t wbGain[4]
Specifies the sensor white balance gains : R(0) G1(1) G2(2) B(3)
float32_t analogGain
Specifies the analog Gain.
dwTime_t timestamp_us
Specifies the time, in microseconds, when the image was acquired.
float32_t conversionGain
Specifies the conversion Gain.
float32_t x
Holds X coordinate of the control point.
uint32_t msbPosition
Specifies the msb of the pixel data.
dwImageType type
Specifies the type of image.
uint32_t rawFormatDescriptor
Describes the raw order and used when explicitly creating a DW_IMAGE_NVMEDIA if DW_IMAGE_FLAGS_HAS_RA...
uint32_t rawBitDataType
Describes the raw pixel depth, specified like the above format descriptor by 1 - NVM_SURF_ATTR_BITS_P...
uint32_t msbPosition
Specifies the msb of the pixel data.
size_t pitch[DW_MAX_IMAGE_PLANES]
Defines the pitch of each plane in bytes.
float32_t conversionGain
Specifies the conversion Gain.
float64_t luminanceCalibrationFactor
Holds luminance constant (aperture^2/Kc) value for calibrated camera.
dwImageSplineControlPoint gtmSplineControlPoint[18U]
Holds the global tonemap block, containing a set of spline control points.
float32_t digitalGain
Specifies the digital Gain.
dwImageDataLines dataLines
embedded data lines.
dwImageAllocationAttrListHandle_t allocAttrs
Allocation attributes used by internal drivers.
dwImageProperties prop
Holds image properties.
uint32_t frameSequenceNumber
Holds a frame sequence number, that is, a monotonically increasing frame counter.
float32_t brightnessKey
Holds the scene brightness key.
uint32_t height
Specifies the height of the image in pixels.
uint8_t numTemperatures
Holds the number of active temperatures.
float32_t wbGain[4]
Specifies the sensor white balance gains : R(0) G1(1) G2(2) B(3)
uint32_t width
Specifies the width of the image in pixels.
cudaArray_t array[DW_MAX_IMAGE_PLANES]
Holds the CUDA image plane data.
float32_t cct
Holds the correlated color temperature.
float32_t analogGain
Specifies the analog Gain.
float32_t exposureTime
Specifies the exposure time (microsecond)
float32_t rawImageMidTone
Holds the midtone value of the raw image.
NvSciBufObj imgBuf
Holds the pointer to the NvSciBufObj image.
dwImageSensorStatistics sensorStatistics
Holds info on sensor statistics at the time of the image capture.
float32_t digitalGain
Specifies the digital Gain.
dwImageFormat format
Specifies the format of the image.
float32_t sensorTempCelsius[DW_MAX_NUM_TEMPERATURES]
Holds the values of active sensor temperatures in degrees Celsius.
dwImageRawProperties rawProperties
float32_t exposureTime
Specifies the exposure time (microsecond)
size_t pitch[DW_MAX_IMAGE_PLANES]
Specifies the pitch of the image in bytes.
dwTime_t timestamp_us
Specifies the time, in microseconds, when the image was acquired.
float32_t y
Holds Y coordinate of the control point.
float32_t alpha
Holds power factor for isp statistics compression. Valid range: [0.5, 1.0].
float32_t autoAwbGainGain[DW_ISP_MAX_COLOR_COMPONENT]
Holds the total white balance gains, which includes both sensor channel and ISP gains.
dwImageMetaData meta
additional meta information stored with the image. Not all images might provide it
float64_t slope
Holds slope of the spline curve at the control point.
uint32_t flags
combination of multiple flags 'dwImageMetaDataFlags' defining which of the meta fields are valid
uint8_t * data[DW_MAX_IMAGE_PLANES]
Specifies the raw image data.
dwImageMemoryType memoryLayout
Memory layout type.
DW_API_PUBLIC dwStatus dwImage_getPlaneCount(size_t *const planeCount, dwImageFormat const format)
Retrieves number of planes of the image format.
struct dwImageObject * dwImageHandle_t
#define DW_MAX_NUM_TEMPERATURES
should be the same as the DEVBLK_CDI_MAX_NUM_TEMPERATURES in NvSIPLCDICommon.h of NvSIPL
DW_API_PUBLIC dwStatus dwImage_getMetaData(dwImageMetaData *const metaData, dwConstImageHandle_t const image)
Retrieves the metadata of a dwImageHandle_t.
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 outp...
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.
struct dwImageObject const * dwConstImageHandle_t
DW_API_PUBLIC dwStatus dwImage_getTimestamp(dwTime_t *const timestamp, dwConstImageHandle_t const image)
Retrieves the timestamp of acquisition of a dwImageHandle_t.
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.
dwImageType
Specifies the image type.
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 ap...
dwImageMemoryType
Specifies memory type layout.
DW_API_PUBLIC dwStatus dwImage_createAndBindNvMedia(dwImageHandle_t *image, NvMediaImage *nvmImage)
Creates a dwImageHandle_t based on an nvmedia image.
DW_API_PUBLIC dwStatus dwImage_getNvMedia(dwImageNvMedia **imageNvMedia, dwImageHandle_t image)
Retrieves the dwImageNvMedia of a dwImageHandle_t.
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.
DW_API_PUBLIC dwStatus dwImage_setTimestamp(dwTime_t const timestamp, dwImageHandle_t const image)
Sets the timestamp of a dwImageHandle_t.
DW_API_PUBLIC dwStatus dwImage_getProperties(dwImageProperties *const properties, dwConstImageHandle_t const image)
Retrieves the properties of a dwImageHandle_t.
DW_API_PUBLIC dwStatus dwImage_getCUDA(dwImageCUDA **const imageCUDA, dwImageHandle_t const image)
Retrieves the dwImageCUDA of a dwImageHandle_t.
dwImageFormat
Format of the image represented as DW_IMAGE_FORMAT_COLORSPACE(_PIXELTYPE)(_PIXELORDER)
struct dwImageAllocationAttrList * dwImageAllocationAttrListHandle_t
DW_API_PUBLIC dwStatus dwImage_setMetaData(dwImageMetaData const *const metaData, dwImageHandle_t const image)
Sets the metadata of a dwImageHandle_t.
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 outp...
DW_API_PUBLIC dwStatus dwImage_destroy(dwImageHandle_t const image)
Destroys the image handle and frees any memory created by dwImage_create().
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.
dwImageMetaDataFlags
Flags defining the meta information available in an image.
#define DW_MAX_IMAGE_PLANES
#define DW_ISP_MAX_COLOR_COMPONENT
DW_API_PUBLIC dwStatus dwImage_getPixelType(dwTrivialDataType *const type, dwImageFormat const format)
Retrieves dwTrivialDataType associated with a specific format.
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.
DW_API_PUBLIC dwStatus dwImage_getCPU(dwImageCPU **const imageCPU, dwImageHandle_t const image)
Retrieves the dwImageCPU of a dwImageHandle_t.
@ DW_IMAGE_GL
This type is provided here for completeness only.
@ DW_IMAGE_MEMORY_TYPE_PITCH
pitch linear memory layout
@ DW_IMAGE_MEMORY_TYPE_DEFAULT
the default memory layout for a given image type, can be either pitch or block
@ DW_IMAGE_MEMORY_TYPE_BLOCK
block memory layout
@ DW_IMAGE_FORMAT_RGBA_FLOAT16
@ DW_IMAGE_FORMAT_RGB_UINT16_PLANAR
@ DW_IMAGE_FORMAT_RCC_FLOAT32_PLANAR
Not backed by NvSci.
@ DW_IMAGE_FORMAT_RGBA_UINT8
@ DW_IMAGE_FORMAT_RGB_UINT8_PLANAR
@ DW_IMAGE_FORMAT_YUV422_UINT8_SEMIPLANAR
@ DW_IMAGE_FORMAT_VUYX_UINT16
@ DW_IMAGE_FORMAT_RG_INT16
@ DW_IMAGE_FORMAT_RGB_FLOAT32
Not backed by NvSci.
@ DW_IMAGE_FORMAT_RGBA_FLOAT32
Not backed by NvSci.
@ DW_IMAGE_FORMAT_R_UINT32
@ DW_IMAGE_FORMAT_R_FLOAT32
Not backed by NvSci.
@ DW_IMAGE_FORMAT_RGBA_UINT16
@ DW_IMAGE_FORMAT_RGBX_FLOAT16
@ DW_IMAGE_FORMAT_YUV_UINT8_PLANAR
@ DW_IMAGE_FORMAT_RAW_UINT16
RAW for images directly from sensory.
@ DW_IMAGE_FORMAT_RGB_UINT16
Not backed by NvSci.
@ DW_IMAGE_FORMAT_YUV420_UINT8_SEMIPLANAR
@ DW_IMAGE_FORMAT_YUV_UINT16_PLANAR
@ DW_IMAGE_FORMAT_RG_UINT8
Not backed by NvSci.
@ DW_IMAGE_FORMAT_RG_FLOAT32
Not backed by NvSci.
@ DW_IMAGE_FORMAT_UNKNOWN
Normal formats.
@ DW_IMAGE_FORMAT_R_INT16
@ DW_IMAGE_FORMAT_R_UINT8
@ DW_IMAGE_FORMAT_VUYX_UINT8
@ DW_IMAGE_FORMAT_RCB_FLOAT32_PLANAR
Not backed by NvSci.
@ DW_IMAGE_FORMAT_YUV420_UINT8_PLANAR
YUV encoding formats from camera.
@ DW_IMAGE_FORMAT_RGB_FLOAT16
Not backed by NvSci.
@ DW_IMAGE_FORMAT_YUV420_UINT16_SEMIPLANAR
@ DW_IMAGE_FORMAT_RGB_FLOAT32_PLANAR
Not backed by NvSci.
@ DW_IMAGE_FORMAT_RCC_FLOAT16_PLANAR
Not backed by NvSci.
@ DW_IMAGE_FORMAT_RCB_FLOAT16_PLANAR
Not backed by NvSci.
@ DW_IMAGE_FORMAT_RAW_FLOAT16
for debayered images
@ DW_IMAGE_FORMAT_R_FLOAT16
@ DW_IMAGE_FORMAT_R_UINT16
@ DW_IMAGE_FORMAT_RGB_FLOAT16_PLANAR
Not backed by NvSci.
@ DW_IMAGE_FORMAT_RGB_UINT8
Not backed by NvSci.
@ DW_IMAGE_FLAGS_SENSOR_SETTINGS
Image contains valid sensor settings information, such as exposure, gain, whitebalance,...
@ DW_IMAGE_FLAGS_FRAME_SEQUENCE_NUMBER
Image contains valid frame sequence number.
@ DW_IMAGE_FLAGS_GTM_SPLINE_INFO
Image contains valid global tone map block.
@ DW_IMAGE_FLAGS_TOTAL_WHITE_BALANCE_GAIN
Holds the total white balance gains, which includes both sensor channel and ISP gains.
@ DW_IMAGE_FLAGS_CONTROLINFO
Holds a flag to determine whether or not the control info is valid. If no ISP processing occurs this ...
@ DW_IMAGE_FLAGS_LUMINANCE_CALIBRATED
Holds a flag to indicating if the luminance is calibrated.
@ DW_IMAGE_FLAGS_SYSMEM
By default CUDA images are created in vidmem on DGPU, this flag forces CUDA image to sysmem Note manu...
@ DW_IMAGE_FLAGS_EMBEDDED_LINES
If an image was extracted from a camera, additional embedded data lines might be provided The data li...
@ DW_IMAGE_FLAGS_HAS_RAW_ORDER_DESCRIPTOR
Image contains details of raw order descriptor.
@ DW_IMAGE_FLAGS_SENSOR_TEMPERATURE
Image contains valid sensor temperature info.
@ DW_IMAGE_FLAGS_NVSCI_SURF_ATTR
Image contains NvSci surface based attributes.
Defines a CPU-based image.
Container for data lines from the camera.
Specifies a pool of images.
Defines the properties of the image.
Sensor statistics associated with the image.