以一個分辨率1920×1280、幀率30的視頻為例。1920×1280=2,073,600(Pixels 像素),每個像素是24bit,相當于每幅圖片2073600×24=49766400bit,8 bit(位)=1 byte(字節(jié)),所以,49766400bit=6220800byte≈6.22MB。一幅1920×1280圖片的原始大小,再乘以幀率30,也就是說,每秒視頻的大小是186.6MB,每分鐘大約是11GB,一部90分鐘的電影,約是1000GB!
嚇傻了吧?就算你現(xiàn)在電腦硬盤是4TB的(實際也就3600GB),也放不下幾部大片啊!
不僅要存儲,還要傳輸,不然視頻從哪來呢?如果按照100M的網速(12.5MB/s),下載那部電影,需要22個小時!崩潰了吧?
正因如此,必須對視頻進行編碼。什么是編碼?編碼,就是按指定的方法,將信息從一種形式(格式),轉換成另一種形式(格式),說到底就是為了壓縮。各種五花八門的視頻編碼方式,都是為了讓視頻變得體積更小,有利于存儲和傳輸。
我們先來看看視頻從錄制到播放的整個過程吧。
首先是視頻采集。通常我們會使用攝像機、攝像頭進行視頻采集。采集了視頻數(shù)據(jù)之后,就要進行模數(shù)轉換,將模擬信號變成數(shù)字信號?,F(xiàn)在都是攝像機直接輸出數(shù)字信號。信號輸出之后,要進行預處理,將RGB信號變成YUV信號。YUV是另外一種顏色數(shù)字化表示方式。視頻通信系統(tǒng)之所以要采用YUV,而不是RGB,主要是因為RGB信號不利于壓縮。
在YUV這種方式里面,加入了亮度這一概念。眼睛對于亮和暗的分辨要比對顏色的分辨更精細一些,也就是說,人眼對色度的敏感程度要低于對亮度的敏感程度。所以,在視頻存儲中,沒有必要存儲全部顏色信號??梢园迅鄮捔艚o黑——白信號(被稱作“亮度”),將稍少的帶寬留給彩色信號(被稱作“色度”)。于是,就有了YUV。YUV里面的“Y”,就是亮度(Luma),“U”和“V”則是色度(Chroma)。Y'CbCr,也稱為YUV,是YUV的壓縮版本,不同之處在于,Y'CbCr 用于數(shù)字圖像領域,YUV用于模擬信號領域,MPEG、DVD、攝像機中常說的YUV 其實就是Y'CbCr。
YUV(Y'CbCr)是如何形成圖像的呢?