小知識:RGB與YUV

計算機彩色顯示器顯示色彩的原理與彩色電視機一樣,都是採用R(Red)、G (Green)、B(Blue)相加混色的原理:通過發射出三種不同強度的電子束,使屏幕內側覆蓋的紅、綠、藍磷光材料發光而產生色彩。這種色彩的表示方法稱爲RGB色彩空間表示(它也是多媒體計算機技術中用得最多的一種色彩空間表示方法)。

根據三基色原理,任意一種色光F都可以用不同分量的R、G、B三色相加混合而成。

F = r [ R ] + g [ G ] + b [ B ]

其中,r、g、b分別爲三基色參與混合的係數。當三基色分量都爲0(最弱)時混合爲黑色光;而當三基色分量都爲k(最強)時混合爲白色光。調整r、g、b三個係數的值,可以混合出介於黑色光和白色光之間的各種各樣的色光。

那麼YUV又從何而來呢?在現代彩色電視系統中,通常採用三管彩色攝像機或彩色CCD攝像機進行攝像,然後把攝得的彩色圖像信號經分色、分別放大校正後得到RGB,再經過矩陣變換電路得到亮度信號Y和兩個色差信號R-Y(即U)、B-Y(即 V),最後發送端將亮度和色差三個信號分別進行編碼,用同一信道發送出去。這種色彩的表示方法就是所謂的YUV色彩空間表示。

採用YUV色彩空間的重要性是它的亮度信號Y和色度信號U、V是分離的。如果只有Y信號分量而沒有U、V分量,那麼這樣表示的圖像就是黑白灰度圖像。彩色電視採用YUV空間正是爲了用亮度信號Y解決彩色電視機與黑白電視機的兼容問題,使黑白電視機也能接收彩色電視信號。

YUV與RGB相互轉換的公式如下(RGB取值範圍均爲0-255):

Y = 0.299R + 0.587G + 0.114B

U = -0.147R - 0.289G + 0.436B

V = 0.615R - 0.515G - 0.100B

R = Y + 1.14V

G = Y - 0.39U - 0.58V

B = Y + 2.03U

在DirectShow中,常見的RGB格式有RGB1、RGB4、RGB8、 RGB565、RGB555、RGB24、RGB32、ARGB32等;常見的YUV格式有YUY2、YUYV、YVYU、UYVY、AYUV、 Y41P、Y411、Y211、IF09、IYUV、YV12、YVU9、YUV411、YUV420等。作爲視頻媒體類型的輔助說明類型(Subtype),它們對應的GUID見表2.3。

表2.3 常見的RGB和YUV格式

GUID    格式描述

MEDIASUBTYPE_RGB1    2色,每個像素用1位表示,需要調色板

MEDIASUBTYPE_RGB4    16色,每個像素用4位表示,需要調色板

MEDIASUBTYPE_RGB8    256色,每個像素用8位表示,需要調色板

MEDIASUBTYPE_RGB565    每個像素用16位表示,RGB分量分別使用5位、6位、5位

MEDIASUBTYPE_RGB555    每個像素用16位表示,RGB分量都使用5位(剩下的1位不用)

MEDIASUBTYPE_RGB24    每個像素用24位表示,RGB分量各使用8位

MEDIASUBTYPE_RGB32    每個像素用32位表示,RGB分量各使用8位(剩下的8位不用)

MEDIASUBTYPE_ARGB32    每個像素用32位表示,RGB分量各使用8位(剩下的8位用於表示Alpha通道值)

MEDIASUBTYPE_YUY2    YUY2格式,以4:2:2方式打包

MEDIASUBTYPE_YUYV    YUYV格式(實際格式與YUY2相同)

MEDIASUBTYPE_YVYU    YVYU格式,以4:2:2方式打包

MEDIASUBTYPE_UYVY    UYVY格式,以4:2:2方式打包

MEDIASUBTYPE_AYUV    帶Alpha通道的4:4:4 YUV格式

MEDIASUBTYPE_Y41P    Y41P格式,以4:1:1方式打包

MEDIASUBTYPE_Y411    Y411格式(實際格式與Y41P相同)

MEDIASUBTYPE_Y211    Y211格式

MEDIASUBTYPE_IF09    IF09格式

MEDIASUBTYPE_IYUV    IYUV格式

MEDIASUBTYPE_YV12    YV12格式

MEDIASUBTYPE_YVU9    YVU9格式

 本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/baodunqiao/archive/2009/04/21/4097601.aspx

 

YUV與YCbCr的區別

