将整数打包为浮点数,找到原始整数

时间:2017-09-01 12:00:04

标签: image floating-point int type-conversion

我们将两个12位整数打包成三个8位RGB颜色,以将值传递给GPU。

过程如下:

  1. 生成两个16位整数(UV
  2. 它们被抽取为两个12位整数(我们正在删除不太重要的位)
  3. 这些24位数据以三种8位整数打包为RGB颜色。打包就是这样(Rx表示Bit x of channel R
  4. R8 R7 R6 R5 R4 R3 R2 R1 | G8 G7 G6 G5 U16 U15 U14 U13 U12 U11 U10 U9 U8 U7 U6 U5 G4 G3 G2 G1 | B8 B7 B6 B5 B4 B3 B2 B1 V16 V15 V14 V13 V12 V11 V10 V8 V7 V6 V5 V4

    1. 我没有收到RGB颜色作为整数,而是收到三个32位浮点值,每个颜色通道的范围从0.0到1.0,并且该软件中的所有图像操作都是用浮点数制作的。
    2. 这是原始的两个16位图像(转换为jpeg用于在浏览器中显示,此文件不是实际的数据源)。 U编码为红色频道,V为绿色。

      enter image description here

      这是打包版本,其中绿色通道保存U的较低有效位和V的最高有效位:

      enter image description here

      如何仅使用浮点运算回到原始图像(16位整数 - > 32位浮点数)?

      非常感谢!

0 个答案:

没有答案