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