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


第一套方案

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


第二套方案: yCbCr<-->rgb Y’ = 0.257R' +0.504G' + 0.098B' + 16 Cb' = -0.148R' -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.16874R - 0.33126G + 0.5B + 128 Cr = 0.5R - 0.41869G - 0.08131B + 128 R = Y + 1.402Cr - 179,456 G = Y - 0.34414Cb - 0.71414Cr +135.45984 B = Y + 1.772*Cb - 226.816