【音视频基础】(十四):YUV颜色空间之图像子采样

在开始这篇文章之前,首先得知道,什么是图像子采样,以及为什么要介绍这个话题。

首先图像子采样,其实就是图像采样。这个子的含义并没那么高深,可能有的同学一看标题,以为子采样是种多么高深的技术,这里直接按采样来理解就好。我们曾在电视图像数字化中,讲过采样这一步骤,它实质上就是指,用多少点来描述一幅图像,也即图像的像素点有多少个。不过在讲图像采样的时候,我们不说像素点,相应的,我们称它为采样点,其实是一个意思。

通常,我们对彩色电视图像进行采样时,会使用两种方法。

  • 一种是使用相同的采样频率,对图像的亮度信号和色差信号进行采样。

  • 另一种则是对亮度信号和色差信号,分别采用不同的采样频率进行采样。而如果对色差信号使用的采样频率,比对亮度信号使用的采样频率要低,这时我们就说它是图像子采样

其实这两种方法很好理解,首先采样频率我们之前讲过,它的公式为:

采样频率 = 帧频 x 每帧的行数 x 每行上的采样数目

它的意思是:每秒采样到的采样点数目,知道了这点就来看一下上面这两种方法的区别。

第一种是使用相同的采样频率,对亮度和色度(不用解释,色差即代表色度)进行采样,说明亮度和色度的采样点数目是相同的,进而说明,在图像的每一个像素上,我们都需要对亮度和色度同时进行采样。这点我们可能觉得很正常,不过却是没必要而且浪费带宽的。

理解了第一种,第二种就很好理解了。当色度的采样数目,比亮度的要低时,这种采样方法就叫图像子采样,这里的子不是指父子的子,而是指高低的低。

这有的人可能就纳闷了,为什么色度的采样数目,可以更低呢?我们之前说过,人眼对亮度的敏感度,要高于色度。虽然这样说,但是我们还是没有直观的感受,所以我找了幅图:

在这里插入图片描述
亮度(左) 色度(中) 完整图像(右)

我想这幅图应该很直观,最左边只保留了亮度,而中间提取出了色度,右边则是完整的图像,左边 + 中间 = 右边。当然这里的亮度我们专指黑白灰,而不考虑光强等表示光通量的因素,因为我们已经定义了比较两种颜色的标准光源。

所以这时我们应该比较清楚了,就像我们小时候看黑白电视,也并不会产生错误信息一样。

所以下面我们就来看看,常用的图像子采样格式,比如4:4:4, 4:4:0, 4:2:2, 4:1:1, 4:2:0

首先来看一下这种格式表示方法,理解了这种表示方法,才能理解各个子采样格式。显而易见,这种格式分为了三部分,维基百科上表示为:J?️b。这时千万不要以为它代表了,Y:Cb:Cr,因为按照第一印象,我们自然而然会这么认为,其实完全不是这样。

这里的J也就是第一个位置,它表示水平采样点数目,通常我们以两行8个采样点为一个单位,每行4个采样点。

第二个位置,也就是a,它表示4个采样点的第一行,色度样本的个数。

第三个位置,也就是b,它表示4个采样点的第二行,色度样本的个数。

当然这是默认规则,对上面那几个子采样格式适用,而4:2:1并不是按照这个规则来的,不过我们也不打算介绍它,因为它极少使用。下面我们就按照这个规则,一一介绍,规则没看懂没关系,看完一个示例就懂了。这里我们需要注意,每个采样点,我们都需要对亮度进行采样,所以规则里并没有哪个数是代表亮度的。那么为了便于分析,我们从后往前介绍

1、4:2:0 YCbCr格式

对照规则,第一个4代表了水平4个采样点,也即一个单位的水平采样数目。第二个2代表第一行有2个色度样本,第三个0代表第二行没有色度样本。如下图:

在这里插入图片描述
4:2:0 YCbCr格式的采样

图中每个点(黑色实心/空心圆圈)都代表一个采样点,而黑色实心,代表这个采样点对色度进行采样,也即有色度样本。而空心圆圈,代表不对色度进行采样,没有色度样本。

我们可以看到,左上角的8个采样点,被标记了矩形框,这是一个单位。在这8个采样点的单位里,第一行有两个实心,也即有2个色度样本(注意我们并不区分Cb和Cr,至始至终我们都把它们当成一体,也就是色度),而第二行全部为空心圆圈,所以色度样本为0,所以这种子采样格式称为:4:2:0 YCbCr格式。

那么既然知道了这种格式怎么采样,我们就来看看它怎么显示。
在这里插入图片描述
4:2:0 YCbCr格式的显示

对照右图,可以看到左图把采样点,按每4个像素作为一个显示单位,它们共用一个色度。而我们通过右图就可以发现,每4个采样点,只有左上角那个采样点,采样了色度。所以这4个采样点显示的时候,它们显示的色度,也是左上角那个值,而亮度则各自显示各自的。这就相当于,每4个像素,用4个Y样本,1个Cr样本,1个Cb样本,共6个样本来显示,平均一个像素1.5个样本。它显示的实际效果,就是下图这样子:

在这里插入图片描述
4:2:0 YCbCr格式的显示

这张图从上往下看,最上面是YCbCr显示效果图,它等于Y(亮度) 加 CbCr(色度),也即中图和下图。最上面每个格子代表一个采样点,也即一个像素。按照这种采样格式,每4个采样点,只有左上角的采样点采样色度,所以在最下面色度图中,只有两个样本色,1号蓝色和2号绿色。

4:2:0 YCbCr格式的使用

这种子采样格式的使用非常普遍,H.261、H.263和MPEG-1、MPEG-2(后面介绍)中就使用这种采样格式。不过MPEG-1和MPEG-2在实际使用的过程中,对色度的取样和上面描述的有所不同。这在科学技术的发展上,是很常见的事情。其中MPEG-1在对色度取样时,并不是对4个采样点的上角那个进行取样,而是通过这4个采样点的色差,计算得出的Cb和Cr。

在这里插入图片描述
MPEG-1等使用的4:2:0子采样格式

这点了解就好,以免在看其他技术文的时候陷入误区。

2、4:1:1 YCbCr格式

在这里插入图片描述
从图中可以看到,这种子采样格式,在水平扫描线上,每4个Y样本就有一个色度样本。而它在显示的时候,对于没有色度样本的像素点来说,它使用前后相邻的Cr和Cb样本,来计算该Y样本的CbCr。这种格式,是数字电视盒式磁带(DVC)使用的格式。

3、4:2:2 YCbCr格式

在这里插入图片描述
这种子采样格式,在水平扫描线上,每2个采样点就有一个色度样本。同样,在显示的时候,对于没有色度样本的像素点来说,它使用前后相邻的Cr和Cb样本,来计算该Y样本的CbCr。而且该格式,也是在ITU-R BT.601中使用的子采样格式。

4、4:4:0 YCbCr格式

在这里插入图片描述
从图中就可以看出,这种子采样格式,采样的是隔行采样色度样本的方式,因为并不常用,知道就好。

5、4:4:4 YCbCr格式

这种格式显而易见,并不是子采样格式,因为它的色度样本数,和亮度样本数,是一样的,所以它就是普通的采样格式。它代表每条扫描线上,每4个连续的采样点,取4个亮度Y样本,4个红色差Cr样本,4个蓝色差Cb样本。相当于每个像素,用3个样本显示,也就是YCbCr都有值。所以这种格式,在显示一个像素时所使用的样本数,算是最多了。

在这里插入图片描述

下图为维基百科上,这几种采样格式的显示对比图:
在这里插入图片描述

参考资料:

https://en.wikipedia.org/wiki/Chroma_subsampling
http://dougkerr.net/Pumpkin/articles/Subsampling.pdf

  • 9
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值