一文說通 YUV 和 RGB

色彩空間 Color Space

色彩空間色彩空間是對色彩的組織方式。藉助色彩空間和針對物理設備的測試,能夠獲得色彩的固定模擬和數字表示。色彩空間能夠只經過任意挑選一些顏色來定義,好比像彩通系統就只是把一組特定的顏色做爲樣本,而後給每一個顏色定義名字和代碼;也能夠是基於嚴謹的數學定義,好比 Adobe RGBsRGBmarkdown

色彩模型

RGBspace.jpg

RBG 是一種色彩模型(其實也能夠叫作顏色編碼方法),經過一組數字來描述顏色。它是一個加色模型,自己並不能表示絕對的色彩空間。 可是經過和標準色彩空間的描述 Adobe RGBsRGB 的組合,就能夠肯定到一個像素點的顏色。經過這個過程,圖像和文檔中的色彩,就能夠肯定下來。(所以和不一樣的色彩空間的描述來組合,在顯示器上就能看到不一樣的效果)。ide

YUVspace.jpg

YUV是被歐洲電視系統所採用的一種顏色編碼方法(屬於PAL),是PAL和SECAM模擬彩色電視制式採用的顏色空間。svg

YUV一般用於彩色圖像/視頻處理的彩色空間。它編碼彩色圖像/視頻,同時考慮到人眼的屬性,這些屬性容許在不感知失真的狀況下減小色度組件的帶寬。使用YUV色彩空間有助於圖像/視頻壓縮。它最初用於模擬電視廣播。顏色空間YUV、YIQ、YCbCr和YPbPr都屬於YUV家族。Y'UV, YUV, YCbCr,YPbPr等專有名詞均可以稱為YUV,彼此有重疊。「Y」表示明亮度(Luminance、Luma),「U」和「V」則是色度、濃度(Chrominance、Chroma)。函數


爲何會有 YUV

Y'UV的發明是因爲彩色電視與黑白電視的過渡時期。 黑白視訊只有Y(Luma,Luminance)視訊,也就是灰階值。而彩色電視規格的定製是根據 YUV/YIQ 來處理彩色電視信號。把 UV 看作表示彩度。剩下 Y 訊號就和黑白電視的電視訊號相同,這樣能夠解決兼容問題。同時Y'UV最大的優勢在於只需佔用極少的頻寬。oop

從歷史的演變而言,其中YUV和Y'UV一般用於編碼電視的類比訊號,而YCbCr則是用來描述數位的影像訊號,適合影片與圖片壓縮以及傳輸,例如MPEG,JPEG。測試


YUV 採樣

YUV 4:4:4採樣,每個Y對應一組UV份量,一個YUV佔8+8+8 = 24bits 3個字節。編碼

YUV 4:2:2採樣,每兩個Y共用一組UV份量,一個YUV佔8+4+4 = 16bits 2個字節。spa

YUV 4:2:0採樣,每四個Y共用一組UV份量,一個YUV佔8+2+2 = 12bits 1.5個字節。.net

2048812-91284ca9ffa2eae6.png.jpeg

YUV 格式

YUV格式分爲兩個格式: 緊縮格式(packed format):將Y,U,V值存儲成Macro Pixels陣列,和RGB的存放方式相似。 平面格式(planar format):將Y,U,V的三個片段分別放置在不一樣的矩陣中。3d

展開講講就是:對於planar的YUV格式,先連續存儲全部像素點的Y,緊接着存儲全部像素點的U,隨後是全部像素點的V。對於packed的YUV格式,每一個像素點的Y,U,V是連續交叉存儲的。

YUV420類型

Screen Shot 2021-04-16 at 6.18.10 PM.png

1.YUV420p和YUV420sp區別

由於YUV420比較經常使用, 在這裏就重點介紹YUV420。YUV420分爲兩種:YUV420p和YUV420sp。 咱們先看一張腦圖,對這些類型大體有個印象便可。

YUV420P

2048812-642a69d2ad1004cb.png

YUV420SP

2048812-0bc7e7b5c86556ba.png

2.YUV420p和YUV420sp具體分類和詳情

  • YUV420p:又叫planer平面模式,Y ,U,V分別再不一樣平面,也就是有三個平面。

    I420:又叫YU12,安卓的模式。存儲順序是先存Y,再存U,最後存V。YYYYUUUVVV

Screen Shot 2021-04-16 at 6.42.58 PM.png

YV12:存儲順序是先存Y,再存V,最後存U。YYYVVVUUU
複製代碼

Screen Shot 2021-04-16 at 6.43.08 PM.png

  • UV420sp:又叫bi-planer或two-planer雙平面,Y一個平面,UV在同一個平面交叉存儲。

    NV12:IOS只有這一種模式。存儲順序是先存Y,再UV交替存儲。YYYYUVUVUV

Screen Shot 2021-04-16 at 6.43.16 PM.png

NV21:安卓的模式。存儲順序是先存Y,再存U,再VU交替存儲。YYYYVUVUVU
複製代碼

Screen Shot 2021-04-16 at 6.43.23 PM.png

RGB 和 YUV 之間的轉化

HDTV(BT.601)的RGB和YUV之間的轉換。

image

HDTV(BT.709)的RGB和YUV之間的轉換。

YIQ是NTSC彩色電視使用的彩色空間

YDbDr,是SÉCAM中使用的顏色空間

YCbCr是YUV色彩空間的縮放和偏移版本。Y的8位範圍從16位到235。Cb和Cr的範圍爲16-240。YCbCr用於JPEG壓縮。

若是RGB數據的範圍爲0-255(黑白),就像PC中常見的那樣,則應使用如下方程來保持正確的黑白水平:

標準制定機構--國際電信聯盟無線電通訊部門(ITU-R)

ITU-R 原 CCIR,在 1982 年制訂了 BT.601 標準(也叫作 Rec.601)。

該標準確認的顏色編碼系統被稱爲 YCbCr 4:2:2,用於將隔行數位視訊模擬信號號進行數位化編碼。


接着,在 1990 年 BT.709 得到 CCIR 批准。

Rec. 709定義了R’G’B'編碼和Y’CBCR編碼,每一個顏色通道中每一個樣本有8位或10位。

該規範了高清電視的圖像編碼和信號特性。

最新版本是2015年發佈的BT.709-6。


2012年8月發佈了,Rec.2020 的初版。該標準定義了具備標準動態範圍(SDR)和廣色域(WCG)的超高清電視(UHDTV)的各個方面。


2016 年 7 月發佈了 Rec.2100。經過建議使用感知量化器(PQ)或混合對數伽馬(HLG)傳輸函數來引入高動態範圍電視(HDR-TV

參考資料

zh.wikipedia.org/wiki/YUV#Y'…

zh.wikipedia.org/wiki/BT.601

www.vocal.com/video/rgb-a…

www.jianshu.com/p/e67f79f10…

blog.csdn.net/byhook/arti…

相關文章
相關標籤/搜索