HEVC编码系统和结构浅析

为了满足海量视频数据的传输和存储要求,在H.264/AVC视频编码标准获得巨大成功后,新一代高效视频编码(High Efficiency Video Coding. HEVC)国际标准在2013年4月由视频编码联合协作小组(Joint Collaborative Team on Video Coding)正式发布。HEVC在AVC的基础上进行扩展和改进,其主要技术特点和优势主要表现在:

    1) 核心目标优势:在H.264的基础上,保证相同视频质量的前提下,视频的码率减少50%;

    2) 编码框架优势:沿用H.264的混合编码框架,设计多种新的编码工具和技术,提高了视频压缩效率;

    3) 技术创新:灵活的图像四叉树结构和条、片划分技术,多角度帧内预测,高精度运动补偿等;

下面从HEVC的编码系统和结构等方面对其进行简单的介绍。

1、HEVC的编解码系统

为了更好地理解HEVC的编码方式,可以将他们划分成两部分:一部分是关于视频编码的技术和数据,从通信分层的角度理解这部分属于底层数据信息,称之为视频编码层(Video Coding Layer,VCL);另外一部分是关于网络传输和视频应用方面,属于高层信息,称之为网络提取层(Network Abstraction Layer,NAL)。

图片

    原始视频经过VCL层,被编码成视频数据,然后经过NAL层,封装成一个个NAL包以适应不同网络的传输。

    而网络传输NAL层与视频细节无关,用于网络传输和视频应用,其主要实现功能是将VCL层产生的语法结构放入网络提取层NAL单元的数据包中;

图片
图2:HEVC编码框图

    HEVC的NAL单元头用于标识其所装载的数据类型;每个NAL单元包含整数个字节,其中前2个字节为NAL单元头,其余字节为载荷数据;载荷数据可以是用于一幅或多幅图像控制信息的参数集,也可以是图像中的编码数据。NAL单元根据是否装载有编码视频或者其他相关数据分为VCL NAL和Non-VCL NAL单元两类。

    传输到解码端的NAL单元被解码器解码为重建图像输出显示或存储,编码器和解码器端各有一个解码图像缓存(DPB),用于存储已解码数据,为当前图像的预测提供参考。

图片
图3:NAL单元示意图

2、HEVC的三种编码结构

对应不同的场合,HEVC设立了GOP(Group of Pictures)的三种编码结构,分别为全帧内、低时延和随机接入编码:

    全帧内编码:每帧图像按照帧内方式进行空间预测编码,不使用时间参考值,从而每帧图像可以独立解码;

    低时延编码:低时延编码中,只有第一帧按照帧内方式进行编码,并且为即时解码帧IDR帧,随后都作为普通的P和B帧进行编码;

    随机接入编码:主要是等级为B帧结构,周期性地插入一纯随机接入CRA帧,对于随机接入点的解码可以独立进行,不需要参考比特流中前面已经解码的图像。HEVC设置随机接入方式,从而更有利于实现信道转换、搜索以及交互流媒体服务等应用。

    在H264标准中所有GOP都是独立解码的,这里GOP可以理解为两个I帧之间的间隔,GOP之间相互独立,即他们都是“封闭”的,也可以称之为close GOP;

    为了进一步提升编码效率,HEVC的随机接入编码采用了Open GOP的结构,在解码过程允许参考其他GOP中的图像数据。这里定义了一种位于随机接入点RAP图像的纯随机接入图像CRA,它跟I帧和IDR一样可以独立解码;不同于I帧和IDR帧,它允许解码顺序在其之后但是显示顺序在其之前的帧使用CRA及之前的帧作为参考图像;

    如果在解码侧,利用CRA图像进行随机接入,那么解码顺序和输出顺序都在其之后的图像可以正常解码,由此可以保证纯随机接入后的码流正常解码。

图片
图4:Close GOP示意图
图片
图5:Open GOP 示意图

3 HEVC的四叉树划分

在图像分块方面,HEVC的一个重要革新之处是为预测和变换编码对图像进行了基于四叉树的划分。HEVC将视频序列分为若干图像组GOP,每组由多帧连续图像组成。帧是四叉树划分的基本单元,每一帧图像经过四叉树划分,形成覆盖全帧的多个方形编码树块(CTB)。CTB还可以划分为更小的编码块CB;CB是实施编码算法的基本单元,可以进一步划分为预测块(PB)和变换块(TB)。

图片
图6:HEVC编码顺序示意图

    HEVC将一幅图像帧划分为2Nx2N的方形编码树块CTB;同一位置的亮度CTB和两个色度CTB,加上相应的语法元素以及所包含的编码单元CU形成一编码树单元CTU;

    CTU按照四叉树结构分解为若干方形的编码单元CU,每个CU包含一个亮度编码块CB和两个色度编码块CB;CB可以进一步划分为一个或者多个预测块(PB)和变换块(TB),下图给出了一个CTB的划分示例。

图片
图7:CTB划分示意图

4 HEVC的条和片划分

HEVC的一帧图像可以被划分为条(slice)或者片(tile),条还可以再划分为分条(ss);条或片在HEVC图像结构中处于CTU的上一层,一个条或者分条、片均是由整数个相继排列的CTU组成的;

1)条的划分:

一帧图像可以分解为一个或若干个条,它是HEVC中独立的编码区域,每个条中包含若干个CTU,每个条可以独立的编码解码和重建。因为条之间的编码是独立的,一个传输错误最多只能影响该条内的传输,不会传到其他条,

在HEVC的码流中,每个条封装为一个NAL单元传输。

图片
图8:条的划分示例

2)片的划分:

HEVC中新引入了可选的片划分,用水平和垂直的若干条边界将图像帧划分为多个矩形区域,每个区域是一个片,同时也是独立的编码单元;HEVC引入片的目的是增强并行处理能力,而不是在提供差错鲁棒性。在HEVC中,允许条和片在同一帧中使用。

    片划分的引入可以使得图像有更高的空间相关性,进一步提升压缩率;除此之外有利于并行处理,并且可以支持感兴趣区域ROI编码。

图片
图9:片的划分示例

5 小结

从编码结构的角度来看,HEVC和H.264/AVC的结构基本相似,或者说是从它的基础上发展而来的。作为新一代的编码技术,HEVC在压缩率、图像质量、并行处理等方便具有无可比拟的优势。本文重点介绍了HEVC中的编码结构和设计,除此之外,HEVC在变换和量化、环路滤波、熵编码等技术要点也值得进一步的探讨和学习。

参考文献:

朱秀昌. H. 265/HEVC: 视频编码新标准及其扩展[M]. 电子工业出版社, 2016.

作者:赵璐

版权声明:本文内容转自互联网,本文观点仅代表作者本人。本站仅提供信息存储空间服务,所有权归原作者所有。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至1393616908@qq.com 举报,一经查实,本站将立刻删除。

(1)

相关推荐

发表回复

登录后才能评论