我正在尝试使用Image对象进行图像处理。
我将图像对象处理时间与缓冲对象处理时间进行了比较。
我发现YUV420中的图像对象比缓冲对象慢。
由于数据大小,我分别处理了Y和UV。
Y是原始尺寸,UV是原始图像尺寸的四分之一。
所以,我使用cl_image_format
我认为图像对象在处理图像时是更快的缓冲对象。
但是,这真是一个意想不到的结果。
我不知道原因。
我认为图像对象比24位的缓冲对象占用更多的位大小。
但是,我不能确定。
答案 0 :(得分:0)
这一切都取决于您的访问模式。对于合并读取,缓冲区最快,但对于非合并读取,它比使用图像慢。您可以使用共享本地内存作为缓存来解决这个问题。
图像使用针对空间局部性优化的纹理缓存。因此对于附近的读取 - 水平或垂直 - 它可能比缓冲区更快。
您没有显示任何代码,但如果您看到缓冲区的速度更快,那么您必须具有合并读取。如果您更改了访问模式,那么可能是相反的方式。