YUV的采樣與格式

YUV 是一種顏色編碼方法,和它等同的還有 RGB 顏色編碼方法。

RGB 顏色編碼

RGB 三個字母分別代表了 紅(Red)、綠(Green)、藍(lán)(Blue),這三種顏色稱為 三原色,將它們以不同的比例相加,可以產(chǎn)生多種多樣的顏色。

在圖像顯示中,一張 1280 * 720 大小的圖片,就代表著它有 1280 * 720 個像素點。其中每一個像素點的顏色顯示都采用 RGB 編碼方法,將 RGB 分別取不同的值,就會展示不同的顏色。

RGB.jpg

RGB 圖像中,每個像素點都有紅、綠、藍(lán)三個原色,其中每種原色都占用 8 bit,也就是一個字節(jié),那么一個像素點也就占用 24 bit,也就是三個字節(jié)。

一張 1280 * 720 大小的圖片,就占用 1280 * 720 * 3 / 1024 / 1024 = 2.63 MB 存儲空間。

YUV 顏色編碼

YUV 顏色編碼采用的是 明亮度 和 色度 來指定像素的顏色。

其中,Y 表示明亮度(Luminance、Luma),而 U 和 V 表示色度(Chrominance、Chroma)。

而色度又定義了顏色的兩個方面:色調(diào)和飽和度。

使用 YUV 顏色編碼表示一幅圖像,它應(yīng)該下面這樣的:

YUV.jpg

和 RGB 表示圖像類似,每個像素點都包含 Y、U、V 分量。但是它的 Y 和 UV 分量是可以分離的,如果沒有 UV 分量一樣可以顯示完整的圖像,只不過是黑白的。

對于 YUV 圖像來說,并不是每個像素點都需要包含了 Y、U、V 三個分量,根據(jù)不同的采樣格式,可以每個 Y 分量都對應(yīng)自己的 UV 分量,也可以幾個 Y 分量共用 UV 分量。

YUV 采樣格式

YUV 圖像的主流采樣方式有如下三種:

YUV 4:4:4 采樣
YUV 4:2:2 采樣
YUV 4:2:0 采樣

YUV 4:4:4 采樣

YUV 4:4:4 采樣,意味著 Y、U、V 三個分量的采樣比例相同,因此在生成的圖像里,每個像素的三個分量信息完整,都是 8 bit,也就是一個字節(jié)。


4:4:4

其中,Y 分量用圓圈表示,UV 分量用五角星表示。

假如圖像像素為:[Y0 U0 V0]、[Y1 U1 V1]、[Y2 U2 V2]、[Y3 U3 V3]

那么采樣的碼流為:Y0 U0 V0 Y1 U1 V1 Y2 U2 V2 Y3 U3 V3

最后映射出的像素點依舊為 [Y0 U0 V0]、[Y1 U1 V1]、[Y2 U2 V2]、[Y3 U3 V3]

可以看到這種采樣方式的圖像和 RGB 顏色模型的圖像大小是一樣,并沒有達(dá)到節(jié)省帶寬的目的,當(dāng)將 RGB 圖像轉(zhuǎn)換為 YUV 圖像時,也是先轉(zhuǎn)換為 YUV 4:4:4 采樣的圖像。

YUV 4:2:2 采樣

YUV 4:2:2 采樣,意味著 UV 分量是 Y 分量采樣的一半,Y 分量和 UV 分量按照 2 : 1 的比例采樣。如果水平方向有 10 個像素點,那么采樣了 10 個 Y 分量,而只采樣了 5 個 UV 分量。


4:2:2.png

舉個例子 :

假如圖像像素為:[Y0 U0 V0]、[Y1 U1 V1]、[Y2 U2 V2]、[Y3 U3 V3]

那么采樣的碼流為:Y0 U0 Y1 V1 Y2 U2 Y3 V3

其中,每采樣過一個像素點,都會采樣其 Y 分量,而 U、V 分量就會間隔一個采集一個。

最后映射出的像素點為 [Y0 U0 V1]、[Y1 U0 V1]、[Y2 U2 V3]、[Y3 U2 V3]
采樣的碼流映射為像素點,還是要滿足每個像素點有 Y、U、V 三個分量。但是可以看到,第一和第二像素點公用了 U0、V1 分量,第三和第四個像素點公用了 U2、V3 分量,這樣就節(jié)省了圖像空間。

一張 1280 * 720 大小的圖片,在 YUV 4:2:2 采樣時的大小為:

(1280 * 720 * 8 + 1280 * 720 * 0.5 * 8 * 2)/ 8 / 1024 / 1024 = 1.76 MB 。

可以看到 YUV 4:2:2 采樣的圖像比 RGB 模型圖像節(jié)省了三分之一的存儲空間,在傳輸時占用的帶寬也會隨之減少。

YUV 4:2:0 采樣

YUV 4:2:0 采樣,并不是指只采樣 U 分量而不采樣 V 分量。而是指,在每一行掃描時,只掃描一種色度分量(U 或者 V),和 Y 分量按照 2 : 1 的方式采樣。比如,第一行掃描時,YU 按照 2 : 1 的方式采樣,那么第二行掃描時,YV 分量按照 2:1 的方式采樣。對于每個色度分量來說,它的水平方向和豎直方向的采樣和 Y 分量相比都是 2:1 。

4:2:0
假設(shè)圖像像素為:

[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

其中,每采樣過一個像素點,都會采樣其 Y 分量,而 U、V 分量就會間隔一行按照 2 : 1 進(jì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]

從映射出的像素點中可以看到,四個 Y 分量是共用了一套 UV 分量,而且是按照 2*2 的小方格的形式分布的,相比 YUV 4:2:2 采樣中兩個 Y 分量共用一套 UV 分量,這樣更能夠節(jié)省空間。

一張 1280 * 720 大小的圖片,在 YUV 4:2:0 采樣時的大小為:

(1280 * 720 * 8 + 1280 * 720 * 0.25 * 8 * 2)/ 8 / 1024 / 1024 = 1.32 MB 。
可以看到 YUV 4:2:0 采樣的圖像比 RGB 模型圖像節(jié)省了一半的存儲空間,因此它也是比較主流的采樣方式。

原文鏈接:https://www.21ic.com/article/881019.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 數(shù)字媒體壓縮 為縮小數(shù)字媒體文件的大小,我們需要對其使用壓縮技術(shù),一般來說我們所欣賞的媒體內(nèi)容都進(jìn)行過一定程度的壓...
    安靜的潑猴閱讀 3,316評論 1 0
  • 什么是YUV YUV是一種色彩空間的模型,基于YUV格式的顏色編碼,是流媒體的常用編碼方式。如我們平時看到的彩色電...
    浮曉悠羨閱讀 6,811評論 1 5
  • 在攝像頭之類編程經(jīng)常是會碰到Y(jié)UV格式,而非大家比較熟悉的RGB格式. 我們可以把YUV看成是一個RGB的變種來理...
    starmier閱讀 1,435評論 0 3
  • 文章參考: 圖文詳解YUV420數(shù)據(jù)格式 YUV主要采樣格式理解 YUV格式詳解 百度百科和維基百科 概述 本文基...
    Felix_lin閱讀 3,832評論 0 5
  • RGB 顏色編碼 RGB顏色編碼格式 每種顏色都可以用(紅,綠,藍(lán))三種原色來表示,將RGB分別取不同的值,展示不...
    王俏閱讀 584評論 0 0

友情鏈接更多精彩內(nèi)容