论文部分内容阅读
流体系结构是斯坦福大学William J. Dally教授领导的研究小组首先定义的一种新型处理器体系结构,以流处理为主要计算模式的流处理器以其强大的计算能力、较低的功耗和灵活的可编程性,成为当前高效能计算系统定制加速部件的主要选择之一。流体系结构利用媒体应用中普遍存在的密集计算性、丰富并行性、多层次多类型局部性、数据访问可预知性等特点,获得应用的高效实现与加速。数字视频是媒体应用中常见的一类计算密集型应用,广泛用于视频会议、高清晰度电视、卫星广播等领域。视频压缩作为数字视频的核心技术之一,具有数据处理复杂和计算量大的特点,其处理性能对互联网视频业务、便携视频设备和高清数字电视等媒体应用都有决定性的作用。目前的视频压缩技术均包含比较复杂的数学变换与信号处理,需要具有非常高的实时编码性能与持续的高吞吐量。现有体系结构下的通用处理器,特别是广泛使用的类x86体系结构处理器,其性能远远不能满足高性能视频编码的应用需求,目前主要采用专用的加速部件来实现高效的实时视频采集和压缩,这些专用视频加速处理部件又缺少足够的灵活性来处理各种各样的视频应用。视频压缩编码具有典型的流处理程序特征,因此,流体系结构为视频应用提供了一种新的解决方案。随着视频图像时空分辨率的增强以及对压缩码率、实时性需求的增长,促使视频图像压缩编码算法越来越复杂。在流计算模型下,如何将视频编解码过程和算法高效流化?如何实现高效编码和解码的流处理程序?如何以适合流计算的形式对视频数据进行采集、传输、处理和存储?解决这些问题是在流处理器上实现视频编解码,特别是实时编码的关键。本文主要针对高计算复杂度的H.264视频标准,将编码过程映射在流处理器上,其多模式、自适应的程序特征在流计算模型下面临着严峻的流化挑战。本文较为全面地研究了基于流计算模型的H.264高清视频编码的迁移与流化方法,深入地讨论了流化方案的算法、设计与实现的关键技术,并依据实验结果评估了流体系结构对复杂视频编码处理的性能。另外,本文利用流处理器的可编程性与扩展性向多标准视频编码方向作出有意义的探索研究。论文的创新工作主要体现在以下几个方面:1.提出一个基于流计算模型的H.264视频编码器的流框架。流化就是采用流与核心的两级编程模型,通过计算与访存分离、计算并行化、访存顺序化来达到性能加速的过程。本文针对H.264视频编码各模块表现出来的不同流化程序特征,提出一个基于流计算模型的H.264视频编码器的流框架。采用块级或者宏块级并行处理粒度,避免了个别模块像素之间的强相关性,增强了流体系结构的并行执行效率。流与核心的抽象设计与优化加速,使得H.264编码器流框架能够满足720p高清视频的实时编码,表明流处理器利用其大量的运算单元、独特的带宽层次、并行性与局部性的支撑,在解决如H.264这类复杂的视频压缩编码方面具有强大的性能实力。2.提出一系列关于H.264视频压缩编码在流处理器上映射的流算法。流算法是基于流计算模型为那些数据规模大,数据重用少,数据元素具有单向流动性的应用而设计的,通常关注于数据流与计算核心的组织。本文以Imagine与图形处理器为流处理器硬件平台研究背景,提出了交叉流式变换算法(IST)、分段分组帧内预测算法(SmMgIP)、递归索引加载变换算法(RIT)和按行带状加载变换算法(RZT)。其中前三个流算法在Imagine上流化,最后一个流算法在图形处理器上映射。实验结果表明,本文所设计的流算法能够充分利用流计算模型,挖掘具体流应用的程序特征并将其有效地转换为流化的依据,获取很好的加速效果,为H.264编码器流框架的高性能打好基础。并且,流算法思想可以移植在其它基于数据并行的SIMD执行模型的计算平台上,具有一定的通用性。3.提出非规则流计算、访存和控制的编程模型,并针对核心级和流级分别给出了通用的优化方法。以H.264视频压缩编码的帧间预测与去块效应滤波为背景,提出了非规则流编程模型,包括非规则流计算、非规则流访存、非规则流控制,是经典流编程模型的有效补充,为复杂的流应用映射提供了理论参考依据。循环是核心的主体,基于循环优化的思想,给出针对核心级的通用优化方法:核心合并与核心分裂。以H.264编码模块为例,核心合并可以将计算更加集中,如采用了核心合并的变换量化核心ALU利用率更高,核心执行时间缩短,使得单位时间内执行的计算量加大;核心分裂可以有效地转移控制,很好地缓解了如去块效应滤波过程中存在的大量分支对核心造成的压力。在流级,当输入流的长度超过全局流存储空间的容量时,会造成流溢出到片外存储器而产生昂贵的访存开销。由此,给出一种流分割的流级流化方法。它是将长流分割为若干短流,以流级外层循环的形式对短流按批次执行核心操作。流分割不仅避免了大规模数据在片内外存储空间的来回传递,而且能够使得计算与访存更好地重叠在一起,从而提高流处理器的计算效率。4.针对变换编码的多标准视频编码算法,提出一种流处理的解决方案。流行的视频压缩编码标准虽各有特色,但在编码框架上也有相似之处。因此在硬件设计时,总是希望能够以尽可能少的硬件资源同时满足尽可能多的视频编码标准,从而有了多标准视频编解码器的需求。本文针对多标准变换编码,利用流处理器的可编程性与扩展性提出了一种多标准编解码变换算法的流解决方案,包括离散余弦变换、整数变换、哈达玛变换与离散小波变换在Imagine流处理器和图形处理器上的流化实现。实验结果表明,流处理解决方案能够获取比其它可编程计算平台上的某些专用优化实现更好的性能。