数字图像中255表示什么_【正经科普】Data Level是什么

嗯,这是新开的一个系列。争取把一些长久以来大家都不太明白的概念讲明白,希望对大家能有帮助。

不过,我毕竟能力有限,文中出现错漏的地方,还请各位不吝赐教指正!

废话不多说,我们直接开始吧。

大家在平时做片子、看片子的时候可能都遇到过这样的情况:

一条片子,导入PR再换个格式导出,画面莫名其妙地变灰了。
一个视频文件,在某个播放器里效果正常,换一个播放器,画面就发灰了。
达芬奇的Media界面与Deliver界面里,有一个叫Data Level的选项,不知道如何设置才正确。

今天,我们就来聊一聊,这种现象是怎么产生的,以及到底什么是Data Level。

Data Level这个词,有时候也能看到被称为Data Range。指的是数字图像中有效的码值范围。

要讲Data Level,就先得介绍一个概念:广播安全。

在模拟电视时代,我们使用电压来描述图像的“黑”与“白”,低的电压表示暗的图像,而高电压则表示亮的图像。对于国内曾经使用的PAL制式来说,这个“黑”就是0mV,而“白”就是700mV。

5c63809479a4acdfb2d9bb3608d6db35.png

但在实际中,事情并没有这么简单,由于一个叫做“吉布斯效应”(Gibbs Phenomenon)的东西存在,所以实际上可能产生的信号范围是会超出0-700mV的范围的。系统需要能够接受得了超出这个范围的信号,但所有的“有效内容”是不能超出0-700mV的范围的。这个0-700mV的范围限制,就是所谓的“广播安全”。

69e0a8ba21ef1d91a66925dc574d466e.png
吉布斯效应

当广播电视慢慢迎来了数字时代,为了兼容性,这个广播安全的概念也延续了下来。因此,在数字化电视信号的时候,并不是简单地用0表示“黑”,用255(这里讨论的都是8bit下的情况)表示“白”。而是用16来表示“黑”,用235来表示“白”。而显示设备在显示的时候,也会将16的信号作为纯黑显示,235的信号作为纯白显示,超出这个范围的信号,也就自然对应地显示为黑色和白色。

这种用16-235的信息来表示有效信息的方式,被称为“Legal Range”、“Video Range”或者“Narrow Range”,中文也有对应译做“合法范围”、“视频范围”或者“窄范围”的。

2e5ef8674ecd3e1417a045eb6202a2d1.png
Legal Range

但对于计算机系统来说,由于从诞生之日起就是数字化的,也不存在所谓“广播安全”的问题。因此,一般来说,电脑的系统中处理与传输的图像信号,有效的信息范围是0-255。显示设备也是把0作为黑色,255作为白色来处理。这种表示方法,也常被称为“Full Range”,中文一般称作“全范围”。

dd179b4a31c15acb66000d4a1dfe1205.png
Full Range

而数字电影,作为一个数字时代诞生的产物,使用的自然也是Full Range。

目前,对于YCbCr信号和RGB信号,Legal和Full Range的码值范围如下表所示:

1e59713da1f576c8ee816b137cd23e42.png

至于为什么Cb和Cr通道的Legal Range满码值是240而不是和Y一样的235呢。大家可以根据BT.709给出的公式计算一下,如果将YCbCr三个通道的值都限定在235的话,一些高饱和信号,是没法合理地转化为YCbCr的,例如一个纯蓝色(RGB=0,0,1)(此处是归一化的值,范围是0-1)的信号,Cb通道算出来就是240的码值。

而更复杂的关于不同Range的RGB与YUV之间的转换,在这里就不作过多的讨论了,大家可以在各种地方找到很详细的算法资料。

0ce2064845a394714db5f9522569383f.png
BT.709关于RGB转YCbCr的算法

至此,聪明的读者应该已经发现了问题了:对于两种系统中的不同定义,如果不进行对应的转换的话,就会出现问题。

例如,将Legal信号作为Full信号解读的话,画面中本应该是纯黑的部分会看上去灰蒙蒙的,而本应该是纯白的部分,会看上去有点昏暗。而画面整体的反差也会降低,看上去灰蒙蒙的。

69b67558da092eaac8b58813ecee7eb4.png

反过来说,如果将Full信号错认为Legal信号的话,画面中低于16和高于235的部分都会被裁切掉,而16和235则会被认作黑与白的标准。此时画面中高光与暗部的层次就会丢失,而整体的反差也会对应地加大。

c39a836a056d3ed5c85f3c0d1e3bb171.png

因此,正确地设置Data Level就显得非常必要。

例如在显卡的色彩面板中:

810e7de69f257994ed94b2e993dd1546.png

又如在播放器中(此处以Lav+Madvr方案为例):

在解码器中,我们需要设置对应的输出数据范围:

75f8de079740ef311e2c876d82cfe257.png

而在渲染器中,我们也需要做对应的设置:

911b674d119d3aabc1713fe514c13e11.png

更重要的是,在显示器中也对应地设置好(如果你的显示器支持你手动调整Data Level的话):

