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