色彩模式
常用的色彩模式型有RGB和YUV兩大類,RGB相對(duì)來說比較簡(jiǎn)單也容易理解,R表示紅色Red,G表示綠色Green,B表示藍(lán)色Blue,三個(gè)顏色通道疊加后可以組成各種各樣的顏色;YUV來源于RGB,Y表示亮度,UV表示色度,也就是像素的顏色,YUV細(xì)分的話有Y'UV,YUV,YCbCr,YPbPr等格式,目前在計(jì)算機(jī)上使用的主要是YCbCr,因此說起YUV時(shí)主要指的是YCbCr(本文后續(xù)均稱YUV),Cb表示藍(lán)色濃度偏移量,Cr表示紅色濃度偏移量。
RGB
因此RGB比較好理解,因此我們來簡(jiǎn)單介紹幾個(gè)RGB格式
RGB_565:每個(gè)像素點(diǎn)由2個(gè)字節(jié)(16位)組成,其中前5位表示紅色,中間16為表示綠色,后5位表示藍(lán)色
ARGB_4444:每個(gè)像素點(diǎn)由2個(gè)字節(jié)(16位)組成,其中前4位為透明度(Alpha),后面4位為紅色,接著4位為綠色,最后4位藍(lán)色。由于圖像質(zhì)量低,目前已被標(biāo)記為棄用
ARGB_8888:每個(gè)像素點(diǎn)由4個(gè)字節(jié)(32位)組成,組成方式和ARGB_4444類似,只是每個(gè)變量均有8位
RGB_888:每個(gè)像素點(diǎn)由3個(gè)字節(jié)(24位)組成,紅綠藍(lán)各占8位
YUV
YUV模式是利用人眼對(duì)亮度敏感而對(duì)色度相對(duì)不敏感的特點(diǎn),通過縮減色度采樣以減少數(shù)據(jù)量,并且圖像質(zhì)量不會(huì)明顯下降的色彩模式,其在采樣時(shí)會(huì)保留每個(gè)像素的Y分量,但會(huì)適當(dāng)丟棄UV分量,數(shù)據(jù)量通常會(huì)比RGB要小,因此常用于視頻傳輸。YUV按照采樣方式通常分為YUV444、YUV422、YUV420、YUV411,按照存儲(chǔ)方式可分為Planar、Packed、SemiPlanar,而Y、U、V每個(gè)通道變量通常可以為8位、10位、16位,不同的組合方式也使YUV出現(xiàn)了各種各樣的類型。
采樣模式
YUV444:沒有縮減色度采樣,每4個(gè)像素中有4個(gè)Y分量、4個(gè)U分量、4個(gè)V分量;平均每個(gè)像素3個(gè)字節(jié)(24位),相比于RGB幾乎沒有壓縮
YUV422:每4個(gè)像素中有4個(gè)Y分量、2個(gè)U分量、2個(gè)V分量,在采樣時(shí)相鄰兩個(gè)像素一個(gè)丟棄U分量,一個(gè)丟棄V分量;平均每個(gè)像素2個(gè)字節(jié)(16位)
YUV420:每4個(gè)像素中有4個(gè)Y分量、1個(gè)U分量、1個(gè)V分量,在采樣時(shí)相鄰兩個(gè)元素丟棄一個(gè)U分量,下一行的該位置的兩個(gè)元素丟棄一個(gè)V分量;平均每個(gè)像素大小為1.5個(gè)字節(jié)(12位)
YUV411:和YUV420一樣,每4個(gè)像素中有4個(gè)Y分量、1個(gè)U分量、1個(gè)V分量,在采樣時(shí)每行相鄰4個(gè)元素丟棄3個(gè)U分量和3個(gè)V分量;大小和YUV420相同,使用該模式的很少因此后面不再贅述
存儲(chǔ)方式
- Packed:連續(xù)存儲(chǔ)每個(gè)像素點(diǎn)的Y、U、V分量,丟棄的分量不存儲(chǔ)
- YUV422形如YUYV YUYV YUYV YUYV
- YUV420形如YUYYUY YVYYVY
- Planar:先存儲(chǔ)所有像素點(diǎn)的Y分量,再存儲(chǔ)所有像素點(diǎn)的U分量,最后存儲(chǔ)所有像素點(diǎn)的V分量,
- YUV422形如YYYYYYYY UUUU VVVV
- YUV420形如YYYYYYYY UU VV
- SemiPlanar:先存儲(chǔ)所有像素點(diǎn)的Y分量,再交錯(cuò)存儲(chǔ)U、V分量
- YUV422形如YYYYYYYY UVUVUVUV
- YUV420形如YYYYYYYY UVUV
PS:微軟文檔中只看到了Planar和Packed,Android中有見到SemiPlanar,出處暫時(shí)不得而知,這里暫時(shí)將其加入到存儲(chǔ)模式分類表格中
YUV色彩模式匯總
| 色彩模式 | 采樣方式 | 存儲(chǔ)方式 | 單通道占據(jù)位數(shù) | 示意 |
|---|---|---|---|---|
| AYUV | 4:4:4 | Packed | 8 | |
| Y410 | 4:4:4 | Packed | 10 | |
| Y416 | 4:4:4 | Packed | 16 | |
| YUY2 | 4:2:2 | Packed | 8 | |
| Y210 | 4:2:2 | Packed | 10 | |
| Y216 | 4:2:2 | packed | 16 | |
| P210 | 4:2:2 | Planar | 10 | |
| P216 | 4:2:2 | Planar | 16 | |
| I422(YUV422P) | 4:2:2 | Planar | 8 | YYYY UU VV |
| YV16 | 4:2:2 | Planar | 8 | YYYY VV UU |
| NV16(YUV422SP) | 4:2:2 | SemiPlanar | 8 | YYYY UV UV |
| NV61 | 4:2:2 | SemiPlanar | 8 | YYYY VU VU |
| NV11 | 4:1:1 | Planar | 8 | |
| P010 | 4:2:0 | Planar | 10 | |
| P016 | 4:2:0 | Planar | 16 | |
| YU12(I420/YUV420P) | 4:2:0 | Planar | 8 | YYYYYYYY UU VV |
| YV12 | 4:2:0 | Planar | 8 | YYYYYYYY VV UU |
| NV12(YUV420SP) | 4:2:0 | SemiPlanar | 8 | YYYYYYYY UV UV |
| NV21 | 4:2:0 | SemiPlanar | 8 | YYYYYYYY VU VU |
由于經(jīng)常會(huì)被YUV的各種格式名字搞混,因此整理了該表格,如有問題歡迎批評(píng)指正。