MPEG-2与H.264压缩标准.doc_第1页
MPEG-2与H.264压缩标准.doc_第2页
MPEG-2与H.264压缩标准.doc_第3页
MPEG-2与H.264压缩标准.doc_第4页
MPEG-2与H.264压缩标准.doc_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

MPEG-2与H.264压缩标准一、 MPEG-2MPEG-2标准是MPEG组织于1995年推出的针对数字视频广播、高清晰度电视和数字视盘等制定的49Mb/s运动图像及其伴音的编码标准,是对MPEG1标准进一步扩展和改进。MPEG-2是数字电视机顶盒与DVD等产品的基础,与MPEG1系统向下兼容,因此语法的最大特点在于兼容性好并可扩展。MPEG-2采用的核心技术是分块DCT与帧间运动补偿预测技术。图1基于块的混合视频编码基本流程MPEG-2视频允许数据速率高达100Mb/s,支持隔行扫描视频格式和许多高级性能。考虑到视频信号隔行和特点,MPEG-2专门设置了“按帧编码”和“按场编码”两种格式,并相应地对运动补偿和DCT方法进行了扩展,从而显著提高了压缩编码的效率。考虑到标准的通用性,增大了重要的参数值,允许有更大的画面格式,比特率和运动矢量长度。除此之外,MPEG-2视频压缩编码还进行了以下扩展:1). 输入/输出图像彩色分量之比可以是4:2:0,4:2:2,4:4:4。2). 输入/输出图像格式(分辨率)不限定。3). 可以直接对隔行扫描视频信号进行处理。4). 在空间分辨率、时间分辨率、信噪比方面的可分级性适合于不同用途的解码图像要求,并可给出传输上不同等级的优先级。5). 输出码率可以是恒定的也可以是变化的,以适应同步和异步传输。MPEG-2还规定了分辨率从低到高的4级5类共11种单独的技术规范,如表所示:LevelProfileSimpleMainSNR SpatialHighHighWidth/HeightFrame rateBit rate1920x11526080Mb/s1920x115260100Mb/sHigh-1440Width/HeightFrame rateBit rate1440x11526060Mb/s1440x11526060Mb/s1440x11526080Mb/sMainWidth/HeightFrame rateBit rate720x5763015Mb/s720x5763015Mb/s720x5763015Mb/s720x5763020Mb/sLowWidth/HeightFrame rateBit rate352x288304Mb/s352x288304Mb/s二、 H.2641. 标准的制定与发展H.264/AVC是最新的国际视频编码标准,它的制定过程最早是从1998年开始的。当时ITU-T第16研究小组在对H.263不断改进的同时,还启动了另一个研究项目H.26L,目标是制定一个编码效率比当时标准提高一倍的新标准。起初这个项目是由ITU-T的视频编码专家组VCEG (Video Coding Expert Group)负责,随着标准中各项技术的提出和改进,在2001年12月ISO/IEC MPEG也加入了进来,并与ITU-T VCEG合作成立了联合视频专家组JVT(Joint Video Team)共同来完成标准的制定工作。2003年3月,标准的最终草案公布并将H.26L定名为H.264。由于该标准是由两个组织共同制定完成的,所以它分别被称为ITU-T建议H.264和ISO/IEC 1449610 AVC(MPEG-4 第10部分,先进视频编码)。正式标准于2003年5月发布并命名为H.264/AVC。图2 ITU-T和ISO/IEC现有视频编码标准的发展过程在以往的视频编码标准中,为了实现压缩码流的网络传输专门制定了H.320及H.324等标准来满足视频编码的网络适应性。然而对于不同的通信系统,只有将网络适应性与视频编码紧密结合起来,才能获得最佳的传输性能。因此在H.264/AVC的制定过程中充分考虑了标准的网络友好性,在逻辑上采用了分层设计(如图3所示):一个规定视频编码算法的视频编码层(VCL, Video Coding Layer)和一个规定网络传输规范的网络抽象层(NAL, Network Abstraction Layer)。视频编码层主要负责视频数据的有效压缩;网络抽象层作为VCL层和传输层的接口,负责VCL数据的打包、图像和序列编码参数集的传输等,使压缩的数据能在不同网络传输。图3 H.264/AVC的分层结构2. H.264/AVC视频基本编码框架与以往视频编码标准一样,H.264/AVC的视频编码层依然采用的是基于块的混合编码框架(如图4所示)。编码器首先将输入的图像分割成宏块,然后利用空间预测与时间预测去除相关的冗余信息。通过将原始图像块与预测图像块进行相减,得到预测残差。接着对预测残差进行频域变换得到变换系数并量化。最后利用熵编码进行二进制编码,最大限度地去除量化后数据间的符号冗余。图4 H.264基本编码框架图相对于以往标准,H.264/AVC中许多模块采用了新的编码技术。其中有些算法是对以往算法的扩展,如支持更小的块尺寸(44块)、更多参考帧的运动搜索和运动补偿等;有些则是对以往算法的改进,如运动搜索的精度达到1/4像素;还有一些则是完全不同于以往标准中的算法,如空间域的帧内预测、整数DCT变换、基于内容的熵编码(CAVLC和CABAC)和自适应去块效应滤波等。3 H.264/AVC编码关键技术3.1 帧内预测帧内预测是指利用当前帧中已经编码宏块的信息对当前编码宏块进行预测的一种方式。与以往标准在频域进行帧内预测不同,在H.264/AVC中,帧内预测是在空间域进行的。其基本原理就是利用相邻像素的空间相关性,根据已经重建的相邻块的一些像素来实现对当前编码块的预测。根据亮度和色度信号的不同,H.264/AVC的帧内预测又分为亮度分量和色度分量帧内预测两类。对于亮度分量,帧内预测又有INTRA44和INTRA1616两种模式。INTRA44有9种预测模式,适用于纹理比较复杂的图像区域;INTRA1616有4种预测模式,适用于纹理变化平坦的区域。色度分量的帧内预测模式与亮度分量INTRA1616模式比较相近,但在块大小和具体的模式顺序上稍有不同。在H.264/AVC中,帧内预测不仅用于I帧的编码,在P帧和B帧的编码中也会用到。当P帧或B帧中的宏块在帧内编码模式下的开销最小时,编码器会选择对应的帧内编码模式作为该宏块的最佳编码模式。图5. 9种4x4预测模式与4种1616预测模式3.2 帧间预测H.264/AVC在帧间预测方面采用了多种先进技术,主要包括支持多种块划分模式、高精度的运动搜索和多参考帧预测。3.2.1 多种帧间块划分模式在以往的视频编码标准中,帧间预测过程中块尺寸的大小均是固定的,如1616和88。为了能在帧间预测时做到更精确的匹配,H.264/AVC定义了7种块划分模式,如图2-7所示。多种块划分模式使得帧间预测时块与块之间的匹配更加准确,从而减小预测误差、提高压缩率。尤其当宏块中包含多个运动对象的情况下,不同的块划分模式能够更准确地描述各个不同对象的运动情况,显著提高此类情况下帧间预测的准确性。图6. 7种帧间预测块模式3.2.2 高精度运动搜索在H.264/AVC中,亮度分量的运动向量精度由以往标准的1/2像素提高到了1/4像素,色度分量的运动向量精度为1/8像素。分数像素通过自适应内插滤波器插值获得,1/2像素位置上的像素采用参数为(1,-5,20,20,-5,1)/32的一阶6抽头FIR滤波器分别在水平和竖直方向上计算得到,1/4像素直接由相邻的整像素和1/2像素通过线性插值得到。图7给出了H.264/AVC中亮度分量的1/2像素插值情况。图7. 亮度分量1/2像素插值图7中b和h两个1/2像素位于水平和竖直方向上整像素之间,首先计算出中间值b1和h1: 然后计算出b和h: 3.2.3 多参考帧预测相比于以往标准只支持1个参考帧,H.264/AVC在帧间预测时可以支持5个参考帧。图8描述了H.264/AVC中多参考帧条件的预测情况。通过在多个参考帧中进行运动搜索,当视频场景中的物体发生周期性运动或遮蔽时可以获得更好的编码效果。图8. 多参考帧示意图3.3 变换和量化3.3.1 变换以往的视频编码标准采用的都是88 DCT变换来降低预测残差的空间冗余,但由于是浮点运算,因此在变换和反变换之间存在误差偏移。在预测过程中,这种由变换引起的误差将不断被积累和放大。当误差积累到一定程度后,编码效率会迅速降低。与传统标准不同,H.264/AVC采用的是整数变换。在基准档次(BP, Basiline Profile)和主档次(MP, Main Profile)中,根据数据类型的不同,包含3种变换:1)针对所有残差数据的44整数DCT变换;2)44 Hadamard变换(针对INTRA1616模式下亮度DC系数);3)22Hadamard变换(针对所有色度块DC系数)。所有变换过程中的运算都是整数运算,因此不会出现由浮点运算带来的舍入误差,正变换与反变换的结果能够准确匹配。H.264/AVC中的44整数DCT变换是由传统的DCT变换演变而来的,其变换矩阵为: 其中,符号代表矩阵对应位相乘。由于变换核部分采用的全部是整数运算,所以H.264/AVC中的DCT变换也称为整数DCT变换,这样做的好处在于:1)所有变换过程中所有的运算都是整数运算,克服了传统DCT变换中浮点运算带来的舍入误差,正变换与反变换的结果能够准确匹配。2)在采用蝶型变换后,整个变换核部分的计算仅包括加法操作和移位操作,便于硬件实现。3)由于缩放操作的独立性,可以将缩放运算合并到量化计算过程中,从而减少部分计算量。3.3.2 量化为了提高码率控制能力,H.264/AVC采用的是分级量化,支持的量化参数QP (Quantization Parameter)多达52个。每个QP值对应着一个量化步长Qstep:QP值每增加6,Qstep增加1倍;QP每增加1,Qstep增加12.5%。表2-1显示了H.264/AVC中量化参数与量化步长之间的映射关系。表1 H.264/AVC中量化参数与量化步长的关系量化后的变换系数根据帧/场模式分别进行Zig-zag扫描或场扫描(如图9所示),之后对扫描系数进行熵编码。图9 a)Zig-zag扫描 b)场扫描3.4 熵编码H.264/AVC中有两种熵编码方法,一种采用变长码(Variable Length Code, VLC),对宏块的编码模式和运动向量采用统一的指数哥伦布编码(Exp_Golomb),对量化系数采用上下文自适应的变长编码(CAVLC, Context-Adaptive Variable Length Coding);另一种熵编码方法为基于上下文的自适应二进制算术编码(CABAC, Context-based Adaptive Binary Arithmetic Coding)。由于在概率估计方面的不同,这两种方法的计算复杂性和压缩效率各有不同。CAVLC根据残差的统计特性,设计了多个码表。在编码时根据语法元素进行码表的切换,编码具有自适应能力,编码效率较高。但CAVLC使用的是静态概率估计码表,没有考虑不同视频流的统计特性,也忽略了符号间的相关性,没有利用相邻符号为当前待编码符号提供信息。这些缺点限制了CAVLC的编码效率,尤其是在高码率下压缩效果较差。CABAC则完全克服了CAVLC的这些缺点,编码效率较高,在相同编码质量下比CAVLC编码节省1015%的码率。3.5去块效应滤波为了有效地去除重建图像中的块效应,H.264/AVC引入了环路去块效应滤波(In-loop de-blocking)。不同于视频图像的后处理,只在显示图像时进行图像的平滑处理。H.264/AVC中的去块效应滤波模块包含在整个编解码过程中,即重建后的图像经去块效应滤波后将放入帧存中作为参考帧供后续待编码帧使用。这样做不仅改善了图像质量,而且能够进一步提高帧间预测的编码效率。 (a) (b)图10 环内滤波效果图 (a)未滤波 (b)滤波在计算复杂度方面,去块效应滤波的计算量能够占到整个解码器计算量的1/3。但在编码器中,由于整个编码过程中其他主要模块的计算量非常大,去块效应滤波的计算量只占到0.10.8%。4. H.264/AVC定义的档次(Profile)和级别(Level)H.264/AVC支持多种视频业务,考虑到不同业务之间的互操作性,H.264/AVC标准定义了档次和级别。档次是H.264/AVC定义的语法、语义和算法工具的子集;级别是在某一档次下对语法元素和语法元素参数集的限定集合。为了满足高清晰度/标准清晰度数字电视广播、数字存储媒体、移动视频、流媒体等业务的需要,H.264/AVC起初定义了基准档次(Baseline Profile),主档次(Main Profil

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论