说到计算机的扩展卡,可能大家熟知的有各种显卡、声卡、IEEE1394卡、RAID阵列卡,以及昙花一现的物理加速卡,但从来没听说过专门从事高清转码工作的扩展卡。然而近期由丽台推出的这款丽台PxVC1100高清转码卡将改变我们的传统认识,那么它对于高清转码有什么帮助?与我们常见的处理器转码、NVIDIA CUDA转码方案有什么不同?下面就让我们走近这款神秘的产品,领略它与众不同的异域魅力。
当前大量数字视频节目为MPEG-2格式,而许多新的播放设备为提高传输和存储效率而采用诸如MPEG-4H.264 RealVC-1AVS等高级数字编解码格式,因此源于MPEG-2的转码技术已大量采用。目前用户主要通过两种手段进行转码,一种是利用处理器进行转码,然而由于视频转码是一种并行度相当高的密集型运算,目前常见处理器只采用三核到四核设计,并行运算能力不强,因此处理器转码将消耗用户相当多的时间。
另外一种则是利用NVIDIA的CUDA技术,通过Badaboom软件将显卡的上百个流处理器“变”为视频转码的运算单元,这种方式可带来超高的浮点运算性能,大大缩短转码时间。但根据测试显示,其转码后的画面质量暂无法与处理器转码相比。因此总体来说,这两种转码技术目前都不完美。而此次由丽台推出的这款丽台PxVC1100高清转码卡则采用了第三种方案对视频进行转码,那么这种方案能在速度与画质之间获得完美的平衡吗?它将成为我们更好的选择吗?下面就让我们揭开高清转码卡的神秘面纱。
就像显卡有一个GPU,声卡有一个DSP,这款丽台PxVC1100高清转码卡高清转码卡也有一个处理核心,那就是东芝的SpursEngine芯片。提到东芝SpursEngine,知道的人可能并不多,但说到Cell处理器可能大家就不陌生了。Cell处理器广为人知的应用就是作为索尼PlayStation 3游戏机的主处理器,负责游戏代码、人工智能、物理运算、音频、部分图形处理等运算。Cell处理器由一个基于PowerPC ISA的双顺序执行流水线处理内核以及八个被称作SPE的向量处理内核组成,此外还集成了XDR内存控制器、FlexIO总线。参与Cell研发有三家公司,它们分别是IBM、索尼以及东芝。
在三家公司成功推出Cell处理器后,东芝接手了索尼的半导体工厂,并开发出了基于Cell的Super Companion Chip以及用在丽台高清转码卡上的SpursEngine芯片。按照东芝的说法,尽管Cell性能强大,具备同时解码48条720×480 4Mbps MPEG-2视频的能力,但Cell本身的电力消耗也是不容小瞥的,因此SpursEngine诞生的目的就是为一些有迫切多媒体处理能力需求的消费者提供一个低成本、低能耗的解决方案。
SpursEngine的架构衍生自Cell Boardband Engine(Cell/B.E.),拥有四个Cell/B.E.的SPE内核,去掉了Cell/B.E.的PPE(PowerPC内核),新增了支持MPEG-2和H.264的硬件视频解码器和编码器,在系统总线和内存控制器方面也做了适当的替换和精简。第一代SpursEngine的型号为SE1000,采用65纳米普通工艺制造,7层铜互连,裸片尺寸为 9.98mm×10.31mm=102.89mm2,SPE的高运行频率为1.5GHz,晶体管数量为2.391亿个,其中逻辑电路为1.343亿个,SRAM为1.048亿个,典型设计功耗为低于20W ,封装为FCBGA 624。
SpursEngine架构图
同时,按照东芝的说法,SpursEngine的SPE布局进行了重大的调整,看上去比较四平八稳并且更紧凑,同样65纳米工艺下SpursEngine的SPE单元面积要小27%,布线长度短了28%。从上面的描述大家可以知道,SpursEngine和Cell的定位非常不一样,Cell本身可以作为独立的处理器使用,而SpursEngine则只是一个协处理器类型的产品,要使用的话就必须安装在有CPU的主机上。
转码卡采用PCI-Ex1接口与北桥进行通信,由于该卡高编码能力为50Mbps的视频流,显然PCI-E x1 500MB/s的带宽已完全够用。同时由于核心芯片TDP不到20瓦特,因此转码卡可以采用十分精简的low profile(半高)PCB 设计,PCB末端还配有一个3.5 英寸软驱电源连接器。
该产品提供了Ulead DVD Movie Writer5 、Ulead Video Studio 11 Pluuis以及InterVideo WinDVD 8三种软件,其中Ulead DVD Movie Writer 5可以实SpursEngine的硬件转码支持,而另外的两个软件则不能。
型号为SE1000的SpursEngine芯片,四角有软垫,让散热器可以不压坏芯片的情况下提供足够的散热接触面积。
板载两颗ELPIDA的XDR内存颗粒,合计容量为128MB,主要是用于存放源数据和处理中临时存放在本地的数据。
测试平台
处理器 Intel Core i7 920
内存 1GB DDR3×3
显卡 GeForce GTX 260
操作系统 Windows Vista Ultimate 64-bit SP1
高清转码卡转码软件 TMPGEnc 4.0 XPress 4.7.0.276英文测试版
CRI Middleware SpursCoder
处理器转码软件 x264 build 1128+MeGUI
NVIDIA CUDA转码软件 ETI Badaboom
正如我们前面所说,目前用户主要采用处理器转码,以及基于CUDA技术的显卡转码,因此接下来我们将采用丽台高清转码卡与这两种转码方案进行对比。测试中我们将把一段720×480 24p的MPEG-2视频转码为不同码率的H.264视频,该视频来源为电影《叶文》的蓝光版,码率为8332kbps CBR,长度大约是1'34",帧数为2256帧,逐行模式。
测试期间,通过丽台新提供的插件,TMPGEnc 4.0 XPress已能实现对高清转码卡的支持,同时由CRI Middleware提供的SpursCoder(SpursCoder 是一个命令行程序,适合于需要批量处理的专业用户使用)也能实现高清转码卡硬件转码,因此我们的高清转码卡将配合这两个转码软件对视频进行转码。
处理器转码方面我们使用了x264编码器,该编码器是一个纯CPU H.264命令行编码器,网络上有非常多基于x264的图形界面程序,我们在测试中采用了MeGUI。
而NVIDIA方面则采用了ETI Badaboom,它是目前采用CUDA技术实现转码效果好的产品。需要注意的是,我们的片段只包括了视频,不包括音频,因此转码过程并不涉及到音频转码。
我们将测试分为性能和品质两部分,之所以有这样的安排,是因为单纯依靠速度或者画面对比都不可能将各转码方案的实力完全展现出来。因此我们这次测试一方面提供了性能方面的数据,一方面也提供了数字量化的客观对比作为画面品质的参考依据,下面就让我们先看看速度上的表现吧。
SpursEngine+TMPGEnc 4.0 XPrss 4.70 500kbps 第342帧
SpursEngine+TMPGEnc 4.0 XPrss 4.70 1000kbps 第342帧
从速度测试来看,所有的编码器都能对这个视频源实现播放速率两倍以上的编码速度,其中表现出色的是采用TMPGEnc4.0 XPress+SpursEngine高清转码卡的组合,可以达到8.55倍。不过如果在这个组合里再打开CUDA功能的话,这个速度就会下降到4.48倍。我们分析这可能是因为TMPGEnc4.0 XPress 4.70内置的CUDA功能只能在解码阶段和滤镜处理阶段进行加速而已,而我们的测试过程并不涉及滤镜,因此打开CUDA功能后会导致TMPGEnc与显卡进行无意义的数据通信,产生一定的CPU占用率,从而导致加速效果打折。
SpursEngine+TMPGEnc 4.0 XPrss 4.70 1500kbps 第342帧
SpursEngine+CRI SpursCoder 2.01 500kbps 第342帧
而另外一种采用CRI SpursCoder+SpursEngine高清转码卡方案的表现也不错,是实时播放速率的5倍多一些,但整体性能低于基于x264的处理器转码方案。可以看到采用x264的处理器转码方案在各个码率段都能达到5倍以上的速率。
CUDA方面,TMPGEnc 4.0 XPress 4.70采用CUDA加内建的Mainconcept编码器达到的性能是一般的,只有两到三倍速率。而同样是采用CUDA的Badaboom就能达到大约5~6倍的速率,整体性能仅略差于x264转码方案。
画质测试上,如单纯用某帧画面的截图来做对比在一定程度上是比较直观的,但是对于整段视频来说这样的方式就不够全面。要比较公平的对比,好的办法是除了主观的画面截图评定外,还需要一些数学模型来对画面的每帧质量进行评估,实现量化的客观对比。我们终决定借助Elecard Video Quality Estimator视频画质评估软件的SSIM数学模型作为这次画面品质评定的指标,原因在于SSIM的数值可以比较精确地反映画面的主观视觉品质。
各方案编码时间对比
SSIM是一个数值区间为0~1的指数,0代表和参考源完全不相干,1表示和参考源完全一致,SSIM值越高,与参考源的一致性就越高。例如SSIM=1就是和原视频完全一致,SSIM等于或者大于0.98就是难以与原视频分辨区别,SSIM等于0.95的时候大多数人都会对画面满意,这个数值可以认为是及格的画面。SSIM等于0.90的时候意味着瑕疵可能要比0.95多一倍,相当一部分人会察觉到明显的画面劣化,低于这个数值的可以判定为没有实际观赏价值。由于目前的编码大都采用了4:2:0的YUV数据比例来压缩,Y通道的数据信息是丰富的,因此我们这次测试使用的SSIM值是取自Y通道的,你可以称之为Y-SSIM。
各方案编码速度对比
指标确定后我们遇到了另一个问题,那就是一些编码器编码出来的画面并不完全与原视频一致,例如TMPEGEnc+SpursEngine的画面会落后原视频两帧、Badaboom后的两帧画面丢失。对于这些现象,我们采取了帧偏移调整以及只从第11帧到第2245帧的场景进行对比,以确保这次对比的公平。不过TMPGEnc+Mainconcept+CUDA的视频出现了大约每400帧画面就会产生一次画面匹对不正确的问题,因此我们在测试里舍弃了这个组合的量化对比。
SSIM整体测试成绩
在画面对比的时候,我们的解码软件统一采用了CoreAVC 1.9.5,关闭CUDA使用CPU执行解码处理。
首先我们采用转码后的第342帧画面进行一些简单的品质对比,需要注意的是这个对比的目的并不是简单地告诉大家画面品质,而是透过这个图片对比大致了解不同SSIM值的画面表现。
可以看到,尽管CRI SpursCoder在转码速度上不敌TMPGEnc XPress,但在这帧画面的对比上,CRI SpursCoder具备远优于TMPGEnc XPress的表现,在500kbps达到了接近TMPGEnc 1500kbps的结果。
下面让我们看看各个编码方案的SSIM整体成绩,毕竟上面的第342帧只是TMPGEnc表现差的一格画面。
从测试结果来看,尽管SpursEngine高清转码卡+CRI SpursCoder组合的速度只有SpursEngine高清转码卡+TMPGEnc XPress的一半左右,但其画质SSIM成绩的确远胜TMPGEnc XPress,并一直抛离后者。与NVIDIA的Badaboom相比,CRI SpursCoder的画面品质在2000kbps也保持一定的优势,只是在2500kbps后被Badaboom 1.1.1略微反超。不过和采用x264的处理器转码方案相比,CRI SpursCoder在速度、画面品质上依然有不小的距离。
按照丽台提供的SDK(软件开发包)里的文档,这款高清转码卡的解码、编码能力如下:
MPEG-2解码 |
H.264解码 | |
分辨率 |
Min 352×240 |
Min 352x240 |
视频编码格式 |
|
|
|
MPEG-2编码 |
H.264编码 |
码率控制 |
CBR/VBR |
CBR/VBR |
高码率 |
45Mbps |
50Mbps |
分辨率 |
Min 320×240(progressive) |
Min 320×240(progressive) |
视频编码格式 |
YUV 4:2:0 |
YUV 4:2:0 |
注:视频转码主要由视频解码、解码后的后处理、编码前预处理、编码、编码后的后处理、视频封装等几个步骤构成,理论上高清转码卡能对视频封装前的各个步骤实现硬件处理或者硬件加速。
由于转码卡具体的能力规格还涉及到帧率、隔行/逐行模式等,因此大家可以在丽台网站上查阅关于该卡的详细文档资料。总体来看,该卡在规格方面还是不错的,高可以实现平均码率达50Mbps的H.264影片编码,这对于普通用户来说完全够用。不过对于专业用户来说,该卡缺乏对H.264 lossless(无损转码)的支持,这是因为SpursEngine芯片的处理能力无法处理无损转码时的高码率。(例如19201080的lossless码率需要达到90Mbps以上)。
在实际接触丽台高清转码卡之前,我们是抱有非常大的希望,毕竟之前的Badaboom这类支持GPU编码的软件虽然速度表现不俗,但是画面品质不够理想,因此我们对这款在CUDA诞生一年后的产品寄予了厚望。然而依照目前的测试来看,丽台PxVC1100高清转码卡与其它转码方案相比,仅仅是在使用TMPGEnc XPress时才能在速度上发挥出明显的优势,但TMPGEnc XPress会带来严重的画质问题(需要两倍的码率才能达到x264的水准)。而支持PxVC1100的另外一种编码器CRI SpursCoder虽然在画质上有所改善,但总体来看,其整体素质只与NVIDIA CUDA转码方案相当。
因此,我们认为丽台应加强与TMPGEnc所属公司倍加喜事株式会社的合作,一旦画质问题攻关成功,那么高清转码卡将真正成为一款令人期待的产品。