Browse Source

start to write cri filter

cri
MMT 5 years ago
parent
commit
3b562bbba6
  1. 2
      MainWindow.cpp
  2. 3
      header/ScenarioParams.h
  3. 35
      header/model/processor/strategies/Cri.h
  4. 4
      header/utils/OpenCLHelper.h
  5. 2
      source/model/processor/strategies/ScanConversion.cpp
  6. 2
      source/model/processor/strategies/Sri.cpp

2
MainWindow.cpp

@ -6,6 +6,7 @@
#include <QtConcurrent/QtConcurrent>
#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)

3
header/ScenarioParams.h

@ -42,6 +42,9 @@ typedef struct ScenGenOutput_t
field_t<int> enhance;
field_t<int> enhanceAlgorithm;
field_t<int> persist;
field_t<int> criFilterMode;//cri
field_t<int> frameCntr;//cri
field_t<int> scenarioFrameNo;//cri
}ScenGenOutput_t;
template<typename T>

35
header/model/processor/strategies/Cri.h

@ -0,0 +1,35 @@
#ifndef CRI_H
#define CRI_H
#include <QObject>
#include <QMetaType>
#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<Image2DArray, Image2D, Cri_t> _kernelFunctor;
virtual Image* processKernel(Image *frames, Buffer* scratchPad) override;
Cri_t _kernelParameters;
Image2D* _criBuffer[CRI_MAX_BUFFER_SIZE];
};
#endif // CRI_H

4
header/utils/OpenCLHelper.h

@ -169,7 +169,9 @@ std::vector<Device> OpenCLHelper::getDevices(std::vector<Platform> platforms)
QString logText = "Devices registered successfuly: \"";
for (auto deviceIt = devices.begin(); deviceIt != devices.end(); deviceIt++)
{
logText = logText + QString::fromStdString(deviceIt->getInfo<CL_DEVICE_NAME>() + ",");
logText = logText + QString::fromStdString(deviceIt->getInfo<CL_DEVICE_NAME>() + " : ") +
QString::fromStdString(deviceIt->getInfo<CL_DEVICE_VERSION>() + " , ") +
QString::fromStdString(deviceIt->getInfo<CL_DEVICE_MAX_CONSTANT_BUFFER_SIZE>() + " ,");
}
logText = logText + "\"";
handleError(ESeverityLevel::Debug,

2
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

2
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<Image2D, Image2D, LocalSpaceArg, Buffer, Sri_t>(_kernelFunctor,
eargs,

Loading…
Cancel
Save