RGB表示
RGB是使用三基色合成的原理,我们看到的彩色图片,都有三个通道,分别为红、绿、蓝通道,如果需要透明度则还有alpha分量. 通常每个通道用8bit表示,8bit能表示256种颜色,所以可以组成 256256256=16777216=1677万种颜色。这里的8bit就是我们讲的位深。一张图片通常RGB的顺序进行排列,也有BGR方式排列。
YUV表示
RGB表示方式是针对三基色的方式,但是人眼睛感知并不能分别出那么细致的色度,因此,允许降低色度的带宽,从而出现了YUV的表示方式。
Y表示明亮度,也就是灰阶值,通过明暗能够描绘图形的轮廓。
U(Cb)表示色度分量: 是照片蓝色部分去掉亮度(Y).
V(Cr)表示色度分量: 是照片红色部分去掉亮度(Y).
YUV格式可以分为三个分量,即Y、U、V一一对应.
人眼对亮度敏感对色度不敏感,因此亮度分量Y的采样不变,但是色度分量U和V会被降低采样数。
YUV表示图像可以有多种排列方式,分别为:
紧缩格式(packed formats): 将YUV值连续存储,和RGB的方式类似。
平面格式(planar formats): 将YUV的三个分量分别存放在不同的矩阵中。
为了节省带宽起见,大多数YUV格式平均使用每个像素位都少于24位,主要的抽样格式有:
- 4:4:4表示完全采样, 三分分量都是8bit, 采样码流为: Y0 U0 V0, Y1 U1 V1, Y2 U2 V2。
- 4:2:2表示UV分量是Y分量采样的一半,采样码流为: Y0 U0 V1, Y1 U0 V1, Y2 U2 V3, Y3 U2 V3, 水平方向两个像素共用一对U/V值。
- 4:2:0采样,并不是指只采样U分量而不采样V分量,而是指,在每一行扫描时,只扫描一种色度分量(U或者V), 和Y分量按照2:1的方式采样。比如, 第一行扫描时,YU按照2:1的方式采样,那么第二行扫描时,YV分量按照2:1的方式采样。对于每个色度分量来说,它的水平方向和垂直方向的采样和Y分量比都是2:1, 如下图。
假如图片像素为:
[Y0 U0 V0]、[Y1 U1 V1]、 [Y2 U2 V2]、 [Y3 U3 V3] [Y5 U5 V5]、[Y6 U6 V6]、 [Y7 U7 V7] 、[Y8 U8 V8]
那么采样的码流为:
Y0 U0 Y1 Y2 U2 Y3 Y5 V5 Y6 Y7 V7 Y8