SuperIC社区_

标题: Color range 简介 [打印本页]

作者: creass    时间: 2016-5-28 14:13
标题: Color range 简介
近有客户遇到一个问题:HDMI 接电脑(通过DVI口转成HDMI)发现灰阶信号236~255以及0~15阶均饱和分不清楚;这个很明显就是color range的问题,由于客户菜单中没有color range的选项,所以同客户解释之后,他们同意在OSD中开启color range选项;
以下普及一下color range的概念:
先做一个说明,很多DVD/PS3/TV中的选项有full range和limit range,他们实际上就对于0~255和16~235;
--------------------------------------------------------不是很漂亮的分界线--开始--------------------------------------------------------------------
目前,数字视频信号有RGB信号和YCbCr(YUV、亮彩、色差)信号两种,通常也叫做色彩空间,它们对色彩的表示方法有所区别。


  我们可以在3维立方体中通过绘制三原色(即红色、绿色和蓝色,简写为RGB)的构成比率图以表示各种颜色,其中黑色位于原点,而白色则位于原点的斜对角。得到的立方体就是著名的RGB色彩空间,它主要用于计算机设备对色彩的描述(PC Level)。而另一种色彩空间YCbCr是采用一个亮度信号(Y)和两个色差信号(B-Y、R-Y)相组合,称为色差信号,主要由电视机等消费类产品(Studio Level)采用。因为当时在黑白画面过渡到彩色画面的历程中,为了兼容黑白画面(B-Y和R-Y信号为零),电视台除了传送原来的亮度信号Y以外,再用次载波(3.58MHz)来传输色彩信号B-Y、R-Y,而不是RGB三原色信号。

  而YCbCr和RGB空间是可以相互转换的,可用如下的方程将YCbCr空间中的色彩转换为RGB色彩空间中的色彩:

  R’=1.164*(Y-16)+1.596*(Cr-128)

  G’=1.164*(Y-16)-0.813*(Cr-128)-0.392*(Cb-128)

  B’=1.164*(Y-16)+1.596*(Cr-128)

  灰阶模式也有两种

  Full Range

  视频信号由模拟转换为数字信号的过程中涉及到了采样技术,RGB信号在处理图像时,每个像素的色彩由3个分别对应三原色的8位二进制数字来确定,28=256个灰阶。比如(255,255,255)代表白色,(255,0,0 )代表红色,那么灰阶总共是0~255一共256个,通常被称作Full Range。

  Limited Range

  这种信号格式的每个像素记录需要24位,所需的存储空间和数据量毫无疑问比较大。而YCrCb信号如果采用13.5MHz采样频率得到的8位或10位PCM信号则称为4∶4∶4,也有256个灰阶。但是这样的话数据量太大了。研究表明,人眼察觉到的光亮度信息(Y)的60%至70%来自绿色光。红色和蓝色信道实际上只是亮度信息的复制,因此这些重复信息完全可以去除掉。为了减少数据储存空间和数据传输带宽,可以用较低的采样频率6.75MHz来采样B-Y和R-Y信号,称做4∶2∶2,也就是消费电子的Studio Level。

  在Studio Level设备中,8位YCbCr系统都规定亮度的取值范围介于16至235之间,而B-Y和R-Y信号的取值范围介于16至240之间。YCbCr 4∶2∶2色差信号的灰阶是16~235,通常被称作Limited Range,而RGB信号也有两种采样频率和灰阶,在PC Level系统中是0~255,而在Studio Level消费电子中则是16~235。

  灰阶出现问题

  那么,视频信号有两种不同的色彩空间和灰阶模式,如果交叉互连时,灰阶就有可能出现问题。如果不同色彩空间的设备之间进行了连接,那么灰阶信号就可能因为不匹配而丢失,造成画面的细节缺失。而不同灰阶模式的设备相连也可能出现灰阶丢失的问题。我们平时所使用的显卡或者PC显示器,它们都是PC Level的设备,采用Full Range灰阶。而DVD播放器、投影机、平板电视等则是Sutio Level设备,采用Limited Range灰阶。不同设备之间的互相连接,对灰阶的处理情况可能会有不同。

  PC对色彩空间的处理

  如果你使用的是电脑显示器连接PC,那么毫无疑问,你的显示器是PC Level设备,可以显示完整的0~255灰阶。但是这个情况只是在使用桌面输出的时候,诸如DisplayX、Displaymate等测试软件时能够看到完整的灰阶,如果播放Studio Level的DVD影碟、高清视频文件时,灰阶又可能是另一回事。那么,Studio Level的视频素材在PC和PC显示器上播放的时候也要经过处理吗?答案是肯定的。Studio Level标准里,黑色为16,白色则为235,低于16的称为Blacker Than Black(BTB),高于235的称为Peak White。编码时数字16对应视频电压0mV,是画面最黑的地方,这是日本NTSC制式采用的基准黑电平,235对应亮度电压714mV,这是最亮的地方。向下留有15级Footroom(下动态余量),向上留有19级Headroom(上动态余量)。如果DVD盘片记录的信号是16,那么在电视机中则被还原成黑色,低于16的信号则不被显示,高于235的Peak White信号则做削波处理,还原为白色。Studio Level的信号如果在PC中不处理,16~235信号就会出现发白的颜色。

  PC在播放影片的时候,一共经过了以下四个流程:

  来源影片→解码器→显卡→显示器

  其实我们只需要一个步骤把灰阶从16~235转换到0~255就可以了。但是,为了解决Studio Level的灰阶问题,这四个部分都有可能出现在灰阶部分进行处理的混乱情况。所以,最后影片出来的播放效果就有可能惨不忍睹。

  在为影片转码压制DVDrip的时候,很多压制软件就有“Extend to PC video" 的选项,将16~235灰阶扩展到0~255。

  显卡在渲染视频画面时,也分Overlay和VMR9等模式。用Overlay(覆盖)模式渲染时,会把视频信号里的0~15和236~255丢弃,把16~235扩展为0~255,并输出到显示器上。与之配合的PC Level显示器把显卡输出的0对应于最黑,输出的255对应于最亮。在Overlay模式下,多余的BTB和Peak White信号都被忽略掉了。这样做可能会丢失部分场景的高光细节,而原本的219级灰阶扩展为256级灰阶后,也会出现某些灰阶图像过渡不够自然的情况。

  而在VMR9渲染模式下时,显卡对视频信号不做任何变换,直接输出给显示器。如果显示器还是按PC Level调整的,0是最黑,255是最白,那么参考黑位在显示器上就是(16,16,16),结果看起来就是不那么黑,有点发白。 解决办法就是把显示器按照Studio Level调整,把亮度调低点。

  现在,很多播放软件和视频插件也支持输出灰阶调整功能。以The KMPlayer播放软件为例,打开参数选项中的“模糊/色阶”,然后在“色阶控制”选项中选择开启,在输出幅度位置选择16~235替代默认的0~255。CoreAVC、gabest、ffdshow等解码器都有相关的灰阶扩展选项。

  而在显示器方面,一般我们使用的是0~255灰阶的PC Level设备,但是我们也可能使用Studio设备的平板电视机。所以,在上述的几个步骤中,无数的混乱造成影片播放时灰阶的严重丢失。要调整好它们之间的关系,不下一番苦功夫是不行的。

  HTPC和电视机的连接

  AV领域的视频设备是从16~235之间取值的,不过实际上很多中高端的DVD播放器、电视机和投影机都可以选择PC Leve(l Full Range)或者Studio Level(Limited Range)模式来适应不同的状况。

  如果HTPC输出的信号是0~255的Full Range灰阶信号,而Studio Level的电视机则是以16作为基准黑,235作为基准白的。这个时候,原本0~15和236~255之间的细节都显示不出来了。不过,这部分细节并没有被丢掉,只是被电视机藏到了一个不易被人注意的角落。因为Studio Level仍然还有BTB和Peak White信号,我们只要对电视机的gamma重新进行调节,就可以把大部分细节还原出来。

  如果是直接用HDMI接口连接视频播放设备和电视机呢?也有可能因为输出的灰阶格式和机电视机的兼容格式不同造成灰阶的丢失。比如,蓝光播放器输出的是RGB Full Range格式,而电视机则只支持Limitel Range,就需要对输出端进行调整。在PS3、蓝光播放器等HDMI设备中,都可以对HDMI接口的灰阶深度进行调整,比如在PS3上,有一个RGB Full Range(HDMI)的选项,选择“有限”则是以16~253的范围输出RGB信号,选择“全取”则是以0~255的范围输出RGS信号。而现在,NVIDIA显卡和ATI显卡也可以通过驱动面板对HDMI的灰阶进行调整,选择RGB Full Range、RGB Limited Range或YCrCb 4:4:4的数字颜色格式。

  实际测试和调节

  我们使用HTPC和松下42PV70C等离子电视机相连,实际考察HTPC和电视之间的兼容情况。HTPC这边使用了原生HDMI接口的Radeon HD 3450显卡、DVI接口转接HDMI的RadeonHD 3650显卡和DVI接口转接HDMI的GeForce 8800 GT显卡,通过HDMI接口连接到电视机上。平时,松下42PV70C电视机的HDMI接口已经通过连接PS3游戏机设置好了亮度和对比度值,设置为对比度为85,亮度为50时,画面的细节有较好的表现。而HTPC通过DVI转接的HDMI接口在连上电视及以后,我们打开了一张灰阶测试图片,黑色灰阶16以下的全部不可见,而白色灰阶235以上的也不可见。这正好说明了电视机以16灰阶作为黑色,丢弃了大部分的暗部细节。接下来,我们播放了一段ts格式测试视频片段,黑色和白色各有一个色块在播放中丢失了。而我们换用原生HDMI接口的Radeon HD 3450显卡后,也发现灰阶丢失同样非常严重。不过,无论是DVI转接还是原生的HDMI接口的显示图像都可以通过调节电视机的亮度和对比度提升细节表现能力,在降低对比度到40,提升亮度到90以后,大部分灰阶都可以看到了。但是,此时的画面相对比较暗淡,且仍然有6以下的黑色灰阶不可见,黑色部分的噪点也增加了。可以说,细节出来了,但是画面的观感还不如调节前。

  接下来,我们又通过VGA接口连接PC到42PV70C电视机上进行测试。此时,在先前的对比度80,亮度50的设置下,所有的灰阶都正常,1~254灰阶都可以正常辨识。由此看来松下42PV70C电视的HDMI接口只能兼容Limited Range的灰阶,在连接HTPC时其表现还不如VGA接口。通过VGA接口的显示效果都要比HDMI更好。

  除了调节显示器以外,我们还可以通过软件调节的方法增加画面细节。但是,通过软件的调节大多数只能调节视频的Gamma值,对桌面的显示输出没有改变。除了前面我们讲到的调节The KMPlayer、CoreAVC等解码器之外,还可以调节显卡驱动。在ATI显卡的Avivo驱动面板中可以调节视频亮度和对比度,来增加视频的细节。通过调整以后,测试的ramp.ts视频画面中缺失的色块又回来了。只是我们在前面说过,该调节仅仅是调整的视频画质,桌面显示和图片的质量仍不理想。在ATI最新的8.11驱动里,如果使用HDMI接口连接,还增加了一个像素格式的选项,可以选择计算机标准Full RGB、Sudio视频Limited RGB以及YCbCr 4:4:4、YCbCr 4:2:2。如果选择YCbCr 4:2:2,细节表现能力也会提升。

  在高清音频领域,有一个名词正在流行,那就是“点灯”。意思是可以实现高清音频源码输出的播放设备加次世代功放的组合,在经过正确的设置后,实现了高清音频的正确解码,功放上对应高清音频解码灯成功亮起。而在HDMI视频领域,我们也可以用“点灯”来形容灰阶的正确输出和显示,但是这个设置和判断是非常困难的,不知道你成功“点灯”了吗?
