滚动新闻:
首页 > 应用案例 > 高性能并行计算

GPU高性能并行计算技术在广电专业领域的应用

   随着高清时代的到来,专业广电领域正面临着前所未有的存储和计算压力。电视台和专业制作人群对高质量音视频品质的日趋完美的追求下,目前广电行业基于MPEG-2的编码算法的视频质量很难适应当前需求。应用H.264级别的高复杂度编码算法,虽然在一定程度上满足了存储和质量的要求,但是其算法天然的高复杂度带来的终端高需求、高成本在一定程度上限制了其应用的普及程度。高清节目制作的进一步推进,需要更高效率的编解码平台和技术。

GPU高性能<a href=/gongneng/39.html target=_blank class=infotextkey>并行计算</a>技术在广电专业领域的应用

  早在2004年前后,业界的编辑群落就开始倡导CPU+GPU的设计架构和产品理念,在随后的5年时间里,在围绕各厂家NLE(非线性编辑)极其相关产品线上得到了充分体现,这是GPU并行处理技术在广电领域的初步应用。这个期间,大多数厂家的CPU+GPU方案实现中,GPU都是局限在图像渲染合成和特效处理方面,除了GPU本身受限于标准图像API(Direct3D/OpenGL)之外,在产品方案架构的设计上,也没有对GPU效能的最大提升做到“挥发性”支持。

  时间进入到2006年,随着GPU通用计算技术在GPU芯片提供商(Nvida)上日趋成熟。基于GPU的各种并行加速算法和软件产品开始在其它领域和行业出现。对于视音频编解码器,期间也出现了的许多消费级的软件解码器,但应用色深10Bit,格式422甚至444的高质量专业编解码器一直没有出现商品化的产品。

  广电专业领域应用GPU并行计算方面的里程碑

  DnXHD主要模块性能对比介绍(vs DnxHD 185M OpenSource Version)

  正余弦转换(Discrete Cosine Transform,简称DCT),DCT是把空间的信号转换成频率。以最常见的2维DCT8x8为例。DCT8X8最早被运用于JPEG的压缩算法里,由于其广泛的运用程度,它已经成为了图像和视频压缩的一种事实标准算法。DCT8X8将输入的2维数据图像被切割成互不相重叠的8X8的数据块,每个块被分别计算处理。这种互不相关的特性使得DCT8X8非常适合被设计成并行化算法。

  在CPU优化方案中,针对DCT8X8的优化方法有很多,包括将浮点计算转换成定点整型计算,针对CPU底层Cache命中机制的底层指令级调整。但是它们都有一个共同的缺陷,由于它们都是基于串行执行的CPU架构,DCT8X8的天然并行化特性没有体现在算法中,其加速和优化差强人意。

  GPU的优化方案非常简洁,每个Block由8个GPU线程执行,多个Block并行执行,DCT8X8是最早实现也是最容易实现的一个模块。

  DNxHD185M的CPU和GPU版本的运行时间比较图

GPU高性能并行计算技术在广电专业领域的应用

  熵编码

  DNXHD185熵编码算法是对所有的待编码的符号采用统一的VLC(UVLC:Universal VLC),使用一个长度无限的码字集,设计结构非常有规则,用相同的码表可以对不同的对象进行编码。这种方法很容易产生一个码字,而解码器也很容易地识别码字的前缀,UVLC在发生比特错误时能快速获得重同步。但是VLC的算法本质具有前后相关的串行性,非常难以并行化。VLC GPU方案涉及到了算法的重写,在采用并行化的VLC方案后,GPU的计算效率得到了体现。

  全程GPU加速特性

  编解码器是软件架构的最后端和最前端,软件架构要充分发挥高速编解码器的效能,单独靠提升编解码器的效率是无意义的。

  以DNxHD185M为代表的全系列GPU高速编解码器,被设计用于与同样全GPU化架构设计的前端视音频编辑核心互联,视音频软件HDDE1080家族也是采用高度GPU化的并行架构。从视音频采集上线后,全部源数据都在高速并行的GPU卡上渲染合成处理,之后直接输送给GPU编码器处理,期间不回到系统总线。由于GPU内部数据传输速度是传统PC总线速度的100倍以上,直接在GPU内部处理的数据流不会占用PC总线带宽而且不会被PC慢速总线延迟,较之传统的CPU+GPU的混合架构有明显的性能优势。

  GPU通用并行计算技术能极大提升专业广电行业依赖的高质量视音频编解码效率。对于并行算法的研发和优化,虽然人们已经总结出了相当多的经验,但是远远不及传统CPU算法那样丰富 。GPU并行算法与CPU串行算法最大的不同之处在于,并行算法不仅要考虑问题本身,而且还要考虑所使用的GPU并行模型。怎样将原有的算法并行化,怎样更多得发挥当前GPU芯片的并行化特性,需要充分地理解和适应全新的并行计算平台,针对其硬件特性提出想对应的优化方法。

  并行计算理论有很多不同的分支,相对于其他计算理论和科学来说,并行计算还是一门很年轻的学科。随着IT硬件技术的发展,随着多核心开发环境的日益成熟,并行计算的优点正越来越得到人们的重视和认同。基于GPU的并行计算只是单机多核心技术的特例,更多的基于广域网络和分布式机群的网格计算则更能带来百倍的效能提升。将并行计算技术带入到广电专业领域,开发出更多突破传统技术瓶颈的优秀软件产品,将是我们孜孜追求和不懈探索的目标。