论文部分内容阅读
新一代视频编码标准—H.265/HEVC中引入了很多新特性,这些特性在提升编码效率的同时,也使得相比之前的标准—H.264/AVC,HEVC的计算复杂度变得更高。另外,HEVC标准针对的是高清和超高清视频应用,而这些视频通常含有巨大的数据量,这些因素使得实时处理HEVC标准视频流成为传统单核处理器面临的一大挑战。所幸,HEVC标准在开发时就考虑到了这些问题,提供了很多并行工具,这些并行工具可以缓解计算复杂度高和数据量大带来的实时处理困难。同时,现代处理器从单一内核架构向多核架构发展,也为并行处理算法的实现提供便利。因此,关于HEVC标准的编解码的并行处理算法也成为众多研究者关注的研究对象。本文利用Tilera-GX36多核处理平台,研究基于多核处理平台的HEVC解码核心模块的并行处理算法。论文的研究内容主要包括以下几点:(1)提出并实现了一种基于多线程负载均衡的联合并行环路滤波算法,实现去方块滤波(DBF)和样本自适应补偿(SAO)的联合并行处理。通常,图像中不同区域因为纹理不同,进而对CTU产生不同的划分方式,使得其待滤波边界数目有较大差异。当以CTU为最小并行粒度进行多线程并行时,不同线程的计算负载会出现不均衡现象。针对这一问题,提出了一种区域划分方案,将图像划分为多个区域,每个区域中的待滤波边界数近似。再利用映射关系表,将这些区域分配给多个线程进行并行处理,从而实现各滤波线程间的负载均衡。最后利用缓存技术,将DBF和SAO进行联合,减少两者之间存在的延迟,提高环路滤波整体的并行性。(2)提出并实现了一种基于CTU的HEVC帧内/帧间融合并行解码算法。OWF是以CTU行做为解码并行粒度的算法,会存在由于不同CTU行计算复杂度不同,使得部分帧内解码线程阻塞而产生线程空闲的问题。基于CTU的细粒度波前并行解码方案,可以减少帧内解码线程阻塞的问题,但该方案未考虑帧间CTU解码的并行性。针对这两种并行解码方案尚存在的问题,可以在细化帧内并行粒度的同时,进一步利用了帧间CTU之间的依赖关系,实现以CTU为并行粒度的帧内/帧间融合的并行解码。若当前帧内无CTU待解码时或者存在空闲线程时,空闲的线程可以直接用于相邻帧中满足依赖关系的CTU的解码。从而,进一步减少了线程空闲,提高了多核资源的利用率。(3)提出并实现了基于核心模块融合的HEVC并行解码算法。当将所提出的联合并行环路滤波方案以及基于CTU的HEVC帧内/帧间融合并行解码算法,直接同帧级并行熵解码方案相结合时,并行粒度不同与资源调度会给系统内部带来整体上的延迟。针对这一问题,利用流水线并行技术和分级线程调度策略将三个模块进行融合,减少模块间延迟以及线程空闲时间,提升系统整体的数据吞吐量。之后,利用Tilera多核平台特性,实现HEVC解码的平台优化。实验在Tilera-GX36多核处理器上进行,以libde265作为参考软件,对多种未使用任何并行工具编码形成的高清超高清视频流进行测试。根据实验结果,所提并行环路滤波方案,相比于前人提出的快速融合环路滤波算法,并行性能平均提升了约9.1%;基于CTU的HEVC帧内/帧间融合并行解码算法,相比于OWF和基于CTU的细粒度波前并行方案,并行性能平均分别提升了约18.3%和8.5%;实现的基于核心模块融合的HEVC并行解码算法,相比于细粒度多层次并行解码算法最大并行加速比平均提升了约8.15%。