视频编码器的抉择:x264、x265、libaom、vvenc 对比测试实验

264、x265、libaom、vvenc 对比测试实验

  1. 测试机器配置:Apple M1 Pro -16G
  2. 编码器版本(选择自己编译):所有源码都是当前最新更新的状态,此外各类编码具体的编译过程可参考我的相关系列博客。
编码器 GitHub
x264 git clone https://code.videolan.org/videolan/x264.git
x265 git clone https://bitbucket.org/multicoreware/x265_git.git
libaom git clone https://aomedia.googlesource.com/aom
vvenc git clone https://github.com/fraunhoferhhi/vvenc.git
  1. 测试序列:
序列 分辨率 格式 位深 帧数 复杂度
parkjoy 1920x1080 yuv420 8 bit 500 复杂
KristenAndSara 1280x720 yuv420 8 bit 600 简单
  • parkjoy 示意图:

  • KristenAndSara 示意图:

  1. 命令行:统一设置 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
  1. FFmpeg 计算 psnr 命令行:
bash 复制代码
 ./ffmpeg -s <宽x高> -pix_fmt <像素格式> -i <受损YUV文件>  -s <宽x高> -pix_fmt <像素格式> -i <原始YUV文件>  -lavfi psnr=stats_file=psnr.log -f null -
  1. 测试实验数据 :
    【注: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
  1. 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
  1. 结论:
标准 压缩率(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 模式;
  • 所得到的结论是粗略的,没有完全对齐所有编码参数,仅作参考。
相关推荐
AI视频工具指南1 天前
怎么用 AI 做节日祝福视频?
人工智能·音视频·节日
Flynn Liang1 天前
Spring AI 多模态实战(下):文生图 + TTS 语音合成(含 2.0 流式音频分片)
人工智能·spring·文生图·音视频·语音合成·tts·springai
自养Agent1 天前
AI 私有化实战:多模态本地化·视觉与音频怎么装下
人工智能·大模型·llm·音视频·语音识别
lm down1 天前
IndexTTS 2/2.5 轻量版、Qwen3-TTS 轻量版:支持AMD、Intel、NVIDIA显卡和Mac,2GB显存可跑
人工智能·ai·音视频·tts
youdexiang1 天前
IOS录音APP拍照记录能和音频同步吗
ios·音视频
9527华安1 天前
FPGA基于ADV7182解码PAL视频,Video Processing Subsystem去隔行,提供6套工程源码和技术支持
fpga开发·音视频·pal·adv7182
vjmap1 天前
AI 地图动画-以真实地图为画布的 AI 视频编辑器-唯杰 AI 地图动画正式上线
人工智能·编辑器·音视频·gis·cad
星核0penstarry1 天前
视频理解模型选型指南:Gemini、Qwen、SeedRealtime 怎么选(附 API 示例)
人工智能·音视频·实时音视频·视频·gemini·vs qwen
小豆庄1 天前
监控视频脱敏:夜视/低光线条件下人脸检测的工程处理思路
opencv·计算机视觉·阿里云·视觉检测·音视频·视频
微帧Visionular2 天前
AI视频单帧清晰,播放时却闪烁,原因是什么?
人工智能·深度学习·音视频