Skip to content

Gamma 变换学习记录

复制本地路径 | 在线编辑

Gamma 变换就是对像素做了一个指数为 0.45 的指数变换。如何记住 2.2 和 0.45 的凹凸曲线:用 y=x^2 记。

  1. 实现方式

    不用管网上花里胡哨的讲解,现在都是查表,高大上叫 LUT。就是事先计算好转换的值,存储为一个列表。到时候对于像素 x,假设列表是 G,直接取 G[x]。现在硬件那么便宜了,这点空间就别省了。

    一个很容易忽略的点:先在高 bit 下进行 gamma,之后再转为低 bit。比如 12bit 下进行 gamma 变换(4096 个值),之后再去截高 8 位,生成 8bit 的图。为什么这样?如果直接再 8bit 下进行变换(256 个值),最后生成的也是 8bit:那么采样精度会大大降低,相当于最后的图可能只有几十个值,虽然结果确实会变亮,但是精度会降低很多。

  2. 为什么要有这个流程

    不用管网上关于显示器的讲解了,那都是过时的东西。就是因为人眼对暗处很不敏感,也就是暗处的差距要扩大化,所以做了这样的变换。

Comments