高效视频编码(HEVC)标准概述(二)

II. HEVC 编码设计和特性的要点
HEVC标准是为达到如下多个目标而设计的:编码效率,易于整合到传输系统,数据丢失的恢复,以及并行处理能力。下列各段简要描述标准所设计的用以实现上述目标的关键元素, 以及可以产生有效码流的典型编码器操作。各元素的相关句法和解码过程的更多细节将在第III、IV节中给出。
A. 视频编码层
    HEVC的视频编码层采用了自H.261以来所有的视频压缩标准都使用的相同的混合方式(帧间、帧内预测和二维变换编码)。图1描绘出一个混合视频编码器的方框图,通过途中所示流程可以创建出一个符合HEVC标准的码流。

一个能产生出HEVC兼容码流的典型编码操作如下。每帧图像都被分割为块形区域,分割结果连同具体的分割方法一起传送到解码器。整个视频序列的第一帧图像(以及切入视频的每个新的随机访问点的第一帧图像)必须只以帧内预测方法(即只使用同一图像内空域上相邻的某些数据进行预测,而不依赖其他图像进行预测)进行编码。而对于视频序列中的其他图像(包括2个随机访问点间的图像)而言,则绝大多数块都采用帧间预测这种时域预测方法。帧间预测的编码过程包括在既定的参考图像中选择运动数据和运动矢量(MV),并用之对每个块的样本进行预测。编码器和解码器通过MV和作为边信息传送的模式判决数据进行运动补偿(MC),产生相同的帧间预测信号。

 

帧内或帧间预测的残差信号,亦即原始块与其预测块之间的差值,需经过一个线性空域变换。变换后的系数经过缩放、量化、熵编码,然后与预测信息一起送出。

编码器重复了解码器的操作过程(如图1中带灰色阴影各方框所示),以便编解码双方能对后续数据产生相同的预测结果。由此,量化后系数被反乘、反变换后得到解码后的残差近似值。随后,残差加上预测值,所得之和被送入一个或二个环路滤波器以平滑由块操作和量化所导致的假象。编码器最后解码出的图像(与解码器的输出完全相同)被存入解码图像缓冲区,用于后续图像的预测。通常,图像在编解码过程中的顺序与其在源视频中的顺序并不相同,因此有必要区分解码器的解码顺序(亦即码流顺序)和输出顺序(亦即显示顺序)。

    通常HEVC认为输入的视频素材是顺序扫描图像(无论输入的是原始视频还是经过去隔行操作的视频)。HEVC标准中并未出现明确支持隔行扫描的编码特性,因为隔行扫描已不再用于显示且实际上也很少用于视频发布。不过,HEVC中提供了一个元数据句法,允许编码器表明:隔行扫描视频是被按照每场(亦即每个视频帧的奇数行或偶数行构成的图像)作为一幅独立图像分别进行编码,还是整个隔行扫描帧一起编码。这就为隔行视频的编码提供了一个高效的方式,而且解码器也无需专门为隔行视频提供特殊的解码过程。

下面重点介绍HEVC混合视频编码所使用的各种编码特性。

1)编码树单元和编码树块(CTBCoding Tree Block))结构:之前的标准中,编码层的核心是宏块(macroblock),在常规的4:2:0 颜色采样格式下,一个宏块包含116×16的亮度块和2个对应的8×8色度块;而在HEVC中类似的核心结构称为编码树单元(CTUCoding Tree Unit),其尺寸由编码器决定,并且可以比传统的宏块更大。一个CTU包含1个亮度CTB和对应的多个色度CTB,还有其它句法元素。亮度CTB的尺寸可以用L ×L表示,其中L = 163264L越大压缩效率越高。HEVC 还支持使用一种树状结构和类似四叉树的信令将CTB分割为更小的块[8]

 

