smartVenc 是面向 Axera 平台的智能视频转码工程。处理链路组合硬件 VDEC、 IVPS、AX_ENGINE YOLO26-Seg、ByteTrack 和 VENC ABS QPMAP,在目标区域与背景 区域之间实施差异化量化控制。
同一套 C++11 源码支持 AX650 板端和 AXCL Host:
PLATFORM |
运行环境 | 构建方式 | CLI 产物 |
|---|---|---|---|
ax650 |
AX650 AArch64 板端 | AArch64 交叉编译 | build/out/smartVenc_CLI |
axcl-x86_64 |
AXCL x86_64 Host | 本机或交叉编译 | build/out/axcl-x86_64/axcl_smartVenc_CLI |
axcl-aarch64 |
AXCL AArch64 Host | 本机或交叉编译 | build/out/axcl-aarch64/axcl_smartVenc_CLI |
axcl-riscv64 |
AXCL RISC-V Host | 本机或交叉编译 | build/out/axcl-riscv64/axcl_smartVenc_CLI |
项目已经在以下真实硬件环境完成构建和运行验证:
| 环境 | 验证范围 |
|---|---|
| AX650N DEMO | AX650 板端构建产物、单路 overlay、20 路并发和转码质量一致性 |
| 矽速 M4C-DOCK | 实机部署与 smartVenc 转码流程 |
| Raspberry Pi 5 + AXCL 计算卡 | AXCL AArch64 本机构建、系统依赖复用、单路 overlay 和 10 路 25 FPS |
具体实测数据见 已验证性能与画质结果。
- H.264/H.265/MPEG-2 文件、裸码流、RTSP 和 packed 8-bit NV12 输入;
- 硬件解码、缩放、letterbox、检测、实例分割和目标跟踪;
- H.264/H.265 硬件编码和 segmentation mask 驱动的 ABS QPMAP;
- 基于实际输入/输出字节的目标压缩倍率控制;
- 单路 CLI、多进程并发和单进程多路硬件集成测试;
- 独立的 PSNR/SSIM 全参考质量评估工具;
- AXCL x86_64/AArch64 host/target 自动判定,以及系统 AXCL/FFmpeg 依赖复用。
原视频: 原视频
转码后视频: 输出视频 默认参数下压缩 4倍大小,平均码降至1258kbps
pedestrian_thailand_1920x1080_30fps_5Mbps_hevc_x0.mp4
./build_ax650.sh
./build_axcl_x86.sh
./build_axcl_aarch64.sh
./build_axcl_riscv64.shAXCL 的 host 与 target 架构相同时自动使用本机 g++,不同时使用目标交叉
工具链。AXCL 构建脚本优先使用显式依赖和目标环境中已安装的 AXCL/FFmpeg,再使用
.ci 缓存;只有缺少完整开发环境时才下载或编译依赖。详见
构建指南。
export SMARTVENC_MODEL_PATH="$PWD/models/yolo26-seg/yolo26n-seg_ax650_npu3_nv12.axmodel"
./build/out/smartVenc_CLI \
-i data/ori.mp4 \
-o results/ori_out.mp4 \
--iqp 38 --pqp 40 --gop 150AXCL Host 可通过以下环境变量选择配置与设备(默认值如下,符合部署时无需设置):
export SMARTVENC_AXCL_CONFIG=/usr/bin/axcl/axcl.json
export SMARTVENC_AXCL_DEVICE_INDEX=0完整部署方式、输入模式和 RTSP 行为见 运行指南,完整 CLI 参数表见 CLI 参考。
.
├── build_ax650.sh / build_axcl_*.sh 平台构建入口
├── scripts/ 依赖解析和 FFmpeg 构建
├── src/common/ 可组合的硬件与算法能力
├── src/smartvenc_cli/ 单路命令行参考应用
├── src/ut/ 单进程多路硬件集成测试
├── third_party/ByteTrack/ 随主工程直接编译的 ByteTrack
├── tools/sh/run_20ch.sh 多进程、no-output 和 profiling
├── tools/psnr_ssim/ PSNR/SSIM 报告工具
├── models/ 模型
├── data/ 测试媒体
└── doc/ 按主题拆分的项目文档
build/、.ci/ 和生成的 CLI 都是构建产物,不应作为源码提交。不要提交
RTSP 凭据、设备地址、私有模型或机器相关绝对路径。