MCPLive > 杂志文章 > CPU or GPU? 视频编码速度大比拼

CPU or GPU? 视频编码速度大比拼

2011-03-22《微型计算机》评测室《微型计算机》2011年2月下

今年1月,《微型计算机》评测室对两颗Sandy Bridge正式版处理器Core i5 2600K和2500K进行了详细评测。Sandy Bridge处理器在架构更新后,性能得到了大幅度的提升,成为目前值得选购的高性能处理器。而且,Sandy Bridge处理器的视频编码能力还得到了突飞猛进的进步。面对需要经常进行视频编码的高端用户来说,除了CUDA之外又有了新的选择。那么,在视频编码时究竟选择CPU还是GPU呢?让本篇评测解决你的所有疑问。

Intel智二代处理器Sandy Bridge所整合的核芯显卡在性能上得到了明显提升,提升的部分除了3D性能,还表现在视频编码能力方面。首先,我们来了解一下Intel、NVIDIA和AMD三家显示核心的视频处理能力。在大部分用户所关心的视频解码方面,Intel、NVIDIA和AMD的显示核心都包含硬件解码电路,所以在播放高清视频时,都可以通过显示核心对视频进行解码,处理器占用率很低。而在视频编码方面,之前Intel、NVIDIA和AMD三家的显卡都没有专用的硬件编码电路。不过NVIDIA和AMD的显卡可以通过显示核心的通用计算能力对视频编码进行加速,速度要快于使用处理器的软件编码方式。

而在Sandy Bridge处理器中,则直接包含了硬件编码电路。Sandy Bridge处理器所整合的HD Graphic 2000、3000核芯显卡具备Quick Sync Video功能,通过核芯显卡内部集成的硬件电路,提供了H.264、VC-1和MPEG-2视频的硬件编码功能。与硬件解码类似,在使用该电路进行编码工作时,将显著降低处理器占用率,并大幅度提高视频编码速度。在1月下刊的Sandy Bridge正式版处理器的评测中,就包括了视频编码性能测试。Sandy Bridge处理器核心显卡所整合的Quick Sync Video功能使它在对视频进行编码时,性能得到了大幅度的提升。不过当时对Quick Sync Video的性能测试并不全面,没有和之前常用的显卡CUDA、Stream加速功能进行对比,Intel Quick Sync Video和显卡加速究竟哪个更快?在插上独立显卡之后,Quick Sync Video功能还能实现吗?究竟哪种编码方式的画质佳?这些问题都将在接下来的评测中解决。

Intel Quick Sync Video引擎

我们在处理视频片段时,往往需要对视频进行重新编码,改变视频大小或者封装格式。比如将网络下载的1080p高清视频压缩成苹果所支持的H.264格式720p视频,方便在iPad上观看;将DVD视频压缩成MP4,方便在手机上观看;或者将DV拍摄的高清视频压缩成DVD,刻录在光盘上……这些视频的处理过程都是相当耗时和耗费资源的。在以往的视频编码处理过程中,一共分为五步,分别是视频输入、解码、处理、编码和输出视频。

而在解码、处理和编码这三部主要步骤中,之前的处理器整合显示核心和独立显卡仅支持硬件解码,处理和编码这两步都是通过软件进行的,或者利用显卡的通用计算能力进行加速。而现在的Sandy Bridge处理器所整合的Intel Quick Sync Video引擎,将全部采用硬件电路对视频的解码、处理和编码这三步进行处理。

测试平台和方法

测试平台

处理器 Intel Core i7 2600K(4C8T)
主板 华硕P8H67-M EVO
内存 金邦DDR3 1600 2GB×2
硬盘 西部数据 1TB
显卡
HD Graphic 3000、
GeForce GTX 460、Radeon HD 6850
电源 航嘉多核R80

