6

【白话科普】用最简单的方法帮你搞懂显示器「色深」

 2 years ago
source link: https://zhuanlan.zhihu.com/p/409181362
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

【白话科普】用最简单的方法帮你搞懂显示器「色深」

中央处理器 (CPU)话题下的优秀答主

本文虽然是科普性质,但我也尽力用最直白最浅显的语言来讲述,务求让每一个读者都能看懂。如果你认为文中还有看不明白的地方,请在评论区告诉我。此外,因能力所限,本文必然有所疏漏,如有错误,请不留情面地为我指出,你的批评和支持都是我所需要的!

一,色深是什么?

色深(Color depth或者colour depth)是指在位图或视频帧缓冲区中用于表示单个像素的颜色的比特数,或者是用于单个像素的每个颜色分量的比特数[1]

说人话就是:用来描述色彩丰富程度的参数

色深越高,色彩数量就越多,所以颜色过渡越自然、丝滑,条纹状的等高线(或者说「色彩断层」)也越少。当色深足够高的时候,颜色和颜色之间可以非常平滑地过渡。

v2-0f59b56808500e4564760d20fef26bec_720w.jpg

具体来说,

色深为1bit表示只能显示2^1=2个色阶(后面我尽量不用专业术语),也就是指的是红/绿/蓝三者的任何一个原色都能被平均分成2份。以红色举例,一份是最暗的黑,一份是最亮的红。

色深为2bit表示红/绿/蓝能被平均分成2^2=4份,这时候除了最亮和最暗,就会有中间的过度。

我以红色为例绘制1bit-3bit的示意图如下:

色深为8bit表示红/绿/蓝能被平均分成2^8=256份。

(图我就不画了)

色深为10bit表示红/绿/蓝能被平均分成2^10=1024份。

二,1670万色彩数目和10亿色彩数目指的是什么?

1670万色彩数目是8bit色深下能展示的颜色数量。刚才不是说8bit是256种吗?为什么又是1670万个颜色数量?

答案很简单,所有颜色都由红/绿/蓝组成,既然红/绿/蓝各自有256种,他们的排列组合就有256*256*256=16,777,216种,也就是所谓的“1670万色彩数量”。

同理,10bit则是1024*1024*1024=1,073,741,824,也就是“10亿色彩数量”。

三,色深和色域有什么关系?

二者无关,色域描述的是色彩范围,色深描述的是色彩数量。

如下图,大的三角形是标准Adobe RGB色域,小的是标准sRGB色域,Adobe RGB中有很多颜色是sRGB里没有的,尤其是绿色部分。所以,Adobe RGB的色彩范围更大。

而色深则和所有颜色可以被细分成多少份有关。显然,无论Adobe RGB的范围有多大,依然可以按照8bit对应的1670万个颜色进行细分,只是细分后的每一部分面积都更大。

现在我来举例说明。首先,把问题简化,因为色坐标是三个数值(红绿蓝)构成,太麻烦了,为了方面表述,我把问题简化成只有一个数值,假设Adobe RGB色域的范围0-1500(数值我随便写的),sRGB色域的范围是0-1000,现在把他们都从高到低平均分成100份。在Adobe RGB色域中,每一份都是15;在sRGB色域中,每一份都是10。虽然每一份的大小不一样,但是份数相同,也就是说Adobe RGB和sRGB的色深可以一样,即色深和色域无关。

再深入一点,为什么用Adobe RGB色域(或其他广色域)显示器来输出sRGB图像的时候,会出现「过饱和问题」?

回到刚才的例子。现在系统收到信息要在某个位置输出颜色为30的色彩,因为系统是基于sRGB色域来构建的,30在上文假设的sRGB范围(0-1000)中为第三份,于是系统让显示器输出第三份的色彩。显示器听从系统的指令输出了它自己的第三份颜色,但这台显示器并不是sRGB色域的,而是Adobe RGB色域,它的第三份并不是30,而是45。所以,当它严格执行系统指令输出第二份色彩时,过饱和问题就产生了!

