HDR图像文件格式之Radiance RGBE详细解析

RGBE文件的扩展名为.hdr,RGBE正式名称为RadianceRGBE格式。这个本来是BR、FR等作为radiance材质的一种格式,也叫做radiancemap,后来成为流行的一种HDR格式。所谓E,就是指数。RadianceRGBE文件每个通道为8bitBYTE数据类型,4个通道一共是32bit。RGBE可以使用RLE压缩编码压缩,也可以不压缩。由文件头、RGBE数据组成。

文件头如下:

类型输出格式

char programtype[16]; //#?Radiance/n#Generated by still/n

float gamma; //1.0

float exposure; //1.0

字符串常量//FORMAT=32-bit_rle_rgbe/n/n

int nWidth, int nHeight //-Y nHeight +X nWidth/n

RGBE数据与HDRFP32(RGB)相互转换公式如下:

1、rgbe->FP32(RGB)       (读操作)

如果e为0, R = G= B = 0.0,否则:

R = r * 2^(e – 128 - 8);

G = g * 2^(e – 128 - 8);

B = b * 2^(e – 128 - 8);

 

2、FP32(RGB)-> rgbe    (写操作)

v = max(R, G, B);

将v用科学计算法表示成v = m * 2 ^ n ( 0 < m < 1):

r = R * m * 256.0/v;

g = G * m * 256.0/v;

b = B * m * 256.0/v;

e = n + 128;

需要注意的是:


我们一般说HDR采用FP32,指的是HDR图象运算时候的内存数据类型,而RadianceRGBE文件采用8bitBYTE类型存储HDR数据。也就是说打开RadianceRGBE文件,要使用上面的公式1将RadianceRGBE文件的8bitBYTE文件数据转换为FP32的HDR内存数据进行运算;保存为RadianceRGBE文件时,要使用上面的公式2将HDR的FP32内存数据转换为RadianceRGBE的8bitBYTE文件数据进行保存。
 

下面以一张W*H为720*480的图像为例

0000h-0055h:文件头,其中0055h地址的0x0A代表ASCII码的回车符。

0056h-最后:图像数据,每像素存储顺序为rgbe,共4个字节。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值