NVIDIA DeepStream SDK API Reference

9.2 Release
cuDCFFrameTransformTexture Class Reference

Detailed Description

Crops, scales, and converts tracker image patches with CUDA textures.

Definition at line 25 of file sources/libs/nvmultiobjecttracker/include/modules/cuDCFv2/cuDCFFrameTransformTexture.hpp.

Inheritance diagram for cuDCFFrameTransformTexture:
Collaboration diagram for cuDCFFrameTransformTexture:

Public Member Functions

 cuDCFFrameTransformTexture ()
 Construct an uninitialized CUDA texture frame transform. More...
 
 ~cuDCFFrameTransformTexture ()
 Release CUDA texture frame-transform resources. More...
 
void initialize (const int debugVerboseLevel, const int maxStreamNum, const int maxBufSurfAddrSize, const int maxTargetNum, const NvMotDataTypes::Size srcImgSize, const uint srcImgPitch, const NvBufSurfaceColorFormat colorFormatType, const NvMotDataTypes::Size dstImgSize, const bool needSecondaryScale=false, const float secondaryScaleFactor=1.0)
 Initialize for image cropping and scaling. More...
 
bool frameTransformInBatch (const std::map< NvMOTStreamId, std::vector< std::pair< uint, NvMotDataTypes::Rect2f > > > &roisInBatch, const uint lastBboxInd)
 Transform (crop, scale and color conversion) a set of bboxes for the given single frame. More...
 
bool frameTransformInBatch_NV12 (const std::map< NvMOTStreamId, std::vector< std::pair< uint, NvMotDataTypes::Rect2f > > > &roisInBatch, const uint lastBboxInd, bool doMosaicing)
 Transform (crop, scale and color conversion) a set of bboxes for the given single frame. More...
 
void getOutputImagePatchPtrs (uint8_t *&dataPtr_d, uint &width, uint &height, uint2 &outBatchingGrid, uint &channels, uint &pitch, uint &imgNum, uint multiResInd)
 Get the pointer to the output image patches on device memory with metadata. More...
 
int getMultiResScaleNum () const
 Return the number of output scale levels. More...
 
uint2 getOutBatchingGrid () const
 Return the two-dimensional output batching grid. More...
 
bool isInitialized () const
 Report whether frame-transform initialization completed. More...
 
 cuDCFFrameTransformTexture ()
 Construct an uninitialized CUDA texture frame transform. More...
 
 ~cuDCFFrameTransformTexture ()
 Release CUDA texture frame-transform resources. More...
 
void initialize (const int debugVerboseLevel, const int maxStreamNum, const int maxBufSurfAddrSize, const int maxTargetNum, const NvMotDataTypes::Size srcImgSize, const uint srcImgPitch, const NvBufSurfaceColorFormat colorFormatType, const NvMotDataTypes::Size dstImgSize, const bool needSecondaryScale=false, const float secondaryScaleFactor=1.0)
 Initialize for image cropping and scaling. More...
 
bool frameTransformInBatch (const std::map< NvMOTStreamId, std::vector< std::pair< uint, NvMotDataTypes::Rect2f > > > &roisInBatch, const uint lastBboxInd)
 Transform (crop, scale and color conversion) a set of bboxes for the given single frame. More...
 
bool frameTransformInBatch_NV12 (const std::map< NvMOTStreamId, std::vector< std::pair< uint, NvMotDataTypes::Rect2f > > > &roisInBatch, const uint lastBboxInd, bool doMosaicing)
 Transform (crop, scale and color conversion) a set of bboxes for the given single frame. More...
 
void getOutputImagePatchPtrs (uint8_t *&dataPtr_d, uint &width, uint &height, uint2 &outBatchingGrid, uint &channels, uint &pitch, uint &imgNum, uint multiResInd)
 Get the pointer to the output image patches on device memory with metadata. More...
 
int getMultiResScaleNum () const
 Return the number of output scale levels. More...
 
uint2 getOutBatchingGrid () const
 Return the two-dimensional output batching grid. More...
 
bool isInitialized () const
 Report whether frame-transform initialization completed. More...
 
void initialize_common (const int debugVerboseLevel, const int maxStreamNum, const int maxBufSurfAddrSize, const int maxTargetNum, const NvMotDataTypes::Size srcImgSize, const uint srcImgPitch, const NvBufSurfaceColorFormat colorFormatType)
 Initialize common transform state and allocate output memory. More...
 
void initialize_common (const int debugVerboseLevel, const int maxStreamNum, const int maxBufSurfAddrSize, const int maxTargetNum, const NvMotDataTypes::Size srcImgSize, const uint srcImgPitch, const NvBufSurfaceColorFormat colorFormatType)
 Initialize common transform state and allocate output memory. More...
 
void updateTextureObject (const std::map< NvMOTStreamId, NvMOTFrame * > &inputMeta)
 Update texture objects from a batch of source frames. More...
 
void updateTextureObject (const std::map< NvMOTStreamId, NvMOTFrame * > &inputMeta)
 Update texture objects from a batch of source frames. More...
 
NvBufSurfaceColorFormat getColorFormat () const
 Get the input surface color format. More...
 
NvBufSurfaceColorFormat getColorFormat () const
 Get the input surface color format. More...
 
uint getMaxVideoStreams () const
 Get the maximum number of video streams in a batch. More...
 
uint getMaxVideoStreams () const
 Get the maximum number of video streams in a batch. More...
 
bool isInitialized_common () const
 Report whether common frame-transform state is initialized. More...
 
bool isInitialized_common () const
 Report whether common frame-transform state is initialized. More...
 

Protected Member Functions

void allocateOutputMemories_common ()
 Allocate device and host memory for transform output. More...
 
void allocateOutputMemories_common ()
 Allocate device and host memory for transform output. More...
 
void deAllocateOutputMemories_common ()
 Release device and host memory for transform output. More...
 
void deAllocateOutputMemories_common ()
 Release device and host memory for transform output. More...
 

Protected Attributes

bool m_isInit_common
 Indicates whether common transform state is initialized. More...
 
std::shared_ptr< FrameInputTexture > m_frameInput
 Shared input-frame texture manager. More...
 
float4 * m_rois_h
 
float4 * m_rois_d
 Host and device regions of interest in x, y, width, and height order. More...
 
uint2 * m_dstOffsets_h
 
uint2 * m_dstOffsets_d
 Host and device byte offsets into transform output memory. More...
 
std::map< uint, std::pair< NvMOTStreamId, uint > > m_targetNumInd2RoisInBatchMapper
 Stream and bounding-box indices keyed by batch target index. More...
 
int m_scaleFactor
 Scale that restores values read through normalized CUDA texture mode. More...
 
uint m_lastInd
 Number of targets in the latest transform. More...
 
uint m_numFramesInBatchMax
 Maximum number of frames processed in a batch. More...
 
int m_maxTargetsToTrack
 Maximum number of targets in a batch. More...
 
const int m_cudaBlockSize_2D
 CUDA block width and height for two-dimensional kernels. More...
 
cudaStream_t m_cuStream
 CUDA stream used for frame transformations. More...
 
int m_debugVerboseLevel
 Debug verbosity level. More...
 

Constructor & Destructor Documentation

◆ cuDCFFrameTransformTexture() [1/2]

cuDCFFrameTransformTexture::cuDCFFrameTransformTexture ( )

Construct an uninitialized CUDA texture frame transform.

◆ ~cuDCFFrameTransformTexture() [1/2]

cuDCFFrameTransformTexture::~cuDCFFrameTransformTexture ( )

Release CUDA texture frame-transform resources.

◆ cuDCFFrameTransformTexture() [2/2]

cuDCFFrameTransformTexture::cuDCFFrameTransformTexture ( )

Construct an uninitialized CUDA texture frame transform.

◆ ~cuDCFFrameTransformTexture() [2/2]

cuDCFFrameTransformTexture::~cuDCFFrameTransformTexture ( )

Release CUDA texture frame-transform resources.

Member Function Documentation

◆ allocateOutputMemories_common() [1/2]

void FrameTransformTexture::allocateOutputMemories_common ( )
protectedinherited

Allocate device and host memory for transform output.

◆ allocateOutputMemories_common() [2/2]

void FrameTransformTexture::allocateOutputMemories_common ( )
protectedinherited

Allocate device and host memory for transform output.

◆ deAllocateOutputMemories_common() [1/2]

void FrameTransformTexture::deAllocateOutputMemories_common ( )
protectedinherited

Release device and host memory for transform output.

◆ deAllocateOutputMemories_common() [2/2]

void FrameTransformTexture::deAllocateOutputMemories_common ( )
protectedinherited

Release device and host memory for transform output.

◆ frameTransformInBatch() [1/2]

bool cuDCFFrameTransformTexture::frameTransformInBatch ( const std::map< NvMOTStreamId, std::vector< std::pair< uint, NvMotDataTypes::Rect2f > > > &  roisInBatch,
const uint  lastBboxInd 
)

Transform (crop, scale and color conversion) a set of bboxes for the given single frame.

Parameters
[in]roisInBatchThe ROIs for each stream, as pairs of bbox index and rectangle.
[in]lastBboxIndThe last bbox index in the batch.
Returns
True when the batch transform finishes.

◆ frameTransformInBatch() [2/2]

bool cuDCFFrameTransformTexture::frameTransformInBatch ( const std::map< NvMOTStreamId, std::vector< std::pair< uint, NvMotDataTypes::Rect2f > > > &  roisInBatch,
const uint  lastBboxInd 
)

Transform (crop, scale and color conversion) a set of bboxes for the given single frame.

Parameters
[in]roisInBatchThe ROIs for each stream, as pairs of bbox index and rectangle.
[in]lastBboxIndThe last bbox index in the batch.
Returns
True when the batch transform finishes.

◆ frameTransformInBatch_NV12() [1/2]

bool cuDCFFrameTransformTexture::frameTransformInBatch_NV12 ( const std::map< NvMOTStreamId, std::vector< std::pair< uint, NvMotDataTypes::Rect2f > > > &  roisInBatch,
const uint  lastBboxInd,
bool  doMosaicing 
)

Transform (crop, scale and color conversion) a set of bboxes for the given single frame.

Parameters
[in]roisInBatchThe ROIs for each stream, as pairs of bbox index and rectangle.
[in]lastBboxIndThe last bbox index in the batch.
[in]doMosaicingWhether to mosaic the cropped patches.
Returns
True when the batch transform finishes.

◆ frameTransformInBatch_NV12() [2/2]

bool cuDCFFrameTransformTexture::frameTransformInBatch_NV12 ( const std::map< NvMOTStreamId, std::vector< std::pair< uint, NvMotDataTypes::Rect2f > > > &  roisInBatch,
const uint  lastBboxInd,
bool  doMosaicing 
)

Transform (crop, scale and color conversion) a set of bboxes for the given single frame.

Parameters
[in]roisInBatchThe ROIs for each stream, as pairs of bbox index and rectangle.
[in]lastBboxIndThe last bbox index in the batch.
[in]doMosaicingWhether to mosaic the cropped patches.
Returns
True when the batch transform finishes.

◆ getColorFormat() [1/2]

NvBufSurfaceColorFormat FrameTransformTexture::getColorFormat ( ) const
inlineinherited

◆ getColorFormat() [2/2]

NvBufSurfaceColorFormat FrameTransformTexture::getColorFormat ( ) const
inlineinherited

◆ getMaxVideoStreams() [1/2]

uint FrameTransformTexture::getMaxVideoStreams ( ) const
inlineinherited

Get the maximum number of video streams in a batch.

Definition at line 247 of file sources/libs/nvmultiobjecttracker/include/modules/FrameTransform/FrameTransform.hpp.

References FrameTransformTexture::m_numFramesInBatchMax.

◆ getMaxVideoStreams() [2/2]

uint FrameTransformTexture::getMaxVideoStreams ( ) const
inlineinherited

Get the maximum number of video streams in a batch.

Definition at line 247 of file 9.2/sources/libs/nvmultiobjecttracker/include/modules/FrameTransform/FrameTransform.hpp.

References FrameTransformTexture::m_numFramesInBatchMax.

◆ getMultiResScaleNum() [1/2]

int cuDCFFrameTransformTexture::getMultiResScaleNum ( ) const
inline

Return the number of output scale levels.

Definition at line 94 of file sources/libs/nvmultiobjecttracker/include/modules/cuDCFv2/cuDCFFrameTransformTexture.hpp.

◆ getMultiResScaleNum() [2/2]

int cuDCFFrameTransformTexture::getMultiResScaleNum ( ) const
inline

Return the number of output scale levels.

Definition at line 94 of file 9.2/sources/libs/nvmultiobjecttracker/include/modules/cuDCFv2/cuDCFFrameTransformTexture.hpp.

◆ getOutBatchingGrid() [1/2]

uint2 cuDCFFrameTransformTexture::getOutBatchingGrid ( ) const
inline

Return the two-dimensional output batching grid.

Definition at line 97 of file sources/libs/nvmultiobjecttracker/include/modules/cuDCFv2/cuDCFFrameTransformTexture.hpp.

◆ getOutBatchingGrid() [2/2]

uint2 cuDCFFrameTransformTexture::getOutBatchingGrid ( ) const
inline

Return the two-dimensional output batching grid.

Definition at line 97 of file 9.2/sources/libs/nvmultiobjecttracker/include/modules/cuDCFv2/cuDCFFrameTransformTexture.hpp.

◆ getOutputImagePatchPtrs() [1/2]

void cuDCFFrameTransformTexture::getOutputImagePatchPtrs ( uint8_t *&  dataPtr_d,
uint &  width,
uint &  height,
uint2 &  outBatchingGrid,
uint &  channels,
uint &  pitch,
uint &  imgNum,
uint  multiResInd 
)

Get the pointer to the output image patches on device memory with metadata.

Parameters
[out]dataPtr_dThe pointer to the beginning of the device data.
[out]widthThe width of an image patch.
[out]heightThe height of an image patch.
[out]outBatchingGridThe dimensions of the batching grid.
[out]channelsThe number of image channels.
[out]pitchThe byte length of one image line.
[out]imgNumThe number of images in the batch.
[in]multiResIndThe multi-resolution scale index.

◆ getOutputImagePatchPtrs() [2/2]

void cuDCFFrameTransformTexture::getOutputImagePatchPtrs ( uint8_t *&  dataPtr_d,
uint &  width,
uint &  height,
uint2 &  outBatchingGrid,
uint &  channels,
uint &  pitch,
uint &  imgNum,
uint  multiResInd 
)

Get the pointer to the output image patches on device memory with metadata.

Parameters
[out]dataPtr_dThe pointer to the beginning of the device data.
[out]widthThe width of an image patch.
[out]heightThe height of an image patch.
[out]outBatchingGridThe dimensions of the batching grid.
[out]channelsThe number of image channels.
[out]pitchThe byte length of one image line.
[out]imgNumThe number of images in the batch.
[in]multiResIndThe multi-resolution scale index.

◆ initialize() [1/2]

void cuDCFFrameTransformTexture::initialize ( const int  debugVerboseLevel,
const int  maxStreamNum,
const int  maxBufSurfAddrSize,
const int  maxTargetNum,
const NvMotDataTypes::Size  srcImgSize,
const uint  srcImgPitch,
const NvBufSurfaceColorFormat  colorFormatType,
const NvMotDataTypes::Size  dstImgSize,
const bool  needSecondaryScale = false,
const float  secondaryScaleFactor = 1.0 
)

Initialize for image cropping and scaling.

Parameters
[in]debugVerboseLevelThe debug level that selects which intermediate information is printed.
[in]maxStreamNumThe maximum number of streams to extract.
[in]maxBufSurfAddrSizeThe maximum number of possible surface buffer addresses.
[in]maxTargetNumThe maximum number of targets.
[in]srcImgSizeThe input image size.
[in]srcImgPitchThe input image pitch.
[in]colorFormatTypeThe color format of the input image.
[in]dstImgSizeThe image size after resizing.
[in]needSecondaryScaleWhether the image needs a secondary scale level.
[in]secondaryScaleFactorThe secondary scaling factor.

◆ initialize() [2/2]

