每一个视频图像编解码相关的开发人员,相信都有这样的困惑,显示的时候总是要RGB的格式,压缩的时候总是要YUV的格式,真TM的烦,你Y到底要什么格式?这里记录一下常用的几组RGB与YUV之间转换的公式,希望帮到有需要的人。


第一套方案

yuv<-->rgb
Y'= 0.299R' +0.587G' + 0.114B'
U'= -0.147
R' -0.289G' + 0.436B' = 0.492(B'- Y')
V'= 0.615
R' - 0.515G' - 0.100B' =0.877(R'- Y')
R' = Y' + 1.140
V'
G' = Y' - 0.394U' -0.581V'
B' = Y' + 2.032*U'


第二套方案
yCbCr<-->rgb
Y’ = 0.257R' +0.504G' + 0.098B' + 16
Cb' = -0.148
R' -0.291G' + 0.439B' + 128
Cr' = 0.439R' -0.368G' - 0.071B' + 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)


第三套方案:
Y = 0.299R + 0.587G + 0.114B
Cb = 0.564(B - Y )
Cr = 0.713(R - Y )
R = Y + 1.402Cr
G = Y - 0.344Cb - 0.714Cr
B = Y + 1.772Cb


第四套方案
Y = 0.299R + 0.587G + 0.114B
Cb = -0.16874
R - 0.33126G + 0.5B + 128
Cr = 0.5R - 0.41869G - 0.08131B + 128
R = Y + 1.402
Cr - 179,456
G = Y - 0.34414Cb - 0.71414Cr +135.45984
B = Y + 1.772*Cb - 226.816