You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
			
				
					54 lines
				
				1.8 KiB
			
		
		
			
		
	
	
					54 lines
				
				1.8 KiB
			| 
								 
											6 years ago
										 
									 | 
							
								#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;
							 | 
						||
| 
								 | 
							
								}
							 |