264、x265、libaom、vvenc 对比测试实验
- 测试机器配置:Apple M1 Pro -16G
- 编码器版本(选择自己编译):所有源码都是当前最新更新的状态,此外各类编码具体的编译过程可参考我的相关系列博客。
- 测试序列:
序列 |
分辨率 |
格式 |
位深 |
帧数 |
复杂度 |
parkjoy |
1920x1080 |
yuv420 |
8 bit |
500 |
复杂 |
KristenAndSara |
1280x720 |
yuv420 |
8 bit |
600 |
简单 |
parkjoy 示意图:

KristenAndSara 示意图:

- 命令行:统一设置 fps=25,其他保持默认,不区分 gop、帧类型等编码参数,libaom 也设置了额外参数,默认的需要 2pass 且太慢了。
编码器 |
命令行 |
x264 |
./x264 --input-res wxh input.yuv --fps 25 --bitrate x -o 264.h264 |
x265 |
./x265 --input input.yuv --input-res wxh --fps 25 --bitrate x -o 265.h265 |
libaom |
./aomenc -w 1920 -h 1080 --fps=25/1 --target-bitrate=10000 --passes=1 --cpu-used=6 -o av1.ivf parkjoy1920x1080.yuv |
vvenc |
./vvencFFapp -i parkjoy1920x1080.yuv --Size 1920x1080 -fr 25 --NumPasses 1 --TargetBitrate 8000k --BitstreamFile out.h266 |
- FFmpeg 计算 psnr 命令行:
./ffmpeg -s <宽x高> -pix_fmt <像素格式> -i <受损YUV文件> -s <宽x高> -pix_fmt <像素格式> -i <原始YUV文件> -lavfi psnr=stats_file=psnr.log -f null -
- 测试实验数据:
【注:ffmpeg 解码 h266 文件无法正确解码,但 ffplay 播放正确,还未排查到具体原因,所以 psnr 直接用的 vvenc 自带的计算方法 】
视频序列 |
编码器 |
输入 bitrate |
实际 bitrate |
psnr |
time |
parkjoy |
x264 |
20000 kb/s |
19381 kb/s |
y:32.080550 u:34.560996 v:36.789507 |
41.46 fps |
parkjoy |
x265 |
15000 kb/s |
14368 kb/s |
y:32.000424 u:34.508438 v:36.658605 |
19.91 fps |
parkjoy |
libaom |
10000 kb/s |
11786 kb/s |
y:32.142619 u:34.909916 v:37.123507 |
1.48fps(good 模式太慢了,可以选择 rt 模式,但压缩率又不行) |
parkjoy |
vvenc |
8000kb/s |
8403 kb/s |
y:32.0261 u:34.9815 v:37.7377 |
0.2 fps |
视频序列 |
编码器 |
输入 bitrate |
实际 bitrate |
psnr |
time |
KristenAndSara |
x264 |
2000 kb/s |
2007 kb/s |
y:43.002695 u:47.506855 v:48.331598 |
103 fps |
KristenAndSara |
x265 |
1000 kb/s |
1003 kb/s |
y:42.910271 u:47.303976 v:48.195422 |
87 fps |
KristenAndSara |
libaom |
400 kb/s |
395 kb/s |
y:42.900337 u:48.015101 v:48.909220 |
10 fps |
KristenAndSara |
vvenc |
500kb/s |
490 kb/s |
y:42.9935 u:48.1547 v:49.1280 |
1.2 fps |
- libaom 中的 rt 模式和 good 模式
视频 |
模式 |
码率 |
psnr |
time |
KristenAndSara |
good |
395 kb/s |
y:42.900337 u:48.015101 v:48.909220 |
10 fps |
KristenAndSara |
rt |
1448 kb/s |
y:42.970161 u:46.734927 v:47.505803 |
90 fps |
- 结论:
标准 |
压缩率(1080p) |
压缩率(720p) |
H264 |
1×(基准) |
1×(基准) |
H265 |
25.86%提升 |
50% 提升 |
AV1 |
39.18%提升 |
80% 提升 |
H266 |
56.64%提升 |
75.58% 提升 |
- H265 相较于 H264,BD-rate 平均可以提升 25.86% ~ 50%;
- AV1 相较于 H264,BD-rate 平均可以提升39.18% ~ 80%;
- H266 相较于 H264,BD-rate 平均可以提升 56.64% ~ 75.58%;
- 可以发现,在低分辨率简单场景视频下,AV1 的 RD 能力还比 H266 略微强点;
- libaom 中的 rt 模式下编码速度会更好,但 RD 能力不如 good 模式;
- 所得到的结论是粗略的,没有完全对齐所有编码参数,仅作参考。