测试平台所搭配的显卡分别是Core i7 2600K处理器所包含的HD Graphic 3000核芯显卡、NVIDIA GeForce GTX 460显卡和AMD Radeon HD 6850显卡。这三款显卡代表了目前三种视频编码加速方式,分别是Intel Quick Sync Video、NVIDIA CUDA和AMD Stream。而我们在前面也介绍过,Quick Sync Video是Intel所推出的专用编码硬件加速引擎,而CUDA和Stream则是通过显卡流处理器来加速视频编码。

测试所使用的软件分别是Arcsoft Media Converter 7、Cyberlink MediaEspresso 6.5和MediaCoder。前面两种软件支持全部三种视频加速功能,但是功能相对简单。MediaCoder的功能丰富,不过仅支持CUDA加速。测试视频则是三段1080p的高清视频文件,分别是MPEG-2、VC-1和H.264三种视频格式。测试时将这三种视频格式转换成一段720p分辨率、H.264视频编码、MP3音频编码、MP4格式的视频和一段640×480分辨率、H.264视频编码、AAC音频、MP4格式的视频。(在编码过程中我们会尽量统一细节规格,但是不同软件之间在部分规格上无法做到统一,所以测试结果仅能用于判断硬件加速的能力,而不要对比三款软件的编码性能。)通过评测,我们将对比在这三种软件中,Quick Sync Video、CUDA和Stream三种加速方式的速度快慢以及画质优劣。

测试软件介绍

Media Converter 7是一款非常好用的软件,它可以支持Quick Sync Video、CUDA和Stream三种加速方式。在搭建独立显卡之前,可以看到在Media Converter 7的右下角上有一个硬件加速的选项,可以选择Quick Sync Video,或者选择none不开启任何硬件加速功能。而且Media Converter 7也是我们测试的三款软件中,唯一一款可以实现VC-1视频格式编码的软件,在MediaEspresso和MediaCoder中都无法支持。


右下角有Quick Sync的硬件加速选项,插上不同的显卡后会改变为对应的加速选项。

MediaEspresso 6.5也同样支持Quick Sync Video、CUDA和Stream三种加速方式,在设置选项中,拥有硬件解码和硬件编码两个选择。同时都勾选上后,就能看到硬件加速的绿灯亮起。在编码过程中也有相应的Intel、NVIDIA或者AMD的图标,显示目前正在以哪种硬件在加速。


需要同时勾选硬件解码和硬件编码

MediaCoder则是在用户中流行非常广泛的一款编码软件,功能也丰富。但是它的加速功能略有欠缺,暂时不支持Intel处理器和AMD显卡加速编码。


要支持CUDA需要在编码器中选择CUDA Encoder

Intel Quick Sync Video

Core i7 2600K处理器1080p转720p

这一段测试是使用Intel Core i7 2600K处理器的HD Graphic 3000核心显卡,将三段1080p的高清视频编码为720p分辨率、H.264视频编码、MP3音频编码、MP4格式的视频。在打开Quick Sync Video功能后,将会大幅度缩短视频编码时间。仅需要2到3分钟,就可以把一段4.3GB的1080p视频转换为720p,速度快得令人惊讶。在我们之前的印象中,处理器要完成这样的编码过程一般是需要10多分钟才行。在支持Quick Sync Video的Media Converter 7和MediaEspresso 6.5中,两者的编码时间都比较接近。Quick Sync Video发挥了非常重要的作用,大幅度缩短了视频编码过程。

在关闭Quick Sync Video功能后,编码时间大幅度延长,Media Converter 7所编码的MPEG-2格式的视频时间从153秒延长到了472秒。MediaEspresso的处理器软件编码时间,更是延长到了十几分钟。打开Quick Sync Video硬件加速后性能增长幅度大的是MediaEspresso 6.5在转换MPEG-2格式的视频时,性能提升幅度达到了470%。而性能提升小的是Media Converter 7在转换VC-1格式的视频时,性能提升幅度也有140%。可见Quick Sync Video硬件加速功能的确在视频编码过程中非常给力。而关闭Quick Sync Video前后,处理器占用率也有明显变化。在关闭前,处理器占用率在16%左右,工作负荷主要在显卡上。而关闭后,处理器占用率升至60%。

