Open main menu

CDOT Wiki β

Changes

GPU621/Group 3

1,128 bytes added, 10:02, 12 April 2023
IPP Implementation Summary
=='''IPP Implementation Summary'''==
IPP implementation class for this project is called IppImgProc. It performs three image processing tasks (sharpening, brighten, adjustSaturation) using the Intel Integrated Performance Primitives (IPP) library and OpenCV.
By using IPP we can leverage optimized functions that performs tasks in parallel without any additional library. In the constructor the number of Threads are defined using std::thread::hardware_concurrency() and the image is loaded using OpenCV function imread().
 
In the main functions sharpening(), brighten(), adjustSaturation(), specialized functions is used for each specific task such as ippiFilterLaplaceBorder_8u_C3R(), ippiAddC_8u_C3RSfs(), ippiHSVToRGB_8u_C3R() in order.
 
Each function that contains C3R uses 3 channels for image processing meaning it processes the colors as well. Note that function ippiFilterLaplaceBorder_8u_C3R() needs Buffer memory allocations.
 
This allocation can be made utilizing ippiFilterLaplaceBorderGetBufferSize().
 
Image data is captured using openCV methods like
img_.convertTo(gray8Img_, CV_8U);
width_ = gray8Img_.cols;
height_ = gray8Img_.rows;
<syntaxhighlight>
14
edits