关于图像参数传递

wlgjvjsaxnf 2014-08-31 10:44:20
有一个问题困扰我很久,正好今天遇到类似的问题,依然没有找到合适的答案。我这里将帖子转帖过来,求帮助!

在数据传输下遇到的问题:

利用indata = clCreateBuffer(context, CL_MEM_READ_ONLY|CL_MEM_COPY_HOST_PTR, srcWidth*srcHight*sizeof(int), im, &status);这个函数传递数据到GPU上,描述如下:

当im是一维数组(大小有限)的时候,很顺利的实现传输,
当是一个指针的话就传不过去了,im实际是图像数据(1920*1080)。

现在我想将所有的数据传递给indata,该如何去做。
...全文
413 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
lcwyylcwyy 2014-09-27
  • 打赏
  • 举报
回复
引用 2 楼 outstander 的回复:
[quote=引用 楼主 wlgjvjsaxnf 的回复:] 有一个问题困扰我很久,正好今天遇到类似的问题,依然没有找到合适的答案。我这里将帖子转帖过来,求帮助! 在数据传输下遇到的问题: 利用indata = clCreateBuffer(context, CL_MEM_READ_ONLY|CL_MEM_COPY_HOST_PTR, srcWidth*srcHight*sizeof(int), im, &status);这个函数传递数据到GPU上,描述如下: 当im是一维数组(大小有限)的时候,很顺利的实现传输, 当是一个指针的话就传不过去了,im实际是图像数据(1920*1080)。 现在我想将所有的数据传递给indata,该如何去做。
你能给出im图像的定义么?直接用的int存每个像素?这种情况比较少见[/quote] 这个四通道像素,只是占宽而已,一般分配或传参时这样用,到用的时候会被分解成byte的,而且有的操作如清空图像这么做还能加速。好像clCreateBuffer(clContext,CL_MEM_READ_ONLY|CL_MEM_USE_HOST_PTR,inlength*pixelSize,(void *)inputImage,NULL);这么用就应该没问题了。
outstander 2014-09-25
  • 打赏
  • 举报
回复
引用 楼主 wlgjvjsaxnf 的回复:
有一个问题困扰我很久,正好今天遇到类似的问题,依然没有找到合适的答案。我这里将帖子转帖过来,求帮助! 在数据传输下遇到的问题: 利用indata = clCreateBuffer(context, CL_MEM_READ_ONLY|CL_MEM_COPY_HOST_PTR, srcWidth*srcHight*sizeof(int), im, &status);这个函数传递数据到GPU上,描述如下: 当im是一维数组(大小有限)的时候,很顺利的实现传输, 当是一个指针的话就传不过去了,im实际是图像数据(1920*1080)。 现在我想将所有的数据传递给indata,该如何去做。
你能给出im图像的定义么?直接用的int存每个像素?这种情况比较少见
lcwyylcwyy 2014-09-02
  • 打赏
  • 举报
回复
给你个例子,试试吧。clSetKernelArg(imageGrayKernel,0,sizeof(cl_mem),(void *)&d_inputImage);

603

社区成员

发帖
与我相关
我的任务
社区描述
异构开发技术
社区管理员
  • OpenCL和异构编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