每一个视频图像编解码相关的开发人员,相信都有这样的困惑,显示的时候总是要RGB的格式,压缩的时候总是要YUV的格式,真TM的烦,你Y到底要什么格式?方便大家提高效率,今天记录一下,希望能帮到有需要的人。
第一套方案:
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)
第三套方案:
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.299*R + 0.587*G + 0.114*B
Cb = -0.16874*R - 0.33126*G + 0.5*B + 128
Cr = 0.5*R - 0.41869*G - 0.08131*B + 128
R = Y + 1.402*Cr - 179,456
G = Y - 0.34414*Cb - 0.71414*Cr +135.45984
B = Y + 1.772*Cb - 226.816