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