當(dāng)前位置:首頁(yè) > 公眾號(hào)精選 > 程序喵大人
[導(dǎo)讀]YUV是一種顏色編碼方法,和它等同的還有RGB顏色編碼方法。RGB三個(gè)字母分別代表了 紅(Red)、綠(Green)、藍(lán)(Blue),這三種顏色稱為 三原色,將它們以不同的比例相加,可以產(chǎn)生多種多樣的顏色。

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

RGB 顏色編碼

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

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


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

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

YUV 顏色編碼

YUV 顏色編碼采用的是 明亮度色度 來(lái)指定像素的顏色。

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

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

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

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

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

RGB 到 YUV 的轉(zhuǎn)換

對(duì)于圖像顯示器來(lái)說(shuō),它是通過(guò) RGB 模型來(lái)顯示圖像的,而在傳輸圖像數(shù)據(jù)時(shí)又是使用 YUV 模型,這是因?yàn)?YUV 模型可以節(jié)省帶寬。因此就需要采集圖像時(shí)將 RGB 模型轉(zhuǎn)換到 YUV 模型,顯示時(shí)再將 YUV 模型轉(zhuǎn)換為 RGB 模型。

RGB 到 YUV 的轉(zhuǎn)換,就是將圖像所有像素點(diǎn)的 R、G、B 分量轉(zhuǎn)換到 Y、U、V 分量。

有如下公式進(jìn)行轉(zhuǎn)換:


此時(shí)的轉(zhuǎn)換結(jié)束后,每個(gè)像素點(diǎn)都有完整的 Y、U、V 分量。而之前提到 Y 和 UV 分量是可以分離的,接下來(lái)通過(guò)不同的采樣方式,可以將圖像的 Y、U、V 分量重新組合。

接下來(lái)的不同采樣格式都是在一張圖像所有像素的 RGB 轉(zhuǎn)換到 YUV 基礎(chǔ)上進(jìn)行的。

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 三個(gè)分量的采樣比例相同,因此在生成的圖像里,每個(gè)像素的三個(gè)分量信息完整,都是 8 bit,也就是一個(gè)字節(jié)。

如下圖所示:

其中,Y 分量用叉表示,UV 分量用圓圈表示。

舉個(gè)例子?:

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

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

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

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

YUV 4:2:2 采樣

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

如下圖所示:

其中,Y 分量用叉表示,UV 分量用圓圈表示。

?舉個(gè)例子?:

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

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

?其中,每采樣過(guò)一個(gè)像素點(diǎn),都會(huì)采樣其?Y?分量,而?U、V?分量就會(huì)間隔一個(gè)采集一個(gè)。

?最后映射出的像素點(diǎn)為?[Y0?U0?V1]、[Y1?U0?V1][Y2?U2?V3]、[Y3?U2?V3]

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

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

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

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

YUV 4:2:0 采樣

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

如下圖所示:

其中,Y 分量用叉表示,UV 分量用圓圈表示。

假設(shè)第一行掃描了 U 分量,第二行掃描了 V 分量,那么需要掃描兩行才能夠組成完整的 UV 分量。

舉個(gè)例子?:

假設(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

其中,每采樣過(guò)一個(gè)像素點(diǎn),都會(huì)采樣其?Y?分量,而?U、V?分量就會(huì)間隔一行按照 2 : 1 進(jìn)行采樣。

最后映射出的像素點(diǎ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]

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

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

(1280 * 720 * 8 + 1280 * 720 * 0.25 * 8 * 2)/ 8 / 1024 / 1024 = 1.32 MB 。

可以看到 YUV 4:2:0 采樣的圖像比 RGB 模型圖像節(jié)省了一半的存儲(chǔ)空間,因此它也是比較主流的采樣方式。

YUV 存儲(chǔ)格式

說(shuō)完了采樣,接下來(lái)就是如何把采樣的數(shù)據(jù)存儲(chǔ)起來(lái)。

YUV 的存儲(chǔ)格式,有兩種:

  • planar ?平面格式

    • 指先連續(xù)存儲(chǔ)所有像素點(diǎn)的 Y 分量,然后存儲(chǔ) U 分量,最后是 V 分量。

  • packed ?打包模式

    • 指每個(gè)像素點(diǎn)的 Y、U、V 分量是連續(xù)交替存儲(chǔ)的。

根據(jù)采樣方式和存儲(chǔ)格式的不同,就有了多種 YUV 格式。這些格式主要是基于 YUV 4:2:2 和 YUV 4:2:0 采樣。

常見的基于 YUV 4:2:2 采樣的格式如下表:

YUV 4:2:2 采樣
YUYV 格式
UYVY 格式
YUV 422P 格式

常見的基于 YUV 4:2:0 采樣的格式如下表:


YUV 4:2:0 采樣 YUV 4:2:0 采樣
YUV 420P 類型 YV12 格式 YU12 格式
YUV 420SP 類型 NV12 格式 NV21 格式

更多的 YUV 格式信息參考這里:YUV pixel formats

基于 YUV 4:2:2 ?采樣的格式

YUV 4:2:2 采樣規(guī)定了 Y 和 UV 分量按照 2: 1 的比例采樣,兩個(gè) Y 分量共用一組 UV 分量。

YUYV 格式

YUYV 格式是采用打包格式進(jìn)行存儲(chǔ)的,指每個(gè)像素點(diǎn)都采用 Y 分量,但是每隔一個(gè)像素采樣它的 UV 分量,排列順序如下:

Y0 UO Y1 V0 ?Y2 U2 Y3 V2

Y0 和 Y1 公用 U0 V0 分量,Y2 和 Y3 公用 U2 V2 分量….

UYVY 格式

UYVY 格式也是采用打包格式進(jìn)行存儲(chǔ),它的順序和 YUYV 相反,先采用 U 分量再采樣 Y 分量,排列順序如下:

U0 Y0 V0 Y1 U2 Y2 V2 Y3

Y0 和 Y1 公用 U0 V0 分量,Y2 和 Y3 公用 U2 V2 分量….

根據(jù) UV 和 Y 的順序還有其他格式,比如,YVYU 格式,VYUY 格式等等,原理大致一樣了。

YUV 422P 格式

YUV 422P 格式,又叫做 I422,采用的是平面格式進(jìn)行存儲(chǔ),先存儲(chǔ)所有的 Y 分量,再存儲(chǔ)所有的 U 分量,再存儲(chǔ)所有的 V 分量。

基于 YUV 4:2:0 ?采樣的格式

基于 YUV 4:2:0 采樣的格式主要有 YUV 420P 和 YUV 420SP 兩種類型,每個(gè)類型又對(duì)應(yīng)其他具體格式。

  • YUV 420P 類型

    • YU12 格式

    • YV12 格式

  • YUV 420SP 類型

    • NV12 格式

    • NV21 格式

YUV 420P 和 YUV 420SP 都是基于 ?Planar 平面模式 進(jìn)行存儲(chǔ)的,先存儲(chǔ)所有的 Y 分量后, YUV420P 類型就會(huì)先存儲(chǔ)所有的 U 分量或者 V 分量,而 YUV420SP 則是按照 UV 或者 VU 的交替順序進(jìn)行存儲(chǔ)了,具體查看看下圖:

YUV420SP 的格式:

YUV420P 的格式:

YU12 和 YV12 格式

YU12 和 YV12 格式都屬于 YUV 420P 類型,即先存儲(chǔ) Y 分量,再存儲(chǔ) U、V 分量,區(qū)別在于:YU12 是先 Y 再 U 后 V,而 YV12 是先 Y 再 V 后 U 。

YV 12 的存儲(chǔ)格式如下圖所示:

YU 12 又稱作 I420 格式,它的存儲(chǔ)格式就是把 V 和 U 反過(guò)來(lái)了。

NV12 和 NV21 格式

NV12 和 NV21 格式都屬于 YUV420SP 類型。它也是先存儲(chǔ)了 Y 分量,但接下來(lái)并不是再存儲(chǔ)所有的 U 或者 V 分量,而是把 UV 分量交替連續(xù)存儲(chǔ)。

NV12 是 IOS 中有的模式,它的存儲(chǔ)順序是先存 Y 分量,再 UV 進(jìn)行交替存儲(chǔ)。

NV21 是 安卓 中有的模式,它的存儲(chǔ)順序是先存 Y 分量,在 VU 交替存儲(chǔ)。

小結(jié)

以上就是關(guān)于 YUV 的知識(shí)總結(jié),你有看明白了嘛?

參考

  1. https://blog.csdn.net/grow_mature/article/details/9004548

  2. http://www.cnblogs.com/azraelly/archive/2013/01/01/2841269.html

  3. https://blog.csdn.net/MrJonathan/article/details/17718761

  4. https://blog.csdn.net/wudebao5220150/article/details/13295603

  5. https://msdn.microsoft.com/zh-cn/library/ms867704.aspx

  6. https://www.fourcc.org/yuv.php

往期推薦





免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。文章僅代表作者個(gè)人觀點(diǎn),不代表本平臺(tái)立場(chǎng),如有問(wèn)題,請(qǐng)聯(lián)系我們,謝謝!

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