一、YUV和YCbCr的關(guān)系
正如幾何上用坐標(biāo)空間來描述坐標(biāo)集合,色彩空間用數(shù)學(xué)方式來描述顏色集合。常見的3個(gè)基本色彩模型是RGB,CMYK和YUV。
YCbCr則是在世界數(shù)字組織視頻標(biāo)準(zhǔn)研制過程中作為ITU - R BT.601建議的一部分,其實(shí)是YUV經(jīng)過縮放和偏移的翻版。其中Y與YUV中的Y含義一致,Cb、Cr同樣都指色彩,只是在表示方法上不同而已。在YUV家族中,YCbCr是在計(jì)算機(jī)系統(tǒng)中應(yīng)用最多的成員,其應(yīng)用領(lǐng)域很廣泛,JPEG、MPEG均采用此格式。一般人們所講的YUV大多是指YCbCr。YCbCr有許多取樣格式,如4:4:4、4:2:2、4:1:1和4:2:0。
1.1 YUV
YUV,是一種顏色編碼方法。常使用在各個(gè)視頻處理組件中。 YUV在對(duì)照片或視頻編碼時(shí),考慮到人類的感知能力,允許降低色度的帶寬。
YUV是編譯true-color顏色空間(color space)的種類,Y'UV, YUV, YCbCr,YPbPr等專有名詞都可以稱為YUV,彼此有重疊。“Y”表示明亮度(Luminance或Luma),也就是灰階值,“U”和“V”表示的則是色度(Chrominance或Chroma),作用是描述影像色彩及飽和度,用于指定像素的顏色。
Y′UV,YUV,YCbCr,YPbPr所指涉的范圍,常有混淆或重疊的情況。從歷史的演變來說,其中YUV和Y'UV通常用來編碼電視的模擬信號(hào),而YCbCr則是用來描述數(shù)字的視頻信號(hào),適合視頻與圖片壓縮以及傳輸,例如MPEG、JPEG。但在現(xiàn)今,YUV通常已經(jīng)在電腦系統(tǒng)上廣泛使用。
1.2 YCbCr
YCbCr其中Y是指亮度分量,Cb指藍(lán)色色度分量,而Cr指紅色色度分量。人的肉眼對(duì)視頻的Y分量更敏感,因此在通過對(duì)色度分量進(jìn)行子采樣來減少色度分量后,肉眼將察覺不到的圖像質(zhì)量的變化。主要的子采樣格式有 YCbCr 4:2:0、YCbCr 4:2:2 和 YCbCr 4:4:4。
4:2:0表示每4個(gè)像素有4個(gè)亮度分量、2個(gè)色度分量 (YYYYCbCr),僅采樣奇數(shù)掃描線,是便攜式視頻設(shè)備(MPEG-4)以及電視會(huì)議(H.263)最常用格式;4:2:2表示每4個(gè)像素有4個(gè)亮度分量、4個(gè)色度分量(YYYYCbCrCbCr),是DVD、數(shù)字電視、HDTV以及其它消費(fèi)類視頻設(shè)備的最常用格式;4:4:4表示全像素點(diǎn)陣(YYYYCbCrCbCrCbCrCbCr),用于高質(zhì)量視頻應(yīng)用、演播室以及專業(yè)視頻產(chǎn)品。
二、主要采樣格式
主要的采樣格式有YCbCr 4:2:0、YCbCr 4:2:2、YCbCr 4:1:1和YCbCr 4:4:4。其中YCbCr 4:1:1比較常用,其含義為:每個(gè)點(diǎn)保存一個(gè)8bit的亮度值(也就是Y值),每2x2個(gè)點(diǎn)保存一個(gè)Cr和Cb值,圖像在肉眼中的感覺不會(huì)起太大的變化。所以,原來用RGB(R,G,B 都是8bit unsigned)模型,每個(gè)點(diǎn)需要8x3=24bits,而僅需要8+(8/4)+(8/4)=12bits,平均每個(gè)點(diǎn)占12bits,這樣就把圖像的數(shù)據(jù)壓縮了一半。
上邊僅給出了理論上的示例,在實(shí)際數(shù)據(jù)存儲(chǔ)中是有可能是不同的,下面給出幾種具體的存儲(chǔ)形式:
1、YUV 4:4:4
YUV三個(gè)信道的抽樣率相同,因此在生成的圖像里,每個(gè)象素的三個(gè)分量信息完整(每個(gè)分量通常8比特),經(jīng)過8比特量化之后,未經(jīng)壓縮的每個(gè)像素占用3個(gè)字節(jié)。
下面的四個(gè)像素為:[Y0 U0 V0] [Y1 U1 V1] [Y2 U2 V2] [Y3 U3 V3]
存放的碼流為:Y0 U0 V0 Y1 U1 V1 Y2 U2 V2 Y3 U3 V3
2、YUV 4:2:2
每個(gè)色差信道的抽樣率是亮度信道的一半,所以水平方向的色度抽樣率只是4:4:4的一半。對(duì)非壓縮的8比特量化的圖像來說,每個(gè)由兩個(gè)水平方向相鄰的像素組成的宏像素需要占用4字節(jié)內(nèi)存。
下面的四個(gè)像素為:[Y0 U0 V0] [Y1 U1 V1] [Y2 U2 V2] [Y3 U3 V3]
存放的碼流為:Y0 U0 Y1 V1 Y2 U2 Y3 V3
映射出像素點(diǎn)為:[Y0 U0 V1] [Y1 U0 V1] [Y2 U2 V3] [Y3 U2 V3]
3、YUV 4:1:1
4:1:1的色度抽樣,是在水平方向上對(duì)色度進(jìn)行4:1抽樣。對(duì)于低端用戶和消費(fèi)類產(chǎn)品這仍然是可以接受的。對(duì)非壓縮的8比特量化的視頻來說,每個(gè)由4個(gè)水平方向相鄰的像素組成的宏像素需要占用6字節(jié)內(nèi)存。
下面的四個(gè)像素為:[Y0 U0 V0] [Y1 U1 V1] [Y2 U2 V2] [Y3 U3 V3]
存放的碼流為:Y0 U0 Y1 Y2 V2 Y3
映射出像素點(diǎn)為:[Y0 U0 V2] [Y1 U0 V2] [Y2 U0 V2] [Y3 U0 V2]
4、YUV 4:2:0
4:2:0并不意味著只有Y、Cb而沒有Cr分量。它指得是對(duì)每行掃描線來說,只有一種色度分量以2:1的抽樣率存儲(chǔ)。相鄰的掃描行存儲(chǔ)不同的色度分量,也就是說,如果一行是4:2:0的話,下一行就是4:0:2,再下一行是4:2:0...以此類推。對(duì)每個(gè)色度分量來說,水平方向和豎直方向的抽樣率都是2:1,所以可以說色度的抽樣率是4:1。對(duì)非壓縮的8比特量化的視頻來說,每個(gè)由2x2個(gè)2行2列相鄰的像素組成的宏像素需要占用6字節(jié)內(nèi)存。
下面八個(gè)像素為:[Y0 U0 V0] [Y1 U1 V1] [Y2 U2 V2] [Y3 U3 V3]
[Y5 U5 V5] [Y6 U6 V6] [Y7 U7 V7] [Y8 U8 V8]
存放的碼流為:Y0 U0 Y1 Y2 U2 Y3
Y5 V5 Y6 Y7 V7 Y8
映射出的像素點(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]