在关闭硬件加速功能后的处理器软件编码的过程中,三款软件的编码时间也有较大的差异,其中Media Converter 7的编码时间较快,MediaEspresso 6.5的编码时间长。这个问题我们在前面有所描述,是因为编码细节设置不同造成的。MediaEspresso 720p的码率设置小是6Mb/s,而另外两款软件码率设置为4Mbps,所以造成测试成绩有一定的差异,不要横向对比三款软件的编码速度。由于MediaCoder不支持Intel Quick Sync Video加速,所以编码过程比较长。

Core i7 2600K处理器1080p转iPhone格式

这一段测试是将三段1080p视频编码为iPhone所使用的格式,分辨率从1080p转换到640×480,同时编码为H.264视频格式、1Mb/s码率、AAC音频和.MP4文件格式。在编码过程中,是否开启硬件加速对测试成绩造成的影响依然很明显。在开启硬件加速后,编码时间仅需1分到1分半。Media Converter 7和MediaEspresso 6.5的编码时间都比较接近,快的不到1分钟就完成编码过程。在关闭Intel Quick Sync Video后,编码时间相应延长,普遍需要4到5分钟才能完成编码。

三款编码软件的编码时间差异相比转换720p格式时要小了不少,不过开启硬件加速和关闭硬件加速之间的性能差别还是相当明显,差距大是在MediaEspresso 6.5编码H.264的时候,提升幅度达到了433%。我们还尝试过转换为视频分辨率更小的320×180,在这个分辨率下,是否开启硬件加速功能对性能的影响已经很小了。甚至还有开启硬件加速后,编码时间超过处理器软件编码时间的情况存在。因为这个时候,处理器硬件加速的作用就小了。

NVIDIA CUDA

GeForce GTX 460显卡1080p转720p

CUDA编码在我们之前的测试中,能够显著地提高编码速度,那么在面对Quick Sync Video的挑战时,还能从容应对吗?CUDA对视频编码加速能力是显而易见的,只是Quick Sync Video的性能改善幅度的确太大,CUDA落后了。

在这里,关闭CUDA加速时的测试成绩和前一小节测试中关闭Quick Sync Video的测试成绩很接近,因为它们都是通过处理器进行软件编码的,所以在排除测试误差外成绩相差不明显。在大部分测试中,CUDA加速的性能都能比软件编码提升一倍或者更多。虽然没有Quick Sync Video那样有夸张的4倍速提升,但是也已经很给力了。

GeForce GTX 460显卡1080p转iPhone

在使用GeForce GTX 460显卡转换视频时,由于编码输出的视频分辨率缩小,CUDA加速的作用变得更不明显了。大部分项目所耗费的时间都和软件编码所耗费的时间接近。我们还观察到了一个有趣的现象,MediaEspresso 6.5在开启CUDA加速后的成绩反而比关闭CUDA加速后更差。

再对比前面的1080p转720p视频的成绩,开启CUDA加速后的成绩几乎一样。这说明这款软件在利用CUDA进行加速时,在某个环节没有优化到位,导致不论选择哪种分辨率和码率,都是一样的时间消耗。

AMD Stream

Radeon HD 6850显卡1080p转720p

在以往的测试中,我们已经了解到AMD显卡的Stream编码效率要比NVIDIA的CUDA编码效率要略低。实际的对比结果也基本是这样,只有在Media Converter 7编码MPEG-2视频时略微领先GeForce GTX 460显卡。而且支持Stream的编码软件数量要比支持CUDA的更少,MediaCoder就没有提供支持。在AMD显卡Stream加速功能中,虽然也有一定的性能提升幅度,但是编码效率要低于CUDA。

部分测试项目中,编码耗费的时间只是从400多秒缩短到300多秒。我们还发现在VC-1的编码中,关闭硬件加速后消耗的时间还要更短。这应该是因为Sandy Bridge处理器的计算能力非常强,编码的效率比Stream更高。

