查找表(LOOKUP TABLES,缩写为LUT)
查找表(LUT)是一个将色彩以数字进行编码的长表,可用于将输入图像的每个像素的颜色映射为新的颜色,以此创建一个色彩有所不同的输出图像。
所有常见LUT的色彩都编码为RGB色彩,这意味着,查找表中每个色彩项都由三个值来表示,分别是“红”“绿”和“蓝”。原因之一是因为LUT在计算机图形中有自己的原始坐标,像素通常以RGB编码,而不是以模拟视频的YUV(Y’CbCr)编码。为了给一个图像套用LUT,该图像也需要进行RGB编码。
那我们一起来看看片场使用的LUT box。LUT box是一个可以将LUT应用于视频信号的装置。为了实现这个目的,LUT box需要:
- 从视频输入中读取Y’CbCr像素
- 将其转换为RGB
- 通过为原始RGB值寻找新的RGB色彩值应用LUT
- 将新的RGB图像像素转回Y’CbCr
- 最终将这些Y’CbCr像素置入视频输出
可以看到,将LUT应用于Y’CbCr视频信号,既需要Y’CbCR转RGB,又需要RGB转Y’CbCR。
RGB与Y’CBCR转换
要理解RGB如何转换为Y’CbCr的工作原理,我们就需要再次回到视频信号范围这个话题。
10-bit Y’CbCr信号的亮度通道(Y’)合法范围是64到940。这意味着一个全白像素的峰值亮度一般Y’码值为940。那么我们期待RGB编码的码值是怎样的呢?
对于计算机图形中RGB编码的像素来说,“动态余量”的概念不是必要条件,所以RGB一般在色彩编码时使用所有码值。假设我们要进行一个10-bit RGB编码(每个通道都是0到1023),R、G、B三个通道高光的全白像素等同于码值为1023的RGB像素(而不是940)——代表的是RGB编码中最亮的白色。
所以,一般从Y’CbCr进行来回转换会包含一些码值调整,将Y’CbCr的有效码值范围调整为RGB码值范围。只有通过这样的调整,(服务于RGB值的)LUT才能映射正确的色彩。在LUT应该处理超出合法范围的全白像素时,你不会想看到RGB编码的码值只限制于红绿蓝940 940 940(因为这个码值映射出来的是浅灰色),而应该是红绿蓝1023 1023 1023(因为这才映射出全白)。
到目前为止都一切正常,但接下来问题就出现了……
出处:Patrick Renner/Pomfort
翻译:盖雅翻译小组
系列阅读