關于YUV
和RGB色彩模型一樣,YUV也是被發明來描述色彩的模型。類似的還有CMYK等。
RGB 是使用紅綠藍三原色來描述色彩的模型。
YUV 使用亮度和色度來描述色彩的模型。
CMYK 是使用青色Cyan、品紅色Magenta、黃色Yellow 來描述色彩的模型。
Y:表示的是亮度。UV是色差。YUV又稱YCbCr,Cb代表藍色差量(U),Cr代表紅色分量(V),Y不僅有綠分量,還疊加了亮度資訊。
YUV的出現解決了黑白電視機和彩色電視機顯示的問題。
關于YUV420
YUV主流的采樣方式包括:YUV444,YUV422,YUV420.
YUV 4:4:4采樣,每一個Y對應一組UV分量。
YUV 4:2:2采樣,每兩個Y共用一組UV分量。
YUV 4:2:0采樣,每四個Y共用一組UV分量。
對于YUV420編碼來說,一副RGB圖檔有多少個像素點就有多少個Y,然後U分量是四分之一個像素點,V分量也是四分之一個像素點。
YUV420表示的是 2:1 的水準下采樣,2:1 的垂直下采樣
也就是YUV420對RGB格式圖檔采樣如下:
1. 每個像素點采樣一個Y
2. 奇數行采樣U并且是隔一個像素點采樣一次。
3. 偶數行采樣V并且是隔一個像素點采樣一次。
是以對于800x600的RGB圖像,
RGB格式占用:800x600x3位元組
YUV格式占用:800x600x1 + 800x600x1/4 + 800x600x1/4 = (800x600)x1.5 位元組
也就是說YUV格式減少了一半的存儲空間。
YUV420對RGB采樣時如下:
每個像素點都采樣Y,奇數行采樣1/2個U(width、height都減半),不采樣V,偶數行采樣1/2個V(width、height都減半),不采樣U。
YUV420的存儲
YUV格式有兩大類:planar和packed。對于planar的YUV格式,先連續存儲所有像素點的Y,緊接着存儲所有像素點的U,随後是所有像素點的V。對于packed的YUV格式,每個像素點的Y,U,V是連續交替存儲的。對于前者稱為YUV420p,後者稱為YUV420sp。