您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > 中文版白皮书H.264MPEG4-Part-10-White-Paper
H.264概览1.引言数字电视和DVD-video的出现使得广播电视和家庭娱乐发生了彻底的变革.越来越多的这些应用成为可能随着视频压缩技术的标准化.MPGE系列的下一个标准,MPEG4,正使得新一代的基于因特网的视频应用成为可能.而现在视频压缩的ITU-TH.263标准被广泛的应用于视频会议系统.MPEG4(视频)和H.263都是基于视频压缩(视频编码)技术的标准(大约从1995年开始).运动图像专家组和视频编码专家组(MPEG和VCEG)致力于开发一个比MPEG4和H.263有更好性能的新标准,有着高品质,低比特视频流的特性一个更好的视频图像压缩方法.新标准高级视频编码(AVC)的历史可追溯到7年前.1995年,为了通过电话线传输视频信号而制定的H.263标准定稿以后.ITU-T视频编码专家组(VCEG)就开始工作在两个更深入的发展领域:一个是短期的努力去增加H.263的额外特性(制定出标准的版本2),还有一个长期的努力,去开发一个适用于低比低率下可视通信的新标准,提供比之前的ITU-T标准更有效,明显更好的视频压缩方法.2001年,ISO运动图像专家组(MPEG)意识到H.26L的潜在优点,就组成了视频联合工作组(JVT),包括MPEG和VCEG的的专家.JVT的主要任务就是将H.26L模式草案发展成为一个完全的国际标准.实际上,结果产生了两个标准:ISOMPEG4第10部分和ITU-TH.264.新标准的官方命名是高级视频编码(AVC);然而,旧的命名H.26L和以ITU文档号命名的IH.264[1]更广为人知.2.H.264编解码器和之前的标准一样(如MPEG1,MPEG2和MPEG4),H.264标准草案并没有明确定义一个编解码器.在一定程度上,标准定义了视频比特流编码和与之相对应的解码方法的语法.然而实际上,一个符合的编码和解码器一般包括如图Figure2-1和Figure2-2中所示的功能模块.同时这些图中所示功能通常是必须的,但编解码器还是可以有相当多的变种.基本的功能模块(预测,传输,量化,熵编码)与之前的标准(MPEG1,MPEG2,MPEG4,H.261,H.263)差不多.H.264的最重要的变化是在这些功能模块的实现细节上.编码器包括两个数据流路径.一个前向路径(从左到右,以蓝色表示)和一个重构路径(从右到左,以洋红色表示).解码器的数据流路径以从右到左的方式表示,以此来说明编码器和解码器之间的相同点.2.1编码器(前向路径)当一个输入帧Fn被提交编码。该帧以宏块(相当于16X16像素的原始图像)为单位来进行处理。每个宏块被编码成帧内模式或帧间模式。在这两种情况下,会产生一个基于重建帧的预测宏块P。在帧内模式下,P根据之前已经编码,解码,重建的当前帧n中的采样产生(图中以uF’n表示。注意是未经过滤的采样用来产生P)。在帧间模式下,P根据采用一个或多个参考帧的运动补偿预测来产生。在图中,参考帧表示为之前已经编码的帧F’n-1;然而,每个宏块的预测可能根据过去或将来(以时间为序)的一或多个已经编码并重构的帧来产生。预测P被从当前宏块中减去来产生一个残留的或差异宏块Dn。它以量化变换系数集X变换(使用块变换)并量化.这些系数被重新排序并进行熵编码。在宏块解码时需要的熵编码系数和边信息(如宏块预测模式,量化步长,描述宏块如何运动补偿的运动矢量等等)组成了压缩的比特流。它被传输到了网络抽象层(NAL)进行传输或保存。2.2编码器(重建路径)为了编码更进一步的宏块,需通过解码宏块量化系数X来重建一帧。系数X被重新调整(Q-1)并且进行逆变换(T-1)来产生一个不同的宏块Dn’,这与原始的差异宏块Dn不同;它在量化过程中有了损耗,所以Dn’是Dn的一个失真版本。预测宏块P被加到Dn’中来创建一个重建宏块uF’n(原始宏块的一个失真版本)。为了减少阻断失真的影响使用了一个滤镜,重建参考帧从一系列的宏块F’n中创建。2.3解码器解码器从NAL(网络抽象层)接收压缩的比特流。数据元素被熵解码并且重新排列来产生一个量化系数集X。它们被重新调整并进行逆转换来生成Dn’(与编码器中所示的Dn’相同)。使用比特流中解码出的头部信息,解码器生成一个预测宏块P,与在编码器中生成的原始预测帧P相同。P被加到Dn’中来生成uFn’,uF’n经过过滤生成了解码的宏块Fn’。编码器的重建路径应该从图示和上面的讨论中清除,它实际上是为了确保编码器和解码器使用相同的参考帧来生成预测帧P。如果不这样做,编码器和解码器中的预测帧P就不会相同,导致编码器和解码器之间存在一个越来越大的误差或是“偏移”。3.参考资料1ITU-TRec.H.264/ISO/IEC11496-10,“AdvancedVideoCoding”,FinalCommitteeDraft,DocumentJVTE022,September2002帧内宏块预测1.引言联合视频工作组(JVT)正在定案一个新的自然视频图像编码(压缩)标准。新标准被称为H.264或称作MPEG-4Part10、“高级视频编码(AVS)”。这篇文档描述了H.264编解码器中宏块帧内编码的方法。如果一个块或宏块按帧内模式编码,会基于之前已经编码并重构(未过滤)的块生成一个预测宏块。这个预测块P被从之前已经编码的当前宏块中减去。对于亮度(luma)采样,P可能为每个4X4子块或16X16宏块产生。对于每个4X4的亮度块总共有9种可选的预测模式;对于16X16亮度块有4种可供选择的模式;而每个4X4的色度块只有一种预测模式(注:此处当理解成只有一种8X8的色度分块模式?)。2.4X4亮度块预测模式Figure1显示在一个QCIF帧中的一个亮度宏块和一个需要进行预测的4X4的亮度块。该块左边和上边的采样(即像素对应值)已经被编码、重建并且因而能够在编码器和解码器中用来生成预测块。基于Figure2中标识为A-M的采样计算出预测块P。注意在有些情况下,不是所有的采样A-M都在当前切片(即分块)中可用:为了保持切片解码的独立性,只有在当前切片中可用的采样才会用来进行预测。直流(DC)预测(模式2)根据A-M中的哪些采样可用来修改;其它模式(1-8)或许只能使用在所有预测中用到的采样都可用的情况(除了E,F,G,H不可用的情况。这些值可从D中复制)。Figure3中的箭头标出了每种模式下预测的方向。在模式3-8中,预测值根据预测采样A-Q的加权平均来产生。编码器可能为每个块选择一种预测模式来减小P和被编码块之间的误差。例:对Figure1中所示的4X4块使用9种预测模式(0-8)计算。Figure4显示了每种预测生成的预测块P。每种预测模式的绝对误差和(SAE)表明了预测误差的规模。在这种例子中,与实际当前块匹配最好的是模式7(垂直向左),因为这种模式给出了最小的SAE;经过视觉上的比较可以看出P块与原始的4X4块非常相似。3.16X16亮度块预测模式16X16亮度块预测模式是一个上述4X4亮度块预测模式的一种替代方法,整个16X16的亮度块可以被预测。有四种模式可以使用。如Figure5所示:模式0(垂直):从块上部的采样推出(H)。模式1(水平):从块左侧的采样推出(V)。模式2(直流):从块上部和左侧的采样的均值推出(H+V)模式3(平面):对块上部和左侧的采样H和V使用一个线性“平面”函数,这在平滑的亮度区域中效果最好。例:Figure6显示了一个左侧和上部采样已经编码的亮度宏块。预测结果(Figure7)表明最佳匹配由模式3给出。帧内16X16模式在分布均匀的图像区域中效果比较好。4.8X8色度块预测模式一个宏块的每个8X8的色度分量从之前已编码重构的上部和(或)左侧的色度采样中预测。色度块的四种预测模式和第3部分中描述(Figure5所示)的16X16亮度块预测模式非常相似,除了模式号不同:直流(模式0),横向(模式1),垂直(模式2)和平面(模式3)。相同的预测模式在色度块中也始终适用(色度和亮度的相同预测模式的预测方法相同)。注意:如果亮度分量中的8X8块被编码成帧内预测模式,色度块也要编码成帧内预测模式。5.帧内预测模式编码每个4X4块所选择的帧内预测模式必须传递给解码器,这就要求一个大量的位来存储。然而,相邻4X4块帧内预测模式高度相关。例如,如果Figure8中的之前已经编码的4X4块A和B使用模式2,很可能块C(当前编码块)的最佳预测模式也是模式2。对每个当前块C,编码器和解码器计算出最可能模式(most_probable_mode).如果A和B都使用了4X4帧内预测模式并且都包含在当前切片中,最可能模式就是A和B中模式号最小的预测模式;否则最可能模式设置为2(直流预测)。编码器给每个4X4块发送标志use_most_probable_mode,如果标志为”1”,参数most_probable_mode被使用。如果标志为”0”,另一个参数remaining_mode_selector被发送,表明需改变模式。如果remaining_mode_selector比当前most_probable_mode小,预测模式就设置成remaining_mode_selector;否则预测模式设置成remaining_mode_selector+1.采用这种方法,remaining_mode_selector只需使用8个值(0到7)来标志当前帧内预测模式(0到8)。6.参考资料1ITU-TRec.H.264/ISO/IEC11496-10,“AdvancedVideoCoding”,FinalCommitteeDraft,DocumentJVTF100,December20022IainEGRichardson,“H.264andMPEG-4VideoCompression”,JohnWiley&Sons,tobepublishedlate2003P片帧间预测1.引言联合视频工作组(JVT)正在定案一个新的自然视频图像编码(压缩)标准。新标准[1]被称为H.264或称作MPEG-4Part10、“高级视频编码(AVS)”。这篇文档描述了H.264中以P-片来进行帧间预测编码的方法。帧间预测从一个或多个之前已经编码的视频帧中生成一个预测模型。这个模型由对参考帧中的采样进行漂移产生(运动补偿预测)。AVCCODEC使用基于块的运动补偿,与从H.261以来的主要编码标准中采用的规则相同。然而,它与早期标准有着重要的区别:(1)支持多种块大小(最小4X4)的预测;(2)细粒度的次像素运动矢量(量度分量可精确到1/4像素)。2树结构的运动补偿AVC对亮度采样支持16X16到4X4之间多种块大小的运动补偿。每个宏块(16X16采样)的亮度分量能以Figure2-1中所示的4种方式分割:16X16,16X8,8X16或8X8.每个细分区域是一个宏块分区。如果选择8X8分割模式,宏块内的四个8X8宏块分区都能够以4种方式再次分割,如图Figure2-2所示:8X8,8X4,4X8或4X4(称作宏块子分区)。这些分区和子分区使得每个宏块内都可以有很多种组合方式。这种将宏块分割成不同大小运动补偿子块的方法称作树结构运动补偿。每个分区或子分区都有一个独立的运动矢量。每个运动矢量必须编码并传输;另外,分区(分割方式)的选择也必须被编码到压流的比特流中。选择大的分区(如16X16,16X8,8X16)意味着只需很少的比特来标记运动矢量的选择和分区的类型;然而,运动补偿残差可能包含了大量的帧中高细节部分信息。选择一个小的分区大小(8X4,4X4等等)可以在运动补偿后得到一个较小的残差,但它需要更多的比特来标记运动矢量和分区的类型。因此分区大小的选择对压缩效果有着很大的影响。通常情况下,一个大的分区适用于帧内分布均匀的区域而一个小的分区将有利于细节区域的描述。宏块(Cr和Cb)中每个色度分量的分辨率为亮度分量的一半。每个色度块和亮度块的分割方式相同,只是分区大小是水平和垂直方向的分辨率的一半(如一个8X16亮度分区对应一个4
本文标题:中文版白皮书H.264MPEG4-Part-10-White-Paper
链接地址:https://www.777doc.com/doc-4960271 .html