https://zhuanlan.zhihu.com/p/24214731
### CIE XYZ 和 CIE RGB的区别
可以看到,曲线上出现了负数,这是怎么回事?回想一下前面描述的实验过程,左边是被测试的光色,右边是可调节的三色光的混合。如果碰到一种情况,右边三色光无论如何调节比例,都不能混合出左边的颜色,比如某种颜色的光强度已经减小为 0 了,然而看趋势还需要继续减小才能与左边的光色相匹配,怎么办?这时候需要往左边的光色中混入三色光中的一种或者几种,继续调节,直到两边的颜色匹配。在左边(被测试)的色光中添加,那就是相当于在右边的混合光中减去,这就导致了色匹配函数曲线上出现了负数。实际上,这相当于就是光线的「减法」了。 比如,对于 555nm 的黄色光,色匹配函数的值是 (1.30, 0.97, -0.01),意味着将 1.30 份的红光与 0.97 份的绿光混合放在右边,左边放上 1 份的 555nm 的黄光,以及 0.01 份的蓝光,这样左右两边的光色看上去就一样了。 因为有部分出现了负数,在使用和计算上都有不方便,因此就对这个匹配函数进行了一下线性变换,变换到一个所有分量都是正的空间中。变换后的色彩空间就是 CIE XYZ 色彩空间。 (图片数据来自 CVLR,我重新绘制)
这个转换函数(线性变化)难以理解, 见”色域马蹄图的产生”。
### SRGB 和 Rec.709 (HDTV)的区别
### 伽马矫正
https://zhuanlan.zhihu.com/p/142377883
### ICC 文件
所以我们在描述一个 RGB 颜色的时候,不仅需要描述它的 RGB 三个分量,还要说明是在哪个空间,这就是 ICC 文件的作用。
https://zhuanlan.zhihu.com/p/524890604
HDR设置和传输元数据metadata的目的,是想告诉视频使用者额外一些该视频的特性和信息,比如说画面的峰值亮度是多少。当某个显示器不支持这么高的峰值亮度时(比如HDR内容在SDR显示器上显示),就需要考虑该如何合理恰当的做tone mapping色调映射,从而使不同内容的画面可以正常显示,而不至于出现过曝或其他画面问题。
摄像头感应自然场景中光的变化用电信号存储下来,显示器把电信号转换成屏幕光信号展示出来,这个传递光的过程就叫传递函数。传递函数包含三个变换,相机采集线性光信号压缩成暗部细节更多的非线性电信号叫做光电转换(OETF),屏幕显示时解压缩的过程叫做电光转换(EOTF),修正相机环境和屏幕环境的亮度差异叫做光光转换(OOTF)。OETF、EOTF、OOTF中O是光optical的缩写、E是电electro的缩写、TF是传递函数transfer funciton的缩写。
1、将渲染线程与消息循环线程分开可以解决这个问题。 2. 在主线程里面搞, 在WM_PAINT消息上调用Render(大概16ms自动触发一次)
https://zhajiman.github.io/post/chromaticity_diagram/