1 色彩空間和色彩模型
色彩是人眼對(duì)于不同頻率的光線的不同感受。色彩既是客觀存在的,但又是主觀感知的,所以不同人對(duì)色彩的感知會(huì)存在差異。為了規(guī)范色彩的表述,引入了色彩空間一詞。 “色彩空間”源于西方的“Color Space”,又稱作“色域”,色彩學(xué)中,人們建立了多種色彩模型,以一維、二維、三維甚至四維空間坐標(biāo)來表示某一色彩,這種坐標(biāo)系統(tǒng)所能定義的色彩范圍即色彩空間。我們經(jīng)常用到的色彩空間主要有RGB、CMYK、Lab等。
色彩空間
色彩模型是描述使用一組值(通常使用三個(gè)、四個(gè)值或者顏色成分)表示顏色方法的抽象數(shù)學(xué)模型。例如三原色光模式(RGB) 和印刷四分色模式(CMYK) 都是色彩模型。不同的色彩模型的差異和優(yōu)劣不在本文討論范圍之內(nèi)。本文主要討論YUV和RGB兩種色彩模型的相關(guān)知識(shí)。
2 RGB色彩模型
我們知道, “色彩” 是人類大腦對(duì)事物的一種主觀感覺,為了將這種 “感性” 進(jìn)行 “理性” 描述,數(shù)學(xué)家們創(chuàng)建了 RGB 模型的概念:通過三個(gè)數(shù)的組合(色值)來表述某一種特定的顏色,從而人類可以將這種感性的色彩感受進(jìn)行理性地表達(dá)和傳遞。
2.1 RGB三原色
RGB和CMYrgb(255, 0, 0) 代表純紅色,rgb(0, 255, 0) 代表純綠色,rgb(0, 0, 255) 代表純藍(lán)色,而 rgb(255, 255, 0) 代表純黃色(光學(xué)中紅色和綠色加法混合會(huì)呈現(xiàn)黃色)。
RGB三原色 通過 RGB 色彩模型,我們最多能表示出256x256x256=16777216種不同的色值,也就是我們常說的1600萬色。
如果我們創(chuàng)建一個(gè)三維坐標(biāo)系,三個(gè)軸的代表字母由X、Y、Z換成 R、G 和 B,即用 Red 代表X軸,Green代表Y軸,Blue代表Z軸,采用光學(xué)加法混色的方式構(gòu)建這個(gè)立方空間的話,就形成了一個(gè)基于RGB模型的色彩空間了。
RGB三原色立體空間
我們知道通過 rgb(x, y, z)這種方式構(gòu)建的每一個(gè)顏色點(diǎn),都對(duì)應(yīng)于這個(gè)立方體中的某一個(gè)點(diǎn),也就是說每一種顏色都被包含在我們的色彩空間之內(nèi)。
2.2RGB顏色模型存在的問題
因?yàn)樵谧匀画h(huán)境下獲取的圖像容易受自然光照、遮擋和陰影等情況的影響,即對(duì)亮度比較敏感,而RGB 顏色空間的三個(gè)分量都與亮度密切相關(guān),即只要亮度改變,三個(gè)分量都會(huì)隨之相應(yīng)地改變。另外,RGB 顏色空間是一種均勻性較差的顏色空間,人眼對(duì)于這三種顏色分量的敏感程度是不一樣的,在單色中,人眼對(duì)紅色最不敏感,藍(lán)色最敏感,如果顏色的相似性直接用歐氏距離來度量,其結(jié)果與人眼視覺會(huì)有較大的偏差。對(duì)于某一種顏色,我們很難推測(cè)出較為精確的三個(gè)分量數(shù)值來表示。
而且,在視頻領(lǐng)域如果使用RGB存儲(chǔ)的話,視頻數(shù)據(jù)會(huì)非常大。
比如有一個(gè)1080p(1920*1080)分辨率、幀率為30幀的視頻,如果使用RGB進(jìn)行存儲(chǔ)的話,僅僅一分鐘的視頻就能達(dá)到 (1920*1080*8*30*60)bit(約等于27G)。這明顯是不現(xiàn)實(shí)的,所以我們需要對(duì)視頻數(shù)據(jù)進(jìn)行壓縮。
基于以上兩點(diǎn),所以我們需要一種數(shù)據(jù)相關(guān)性沒那么強(qiáng)的顏色編碼系統(tǒng)或色彩空間,而YUV正好就是這樣,從下面的介紹中我們就會(huì)明白。YUV能夠方便地編碼和傳輸,并且減少帶寬占用和信息出錯(cuò)。
3 YUV色彩模型
我們先回到人類剛擁有彩色電視的時(shí)候,在那段從黑白電視向彩色電視的過渡期,電視系統(tǒng)需要提供對(duì)黑白電視的兼容性(在一文搞懂HDMI/DP/DVI/VGA顯示器接口歷史演進(jìn)提到過),另外還要考慮到電視廣播系統(tǒng)那有限的帶寬,如果使用RGB顏色模型,那么傳輸帶寬就是原來的三倍。所以能夠兼容黑白電視系統(tǒng)和更為節(jié)省帶寬的YUV色彩模型就被發(fā)明了出來,它與RGB之間是無損轉(zhuǎn)換的。第4節(jié),會(huì)介紹不同標(biāo)準(zhǔn)下YUV與RGB如何相互轉(zhuǎn)換。
因?yàn)橄噍^于色彩,人眼對(duì)于亮度信息更為敏感,所以可以在色彩信息上面進(jìn)行取舍來達(dá)到節(jié)約大小的目的,通過引入色度二次采樣(subsampling)的方式,YUV對(duì)原始的RGB信息進(jìn)行重編碼。
亮度信息與色彩信息相分離的設(shè)計(jì)使得YUV可以減少一些色彩信息以達(dá)到節(jié)省傳輸帶寬和保存體積的目的。這也是YUV顏色模型相比于RGB顏色模型的優(yōu)勢(shì)所在。
YUV同樣使用三個(gè)分量來存儲(chǔ)數(shù)據(jù),他們分別是
Y:用于表示 明亮度(Luminance或Luma);
U:用于表示色度(Chrominance或Chroma);
V:用于表示色度(Chrominance或Chroma);
Y其實(shí)就是我們常說的灰度值,是圖片的總體輪廓,而U和V則用于描述色彩顏色和顏色飽和度。
一張色彩艷麗的圖片如果存儲(chǔ)成YUV格式的話,Y就是這張圖的黑白照、UV就是涂上顏色。
3.1 YUV圖像處理流水線pipeline
YUV圖像處理流水線
3.2 YUV色度抽樣方式常見的YUV圖像色度抽樣方式有如下三種:YUV 444、YUV 422、YUV420。
不同類型之間的主要區(qū)別是使用了不同的方式進(jìn)行U、V分量的采樣。
YUV采樣方式
如上圖所示,其中實(shí)心黑點(diǎn)表示像素點(diǎn)的Y分量,空心圓圈表示采用該像素點(diǎn)的UV分量。可見:
YUV 444:每個(gè)Y分量分別對(duì)應(yīng)一個(gè)U分量和一個(gè)V分量
YUV 422:每?jī)蓚€(gè)Y分量共用一個(gè)U分量和一個(gè)V分量
YUV 420:每四個(gè)Y分量共用一個(gè)U分量和一個(gè)V分量
YUV色度抽樣方式
YUV444和RGB顏色模型的圖像大小是一樣的,并沒有節(jié)省存儲(chǔ)空間。當(dāng)RGB圖像轉(zhuǎn)換為YUV圖像時(shí),也是先轉(zhuǎn)換為YUV444采樣方式的圖像。YUV42和RGB顏色模型圖像大小相比,節(jié)省了三分之一的存儲(chǔ)空間,在傳輸時(shí)占用的帶寬也會(huì)隨之減少。
YUV420采樣方式,Y平面的信息完全保留,而UV這兩個(gè)色度平面的信息交錯(cuò)保留,并且精度只有Y平面的一半,最終圖像、視頻的體積也就少了很多,而畫質(zhì)損失實(shí)際是被控制在一個(gè)合理的范圍內(nèi)。
由此,可得出對(duì)于一張1280*720大小的圖片,采用YUV420采樣比YUV 422、YUV444、RGB采樣的圖像節(jié)省的空間最大,所以現(xiàn)在最常見的就是YUV420采樣方式。
3.3 YUV的存儲(chǔ)方式
YUV有packed(打包)和 planar(平面)兩種存儲(chǔ)方式。
packed :packed格式是先連續(xù)存儲(chǔ)所有的Y分量,然后依次交叉儲(chǔ)存U、V分量;
planar:planar格式也會(huì)先連續(xù)存儲(chǔ)所有的Y分量,但planar會(huì)先連續(xù)存儲(chǔ)U分量的數(shù)據(jù),再連續(xù)存儲(chǔ)V分量的數(shù)據(jù),或者先連續(xù)存儲(chǔ)V分量的數(shù)據(jù),再連續(xù)存儲(chǔ)U分量的數(shù)據(jù);將YUV分量分別存儲(chǔ)到矩陣,每一個(gè)分量矩陣稱為一個(gè)平面。
3.4 YUV顏色編碼格式
由于色度抽樣方式和存儲(chǔ)方式的不同,YUV衍生出很多種格式。
注意下文中所述,YUV和YCbCr對(duì)應(yīng)關(guān)系,Y對(duì)應(yīng)Y,U對(duì)應(yīng)Cb,V對(duì)應(yīng)Cr。
3.4.1基于YUV422采樣的格式
YUYV格式和UYVY格式采用打包packed存儲(chǔ)方式。
YVUV格式
YVUV為YUV422采樣的存儲(chǔ)格式,相鄰的兩個(gè)Y共用其相鄰的兩個(gè)Cb、Cr。對(duì)于像素點(diǎn)Y’00、Y’01而言,其Cb、Cr的值均為Cb00、Cr00,其他的像素點(diǎn)YUV取值依此類推。
UYVY格式
UYVY格式與YVUV不同的是,UV即Cb、Cr排列順序不一樣,還原其每個(gè)像素點(diǎn)的YUV值的方法與上面一樣。
YUV422P格式
YUV422P格式,又叫做I422,采用的是平面格式進(jìn)行存儲(chǔ),先存儲(chǔ)所有的Y分量,再存儲(chǔ)所有的U分量,再存儲(chǔ)所有的V分量。
3.4.2.基于YUV420采樣的格式
YUV420是以平面方式(planar)存儲(chǔ),色度抽樣為40的色彩編碼格式。其中YUV420P為三平面存儲(chǔ),YUV420SP為兩平面存儲(chǔ)。
常見的yuv格式列表如下:
I420: YYYYYYYY UU VV =>YUV420P,主要用來遠(yuǎn)程傳輸
YV12: YYYYYYYY VV UU =>YUV420P,先Y再V再UYU12: YYYYYYYY UU VV =>YUV420P,先Y再U再V
YV12和YU12,分別將Y、U、V打包,依次存儲(chǔ)。其中每一個(gè)像素點(diǎn)的YUV數(shù)據(jù)提取遵循YUV420格式的提取方式,即4個(gè)Y分量共用一組UV。注意,上圖中,Y’00、Y’01、 Y’10、Y’11共用Cb00、Cr00,其他依此類推。
NV12: YYYYYYYY UVUV =>YUV420SP //IOS中有的模式
NV21: YYYYYYYY VUVU =>YUV420SP //安卓Camera默認(rèn)格式
NV12和UV21是一種兩平面存儲(chǔ)方式,Y為一個(gè)平面,交錯(cuò)的UV為另一個(gè)平面。提取方式與YU12和YV12類似,即Y’00、Y’01、 Y’10、Y’11共用Cb00、Cr00,其他依此類推。
4YUV與RGB之間的轉(zhuǎn)換
YUV與RGB之間的轉(zhuǎn)換是存在標(biāo)準(zhǔn)的,常見的標(biāo)準(zhǔn)有:
ITU-R BT.601(標(biāo)清)
ITU-R BT.709(高清)
ITU-R BT.2020(超高清)
不同的標(biāo)準(zhǔn)有不同的轉(zhuǎn)換公式,同時(shí)還要區(qū)分不同的Color Range。Color Range用于指定RGB分量的取值范圍,可分為Full Range(取值范圍為0255)和Limited Range(取值范圍為16235)。
BT.601, LimitedRange, which is the standard for SDTV(標(biāo)清數(shù)字電視)RGB —> YUV
Y = 0.299R+0.587G+0.114B
V = 0.713(R?Y)=0.500R?0.419G?0.081B
U = 0.564(B?Y)=?0.169R?0.331G+0.500B
YUV —> RGB
R = 1.164Y+1.596V-0.871;
G = 1.164Y-0.813V-0.391U+0.529;
B = 1.164Y+2.018U-1.0729;
BT.601, Full Range
RGB —> YUV
Y = 0.299 * R + 0.587 * G + 0.114 * B
V = -0.169 * R - 0.331 * G + 0.500 * B
U = 0.500 * R - 0.439 * G - 0.081 * B
YUV —> RGB
R = Y + 1.400V - 0.7
G = Y - 0.343U - 0.711V + 0.526
B = Y + 1.765U - 0.883
BT.709, which isthe standard for HDTV(高清電視)
RGB —> YUV
Y = 0.0627 + 0.183 * R + 0.614 * g + 0.062 * b
U = 0.5 - 0.101 * R - 0.339 * g + 0.439 * b
V = 0.5 + 0.439 * R - 0.399 * g - 0.040 * b
YUV —> RGB
R = 1.164Y + 1.739V - 0.97
G = 1.164Y - 0.213U - 0.533V + 0.301
B = 1.164Y + 2.112U - 1.129
接下來,以圖像處理課程里面經(jīng)常會(huì)出現(xiàn)的一張圖片,作為示例,演示YUV與RGB之間的轉(zhuǎn)換。
1. 從YUV420P圖像中提取Y、U、V分量
YUV420P圖像
從左往右依次為Y、U、V分量-
2.將YUV420P圖像轉(zhuǎn)換為RGBA8888圖像
《一文搞懂》系列文章一文搞懂HDMI/DP/DVI/VGA顯示器接口歷史演進(jìn)一文搞懂USB各個(gè)版本的歷史演進(jìn)一文搞懂高速TIA跨阻放大器設(shè)計(jì)一文搞懂電阻,這篇講得很全面,建議收藏一文搞懂共模電感原理一文搞懂MLCC電容的特性及生產(chǎn)工藝流程一文搞懂電感Isat、Irms以及測(cè)量方法
本號(hào)對(duì)所有文章陳述的觀點(diǎn)均保持中立,文章僅供讀者交流學(xué)習(xí)。資訊、圖片來源網(wǎng)絡(luò),版權(quán)歸原作者所有,侵權(quán)請(qǐng)聯(lián)系刪除。
審核編輯黃宇
-
RGB
+關(guān)注
關(guān)注
4文章
799瀏覽量
58577 -
編碼
+關(guān)注
關(guān)注
6文章
949瀏覽量
54873 -
YUV
+關(guān)注
關(guān)注
0文章
11瀏覽量
2896
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論