2)编码单元(CUCoding unit)和编码块(CBcoding block):CTU四叉树的句法说明了各亮度和色度CB的尺寸和位置。四叉树的根节点代表CTU。因此,亮度CTB的尺寸也就是亮度CB的最大尺寸。CTU分离为亮度CB和色度CB的方式,是放在一起表述的。一个亮度CB通常对应2个色度CB,三者的数据以及相关联的句法规则,构成了一个编码单元(CUcoding unit)。一个CTB可以只含有1CU,也可以分割构成多个CU,每个CU 都有一个对应的分割方法用以指示如何将其分割为预测单元(PUprediction unit),同时每个CU也拥有一棵变换树,用以指示如何将其分离为变换单元(TUtransform unit)。

3)预测单元和预测块(PBprediction block):判决预测是采取帧间模式还是帧内模式,是在CU级进行的。PU分割结构的根部位于CU级上。根据基本的预测类型判决,CU的各亮度和色度CB被进一步分割为各种尺寸并利用对应的亮度和色度PB进行预测。HEVC支持从64 ×644×4的多种PB尺寸。

4)变换单元和变换块(TBtransform block):预测得到的残差使用块变换进行编码。TU树结构的根部位于CU级上。无论亮度CB还是色度CB,均既可以整个作为一个TB进行变换,也可以进一步分割为多个较小的TB进行变换。HEVC支持4TB方阵:4×48×816×16以及32×32,并为每种方阵都定义了与离散余弦变换DCTdiscrete cosine transform)类似的整数基函数。对于亮度分量经过帧内预测得到的残差,如果是进行4×4变换的话,则还有另一种由离散正弦变换(DSTdiscrete sine transform)演化而来的整数变换方案可供选择。

5)运动矢量信令(signaling):采用高级运动矢量预测(AMVPAdvanced motion vector prediction),从参考图像和相邻PB的几个最有可能的备选项中导出MV。也可以使用一种混合模式进行MV编码,该模式允许从时域或空域上相邻的PB中继承MV。此外,还在H.264/MPEG-4 AVC的基础上提出了改进的跳过(skipped)模式和运动直接推理(direct motion inference)模式。

 

    6)运动补偿:MV的最高精度为1/4像素,非整数像素位置的样本值采用7抽头或8抽头滤波器插值而来(相比之下,H.264/MPEG-4 AVC是先进行6抽头插值得到半像素位置的样本值,进而对此结果再进行线性插值得到1/4像素位置的样本值)。H.264/MPEG-4 AVC相同的是,HEVC也采用多参考帧机制。对应于单向预测和双向预测,每个PB可以有1个或2个运动矢量。和H.264/MPEG-4 AVC一样,HEVC也有加权预测模式,可以对预测信号进行缩放和补偿(offset)。

    7)帧内预测:已解码的邻近块的边界样本被用为非帧间预测的图像区域的参考数据。帧内预测支持33种定向模式(H.264/MPEG-4 AVC8种)外加平面(适用于平面)和直流(单调)等预测模式。

    8)量化的控制:HEVCH.264/MPEG-4 AVC一样,也采用统一的重建量化方法(URQuniform reconstruction quantization),并且针对各种变换块的不同尺寸支持多种量化缩放矩阵。

 

    9)熵编码:熵编码采用上下文自适应算术编码(CABACContext adaptive binary arithmetic coding)。该方案和H.264/MPEG-4 AVCCABAC类似,只是做了几处改进,以提高其吞吐速度(特别针对并行处理架构)、压缩性能和减少其上下文所占的内存空间。

    10)环内(In-loop)消块滤波:在帧间预测的环路上有一个与H.264/MPEG-4 AVC相似的消块滤波器。不过,设计上对其判决策略和滤波过程做了简化,从而使该滤波器更适于并行操作。

    11)样本自适应补偿(SAOSample adaptive offset):在帧间预测的环路上经过消块滤波后,还引入一种非线性幅度映射。其目的是通过一个查找表来更好地重建出原始信号幅值,该表需要用到几个额外参数来描述,这些参数是编码器端通过直方图分析选定的。

 

 

