Skip to content

Repository files navigation

AX-SmartVenc

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.sh

AXCL 的 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 150

AXCL 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 凭据、设备地址、私有模型或机器相关绝对路径。

About

Smart video transcoding for AX650 and AXCL, combining YOLO26-Seg, ByteTrack, and QPMAP for object-aware encoding and multi-channel real-time 1080p processing.

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages