许珊珊,马幼鸣,顾长海
(1.北京理工大学 信息与电子学院,北京100081;2.北京中盛益华科技有限公司,北京 100098)
HEVC并行解码器设计
许珊珊1,马幼鸣1,顾长海2
(1.北京理工大学 信息与电子学院,北京100081;2.北京中盛益华科技有限公司,北京 100098)
新一代视频编码标准HEVC(High Efficiency Video Coding)主要面向高清及超高清视频编码,压缩效率相比之前的编码标准H.264有较大提高。但压缩效率的提高必然会带来计算的复杂化,为提高HEVC的解码效率,降低时延,提出了一种并行解码器架构。该并行解码器的设计是基于HEVC中熵片(Entropy slice)和波前并行处理(Wavefront Parallel Processing,WPP)技术的引入以及滤波器(Deblocking Filter)无相关性的特点。实验结果表明,该并行解码器能够充分利用硬件资源,提高解码效率。
HEVC;并行化;熵片;波前并行处理;滤波
High Efficiency Video Coding(HEVC)是由视频编码联合协作小组(Joint Collaborative Team on Video Coding,JCT-VC)制定的新一代视频编码标准[1],其目的是将码率相较H.264/AVC High Profile降低50%。HEVC最典型的应用是编码4K超高清分辨率视频,同时也支持其他普通高清视频。
2010年JCT正式发出提案征集[2],并在同年4月确定HEVC作为标准名称,公布测试软件HM(HEVC Model)和标准草案文本。此后举行了多次JCT会议,对HEVC的技术内容进行不断改进、增删和完善。2013年1月完成了HEVC的FD(Final Draft)版,并经表决通过成为正式国际标准。
HEVC采用与H.264相同的混合编码框架[1],图像帧的编码模式主要有帧内和帧间两种方式。帧内编码包括预测、变换、量化和熵编码等,帧间编码包括运动估计、运动补偿、变换、量化和熵编码等。在此编码框架下,HEVC的创新主要有:基于大尺寸四叉树块的编码结构,多角度帧内预测技术、自适应环路滤波技术等。
HEVC依然采用H.264所采用的分块编码方式,定义了编码块(Coding Tree Blocks,CTB)的概念,CTB的大小可以为16×16,32×32和64×64。CTB可以按照四叉树的形式进一步划分为编码单元CU(Coding Unit)。CU又可以被进一步划分为预测单元PU(Prediction Unit)和变换单元TU(Transform Unit)。
HEVC的帧内预测技术和H.264类似,采用多方向帧内预测方式消除图像的空间冗余。为了提高帧内预测的准确性,HEVC已将H.264中的8种预测方向扩张到33种。HEVC中的去块效应滤波器(Deblocking Filter)在H.264的基础上增加了自适应采样点补偿滤波(Sample Adaptive Offset,SAO)来减少重建图像的失真。
2.1 Tile
HEVC在slice的基础上引入Tile的概念[3]。Tile被定义为由图像中垂直和水平边界的交点所分割得到的矩形区域,如图1所示。1帧图像中的各个Tile在编码时共享头信息,每个Tile都是独立可解码的。在支持Tile的同时,HEVC同样支持Slice处理。在同1幅图像中,Slice和Tile可同时使用,且两者的分割互不干扰。1个Slice里可以有若干个Tile。
图1 Tile分割示意图
2.2 波前并行处理(WPP)
在HEVC 中,Tile 的引入使并行处理得以实现。但是,这种机制的引入在一定程度上是以提高编码的计算复杂度为代价的。这是由于在Tile处理过程中,边界间的预测依赖性被破坏,同时熵编码中用到的上下文模型需在每个Tile中都进行初始化,这些都在一定程度上对码率造成影响。为了解决这些问题,波前并行处理(Wavefront Parallel Processing,WPP)技术[3]被引入HEVC 标准中。波前处理是一种在不需要破坏预测依赖性前提下实现并行编解码的技术。当采用波前并行处理时,1个slice被分成若干行CTB。第一行CTB按正常方式处理,当第一行中有2个CTB完成处理时,开始并行处理第二行中的CTB,当第二行中处理完2个CTB中时,再开始并行处理第三行中的CTB,以此类推,如图2所示。需要完成上一行的2个CTB处理是因为帧内预测和运动矢量预测是基于当前CTB的上侧和左侧CTB实现的。熵编码参数的初始化所需要的信息是从这两个完全编码的CTB中得到的。WPP技术比Tile技术能提供更好的压缩效率,并且可以避免由于Tile的引入而造成的人为视觉效果。
图2 波前并行处理示意图
2.3 去块效应滤波器(Deblocking Filter)
去块效应滤波的作用是,消除经反量化和反变化后重建图像中由于预测误差产生的块效应,从而一方面改善图像的主观质量,另一方面减少预测误差[4]。
HEVC中的去块效应滤波包含对垂直边界的水平滤波和对水平边界的垂直滤波两部分。与H.264/AVC中4×4大小的滤波块不同,HEVC中滤波块的大小为8×8。滤波步骤如下[5]。
1)对垂直边界进行水平滤波。
(1)首先计算8×8滤波块中所有PU和TU的BS(Boundary Strength);
(2)如果BS>0,则对靠近边界的4个像素点判断其滤波模式,滤波模式[5]有weak filter,strong filter和no filter这3种,然后根据相应的滤波模式对其滤波。
2)对水平边界进行垂直滤波,滤波过程与水平滤波类似[6]。
8×8单元及边界示意图如图3所示。
图3 8×8单元其边界示意图
滤波过程最多能改变3个像素点的值,如图中的A55,A56,A57,A65,A66,A67,A75,A76,A77可能被修改。如图3所示滤波块的大小为8×8[7],因此在对垂直边界的水平滤波过程中,块与块之间并无数据重叠,即各个滤波块之间的数据没有依赖性,因此对各个滤波块的水平滤波可以并行进行。
对垂直边界的水平滤波有可能改变A55,A56,A57,A65,A66,A67,A75,A76,A77的值,而对水平边界的垂直滤波会用到这些数据,即垂直边界的水平滤波后的输出数据是水平边界的垂直滤波的输入数据,因此对水平边界的垂直滤波需在对垂直边界的水平滤波完成后进行[8]。
此论文中将HEVC解码分为两部分,第一部分为pixel decoding,即从entropy decoding到Deblocking filter之前的解码过程。第二部分为Deblocking filter。解码流程如图4所示。本文分别对这两部分做了并行化设计。
图4 HEVC解码器框图
3.1 Pixel decoding并行设计
因为WPP技术比Tile技术能提供更好的压缩效率,并且可以避免由于Tile的引入而造成的人为视觉效果的特点,本文利用HEVC中的WPP技术设计并行解码器结构。在多线程方面,本文采用线程池(Thread Pool)技术[9]。利用线程池可以减少创建和销毁线程的次数,每个工作线程都可以被重复利用,可执行多个任务。并行解码示意图如图5所示。
图5 Pixel decoding并行设计图
每一行中,解码CTB的顺序为从左向右,第N行CTB进行解码的触发条件为第N-1行已经解码完2个CTB。然后该行CTB便进入任务队列,等待工作线程对其解码。由于数据依赖性的特点,线程解码第N行第M个CTB的触发条件为第N-1行第M+2个CTB已经解码完毕。线程解码完一行CTB后,即转入任务队列中的其他行CTB进行解码。
3.2 Deblocking Filter并行设计
每一行CTB的Pixel Decoding过程结束后,即可进入Deblocking Filter阶段。根据图2所示数据依赖性的特点,第N-1行垂直边界的水平滤波输出数据会影响到第N行水平边界的垂直滤波输入数据,因此第N行水平边界的垂直滤波需在第N-1行垂直边界的水平滤波完成后进行。
线程执行步骤为:每个线程首先对第N行CTB的垂直边界进行水平滤波,完成后线程进入等待状态,使线程结束等待状态的条件为第N-1行CTB的垂直边界水平滤波完成,进而触发线程对第N行CTB的水平边界做垂直滤波。Deblocking Filter的并行设计图如图6所示。
图6 Deblocking Filter并行设计图
此论文中提出的HEVC并行解码器架构是在测试软件HM-9.0的基础上改进得到的。实验测试了用HM进行解码的帧率(Frame Per Second,FPS)以及本文中提出的并行解码器进行解码的帧率。
4.1 测试环境
HEVC主要面向高清及超高清视频的编码,因此此次实验所用码流均为1 920×1 080和2 560×1 600超高清码流。测试软件为HM-9.0和本文提出的基于HM-9.0改进的并行解码器。编译环境为Visual Studio 2010,release模式。测试环境如表1所示。
表1 测试环境表
本文中提出的并行解码器利用了HEVC中的WPP技术,因此实验所用码流必须支持WPP,此次实验所用码流均为用测试软件HM编码得到的。主要编码参数值如表2所示。
表2 编码参数表
4.2 测试结果
本文中定义了加速比来测试并行解码器性能
(1)
式中:FPSprposed为利用改进后的解码器解码所得的帧率;FPSorig为利用HM-9.0解码所得的帧率。每次解码得到的帧率可能会稍有偏差,因此此次实验中对每个码流解码10次,取帧率的平均值来计算加速比。实验结果如表3所示。
表3 实验结果表
本文提出了一种HEVC并行解码器结构。此并行解码器包含Pixel decoding和Deblocking filter两个部分的并行,Pixel decoding的并行是以HEVC中的WPP技术为基础的,Deblocking filter的并行则利用了滤波数据的无相关性。实验表明,本文设计的HEVC并行解码器可以提高解码速度,降低时延。使用者可以根据处理器的核心数量来选择合适的线程数,以达到较高的解码效率,充分利用硬件资源。
[1]蔡晓霞,崔岩松,邓中亮,等.下一代视频编码标准关键技术[J].电视技术,2012,36(2):80-84.
[2]刘昱,胡晓爽,段继忠.新一代视频编码技术HEVC算法分析及比较[J].电视技术,2012,36(20):45-49.
[3]SULLIVAN G J,OHM J,HAN W J,et al.Overview of the high efficiency video coding (HEVC)standard[J].IEEE Trans.Circuits and Systems for Video Technology,2012,22(12):1649-1668.
[4]NORKIN A,BJONTEGAARD G,FULDSETH A,et al.HEVC deblocking filter[J].IEEE Trans.Circuits and Systems for Video Technology,2012,22(12):1746-1754.
[5]CHI C C,ALVAREZ-MESA M,LUCAS J,et al.Parallel HEVC decoding on multi-and many-core architectures[J].Journal of Signal Processing Systems,2013,71(3):247-260.
[6]KOTRA A M,RAULET M,DEFORGES O.Comparison of different parallel implementations for deblocking filter of HEVC[C]//Proc.2013 IEEE International Conference on Acoustics, Speech and Signal Processing(ICASSP 2013).[S.l.]:IEEE Press,2013:2721-2725.
[7]ALVAREZ-MESA M,CHI C C,JUURLINK B,et al.Parallel video decoding in the emerging HEVC standard[C]//Proc.2012 IEEE International Conference on Acoustics,Speech and Signal Processing(ICASSP 2012).[S.l.]:IEEE Press,2012:1545-1548.
[8]CHI C C,ALVAREZ-MESA M,JUURLINK B,et al.Parallel scalability and efficiency of HEVC parallelization approaches[J].IEEE Trans.Circuits and Systems for Video Technology,2012,22(12):1827-1838.
[9]ALVAREZ-MESA M,CHI C C,JUURLINK B, et al.Parallel video decoding in the emerging HEVC standard[C]//Proc.2012 IEEE International Conference on Acoustics,Speech and Signal Processing(ICASSP 2012).[S.l.]:IEEE Press,2012:1545-1548.
责任编辑:时 雯
Parallel HEVC Decoder Design
XU Shanshan1,MA Youming1,GU Changhai2
(1.SchoolofInformationandElectronics,BeijingInstituteofTechnology,Beijing100081,China;2.BeijingCsvisionLtd.,Beijing100098,China)
HEVC(High Efficiency Video Coding) is the latest video coding standard.It aims at the high definition video and the ultra high definition video and its compression efficiency increased significantly compared with H.264 .But the increase of the compression efficiency can result in more complex operation.To increase the decoding efficiency, a parallel optimization algorithm is proposed in this paper.The parallel architecture is based on the entropy slice ,WPP and dependent data of deblocking filter in HEVC.The experimental result indicates that the parallel HEVC decoder can increase the decoding efficiency significantly.
HEVC;parallelization;entropy slice;WPP;deblocking filter
TN919.8
A
10.16280/j.videoe.2015.05.005
【本文献信息】许珊珊,马幼鸣,顾长海.HEVC并行解码器设计[J].电视技术,2015,39(5).