在视频编码的材料中,经常提到色度采样或者色度抽样的概念,而且一般的教材里仅仅说明某些视频编码标准如MPEG4或者H.264编码标准支持某种或者某几种色度取样的编码,有时还贴出几张莫名其妙的图。那色度采样到底是什么意思呢?特别是4:2:0的图总是让人感到费解,下面就详细的介绍。
首先是为什么要有YUV,而不是RGB,采用YUV色彩空间的重要性是它的亮度信号Y和色度信号U、V是分离的。如果只有Y信号分量而没有U、V分量,那么这样表示的图像就是黑白灰度图像。彩色电视采用YUV空间正是为了用亮度信号Y解决彩色电视机与黑白电视机的兼容问题,使黑白电视机也能接收彩色电视信号。
视频一般采用YCbCr的颜色空间,其原理是人类视觉系统对亮度比彩色更敏感,因此可以把亮度信息从彩色信息分离出来,并使之具有更高的清晰度,而稍微降低彩色信息的清晰度,这样就可以在人眼未感觉图像有什么差异的前提下压缩带宽,实现一定的视频压缩。例如在压缩影像中,以4:2:2 Y'CbCr作例,它只需使用比R'G'B'(4:4:4)三分之二的带宽即可传输。
目前主要的采样格式有YCbCr 4:2:0、YCbCr 4:2:2、YCbCr 4:1:1和 YCbCr 4:4:4。问题是,这些符号到底是什么意思呢?视频系统的抽样系统中通常用一个三分比值表示:J:a:b(例如4:2:2),形容一个以J个像素宽及两个像素高的概念上区域,有时候会以四分比值表示(例如4:2:2:4)。依序列出为:
· J:水平抽样参照(概念上区域的宽度)。通常为4。
· a:在J个像素第一行中的色度抽样数目 (Cr, Cb)。
· b:在J个像素第二行中的额外色度抽样数目 (Cr, Cb)。
· Alpha:水平因子(与首数值有关连)。若没有此部分者可忽略,或存在时与J相同。
在比较图像质量时,这三个值之间的比值才是重要的,所以4:4:4可以简化为1:1:1;但是习惯上亮度样本的数量值总为4,其他两个值依此类推。有时抽样率为四分比值,如4:2:2:4。这时第四个值是调制通道的抽样频率比值。事实上,因为在调制应用中非常需要高质量图像,所以这个值在任何情况下都为4,所以采用J:a:b的表示方式更为常见。
其中容易引起误解的是以为J:a:b表示Y:Cr:Cb,那就错了,因为这里Cr和Cb是一个整体,在下图中用一个黑色实心点表示。
四种典型的采样如上图所示。首先明白,三种点各表示什么,空心圆圈是Y采样,但是CrCb是一个整体,大圈套小圈表示具有Y、Cr和Cb的点。
在理解的时候,要先以“行”为单位,以水平方向的四个点为一个单位来看。因为我们总是习惯性以2x2的单位来计算,在毕厚杰的书里就以2x2进行的。貌似这样也行。
在上图中,我们首先看4:1:1的采样,它的意思是在采样的第一行中,每连续四个点,采样一个CrCb(第一个1的含义),在紧邻的第二行中,同样采样一个CrCb(第二个1的含义)。
接着看4:2:2,它的意思是在采样的第一行中,每连续四个点,采样两个CrCb,在紧邻的第二行中采样两个CrCb。
同理4:4:4就很简单了
4:2:0的含义
但是4:2:0的图比较特殊,它表示第一行中,每连续四个点, 采样两个CrCb,在紧邻的第二行中不采样CrCb,但是,要注意,在上图中,里面只有四行,而不是两行,也就说纯黑的点组成的不是两个行,这里只是为了便于表示而单独标记出来,但是,为什么不将第二行黑点与第一行的空心圆合并呢?这一点一直让我不解。但是,看下面的图就明白了。
注意观察这里的4:2:0。从这张图里可以很明显的看到,之所以将CrCb单独列出来,原因是对色差信号Cr和Cb是每行交替传送的。很明显,这样图比较复杂,一般的书籍将其简化成了第一张图的样子,这反而有时让我们难以理解。
3.结合通信传输理论进一步理解取样的含义