Radeon HD 6850显卡1080p转iPhone

从这个部分可以看出,在视频编码时,如果视频数据量过小的话,Stream加速并不一定就能提升编码速度。在把1080p编码为iPhone格式的大部分测试项目中,Stream编码的速度反而比处理器软件编码的速度慢。MediaEspresso在Stream编码H.264视频的时间为530秒,而处理器软件编码的时间却只有393秒。

视频编码速度:Intel Quick Sync Video>CUDA>Stream>处理器软件编码

视频编码画质测试

接下来,我们还将对处理器软件编码、Intel Quick Sync Video、NVIDIA CUDA和AMD Stream这四种编码方式进行画质测试,看哪种编码方式所得到的视频画质好。我们的测试方法是将一段1080p、平均码率为62.4Mb/s、峰值码率超过80Mb/s、采用MPEG-2编码的《阿里山》视频片段转换为1080p、H.264编码、平均码率为10Mb/s的用于在PS3上播放的视频片段。

然后在通过这四种方式编码完成的视频片段中截取出相同的视频帧,通过MSU Video Quality Measurement Tool软件和原视频的画面进行Y通道画质SSIM数据模型的评定。SSIM评定结果越接近1,说明画质越好。

选定帧说明

我们选定的两个视频帧,分别来自该视频的第2107帧和第2153帧。前一帧是一个画面背景较复杂的图像,运动幅度大,画面以树木为主。后一帧是一个画面相对干净,运动幅度较小的静止帧,画面以女孩和树木为主,背景较虚化。

处理器软件编码

处理器软件编码的这两帧视频截图我们很难看出和原始视频截图的画质差异,即使放大后仔细观察像素色调和锐利度,也很难判断哪个是原始视频,哪个是重新编码处理后的视频。唯一的变化是在屋顶和草地的细节上,编码后的视频丢失了一些细节,有些地方变得模糊。在第二张静止帧中,画质细节也有一定丢失,小女孩的脸上的皮肤好像是用Photoshop磨过皮,斑点变不见了。由于画质变化不大,所以处理器软件编码的视频画质在MSU Video Quality Measurement Tool的评定中获得了高分。第一帧图像的SSIM评定分数为0.99184,第二帧图像的SSIM评定分数为0.99648,成绩都非常不错。

 
SSIM=0.99184          SSIM=0.99648

Intel Quick Sync Video编码

Intel Quick Sync Video编码除了细节有所丢失之外,我们发现色彩饱和度和亮度也有一些变化,绿色和红色的饱和度变得更高。这种色彩上的变化不一定是坏事,可能会更讨某些用户的喜爱。只是从遵从原始图像内容的原则来看,色彩发生了不应该有的变化。而且第二帧图像的亮度稍高,通透感更强一些。第一帧图像的评定结果为0.98669,和原始视频的图像画质有了一定差别。

 
SSIM=0.98669          SSIM=0.99581

NVIDIA CUDA编码

NVIDIA CUDA编码所得到的图像从细节来看,并不一定输给处理器软件编码所得到的图像,有些地方的屋顶上红瓦的纹路细节和草地的细节甚至都更好。但是,CUDA编码的图像有点发白,仔细观察会发现噪点变得更明显,使得整体画面变得生硬,这是影响画质的重要原因。再观察静止画面,小女孩脸部出现了并不明显的马赛克。第一帧图像的SSIM评定结果是0.97699,逐渐和原始视频图像拉开了差距,而第二帧静止图像的得分仍在0.99分以上。

 
SSIM=0.97699          SSIM=0.99441

AMD Stream编码

