RGB_AND_YUV

色彩模型

RGB

通过对R, G, B三个颜色通道的变化, 并把他们相互叠加, 显示多种色彩.

RGB颜色标准

R: red, G: green, B: blue.

此三基色可以根据占比不同组建其他颜色.

RGB格式标准

RGB后面的位数表示1个像素所使用的位数.

RGB1, RGB4, RGB8, RGB16, RGB24, RGB32, ARGB32.

RGB 1位可以表示2色. RGB 4位可以表示16色, RGB 8位可以表示256色, 位数越多, 显示的颜色越丰富. 24位以上即表示真彩色.

RGB 24位与32位是一样的, 三个分量都是占8位, 多余的位弃用, 而ARGB 32中, 多余的8位用来标记Alpha通道.

YUV

由于人眼对亮度的分辨率的敏感度高于色彩的分辨率的敏感度, 把亮度与色度进行分离, 增强亮度, 减少色度, 进而压缩空间.

YUV颜色标准

Y: 亮度, U和V: 色度.

亮度一般是值0-255的黑白色, 而色度表示像素的颜色.

简单的说, 只有Y就是一组黑白照片, 而U和V是一组色块分布图, 两者一组合就成为了彩色照片.

YUV格式标准

YUV的格式标准有很多, 三者的采样比例, 主要有4:4:4, 4:2:2, 4:1:1, 4:2:0.

可以理解成, 在一个矩形点阵上, 每一个点可以由最多Y,U,V三个分量组成, 进行行扫描与列扫描.

4:4:4: YUV三信道的抽样率一样.

每个点都是有Y, U, V组成.

4:2:2: 在水平抽样中亮度与色度比例为 2:1, 垂直抽样率 1:1

每行的每个点以2:1的比例, 分别由Y组成以及Y, U, V组成.

4:1:1: 在水平抽样中亮度与色度比例为 4:1, 垂直抽样率 1:1

每行的每个点以4:1的比例, 分别由Y组成以及Y, U, V组成.

4:2:0: 在水平抽样中亮度与色度比例是 2:1, 垂直抽样是 2:1

每行的每个点以2:1的比例, 分别由Y组成以及 Y, U或者Y, V 组成.
每列上由Y, U或者Y, V 组成的点为1:1.

兼容性

因为亮度与色度分离, 可以兼容古老的黑白电视.

RGB与YUV之间的转换

BT601 (标清)

数字RGB 转 数字YUV

1
2
3
Y = (0.257 * R) + (0.504 * G) + (0.098 * B) + 16
U = -( 0.148 * R) - (0.291 * G) + (0.439 * B) + 128
V = (0.439 * R) - (0.368 * G) - (0.071 * B) + 128

数字YUV 转 数字RGB

1
2
3
B = 1.164(Y - 16) + 2.018(U - 128)
G = 1.164(Y - 16) - 0.813(V - 128) - 0.391(U - 128)
R = 1.164(Y - 16) + 1.596(V - 128)