多层次细粒度并行HEVC帧内模式选择算法

计算机研究与发展DOI:10.7544issn1000-1239.2016.20148455Journal of Computer Research and Development 53(4):873-883,2016
多层次细粒度并行HEVC帧内模式选择算法
张 峻1,2 代 锋1 马宜科1 张勇东1
1(中国科学院智能信息处理重点实验室(中国科学院计算技术研究所) 北京 100190)
2(中国科学院大学 北京 100049)
(zhangjun01@ict.ac.cn)
Multi-Level and Fine-Grained Parallel HEVC Intra Mode Decision Method
Zhang Jun1,2,Dai Feng1,Ma Yike1,and Zhang Yongdong1
1(Key Laboratory of Intelligent Information Processing(Institute of Computing Technology,Chinese Academy ofSciences),Chinese Academy of Sciences,Beijing100190)
2(University of Chinese Academy of Sciences,Beijing100049)
Abstract The coding mode space of high efficiency video coding(HEVC)is extremely large so itneeds huge amount of computations for HEVC encoders to do mode decision(MD).ParallelizingHEVC encoding on many-core platforms is an efficient and promising approach to fulfill the highcomputational demands.Traditional coarse-grained parallelizing schemes such as Tiles and wavefrontparallel processing(WPP)either cause too much quality loss or can’t af
ford a high parallelism degree.In this paper,the potential parallelism in HEVC intra MD process is exploited,and a multi-level andfine-grained highly parallel intra MD method which works in a coding tree unit(CTU)is proposed.Specifically,the intra MD process in a CTU is divided into six types of sub-tasks,and the datadependencies among adjacent blocks that hinder parallel processing are analyzed and removed,including intra prediction dependency,prediction mode dependency and entropy coding dependency;consequently the MD computation for all fine-grained coding blocks of different levels within the sameCTU can be computed concurrently.The proposed parallel MD method is implemented on Tile-Gx36platform.Experimental results show that the propo
sed parallel MD method gets an overall speed up ofmore than 18xwith acceptable quality loss(about 3%bit-rate increasing),compared with the non-
parallel baseline HM.
Key words high efficiency video coding(HEVC);intra prediction;many-core;parallel mode decision;fine-grained
交通流摘 要 在众核平台上并行加速是解决高效视频编码(high efficiency video coding,HEVC)标准编码复杂度高的有效方法.传统的粗粒度并行方案如Tiles和WPP未能在并行度和编码质量之间取得较好的平衡,对编码质量影响较大或者并行度不高.充分挖掘HEVC帧内模式选择中的并行性,提出了一种在CTU内使用的多层次细粒度的帧内模式选择算法.具体说来,对帧内模式选择过程进行了子任务划分,分析并消除了相邻编码块之间多种阻碍并行计算的数据依赖关系,包括帧内预测参考像素依赖、预测模式依赖和熵编码依赖等,实现了同一个CTU内所有层次的细粒度编码块的代价计算和模式选择并行进行.将算法在Tile-Gx36平台上实现,实验结果表明此并行算法与HEVC参考代码HM相比能获得
18倍的整体编码加速比而且编码质量损失较小(码率上升3%).
 收稿日期:2014-12-31;修回日期:2015-04-27
 基金项目:国家自然科学基金项目(61379084,61402440);中国科学院科研装备研制项目(YZ201321)