YUV色彩模型來源於RGB模型,該模型的特點是將亮度和色度分離開,從而適合於圖像處理領域。
應用:basic color model used in analogue color TV broadcasting。

YCbCr模型來源於YUV模型。YCbCr is a scaled and offset version of the YUV color space。
應用:數字視頻,ITU-R BT.601 recommendation。

通過上面的比較可以確定,我們在h.264,mpeg等編碼標準中用的YUV其實是YCbCr,大家不要被名稱搞混淆了。

 

注意

ycbcr與rgb格式的相互轉換不是可逆的,而yuv與rgb之間的轉換是可逆的。因此,yuv格式可以用於無損壓縮。ycbcr一般用於有損壓縮,因爲y、cb、cr之間的相關性比y、u、v小的多,結合色度的採樣可以進一步提高壓縮效率。

這也可以更深入的瞭解視頻壓縮中圖像採用ycbcr格式的原因。

注:李世平的解釋:http://blog.csdn.net/sunshine1314/archive/2006/02/28/612485.aspx

 

yuv<-->rgb

Y'= 0.299*R' + 0.587*G' + 0.114*B'

U'= -0.147*R' - 0.289*G' + 0.436*B' = 0.492*(B'- Y')

V'= 0.615*R' - 0.515*G' - 0.100*B' = 0.877*(R'- Y')

R' = Y' + 1.140*V'

G' = Y' - 0.394*U' - 0.581*V'

B' = Y' + 2.032*U'

yCbCr<-->rgb

Y’ = 0.257*R' + 0.504*G' + 0.098*B' + 16

Cb' = -0.148*R' - 0.291*G' + 0.439*B' + 128

Cr' = 0.439*R' - 0.368*G' - 0.071*B' + 128

R' = 1.164*(Y’-16) + 1.596*(Cr'-128)

G' = 1.164*(Y’-16) - 0.813*(Cr'-128) - 0.392*(Cb'-128)

B' = 1.164*(Y’-16) + 2.017*(Cb'-128)

Note: 上面各個符號都帶了一撇,表示該符號在原值基礎上進行了gamma correction(伽馬校正)

 

本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/sunshine1314/archive/2006/02/28/612485.aspx

 

校正(Gamma Correction,伽瑪校正):所謂伽瑪校正就是對圖像的伽瑪曲線進行編輯,以對圖像進行非線性色調編輯的方法,檢出圖像信號中的深色部分和淺色部分,並使兩者比例增大,從而提高圖像對比度效果。計算機繪圖領域慣以此屏幕輸出電壓與對應亮度的轉換關係曲線,稱爲伽瑪曲線(Gamma Curve)。以傳統CRT(Cathode Ray Tube)屏幕的特性而言,該曲線通常是一個乘冪函數,Y=(X+e)γ,其中,Y爲亮度、X爲輸出電壓、e爲補償係數、乘冪值(γ)爲伽瑪值,改變乘冪值(γ)的大小,就能改變CRT的伽瑪曲線。典型的Gamma值是0.45,它會使CRT的影像亮度呈現線性。使用CRT的電視機等顯示器屏幕,由於對於輸入信號的發光灰度,不是線性函數,而是指數函數,因此必需校正。 
在電視和圖形監視器中,顯像管發生的電子束及其生成的圖像亮度並不是隨顯像管的輸入電壓線性變化,電子流與輸入電壓相比是按照指數曲線變化的,輸入電壓的指數要大於電子束的指數。這說明暗區的信號要比實際情況更暗,而亮區要比實際情況更高。所以,要重現攝像機拍攝的畫面,電視和監視器必須進行伽瑪補償。這種伽瑪校正也可以由攝像機完成。我們對整個電視系統進行伽瑪補償的目的,是使攝像機根據入射光亮度與顯像管的亮度對稱而產生的輸出信號,所以應對圖像信號引入一個相反的非線性失真,即與電視系統的伽瑪曲線對應的攝像機伽瑪曲線,它的值應爲1/γ,我們稱爲攝像機的伽瑪值。電視系統的伽瑪值約爲2.2,所以電視系統的攝像機非線性補償伽瑪值爲0.45。彩色顯像管的伽瑪值爲2.8,它的圖像信號校正指數應爲1/2.8=0.35,但由於顯像管內外雜散光的影響,重現圖像的對比度和飽和度均有所降低,所以現在的彩色攝像機的伽瑪值仍多采用0.45。在實際應用中,我們可以根據實際情況在一定範圍內調整伽瑪值,以獲得最佳效果。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章