RGB和YUV都是色彩空間,用於表示顏色,兩者可以相互轉化。
與我們熟知的RGB類似,YUV也是一種顏色編碼方法,它將亮度資訊(Y)與色多媒體訊息息(UV)分離,沒有UV資訊一樣可以顯示完整的映像,只不過是黑白的,這樣的設計很好地解決了彩色電視機與黑白電視的相容問題。並且,YUV不像RGB那樣要求三個獨立的視頻訊號同時傳輸,所以用YUV方式傳送佔用極少的頻寬。
YUV碼流的儲存格式其實與其採樣的方式密切相關,主流的採樣方式有三種,YUV4:4:4,YUV4:2:2,YUV4:2:0
一、和rgb之間換算公式的差異
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
二、來源上的差異
yuv色彩模型來源於 rgb模型,
該模型的特點是將亮度和色度分離開,從而適合於影像處理領域。
第一個公式是YUV轉換RGB(範圍0-255)時用的,第二個公式是用在YUV(601)也成為YCbCr轉換RGB(範圍0-255)時用的。
1.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
2.B= 1.164 * (Y - 16) + 2.018 * (U - 128)
G= 1.164 * (Y - 16) - 0.38 * (U - 128) - 0.813 * (V - 128)
R= 1.164 * (Y - 16) + 1.159 * (V - 128)