--------------------------------------------------------不是很漂亮的分界线--结束--------------------------------------------------------------------
以下是Mstar Non-OS 方案 V59 demo code中对color range的处理:
[tr][/tr]
VGA sourceHDMI  source
DVI modeHDMI mode
恒定为1恒定为1信号中有传输color
range info时,按照设定来传
信号中没有传输color
range info时,按照timming来设定,EIA timming设为0,VESA timming设为1
color range =1;即代表0~255;
color range =0;即代表16~235;

以下是客户自定义后的color range的处理
VGA sourceHDMI  source
DVI modeHDMI mode
菜单设定非auto菜单设定为auto
恒定为1恒定为1按照用户设定来下值信号中有传输color
range info时,按照设定来传
信号中没有传输color
range info时,按照timming来设定,EIA timming设为0,VESA timming设为1
color range =1;即代表0~255;
color range =0;即代表16~235;




作者: creass    时间: 2016-9-30 11:46
顶起来
作者: Mike    时间: 2016-9-30 12:15
我来顶顶
作者: AlexWeng    时间: 2016-12-7 19:40
很专业的说明,受教了。
作者: lupusi    时间: 2016-12-13 11:35
楼主分析得非常详细,很有帮助。
作者: jayden    时间: 2017-3-16 20:19
给你108个赞!!
作者: blacka66    时间: 2017-3-28 10:27
不錯,要是有程序的分析更容易理解些
作者: qixingzhige    时间: 2017-3-28 16:13
很有帮助。
作者: bsd_Gavin    时间: 2017-6-4 10:56
学习了                    
作者: eric1208    时间: 2017-7-21 16:18
很专业,感谢分享。
作者: saint_wen    时间: 2017-8-17 12:55
very professional.




欢迎光临 SuperIC社区_ (/) Powered by Discuz! X3.3