(似乎已经越扯越远了,明明讲色深,为什么说到了色域和过饱和问题?)

继续扯远,那么,如何让广色域显示器输出正确的色彩,避免过饱和呢?答案是通过ICC色彩管理文件(或者叫ICM,其实是一回事),告诉系统:现在显示器换了,你想要30的色彩,不能再让显示器输出第三份颜色,第二份是45,你应该让它输出第二份颜色。

显示器大厂会对自家的部分型号提供驱动,驱动其实就是一个ICC文件,安装驱动后显示器就能在支持色彩管理的应用中正确显示器广色域了!不过,大部分显示器并官方驱动,厂家也没有提供ICC文件。这个时候就需要用户通过校色仪来自己创建ICC文件,比如我自己就用红蜘蛛来制作ICC文件,校色仪做出来的ICC除了能够应对过饱和问题,还能大幅度改善显示器的色准、色温和伽马值。(建议双11折扣的时候买,目前太贵了)

那ICC文件就能解决色彩过饱和了吗?

并不是,因为大部分应用程序,比如windows系统桌面和QQ、微信等,都不支持色彩管理。虽然ICC牛逼,但是他们并不会用ICC,所以,该过饱和还是过饱和。

四,抖10bit是什么意思?

抖10bit,又叫8bit+FRC。就是8bit通过FRC技术来模拟出10bit的效果。FRC (Frame Rate Control),中文名可能叫帧率控制,这是一种时间性抖动的形式,它在每一个新的帧中在不同的色阶之间循环,以模拟一个中间色阶[2]

简单来说,假如某显示器只能显示0、2、4、6这4种颜色,现在想要显示出3,应该怎么办呢?显示器就会快速地在2和4之间来回快速切换或者说抖动,把2和4混合在一起,从而获得3。如果想要2.5怎么办呢?一样是2和4抖动,但是可以让2出现的频率多一点而4少一点,只要2出现的频率是4的三倍即可,即那(2*3+4*1)/4=2.5。

更形象的举例是混合颜料,假如我只有黑色和白色,怎么弄出灰色呢?只要把黑和白混在一起就行,那我想要灰色浅一点应该怎么办呢?只要增加白色的比例或者减少黑色的比例就行。

通过FRC,能把8bit显示器抖成10bit,其效果和10bit是非常接近的。这种高频的抖动并不能为人眼察觉到,不会伤眼,也不会造成颜色错乱。

因为人眼的分辨能力有限,在人眼看来,8bit和10bit本身差距并不大,10bit和100bit的差距则更小。所以,8bit+FRC和原生10bit的差异也非常非常不明显。因而,没有必要追求原生10bit的显示器,除非预算实在太充足。

但是,6bit和8bit的差距过大,6抖8bit和原生8bit的区别也能为肉眼所捕捉,这就使得原生8bit显示器要比6bit+FRC的显示器强很多很多。现在除了几百块钱的低端显示器以外,基本上所有显示器都至少是原生8bit。

原生10bit的显示器非常非常贵,网传PA329CV、PG27UQ为原生10bit,前段时间我特意嫖来了这两个显示器,实测发现,他们都是8bit+FRC。如果他们是原生10bit的话,价格应该要贵上一两万才对。

此外,displayspecification网站上关于色深的数据经常出错,这个网站总是会把一些8bit+FRC的显示器写成10bit。这是错的,不要信,不要信,不要信!

屏幕网也有错误,但是比displayspecification靠谱很多。

每当有人在我文章的评论区指出某某显示器不是原生10bit的时候,我都懒得反驳,这些两三千、三四千块钱的东西,怎么可能是原生10bit?

五,什么时候需要10bit?

需要说明的是,这一章节说的10bit指的是「SDR 10bit」而不是「HDR 10bit」,SDR就是正常显示模式而非HDR模式。SDR下10bit的意义远大于HDR下的10bit,毕竟大部分时候我们用的都不是HDR模式。此外,我认为8bit+FRC也算「支持10bit」。

