写点什么

跟着卷卷龙一起学 Camera--3D LUT

作者:卷卷龙
  • 2022 年 9 月 28 日
    广东
  • 本文字数:912 字

    阅读完需:约 3 分钟

3D LUT 是在电影和显示工业里广泛使用的技术,最近几年被引入到很多 ISP 的设计中。在电影工业中,由于播放设备的不同,经常需要在不同色彩空间之间做映射,3D LUT 的一个功能就是被用来做色彩空间映射。在显示工业里,很多显卡或者电视都内置 3D LUT 色彩转换功能。

3D LUT 的原理很简单,RGB 3 个 1D LUT 组成 3D LUT,输入的 RGB 三个通道颜色值按照 3D LUT 的三个查找表做映射,得到转换后的颜色。3D LUT 是一个立方体,不同的设计有不同的节点数,以及节点的 bitdepth,比较典型的 33x33x33 的节点数,节点之间的输入会根据相邻的两点插值算出输出。

 

在 ISP 以往的设计中,无论是 CCM 还是 memory color enhancement,这些色彩运算都在 2D 色域上进行的。在 2D 色域进行的色彩映射只能是把色彩的 gammut 扩展,而 gammut 内部的大量颜色,是无法准确转换的。有了 3D LUT,则可以直接精确控制 n x n x n 个 节点的颜色。

举个实际的例子来说明为什么 2D 的色彩映射对 ISP 来说是不够的。

在基于 2D 色域校正或者色彩增强的处理中, 把肤色(patch2)校正到倾向的颜色。如果是在 CCM 中进行肤色调整这个操作,由于 CCM 是一个 global 的矩阵操作,这样就会影响到其他的颜色。

如果是在 YUV 域做色彩的映射,有的 ISP 叫 color enhancement,它可以把指定色彩区间的颜色映射到一个目标颜色上,这种方法的问题是,一方面颜色范围的选取非常难以把握的,选多了会碰到其他颜色,选少了可能阴影或者高亮位置的肤色就没有被处理到。如果要处理多人种的肤色,用这种方法工作量也非常大。3D LUT 本身的原理比较简单, 但是 3D LUT 的 tuning 工具是比较难做的,颜色样本的选取,过渡色的处理等等都是难题。

比较著名的一个 3D LUT tuning 工具 3D LUT creator 在这方面做的比较好。

以肤色调整为例,下图是目标肤色的照片:用户需要选取 high light, middle tone 和 shadow 三个肤色样本,

工具会记录下这三个肤色样本的 HSV 值。在要处理的照片上,同样选取 high light, middle tone 和 shadow 三个肤色样本。

这个工具会自动计算出来最终的 3D LUT 进行色彩映射,表面上看,用这种方法计算出 3D LUT 本身并不难,但是在处理过渡的颜色上,如何避免出现 banding 等瑕疵实际上是很复杂的,需要颜色工程师深入研究才能解决。


用户头像

卷卷龙

关注

还未添加个人签名 2022.07.26 加入

还未添加个人简介

评论

发布
暂无评论
跟着卷卷龙一起学Camera--3D LUT_ISP_卷卷龙_InfoQ写作社区