CL_UNORM_INT8 for cl_image_format.image_channel_data_type的含义,以及与其他数据类型的区别
Meaning of CL_UNORM_INT8 for cl_image_format.image_channel_data_type, and its diffrence with other data types
各位!我不太清楚CL_UNORM_INT8的含义,它是cl_image_format.image_channel_data_type值的可用选择之一;这种类型有什么特点,它与 CL_UNSIGNED_INT8 有什么区别?
就存储而言,这些类型是相同的。在这两种情况下,每个像素通道值都将存储为 8 位整数,值范围为 0-255。当 reading/writing 来自内核的图像时,差异就出现了。
对于CL_UNSIGNED_INT8
类型,您将使用read_imageui
和write_imageui
函数来访问图像。这些函数将 return(或接受)一个无符号整数,其值在与存储类型相同的范围内。
对于CL_UNORM_INT8
类型,您将使用read_imagef
和write_imagef
函数来访问图像。这些函数将 return(或接受)范围 0.0f
- 1.0f
内的规范化浮点值。某些设备(例如大多数 GPU)具有对归一化纹理值的硬件支持,因此整数和归一化浮点值之间的转换将非常有效。
各位!我不太清楚CL_UNORM_INT8的含义,它是cl_image_format.image_channel_data_type值的可用选择之一;这种类型有什么特点,它与 CL_UNSIGNED_INT8 有什么区别?
就存储而言,这些类型是相同的。在这两种情况下,每个像素通道值都将存储为 8 位整数,值范围为 0-255。当 reading/writing 来自内核的图像时,差异就出现了。
对于CL_UNSIGNED_INT8
类型,您将使用read_imageui
和write_imageui
函数来访问图像。这些函数将 return(或接受)一个无符号整数,其值在与存储类型相同的范围内。
对于CL_UNORM_INT8
类型,您将使用read_imagef
和write_imagef
函数来访问图像。这些函数将 return(或接受)范围 0.0f
- 1.0f
内的规范化浮点值。某些设备(例如大多数 GPU)具有对归一化纹理值的硬件支持,因此整数和归一化浮点值之间的转换将非常有效。