2024年5月26日发(作者:)

-

网易视频云:视频硬件编码技术比照——QuickSync vs NVenc vs AMD VCE

Quicksync

Intel在 Sandy Bridge 架构 CPU 中引入了的 MF*〔Multi-Format Codec

Engine,多格式编解码器引擎〕视频处理引擎。

第一代 MF* 是从 Sandy Bridge 上引入的,现在的 Ivy Bridge 和下一代的

Haswell 也分别具备第二和第三代 MF*, Ivy Bridge 的第二代 MF* 主要是改

良了性能,而 Haswell 的第三代 MF* 除了速度比Ivy Bridge 更快外,在同码

率画面品质方面也会有 11% 的改良。

MF* 包含了解码器、编码器和视频效果处理器三局部,其中编码器属于二工位混

合式的硬件编码器。

Intel 将编码器的动作分为两组,即 ENC 和 PAK,其中 ENC 包括了码率控制、

运动估算、帧间估算、模式抉择;而 PAK 包括了运动补偿、帧间预测、前向量

化、像素重构、熵编码。

ENC 操作由 GPU 的可编程 EU 矩阵执行,PAK 则是 MF* 的硬件流水线执行,两

组动作对不同的帧同时执行,可以藉此到达最高性能。

MF* 令人印象深刻的还有它的解码器性能。例如我们测试的 16 分钟 1080p 片

段,在基于 GF110/GF104 的 GT* 580/GT* 560 Ti 上解码性能为 94.2 fps,基

于GK104 的 GT* 680 是 158fps,而在 Sandy Bridge/ Ivy Bridge 的

i7-2600K/3770K 上解码性能居然分别高达让人瞪目乍舌的 460fps、606fps。

硬件解码性能的强大,除了说明 GPU 能应付更复杂的视频解码外,还意味着可

以在转码的时候更多地解放 CPU 负荷。此外,IVB的Quick Sync也统一到了

Media SDK API下。

CUDA/NVENC

首先要说明,CUDA Encoder 和 NVENC 是两个不同的东西,前者是采用 GPU 的

通用计算单元进展编码加速,后者则是增加了专门的硬线化编码电路作编码加

速。

在今年发布的 Kepler 家族 GPU 中,NVIDIA 集成了专用的 h.264 硬件编码器

——NVENC,这和之前的 CUDA 编码器有很大的不同,因为之前的 CUDA 编码器

是由 GPU 的通用计算执行局部 h.264 算法来实现加速。而 NVENC 则主要由专

-

门为 h.264 算法定制的硬件单元来执行编码操作,主要的好处是在进展编码操

作的时候性能/耗电比要比 CUDA Encoder 高很多。

目前在官网已经提供了有关NVENC 的SDK可以下载,NVIDIA NVENC 能实现 4K

分辨率、支持 h.264 High Profile 4.1、3D 视频流压缩。支持 NVENC 的编码

器有有很多软件,例如 Cyberlink 的 Media Espresso 转码器媒体测试专用版。

VCE

AMD在最新一代的G架构中增加了专用的VCE〔Video Encodec Enigine〕引擎,

支持1080P 60fps视频转码,而且支持完整的H.264规*〔前一代转码只支持H.264

Baseline〕,唯一的问题是软件支持度不够好,发布5个多月了才有

MediaEspresso支持。

画质比照

用的是PSNR和SSIM数值,PSNR〔Peak signal-to-noise ratio,

峰值信号噪点比例〕是信号强度与噪点强度的比值,可以用来衡量有损压缩编码

过程中的失真度。而SSIM〔structural similarity inde*,构造相似指数〕也

是用来衡量两*图片之间的相似度。

上面的计算只是基于平均状况,并不是全部内容,再来看一下500*逐帧截图中

的SSIM指数吧。

./marc/h264nvenc/"focus_inception720ps1

真实截图比照./marc/h264nvenc/"inception720a

原文作出了动态效果,最下面是各种编码方案的画质选择,点击左侧局部,转码

后的截图就会出现在网页左边,右边则是另一种方案的画质截图,比方上图中我

选择了原图与GT* 670〔NVENC〕编码,效果就是这个样子。

结果是:NVIDIA GPU加速编码的画质损失依然是最严重的,而最新的H.264编

码做的比拟好,特别是2-pass画质十分接近原始画质。

转码速度及功耗

使用的影片是720P分辨率的"阿凡达",结果如下:

〔说下表格的数据,第一列是转码时间,之后是待机功耗,第三列是转码时的功

耗,最后一列是功耗差值〕

来看NVENC,其转码速度明显优于GT* 480,性能高了133%之多。功耗方面,

-

固定转码单元的GT* 680比GT* 480只低了21W,从差值上看也只有11W,并没

有表现出比预期更明显的优势。

总的来看,Quick Sync依然是最好的编码加速方案,功耗和转码性能上都

排名第一。另外,H.264 1-pass编码速度要比CPU还快,画质也高一些,而2-pass

编码的速度不出意外地倒数第一,但是画质上傲视群雄。

如果以W〔功耗〕/H〔时间,小时〕为根底来看〔转码功耗乘以时间〔s〕

再除以3600,上图中的法文符号","在英文中是".",也就是说上图中的数值是

6.87、8.95这样的小数而非整数〕,Quick Sync转码每小时消耗了0.83W电力,

而GT* 670、GT* 680消耗的电力在3.10、3.24左右,其他方案消耗的就更高了,

GT* 480效费比最差。

总结:

无论转码速度还是转码效率,Quick Sync依然是最正确的方案,NVIDIA的NVENC

要胜过前代的CUDA方案,但还是比不过Intel。H.264软件转码中1-pass速度

要超过CPU转码,2-pass虽然速度最慢,但是画质是最好的,适合对画质有较

高要求的场合。至于AMD,技术上是好的,软件支持是杯具的。

QuickSync是目前最快同时画质上最接近CPU的转码方案;NVENC的画质仍然难

以让人满意;*264〔CPU〕在速度上的明显劣势使其除了追求高压缩率进展2-pass

以外没有其他的价值;AMD VCE 最差。

1、通用性: FFMPEG(*264) > CUDA > Quick Sync

2、速度: Quick Sync > CUDA > FFMPEG(*264)

3、质量: FFMPEG(*264) > Quick Sync > CUDA