RGB模型與YUV模型

2021-10-08 11:44:42 字數 942 閱讀 6244

來了解以下rgb與yuv

我們知道物理三基色分別是紅(red)、綠(green)、藍(blue)。現代的顯示器技術就是通過組合不同強度的紅綠藍三原色,來達成幾乎任何一種可見光的顏色。在影象儲存中,通過記錄每個畫素的紅綠藍強度,來記錄像象的方法,稱為rgb模型 (rgb model)。常見的格式中,png和bmp這兩種就是基於rgb模型的。

除了rgb模型外,還有一種廣泛採用的模型,稱為yuv模型,又被稱為亮度-色度模型(luma-chromamodel)。它是通過數學轉換,將rgb三通道轉換為乙個代表亮度的通道(y,又稱為luma),和兩個代表色度的通道(uv,並稱為chroma)來記錄像象的模型

我們實際傳輸的訊號為yuv訊號,而不是rgb訊號,那麼為什麼要進行rgb與yuv之間的轉換呢,這主要是考慮了以下幾個方面:

a.為了與黑白電視系統相容,因為在黑白電視系統中只需要傳輸亮度訊號y即可,而不需要傳輸色度訊號;

b.轉換成yuv訊號可以節省訊號的頻寬;

c.恆定亮度原理告訴我們在傳輸過程中,若色差訊號受到干擾,在最後還原三基色時,不會影響亮度;

d.混合高頻原理告訴我們利用人眼對彩色細節分辨力較低的這一特點,在影象的高頻部分中我們只需要傳輸亮度訊號,而不必傳送色度訊號。

此外,現在基本所有的顯示器都是通過組合rgb三原色來重現影象的,所以在顯示端也必須將yuv訊號轉換成rgb訊號,這就是我們要進行rgb訊號與yuv訊號相互轉換的原因。

1.rgb2yuv

在做rgb訊號到yuv訊號的轉換時,一般是先轉換到yuv444格式(參見色度訊號取樣格式),然後再將uv訊號的解析度降低,變成我們所需的格式。

2.yuv2rgb

在做yuv到rgb的轉換時,首先需要將縮水的uv訊號的解析度拉公升到與y訊號相同的解析度,然後再轉換到rgb訊號。

#轉換公式

下面是rgb與yuv之間的轉換公式:

一般這一步驟可通過編碼矩陣來實現,寫成矩陣的形式為:

RGB與YUV格式 四

一 rgb rgb24一幀的大小size width heigth 3 byte,rgb32的size width heigth 4byte.1.rgb為紅綠藍三原色 yuv,rgb是色彩空間模型,而bmp,png,jpeg,gif是影象的檔案儲存格式。影象的每個畫素的三個分量為r g b,每個顏色...

YUV 與RGB之間的變換

大多數的計算機圖形工作者熟悉 rgb,而大多數的具有影象背景的則熟悉 yuv。rgb可以認為是三個分別表示紅,綠,藍顏色的灰度影象。把它們組合在一起就可以產生各種各樣的顏色。yuv 使用rgb的資訊,但它從全彩色影象中產生乙個黑白影象,然後提取出三個主要的顏色變成兩個額外的訊號來描述顏色。把這三個訊...

YUV 與RGB互轉的函式

yuv 與rgb互轉的函式 標頭檔案 ifndef colorconvert h define colorconvert h 1 void initconvttbl void i420 to rgb24 unsigned char src,unsigned char dst,int width,in...