計算機彩色顯示器顯示色彩的原理與彩色電視機一樣,都是採用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
MEDIASUBTYPE_RGB4
MEDIASUBTYPE_RGB8
MEDIASUBTYPE_RGB565
MEDIASUBTYPE_RGB555
MEDIASUBTYPE_RGB24
MEDIASUBTYPE_RGB32
MEDIASUBTYPE_ARGB32
MEDIASUBTYPE_YUY2
MEDIASUBTYPE_YUYV
MEDIASUBTYPE_YVYU
MEDIASUBTYPE_UYVY
MEDIASUBTYPE_AYUV
MEDIASUBTYPE_Y41P
MEDIASUBTYPE_Y411
MEDIASUBTYPE_Y211
MEDIASUBTYPE_IF09
MEDIASUBTYPE_IYUV
MEDIASUBTYPE_YV12
MEDIASUBTYPE_YVU9
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
在電視和圖形監視器中,顯像管發生的電子束及其生成的圖像亮度並不是隨顯像管的輸入電壓線性變化,電子流與輸入電壓相比是按照指數曲線變化的,輸入電壓的指數要大於電子束的指數。這說明暗區的信號要比實際情況更暗,而亮區要比實際情況更高。所以,要重現攝像機拍攝的畫面,電視和監視器必須進行伽瑪補償。這種伽瑪校正也可以由攝像機完成。我們對整個電視系統進行伽瑪補償的目的,是使攝像機根據入射光亮度與顯像管的亮度對稱而產生的輸出信號,所以應對圖像信號引入一個相反的非線性失真,即與電視系統的伽瑪曲線對應的攝像機伽瑪曲線,它的值應爲1/γ,我們稱爲攝像機的伽瑪值。電視系統的伽瑪值約爲2.2,所以電視系統的攝像機非線性補償伽瑪值爲0.45。彩色顯像管的伽瑪值爲2.8,它的圖像信號校正指數應爲1/2.8=0.35,但由於顯像管內外雜散光的影響,重現圖像的對比度和飽和度均有所降低,所以現在的彩色攝像機的伽瑪值仍多采用0.45。在實際應用中,我們可以根據實際情況在一定範圍內調整伽瑪值,以獲得最佳效果。