Browse Source

start to write cri filter2

cri
MMT 5 years ago
parent
commit
6e028b49b8
  1. 45
      source/model/processor/strategies/Cri.cpp
  2. 53
      source/model/processor/strategies/Cri.cpp.autosave

45
source/model/processor/strategies/Cri.cpp

@ -0,0 +1,45 @@
#include "model/processor/strategies/Cri.h"
#include "model/processor/BIP.h"
#include <QPixmap>
#include <QImage>
Cri::Cri(const Context context,const QString kernelPath,const QObject *parent = Q_NULLPTR) :
IProcessStrategy(context, kernelPath, "Cri", parent),
_kernelFunctor(KernelFunctor<Image2DArray, Image2D, Cri_t>(_kernel))
{
memset(&_kernelParameters, 0, sizeof (Cri_t));
// _criBuffer = new Image2D()[CRI_MAX_BUFFER_SIZE];
}
void Cri::cpuProcess(ScenGenOutput_t params)
{
if(params.criFilterMode.isUpdated)
_kernelParameters.criFilterMode = params.criFilterMode.value;
if(params.scenarioFrameNo.isUpdated)
_kernelParameters.scenariFrameNo = params.scenarioFrameNo.value;
if(params.frameCntr.isUpdated)
_kernelParameters.frameCntr = params.frameCntr.value;
}
void Cri::finalize()
{
}
Image* Cri::processKernel(Image *frames, Buffer* scratchPad)
{
auto format = frames->getImageInfo<CL_IMAGE_FORMAT>();
auto width = frames->getImageInfo<CL_IMAGE_WIDTH>();
auto height = frames->getImageInfo<CL_IMAGE_HEIGHT>();
_criBuffer[_kernelParameters.scenariFrameNo] = static_cast<Image2D*>(frames);
auto imageOutput = new Image2D(_CLContext,
CL_MEM_READ_WRITE,
ImageFormat(format.image_channel_order, format.image_channel_data_type),
width,
height);
delete frames;
return imageOutput;
}

53
source/model/processor/strategies/Cri.cpp.autosave

@ -0,0 +1,53 @@
#include "model/processor/strategies/Cri.h"
#include "model/processor/BIP.h"
#include <QPixmap>
#include <QImage>
Cri::Cri(const Context context,const QString kernelPath,const QObject *parent = Q_NULLPTR) :
IProcessStrategy(context, kernelPath, "Cri", parent),
_kernelFunctor(KernelFunctor<Image2DArray, Image2D, Cri_t>(_kernel))
{
memset(&_kernelParameters, 0, sizeof (Cri_t));
// _criBuffer = new Image2D()[CRI_MAX_BUFFER_SIZE];
}
void Cri::cpuProcess(ScenGenOutput_t params)
{
if(params.criFilterMode.isUpdated)
_kernelParameters.criFilterMode = params.criFilterMode.value;
if(params.scenarioFrameNo.isUpdated)
_kernelParameters.scenariFrameNo = params.scenarioFrameNo.value;
if(params.frameCntr.isUpdated)
_kernelParameters.frameCntr = params.frameCntr.value;
}
void Cri::finalize()
{
}
Image* Cri::processKernel(Image *frames, Buffer* scratchPad)
{
auto format = frames->getImageInfo<CL_IMAGE_FORMAT>();
auto width = frames->getImageInfo<CL_IMAGE_WIDTH>();
auto height = frames->getImageInfo<CL_IMAGE_HEIGHT>();
_criBuffer[_kernelParameters.scenariFrameNo] = static_cast<Image2D*>(frames);
auto im = Image2DArray(_CLContext, CL_MEM_READ_WRITE, ImageFormat(format.image_channel_order, format.image_channel_data_type),
16,
1000,
1000,
1000 * sizeof (myflt),
1000 * sizeof (myflt));
cl::enqueueReadImage()
auto imageOutput = new Image2D(_CLContext,
CL_MEM_READ_WRITE,
ImageFormat(format.image_channel_order, format.image_channel_data_type),
width,
height);
delete frames;
return imageOutput;
}
Loading…
Cancel
Save