引言
1988年,从H.26x系列标准的初代成员H.261面世,这一标准是由 ITU-T VCEG(视频编码专家组,Video Coding Experts Group)针对视频会议系统制定的,并获得商业化成功的第一个视频编码标准,自此传统视频编码技术开始了快速发展,各种国际标准持续涌现和迭代。H.264 作为目前市占率最高的视频编码标准,其开源x264的实现被各个视频厂商青睐,仍然有着较高的使用场景。
2021 年云栖大会,平头哥半导体发布首颗为云而生的 CPU 芯片倚天 710,该芯片针对云场景研发,同时兼顾了性能与易用性。而搭载倚天 710 的 ECS 自设计初就是一款云原生服务器,凭借其灵活、先进、弹性的云原生芯片特性和优异的 CPU 算力,超低功耗,与视频的转码服务特点强匹配,为视频编解码业务带来更多可能。
倚天ECS x264性能
本文将基于x264这个场景实测对比倚天ECS c8y实例和Intel c7 实例的编码性能。
被测ECS实例配置如下:
实例 |
CPU Type |
OS |
ecs.c8y.8xlarge |
Yitian 710 |
Alibaba Cloud Linux 3 |
ecs.c7.8xlarge |
Intel Icelake Platinum 8369B |
Alibaba Cloud Linux 3 |
测试序列
测试的视频类型包括了射击游戏、晚会、综艺、足球、MOBA游戏、F1赛车、直播带货等场景,共计9个视频,取9个视频综合的性能进行比较。测试序列均为分辨率1080P的视频。
测试软件版本
测试软件使用的是开源的x264 master版本,以及平头哥团队针对倚天平台做的性能优化版本。
点播场景
点播场景的测试为:通过不断增加编码路数,直到32C下总FPS不再增加,记录此时编码速度FPS。
使用的测试命令为:
$x264_path/x264 --input-res $origin_width"x"$origin_height yuv/$line.yuv --output $line"_"$tbr"b_"$video_idx.264 --keyint 250 --min-keyint 250 --bitrate 3000 --fps $origin_fps --frames 1000 --preset medium --threads 6 #倚天版本的性能优化开关由lossy-speedup=1参数控制,额外增加此选项
测试数据:
32C 实例下多个序列的平均的编码速度(FPS)
测试路数 |
ecs.c8y.8xlarge(Yitian 710) |
ecs.c7.8xlarge(Intel Icelake) |
|
open-x264 (FPS) |
yitian-x264 (FPS) |
open-x264 (FPS) |
|
1 |
49.96 |
59.02 |
70.37 |
2 |
98.33 |
116.33 |
137.04 |
4 |
195.87 |
230.71 |
197.07 |
6 |
273.73 |
323.13 |
241.73 |
8 |
291.02 |
345.07 |
249.24 |
10 |
297.44 |
353.33 |
250.89 |
12 |
300.13 |
357.47 |
251.6 |
14 |
301.16 |
358.87 |
252.31 |
16 |
302.58 |
359.82 |
252.62 |
测试结果显示,在高并发路数下, 开源版本的x264的点播场景 ecs.c8y.8xlarge相比ecs.c7.8xlarge 平均将近20%的性能优势,优化版本的x264更是在性能上领先达40%以上。
直播场景
直播场景的测试为:通过ffmpeg的-re参数控制编码速度与源fps一致,增大并发直到fps开始下降,记录最大并发路数。
测试命令为:
$x264_path/ffmpeg -re -i eg/$line -c:v libx264 -x264-params psy=0:keyint=$key_int:threads=6:vbv-maxrate=3000:vbv-bufsize=4000:bitrate=3000:bframes=1:rc-lookahead=4:subme=2 -vframes 2000 -loglevel info -an -f mp4 $line"_"$video_idx.mp4 -y #倚天版本的性能优化开关由lossy-speedup=1参数控制,额外增加此选项
测试数据:
各个视频序列的最大并发路数:
测试序列类型(帧率) |
ecs.c8y.8xlarge(Yitian 710) |
ecs.c7.8xlarge(Intel Icelake) |
|
open-x264 (最大并发路数) |
yitian-x264 (最大并发路数) |
open-x264 (最大并发路数) |
|
射击游戏1 (30fps) |
20 |
23 |
16 |
晚会 (25fps) |
17 |
22 |
15 |
综艺 (25fps) |
21 |
24 |
16 |
射击游戏2(30fps) |
17 |
19 |
13 |
足球 (25fps) |
22 |
25 |
17 |
MOBA游戏(40fps) |
17 |
20 |
13 |
F1赛车(25fps) |
20 |
23 |
16 |
MOBA游戏2 (25fps) |
23 |
26 |
18 |
直播带货(25fps) |
39 |
44 |
29 |
Average |
25.1 |
21.8 |
17 |
测试结果显示,在直播场景下,使用开源版本的x264,ecs.c8y.8xlarge相比ecs.c7.8xlarge 平均超过25%的性能优势,优化版本的x264更是在性能上领先达45%以上。
总结
本文基于x264编码针对点播场景和直播场景分别对ecs.c8y和ecs.c7进行评测,测试结果显示c8y实例性能领先于c7。这个主要得益于yitian芯片的强劲算力和稳定的物理核,使得在负载增加的情况下,表现出来的性能更加稳定。此外,基于倚天710的c8y实例售价比c7实例更低,更好的性能以及更低的价格,使得倚天710的性价比更加突出,不失为在视频编解码场景一个更佳的选择。