图像处理在高性能计算应用中是很重要的。在OpenCL中,为存储器对象提供了一个特别的类型来存储1维、2维或者3维纹理、帧缓冲或图像。这个特别的类型就是图像对象。图像对象与缓冲区对象一样也是用cl_mem数据类型来表示。但是图像对象封装了一个图像的多种信息:
- 图像大小:2维图像的宽度和高度,以及3维图像的深度。
- 图像格式:内存中图像像素的位深度和布局。
- 存储器访问标志:图像是只读、只写还是可读可写。内核从图像对象获取数据时需要采样器。采样器告诉图像读取函数如何访问图像。
- 坐标模式:从图像获取数据所用的纹理坐标规格化至范围[0…1],还是范围[0…image_dim-1]。
- 寻址模式:当坐标超出图像边界时,从图像获取数据的行为。
- 过滤模式:从图像获取数据时,是取一个样本还是使用多个样本过滤。