什么是bit?
如果要說10bit能為我們帶來什么,最好還是先從“bit”開始說起。如果要翻譯成中文,一般會(huì)用“位深”作為它的譯名。當(dāng)然了,就算是翻譯過來,我們還是很難從譯名中得知它的概念。這樣一來,還不如舉個(gè)例子呢。
10bit有什么用?如果要用最直觀的說法去描述,它能夠讓色彩呈現(xiàn)出更加細(xì)膩的漸變變化,因?yàn)槊恳粋€(gè)顏色通道中的色彩級(jí)數(shù)由8bit的256級(jí)(目前我們絕大多數(shù)的顯示設(shè)備都采用的是8bit,甚至還有6bit)一下子暴漲到了1024級(jí)。這樣,顏色的呈現(xiàn)自然就更加細(xì)膩了。
我們可以從最簡單的黑白兩色這個(gè)通道說起。從黑色過渡到白色,在8bit下我們可以視為中間會(huì)經(jīng)過256個(gè)色段,而10bit下這個(gè)數(shù)字就會(huì)增值1024個(gè)。中間的顏色分層越多,我們可以輕易想象,從黑色到白色的漸變過渡就會(huì)更加細(xì)膩?zhàn)匀?。如果位深?bit更低,我們可能就會(huì)在這段過渡中看到明顯的分層現(xiàn)象。如果有一張低位深的夕陽風(fēng)景圖,你會(huì)看到太陽由內(nèi)到外的橘黃色過渡并不自然。這就是因?yàn)樯始?jí)數(shù)不夠,無法體現(xiàn)細(xì)膩?zhàn)兓隆?/p>
再舉個(gè)極端的例子,如果位深僅僅是1bit,那么顏色就可以說毫無過渡可言,只有明顯的黑白兩色了。
總的來說,位深每往上加1,一個(gè)顏色通道中所包含的分層信息量就能提升一倍。比如1bit只能呈現(xiàn)黑白兩色,而2bit就能從黑到白就能有4種可能的分層。正因?yàn)槿绱耍?bit的256級(jí)到了10bit就有了1024級(jí),其提升實(shí)際上是非常大的。
既然顏色通道中的漸變分層會(huì)變得更細(xì)膩,可想而知10bit下能夠呈現(xiàn)的顏色種類也就會(huì)更多。我們總說8bit能夠呈現(xiàn)出1600萬種顏色,那是因?yàn)榇嬖诩t綠藍(lán)三原色,實(shí)際的顏色數(shù)量是256 x 256?56。如果進(jìn)化到10bit,簡單的計(jì)算可知它能夠呈現(xiàn)的顏色將超過10億。
8bit與10bit有什么不同?
我們目前主要接觸到的圖像多數(shù)是24bit或32bit顏色深度,它等于每通道8bit的 R、G、B或每通道8bitR、G、B、A色彩通道的相加,而8bit表示每個(gè)原色具有256個(gè)灰階,即0-255對(duì)應(yīng)色彩從黑到白的灰度級(jí)別,10bit表示單色彩通道具有1024個(gè)灰度級(jí)別,色階范圍是0-1023。8bit提供256個(gè)采樣點(diǎn),而10bit提供1024個(gè)采樣點(diǎn),其色彩精度是8bit的4倍。
目前市銷的顯示器絕大多數(shù)都是6bit的TN和IPS面板,少數(shù)IPS面板可以達(dá)到8bit。國內(nèi)著名的wiki、chd、hdchina等壓制小組之前的作品都是8bit重編碼,而官方的x264目前也只支持8bit,我們所用到的支持10bit編碼的x264都是經(jīng)過高手重編譯的版本。普通MKV在6bit面板播放時(shí),都是顯示器以抖動(dòng)(dither)的方式轉(zhuǎn)換成8bit實(shí)現(xiàn)的。
在此引用好像是taor大的一句話:“在二進(jìn)制下對(duì)8bit的源數(shù)據(jù)進(jìn)行有損編碼,造成相同量化損失時(shí),以8bit為100%的error(殘差)時(shí),9bit為50%的error,10bit為25%,12bit為6.25%……”其實(shí)就是說8bit轉(zhuǎn)換為10bit是無損的,而10bit轉(zhuǎn)換為8bit是有損的,換句話說,由低位深向高位深的轉(zhuǎn)換是無損的,反之則是有損的。一般顯示器由10位dither為8bit總要比8位dither為8bit的損失要小得多。因此,10bit片源在播放畫質(zhì)方面是極占優(yōu)勢(shì)的。
而我們有時(shí)為了達(dá)到更佳畫質(zhì),會(huì)極端的使用madvr解碼器,普遍理解madvr解碼器解碼效果最好,那是因?yàn)閙advr內(nèi)部是不管你8bit還是10bit輸入,都先升到16bit進(jìn)行處理,最后再dither成8bitRGB32進(jìn)行輸出,所以它才能實(shí)現(xiàn)最高精度的轉(zhuǎn)換和最小的error。而8bit轉(zhuǎn)換成RGB后遠(yuǎn)遠(yuǎn)到達(dá)不了8bitRGB的16777216色(目前大部分高清視頻就是屬于8bit-Rec709的情況),只有用10bit及以上轉(zhuǎn)換為8bitRGB才能達(dá)到16.7M色。
由以上論述得出結(jié)論:10bit重編碼,實(shí)際上就是用更高位深來進(jìn)行數(shù)據(jù)的有損編碼,而且bit越高效果越好。一句話:重編碼壓縮率更高,以更低的碼率提供更接近原盤畫質(zhì)的還原效果,這已經(jīng)足夠我們?nèi)L試了。
8bit的好還是8bit抖動(dòng)到10bit的顯示器好?
有關(guān)10bit重編碼的優(yōu)勢(shì),實(shí)際上就是用更高位深來進(jìn)行數(shù)據(jù)的有損編碼的優(yōu)勢(shì),而且bit越高效果越好。最簡單的一句話就是,壓縮率更高,以更低的碼率提供更好的還原效果,這已經(jīng)足夠具有意義了。
例如:
8bit源數(shù)據(jù): 10011010
8bit量化后: 10011011
10bit量化后:1001101001
12bit量化后:100110100001
當(dāng)然相同量化時(shí)肯定是bit越高的數(shù)據(jù)占的容量多,但由于損失程度的降低,綜合下來的結(jié)果是,相同碼率下高位深編碼的還原程度始終大于等于低位深。
而其實(shí)在目前的大部分有損音頻編碼里,不管輸入的是16bit整數(shù)還是24bit整數(shù),其內(nèi)部都是用32bit浮點(diǎn)數(shù)來進(jìn)行編碼的,能大大減小error。至于為什么不在視頻里用浮點(diǎn)數(shù)編碼,可能的原因之一是,目前最強(qiáng)的桌面級(jí)CPU也只能勉強(qiáng)解碼一個(gè)浮點(diǎn)數(shù)編碼的1080p 24fps視頻。
至于你想說:“我只有8bit的顯示設(shè)備,10bit有什么用呢?” 這不是什么問題,因?yàn)樽罱K是要靠dither(抖動(dòng))轉(zhuǎn)換成8bit RGB的,事實(shí)上madVR內(nèi)部是不管你8bit還是10bit輸入,都先升到16bit進(jìn)行處理,最后再dither成8bit RGB32進(jìn)行輸出,所以它才能實(shí)現(xiàn)最高精度的轉(zhuǎn)換和最小的error。
而且最近還有這么一篇文章,對(duì)不同位深的YUV空間的色彩數(shù)量進(jìn)行分析,發(fā)現(xiàn)8bit YUV轉(zhuǎn)換成RGB后遠(yuǎn)遠(yuǎn)到達(dá)不了8bit RGB的16777216色(目前大部分高清視頻就是屬于8bit-Rec709的情況),只有用10bit及以上精度YUV轉(zhuǎn)換為8bit RGB才能達(dá)到16.7M色。
換句話說,10bit技術(shù)層面上更高一籌。但實(shí)質(zhì)上和8bit的區(qū)別并非很大。我覺得如果只是下來看看而已,到可以不必太在乎這些。如果是拿來收藏,10bit的更好一點(diǎn)吧。但這也得考慮到你的播放器之不支持。
評(píng)論