即使不用放大,我们也能看到AMD Stream编码的视频画质变差了。画面细节丢失严重,图像的很多地方都已经糊成一团了。所以,这帧图像的SSIM评定结果仅为0.94592,和其他三种编码方式在画质上拉开了距离。在另一帧静止图像的测试中,画质也发生了较大变化,画面边缘部分锯齿化更明显,但是仍然获得了0.99341的高分。我们觉得这个分数软件给得过高了,肉眼观察这张图片的变化远远比处理器软件编码得分0.99184分的视频帧发生的变化大。

 
SSIM=0.94592          SSIM=0.99341

软件的评定分数很准确地说明视频画质所发生的变化,分数高低和我们肉眼观察所看到的主观感受优劣一样。评定分数0.99分以上并不是画质就没有什么变化了,仍然可以在截图中通过放大后对比出差异。只是在视频连贯播放时,的确不容易注意到码率降低后的细节。而软件评定分数0.95以下时,不用放大图片就能找到画面明显的细节丢失。

从测试结果来看,处理器软件编码和Quick Sync Video编码的视频画质是好的,而其他两种显卡编码的视频都能够比较明显地看到截图上的细节变化。AMD Stream编码的画质差,画面细节已经发生了较大幅度的改变。不过,以上的画质变化主要是在画面较复杂的运动帧中才得到了体现。在画面背景较干净的静止帧中,四种编码的画质变化没有这么明显,SSIM的评定分数都在0.99以上。

视频编码画质:处理器软件编码>Intel Quick Sync Video>CUDA>Stream

我们的视频编码测试感受

通过大量的转码测试,我们总结出了以下五点体会:

1.Intel Quick Sync Video编码性能强

显卡加速视频编码的方案已经非常不错了,能够大幅度领先于处理器软件编码。而Quick Sync Video的编码性能又要远远领先于CUDA或者Stream,是目前用于视频编码的佳选择。

2.视频码率越高硬件加速越明显

能够发挥出硬件编码性能的情况是高分辨率、高码率的视频编码,数据量越大,硬件加速的效果越明显。而在编码为分辨率和码率压缩幅度较大的手机视频时,有时候硬件加速引擎反而不如高性能的处理器软件编码速度快。

3.Media Converter 7的兼容性佳

Media Converter 7对视频编码格式的兼容性佳,它可以支持H.264、VC-1和MPEG-2三种格式。只是在本次测试中Media Converter 7和MediaEspresso 6.5所编码的视频码率不一样,不能直接判断哪款软件的速度更快。而MediaCoder所支持的硬件编码功能少,但是它的功能丰富,能够添加字幕,仍然是国内用户的主流选择。所以,视频编码软件和视频播放软件一样,并不是说软件易用性强,解码能力、编码能力强就能获得用户的喜爱,而是要支持字幕,整合更多的解码器才适合国内用户。我们也希望今后能有更多的视频编码软件支持硬件加速。

4.处理器和显卡硬件编码功能不能并存

Sandy Bridge处理器的Quick Sync Video功能只能在使用核芯显卡时才能启用。如果安装独立显卡后,视频编码软件的硬件加速功能将相应地切换为独立显卡的CUDA或者Stream功能。所以,想要使用Sandy Bridge处理器进行编码的用户必须搭配H67整合主板,放弃独立显卡。或者在需要编码之前,将独立显卡屏蔽,使用核芯显卡。

5.仍然是处理器软件编码的画质佳

处理器软件编码的视频画质是好的,虽然它耗费的时间多。如果是非常在意画质的用户,我们建议通过处理器进行视频编码,不要使用任何硬件加速方法。而非常在意编码时间的用户,可以选择Sandy Bridge处理器,通过核芯显卡的Quick Sync Video功能进行加速。大幅度缩短编码时间,还保证了一定的画质。目前所有的Sandy Bridge处理器都整合了HD Graphic显卡,可以支持Quick Sync Video功能。而对于普通用户,完全可以采用CUDA加速,在小的投入下,获得画质和编码时间的平衡。

分享到:

用户评论

共有评论(1)

  • 2012.05.06 16:03
    1楼

    和解码一样啊,都是软解质量好,只是速度……

    (0) (0) 回复

用户名:

密码: