CUVI SDK is an image processing kit written and developed on C-CUDA and C++ for over a period of ten years. The SDK includes 100+ image processing and computer vision functions that are plug-n-play for imaging applications in a plethora of verticals. Each function is hand crafted and highly optimized to run on CUDA supported GPUs. Many functions use our own proprietary approach to algorithms and processing to make the best out of hardware and input data.
Modules
CUVI comes in following image processing modules.
- Arithmetic & Logical
- Color Operations
- Computer Vision
- Data Exchange
- Geometry Transforms
- Image Filtering
- Image Statistics
- Image Transforms
- Image Codecs
Function List
CUVI Core
CUVI Core includes the following helper functionality:
CuviImage
A C++ class to hold image data on the device. It has the following methods
- CuviImage(); - default constructor
- CuviImage(CuviSize size, Cuvi32s depth, Cuvi32s channels) - Main Constructor. throws exception in case of failure
- CuviImage(const CuviImage&) - copy constructor
- upload(const void* pSrcHost, const Cuvi32s srcPitch) - Copy image data from host to device.
- upload(const void* pSrcHost, const Cuvi32s srcPitch, const CuviStream& stream) - Asynchronously copy image data from host to device.
- upload(const void* pSrcHost, CuviRect srcROI, const Cuvi32s srcPitch, CuviPoint2D<int> dstOrigin) - Copy a chunk of image data from host to device.
- upload(const void* pSrcHost, CuviRect srcROI, const Cuvi32s srcPitch, CuviPoint2D<int> dstOrigin, const CuviStream& stream) - Asynchronously copy a chunk of image data from host to device.
- download(void* pDstHost, const Cuvi32s dstPitch) - Copy image data from device to host
- download(void* pDstHost, const Cuvi32s dstPitch, const CuviStream& stream) - Asynchronously copy image data from device to host
- download(void* pDstHost, CuviPoint2D<int> dstOrigin, const Cuvi32s dstPitch, CuviRect srcROI) - Copy a chunk of image data from device to host
- download(void* pDstHost, CuviPoint2D<int> dstOrigin, const Cuvi32s dstPitch, CuviRect srcROI, const CuviStream& stream) - Asynchronously copy a chunk of image data from device to host
- copyTo(CuviImage& dst, CuviPoint2D<int> dstOrigin, CuviRect srcROI, const CuviStream& stream = CuviStream()) - Copy image data (or an ROI of it) from one Cuvi Image to another.
- show(const std::string& title = "CUVI Image", Cuvi32s milliseconds = 0) - Render device image directly on the screen
- ~CuviImage() - Destructor. Frees Device Memory. throws exception in case of failure
Timer
CUVI provides a C++ Timer class that accurately profiles your application timing
- Start() - Starts the timer.
- Stop() - Stops the timer
- Reset() - Resets the timer
- GetElapsedTime() - Returns the elapsed time between Start and Stop calls in seconds
|
DeviceProperties
CuviDeviceProperties holds all the important properties of underlying CUDA device. Device management functions are present inside the namespace cuvi::device.
- Cuvi32s getDeviceCount() - Gives the count of devices installed in the machine
- Cuvi32s getCurentDevice() - Returns the ID of selected graphics card
- CuviStatus setCurrentDevice(const Cuvi32s ID) - Makes any device an active device
- CuviStatus getDeviceProperties(const Cuvi32s deviceID, CuviDeviceProperties& props) - Returns all the important properties of desired GPU
|
|