半精度浮点数
维基百科,自由的 encyclopedia
半精度浮点数 是一种被计算机使用的二进制浮点数据类型。半精度浮点数使用2个字节(16位)来存储。
在IEEE 754-2008中,它被称作binary16。这种数据类型只适合存储对精度要求不高的数字,不适合用来计算。
半精度浮点数是一种较新的浮点类型。 英伟达在2002年初发布的Cg语言中称它作 half 类型,并首次在2002年末发布的GeForce FX中实现。[1]ILM 当时正在寻找一种拥有高动态范围,且不需过多消耗硬盘和内存,并且能像单精度浮点数和双精度浮点数那样被用来进行浮点计算的图像格式。[2]由SGI的John Airey领导的硬件加速可编程着色小组在1997年发明了作为'bali'设计工作的一部分的s10e5数据类型,曾在SIGGRAPH 2000年的论文[3]中介绍过。(见章节 4.3)并且在美国专利7518615[4]中被进一步记录。
半精度浮点数可在OpenEXR, JPEG XR, OpenGL, Cg语言、D3DX等计算机图形环境中使用。其与8位或16位整数相比具有动态范围高的优点,可以使高对比度图片中更多细节得以保留。与单精度浮点数相比,它的优点是只需要一半的存储空间和带宽(但是会牺牲精度和数值范围)。[2]