显示器8bit抖动到10bit还是8bit的好?为什么?

显示光电

89人已加入

描述

  什么是bit?

  如果要说10bit能为我们带来什么,最好还是先从“bit”开始说起。如果要翻译成中文,一般会用“位深”作为它的译名。当然了,就算是翻译过来,我们还是很难从译名中得知它的概念。这样一来,还不如举个例子呢。

  10bit有什么用?如果要用最直观的说法去描述,它能够让色彩呈现出更加细腻的渐变变化,因为每一个颜色通道中的色彩级数由8bit的256级(目前我们绝大多数的显示设备都采用的是8bit,甚至还有6bit)一下子暴涨到了1024级。这样,颜色的呈现自然就更加细腻了。

  

  我们可以从最简单的黑白两色这个通道说起。从黑色过渡到白色,在8bit下我们可以视为中间会经过256个色段,而10bit下这个数字就会增值1024个。中间的颜色分层越多,我们可以轻易想象,从黑色到白色的渐变过渡就会更加细腻自然。如果位深比8bit更低,我们可能就会在这段过渡中看到明显的分层现象。如果有一张低位深的夕阳风景图,你会看到太阳由内到外的橘黄色过渡并不自然。这就是因为色彩级数不够,无法体现细腻变化所致。

  再举个极端的例子,如果位深仅仅是1bit,那么颜色就可以说毫无过渡可言,只有明显的黑白两色了。

  总的来说,位深每往上加1,一个颜色通道中所包含的分层信息量就能提升一倍。比如1bit只能呈现黑白两色,而2bit就能从黑到白就能有4种可能的分层。正因为如此,8bit的256级到了10bit就有了1024级,其提升实际上是非常大的。

  既然颜色通道中的渐变分层会变得更细腻,可想而知10bit下能够呈现的颜色种类也就会更多。我们总说8bit能够呈现出1600万种颜色,那是因为存在红绿蓝三原色,实际的颜色数量是256 x 256?56。如果进化到10bit,简单的计算可知它能够呈现的颜色将超过10亿。

  8bit与10bit有什么不同?

  我们目前主要接触到的图像多数是24bit或32bit颜色深度,它等于每通道8bit的 R、G、B或每通道8bitR、G、B、A色彩通道的相加,而8bit表示每个原色具有256个灰阶,即0-255对应色彩从黑到白的灰度级别,10bit表示单色彩通道具有1024个灰度级别,色阶范围是0-1023。8bit提供256个采样点,而10bit提供1024个采样点,其色彩精度是8bit的4倍。

  目前市销的显示器绝大多数都是6bit的TN和IPS面板,少数IPS面板可以达到8bit。国内著名的wiki、chd、hdchina等压制小组之前的作品都是8bit重编码,而官方的x264目前也只支持8bit,我们所用到的支持10bit编码的x264都是经过高手重编译的版本。普通MKV在6bit面板播放时,都是显示器以抖动(dither)的方式转换成8bit实现的。

  在此引用好像是taor大的一句话:“在二进制下对8bit的源数据进行有损编码,造成相同量化损失时,以8bit为100%的error(残差)时,9bit为50%的error,10bit为25%,12bit为6.25%……”其实就是说8bit转换为10bit是无损的,而10bit转换为8bit是有损的,换句话说,由低位深向高位深的转换是无损的,反之则是有损的。一般显示器由10位dither为8bit总要比8位dither为8bit的损失要小得多。因此,10bit片源在播放画质方面是极占优势的。

  

  而我们有时为了达到更佳画质,会极端的使用madvr解码器,普遍理解madvr解码器解码效果最好,那是因为madvr内部是不管你8bit还是10bit输入,都先升到16bit进行处理,最后再dither成8bitRGB32进行输出,所以它才能实现最高精度的转换和最小的error。而8bit转换成RGB后远远到达不了8bitRGB的16777216色(目前大部分高清视频就是属于8bit-Rec709的情况),只有用10bit及以上转换为8bitRGB才能达到16.7M色。

  由以上论述得出结论:10bit重编码,实际上就是用更高位深来进行数据的有损编码,而且bit越高效果越好。一句话:重编码压缩率更高,以更低的码率提供更接近原盘画质的还原效果,这已经足够我们去尝试了。

  8bit的好还是8bit抖动到10bit的显示器好?

  有关10bit重编码的优势,实际上就是用更高位深来进行数据的有损编码的优势,而且bit越高效果越好。最简单的一句话就是,压缩率更高,以更低的码率提供更好的还原效果,这已经足够具有意义了。

  

  例如:

  8bit源数据: 10011010

  8bit量化后: 10011011

  10bit量化后:1001101001

  12bit量化后:100110100001

  当然相同量化时肯定是bit越高的数据占的容量多,但由于损失程度的降低,综合下来的结果是,相同码率下高位深编码的还原程度始终大于等于低位深。

  而其实在目前的大部分有损音频编码里,不管输入的是16bit整数还是24bit整数,其内部都是用32bit浮点数来进行编码的,能大大减小error。至于为什么不在视频里用浮点数编码,可能的原因之一是,目前最强的桌面级CPU也只能勉强解码一个浮点数编码的1080p 24fps视频。

  至于你想说:“我只有8bit的显示设备,10bit有什么用呢?” 这不是什么问题,因为最终是要靠dither(抖动)转换成8bit RGB的,事实上madVR内部是不管你8bit还是10bit输入,都先升到16bit进行处理,最后再dither成8bit RGB32进行输出,所以它才能实现最高精度的转换和最小的error。

  而且最近还有这么一篇文章,对不同位深的YUV空间的色彩数量进行分析,发现8bit YUV转换成RGB后远远到达不了8bit RGB的16777216色(目前大部分高清视频就是属于8bit-Rec709的情况),只有用10bit及以上精度YUV转换为8bit RGB才能达到16.7M色。

  换句话说,10bit技术层面上更高一筹。但实质上和8bit的区别并非很大。我觉得如果只是下来看看而已,到可以不必太在乎这些。如果是拿来收藏,10bit的更好一点吧。但这也得考虑到你的播放器之不支持。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分