CL_UNORM_INT8对cl_image_format.image_channel_data_type的含义及其与其他数据类型的差异

时间:2015-07-30 08:14:40

标签: opencl gpgpu

大家好!我并不十分清楚CL_UNORM_INT8的含义,它是cl_image_format.image_channel_data_type值的可用选择之一;关于这种类型的具体内容,以及它与CL_UNSIGNED_INT8的区别是什么?

1 个答案:

答案 0 :(得分:5)

就存储而言,这些类型是相同的。在这两种情况下,每个像素通道值将存储为8位整数,其值在0-255范围内。从内核读取/写入图像时会出现差异。

对于CL_UNSIGNED_INT8类型,您将使用read_imageuiwrite_imageui函数来访问图片。这些函数将返回(或接受)无符号整数,其值与存储类型的范围相同。

对于CL_UNORM_INT8类型,您将使用read_imagefwrite_imagef函数来访问图片。这些函数将返回(或接受)归一化浮点值,范围为0.0f - 1.0f。某些设备(例如大多数GPU)具有对纹理值进行标准化的硬件支持,因此整数和标准化浮点值之间的转换将非常有效。