diff --git a/MainWindow.cpp b/MainWindow.cpp index 0e79d3e..e40929f 100644 --- a/MainWindow.cpp +++ b/MainWindow.cpp @@ -6,6 +6,7 @@ #include #include "model/processor/BIP.h" +#include "model/processor/strategies/Cri.h" #include "model/processor/strategies/DynCont.h" #include "model/processor/strategies/GrayMap.h" #include "model/processor/strategies/TintMap.h" @@ -89,6 +90,7 @@ void MainWindow::registerStrategies() REGISTER_STRATEGY(DynCont) REGISTER_STRATEGY(Enhance) REGISTER_STRATEGY(Persist) + REGISTER_STRATEGY(Cri) } void MainWindow::pushBackStrategy(const QString strategyName, const QString kernelFolder) diff --git a/header/ScenarioParams.h b/header/ScenarioParams.h index a951f15..724f67e 100644 --- a/header/ScenarioParams.h +++ b/header/ScenarioParams.h @@ -42,6 +42,9 @@ typedef struct ScenGenOutput_t field_t enhance; field_t enhanceAlgorithm; field_t persist; + field_t criFilterMode;//cri + field_t frameCntr;//cri + field_t scenarioFrameNo;//cri }ScenGenOutput_t; template diff --git a/header/model/processor/strategies/Cri.h b/header/model/processor/strategies/Cri.h new file mode 100644 index 0000000..ea8a5ae --- /dev/null +++ b/header/model/processor/strategies/Cri.h @@ -0,0 +1,35 @@ +#ifndef CRI_H +#define CRI_H + +#include +#include + +#include "model/processor/IProcessStrategy.h" +#include "utils/OpenCLHelper.h" + +#define CRI_MAX_BUFFER_SIZE 16 + + +typedef struct Cri_t +{ + cl_int criFilterMode; + cl_int frameCntr; + cl_int scenariFrameNo; +}Cri_t; + + +class Cri : public IProcessStrategy +{ + Q_OBJECT +public: + Q_INVOKABLE Cri(const Context context, const QString kernelPath, const QObject *parent); + virtual void cpuProcess(ScenGenOutput_t parameters) override; + virtual void finalize() override; + +private: + KernelFunctor _kernelFunctor; + virtual Image* processKernel(Image *frames, Buffer* scratchPad) override; + Cri_t _kernelParameters; + Image2D* _criBuffer[CRI_MAX_BUFFER_SIZE]; +}; +#endif // CRI_H diff --git a/header/utils/OpenCLHelper.h b/header/utils/OpenCLHelper.h index c4b9e29..6a2d266 100644 --- a/header/utils/OpenCLHelper.h +++ b/header/utils/OpenCLHelper.h @@ -169,7 +169,9 @@ std::vector OpenCLHelper::getDevices(std::vector platforms) QString logText = "Devices registered successfuly: \""; for (auto deviceIt = devices.begin(); deviceIt != devices.end(); deviceIt++) { - logText = logText + QString::fromStdString(deviceIt->getInfo() + ","); + logText = logText + QString::fromStdString(deviceIt->getInfo() + " : ") + + QString::fromStdString(deviceIt->getInfo() + " , ") + + QString::fromStdString(deviceIt->getInfo() + " ,"); } logText = logText + "\""; handleError(ESeverityLevel::Debug, diff --git a/source/model/processor/strategies/ScanConversion.cpp b/source/model/processor/strategies/ScanConversion.cpp index c241695..6809a7e 100644 --- a/source/model/processor/strategies/ScanConversion.cpp +++ b/source/model/processor/strategies/ScanConversion.cpp @@ -26,6 +26,8 @@ ScanConversion::ScanConversion(const Context context, void ScanConversion::cpuProcess(ScenGenOutput_t params) { + + auto context = _openCLHelper.getContext(); auto queue = BIP::getInstance()->CLQueue; //virtual convex diff --git a/source/model/processor/strategies/Sri.cpp b/source/model/processor/strategies/Sri.cpp index 08a87d5..acb1343 100644 --- a/source/model/processor/strategies/Sri.cpp +++ b/source/model/processor/strategies/Sri.cpp @@ -107,7 +107,7 @@ Image* Sri::processKernel(Image *frames, Buffer* scratchPad) } else - { + { cl::EnqueueArgs eargs(BIP::getInstance()->CLQueue, cl::NDRange(width, height)); _openCLHelper.runKernelFunctor(_kernelFunctor, eargs,