927e7d9a1d0d75d88b59c785045ecfc4.png

如此一来,你就能看到Data Level不出错的影像了。

那么更具有指导意义的,就是在达芬奇或者Pr这些制作软件中,设对Data Range,来保证自己导入的内容正确地在软件中被识别,同时也保证导出的内容符合收片方或者网络平台的要求。

首先来说Pr,很不幸的是,Pr的色彩管理功能约等于没有,只在Lumetri工具里提供了不同Data Range转换的预设。而且我还遇到过Full Range的DNxHR编码,经过Pr导出为ProRes后,变成Legal Range的问题。

91d4b94a45053da9ddf491434785cc46.png

因此在此处,我的建议是:不要使用Pr作为你的最终导出平台,如果接收到Pr导出的物料,那么应该仔细核对检查是否存在Data Range错误导致的画面不正常,并及时向上游部门反馈。

接下来说说达芬奇中,Data Level的相关设置。

在达芬奇中,Data Level在Media、Deliver和Project Settings中分别都有设置:

在Media界面中,导入素材后,每条素材默认的Data Level都被设置为“Auto”,也就是达芬奇会根据文件的类型自动赋予对应的Data Level。例如对于mp4、mov等格式,默认的Data Level就是Legal,而对于DPX、EXR等格式,默认的Data Range就是Full。而右键素材选择“Clip Attributes”,则可以手动赋予Data Level。

10e69aec092656c2697a1b9cd1837130.png

从我试验的结果来看,达芬奇似乎是会识别原素材的元数据并赋予对应的Data Level的。例如索尼α7拍摄的mp4文件就会被自动识别为Full,与元数据一致。但保险起见,大家最好还是手动指认一下Data Level。对于未知Data Level的素材,可以用MediaInfo之类的软件读取一下Data Level元数据并做对应的设置。

5586f7ff8170fc6b9700215a446a8b78.png

当然,如果来源素材实在是太不规范以至于没有任何可用于判断的元数据,那就只好根据视觉观感来进行设置啦。

而在Project Settings中的监看选项里,达芬奇也提供了Video与Full这两种选项,来与项目和监视器的设置所对应。

586abb5fa762770013db0693412fdd66.png

对于采集和输出(指VTR),同样也有这些选项。

69b9759a242de06dcad41ed72c3027d3.png

在Deliver页面中,同样也是可以设置Data Level的,达芬奇的默认选项是Auto,不过对于明确的交付对象(比如电影母版、电视节目)我们最好还是手动进行指认。

6fe19d8433f6841f9544c5365fcf6f88.png

不过需要注意的是,虽然在这三处地方,达芬奇都提供了Full和Limited的选项,但达芬奇内部运算时,实际上始终是以Full的0-1023处理的(更严谨地说,达芬奇内部是线性浮点空间运算的,不过运算结果最后一般会被输出为0-1023的整数)。因此在导入文件和导出文件,以及监看的时候,达芬奇实际上是会根据对应的设置进行数据的缩放处理的,这可能和很多读者理解的并不一样。

7b6c148929837465c9dac29bf04414a2.png

眼尖的读者可能已经发现,在达芬奇的Data Level设置选项中,经常能看到“Retain sub-black and super-white data”(保留超黑和超白数据)的选项。这个选项又是干什么用的呢?

6612958c61314ea8946a16ceea176be3.png

我们最开始的时候说到,(在PAL制式中)有效的内容是不能超出0-700mV的范围的。因此,低于0mV和高于700mV的图像信号被形象地称为“Sub-Black”和“Super-White”(一般翻译为超黑和超白)

29fb4984a46e2aa22a2de0ca76638ebb.png

虽然理论上来说这部分范围内不应该存放有效的信号内容,但不利用起来总觉得很浪费(毕竟对8bit的图像来说,一共也就256个灰阶层次,而实际上能用的只有220个,实在是有点浪费),因此在上下游都能接受的前提下,把这部分码值也用上,来存放“比235的白更白”和“比16的黑更黑”的数据。这样,既用足了码值,同时又依然不影响对Legal Range的兼容性。

29dbe95fd6bb2c10032cfa78e35f5929.png
保留超黑与超白

因此,这也影响了达芬奇对Legal Range输入素材的解读。实际上,达芬奇在读取Legal素材的时候,也会将16以下和235以上部分的内容读取并放到运算中去。这也是为什么有时候“好像能从过曝和欠曝的地方找回细节”。这也是达芬奇与很多别的非编软件在Data Level处理上的区别。(对于后者来说,在读入素材时就将Legal以外的数据抛弃掉了,再找回也是不可能的事情了)

45ebc7fe67d456821058b5a8ef45e9ff.png
超黑与超白的缩放,以及导出时的裁切

那么,以上就是这篇关于Data Level的科普的全部内容啦~希望这篇内容能够帮到你,也希望各位大佬能帮忙指出文中的错误,各位如果有看得不爽的地方,也欢迎评论区留言告诉我~

谢谢大家!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值