记录 CPU 和 GPU 编码的速度、压缩率。

测试平台:
CPU:5600G
AMD显卡:5600G自带集显
Nvdia显卡:NVDIA 1650s

总体对比

源文件为手机拍摄的视频,分辨率 1920*1080,帧率 30 fps,编码方式 h264,文件大小 31370 KB。
转码设置分辨率不变帧率,固定质量 22。

视频编码器转码后(KB)压缩率用时(S)速度(fps)
AV12854791%588
AV1 10bit2881592%608
H2641809958%953
H264 10bit1756856%1143
H264 VCE31890102%595
H2651518548%1532
H265 10bit1515348%1826
H265 VCE2811790%4119
H265 10bit VCE2811790%4119

压缩率是转码后文件大小除以转码前文件大小,值越小,表示转码后的文件缩小得越多。超过100%表示转码后的文件,比转码前的文件,还要大。
带 VCE 的选项是 AMD 显卡特有的。NVDIA 显卡则是 NVENC。Intel 是 QSV。安装了对应显卡就会出现该显卡特有的编码器。

FFmetrics对比图像质量结果如下:
ffmtrics.png

PSNR,Peak Signal-to-Noise Ratio,峰值信噪比。值越大,表示图像的质量越好,一般来说:

  1. 高于40dB:说明图像质量极好(即非常接近原始图像)
  2. 30-40dB:通常表示图像质量是好的(即失真可以察觉但可以接受
  3. 20-30dB:说明图像质量差
  4. 低于20dB:图像质量不可接受

SSIM,Structural Similarity,结构相似性。
VMAF,Video Muitimethod Assessment Fusion,视频多方法评价融合。

硬件编码对比

质量都是22。

视频编码器源文件(MB)转码后(MB)压缩率用时(S)速度(fps)
H264148460341%84762
H264 NVENC1484140495%355147
H265 10bit NVENC1484107873%440119
H265 10bit VCE148457439%317165

FFMetrics_file2.png

NVENC 和 VCE 不同质量对比

源文件 1920 * 1080p, 30 fps,1.15 GB,码率 7176 bps, h264。
NVENC 和 VCE 编码速度分别是 200 和 150 fps。
转码为 H265 10bit,分辨率和帧率不变。

编码器质量参数转码后(KB)压缩率码率PSNRSSIMVMAF
NVENC2590851975%535847.79430.993598.3895
NVENC2769853258%405547.72900.992797.8362
NVENC3046497039%267546.07580.991296.4886
NVENC3331307926%175644.82170.989394.4324
NVENC3524873821%136744.01290.988092.8484
NVENC4014854412%76141.57710.982986.7295
VCE221485638123%898142.27200.991997.2070
VCE2591293476%551641.92310.990196.1531
VCE2766193555%399741.60270.988794.9408
VCE3041160534%248341.05420.986292.5639
VCE3136082130%217640.85230.985391.7035

源文件.jpg
nvenc-25.jpg
nvenc-27.jpg
nvenc-30.jpg
nvenc-33.jpg
nvenc-35.jpg
nvenc-40.jpg
vce-22.jpg
vce-25.jpg
vce-27.jpg
vce-30.jpg
vce-31.jpg

结论

  1. 能用硬件就用硬件,毕竟编速度快很多。
  2. 不同编码器的质量参数,对转码后文件的影响不同,不能直接比较。
  3. H265,与 VCE 相比,NVENC 可以在更小的体积下得到更好的画质。

参考链接:

  1. 三大显卡厂商(Intel NVIDIA AMD)产品对硬件解码编码支持程度列表
文章目录