PROJECT · 工程档案 · 更新于 2026年7月15日
异构硬件视频图像处理方案
构建 PC、PYNQ-Z2 与 Ascend 310B 之间的视频采集、FPGA 处理、UDP 传输和 NPU 推理验证链路。
- 项目状态
- 已公开
- 时间范围
- 2026.04—至今
- 作者角色
- FPGA 图像处理 / 边缘 AI 部署
- 硬件平台
- PC、PYNQ-Z2、Ascend 310B
- 软件环境
- Vivado、Linux、C++、Python、YOLO 推理环境
- 技术栈
- Vivado · Verilog/HLS · PYNQ-Z2 · HDMI · UDP · Ascend-310B · YOLO
- 核心结果
- 实现 1920×1080@60Hz HDMI 直通显示,并完成 PC—PYNQ—Ascend 310B 通信压测框架与日志采集。
- 验证方式
- 通过 HDMI 直通显示、pipeline/backend/player 运行日志和通信压测验证当前链路。
- 当前限制
- 摄像头输入稳定性及端到端延迟、帧率和丢包率仍需继续测量与验证。
- 下一步
- 稳定摄像头输入,补充统一测试环境下的端到端性能数据与长时间运行记录。
目标
构建 PC、PYNQ-Z2 与 Ascend 310B 之间的端侧视频处理链路,完成 HDMI 视频采集、FPGA 侧处理与转发,并在 NPU 端验证 YOLO 推理流程。
本人职责
- 负责 PYNQ-Z2 HDMI 输入输出链路、时钟与 IO 约束的配置和联调。
- 搭建 PC、PYNQ 与 Ascend 310B 之间的 UDP 通信和日志采集环境。
- 接入 Ascend 310B 端 YOLO 推理流程,分析链路运行日志并定位不稳定环节。
系统架构
- PC 或摄像头提供 HDMI 视频输入。
- PYNQ-Z2 接收视频,在 FPGA 侧完成视频链路处理并输出直通画面。
- 视频数据通过 UDP 链路转发到 Ascend 310B。
- Ascend 310B 后端接收数据并运行 YOLO 推理,pipeline、backend 和 player 分别记录运行状态。
硬件与软件环境
- **硬件:**PC、PYNQ-Z2、Ascend 310B、HDMI 输入输出设备。
- **FPGA:**Vivado、Verilog/HLS、dvi2rgb、rgb2dvi。
- **端侧软件:**Linux、C++、Python、UDP 通信与 YOLO 推理环境。
关键实现
- 配置 TMDS 引脚、
TMDS_33IO 标准和create_clock时钟约束,联调 dvi2rgb/rgb2dvi 模块。 - 分析 MMCM、像素时钟和时序约束对画面稳定性的影响。
- 搭建 UDP 通信压测框架,并分别采集 pipeline、backend 和 player 侧日志。
- 在 Ascend 310B 端接入 YOLO 推理流程,验证视频转发、后端处理和结果输出链路。
问题与排查
- 针对 HDMI 无画面或画面不稳定,逐项检查 TMDS 引脚、IO 标准、输入像素时钟、MMCM 锁定状态和时序约束。
- 针对摄像头输入间歇性异常,对比 PC 输入和摄像头输入,缩小问题所在的输入链路范围。
- 针对端侧链路异常,结合 pipeline、backend 和 player 日志确认数据到达、后端处理与播放状态。
测试方法
- 使用 1920×1080@60Hz 视频源验证 HDMI 输入输出直通。
- 通过通信压测框架检查 PC、PYNQ 与 Ascend 310B 之间的数据传输。
- 对照三类运行日志检查链路各阶段是否持续工作,并记录异常发生位置。
验证结果
- 已实现 1920×1080@60Hz HDMI 直通显示。
- 已完成 PC—PYNQ—Ascend 310B 通信压测框架和日志采集。
- 已定位并处理时钟约束、IO 标准相关问题,并确认摄像头输入稳定性仍需继续验证。
当前限制
- 摄像头输入尚未达到可长期复现的稳定状态。
- 端到端延迟、有效帧率、丢包率和稳定运行时长尚未形成统一测试条件下的公开数据。
下一步
- 稳定摄像头输入并补充长时间运行记录。
- 在固定分辨率、帧率和网络条件下测量端到端延迟、帧率与丢包率。
- 整理可公开的硬件照片、运行截图和日志证据后补充项目视觉材料。