视频压缩标准陈虎H.264/AVC标准简介JVT(JointVideoTeam)是由国际标准化组织运动图像专家组(ISOMPEG)和国际电信联盟视频编码专家组(ITU-TVCEG)成立的联合视频工作组,致力于开发低比特率视频标准;JVT标准于2003年推出H.264/AVC标准在ISO/IEC中正式名称为MPEG-4Part10,称之为“ISO/IEC14496Part10高级视频编码算法”(ISO/IEC1449610AVC)H.264/AVC标准简介H.264/AVC实现的目标更高的编码效率,在H.263和MPEG-4的基础上,保持相同图像质量,节省50%的比特率。更好的图像质量,在各种编码速率条件下提供满意的主观图像质量。更强的时延适应性,适应低时延的实时通信应用,如视频会议等,也可适应高时延的数字存储等应用。更强的容错能力,适应包交换网络中的丢包和无线信道中的误码。更好的网络适应能力,分离视频编码层(VideoCodingLayer,简称VCL)和网络适配层(NetAbstractionLayer,简称NAL),适应在不同特性的网络上打包传输。H.264/AVC标准的制定历程H.26L(1998)JVT(2001.12)H.264/AVC(2003.03&05)ProfessinalExtensions(2004.04)HighProfileadded(2005)TML-1(1999.08)............21JM-12Mar.2007JM-7Marrakech,MorroccoH.264/AVC的应用前景有线、卫星数字电视广播优越性广泛应用有赖于高效的压缩技术美国在2010年(我国约在2015年)停止模拟电视广播,全部采用数字电视广播HDTV要获得迅猛发展,必须要降低成本,采用H.264,可使传输费用降为原来的1/4在有线电视信道上开通数字电视,采用压缩性能优异的H.264显得非常迫切H.264/AVC的应用前景视频通信上世纪90年代初以来,电视会议在我国获得了迅速发展。其不足之处为:•(1)不方便:必须到电信局专门的电视会议室才能参加会议•(2)价格昂贵:当时采用H.261,压缩比不高,图像质量不够好,设备价格昂贵,传输费用也昂贵可视电话是视频通信的另一个重要应用,尚未很好地广泛地被应用,一个重要原因是视频质量不理想,这与视频压缩技术有密切关系•利用IP技术传输视频,在网络流量不大时,可视电话质量尚能接受(尽管也不是很好)•由于IP数据流的突发性,在流量大时网络会发生拥塞,常发生丢包、误码,图像中带有不少方块,视频质量难以接受–对视频编码的要求:高压缩比,在恶劣传输条件下(包括移动网络的衰落)具有抗阻塞、抗误码的鲁棒性H.264具有优异的压缩性能、良好的网络亲和性•基于DSP的采用H.264编码的可视电话有重要应用价值H.264/AVC的应用前景视频点播与流媒体服务应用流媒体技术的电视点播(VOD)有迅速发展•利用宽带上网进行VOD多媒体消息服务短信市场正方兴未艾,相信多媒体短信也将有巨大发展交互式数字存储设备蓝光Blu-RayH.264/AVC的相关产品高清DVD、数字电视1080p,60Hz蓝光DVD•25/50GBofstorage•4hoursofHDvideoH.264/AVC和WindowsMediaVideo9相关机顶盒产品已经出现H.264/AVC的相关产品H.264/AVC的相关产品H.264/AVC的相关产品H.264/AVC定义的档次和级别H.264主要支持4:2:0格式的连续或隔行视频的编解码,4:2:2和4:4:4可作为额外的参考信息参数;根据应用领域不同,制定了不同的算法集合和技术限定,共分为3个档次:基本档、主档和扩展档;在每一档次设置了不同的参数,每个档次下面又划分为不同的等级;基本档是扩展档的子集,但不是主档的子集。H.264/AVC定义的档次和级别H.264/AVC视频编码和解码档次技术特点典型应用基本档利用I片和P片支持帧内和帧间编码,支持利用基于上下文的自适应变长编码进行熵编码;支持灵活的宏块组织顺序;片之间是相互独立的可任意顺序传输到解码端视频会话、如会议电视、可视电话、远程医疗、远程教学等主档支持隔行视频,采用B片的帧间编码和加权预测的帧内编码;采用基于上下文的自适应算数编码消费电子应用,如数字电视广播、数字视频存储等扩展档支持码流之间的有效切换(SP和SI片)、改进抗误码性能;不支持隔行视频和基于上下文的自适应算数编码网络视频流,如视频点播、流媒体等H.264/AVC的分层设计H.264标准从概念上将编码结构分为两层:上层为视频编码层(VCL:VideoCodingLayer)负责高效的视频内容表示底层为网络提取层(NAL:NetworkAbstractionLayer)负责以网络所要求的恰当的方式对数据进行打包和传送。在VCL和NAL之间定义了一个基于分组方式的接口,高编码效率和网络友好性的任务分别由VCL和NAL来完成。H.264/AVC的分层设计H.264/AVC的分层设计视频编码层负责完成高效率的视频压缩任务,网络提取层将视频编码层从具体的传输层中抽象出来,负责解决网络的适配问题,即根据使用环境对不同网络采用最为合适的方式对数据进行打包和传送,以使得码流对各类信道都具有良好的适应能力;对上层,从视频编码层获得数据,包括头信息、视频压缩数据信息;对下层,依据具体传输网络的特性对数据进行封装,包括成帧、发送信号至逻辑信道、利用同步信息等,定义适合传输层或存储介质需要的数据格式,提供头信息,将视频编码数据正确的映射到H.323、H.324等具体的传输协议上,从而提供视频编码层与外部世界的接口。例如,NAL支持视频在电路交换信道上的传输格式,支持视频在Internet上利用RTP/UDP/IP传输的格式H.264/AVC编解码器的基本架构EntropyCodingDeq./Inv.TransformMotion-CompensatedPredictorControlDataQuant.Transf.coeffsMotionDataIntra/InterCoderControlDecoderMotionEstimatorTransform/Quantizer-InputVideoSignalDe-blockingFilterIntra-framePredictionOutputVideoSignal编解码流程主要包括5个部分:帧间和帧内预测、变换和反变换、量化和反量化、环路滤波、熵编码。H.264/AVC编解码器的基本架构仍然采用经典的运动补偿混合编码算法;编码图像分为3种:I帧、P帧和B帧;此外H.264还定义了新的SP帧和SI帧,用以实现不同的传输速率、不同图像质量码流间的快速切换以及信息丢失的快速恢复等功能;H.264将一视频图像编码成一个或多个片,一个片由一系列按光栅扫描顺序排列的宏块构成每片包含整数个宏块或一幅图像的全部宏块。片和片组片一个视频图像可编码成一个或更多个片,每片包含整数个宏块(MB),宏块数不固定目的:限制误码的扩散措施:编码片相互间独立,即某片的预测不能以其它片中的宏块为参考图像编码片共有5种不同类型:I片、P片、B片、SP片和SI片。SP(切换P)用于不同编码流之间的切换,它包含P和/或I宏块,是扩展档次中必须具有的切换。它包含了一种特殊类型的编码宏块,叫做SI宏块,SI也是扩展档次中的必备功能片的句法结构见图6.7。片头规定了片的类型,该片属于哪个图像,有关的参考图像等,片的数据包含一系列的编码MB,和/或跳编码(不编码)数据每个MB包含头单元和残差数据。片和片组片和片组片组一个编码图象中若干MB的一个子集,可包含一个或若干个片一个片组中,每片的MB按光栅扫描次序被编码,如果每幅图象仅取一个片组,则该图象中所有的MB均按光栅扫描次序被编码•除非使用了ASO(任意的片次序),即一个编码帧中的片之后可跟随任一解码程序的片还有一种片组,叫灵活宏块次序(FMO)•它用灵活的方法把编码MB序列映射到解码图象中MB的分配用MB到片组之间的映射来确定,它表示每一个MB属于哪个片组片和片组MB到片组的映射类型名称描述0交错MB游程被依次分配给每一块组(图8)1散乱每一片组中的MB被分散在整个图象中(图9)2前景和背景例见图103Box-out从帧的中心开始,产生一个箱子,其MB属于片组0,其它MB属于片组(图11)4光栅扫描片组0包含按光栅扫描次序从顶-左的所有MB,其余MB属片组1(图11)5手绢片组0包含从顶-左垂直扫描次序的MB,其余MB属片组1(图11)6显式每一Mbslice_group_id,用于指明它的片组(即MB映射完全是用户定义的)片和片组交错型片组散乱型片组前景和背景型片组H.264/AVC的关键技术H.264的特征是加大了预测部分的比重,通过改善预测误差而提高编码效率;与H.263+和MPEG-4简单类相比,在视频图像质量相同的情况下,H.264最多能节省50%的码率;采用的新型编码技术主要包括如下:采用4×4像素块的整数变换,运算速度快,反变换过程中没有匹配错误问题;采用可变块运动估计/运动补偿技术,宏块尺寸从16×16,16×8,8×16,8×8,8×4,4×8,4×4像素块中可选,采用尺寸可变块的运动估计可以比单独16×16宏块的预测方法提高超过15%的编码率;H.264/AVC的关键技术运动矢量的精度为1/4或1/8像素,编码效率比整数精度的提高20%;采用多参考帧进行帧间预测,可节省5%~10%的传输码率,且有利于码流的错误恢复;采用空域帧内预测技术,有效降低了I帧编码的比特率;为消除块效应,采用基于4×4块边界的去块滤波器(环路滤波器),有效提高了图像的主观质量;采用通用可变长编码或基于上下文的自适应二进算术编码提高10%编码率;引入SP/SI帧类型,有效提高码流切换能力,对增强抗误码性也有一定优势。H.264/AVC的帧内预测技术子块内部和子块之间的像素具有空间冗余性;自然场景图像中的前景和背景通常具有一定的纹理特性,按其方向性可分为水平纹理、垂直纹理和倾斜纹理等;——为空域的帧内预测创造了条件H.264进一步利用了相邻像素的相关性,使用当前帧中已经编码重建的像素块来预测当前块。只对预测差值进行编码,这样就能用较少的比特数来表示像素块信息。H.264/AVC的帧内预测技术MPEG-1/2帧内编码采用DCT、量化和熵编码;H.263+和MPEG-4中I帧采用基于频域的帧内预测;H.264基于空间的像素值进行预测,对于每个4×4块每个像素可用17个最接近的先前已编码像素的不同加权和来预测。H.264对亮度分量(两种预测模式)和色度分量(一种预测模式)设定不同预测方案,独立实施预测。各预测模式中详细定义了多种预测选项适应不同纹理特性的图像子块。H.264/AVC的帧内预测技术在帧内预测模式中,预测块P是基于已编码重建块和当前块形成的。对亮度像素而言,P块用于4×4子块或者16×16宏块的相关操作。4×4亮度子块有9种可选预测模式,独立预测每一个4×4亮度子块,适用于带有大量细节的图像编码;16×16亮度块有4种预测模式,预测整个16×16亮度块,适用于平坦区域图像编码;色度块也有4种预测模式类似于16×16亮度块预测模式编码器通常选择使P块和编码块之间差异最小的预测模式。H.264/AVC的帧内预测技术左图是需编码的QCIF视频帧。右图是根据最佳模式而得的预测亮度P帧,该模式使得编码信息量最小。H.264/AVC的帧内预测技术EntropyCodingDeq./Inv.TransformMotion-CompensatedPredictorControlDataQuant.Transf.coeffsMotionDataIntra/InterCoder