1.摄影设计

一款用于摄影设计的显示器需要支持10bit。尽管大多数软件并不支持10bit,但是Adobe等设计软件对10bit都有极好的支持性。利用Photoshop修图的话,有时候能看出8bit和10bit的巨大差异,尤其是在处理有大面积光晕或者大范围色彩渐变的图像(比如蓝天)时。8bit和10bit的巨大差异就能得到体现。

可以说,对于一个专业或者半专业的设计师而言,一款支持10bit色深的显示器的显示器是必备的。

2.影视设计

我对这个领域并不了解,但是制作10bit视频显然也要用到10bit显示器。

3.大型单机游戏

一些画质极好的新款大型单机可以支持10bit (别问我具体是哪款,我也不知道),而且支持10bit的游戏会越来越多。如果你想要购买一台游戏体验极好的显示器,10bit支持也是必须的。

因此,凡是不能支持10bit的游戏显示器,我都要给它适当扣点分。

4. 某些专业工程软件

我也不知道具体是啥,可能一些对画面精细程度要求特别高的软件会需要10bit吧。

除此以外,10bit并没有意义,10bit色深并不会让风暴英雄游戏的色彩提高一丁点,因为这个游戏本来就只能显示8bit,10bit也不会对办公、上网、普通电影有任何帮助。

* PS5等游戏主机

游戏主机一般是在HDR下玩游戏,HDR下 10bit非常容易实现,但是只在HDR应用中有效,它不同于SDR 10bit。下一章我会讨论SDR 10bit和HDR 10bit。

六,SDR 10bit和HDR 10bit

很多不支持抖10bit的显示器,比如SANC G7,开启HDR后都能支持10bit。但是,这意味着他们只在HDR应用程序中才能输出10bit图像信号,在普通的SDR应用程序中依然是8bit。对于这种显示器,我依然认为它是「不支持10bit」。

我们需要的是SDR下的10bit,像Photoshop等大部分支持10bit的软件,都不属于HDR应用程序,因而HDR下的10bit,实际上没有太大作用,只在HDR游戏/HDR电影中有点价值。

如何检测我的显示器能否输出SDR 10bit图像?

首先在显卡控制面板中的「更改分辨率」选项里开启10bit。我这台华为MateView GT,无法选择10bpc色彩深度,因为DP1.2的带宽不足以支撑满分辨率165Hz 10bit,需要把刷新率降低到120Hz,点应用后然后才能看到10bpc色彩深度的选项。

PS:如果你的笔记本没有独显直连,你是找不到「更改分辨率」这个选项的。

Photoshop 2020/2021都行,选择编辑-首选项-性能-高级设置,勾选30位设置,然后关闭Photoshop。

打开烧屏网的灰色测试图,下载链接:https://pan.baidu.com/s/152aQymmPBSUzxIHjcXKxLQ

提取码:yzxh

如果看到的图片中没有明显的色彩断层,说明可以10bit。

如何检测我的显示器能否输出HDR 10bit图像?

首先在系统和显示器OSD设置里都开启HDR,微软商店下载VESA DisplayHDR软件。打开软件,用键盘十字键的↓和PageDown翻到「7. Bit-Depth/Precision」。

这个测试中,最下面一行就是10bit图像,如果你的显示器能够显示HDR 10bit图像,那最后一行是平滑无断层的,如果有断层,就是无法HDR 10bit。

七,HDR和10bit色深

HDR和10bit色深并不是相互绑定的,但是10bit对HDR的意义非凡。

在电影、视频的拍摄和制作中,HDR高色深(10Bit)是刚需。虽然播放端(电视/显示器)的高色深并不是绝对的刚性需求,例如HDR400标准就不要求高色深。但是在拍摄端却需要高色深的支持。这里我们用视频拍摄时必须使用的德塔颜色(datacolor)的色卡来进行举例,

