MPEG-2 数据位流与视像质量可变编码

这一篇做一些MPEG-2的收尾工作,所以对比上一篇来讲,相对比较轻松一点。上篇着重讲了MPEG-2的编码器部分,而下面我们就从MPEG-2的解码器部分开始,简单介绍一下。

1、MPEG-2解码器

在这里插入图片描述
MPEG-2 解码器

类似编码器一样,解码器该有的部分都有,只不过都是跟编码部分逆着来的。比如从最右侧视像数据的输入,经过缓存,VLD,IQ,IDCT,如果是预测图像则会得到预测误差,而后预测误差,与参考图像和移动矢量在MCP(运动补偿预测器)得到的预测图像叠加,就可以得到原始图像,从而作为视像输出出去。

预测误差从编码器输出,作为解码器的输入。所以说预测图像的压缩比是比较高的,它不需要保存当前帧的所有内容,只需要保存预测图像与原始帧之间的差值即可。而预测图像又是根据它之前的参考图像得来的,这里对于P帧来讲,它的参考帧即是I帧,所以I帧保存了图像的全部内容。

对于运动比较快的视频,比如这一帧这个人还在图像内,下一帧或下下帧,他可能就跑到图像边缘甚至图像外面了,这时所需要的I帧就比较多。而对于运动平缓的视频,I帧就可以相对少一些,预测图像就可以多一些。

2、MPEG-2数据位流

MPEG-2的数据位流与MPEG-1的结构类似,不过在接下来的内容之前,有的人可能会有疑问,这里的数据位流,指的是TS流还是PS流呀?

2.1、AU/ES/PES/PS/TS

这个问题非常好,我们上篇说过,PS流或TS流都是由一个或多个PESPacketized Elementary Stream)流组成的,我们仔细来看PES(Packetized Elementary Stream)这个词,Packetized是打包的意思,而Packetized Elementary Stream呢?就是打包基本流的意思,而ESElementary Stream)基本流,就是TS或PS流或PES流的流单位。都基本流了,还能有比基本更基本的流嘛?

ES在MPEG-2的流组成中,是其他流的基本流单位。但是我们都知道流是什么?它就是一串数据,而一串数据当然也得有内容啦,而放在视频流这,它就是一帧图像数据或一帧音频数据或者其他的一些填充数据(知道就好)。而这一帧数据,就是ES流的组成单元,也即Access Unit(AU) 存取单元。

它们的关系如下:
在这里插入图片描述
ES->PES->TS

AU组成ES流,ES流组成PES流,PES流组成TS或PS流。为了更清楚的理解它们在MPEG-2编码系统里的转化,我们拿出上篇文章中的这幅图:
在这里插入图片描述
MPEG-2编码系统

可以看到,从编码器中输出的,是对应的图像ES流或声音ES流,而后经过数据包装器,打包为对应的PES流,再经多路复合,图像和音频PES流复合在一起,打包为新的一种混合流,也即PS或TS数据流。

2.2、视像数据位流结构

现在我们知道了,MPEG-2编码器的输出为ES基本流,所以我们接下来讲的,数据位流的结构,既不是PS流也不是TS流,而是图像ES流的结构。

我们对照下图来简单看一下:

在这里插入图片描述
MPEG-2视像数据位流的结构

从上图可以看出,一个视像序列由G个视像组(GOP)组成,每个组包含P帧图像(picture),每帧图像分成S条像片(slice),每条像片分成M个宏块(macroblock),每个宏块包含4个8x8的亮度Y图块和1个8x8的Cr图块,1个8x8的Cb图块(有的资料中为了方便,会直接给出2个8x8的色度(Cr,Cb)图块,但是我觉得那样会引起歧义)。

当然这里的子采样格式为4:2:0,意味着每八个像素,采集2个色度样本,也即4个(Cr、Cr、Cb、Cb)色差样本。平均每4个像素,采集4个Y、1个Cr、1个Cb。

3、视像质量的可变编码

这里的可变编码非常重要,当然它也是我们现在的实时码流切换的基础。虽然我们这里不准备展开介绍,不过也要知道它的重要性。

顾名思义,视像质量可变编码,意味着编码器可以提供不同等级的视像服务质量,以适应各种传输速率网络环境。当然它会增加编码和解码的复杂性,而且由于更加复杂,意味着编码流程也多,所以压缩效率会有些降低。

可变编码在设计的时候,采用了分层编码的技术。它把编码分为基层编码和增强层编码。基层编码能够实现自给自足,编码、传输和解码可以独立完成。增强层编码就不行了,它得依赖于基层或先前的增强层才能完成。

比如:
在这里插入图片描述
MPEG-2 SNR(信噪比)增强编码器

像我们上篇里给出的编码器,其实就是属于基层编码器,也即图中的下面部分。而添加是右上角的SNR增强编码器之后,这个整体就变味了SNR(信噪比)可变编码器。

当然MPEG-2不只支持信噪(正常信号与噪声信号比值,越大越好)比可变(SNR Scalability),还支持如空间分辨率可变(Spatial Scalability)、时间分辨率可变(Temporal Scalability)、数据分割(Data Partitioning)、混合可变(Hybrid Scalability)等几种可变编码方式。这里我们就不展开了,有兴趣的同学可以问问Google、度娘。

参考资料:
http://www.academia.edu/20242733/MPEG-2_TS_Overview

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值