This work was supported by the National Natural Science Foundation of China(61379084,61402440)and the InstrumentDeveloping Project of the Chinese Academy of Sciences(YZ201321).
关键词 高效视频编码;帧内预测;众核;并行模式选择;细粒度中图法分类号 TP391
  高效视频编码(high efficiency video coding,HEVC)[1-2]标准的压缩效率超越以往所有标准,比目前最流行的H.264AVC提高1倍.虽然HEVC仍然属于基于块的混合编码框架,但是其各个编码阶段都有了增强和改进,其中最重要的变化就是采用了更加灵活的编码结构和高级的编码工具,这也导致HEVC的编码模式搜索空间非常大.为了保证编码质量,编码器要进行大量的计算以寻率失真代价较小的编码模式,即模式选择(mode 
仪器仪表学报decision,MD),编码复杂度非常高.随着多核和众核处理器的发展[3],在并行计算平台上并行化HEVC编码将是满足其计算能力需求实现实时编码的有效手段[4-12].与以往所有标准不同,HEVC标准本身就采纳了多种便于并行编解码的工具,如WPP(wavefront parallelprocessing)[9],Tiles[10],MER(motion estimationregion)[11],可见并行计算对于HEVC及今后视频编码领域的重要性.
目前HEVC并行相关的研究工作主要集中于计算量较大的帧间MD尤其是运动估计(motionestimation,ME)模块[7-8,11],对帧内MD并行的研究则相对较少.随着帧间MD的并行化,帧内MD逐渐成为了速度瓶颈.在文献[13]中,在帧间MD被加速了近15倍之后,I帧的平均编码时间大大超过了PB帧的平均编码时间,是其4~5倍,限制了编码器的整体效率,因此对帧内MD的并行加速同样重要.
现有的对HEVC帧内MD并行的研究较少,而且算法的并行度不够高[14-16],HEVC标准支持的Tiles和WPP也未能在并行度和编码质量取得较好的平衡.针对这些问题,本文提出了一种在编码树单元(coding tree unit,CTU)内使用的并行帧内MD算法:本文对帧内MD过程进行了子任务划分,深入分析并解除了各个子任务在相邻编码块之间存在的数据依赖性,包括帧内预测参考像素依赖、PU预测模式依赖、熵编码概率模型依赖和概率建模依赖,实
现了每个子任务对整个CTU里面多层次细粒度的编码块并行处理,最终实现了CTU内并行帧内MD.
1 背景及研究现状
本节介绍与本文工作相关的一些背景.首先介绍HEVC帧内模式选择基本概念,然后对已有的一些并行帧内模式选择算法进行了介绍和分析.1.1 HEVC帧内模式选择
在HEVC编码标准中,一帧视频图像被均匀地划分成CTU,CTU的大小可以为64×64,32×32或16×16,典型且不失一般性,本文以下默认CTU大小为64×64.如图1所示,每一个CTU四叉树递归地划分为4个相同大小的子单元,该四叉树的每一个叶子节点叫作一个编码单元(coding unit,CU);每个CU也会采用四叉树递归划分,每一个叶子节点叫作变换单元(transform unit,TU).此外,从图1可见,每个CU有多种预测单元(prediction unit,PU)划分模式,能更灵活地进行预测编码.HEVC的帧内预测模式也比H.264复杂很多,共35种模式.CTU,CU,PU,TU包含的单一亮度或度分量信息分别记为CTB(coding tree block),CB(codingblock),PB(prediction block),TB(transform block)
Fig.1 Flexible coding structures in HEVC.
图1 HEVC标准中灵活的编码结构
在HEVC帧内MD过程中,对于一个CTU来说,它可以采用四叉树递归划分的方式划分出更小的CU,最小为8×8.对于8×8CU有2 N×2 N和N×N两种PU划分方式,其他CU只有2 N×2 N的PU划分.N×N划分情况下包含4个亮度PB和1个度PB,2 N×2 N划分时包含1个亮度PB和1个度PB,每个PB有一个预测模式.对一个帧内编码CU来说,度PB和亮度PB的预测模式可以是不同的,TU划分模式对亮度和度是相同的,因此一个帧内编码CU的模式可由亮度PB预测模式、度PB预测模式和TU划分模式来表征,如式(1)所示.帧内MD即对CTU里面的每个CU从式(1)
8计算机研究与发展 2016,53(4)
所表示的模式空间中寻率失真代价最小的模式组合,并且据此决策出整个CTU的最佳CU四叉树划分方式.在HEVC的参考软件HM中,一个CTU里面CU的MD计算是按深度优先遍历顺序进行的,如图2所示,为简便起见只画了3层,每个节点表示一个CU.
CU
模式(亮度PB预测模式,度PB预测模式,
TU划分模式).(1
Fig.2 Depth-first serial processing order of 
CUs in a CTU of HM.
图2 HM中一个CTU里CU的深度优先串行处理顺序
1.2 相关研究工作
由于采用了灵活的编码结构和复杂的预测模
式,帧内MD计算量非常大.为了加快帧内MD,许
多研究工作[17-19]提出了快速算法.快速算法能在一
瑞利数
定程度上减小计算复杂度,但是获得的加速比有限,
距离实时编码仍然有很大的差距.
并行计算是提高HEVC编码速度的有效手段,
标准本身采纳了几种粗粒度的并行化工具.Tiles将
一帧图像纵横划分成若干可以独立进行编码的子图
像,子图像之间无依赖关系,所以可以并行处理.
Tiles划分对并行编码比较容易实现且并行度比较
灵活,缺点是对编码效率影响较大,经测试[20],将
1080p的视频均匀划分成6×3的Tiles用于帧内
MD,在intra_main配置下实际平均加速比为12,
BDBR[21]达到5%左右.HEVC采用的另一种并行
方案为WPP,由于其尽可能地保持了数据依赖关
系,所以对编码质量影响较小,但是并行度却不高.
对一个宽度为W个CTU、高度为H个CTU的视
频帧来说,如果满足条件2(H-α-1)<W≤2(H-
α),其中α∈N且1≤α<H,其理论并行度
(theoretical parallelism degree,TPD)为
TPD(W,H,α)=
WH
2W+2α-2
,(2)
对于720p和1080p的视频序列满足α=2,所以
姚明慈善赛直播
1080p的视频TPD只能到8[22].
在另外一些并行帧内MD的研究中,文献[14-
赤祼羔羊15]都使用前向无环图描述CTU之间的依赖关系,
实现了CTU之间的并行处理,但本质仍属于WPP,
文献[14]平均获得了5倍的加速比,文献[15]则使
用分类器决策出最佳CTU的大小,通过较小的CTU
大小能获得较高的加速比,平均达到10倍.在文献
[16]中,该文作者提出了一种在TU四叉树划分时
4个子节点并行帧内预测的算法,但是由于帧内预
测仍依赖于重构像素,理论并行度只能达到4.
从以上内容可以看出,现有的帧内MD并行算
法主要是粗粒度并行(Tiles,WPP),文献[16]属于
细粒度并行但是并行度不高.针对它们存在的问题,
本文提出了一种在CTU内使用的多层次细粒度的
并行帧内MD算法,在保证编码质量的前提下获得
了更高的并行度.多层次体现在不同深度的CU,
PU,TU可以并行处理,细粒度则体现在最小计算
单元为一个TB.
2 多层次细粒度并行帧内模式选择
本节提出了一种在CTU内使用的多层次细粒
度并行帧内MD算法.本文首先对CU帧内MD过
程进行了子任务划分,深入分析并解除了各个子任
务在相邻CU,PU,TU间存在的数据依赖关系,实
现了各个子任务在整个CTU范围的并行处理,最
终实现了各个层次的所有CU并行模式选择.
2.1 子任务划分
对于一个CU的模式选择,为了减小计算量,
HM对式(1)表示的模式空间的搜索分阶段进行,先
选择亮度PB预测模式,然后选择TU划分模式,再
选择度PB的预测模式,如图3所示.
对于亮度PB预测模式选择,先对所有35种模
式进行代价粗算(rough mode cost computation,
RMCC),代价记作RMC,包括PB预测值与原始值
张 峻等:多层次细粒度并行HEVC帧内模式选择算法
Fig.3 The flowchart of intra MD for a CU in HM
encoder.
图3 HM编码器中对一个CU的帧内MD流程图
之间的残差变换绝对值(sum of absolute transformeddifferences,SATD)和预测模式编码位数,从中选择一定数量RMC最小的预测模式,与当前PB的最可能预测模式(most probable mode,MPM)一起构造候选模式列表(candidate mode list construction,CMLC),记作CML,对CML里的每一个模式都去计算率失真代价(prediction mode cost computation,PMCC),代价记作PMC,选择PMC最小的预测模式作为当前PB的最佳预测模式(PB best predictionmode selection,PBBPMS),记作PBBPM.然后对TU划分模式进行决策,主要计算量是亮度TB的率失真代价计算(TB cost computation,TBCC),代价记作TBC,使用TBC进行TU四叉树决策(quad-tree decision,QTD).最后选择度预测模式,主要计算是度TB的TBCC计算.为便于后续引用,在表1对上述子任务以及相应的计算结果进行了归纳.
Table 1 Sub-Tasks and Their Output Results
表1 子任务划分和相应的输出结果
Name of Sub-Tasks Abbreviation ResultRough Mode Cost Computation RMCC RMC
Candidate Mode List Construction CMLC CML
Prediction Mode Cost Computation PMCC PMC
PB Best Prediction Mode Selection PBBPMS PBBPMTB Cost Computation TBCC TBC
Quad-Tree Decision QTD Complete MD  如图2所示,在串行帧内MD时,由于CU的MD计算是按照深度优先遍历顺序去串行进行的,所以对于表1中的每个子任务,在串行MD时它们在CTU范围内的执行路径也是按四叉树深度优先遍历顺序去进行的.本文提出的并行算法将每个子任务在CTU范围内进行多层次细粒度的并行,每个子任务都能并行处理一个CTU里面的所有CU,PU或TU,即并行处理四叉树中的所有节点,一个节点对于不同的子任务表示一个CU,PU或TU.2.2 数据依赖性分析与消除
对于每个子任务,要在一个CTU范围内进行并行MD计算,而相邻块之间有多种数据依赖关系,这
些数据依赖会阻碍子任务在CTU范围内的并行计算.经过本文的分析,有4种数据依赖需要解除:1)帧内预测时重构像素依赖.此依赖关系出现在帧内预测时,如图4所示,在一个PB或TB进行代价计算时,需要进行帧内预测,即参考相邻块已经重构出来的像素对自身进行预测.对于一个M×M的TB来说,需要参考周围的4 M+1个重构像素,分别来自于其左、上、左下、右上和左上方向已经编码重构完成的相邻图像区域
Fig.4 Reconstructed pixels dependencies during intraprediction.
图4 帧内预测时重构像素依赖
在本文的并行算法中,RMCC,PMCC,TBCC在一个CTU里面要对所有PB或TB并行进行代价计算,需要进行帧内预测,如果一个PB或TB要参考的重构像素跟它位于同一个CTU,那么重构像素是不可用的,因为相邻块也同时在进行模式选择,并未重构完成.如图4所示,blockL,blockA和当前块位于同一个CTU进行并行处理,那么当前块所依赖的blockL和blockA的重构像素不可用.要想并行计算,帧内预测参考像素的依赖关系必须要解除.为了解除这种相关性,本文提出使用原始像素代替重构像素进行帧内预测.为了更准确地模拟实际的编码过程,在对一个PB或TB进行参考像素构造
8计算机研究与发展 2016,53(4)
的过程中,虽然所有原始像素都是可用的,但依然按照标准遵循Z扫描顺序来决定某一个像素是不是可用,对于不可用的像素则调用替换(substitution)过程去生成.另外,对参考像素的滤波操作也同样按照标准进行.由于原始像素是始终可用的,相邻PB或TB之间不会再有重构像素的依赖问题,所以同一个CTU里面所有PB和TB都可以并行地进行帧内预测.
)编码预测模式时MPM计算依赖.为了提高压缩效率,HEVC在编码帧内预测模式时需要参考相邻(左边和上边)PB的预测模式,构造出一个长度固定为3的MPM列表,如图5(a)所示.如果左PB(left PB,LPB)和上PB(above PB,APB)的预测模式不可用或者相同,则还会加入DC、planar、垂直、水平等模式.令(xc,yc)表示当前PB的左上角在当前图像帧中的坐标,LPB定义为覆盖点L(xc-1,yc)的PB,APB定义为覆盖点A(xc,yc-
1)的PB
.Fig.5 Prediction mode dependency among adjacentPUs and the proposed dependency removing method.图5 相邻P
U预测模式依赖和本文提出的依赖性消除方法在本文的并行算法中,RMCC,CMLC,PMCC要对CTU内所有PB并行地进行MPM计算,如果当前PB与参考的LPB或APB位于同一个CTU
里面,即如式(3)所示,其中(xn,yn)对于LPB或APB分别为(xc-1,yc)或(xc,yc-
1),那么LPB和APB的预测模式是不可用的,因为它们也同时在进行模式选择,预测模式还未得到.
为了解除此依赖关系,如果当前PB和LPB或APB位于同一个CTU,那么本文使用已经编码过的CTU里面距离LPB和APB最近的对应PB来代替
它,记作LPB′和APB′,如图5(b)所示,用LPB′和APB′的预测模式代替LPB和APB的预测模式去构
造MPM.LPB′定义为覆盖点L′(xc-xc%64-1,yc)
的PB,APB′定义为覆盖点A′(xc,yc-yc%6
4-1)的PB,其中“%”表示取余运算,64表示CTU大小.由于CTU是按照扫描顺序进行编码的,所以左CTU和上CTU里面的信息一定是可以使用的,这样,同一个CTU里面PU的预测模式依赖关系就被解除了,
可以并行进行预测以及代价计算:xn64==xc64&&yn64==yc
64
.(3
)3)概率模型(context model,CM)继承依赖.HEVC中使用上下文自适应的二进制算术编码(context adaptive binary arithmetic coding,CABAC)进行语法元素的熵编码.CABAC的主要过程包括语法元素的二进制化、
概率建模、算术编码和CM更新.为了提高编码效率,在编码的过程中CM会自适应动态更新,以更
好地反映图像的局部区域特性,获得更高的压缩比.在HM模式选择过程中,熵编码器会使用CM去估计编码产生的位数以计算编码代价,CM是模拟实际编码过程动态更新的,Z扫描顺序更小的块的MD完成之后会将CM传递给Z扫描顺序大于它的块使用,如图6(a)所示,TU1使用的CM是TU0计算之后的结果,这样就在相邻块之间产生了CM的继承依赖
Fig.6 CMs inheritance in HM and our prop
osed method.图6 HM中的CM继承依赖和本文提出的方法
在本文的并行算法中,RMCC,PMCC,TBCC,QTD任务要并行地对一个CTU内的所有CU,PU或TU进行代价计算,而由于相邻CU,PU,TU之间存在CM的继承依赖问题而导致无法并行,要想实现并行代价计算,必须要解决此依赖关系.
为了解除同一个CTU内CM继承依赖,本文提出以下解决方法:同一个CTU内的所有CU?PU?TU使用同一套CM,
该CM来自于上一个已编码的CTU经过训练之后的结果.如图6(b)所示,为了简洁,一个CTU内只画出4个TU.通过这种CM继承方式,一个CTU里面所有的CUPU?TU都有了自己的CM,所以可以并行处理.
广州木偶艺术中心
78张 峻等:多层次细粒度并行HEVC帧内模式选择算法

本文发布于:2024-09-22 03:48:20,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/262639.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:编码   模式   进行   预测   依赖
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议