YUV各種采樣格式的說明
通常我們用RGB表示一種彩色。計算機系統里的LCD顯示的數據就是RGB來表示每個像素的顏色。
而在我們生活里,有黑白電視機與彩色電視機兩種,拍攝節目源時不可以用兩種不同的攝像機來存放兩種圖像數據。
所以為了兼容兩種電視機,專家就引入YUV格式代替RGB,其中Y表示亮度, U和V表示色差。 黑白電視機只用Y信號, 而彩色電視機可由YUV轉換成RGB再顯示顏色。
通常我們所用的YUV格式是 ITU-R 的標准 , 也叫YCbCr.
YUV是由RGB格式的數據轉換得來。
Y Y = 0.299 x R + 0.587 x G + 0.114 x B + 0 U Cb = -0.169 x R - 0.331 x G + 0.499 x B + 128 V Cr = 0.499 x R - 0.418 x G - 0.0813 x B + 128 Y Y = 0.299 x R + 0.587 x G + 0.114 x B + 0 U Cb = -0.169 x R - 0.331 x G + 0.499 x B + 128 V Cr = 0.499 x R - 0.418 x G - 0.0813 x B + 128
///////
YUV4:4:4
其實就是YUV的數據各占用8位, 每個像素都由YUV組成
同一行的相鄰4個像素數據: Y0U0V0 Y1U1V1 Y2U2V2 Y3U3V3 存儲時: Y0U0V0 Y1U1V1 Y2U2V2 Y3U3V3 //即每個像素YUV的數據都會存放起來 為什么叫4:4:4 , 意思就是4個像素里的數據有4個Y, 4個U, 4個V
//////
YUV4:2:2
其實絕大部分相鄰的兩個像素,數據差異應不大。所以為了節點空間便於存儲,丟失每個像素的部分數據。
專家研究表明我們人對亮度比較敏感,而對色彩不怎么敏感。所以每個像素的亮度Y數據是絕對不動的,而色差數據可以進行丟棄。
同一行的相鄰4個像素數據: Y0U0V0 Y1U1V1 Y2U2V2 Y3U3V3 存儲時: Y0U0 Y1V1 Y2U2 Y3V3 // 每兩個相鄰的像素, 一個丟棄V數據,一個丟棄U數據 為什么叫4:2:2, 意思就是相鄰的4個像素里有4個Y, 2個U, 2個V。 按上面存儲的順序也叫YUYV. 但還原成RGB數據必須需要YUV, 像第一個像素只有Y0U0是沒法還原的,這時只能用下一像素的V1數據。 還原時的YUV: [Y0U0V1] [Y1U0V1] [Y2U2V3] [Y3U2V3] // 這樣還原理論上會對圖像的質量有影響的,但我們看不出來的.
/////
YUV4:2:0
專家們進一步研究表示,每一行的相鄰兩個像素與下一行同位置的兩個像素數據差異不大,可以進一步的丟數據。
如兩行的像素數據: Y00U00V00 Y01U01V01 Y02U02V02 Y03U03V03 .... Y88U88V88 Y89U89V89 Y90U90V90 Y91U91V91 .... 存儲時: Y00U00 Y01 Y02U02 Y03 // 每個像素的Y數據保留, 兩個像素數據只保留一個U數據。這一行不保留V數據(YUV: 420) Y88V88 Y89 Y90V90 Y91 // .... 兩個像素數據只保留一個V數據, 這行不保留U數據(YUV: 402) 還原時只能相同位置的上下兩行4個像素結合還原: Y00U00V88 Y01U00V88 Y02U02V90 Y03U02V90 Y88U00V88 Y89U00V88 Y90U02V90 Y91U02V90
YUV各種采樣格式的比較
我們以一張大小為1280*720的圖像為例:
在RGB 圖像中,每個像素點都有紅、綠、藍三個原色,其中每種原色都占用 8 bit,也就是一個字節,那么一個像素點也就占用 24 bit,也就是三個字節。
一張 1280 * 720 大小的圖片,就占用 1280 * 720 * 3 / 1024 / 1024 = 2.63 MB 存儲空間。
【使用YUV4:4:4格式采樣的大小】
YUV4:4:4格式意味着Y、U、V三個分量的采集比例相同,因此在生成的圖像里,每個像素的三個分量信息完整,都是8bit,也就是一個字節。
那么它的采樣大小為
3 * 1280 * 720 / 1024 / 1024 = 2.63MB
與原始RGB圖像相比大小是一樣的。
【使用YUV4:2:2格式采樣的大小】
YUV4:2:2格式的采樣特征是在每相臨的兩個像素,一個丟棄U分量,一個丟棄V分量,那么它的采樣大小為:
(8 + 8) * 1280 * 720 / 8 / 1024 / 1024 = 1.76MB
可以看到 YUV 4:2:2 采樣的圖像比 RGB 模型圖像節省了三分之一的存儲空間,在傳輸時占用的帶寬也會隨之減少。
【使用YUV4:2:0格式采樣的大小】
YUV4:2:0格式的采樣特征是所有像素都保留Y分量,同一行的像素只保留U分量,或者是V分量,同一行中相臨的兩個像素只保留同一個Y分量或者U分量。
那么它的采樣大小為:
(8 * 1280 * 720 + 8 * 1280 * 720 / 2 / 2 + 8 * 1280 * 720 / 2 / 2) / 8 / 1024 / 1024 = 1.32MB
可以看到 YUV 4:2:0 采樣的圖像比 RGB 模型圖像節省了一半的存儲空間,因此它也是比較主流的采樣方式。
參考鏈接:
2.最簡單解釋 YUV444,YUV422,YUV420中的4,2,0