B.高阶句法结构

HEVC标准在设计方面有许多创新,提高了在各类应用和网络环境中操作的灵活性以及数据丢失恢复的鲁棒性。不过,H.264/MPEG-4 AVC标准所用的高阶句法结构基本上保留了下来,它包括以下几个特性:

    1)参数集结构:参数集包含通用于解码过程的待解视频的各个方面的信息。它为解码过程中重要数据的传递提供了一个健壮的机制。H.264/MPEG-4 AVC的序列参数集和图像参数集概念被增强为一个新的视频参数集(VPSvideo parameter set)结构。

    2NAL单元句法结构:每个句法结构被放入一个称为网络抽象层(NALnetwork abstraction layer)单元的逻辑数据包中。使用NAL单元的2字节头部信息,一般都可以便捷地确定对应的载荷数据的用途。

    3)片(slice):片是一种数据结构,从熵编码、信号预测和残差信号重建的角度来说,片可以独立地被解出来,而不需依赖于同一图像的其他片。片可以包含整幅图像,也可以是图像中的某一区域。使用片的主要目的之一,是在发生数据丢失后能够重新同步。在包传输系统中,片内载荷比特数的最大值通常是受到限制的,所以片中CTU的数目也经常变化以令包的开销最小,从而使每个包的大小都控制在限制范围内。

    4)补充增强信息(SEIsupplemental enhancement information)和视频使用信息(VUIvideo usability information)元数据:句法支持包括SEIVUI在内的各类元数据。这些数据提供的信息包括:视频图像的记时、视频信号所用颜色空间的适当说明、3-D立体视角帧的信息以及其他的显示隐含信息等等。

 

C. 并行解码句法和改进的片结构

    最后介绍HEVC标准的四(译者注:其实只有三个,此处应为笔误)个新特性,这些特性用于增强并行处理能力和改进片数据的结构以使其适于打包。每种特性适用于特定的应用环境,并且通常是由编码器或解码器的实现者来决定是否及如何利用这些新特性。

    1)砖瓦(tile):HEVC提供一种分割选择,可以将图像分割为规则的区域,这种区域称为砖瓦。设置砖瓦的主要目的是增强并行处理能力而非针对错误恢复。砖瓦是使用某些共享的头信息进行编码并可被独立解码的图像区域。砖瓦还可被用于视频图像本帧内的空域随机访问。通常一帧图像的砖瓦配置方案应包括如何将图像分割为规则区域,以使每一砖瓦中所包含的CTU数目大致相当。砖瓦机制只是在一个较为粗放(图像/子图像)的层面上提供并行能力,因此使用时无需进行复杂的线程同步。

2)波阵面并行处理:当执行波阵面并行处理(WPPwavefront parallel processing)时,片会被分成以CTU为单位的行。第1行按照常规方式处理,第2行可在第1行仅编码完2CTU之后就开始编码,第3行可在第2行仅编码完2CTU之后就开始编码,依此类推。由此可推断出上述各行的熵编码器的上下文模型也有一个2-CTU的时间间隔。WPP在一个较为精细的层面亦即片的层面上提供并行处理形式。WPP通常能比砖瓦提供更好的压缩性能(同时避免砖瓦所可能引起的虚拟假象)。

3)依赖性片段:依赖性片段是这样一种结构,它允许特定波阵面入口点或砖瓦的相关数据分开在不同的NAL单元中传输,这实际上使得这些数据比之整片编码的数据,可更快地以细碎的数据包的形式供系统使用。波阵面入口点的依赖性片段,只有当另一片段的解码过程已经至少完成一部分之后,才可以进行解码。依赖性片段主要用在低延时编码中,因为在这类编码过程中使用其他并行工具会对压缩性能产生不利影响。

接下来的2节将更为详细地描述这些主要特性。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值