MMT
5 years ago
2 changed files with 98 additions and 0 deletions
@ -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; |
||||
|
} |
@ -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…
Reference in new issue