10bit 視頻是什麼?相比起 8bit 視頻有什麼優勢?
簡單說,10bit視頻是指一種視頻編碼的特徵,意思是每個顏色通道用10個bit來表達。這樣,每個顏色通道的色彩級數從8bit的256級提高到了1024級,就可以更細緻地表達顏色。
實際體驗上,更細緻的顏色分級意味著漸變色更細膩。在8bit編碼下,有些時候一些漸變色塊由於色彩變化範圍很小而面積很大,容易導致一端到另一端總共只出現了很少的幾種顏色,這就使得畫面看上去不是漸變色帶而是幾塊顏色,這種現象叫做banding。10bit由於顏色級數是8bit的4倍,色塊就不容易出現,同時由於相鄰顏色區別更小,人眼也難以看出色塊之間的界限。
(從wiki偷來的banding效果圖,左邊是banding,中間是dithering,右邊是高bit數下的效果)
雖然直觀上感覺10bit比8bit多佔用25%的數據量,但實際上在實踐中10bit往往能帶來更高的壓縮率。這是由於10bit更能準確地描述顏色,提升了信噪比。例如為了解決banding,8bit編碼技術可以通過一種稱為dither(抖動)的方法,也就是在色塊邊緣混入細碎的相鄰色的色點,來模糊色塊邊緣。但是由於這些色點的存在大幅提高了畫面的複雜度,產生了許多冗餘信息量。由於8bit必須採用這些技術來提高視覺觀感,所以8bit編碼往往要引入大量冗餘信息,而10bit不需要dither也能實現一樣的畫面感受,所以往往10bit編碼出來的視頻大小小於同等質量的8bit視頻。
(一張關於各種dithering演算法的圖)
有人可能關心10bit編碼並沒有意義,因為最終用戶的屏幕可能只有6bit或者8bit。這不會使10bit變得沒有意義,因為最終在輸出階段畫面會經由輸出硬體或渲染軟體抖動。這樣就能夠在6bit/8bit的設備上實現類似10bit的輸出效果。
當然10bit不是沒有缺點。首先,計算機系統處理數據的單位往往是byte,也就是8bit。使用10bit,可能會浪費一部分硬體數據傳輸和處理能力,使得處理性能低於8bit編碼。這也是為什麼一直以來使用8bit的原因。同時,該技術較新,很多硬體和軟體尚沒有提供較好的支持,使得應用起來往往存在播放困難、消耗太多資源等等問題。簡要解釋什麼是10bit跟8bit的區別。
普通相機拍的是8bit,曝光爆掉或暗部過大的地方拿到PS是沒法修改曝光。
因為那裡顏色數值是【0】什麼圖像數據都沒有。
但10bit相機拍出來的照片可以超過【1】,重新改回曝光爆掉的地方。
比如下圖是HDR高動態光照圖32bit,能把左邊曝光暗的調回來,知乎上傳是8bit,你可以吧圖保存到本地ps看能否改左邊曝光值變成右邊那麼亮依然保持這個細節。
跟8bit相比,10bit的解碼需求也更高,但10bit 4:2:0比8bit 4:2:2還輕鬆,再加上現在解碼器效率也不低,倒也不用擔心太多。總體而言,10bit相比8bit色彩更好,是利大於弊,並且是能用眼睛看出來的。
問的是10bit視頻啊,這都跑題跑到哪去了
Bit depth越高,畫面信息的精度越高,這個Junius Lu已經解釋了
首先,目前市面上民用級別的片源都是8bit的,但是工業上的後期處理基本都是10bit
所以在把影像轉換成消費產品的時候必須要吧10bit的內容轉換成8bit,而這個過程中有個很重要的工序dither(抖動),如果沒有dither的話,10bit的原始視頻轉換成8bit以後就會出現色彩分層現象,當然這種現象一般是在像二維動畫這種畫面乾淨細節少的片源上才會很明顯。
問題在於dither會產生大量高頻信號,這種細節在重編碼的時候很難保留,所以色彩分層(Banding)就成了動畫視頻重編碼的一個老大難問題
而x264的10bit編碼的出現在很大程度上解決了這個問題。有人可能會認為,目前消費級的片源都是8bit的,並且絕大多數人所用的顯示設備的精度只有6-8bit,所以10bit完全沒有意義,這是一種想當然的想法。10bit在以下兩方面有優勢,1,憑藉更高的精度,10bit在實際應用中具有比8bit更好的壓縮效率(不要想當然地認為那多出來的2bit一定會消耗更多的碼率),尤其是畫面的細節更容易被保留。2,8bit片源轉換成10bit進行編碼和10bit視頻被解碼然後轉換成8bit最終在顯示器上顯示,這個過程會經歷兩次dither,所以能非常有效地消除動畫片的色彩分層現象。
涉及一些比較具體測試的文章:10bit視頻編碼--特性及全面播放方法介紹
視頻的10bit的壓制。
可以在保持高畫質的前提下大大提升壓縮效率,10bit壓制主要是通過提升編碼的精度,
從而在有損壓縮時可以採用更高的量化值,同時保持十分好的質量,
於是可以在比8bit壓制更低的碼率下還原出更好的畫面。
10bit在更高的精度冗餘下可以在有損編碼時有更高的效率。
具體對於畫質有利的方面主要在於:
1.防止banding(色彩平滑過渡區域的色帶)產生
2 提升暗場效果
3.更好地容納噪點
而這幾項正好都是現在8bit壓制中很難處理的地方。特別是對於動畫,
banding是個及其麻煩的東西。暗場是十分容易碼率分配不足,並且產生畫面劣化的部分。
而噪點則是十分消耗碼率。10bit下這些困難的東西都變得容易處理了。
目前所使用的10bit壓制是作用於內部的編碼精度,而不是輸出精度。
10bit的視頻記錄更精確的色彩,比如我們平時用的rgb 每個通道8bit,那麼紅色分量就是0~255,只有256個,而10bit就是1024。 在大面積色彩過渡的地方8bit 紅色0到1跳了1/256,可以達到肉眼可見的地步,而10bit 0 1 2 3 共跳了4/1024,但之間多插入了兩個數字,那麼一共有四種顏色進行過渡,過渡更加均衡。其實這一切都是為了更好的記錄原視頻的信息,為了看不到明顯的色帶,8bit視頻要做抖動,也就是說這些抖動要一起壓入視頻中,而10bit記錄了更多的顏色,本身甚至可以不做抖動或者很少,而放到播放的時候完成抖動這個步驟,藉此也減小了體積,所以在處理色帶banding上更有利。我們平時用的大多就是6bit抖動到8bit的顯示器,所以都得經過多次抖動,最終的大面積慢過渡圖像仔細看會有很多顆粒感。
當然rgb只是舉個例子,我們看視頻一般都是yuv分量,在色彩空間的轉換中由於兩次整數化還會損失不少,所以其實10bit還是為了彌補那些精度損失。
說得不是很準確,見諒。
HEVC 10bit yuv444 60fps 4k 大法好。
注意此10bit非彼10bit,廣播電視電影行業使用的10bit壓縮標準和動畫壓制常用的x264 Hi10P差異還是很大的。
專業領域一般用的10bit,當然也有更高的,因為色彩更好,但是對個人來說一般8bit就夠了,常用的播放器播放的時候也是8bit。。
我說怎麼下載的動畫片在電視盒裡都打不開呢,原來是這個技術惹的禍。
任何已圖片方式描述10BIT與8BIT的都是坑!
低BIT轉高BIT幾乎沒有任何明顯的優勢,現在各路吹的10BIT如何強悍都幾乎是為了10BIT的顯示器市場花式炒作!
如果拿母帶製作發行物,那麼10BIT的優勢就比8BIT強太多了,注意理論並沒有問題,只不過市場在顛倒和模糊概念!精度只能高轉低保持儘可能的減少損失,並不能低精度轉高精度提高什麼東西,也可以說低精度轉高精度可以進一步的減少再次損失。也就是說90%的發行物是8BIT,那麼你拿10BIT的顯示器看8BIT,提升我很負責也很給面子的說最多10%!而且消費市場真正的原生10BIT面板幾乎為0,硬要數那麼大概能找出個2-3台,其它全是8抖10撐死了!任何在屏庫沒有標註為原生10BIT面板的,商家如何吹那也只是插件8抖10.
我很好奇各位對著8bit的顯示器怎麼去分辨8bit視頻還是10bit視頻呢? XD
推薦閱讀: