大家好!我并不十分清楚CL_UNORM_INT8的含义,它是cl_image_format.image_channel_data_type值的可用选择之一;关于这种类型的具体内容,以及它与CL_UNSIGNED_INT8的区别是什么?
答案 0 :(得分:5)
就存储而言,这些类型是相同的。在这两种情况下,每个像素通道值将存储为8位整数,其值在0-255范围内。从内核读取/写入图像时会出现差异。
对于CL_UNSIGNED_INT8
类型,您将使用read_imageui
和write_imageui
函数来访问图片。这些函数将返回(或接受)无符号整数,其值与存储类型的范围相同。
对于CL_UNORM_INT8
类型,您将使用read_imagef
和write_imagef
函数来访问图片。这些函数将返回(或接受)归一化浮点值,范围为0.0f
- 1.0f
。某些设备(例如大多数GPU)具有对纹理值进行标准化的硬件支持,因此整数和标准化浮点值之间的转换将非常有效。