晋州外贸网站建设,海外运营是做什么的,抖音代运营美发,网站sem优化怎么做HEVC标准概览HEVC#xff08;高效视频编码标准#xff09;是ITU-T VCEG#xff08;国际电联电信标准化部视频编码组#xff09;与ISO/IEC MPEG#xff08;国际标准化组织国际电工委员会视频标准化组#xff09;的合作组织JCT-VC最新项目。ITU-T和ISO/IEC计划在2013年1月共…HEVC标准概览HEVC高效视频编码标准是ITU-T VCEG国际电联电信标准化部视频编码组与ISO/IEC MPEG国际标准化组织国际电工委员会视频标准化组的合作组织JCT-VC最新项目。ITU-T和ISO/IEC计划在2013年1月共同发布第一个版本译者按ITU-T已经在2013-01-25发布标准可见JCT-VC草案10。标准将会包含一系列的扩展包括高精度色彩空间的支持、可伸缩编码SVC、3D与多视角视频。ISO/IEC将会把HEVC作为MPEG-H标准的第二部分ISO/IEC 23008-2ITU-T则会将其作为ITU-T的推荐标准 —— H.265。在视频编码领域ITU-T开发了H.261和H.263ISO/IEC开发了MPEG-1和MPEG-4 Visual。它们共同开发的H.262/MPEG-2和H.264/MPEG-4 AVC标准产生了极大的影响被广泛应用在各种产品中对我们的生活产生了深刻影响。视频编码技术的发展一直致力于追求更高的压缩率也不断增强其它特性如恶劣网络下的传输同时考量实现复杂度以及同时代数字设备的计算能力以期能够广泛应用。HEVC主要在H.264/MPEG-4 AVC的基础上发展而来。H.264/AVC项目1999-2003年间启动2003-2009年间几经重要扩展目前已经在每个H.262/MPEG-2标准没有覆盖到的领域内取代了之前的标准成为了数字视频领域的使能技术。它的应用领域非常广包括有高清电视信号的卫星传输、有线传输和其他地面传输系统、视频录制和编辑、摄像机、安防、互联网、移动网络视频、蓝光光碟、视频聊天、视频会议和远程演示等等。如今视频服务越来越多样化高清视频不断增长甚至超高清视频4kx2k、8kx4k分辨率的需求也在逐步兴起。这些现实都在呼唤比H.264/AVC更高压缩效率的视频编码技术出现。尤其是超高分辨与3D和多视角复合使用的时候对更高压缩效率的需求是十分强烈的。更高质量和分辨率的追求也会逐步反映在移动设备上而只是目前来讲移动设备和平板电脑视频的流量对移动网络已经造成了沉重的负担。HEVC被设计来取代所有目前的H.264/AVC应用它专注于两个关键问题更高的视频分辨率和并行处理架构。它的码流尽量采用通用设计以能被所有应用使用而不是只是和特定应用或设备适配。与之前ITU-T和ISO/IEC开发的视频编码标准一样HEVC标准只包含码流的语法结构以及码流和解码视频间的映射关系。编码和解码的具体实现只要遵循标准中语法元素的语法语义和约束就可以与其它HEVC实现达成一致。标准最大限度给了具体实现以优化的自由方便厂商在质量、成本、推向市场的时机与其它因素间取舍。但也由于这样的自由度标准并无法保证端对端的分发质量标准完全允许粗糙与不完全的编码实现只要它遵循规范即可。为了帮助业界尽快理解新标准标准中不仅包含了文字描述也包含了一份参考的软件实现。这份代码曾用于标准开发过程中的研究它也可以用做通用的研究或是商业产品的基础。此外标准中还包含一套用于测试的数据集。HEVC标准概览二设计和技术要点HEVC的设计兼顾提高编码效率、降低传输压力、增强丢包容忍性、优化并行处理在内的多个目标。本章将简要描述HEVC实现这些目标的关键技术以及标准HEVC编码器的处理流程。解码流程和具体的语法会在之后的章节讨论。一、编解码层面HEVC的编码分层沿用了H.261以来的混合模式帧间预测、帧内预测、2D转换。下图表达了编码HEVC标准码流的基本过程。HEVC_flowHEVC标准编码过程大致如下帧首先被切分成多个块状区域分别传输给解码器。图像序列的第一个画面以及每一个可被拖放的帧只使用帧内预测编码只使用同一帧中其它区域进行预测不依赖其他帧。其它帧中的块大多数使用帧间预测编码过程包括选择预测模式、参考图像的运动数据和生成每个块的运动矢量MV。编码器和解码器通过旁路传输预测模式信息和运动矢量MV计算运动补偿进而重建帧间预测数据。帧内或帧间的预测结果和实际画面之间的残差数据经过空间-线性变换、采样、量化、熵编码后和预测信息一起传输。编码器会重复解码器的处理循环上图中灰色方框的部分以保证编解码双方对子序列作出一致的预测。但编码器量化的参数被解码器逆采样、逆转换还原后只能得到近似的残差。残差和预测的结果合并后会进入一或两个循环滤波器以去处块效应。最终得出的画面解码器的输出会存储在缓冲区中作为视频中其它图像预测参考。编解码帧序很可能会和从源下来的帧序不一样因此对解码器来说需要一段缓冲区来应对解码顺序码流顺序DTS和输出顺序显示顺序PTS间的差距。一般而言HEVC编码器输入都应该是逐行扫描的逐行源或去交错处理后的隔行源。HEVC的编码设计没有特意去支持隔行扫描因为隔行扫描已经不再用于最终显示在分发中使用隔行的场景也在大量减少。但HEVC提供了一个元数据让编码器可以声明这是一个按照场编码的隔行视频每帧中其实只有一个场每个画面中只有一半的信息。这样就简单而有效地降低了解码器支持隔行视频的复杂度。下面我们介绍一些HEVC混合编码特性中的要点。1) 编码树单元CTU和编码树块CTB前代标准中的核心编码层是宏块包含一个16×16的亮度块采样对于一般的yuv420而言会伴随两个8×8的色度块采样。类似结构在HEVC中被称作CTU但它的大小是可以由编码器设定的并且可以超越16×16。CTU由一个亮度CTB、几个色度CTB和一些关联的语法元素组成。亮度CTB的可选大小有16×16、32×32、64×64更大的块会有更好的压缩率。HEVC还支持使用树结构和四叉树将CTB切分为更小的块。2) 编码单元CU和编码块CBCTU中的四叉树确定了亮度和色度CB的大小和位置四叉树的根节点与CTU关联。亮度CB最大可以支持到亮度CTB的大小。把CTU切成亮度和色度CB的过程是一体的。一个亮度CB、两个色度CB和关联的语法元素构成一个CU。一个CTB可以只包含一个CU也可以包含好几个CU每一个CU都有一个分区关联的预测单元PU和一个变换树单元TU。3) 预测单元PU和预测块PB某帧图像采用帧内预测还是帧间预测是在CU层面决策的。PU分区结构的根也在CU层。根据预测决策的结果亮度和色度CB进一步拆分为亮度和色度PB。HEVC支持从4×4到64×64大小的PB。4) 变换单元TU和变换块TB预测残差使用块变换编码。TU树结构的根在CU层面。亮度CB的残差可能和亮度TB完全一样或者进一步切分为更小的亮度TB。色度TB也是一样的。4×4、8×8、16×16、32×32的TB都各自定义了近似DCT变换的基本整型方法。对于4×4的亮度帧内预测的残差变换还有一个DCT变换表衍生的整型变换供选择。5) 运动矢量标准中采用了基于邻近PB和参考帧数据来预测方向的高级运动矢量预测AMVP。MV编码还可以使用一种允许继承邻近PB的MV的合并模式。此外HEVC中还包含有一个增强版的H.264/AVC直接运动预测。6) 运动补偿MV使用四分之一采样预测。分级采样的插值使用7阶或8阶的滤波器H.264/AVC中插值使用二分之一采样的6阶滤波器和四分之一采样的线性插值。和H.264/AVC一样HEVC也使用多参考帧。每一个PB可以根据单向或者双向预测传送一个或者两个运动矢量。同H.264/AVC一样预测信号上可以附加采样和偏移以声明预测权重。7) 帧内预测不使用帧间预测时就只能基于邻近的块来做空间上的帧内预测。HEVC的帧内预测支持33个方向模式H.264/AVC中是8个。HEVC还设计了增强的二维变换和可选的DC预测模式。需要由预先解码出的邻近PB计算得出最优的帧内预测模式。8) 量化控制和H.264/AVC一样HEVC也使用URQ一致量化还原。由于HEVC引入了更多的变换块所以量化参数矩阵也随之增多。9) 熵编码HEVC使用CABAC来做熵编码。和H.264/AVC中的CABAC相比得益于新引入的并行处理架构速度、压缩率和内存占用等方面均得到了大幅改善。10) 内置环路滤波器和H.264/AVC一样HEVC的帧间预测循环中也内置去除块效应的滤波器。相比H.264/AVCHEVC的设计更重视简化决策和滤波器的流程并且为并行处理而优化。11) 采样自适应偏移SAO帧间预测循环的去块效应滤波器之后引入了一个非线性的幅值映射的流程。主要目的是通过编码器端的直方图分析产出一些参数以增强解码器端的幅值信号还原。二、语法层面H.264/AVC以来的语法基本得到了保留HEVC在其基础上加入了不少为应用多样性及网络丢包而设计的特性。1) 参数集结构能被多个区块共享的解码信息包含在参数集中。这个结构负责保证把必不可少的解码信息传输到解码端。它由H.264/AVC中的图像序列参数集扩展而来在HEVC中被称为VPS。2) NAL语法单元每个语法结构都会被放进一个叫做NAL网络抽象层中的逻辑上的数据包中。这个包的包头中有两个字节表明了它装载的是什么用途的数据用于判断是否需要重传。3) 片可以不依赖同帧中的其它数据独立进行预测、残差重建、熵编码的部分被称为“片”。片可以是一个帧也可以只是一个帧中的一部分。片的主要作用之一是在丢包时同步用。在包式传输中一个片可以包含的数据量是被严格限制的在这个限制内调整片内包含的CTU数量可以有效地最小化包传输产生的额外开销。4) 增强信息SEI和视频可用性信息VUISEI和VUI用于存储视频元数据比如说时间戳、使用的色彩空间、3D填充的方式等等。三、并行化设计和片的改良最后要介绍的是HEVC中增强的并行处理架构和为包传输而改良的片结构。这两个特性可能会在某些应用中十分有用具体实现可以考量自己的情况采用它们。1) 并行块TileHEVC定义了一个可选的方式可以把一帧图像分割成并行块。并行块的主要目的是在增强并行处理的能力同时又不引入新的错误扩散。并行块是一些在一帧图像内使用一些共有的信息编码而成但可以独立解码的区域。一般的做法是将图像切割成包含大体相同数量CTU的并行块。并行块的引入使得简单粗粒度的并行化处理成为可能线程之间将不再需要考虑复杂的同步和锁。tiles2) 错峰并行处理WPP主要用于熵编码。当WPP开启时片先被分成数个CTU行。第一行正常处理第二行在第一行处理完2个CTU后开始处理第三行在第二行处理完2个CTU后开始处理。每一行相对前一行都有2个CTU的延迟。WPP提供了一种在适当的层级上比如说片并行化的方式。WPP可以提供比并行块更好的压缩效率而且不会引入块效应。wavefront3) 依赖更小片Dependent slice segments这个设计允许数据与错峰并行处理或者并行块关联起来在碎片化的包传输网络中相对于一次编码一整片而言这种做法可以更快进入解码流程从而降低延迟。与错峰并行处理一起使用用时它也需要类似错峰的机制。这项设计尤为适合低延迟要求下的并行处理。接下来的两章里我们将会把关键特性的细节进一步展开来讲。HEVC标准概览三高层语法HEVC从H.264/AVC的NAL网络抽象层继承了大量的语法元素。NAL负责把视频编码层的数据映射到RTP/IP、ISO MP4、H.222.0/MPEG-2等视频传输层上并提供丢包处理的框架。本章节不复述NAL单元、参数集、存取单元、码流格式、包格式等基本概念。NAL单元根据是否装载有视频编码数据分为VCL和non-VCL两类。为了优化任意点解码和解码初始化HEVC标准中根据不同的视频种类进一步细分出子类。下表列举了HEVC中NAL单元的种类及用途。nal下面我们介绍几个HEVC在语法上的新特性一、任意点解码和码流拼接H.264/AVC中码流必须从一个包含关键帧的IDR单元开始它必须不依赖NAL中的前置的包就可以独立解码。IDR是封闭GOPgroup of pictures的标志性组成部分。新的纯随机读取CRA语法定义了如何使用处于随机读取点RAP位置的关键帧。比如说告诉解码器从一个临时有效的位置直接开始解码忽略之前的视频数据这种做法被称作开放式的GOP操作。随机位置读取的支持对频道切换、拖动操作和动态流服务是十分关键的。某些解码顺序在CRA帧之后显示顺序在CRA帧之前的帧可能会参考解码器buffer中还不存在的帧于是这些解码器无法解码的帧就只能被丢弃。基于这种情况这些帧被定义为拖动可跳过的前置帧RASL。不同的码流之间切换可以通过断点连接帧BLA来拼接。简单的把需要切换的码流的RAP帧标记为BLA放到当前帧的下一个CRA帧的地方然后传输新码流就可以完成码流拼接的工作。RAP帧可以是IDR、CRA、BLA帧CRA和BLA的后面都可能跟随着RASL帧BLA的NAL单元的标记可定。BLA帧之后的RASL帧解码器必须抛弃因为它们可能参考了拼接前源码流的帧导致无法解码。还有一种解码顺序在RAP帧之后显示顺序在RAP帧之前的帧叫做拖动可解码的前置帧RADL这种帧不会参考解码顺序在RAP之前的帧。RASL和RADL可以统称为前置帧LP。解码和显示顺序都在RAP帧之后的帧叫做后置帧它们不可以将LP作为它们的参考。二、临时分层编码类似H.264/AVC的可伸缩编码扩展SVC的功能HEVC可以在NAL的头上临时定一个分级预测的层。这样就可以只解析到NAL层面就实现可伸缩性。某些情况下针对同一个码流解码器可以自主决定临时解码层的数量。从低级子层到更高级子层切换的操作可以在临时子层帧TSA和步进临时子层帧STSA完成。TSA点允许切换到比当前子层高的任意子层STSA只允许切换到只比当前子层高一级的下一层除非更高的层也包含TSA或者STSA帧。三、扩展参数集新加入VPS元数据描述包括临时层级依赖在内的编码视频的全部特征。主要目的是增强在系统层的兼容扩展性。比如说对未来可伸缩编码或者多视角的视频需要被旧的解码器解码时那么它就可以方便地忽略那些高级解码器才需要的码流扩展信息。四、参考帧集和参考帧列表为了管理解码多参考帧已解码好的帧被放在解码帧缓冲区DPB中并被详细标记以供码流中后续的帧参考。每个片的头部都会包含一个帧序计数器POC以定位那些帧。保留下来用以参考的帧集合叫做参考帧集合RPS。下图演示了一小段码流的POC值、解码顺序和RPS。DPSH.264/AVC的DPB中有两个帧的列表分别叫做参考帧列表0和参考帧列表1。定位具体帧的索引叫做参考帧索引如果列表中只有一个帧则参考帧索引为0不在码流中传输。单向预测时可以从0和1两个列表中选出一个帧。双向预测时则会从两个列表中各选一帧。定位RPS和将参考帧列表用于帧间参考的语法比前代H.264/AVC的设计对丢包的兼容性更好在拖动和其它播放模式下快进、快退、动态码流切换等也能工作地更好。这项优化的关键是让语法更加明确可展现避免了之前对解码器解码过程中的中间状态和临时值的依赖。而且还比H.264/AVC中的语法更加简化了。HEVC标准概览五Profile、Tier和Level一、Profile、Tier和Level的概念这三个概念主要用于需要类似功能的不同实现之间的沟通。Profile指出码流中使用了哪些编码工具和算法。Level指出一些对解码端的负载和内存占用影响较大的关键参数约束。主要包括采样率、分辨率、最大码率最小压缩率DPB容量CPB解码缓冲区大小。在HEVC的设计中应用可以只依据最大的码率和CPB大小就可以区分。为了达成这个效果有些Level定义了两个Tier——Main Tier用于大多数应用High Tier用于那些最苛刻的应用。遵守某Level和tier的解码器可以解码所有等于或低于这个Level和Tier的码流。支持某Profile的解码器必须支持此Profile中的所有特性。编码器不必实现Profile中所有的特性但产出的码流必须是遵守标准的比如说要遵守与之兼容的解码器的约束。二、HEVC中的Profile和Level按照进度2013年1月有三个Profile将被写入标准分别是Main、Main10和Main Still Picture针对不同的应用需求。减少Profile的数量可以增强设备通用性的。未来还会促进视频服务一定程度上的融合比如说广播、移动、流这些服务会逐渐汇聚到能全部支持它们的设备上。本文之前讨论的编码工具和高层语法加上下面的限制条件组成了三个Profile的草案。1) 只支持4:2:0色度采样2) 编码器使用多tile时不能同时使用错峰并行处理。而且每个tile至少有256亮度采样宽64亮度采样高。3) 在Main和Main Still Picture这两个Profile中支持8位深度的采样Main10支持10位采样深度。4) Main Still Picture中全部的码流只能一帧编码的视频意即禁用帧间预测。下表中13个Level计划包含在标准第一版中它们的分辨率从176×144QCIF到7680×43208kx4k。图像的宽和高均需小于等于8倍的MaxLumaPS再开方。MaxLumaPS是下图中的最大亮度帧尺寸避免极端尺寸时解码器产生错误。level有8个Level支持2个TierLevel4及以上。除了Level1偏高要求350,000b之外CPB容量均等于最大码率的1秒容量。当使用Level最大的分辨率时CPB最大容量为6帧图像包括当前帧、用于参考的帧和准备输出的帧。如果降低分辨率的话CPB可以容纳16帧图像取决与具体采用的分辨率。Level还约束了每帧中垂直和水平方向tile的最大数量以及每秒最大的tile数量HEVC标准概览六历史沿革ITU-T VCEG和ISO/IEC MPEG于2004年中完成了H.264/AVC的High Profile之后就开始着手准备下一代的标准。VCEG在2004年开始准备2005初确定关键技术方向KTA并开发了一个通用的KTA软件代码库。此代码库由H.264/AVC的参考软件joint modelJM开发而来它引入并验证了很多新技术。2005到2008年间MPEG开始探索显著提升编码效率的可能性。它组织了数个Workshop并在2009年4月为这些技术发布了一篇“征集证据”。随后专家开始观测征集而来的评估和测试结果。VCEG和MPEG分头调查后达成了现有编码标准的效率可以显著提升的共识。2010年1月两个组织联合建立了JCT-VC同时发表定义了未来标准概况的视频编码技术联合建议书CfP。2010年4月JCT-VC第1次会议项目名确定为HEVC研究了反馈给CfP的建议从数个有前途的技术建议中收集了一些元素产出了审议测试模型的第一个版本TMuC。会后实现了相应的代码库。一些关键性的技术已经在《IEEE 视频技术系统和电路汇报》里预先讨论了。虽然TMuC在前代标准基准上有显著的效率提升但在每个功能块中都存在多余的编码工具它还是一个来自各种贡献的简单集合体。2010年7月JCT-VC第2次会议开始通过测试TMuC每个组件的方式选择每个功能块所需编码工具的最小集。2010年10月JCT-VC第3次会议在详尽的组件测试的结果报告基础上完成了HEVC测试模型版本1HM 1和相应的HEVC标准草案1WD 1。和TMuC相比HM 1通过删除没必要的高复杂度的编码工具大大地简化了代码库。随后的研究中HM的编码工具被分为2类追求高效率或低复杂度的。JCT-VC它们分别建立了测试场景。下表简述了HM 1中这两个方向的编码工具。HMcodingtoolJCT-VC第4次到第11次会议中除了编码效率包括降低实现复杂度、统一编码工具、并行化设计等很多其它方面也被纳入研究范围。HEVC设计持续更新下高效率和低复杂度之间的差异逐渐缩小达成一个统一的Main Profile。下表简述了配置为高效率的HM 1和目前HEVC标准中的编码工具。HEVCcodingtool2012年2月JCT-VC第8次会议产出了HEVC标准草案第6版ISO/IEC草案委员会投票通过。2012年7月JCT-VC第10次会议草案的第8个版本发布作为国际标准草案投票最终决定2013年1月作为ITU-T和ISO/IEC的最终国际标准草案发布。JCT-VC的母体目前已经在探索和准备HEVC未来的扩展。很可能支持更高精度的采样深度、增强的色彩采样、可伸缩编码、3D和多视角视频编码以及为高级的3D显示器深度映射编码等特性。HEVC标准概览七总结ITU-T VCEG和ISO/IEC MPEG合作开发了HEVC标准当中包含了现代的高级视频编码技术。HEVC视频编码层的基本设计依然是传统基于块的运动补偿混合编码但相对前代标准作出了许多重要改进。新特性共同发挥作用时HEVC相对前代标准可以节省50%的码率针对高分辨率视频尤为有效。编码性能上的细节可以参见J.-R. Ohm、G. J. Sullivan、H. Schwarz, T. K. Tan和T. Wiegand的《Comparison of the coding efficiency of video coding standards— Including High Efficiency Video Coding (HEVC)》。实现复杂度的分析超出了本文的范围。但现代处理器技术之下解码器的复杂度并不是主要的负担相对H.264/AVC编码器的复杂度也是可控的。实现复杂度上的细节可以参见F. Bossen、B. Bross、K. Sühring和D. Flynn的《HEVC complexity and implementation analysis》。标准的更多信息可以在JCT-VC的文档管理系统http://phenix.int-evry.fr/jct/查阅。致谢感谢ITU-T VCEG、ISO/IEC MPEG和JCT-VC专家们的贡献。