RGB、YUV和YCrCb之间的关系

YUV和YCbCr之间的差布局

 

1、和rgb之间换算公式的差别编码

yuv<-->rgbspa

Y'= 0.299*R' + 0.587*G' + 0.114*B' [0~255]视频

U'= -0.147*R' - 0.289*G' + 0.436*B' = 0.492*(B'- Y') [-111.18~111.18]io

V'= 0.615*R' - 0.515*G' - 0.100*B' = 0.877*(R'- Y') [-156.825~156.825]图像处理

R' = Y' + 1.140*V'ast

G' = Y' - 0.394*U' - 0.581*V'sed

B' = Y' + 2.032*U'打包

 

yCbCr<-->rgbmodel

Y’ = 0.257*R' + 0.504*G' + 0.098*B' + 16 [16~235.045]

Cb' = -0.148*R' - 0.291*G' + 0.439*B' + 128 [16.055~239.945]

Cr' = 0.439*R' - 0.368*G' - 0.071*B' + 128 [16.055~239.945]

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)

 

2、来源上的差别

yuv色彩模型来源于rgb模型,

该模型的特色是将亮度和色度分离开,从而适合于图像处理领域。

应用:basic color model used in analogue color TV broadcasting.

 

YCbCr模型来源于yuv模型。YCbCr is a scaled and offset version of the YUV color space.

应用:数字视频,ITU-R BT.601 recommendation

 

ps:

经过上面的比较能够肯定,咱们在h.264,mpeg等编码标准中用的yuv实际上是YcbCr,你们不要被名称搞混淆了。

YUV的格式在存储上有两类布局: Packed和Plannar。Packed的方式就是把相邻几个象素打包起来。好比把水平方向2个象素打包到一个DWORD里。Planner方式则相反。Y份量和UV份量彻底分开来保存。

YUY2 是packed方式的。水平方向两个像素打包到一个DWORD,而且UV采样率只有Y的一半,这符合人的视觉特征能有效的压缩数据,具体布局为[Y0, U0,Y1,V0]。 这种格式常见于MPEG1的解码“器”。

YV12 是plannar方式。对于一个MxN大小的视频来讲,数据布局为[Y:M x N] [U:M/2 x N/2] [V:M/2 x N/2]. 也就是说UV的采样率在水平和垂直方向上都只有Y的一半。则常见于H.264的解码“器”。

NV十二、NV21也都属于plannar方式,叫作YUV420SP、YVU420SP,而前面说的YV12是YUV420P,区别在于NV十二、NV21的U、V是交叉放一块儿的。NV十二、NV21这两种方式惟一的差异是U、V的顺序。

NV12  

[Y0, Y1]

[Y2, Y3]

[U0, V0]

 

NV21

[Y0, Y1]

[Y2, Y3]

[V0, U0]

相关文章
相关标签/搜索