色卡主要分为两个区域,黄色框的亮度标定区域和蓝色框的色彩标定区域。为了简单我们只讨论亮度的变化对于色深的需求。

如果是拍摄SDR的视频,那么我们只需要覆盖自然界中的一部分亮度区间,比如色卡中间的一部分亮度区间,这时候只需要三个色阶就能有效覆盖。但是如果HDR还是用低色深,同样的三个色阶就需要覆盖更广的范围,这时候就会损失中间的一部分过度色阶,于是就会出现大家常说的色彩断层问题。

解决的办法其实非常简单,只要HDR使用了高色深就可以保证又广阔又顺滑的过度了。大家经常在电影的拍摄中会见到这种彩色的卡片,它的作用其实就是标定亮度范围和颜色的准确度。

八,笔记本和SDR 10bit

笔记本输出SDR 10bit的条件是独显直连 ,核显无法输出SDR 10bit图像

因此,大部分(99%以上)笔记本并不能实现SDR 10bit。要知道,虽然很多笔记本有独显,但是他们都是通过核显输出视频信号,独显只负责计算工作,因而笔记本内置屏幕上还是只能8bit。只有带独显直连的笔记本才能实现SDR下的10bit图像输出,虽然输出SDR 10bit图像还需要显卡本身支持(太老的不行),但是目前市面上所有带独显直连的笔记本都至少有一个能支持10bit的显卡。

不少笔记本在桌面右键的显示设置里,写着10位色深,但是实际上他们依然只能输出8bit图像。比如下面的华硕无畏Pro14,写的是10位色深,实际上依然只有8bit。此外,显卡控制面板里可以调到10bit不代表显示器能显示10bit图像(比如微星PAG272QR,控制面板里能调到10bit,但是依然只能显示8bit图像),能否10bit还是要以本文第六章提到的测试为准。

★只有极少数支持内屏独显直连的笔记本能够在内屏上输出SDR下的10bit图像。

★不支持内屏独显直连,但是外接显示器后可以独显直连的笔记本能够在外接显示器上实现SDR 10bit图像输出。

★外接显示器也不能独显直连,或者压根没有独显的笔记本,不可能实现SDR 10bit图像输出。

九,笔记本和HDR 10bit

现在的AMD和Intel核显都可以输出HDR 10bit图像,所以核显本子和没有独显直连的本子也可以正常看HDR电影和玩HDR游戏。但是。如果笔记本内屏不支持HDR,那这个笔记本在不借助外接显示器的情况下,就彻底和10bit无缘。比如华为MateBook 16。

核显输出HDR 10bit图像的条件如下:

★内屏支持HDR,如果不支持就得外接支持HDR的显示器

★笔记本有DP1.4或者HDMI 2.0/2.1

没有DP1.4或者HDMI 2.0/2.1就无法开启HDR效果,所以也不存在外接显示器后输出10bit HDR的可能性。现在很多笔记本都带有雷电4接口了,一般都支持DP1.4协议,可以通过typeC转DP来获得DP1.4接口。部分搭载RTX3050(及更高型号)显卡的游戏本,可以支持HDMI 2.1,当然,也有很多厂家为了省钱强行把HDMI 2.1缩掉了,比如红米G 3050和3060版本。

其中,HDMI 2.0的带宽不足以支持“4K 60Hz 色彩无损的HDR”,只能要么损失色深,变成“8位递色”,也就是无法抖到10bit,要么损失颜色格式(或者说色彩采样),从完全采样的无损RGB或者444变成422或者420。

不过,我更换了台式机来测试,显卡为RTX3060(HDMI2.1),显示器输入端接的是HDMI 2.0接口,发现可以4K 60Hz 无损HDR。

十,HDR、色深和接口(DP1.2、DP1.4、HDMI2.1)

上面提到,DP1.4和HDMI 2.1是开启HDR的条件,那么,只有DP1.2接口的显示器就无法开启HDR吗?

非也!只要显卡有DP1.4或者HDMI 2.1即可输出HDR图像信号,显示器本身有么有DP1.4/HDMI2.1并不重要,显示器只要有DP1.2就能开启HDR,当然,前提是显示器本身必须支持HDR。

不少游戏显示器为了省钱,都会使用DP1.2接口,DP1.2虽然也能HDR,但是因为带宽限制,无法支持高分辨率高刷新率高色深的图像信号输入。分辨率、刷新率、色深、色彩采样(444,422,420这些)都会需要占用带宽,带宽不足会导致这四个参数无法跑满,相当于道路太窄,车流量太大无法通行。

具体来说,在RGB或者YCBCR444即完全的色彩采样下,

(完全采样即不存在色彩损失。以后再具体说YCBCR444无损采样和422、420有损采样的区别)

DP1.2可以2K 170Hz 8bit,但是如果想要10bit色深,就只能2K 120Hz。

DP1.4可以2K 170Hz 10bit,4K 144Hz 8bit;但是只能4K 120Hz 10bit,支持HDR。

HDMI 2.0可以2K 144Hz 8bit,4K 60Hz 8bit;2K 100Hz 10bit,4K 50Hz 10bit,支持HDR。

HDMI 2.1可以4K 144Hz 10bit,支持HDR。

不过,实际上,你会发现高端显示器接HDMI 2.1只能4K 120Hz 10bit,但是接DP1.4可以4K 144Hz 10bit。这是为啥呢?这是由于显示器自身设置限制或者HDMI 2.1接口不满血,而高端显示器带有DSC(Display Stream Compression,显示流压缩技术),可以让DP1.4实现4K 144Hz 10bit输出[3]。DSC是先让从显卡处出来的数据压缩,压缩后通过DP线后到达显示器,再解压缩。

请务必注意,想要拥有DP1.4的带宽,显卡和显示器本身都需要支持DP1.4协议才行,HDMI 2.1也是同理。这和HDR不同,HDR是只要显卡有DP1.4显示器有DP1.2就行。

NVIDIA从GTX10系显卡开始支持原生DP1.4和HDR,从RTX30系开始支持原生HDMI 2.1,从RTX20系显卡开始支持DSC技术;AMD则是RX400系显卡开始支持原生DP1.4和HDR,从RX6000系开始支持原生HDMI 2.1,目前没有DSC支持。

-我应该买支持(抖)10bit的显示器吗?

如果你没有与10bit相关的需求,可以不买。据我所知,吃鸡、CSGO等游戏都无法支持10bit,10bit对日常上网办公娱乐也无用。

如果你有摄影设计等相关需求,10bit显示器是必须的。

-我在网上、浏览器里或者微信中看到的图是几bit?

6bit或者8bit,不可能是10bit。

-我的显示器无法抖10bit,有办法让它实现抖10bit吗?

有,换个显示器。

-我的显卡是GTX970,有办法让它支持HDR和10bit输出吗?

有,换个显卡。

-Macbook Air/Pro是几bit?几万块的Apple Pro Display XDR是原生10bit吗?

Macbook Air和Pro都是原生8bit,无法抖10bit。iMac是抖10bit。

Pro Display XDR虽然贵,但依然是抖10bit。

-DP1.4显示器需要搭配DP1.4线材吗?HDMI2.1的电视需要HDMI 2.1线吗?

线本身不分版本,10元的DP线基本也能支持DP1.4,10元的HDMI线也有可能支持HDMI 2.1。之后我会写一个线材测试,测试已经做过了,结论就是部分10几元的HDMI/DP线一样能用,高端线只在距离足够长的时候和便宜的线有区别。

-原生10bit显示器一定比抖10bit显示器好吗?

不一定,还要看具体的显示器型号。Rtings说原生10bit的色彩过渡也可能不如抖10bit的显示器[4]

-本文为啥没有提到表妹?

表妹去准备事业编考试了,近期不会出现。


下一期预告,为什么色温要用K表示?6500K这个数值到底表示什么?

下下期预告,响应速度和输入延迟的异同。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK