共1条
1/1 1 跳转至页
MPEG-2视频编码技术漫谈[转帖]
作者:何桂芝 匡葵 梅剑平
近年来,电视领域里发生了一系列巨大的变化,会议电视、VCD、数字电视以及高清晰度电视(HDTV)等新技术和新系统正迅速走进我们的生活。与传统的模拟电视相比,这些新系统的突出特点是采用了全数字的图像/声音处理技术。随着这些数字电视系统的日益成熟和不断发展,针对不同的应用领域,一系列相应的数字视频音频编码标准也迅速地被制定并不断得到完善,其中包括:应用于会议电视及可视电话的H.261,用于静止图像压缩的JPEG,用于VCD的MPEG-1和用于广播电视、DVD以及HDTV的MPEG-2。与此同时,数字演播室标准及数字电视的质量评价标准也被制定出来。与其它几种标准相比,MPEG-2制定的时间稍晚,但却具有以下几个突出特点:所支持的图像分辨率最高,包括符合ITU-RRec.601(CCIR601)格式的标准分辨率的数字电视和更高分辨率的HDTV。支持包括高速体育运动在内的活动图像。所支持的应用最为广泛,既包括存储媒体中的DVD,广播电视中的数字广播电视和HDTV,还可应用于交互式的点播视频(VOD)和准点播视频(NVOD),此外,还能够适配于ATM这种新兴的宽带通信网。
本文着重介绍一下MPEG-2的标准组成结构,演播室标准,质量评价标准,特别是视频压缩技术。
MPEG简介
MPEG是活动图像专家组(MovingPictureExportsGroup)的缩写,于1988年成立。目前MPEG已颁布了两个活动图像及声音编码的正式国际标准,分别称为MPEG-1和MPEG-2。
MPEG-1标准是:在数字存储介质中实现对活动图像和声音的压缩编码,编码码率最高为每秒1.5兆比特,标准的正式规范在ISO/IEC11172中。MPEG-1所支持的输入图像格式是SIF格式。SIF有525/625两种格式:352x240x30和352x288x25。MPEG-1是一个开放的,统一的标准,在商业上获得了巨大的成功。尽管其图像质量仅相当于VHS视频的质量,还不能满足广播级的要求,但已广泛应用于VCD等家庭视像产品中。
MPEG-2标准是:针对标准数字电视和高清晰度电视在各种应用下的压缩方案和系统层的详细规定,编码码率从每秒3兆比特~100兆比特,标准的正式规范在ISO/IEC13818中。MPEG-2不是MPEG-1的简单升级,MPEG-2在系统和传送方面作了更加详细的规定和进一步的完善。MPEG-2特别适用于广播级的数字电视的编码和传送,被认定为SDTV和HDTV的编码标准。MPEG-2还专门规定了多路节目的复分接方式。此外,MPEG-2还兼顾了与ATM信元的适配问题。
MPEG-2标准
MPEG-2标准目前分为9个部分,统称为ISO/IEC13818国际标准。各部分的内容描述如下:
第一部分-ISO/IEC13818-1,System:系统,描述多个视频,音频和数据基本码流合成传输码流和节目码流的方式。
第二部分-ISO/IEC13818-2,Video:视频,描述视频编码方法。
第三部分-ISO/IEC13818-3,Audio:音频,描述与MPEG-1音频标准反向兼容的音频编码方法。
第四部分-ISO/IEC13818-4,Compliance:符合测试,描述测试一个编码码流是否符合MPEG-2码流的方法。
第五部分-ISO/IEC13818-5,Software:软件,描述了MPEG-2标准的第一、二、三部分的软件实现方法。
第六部分-ISO/IEC13818-6,DSM-CC:数字存储媒体-命令与控制,描述交互式多媒体网络中服务器与用户间的会话信令集。
以上六个部分均已获得通过,成为正式的国际标准,并在数字电视等领域中得到了广泛的实际应用。此外,MPEG-2标准还有三个部分:第七部分规定不与MPEG-1音频反向兼容的多通道音频编码;第八部分现已停止;第九部分规定了传送码流的实时接口。
1990年成立的ATM视频编码专家组与MPEG在ISO/IEC13818标准的第一和第二两个部分进行了合作,因此上述两个部分也成为ITU-T的标准,分别为:ITU-TRec.H.220系统和ITU-TRec.H.262视频。
下面我们主要讨论一下MPEG视频编码系统,即ISO/IEC13818-2部分。MPEG-2视频编码
MPEG-2视频编码标准是一个分等级的系列,按编码图像的分辨率分成四个"级(Levels)";按所使用的编码工具的集合分成五个"类(Profiles)"。"级"与"类"的若干组合构成MPEG-2视频编码标准在某种特定应用下的子集:对某一输入格式的图像,采用特定集合的压缩编码工具,产生规定速率范围内的编码码流。在20种可能的组合中,目前有11种是已获通过的,称为MPEG-2适用点。
- 我们知道,当前模拟电视存在着PAL、NTSC和SECAM三大制式并存的问题,因此,数字电视的输入格式标准试图将这三种制式统一起来,形成一种统一的数字演播室标准,这个标准就是CCIR601,现称ITU-RRec.BT601标准。MPEG-2中的四个输入图像格?quot;级"都是基于这个标准的。低级(LowLevel)的输入格式的像素是ITU-RRec.BT601格式的1/4,即352x240x30(代表图像帧频为每秒30帧,每帧图像的有效扫描行数为240行,每行的有效像素为352个),或352x288x25。低级之上的主级(MainLevel)的输入图像格式完全符合ITU-RRec.BT601格式,即720x480x30或720x576x25。主级之上为HDTV范围,基本上为ITU-RRec.BT601格式的4倍,其中1440高级(High-1440Level)的图像宽高比为4:3,格式为1440x1080x30,高级(HighLevel)的图像宽高比为16:9,格式为1920x1080x30。
在MPEG-2的五个"类"中,较高的"类"意味着采用较多的编码工具集,对编码图像进行更精细的处理,在相同比特率下将得到较好的图像质量,当然实现的代价也较大。较高类编码除使用较低类的编码工具外,还使用了一些较低类没有使用的附加工具,因此,较高类的解码器除能解码用本类方法编码的图像外,也能解码用较低类方法编码的图像,即MPEG-2的"类"之间具有后向兼容性。简单类(SimpleProfile)使用最少的编码工具。主类(MainProfile)除使用所有简单类的编码工具外,还加入了一种双向预测的方法。信噪比可分级类(SNRScalableProfile)和空间可分级类(SpatiallyScalableProfile)提供了一种多级广播的方式,将图像的编码信息分为基本信息层和一个或多个次要信息层。基本信息层包含对图像解码至关重要的信息,解码器根据基本信息即可进行解码,但图像的质量较差。次要信息层中包含图像的细节。广播时对基本信息层加以较强的保护,使其具有较强的抗干扰能力。这样,在距离较近,接收条件较好的情况下,可以同时收到基本信息和次要信息,恢复出高质量的图像;而在距离较远,接收条件较差的条件下,仍能收到基本信息,恢复出图像,不至造成解码中断。高级类(HighProfile)实际上应用于比特率更高,要求更高的图像质量时,此外,前四个类在处理Y,U,V时是逐行顺序处理色差信号的,高级类中还提供同时处理色差信号的可能性。
目前的标准数字电视采用的是MP@ML主类和主级,而HDTV采用的是MP@HL主类和高级。下面,我们以MP@ML为例来说明一下MPEG-2视频编码系统原理及关键技术。MPEG-2视频编码系统原理及关键技术
概括地说,MPEG-2图像压缩的原理是利用了图像中的两种特性:空间相关性和时间相关性。一帧图像内的任何一个场景都是由若干像素点构成的,因此一个像素通常与它周围的某些像素在亮度和色度上存在一定的关系,这种关系叫作空间相关性;一个节目中的一个情节常常由若干帧连续图像组成的图像序列构成,一个图像序列中前后帧图像间也存在一定的关系,这种关系叫作时间相关性。这两种相关性使得图像中存在大量的冗余信息。如果我们能将这些冗余信息去除,只保留少量非相关信息进行传输,就可以大大节省传输频带。而接收机利用这些非相关信息,按照一定的解码算法,可以在保证一定的图像质量的前提下恢复原始图像。一个好的压缩编码方案就是能够最大限度地去除图像中的冗余信息。
MPEG-2中编码图像被分为三类,分别称为I帧,P帧和B帧。
----I帧图像采用帧内编码方式,即只利用了单帧图像内的空间相关性,而没有利用时间相关性。I帧主要用于接收机的初始化和信道的获取,以及节目的切换和插入,I帧图像的压缩倍数相对较低。I帧图像是周期性出现在图像序列中的,出现频率可由编码器选择。
P帧和B帧图像采用帧间编码方式,即同时利用了空间和时间上的相关性。P帧图像只采用前向时间预测,可以提高压缩效率和图像质量。P帧图像中可以包含帧内编码的部分,即P帧中的每一个宏块可以是前向预测,也可以是帧内编码。B帧图像采用双向时间预测,可以大大提高压缩倍数。值得注意的是,由于B帧图像采用了未来帧作为参考,因此MPEG-2编码码流中图像帧的传输顺序和显示顺序是不同的。
MPEG-2的编码码流分为六个层次。
从上至下依次为:视频序列层(Sequence),图像组层(GOP:GroupofPicture),图像层(Picture),像条层(Slice),宏块层(MacroBlock)和像块层(Block)。从图1中可以看到,除宏块层和像块层外,上面四层中都有相应的起始码(SC:StartCode),可用于因误码或其它原因收发两端失步时,解码器重新捕捉同步。因此一次失步将至少丢失一个像条的数据。
序列指构成某路节目的图像序列,序列起始码后的序列头中包含了图像尺寸,宽高比,图像速率等信息。序列扩展中包含了一些附加数据。为保证能随时进入图像序列,序列头是重复发送的。
序列层下是图像组层,一个图像组由相互间有预测和生成关系的一组I、P、B图像构成,但头一帧图像总是I帧。GOP头中包含了时间信息。
图像组层下是图像层,分为I、P、B三类。PIC头中包含了图像编码的类型和时间参考信息。
图像层下是像条层,一个像条包括一定数量的宏块,其顺序与扫描顺序一致。MP@ML中一个像条必须在同一宏块行内。
像条层下是宏块层。MPEG-2中定义了三种宏块结构:4:2:0宏块4:2:2宏块和4:4:4宏块,分别代表构成一个宏块的亮度像块和色差像块的数量关系。
4:2:0宏块中包含四个亮度像块,一个Cb色差像块和一个Cr色差像块;4:2:2宏块中包含四个亮度像块,二个Cb色差像块和二个Cr色差像块;4:4:4宏块中包含四个亮度像块,四个Cb色差像块和四个Cr色差像块。这三种宏块结构实际上对应于三种亮度和色度的抽样方式。
在进行视频编码前,分量信号R、G、B被变换为亮度信号Y和色差信号Cb、Cr的形式。4:2:2格式中亮度信号的抽样频率为13.5MHz,两个色差信号的抽样频率均为6.75MHz,这样空间的抽样结构中亮度信号为每帧720x576样值,Cb,Cr都为360x576样值,即每行中每隔一个像素对色差信号抽一次样,如图3所示,○代表Y信号的抽样点,×代表Cb,Cr信号的抽样点。
4:4:4格式中,亮度和色差信号的抽样频率都是13.5MHz,因此空间的抽样结构中亮度和色差信号都为每帧720x576样值。而4:2:0格式中,亮度信号的抽样频率13.5MHz,空间的抽样结构中亮度信号为每帧720x576样值,Cb,Cr都为360x288样值,即每隔一行对两个色差信号抽一次样,每抽样行中每隔一个像素对两个色差信号抽一次样。
通过上述分析不难计算出,4:2:0格式中,每四个Y信号的像块空间内的Cb,Cr样值分别构成一个Cb,Cr像块;4:2:2格式中,每四个Y信号的像块空间内的Cb,Cr样值分别构成两个Cb,Cr像块;而4:4:4格式中,每四个Y信号的像块空间内的Cb,Cr样值分别构成四个Cb,Cr像块。相应的宏块结构正是以此基础构成的。
宏块层之下是像块层,像块是MPEG-2码流的最底层,是DCT变换的基本单元。MP@ML中一个像块由8x8个抽样值构成,同一像块内的抽样值必须全部是Y信号样值,或全部是Cb信号样值,或全部是Cr信号样值。另外,像块也用于表示8x8个抽样值经DCT变换后所生成的8x8个DCT系数。
在帧内编码的情况下,编码图像仅经过DCT,量化器和比特流编码器即生成编码比特流,而不经过预测环处理。DCT直接应用于原始的图像数据。
在帧间编码的情况下,原始图像首先与帧存储器中的预测图像进行比较,计算出运动矢量,由此运动矢量和参考帧生成原始图像的预测图像。而后,将原始图像与预测像素差值所生成的差分图像数据进行DCT变换,再经过量化器和比特流编码器生成输出的编码比特流。
可见,帧内编码与帧间编码流程的区别在于是否经过预测环的处理。
MPEG-2视频压缩方案中包含以下关键技术环节:
1、离散余弦变换DCT
DCT是一种空间变换,在MPEG-2中DCT以8x8的像块为单位进行,生成的是8x8的DCT系数数据块。DCT变换的最大特点是对于一般的图像都能够将像块的能量集中于少数低频DCT系数上,即生成8x8DCT系数块中,仅左上角的少量低频系数数值较大,其余系数的数值很小,这样就可能只编码和传输少数系数而不严重影响图像质量。
DCT不能直接对图像产生压缩作用,但对图像的能量具有很好的集中效果,为压缩打下了基础。
2、量化器
量化是针对DCT变换系数进行的,量化过程就是以某个量化步长去除DCT系数。量化步长的大小称为量化精度,量化步长越小,量化精度就越细,包含的信息越多,但所需的传输频带越高。不同的DCT变换系数对人类视觉感应的重要性是不同的,因此编码器根据视觉感应准则,对一个8x8的DCT变换块中的64个DCT变换系数采用不同的量化精度,以保证尽可能多地包含特定的DCT空间频率信息,又使量化精度不超过需要。DCT变换系数中,低频系数对视觉感应的重要性较高,因此分配的量化精度较细;高频系数对视觉感应的重要性较低,分配的量化精度较粗,通常情况下,一个DCT变换块中的大多数高频系数量化后都会变为零。
3、之型扫描与游程编码
DCT变换产生的是一8x8的二维数组,为进行传输,还须将其转换为一维排列方式。有两种二维到一维的转换方式,或称扫描方式:之型扫描(Zig-Zag)和交替扫描,其中之型扫描是最常用的一种。由于经量化后,大多数非零DCT系数集中于8x8二维矩阵的左上角,即低频分量区,之型扫描后,这些非零DCT系数就集中于一维排列数组的前部,后面跟着长串的量化为零的DCT系数,这些就为游程编码创造了条件。
- 游程编码中,只有非零系数被编码。一个非零系数的编码由两部分组成:前一部分表示非零系数前的连续零系数的数量(称为游程),后一部分是那个非零系数。这样就把之型扫描的优点体现出来了,因为之型扫描在大多数情况下出现连零的机会比较多,游程编码的效率就比较高。当一维序列中的后部剩余的DCT系数都为零时,只要用一个"块结束"标志(EOB)来指示,就可结束这一8x8变换块的编码,产生的压缩效果是非常明显的。
4、熵编码
量化仅生成了DCT系数的一种有效的离散表示,实际传输前,还须对其进行比特流编码,产生用于传输的数字比特流。简单的编码方法是采用定长码,即每个量化值以同样数目的比特表示,但这种方法的效率较低。而采用熵编码可以提高编码效率。熵编码是基于编码信号的统计特性,使得平均比特率下降。游程和非零系数既可独立的,也可联合的作熵编码。熵编码中使用较多的一种是霍夫曼编码,MPEG-2视频压缩系统中采用的就是霍夫曼编码。霍夫曼编码中,在确定了所有编码信号的概率后生产一个码表,对经常发生的大概率信号分配较少的比特表示,对不常发生的小概率信号分配较多的比特表示,使得整个码流的平均长度趋于最短。
5、信道缓存
由于采用了熵编码,产生的比特流的速率是变化的,随着视频图像的统计特性变化。但大多数情况下传输系统分配的频带都是恒定的,因此在编码比特流进入信道前需设置信道缓存。信道缓存是一缓存器,以变比特率从熵编码器向里写入数据,以传输系统标称的恒定比特率向外读出,送入信道。缓存器的大小,或称容量是设定好的,但编码器的瞬时输出比特率常明显高于或低于传输系统的频带,这就有可能造成缓存器的上溢出或下溢出。因此缓存器须带有控制机制,通过反馈控制压缩算法,调整编码器的比特率,使得缓存器的写入数据速率与读出数据速率趋于平衡。缓存器对压缩算法的控
制是通过控制量化器的量化步长实现的,当编码器的瞬时输出速率过高,缓存器将要上溢时,就使量化步长增大以降低编码数据速率,当然也相应增大了图像的损失;当编码器的瞬时输出速率过低,缓存器将要下溢出时,就使量化步长减小以提高编码数据速率。
6、运动估计
运动估计使用于帧间编码方式时,通过参考帧图像产生对被压缩图像的估计。运动估计的准确程度对帧间编码的压缩效果非常重要。如果估计作的好,那么被压缩图像与估计图像相减后只留下很小的值用于传输。运动估计以宏块为单位进行,计算被压缩图像与参考图像的对应位置上的宏块间的位置偏移。这种位置偏移是以运动矢量来描述的,一个运动矢量代表水平和垂直两个方向上的位移。运动估计时,P帧和B帧图像所使用的参考帧图像是不同的。P帧图像使用前面最近解码的I帧或P帧作参考图像,称为前向预测;而B帧图像使用两帧图像作为预测参考,称为双向预测,其中一个参考帧在显示顺序上先于编码帧(前向预测),另一帧在显示顺序上晚于编码帧(后向预测),B帧的参考帧在任何情况下都是I帧或P帧。
7、运动补偿
利用运动估计算出的运动矢量,将参考帧图像中的宏块移至水平和垂直方向上的相对应位置,即可生成对被压缩图像的预测。在绝大多数的自然场景中运动都是有序的。因此这种运动补偿生成的预测图像与被压缩图像的差分值是很小的。数字图像质量的主观评价
主观评价的条件包括:评价小组结构,观察距离,测试图像,环境照度和背景色调等。评价小组由一定人数观察人员构成,其中专业人员与非专业人员各占一定比例。观察距离为显示器对角线尺寸的3-6倍。测试图像有若干具有一定图像细节和运动的图像序列构成。主观评价反映的是许多人对图像质量统计评价的平均值。
关键词: MPEG-2 视频 编码 技术 漫谈 转帖 图像
共1条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
【笔记】生成报错synthdesignERROR被打赏50分 | |
【STM32H7S78-DK评测】LTDC+DMA2D驱动RGBLCD屏幕被打赏50分 | |
【STM32H7S78-DK评测】Coremark基准测试被打赏50分 | |
【STM32H7S78-DK评测】浮点数计算性能测试被打赏50分 | |
【STM32H7S78-DK评测】Execute in place(XIP)模式学习笔记被打赏50分 | |
每周了解几个硬件知识+buckboost电路(五)被打赏10分 | |
【换取逻辑分析仪】RA8 PMU 模块功能寄存器功能说明被打赏20分 | |
野火启明6M5适配SPI被打赏20分 | |
NUCLEO-U083RC学习历程2-串口输出测试被打赏20分 | |
【笔记】STM32CUBEIDE的Noruletomaketarget编译问题被打赏50分 |