您的位置:首页 > 其它

MS Matrix to convert between YCbCr and RGB

2009-02-07 20:08 399 查看
// r, g, b, y, u, v are [0, 255]
// Cb = u
// Cr = v
#define MS_YUV4442RGB( y, u, v, r, g, b ) /
I_MACRO_BEGIN /
(r) = (298 * ((y) - 16) + 409 * ((v) - 128) + 128) >> 8; /
(g) = (298 * ((y) - 16) - 100 * ((u) - 128) - 208 * ((v) - 128) + 128) >> 8; /
(b) = (298 * ((y) - 16) + 516 * ((u) - 128) + 128) >> 8; /
CLIP( r, 0, 255 ); /
CLIP( g, 0, 255 ); /
CLIP( b, 0, 255 ); /
I_MACRO_END

// r, g, b, y, u, v are [0, 255]
// Cb = u
// Cr = v
#define MS_RGB2YUV444( r, g, b, y, u, v ) /
I_MACRO_BEGIN /
(y) = (( 66 * (r) + 129 * (g) + 25 * (b) + 128) >> 8) + 16; /
(u) = (( -38 * (r) - 74 * (g) + 112 * (b) + 128) >> 8) + 128; /
(v) = (( 112 * (r) - 94 * (g) - 18 * (b) + 128) >> 8) + 128; /
I_MACRO_END
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: