RGB 和 YUV 都是色彩空間模型。
RGB 顏色編碼
RGB顏色編碼格式弹灭,是指每種顏色都可以用(紅,綠揪垄,藍)三種原色來表示穷吮,將RGB分別取不同的值,會展示不同的顏色饥努。
用RGB表示的圖像中捡鱼,每個像素點都有紅、綠酷愧、藍三個原色驾诈,每種顏色都占用8 bit,即一個字節(jié)溶浴,所以一個像素點占用24bit乍迄,即3個字節(jié)。
當有一張 1280 * 720 大小的圖片時士败,該圖片中有 1280 * 720個像素點闯两,其中每個像素點都采用RGB編碼格式,那么這張圖片就會占用1280 * 720 * 3 / 1024 / 1024 = 2.63MB的存儲空間谅将。
YUV 顏色編碼
YUV 顏色編碼采用的是明亮度和色度來指定像素的顏色漾狼,其中Y表示明亮度(Luminance Luma),U和V表示色度(Chrominance chroma)戏自,而色度邦投,又定義了顏色的色調(diào)和飽和度。
YUV顏色編碼格式在默認情況下是圖像和視頻壓縮的標準擅笔,如下圖所示志衣,和RGB類似,每個像素先都包含Y猛们、U念脯、V3個分量,但是其中Y和UV是可以分離的弯淘,沒有UV信息绿店,也是可以顯示圖片的,只不過的黑白的庐橙。
從RGB顏色編碼計算的圖片存儲空間假勿,一張1280*720就要占用2.63MB,如果在視頻渲染中也采樣RBG顏色編碼格式态鳖,其中視頻也是由一幀一幀的圖片組成转培,可想而知,占用的內(nèi)存有多大浆竭。而使用YUV編碼格式則可以極大的節(jié)省內(nèi)存浸须,節(jié)約帶寬。
對于YUV圖像來說邦泄,并不是每個像素點都需要包含Y删窒、U、V三個分量顺囊,我們可以根據(jù)不同的采樣格式肌索,有以下幾種采樣格式:
1.YUV4:4:4:每個Y分量對應自己的UV分量
2.YUV4:2:2:兩個Y分量共用一套UV分量
3.YUV4:2:0:4個Y分量共用一套UV分量
其中最常用的YUV格式則是YUV4:2:0。
YUV采樣格式 - YUV4:4:4
YUV4:4:4 采樣格式特碳,表示其中的Y诚亚、U、V三個分量的采樣比例是相同的测萎,所以每個像素點的分量信息都是完整的亡电,每個分量占用8bit,一個像素點占用1個字節(jié)硅瞧。與RGB顏色編碼相比份乒,并沒有節(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
最后映射還原的像素點 = 原始圖像的像素,為:
[Y0, U0, V0]; [Y1, U1, V1]; [Y2, U2, V2]; [Y3, U3, V3];
其中映射過程如下圖所示:
YUV采樣格式 - YUV4:2:2
YUV4:2:2采樣格式枣接,是指其中Y分量的采樣是UV分量的2倍颂暇,即Y分量與UV分量是按照2:1的比例采樣。舉例說明:如果水平方向有10個像素點但惶,通過這種采樣格式耳鸯,最終采樣了10個Y分量湿蛔,5個UV分量。
可以通俗的理解為:每采樣一個像素點县爬,都會采樣Y分量阳啥,而U、V分量則會間隔一個采集一個财喳,如圖所示:
假設原始圖像的像素為(一對[]表示一個像素點):
[Y0, U0, V0]; [Y1, U1, V1]; [Y2, U2, V2]; [Y3, U3, V3];
將原始圖像像素按照YUV4:2:2采樣的碼流為:
Y0, U0, Y1, V1, Y2, U2, Y3, V3
最后映射還原的像素點為:
[Y0, U0, V1]; [Y1, U0, V1]; [Y2, U2, V3]; [Y3, U2, V3];
其映射過程如圖所示:
YUV采樣格式 - YUV4:2:0
YUV4:2:0采樣格式察迟,并不是只采樣U分量,而不采樣V分量耳高,而是在每一行掃描時扎瓶,只掃描一種U/V其中一種色度分量,而Y按照2:1的方式采樣泌枪。
舉例說明:
當?shù)谝恍袙呙钑r概荷,YU按照2:1的方式采樣
當?shù)诙袙呙钑r,YV按照2:1的方式采樣
對于每個色度分量來說工闺,在水平方向和豎直方向的采樣 和 Y分享相比都是2:1乍赫。
可以簡單的理解為:在田字格的4個像素點中,4個Y分量共用了一套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];
將原始圖像像素按照YUV4:2:0采樣的碼流為:
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];
其映射過程如圖所示:
總結
YUV4:4:4中Y雷厂、U、V分量的采樣比例相同叠殷,既可以理解為原始圖像像素點原樣輸出改鲫,存儲空間沒有任何變化
YUV4:2:2采樣格式,是指每采樣一個像素點林束,都會采樣Y分量像棘,而U、V分量則會間隔一個采集一個壶冒,本質(zhì)是通過左右相鄰像素點共用U/V分量缕题。相比RGB顏色編碼格式,節(jié)省了 1/3的存儲空間胖腾,同時節(jié)約了在傳輸時的帶寬
YUV4:2:0采樣格式烟零,是實際開發(fā)中最常用的顏色編碼格式,相比YUV4:2:2采樣格式咸作,更能節(jié)省空間锨阿。是指在2*2的田字格中有4個像素點,其中4個Y分量共用一套UV分量记罚,其本質(zhì)是通過田字格的上下左右像素點共用U/V分量