RGB
在圖像顯示中工窍,?張 1280 * 720 ?小的圖片,就代表著它有 1280 * 720 個(gè)像素點(diǎn)前酿。其中每一個(gè)像素點(diǎn)的顏色顯示都采用 RGB 編碼方法患雏,將 RGB 分別取不同的值,就會(huì)展示不同的顏?罢维。
RGB 圖像中淹仑,每個(gè)像素點(diǎn)都有紅、綠、藍(lán)三個(gè)原色匀借,其中每種原色都占用 8 bit颜阐,也就是1個(gè)字節(jié),那 么?個(gè)像素點(diǎn)也就占用 24 bit吓肋,也就是3個(gè)字節(jié)凳怨。
一張
1280 * 720
?小的圖?,就占?1280 * 720 * 3 / 1024 / 1024 = 2.63 MB
存儲(chǔ)空間
YUV
YUV
顏色編碼采用的是明亮度和色度來指定像素的顏色是鬼。其中肤舞,Y
表示明亮度(LUminance、Luma
)均蜜,而U
和V
表示色度(Chrominance李剖、Chroma
)。而色度又定義了顏色的兩個(gè)方面:色調(diào)和飽和度囤耳。
為什么要使用YUV 顏色編碼?
為什么要使用YUV 顏色編碼篙顺?我們要先從YUV采樣格式說起
YUV采樣格式 — YUV 4 : 4 : 4
YUV 4:4:4
采樣,意味著Y充择、U慰安、V
三個(gè)分量的采樣?例相同,因此在?成的圖像里聪铺,每個(gè)像素的三個(gè)分量量信息完整化焕,都是8 bit
,也就是1
個(gè)字節(jié)铃剔。
例如:
原始圖像素為:
[Y0,U0,V0] ;[Y1,U1,V1] ;[Y2,U2,V2] ;[Y3,U3,V3];
那么按照YUV4:4:4
采樣的碼流為: Y0,U0,V0,Y1,U1,V1,Y2,U2,V2,Y3,U3,V3;
最后映射還原的像素點(diǎn)為:
[Y0,U0,V0] ;[Y1,U1,V1] ;[Y2,U2,V2] ;[Y3,U3,V3];
使?如上YUV4:4:4
與使?圖像RGB
顏?模型圖像?小是一樣的. 并沒有達(dá)到節(jié)省帶寬的目的撒桨。
YUV 采樣格式 — YUV 4 : 2 : 2
YUV 4:2:2
采樣,意味著UV分量
是Y分量
采樣的?半键兜,Y分量
和UV分量
按照2 : 1
的比例采樣凤类。
如果水平?向有10
個(gè)像素點(diǎn),那么采樣了10
個(gè)Y分量
普气,?只采樣了5
個(gè)UV分量
谜疤。
例如:
原始圖像素為: [
Y0
,U0
,V0] ;[Y1
,U1,V1
] ;[Y2
,U2
,V2] ;[Y3
,U3,V3
] ;
那么按照YUV 4:2:2
采樣的碼流為:
Y0,U0,Y1,V1,Y2,U2,Y3,V3
其中,每采樣過一個(gè)像素點(diǎn)现诀,都會(huì)采樣其Y分量
夷磕,?U、V分量
就會(huì)間隔一個(gè)采集一個(gè)仔沿。
最后映射還原的像素點(diǎn)為:
[Y0,U0,V0] ;[Y1,U1,V1] ;[Y2,U2,V2] ;[Y3,U3,V3];
?張
1280 * 720
?小的圖?坐桩,在YUV 4:2:2
采樣時(shí)的?小為:
(1280 * 720 * 8 + 1280 * 720 * 0.5 * 8 * 2)/ 8 / 1024 / 1024 = 1.76 MB
。
可以看到YUV 4:2:2
采樣的圖像比RGB
模型圖像節(jié)省了三分之一的存儲(chǔ)空間封锉,在傳輸時(shí)占?的帶寬也會(huì)隨之減少绵跷。
YUV 采樣格式 — YUV 4 : 2 : 0
YUV 4:2:0
采樣膘螟,并不是指只采樣U分量
?不采樣V分量
。而是指碾局,在每?行掃描時(shí)荆残,只掃描一種?度分量(U
或者V
),和Y分量
按照 2 : 1
的?式采樣净当。比如内斯,第?行掃描時(shí),YU分量
按照 2 : 1
的方式采樣蚯瞧,那么第二行掃描時(shí),YV分量
按照2:1
的方式采樣品擎。對(duì)于每個(gè)色度分量來說埋合,它的?平?向和豎直方向的采樣和Y分量
相比都是2:1
。假設(shè)第一行掃描了U 分量
萄传,第?行掃描了V 分量
甚颂,那么需要掃描兩行才能夠組成完整的UV分量
例如:
原始圖像素為:
[
Y0 U0
V0]、[Y1
U1 V1]秀菱、 [Y2 U2
V2]振诬、 [Y3
U3 V3]、[
Y5
U5 V5
]衍菱、[Y6
U6 V6]赶么、 [Y7
U7 V7
] 、[Y8
U8 V8]
那么按照YUV 4:2:0
采樣的碼流為:
Y0 , U0 , Y1 , Y2 , U2 , Y3 , Y5 , V5 , Y6 , Y7 , V7 , Y8
其中脊串,每采樣過一個(gè)像素點(diǎn)辫呻,都會(huì)采樣其Y分量,?U琼锋、V分量就會(huì)間隔一行按照2 : 1進(jìn)?采樣放闺。
最后映射還原的像素點(diǎn)為:
[Y0 U0 V5]、[Y1 U0 V5]缕坎、[Y2 U2 V7]怖侦、[Y3 U2 V7]、 [Y5 U0 V5]谜叹、[Y6 U0 V5]匾寝、[Y7 U2 V7]、[Y8 U2 V7]
從映射出的像素點(diǎn)中可以看到荷腊,四個(gè)Y分量
是共用了一套UV分量
旗吁,?而且是按照2*2?方格
的形式分布的,相比YUV 4:2:2
采樣中兩個(gè) Y分量
共用一套UV分量
停局,這樣更能夠節(jié)省空間很钓。
一張
1280 * 720
?小的圖片香府,在YUV 4:2:0
采樣時(shí)的?小為:(1280 * 720 * 8 + 1280 * 720 * 0.25 * 8 * 2)/ 8 / 1024 / 1024 = 1.32 MB
。
RGB — YUV 顏?編碼轉(zhuǎn)換
對(duì)于圖像顯示器來說码倦,它是通過RGB模型
來顯示圖像的企孩,?在傳輸圖像數(shù)據(jù)時(shí)?是使?YUV模型
,這是因?yàn)?code>YUV模型可以節(jié)省帶寬袁稽。因此就需要采集圖像時(shí)將RGB模型
轉(zhuǎn)換到YUV模型
勿璃,顯示時(shí)再將YUV模型
轉(zhuǎn)換為RGB模型
RGB
到YUV
的轉(zhuǎn)換,就是將圖像所有像素點(diǎn)的R推汽、G补疑、B
分量轉(zhuǎn)換到Y、U歹撒、V
分量莲组。
Y = 0.299 * R + 0.587 * G + 0.114 * B
U = -0.147 * R - 0.289 * G + 0.436 * B
V = 0.615 * R - 0.515 * G - 0.100 * B
R = Y + 1.14 * V
G = Y - 0.39 * U - 0.58 * V
B = Y + 2.03 * U