void cuDCFFrameTransformTexture::initialize ( const int  debugVerboseLevel,
const int  maxStreamNum,
const int  maxBufSurfAddrSize,
const int  maxTargetNum,
const NvMotDataTypes::Size  srcImgSize,
const uint  srcImgPitch,
const NvBufSurfaceColorFormat  colorFormatType,
const NvMotDataTypes::Size  dstImgSize,
const bool  needSecondaryScale = false,
const float  secondaryScaleFactor = 1.0 
)

Initialize for image cropping and scaling.

Parameters
[in]debugVerboseLevelThe debug level that selects which intermediate information is printed.
[in]maxStreamNumThe maximum number of streams to extract.
[in]maxBufSurfAddrSizeThe maximum number of possible surface buffer addresses.
[in]maxTargetNumThe maximum number of targets.
[in]srcImgSizeThe input image size.
[in]srcImgPitchThe input image pitch.
[in]colorFormatTypeThe color format of the input image.
[in]dstImgSizeThe image size after resizing.
[in]needSecondaryScaleWhether the image needs a secondary scale level.
[in]secondaryScaleFactorThe secondary scaling factor.

◆ initialize_common() [1/2]

void FrameTransformTexture::initialize_common ( const int  debugVerboseLevel,
const int  maxStreamNum,
const int  maxBufSurfAddrSize,
const int  maxTargetNum,
const NvMotDataTypes::Size  srcImgSize,
const uint  srcImgPitch,
const NvBufSurfaceColorFormat  colorFormatType 
)
inherited

Initialize common transform state and allocate output memory.

Parameters
[in]debugVerboseLevelDebug verbosity level.
[in]maxStreamNumMaximum number of input streams.
[in]maxBufSurfAddrSizeMaximum number of cached surface-buffer addresses.
[in]maxTargetNumMaximum number of targets in a batch.
[in]srcImgSizeInput image dimensions.
[in]srcImgPitchInput image pitch in bytes.
[in]colorFormatTypeInput surface color format.

◆ initialize_common() [2/2]

void FrameTransformTexture::initialize_common ( const int  debugVerboseLevel,
const int  maxStreamNum,
const int  maxBufSurfAddrSize,
const int  maxTargetNum,
const NvMotDataTypes::Size  srcImgSize,
const uint  srcImgPitch,
const NvBufSurfaceColorFormat  colorFormatType 
)
inherited

Initialize common transform state and allocate output memory.

Parameters
[in]debugVerboseLevelDebug verbosity level.
[in]maxStreamNumMaximum number of input streams.
[in]maxBufSurfAddrSizeMaximum number of cached surface-buffer addresses.
[in]maxTargetNumMaximum number of targets in a batch.
[in]srcImgSizeInput image dimensions.
[in]srcImgPitchInput image pitch in bytes.
[in]colorFormatTypeInput surface color format.

◆ isInitialized() [1/2]

bool cuDCFFrameTransformTexture::isInitialized ( ) const
inline

Report whether frame-transform initialization completed.

Definition at line 100 of file sources/libs/nvmultiobjecttracker/include/modules/cuDCFv2/cuDCFFrameTransformTexture.hpp.

◆ isInitialized() [2/2]

bool cuDCFFrameTransformTexture::isInitialized ( ) const
inline

Report whether frame-transform initialization completed.

Definition at line 100 of file 9.2/sources/libs/nvmultiobjecttracker/include/modules/cuDCFv2/cuDCFFrameTransformTexture.hpp.

◆ isInitialized_common() [1/2]

bool FrameTransformTexture::isInitialized_common ( ) const
inlineinherited

Report whether common frame-transform state is initialized.

Definition at line 250 of file 9.2/sources/libs/nvmultiobjecttracker/include/modules/FrameTransform/FrameTransform.hpp.

References FrameTransformTexture::m_isInit_common.

◆ isInitialized_common() [2/2]

bool FrameTransformTexture::isInitialized_common ( ) const
inlineinherited

Report whether common frame-transform state is initialized.

Definition at line 250 of file sources/libs/nvmultiobjecttracker/include/modules/FrameTransform/FrameTransform.hpp.

References FrameTransformTexture::m_isInit_common.

◆ updateTextureObject() [1/2]

void FrameTransformTexture::updateTextureObject ( const std::map< NvMOTStreamId, NvMOTFrame * > &  inputMeta)
inherited

Update texture objects from a batch of source frames.

Parameters
[in]inputMetaSource frames keyed by stream ID.

◆ updateTextureObject() [2/2]

void FrameTransformTexture::updateTextureObject ( const std::map< NvMOTStreamId, NvMOTFrame * > &  inputMeta)
inherited

Update texture objects from a batch of source frames.

Parameters
[in]inputMetaSource frames keyed by stream ID.

Field Documentation

◆ m_cudaBlockSize_2D

const int FrameTransformTexture::m_cudaBlockSize_2D
protectedinherited

CUDA block width and height for two-dimensional kernels.

Definition at line 276 of file sources/libs/nvmultiobjecttracker/include/modules/FrameTransform/FrameTransform.hpp.

◆ m_cuStream

cudaStream_t FrameTransformTexture::m_cuStream
protectedinherited

CUDA stream used for frame transformations.

Definition at line 277 of file sources/libs/nvmultiobjecttracker/include/modules/FrameTransform/FrameTransform.hpp.

◆ m_debugVerboseLevel

int FrameTransformTexture::m_debugVerboseLevel
protectedinherited

◆ m_dstOffsets_d

uint2 * FrameTransformTexture::m_dstOffsets_d
protectedinherited

Host and device byte offsets into transform output memory.

Definition at line 266 of file sources/libs/nvmultiobjecttracker/include/modules/FrameTransform/FrameTransform.hpp.

◆ m_dstOffsets_h

uint2 * FrameTransformTexture::m_dstOffsets_h
protectedinherited

◆ m_frameInput

std::shared_ptr< FrameInputTexture > FrameTransformTexture::m_frameInput
protectedinherited

◆ m_isInit_common

bool FrameTransformTexture::m_isInit_common
protectedinherited

Indicates whether common transform state is initialized.

Definition at line 259 of file sources/libs/nvmultiobjecttracker/include/modules/FrameTransform/FrameTransform.hpp.

Referenced by FrameTransformTexture::isInitialized_common().

◆ m_lastInd

uint FrameTransformTexture::m_lastInd
protectedinherited

Number of targets in the latest transform.

Definition at line 271 of file sources/libs/nvmultiobjecttracker/include/modules/FrameTransform/FrameTransform.hpp.

◆ m_maxTargetsToTrack

int FrameTransformTexture::m_maxTargetsToTrack
protectedinherited

Maximum number of targets in a batch.

Definition at line 273 of file sources/libs/nvmultiobjecttracker/include/modules/FrameTransform/FrameTransform.hpp.

◆ m_numFramesInBatchMax

uint FrameTransformTexture::m_numFramesInBatchMax
protectedinherited

Maximum number of frames processed in a batch.

Definition at line 272 of file sources/libs/nvmultiobjecttracker/include/modules/FrameTransform/FrameTransform.hpp.

Referenced by FrameTransformTexture::getMaxVideoStreams().

◆ m_rois_d

float4 * FrameTransformTexture::m_rois_d
protectedinherited

Host and device regions of interest in x, y, width, and height order.

Definition at line 265 of file sources/libs/nvmultiobjecttracker/include/modules/FrameTransform/FrameTransform.hpp.

◆ m_rois_h

float4 * FrameTransformTexture::m_rois_h
protectedinherited

◆ m_scaleFactor

int FrameTransformTexture::m_scaleFactor
protectedinherited

Scale that restores values read through normalized CUDA texture mode.

Definition at line 270 of file sources/libs/nvmultiobjecttracker/include/modules/FrameTransform/FrameTransform.hpp.

◆ m_targetNumInd2RoisInBatchMapper

std::map< uint, std::pair< NvMOTStreamId, uint > > FrameTransformTexture::m_targetNumInd2RoisInBatchMapper
protectedinherited

Stream and bounding-box indices keyed by batch target index.

Definition at line 267 of file sources/libs/nvmultiobjecttracker/include/modules/FrameTransform/FrameTransform.hpp.


The documentation for this class was generated from the following file: