音視頻編解碼: YUV采樣格式中的YUV444,YUV422,YUV420理解
來(lái)源:深圳市凱茉銳電子科技有限公司2020-06-13
YUV各種采樣格式的說(shuō)明
通常我們用RGB表示一種彩色。計(jì)算機(jī)系統(tǒng)里的LCD顯示的數(shù)據(jù)就是RGB來(lái)表示每個(gè)像素的顏色。
而在我們生活里,有黑白電視機(jī)與彩色電視機(jī)兩種,拍攝節(jié)目源時(shí)不可以用兩種不同的攝像機(jī)來(lái)存放兩種圖像數(shù)據(jù)。
所以為了兼容兩種電視機(jī),專家就引入YUV格式代替RGB,其中Y表示亮度, U和V表示色差。 黑白電視機(jī)只用Y信號(hào), 而彩色電視機(jī)可由YUV轉(zhuǎn)換成RGB再顯示顏色。
通常我們所用的YUV格式是 ITU-R 的標(biāo)準(zhǔn) , 也叫YCbCr.
YUV是由RGB格式的數(shù)據(jù)轉(zhuǎn)換得來(lái)。
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
復(fù)制代碼
YUV4:4:4
其實(shí)就是YUV的數(shù)據(jù)各占用8位, 每個(gè)像素都由YUV組成
同一行的相鄰4個(gè)像素?cái)?shù)據(jù): Y0U0V0 Y1U1V1 Y2U2V2 Y3U3V3
存儲(chǔ)時(shí): Y0U0V0 Y1U1V1 Y2U2V2 Y3U3V3 //即每個(gè)像素YUV的數(shù)據(jù)都會(huì)存放起來(lái) 為什么叫4:4:4 , 意思就是4個(gè)像素里的數(shù)據(jù)有4個(gè)Y, 4個(gè)U, 4個(gè)V
//////
YUV4:2:2
其實(shí)絕大部分相鄰的兩個(gè)像素,數(shù)據(jù)差異應(yīng)不大。所以為了節(jié)點(diǎn)空間便于存儲(chǔ),丟失每個(gè)像素的部分?jǐn)?shù)據(jù)。
專家研究表明我們?nèi)藢?duì)亮度比較敏感,而對(duì)色彩不怎么敏感。所以每個(gè)像素的亮度Y數(shù)據(jù)是絕對(duì)不動(dòng)的,而色差數(shù)據(jù)可以進(jìn)行丟棄。
同一行的相鄰4個(gè)像素?cái)?shù)據(jù): Y0U0V0 Y1U1V1 Y2U2V2 Y3U3V3
存儲(chǔ)時(shí): Y0U0 Y1V1 Y2U2 Y3V3 // 每?jī)蓚€(gè)相鄰的像素, 一個(gè)丟棄V數(shù)據(jù),一個(gè)丟棄U數(shù)據(jù) 為什么叫4:2:2, 意思就是相鄰的4個(gè)像素里有4個(gè)Y, 2個(gè)U, 2個(gè)V。 按上面存儲(chǔ)的順序也叫YUYV.
但還原成RGB數(shù)據(jù)必須需要YUV, 像第一個(gè)像素只有Y0U0是沒(méi)法還原的,這時(shí)只能用下一像素的V1數(shù)據(jù)。
還原時(shí)的YUV: [Y0U0V1] [Y1U0V1] [Y2U2V3] [Y3U2V3] // 這樣還原理論上會(huì)對(duì)圖像的質(zhì)量有影響的,但我們看不出來(lái)的.
/////
YUV4:2:0
專家們進(jìn)一步研究表示,每一行的相鄰兩個(gè)像素與下一行同位置的兩個(gè)像素?cái)?shù)據(jù)差異不大,可以進(jìn)一步的丟數(shù)據(jù)。
如兩行的像素?cái)?shù)據(jù):
Y00U00V00 Y01U01V01 Y02U02V02 Y03U03V03 ....
Y88U88V88 Y89U89V89 Y90U90V90 Y91U91V91 ....
存儲(chǔ)時(shí): Y00U00 Y01 Y02U02 Y03 // 每個(gè)像素的Y數(shù)據(jù)保留, 兩個(gè)像素?cái)?shù)據(jù)只保留一個(gè)U數(shù)據(jù)。這一行不保留V數(shù)據(jù)(YUV: 420)
Y88V88 Y89 Y90V90 Y91 // .... 兩個(gè)像素?cái)?shù)據(jù)只保留一個(gè)V數(shù)據(jù), 這行不保留U數(shù)據(jù)(YUV: 402) 還原時(shí)只能相同位置的上下兩行4個(gè)像素結(jié)合還原:
Y00U00V88 Y01U00V88 Y02U02V90 Y03U02V90
Y88U00V88 Y89U00V88 Y90U02V90 Y91U02V90
YUV各種采樣格式的比較
我們以一張大小為1280*720的圖像為例:
在RGB 圖像中,每個(gè)像素點(diǎn)都有紅、綠、藍(lán)三個(gè)原色,其中每種原色都占用 8 bit,也就是一個(gè)字節(jié),那么一個(gè)像素點(diǎn)也就占用 24 bit,也就是三個(gè)字節(jié)。
一張 1280 * 720 大小的圖片,就占用 1280 * 720 * 3 / 1024 / 1024 = 2.63 MB 存儲(chǔ)空間。
【使用YUV4:4:4格式采樣的大小】
YUV4:4:4格式意味著Y、U、V三個(gè)分量的采集比例相同,因此在生成的圖像里,每個(gè)像素的三個(gè)分量信息完整,都是8bit,也就是一個(gè)字節(jié)。
那么它的采樣大小為
3 * 1280 * 720 / 1024 / 1024 = 2.63MB
與原始RGB圖像相比大小是一樣的。
【使用YUV4:2:2格式采樣的大小】
YUV4:2:2格式的采樣特征是在每相臨的兩個(gè)像素,一個(gè)丟棄U分量,一個(gè)丟棄V分量,那么它的采樣大小為:
(8 + 8) * 1280 * 720 / 8 / 1024 / 1024 = 1.76MB
可以看到 YUV 4:2:2 采樣的圖像比 RGB 模型圖像節(jié)省了三分之一的存儲(chǔ)空間,在傳輸時(shí)占用的帶寬也會(huì)隨之減少。
【使用YUV4:2:0格式采樣的大小】
YUV4:2:0格式的采樣特征是所有像素都保留Y分量,同一行的像素只保留U分量,或者是V分量,同一行中相臨的兩個(gè)像素只保留同一個(gè)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 模型圖像節(jié)省了一半的存儲(chǔ)空間,因此它也是比較主流的采樣方式。
相關(guān)資訊
- 2025-01-31
- 2025-01-27
- 2025-01-21
- 2025-01-17
- 2025-01-16
- 2025-01-15