编者按:本期话题为视频行业本土化,在此我们还要提到一个重量级的本土化品牌——华傲精创,其自主研发的HDAVS DataCam“易盘卡”摄录编系列产品备受业内瞩目,并在以CCTV为代表的电视台成功应用。今年年初,华傲精创又推出了全系列GPU高速编解码器,其视音频软件HDDE1080家族采用了高度GPU化的并行架构,较之传统的CPU+GPU的混合架构有明显的性能优势。

前言
随着高清时代的到来,专业广电领域正面临着前所未有的存储和计算压力。电视台和专业制作人群对高质量音视频品质的日趋完美的追求下,目前广电行业基于MPEG-2的编码算法的视频质量很难适应当前需求。应用H.264级别的高复杂度编码算法,虽然在一定程度上满足了存储和质量的要求,但是其算法天然的高复杂度带来的终端高需求、高成本在一定程度上限制了其应用的普及程度。高清节目制作的进一步推进,需要更高效率的编解码平台和技术。
早在2004年前后,业界的编辑群落就开始倡导CPU+GPU的设计架构和产品理念,在随后的5年时间里,在围绕各厂家NLE(非线性编辑)极其相关产品线上得到了充分体现,这是GPU并行处理技术在广电领域的初步应用。这个期间,大多数厂家的CPU+GPU方案实现中,GPU都是局限在图像渲染合成和特效处理方面,除了GPU本身受限于标准图像API(Direct3D/OpenGL)之外,在产品方案架构的设计上,也没有对GPU效能的最大提升做到“挥发性”支持。
时间进入到2006年,随着GPU通用计算技术在两大GPU芯片提供商(ATI/Nvida)上日趋成熟。基于GPU的各种并行加速算法和软件产品开始在其它领域和行业出现。对于视音频编解码器,期间也出现了的许多消费级的软件解码器,但应用色深10Bit,格式422甚至444的高质量专业编解码器一直没有出现商品化的产品。
北京华傲精创在广电专业领域应用GPU并行计算方面的里程碑
2009年初,北京华傲精创实现了全程GPU加速的视音频编辑处理核心。在装备有普通4核心Intel i7的PC上能轻松达到超过10层的高清108Mbit/S MPEG-2 IFrame实时解码的合成能力。同年上半年,华傲精创实现了全GPU架构的编解码家族的第一位成员DNxHD185M Encoder。该编码器是全球第一款纯GPU化的DNxHD185M 10Bit高清视频编码器,也是中国国内第一款GPU视频编码器。在Nvidia 280GTX对比最新i7平台上运行的高度优化CPU版本DNxHD,华傲精创GPU版本的速度比CPU优化版本的速度快2倍以上。
华傲精创的全程GPU加速编辑处理核心和GPU编解码核心是高度依赖GPU的商业化软件开发平台的,此平台也是公司视音频编辑软件产品所共同依赖的统一核心和底层。华傲精创基于其上的软件产品有HDDE1080工作站非线性编辑软件、HDDE360移动非线性编辑软件和 X90E盘塔软件系列。
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版本的运行时间比较图:
熵编码
DNXHD185熵编码算法是对所有的待编码的符号采用统一的VLC(UVLC:Universal VLC),使用一个长度无限的码字集,设计结构非常有规则,用相同的码表可以对不同的对象进行编码。这种方法很容易产生一个码字,而解码器也很容易地识别码字的前缀,UVLC在发生比特错误时能快速获得重同步。但是VLC的算法本质具有前后相关的串行性,非常难以并行化。VLC GPU方案涉及到了算法的重写,在采用并行化的VLC方案后,GPU的计算效率得到了体现。
[Page]
全程GPU加速特性
编解码器是软件架构的最后端和最前端,软件架构要充分发挥高速编解码器的效能,单独靠提升编解码器的效率是无意义的。
以华傲精创DNxHD185M为代表的全系列GPU高速编解码器,被设计用于与同样全GPU化架构设计的前端视音频编辑核心互联,华傲精创的视音频软件HDDE1080家族也是采用高度GPU化的并行架构。从视音频采集上线后,全部源数据都在高速并行的GPU卡上渲染合成处理,之后直接输送给GPU编码器处理,期间不回到系统总线。由于GPU内部数据传输速度是传统PC总线速度的100倍以上,直接在GPU内部处理的数据流不会占用PC总线带宽而且不会被PC慢速总线延迟,较之传统的CPU+GPU的混合架构有明显的性能优势。
结论
GPU通用并行计算技术能极大提升专业广电行业依赖的高质量视音频编解码效率。对于并行算法的研发和优化,虽然人们已经总结出了相当多的经验,但是远远不及传统CPU算法那样丰富 。GPU并行算法与CPU串行算法最大的不同之处在于,并行算法不仅要考虑问题本身,而且还要考虑所使用的GPU并行模型。怎样将原有的算法并行化,怎样更多得发挥当前GPU芯片的并行化特性,需要充分地理解和适应全新的并行计算平台,针对其硬件特性提出想对应的优化方法。
并行计算理论有很多不同的分支,相对于其他计算理论和科学来说,并行计算还是一门很年轻的学科。随着IT硬件技术的发展,随着多核心开发环境的日益成熟,并行计算的优点正越来越得到人们的重视和认同。基于GPU的并行计算只是单机多核心技术的特例,更多的基于广域网络和分布式机群的网格计算则更能带来百倍的效能提升。将并行计算技术带入到广电专业领域,开发出更多突破传统技术瓶颈的优秀软件产品,将是我们孜孜追求和不懈探索的目标。