Log,止于营销

Apple 在 iPhone 上引入了 Log 格式的视频拍摄能力之后,安卓这边自然也是不会落后,各品牌都推出了自己的 Log 视频格式,纵观各自的实现与实践,有的厂商提供了还算清晰的文档和工具,有的甚至连规格书都缺失。更多的是止于发布会上的一句宣传和广告,以我的身边统计学来看,真正在使用安卓手机上 Log 的人少之又少,一只手都数得过来。

Log 是一种非常依赖生态和工具链的东西,毕竟 Log 视频是为了编码而生,并非直接观看。如何正确的从 Log 中把信息恢复出来,集成进工作流程中,最终制作成面向观众的视频也是 Log 必不可少的部分,而不仅仅是拍摄时候的一次色调压缩而已。

在这一点上,就不得不把 Apple 这个手机 Log 的先行者请来进行对比,在流行的 Davinci 中,你可以直接使用为 Apple Log 制作的 LUT,也可以在颜色空间转换(CST)中直接选择 Apple Log 与 Apple Wide Gamut 进行输入变换,更进一步的,开启了自动色彩管理之后,Apple Log 素材可以直接被识别并自动管理。使用 iPhone 拍摄的素材与相机拍摄的素材可以无缝协作,使用体验上已经完全没有区别。

而安卓这边情况就比较糟糕了,VIVO 截至 2025 年 11 月还没有具体的白皮书,OPPO 提供了白皮书,介绍 OPPO Log 和 OPPO Wide Gamut 的规格,也提供了向 SDR(Rec. 709)或 HDR(PQ)转换的 LUT,以及 CTL 和 ACES 的代码,小米的情况与 OPPO 类似,且支持的更早一些,色彩科学库 colour-science 已经添加了对 Mi-Log 的支持。

值得一提的是,用 OPPO 手机拍摄 Log 的体验是比较糟糕的,首先你需要一个 Find X8 Ultra 及以后的 Find 系列手机或者一加 15,然后需要在二级菜单的专业视频中,再点击设置才能找到 Log 选项。启用之后,只能通过一个很粗糙的直方图来判断曝光,而且没有监看 LUT。ISO 需要大于 800,但你也可以手动选择更低的值,此时会进行拉伸(类似拓展 ISO)损失动态范围,且没有任何提示。拍完以后,也没有办法在相册里使用还原 LUT,因此无法直接在机内进行编辑和分享。

OPPO Log 设置与录制界面

X8 Ultra 以前的 OPPO 手机虽然也能在一样的位置找到 Log 视频选项,但拍摄的并非 OPPO Log,是无法用 OPPO Log 对应的曲线或 LUT 正确还原的,导致那个 Log 处于完全不可用的状态。

说得严重一点,安卓这边的 Log 视频,既没有实际用户,也没有三方软件的支持,更没有形成社区生态,是停留在营销的噱头而已。

OPPO Log

虽然基本不能用,但既然它存在,我们就来品鉴一下。

要了解 OPPO Log,最佳选择自然是其白皮书。白皮书有中文和英文两版,内容有些不同的地方,可以互为参考。

从白皮书中我们可以知道,视频采用 H.265 4:2:0 10bit 编码,4K 60fps 的码率是 120 Mbps。拍摄一分钟的 4K 30fps 需要 600MB,一分钟 4K 60fps 需要 900MB,非常夸张。

OPPO Log 是一种场景参考的对数色空间,由 O-Log 曲线和 O-Gamut 构成。其中 O-Gamut 与 ITU-R BT. 2020 一致,这也是 Mi-log 的选择。

O-Log 编解码函数的形式很简单,编码曲线为:

$$ P=f(R)=\gamma*\log_{e}(R+\beta)+\delta $$

其中反射率 R 的范围是 0-1600%,$\gamma$ = 0.139, $\beta$ = 0.019, $\delta$ = 0.614,自然对数的底的近似值为 2.7182818。得到的归一化浮点值拉伸到 0-1023 得到码值。

OPPO Log 编码曲线 Encoding Linear Scale

该曲线中灰以上有 6.47 档,按照最小亮度变化计算的话,中灰以下大约还有 10 档左右,是一条承载能力较强的 Log 曲线。以下是以曝光值 EV 作为横轴的图表,按照中灰进行归一化。

OPPO Log 编码曲线 Encoding Log Scale

对应的反函数即为解码曲线:

$$ R = f^{-1}(P) = e^{\frac{P - \delta}{\gamma}} - \beta $$

其中,归一化浮点值 P 的范围是 0.0631271 到 1。

OPPO Log 解码曲线 Decoding Linear Scale

比较奇怪的一点是,按照白皮书中的公式或 CTL 代码,无法计算出白皮书表格 1 中的几个示例值,尤其是 18% 和 39% 反射率,在归一化浮点数的小数点后第二位上就存在差异。另外,表格中的归一化浮点数也无法准确的转换成表格中的 10bit 码值,还需要进一步调研。

还原 LUT

OPPO 给出了两个还原 LUT,一个是到 Rec.709 基色,Gamma 2.4 的 SDR LUT,一个是到 Rec.2020 基色,PQ 1000 nits 的 HDR LUT,精度为 65 阶。

这是一个均匀照明的 Imatest 标版,OPPO Log 的视频截图。

OPPO Log 空间下的 Imatest 标版

使用 SDR LUT 还原后的样子,能够看出 Log 模式下的视频几乎没有锐化处理,颜色也比较自然,比相机默认视频模式高度锐化、过于鲜艳的观感要干净很多。

OPPO Log 经过 SDR LUT 还原后的 Imatest 标版

这是一个人为搭建的 HDR 场景,由一个均匀照明的画布和太阳位置的额外照明构成,太阳的位置能够隐约看到 OPPO Log 保留住了亮部信息。

OPPO Log 空间下的 HDR 场景

使用 HDR LUT 还原后的样子,这个 LUT 相比 SDR 有更多的风格化,颜色更加鲜艳一些,但也比默认视频模式中的 HDR 要好上不少。PQ 视频理论上是绝对亮度的,但图片在显示时会根据 203 nits 进行归一化,转变为相对亮度,因此该图片理解为具有 2.3 EV HeadRoom 更为合适。

OPPO Log 经 HDR LUT 还原的 HDR 场景

Log,不止营销

搜集资料,尝试复现资料中的数值,使用 LUT 和色彩空间转换的方法将 Log 素材输出到可观看的结果,这一过程中每一步都多少有些小问题,好在最后能够得到一个不错的结果。这至少说明手机中的 Log 工作流是能够走通的,而且能够获得一个优于手机默认视频模式的结果。

视频相较于静态图片,在容器、封装、标准上有更多的规范和要求,需要对整个链路有更深刻的理解,Apple 可以说是一骑绝尘,遥遥领先,但至少安卓已经迈出了第一步。在这个浮躁的市场里,评估好 Log 的具体价值,并在整个链路上让它的价值发挥出来,还需要静待花开,如果只是停留在发布会上的一句台词,未免有些太可惜。