tag 标签: Xilinx

相关博文
  • 热度 2
    2024-12-6 15:53
    483 次阅读|
    0 个评论
    学习如何在 MYIR 的 ZU3EG FPGA 开发板上部署 Tiny YOLO v4,对比 FPGA、GPU、CPU 的性能,助力 AIoT 边缘计算应用。(文末有彩蛋) 一、 为什么选择 FPGA:应对 7nm 制程与 AI 限制 在全球半导体制程限制和高端 GPU 受限的大环境下,FPGA 成为了中国企业发展的重要路径之一。它可支持灵活的 AIoT 应用,其灵活性与可编程性使其可以在国内成熟的 28nm 工艺甚至更低节点的制程下实现高效的硬件加速。 米尔的 ZU3EG 开发板凭借其可重构架构为 AI 和计算密集型任务提供了支持,同时避免了 7nm 工艺对国产芯片设计的制约。通过在 ZU3EG 上部署 Tiny YOLO V4,我们可以为智能家居、智慧城市等 AIoT 应用提供高效的解决方案。 CPU GPU FPGA 架构对比 二、 了解 Tiny YOLO 模型及其适用性 YOLO(You Only Look Once)是一种实时物体检测模型,它通过一次性扫描整个图像,实现高效的对象识别。 而其简化版 Tiny YOLO V4 更适合嵌入式设备,具有较少的层数和参数。其轻量化特性更适合在资源受限的设备上运行,尤其在低功耗、实时检测的边缘计算设备中表现出色。 相比传统 GPU,FPGA 能在小面积和低功耗下实现类似的推理性能,非常契合 AIoT 应用。像米尔 ZU3EG 这样的 FPGA 开发板,通过底板和丰富接口的载板设计,非常适合高效的嵌入式低功耗数据处理。 Yolo V4 网络结构图 Tiny Yolo V4 网络结构图 (通过优化网络结构和参数,保持较高检测精度的同时,降低模型的计算量和内存占用) 三、 获取数据集和模型 可下载开源训练集或预训练模型。为了确保兼容性,建议将模型转换为 ONNX 格式,以便后续能在 FPGA 上完成优化。 1. 下载 Tiny YOLO V4 模型 :从 Darknet 的 GitHub 仓库 获取 Tiny YOLO 的预训练权重,或者在 COCO 等数据集上自行训练模型。自定义的模型适用于特定应用场景(如车辆检测、人脸检测等)。 2. 数据准备 :若要自定义模型,可使用LabelImg等工具对数据集进行标注,将数据转为 YOLO 格式。之后,可将 YOLO 格式转换为 ONNX 格式,以便兼容 FPGA 优化工具链。 Tiny YOLO 在 Darknet 上训练的截图 四、 通过 Vivado HLS 为 FPGA 准备模型 要将模型部署到 FPGA,需要将神经网络操作转换为硬件级描述。使用 Xilinx 的 Vitis HLS(高级综合)可以将 Tiny YOLO v4 的 C++ 模型代码的转化为 Verilog RTL(寄存器传输级)代码,从而将模型从软件世界带入硬件实现。 详细步骤 : 1. 模型层映射和优化 : 将 YOLO 的每一层(如卷积层、池化层)映射为硬件友好的 C/C++ 结构。例如,将卷积映射为乘累加(MAC)数组,通过流水线实现并行化。 2. 算子加速与指令优化 : 流水线(Pipelining) :利用流水线来处理多项操作并行,减少延迟。 循环展开(Loop Unrolling) :展开循环,以每周期处理更多数据,尤其在卷积操作中有效。 设置 DATAFLOW 指令,使层间独立处理。 3. 量化与位宽调整 : 将激活值和权重量化为定点精度(例如 INT8),而非浮点数。这在维持准确度的同时显著降低计算量,尤其适合 FPGA 的固定点运算支持。 Tiny YOLO 模型在 Vivado HLS 中的层层转化流程图 五、 使用 Vivado 综合与部署 Verilog 到 米尔的ZU3EGFPGA开发板 当 HLS 生成的 RTL 代码准备就绪后,可以使用 Vivado 将模型部署到 FPGA。 1. Vivado 中的设置 : 将 HLS 输出的 RTL 文件导入 Vivado。 在 Vivado 中创建模块设计,包括连接AXI 接口与 ZU3EG 的 ARM 核连接。 2. I/O 约束与时序 : 定义 FPGA 的 I/O 引脚约束,以匹配 ZU3EG 板的特定管脚配置。配置时钟约束以满足合适的数据速率(如视频数据 100-200 MHz)。 进行时序分析,确保延迟和响应速度达到实时要求。 3. 生成比特流并下载到 ZU3EG : 生成的比特流可以直接通过 JTAG 或以太网接口下载到 ZU3EG。 将 Tiny YOLO 处理模块连接到 米尔ZU3EG开发板 的外设和接口 六、 在 FPGA 上测试并运行推理 现在 Tiny YOLO 已部署,可以验证其实时对象检测性能。 1. 数据采集 : 通过连接的相机模块捕捉图像或视频帧,或者使用存储的测试视频。 使用ZU3EG 的 ARM 核上的OpenCV对帧进行预处理,再将它们传入 FPGA 预处理后进行推理。 2. 后处理与显示 : 模型检测对象后,输出边框和类别标签。使用 OpenCV 将边框映射回原始帧,并在每个检测到的对象周围显示类别和置信度。 3. 性能测试 : 测量帧速率(FPS)和检测准确度。微调量化位宽或数据流参数,以优化实时需求。 Tiny YOLO 模型在 ZU3EG 上显示检测结果的实时输出,视频帧中标注了检测到的对象 七、 性能优化与调试技巧 为提高性能,可以进行以下调整: 内存访问 :设计数据存储方式,最大限度利用缓存并减少数据传输,降低内存瓶颈。 降低延迟 :重新评估关键路径延迟。若延迟过高,调整 Vitis HLS 中的流水线深度,并验证层间的数据依赖性。 量化改进 :尝试 INT8 量化。Xilinx 的 Vitis AI 可帮助微调量化参数,以平衡准确性与速度。 不同优化配置对资源使用的影响 米尔MYC-CZU3EG/4EV/5EV-V2核心板及开发板 在MYIR 的 ZU3EG 开发平台上提供了一种高效的解决方案。利用 FPGA 独特的灵活性和低功耗优势,助力未来 AIoT 设备的普及和智能升级。 关注米尔电子公众号,后台回复FPGA,获取完整Tiny Yolo V4教程。
  • 2024-11-1 16:38
    270 次阅读|
    0 个评论
    1.引言 随着网络视频平台的发展,用户对于4K高清画质的需求日益增长。然而,许多用户发现,即使购买了视频平台的会员,观看4K内容时画质却不如预期,有时甚至还会出现模糊、卡顿的情况。这种现象背后涉及到视频编码、网络带宽、和视频传输的诸多因素。 近期“影视飓风”发布的视频《清晰度不如4年前!视频变糊是你的错觉吗?》因讨论视频平台降低码率和改变编码格式以压缩视频画质,影响了内容表达。 4K视频清晰度下降的一个主要原因是平台为了节省带宽而压缩视频流,有时导致比特率降低,无法发挥4K分辨率的全部潜力。 在这种背景下,如何 高效地压缩和传输4K视频成为了一个关键技术难题 。本文将探讨如何通过 米尔电子的ZU4EV MPSoC平台, 接入真4k 60UHD-SDI视频源后,使用VCU进行高效H.265编解码,再通过 SGMII万兆以太网 实现 网络推流,以确保高质量4K视频的流畅传输。 2.视频质量下降的原因与优化方法 1) 带宽瓶颈 :在用户数量增加的情况下,服务器和网络的带宽常常无法满足4K视频流的需求。 2) 压缩算法不足 :传统的视频压缩技术在高分辨率内容上表现不佳,容易导致画面模糊。 3) 视频流传输的优化 在推流过程中,网络带宽和视频压缩效率直接决定了视频播放的清晰度与流畅度。为了确保4K视频在万兆以太网上的高效传输,本设计采用以下优化措施: 合理的码率控制 :在保证视频清晰度的前提下,调整H.265编码的目标码率,避免过低的码率影响视频质量或过高的码率导致带宽浪费或。通过CBR或VBR模式可以根据网络情况动态调整码率。 低延时模式 :VCU支持低延时编码模式,确保视频在压缩和传输过程中保持尽可能低的延迟,提升用户的观看体验。 网络传输协议选择 :根据应用场景选择合适的传输协议。对于实时性要求较高的场景,可选择UDP传输,而对于数据可靠性要求较高的场景,则推荐使用TCP协议。 3.MPSoC与VCU架构在4K UHD音视频广播领域的优势 1. 高性能与低功耗的结合 :Zynq UltraScale+ MPSoC采用了16nm FinFET工艺,集成了多核处理器和可编程逻辑,能够在提高性能的同时降低功耗,这对于音视频广播领域来说至关重要,因为它可以在保证高清晰度视频传输的同时,减少能源消耗。 2. 实时压缩与解压缩能力 :集成的VCU支持H.264/AVC和H.265/HEVC标准,能够实现高达4K UHD分辨率的视频的实时压缩和解压缩。这意味着在广播应用中,可以利用VCU进行高效的视频编码,减少存储空间和带宽的需求,同时保持视频质量。 3. 多视频流处理能力 :VCU能够同时处理多达八个不同的视频流,这对于需要同时广播多个视频源的4K UHD广播应用来说非常有用。这种多任务处理能力使得MPSoC成为多媒体中心和视频服务器的理想选择。 4. 灵活性和可扩展性 :MPSoC的可编程逻辑(PL)提供了任意到任意高速视频/音频接口的灵活性,可以为多媒体管道带来定制图像及视频处理功能的差异化效果。这种可编程性使得系统能够适应不断变化的音视频广播需求。 5. 专用硬件加速 :MPSoC提供了专用的处理引擎,如基于ARM Cortex A53的APU、Mali图形处理单元等,这些专用硬件能够加速图形和视频处理任务,提高系统的整体性能。 6. 支持多种视频格式 :VCU支持高达4:2:2 10位UHD-4K的视频格式,适合专业和高端消费级的制作与后期制作解决方案。这种广泛的格式支持使得MPSoC可以应用于各种不同的音视频广播场景。 7. 集成的多媒体框架支持 :MPSoC结合常见的多媒体框架GStreamer,可以开发硬件加速型多媒体应用。这种集成支持简化了开发过程,使得开发者能够快速实现复杂的音视频处理任务。 8. 优化的功耗管理 :Zynq UltraScale+ MPSoC将处理引擎、硬件编解码器等组件放置在具有独立电轨的不同电源域中,这种配置可用于为整个系统设计优化功耗管理方案,进一步降低系统功耗。 9. 高速互联外设 :MPSoC提供高速互联外设,如集成式DisplayPort接口模块,支持高达6 Gb/s的工作速率,这有助于处理来自PS或PL的实时音视频流,进一步降低系统BOM成本。 10. 支持新一代地面数字电视广播技术 :随着超高清电视时代的到来,MPSoC与VCU架构能够支持新一代地面数字电视广播技术,如DVB-T2、ATSC 3.0和DTMB-A等,这些技术支持更高的视频质量和新的广播应用模式。 综上所述,MPSoC与VCU架构在4K UHD音视频广播领域提供了高性能、低功耗、实时压缩解压缩、多视频流处理、灵活性、硬件加速、广泛格式支持、多媒体框架集成、优化的功耗管理和高速互联外设等多重优势,使其成为该领域理想的解决方案。 4.系统架构概述 在本设计中,我们使用Zynq UltraScale+ MPSoC平台(具体型号为MYIR XCZU4EV),通过FPGA实现对SDI视频的H265压缩,并通过SGMII接口推送到万兆以太网上。系统架构主要包括以下几个部分: 1. 视频输入 :输入源可以是SDI摄像机、SDI信号发生器或通过HDMI转SDI设备从电脑接入的HDMI信号。视频信号通过TI公司的LMH1219芯片做均衡处理,并将单端信号转换为差分信号后输入FPGA。 2. SDI视频解码 :FPGA中的UHD-SDI GT IP核用于SDI视频的解串,并将视频信号转换为AXI4-Stream格式供后续处理。通过SMPTE UHD-SDI RX SUBSYSTEM IP核,SDI视频被解码为RGB格式。 3. 视频帧缓存与处理 :解码后的视频信号存储在PS侧的DDR4中,通过Xilinx提供的Video Frame Buffer Write IP核实现。在这一阶段,可以对视频帧进行颜色转换、缩放等处理。 4. H.265视频压缩 :使用Zynq UltraScale+ VCU IP核对存储的RGB视频帧进行H.265编码压缩。VCU支持YUV420格式的视频,编码分辨率最高可达到4K@60fps。 5. SGMII万兆以太网传输 :经过H.265压缩后的视频流通过SGMII接口推送至万兆以太网。通过PetaLinux系统,利用TCP/UDP协议将压缩后的码流传输到PC或服务器端,用户可以通过VLC播放器等软件实时播放接收到的H.265码流。 5.工程设计主要流程 1. SDI输入 :通过LMH1219进行信号均衡,SDI信号转换为AXI4-Stream格式。 通过HDMI转SDI盒子,通过12G UHD-SDI输出4K 60FPS视频给FPGA,用户也可以使用SDI 工业相机; 2. 视频解码 :UHD-SDI GT IP核完成视频解串,SMPTE UHD-SDI RX SUBSYSTEM IP核将视频解码为RGB信号。 3. 视频缓存 :使用Video Frame Buffer Write IP核将视频写入DDR4。 用户可以选择在这里做出customer ISP,例如图像缩放,拼接 4. 视频压缩 :通过Zynq UltraScale+ VCU IP核对视频进行H265压缩。 5. 网络传输 :通过SGMII万兆以太网接口,将压缩后的H265视频流通过UDP协议推送至PC端,使用VLC播放器播放。 6.结论 在视频内容不断向4K发展的大背景下, 通过Zynq UltraScale+ MPSoC平台,基于VCU实现的SGMII万兆以太网视频压缩推流方案,不仅能够高效地压缩和传输4K视频,还可以确保较低的延迟和高质量的图像输出。该方案适用于视频监控、医疗影像、工业自动化等对高分辨率视频有需求的应用场景。 对于希望在网络视频平台上获得更好观看体验的用户来说,视频平台和服务提供商则需要在视频编码、网络传输等方面进行优化,以满足用户对于4K视频的画质需求。 7.互动环节 在SGMII网兆以太网推流到PC端,因为是万兆网,CPU无法负担这里的高速吞吐率,这里我们需要用到网络卸载,米尔电子的MYC-J7A100T双芯设计核心板可通过SFP采集SGMII万兆以太网数据后,PC通过PCIE读取视频源,实现万兆网口数据包卸载,我们会在后续系列文章中做出分享基于米尔MYC-J7A100TSFP采集后PCIE XDMA中断读取。
  • 热度 2
    2024-10-29 14:53
    328 次阅读|
    0 个评论
    本文主要介绍基于Xilinx UltraScale+ MPSoC XCZU7EV的12G-SDI高清视频开发案例,适用开发环境如下: Windows开发环境:Windows 7 64bit、Windows 10 64bit Linux开发环境:Ubuntu18.04.4 64bit 开发工具包:Xilinx Unified 2022.2 硬件平台:创龙科技TLZU-EVM评估板 (基于Xilinx UltraScale+ MPSoC XCZU7EV) 12G-SDI介绍 SDI(Serial Digital Interface,串行数字接口)是一种用于传输未经压缩的数字视频信号的标准,主要应用于远程监控、工业检测等领域。12G-SDI是SDI接口的其中一种,支持高达12Gbps的数据传输速率,专为支持4K超高清视频而设计。 12G-SDI优势 支持单链路传输: 12G-SDI能够在单根电缆上传输,简化安装与维护,减少布线复杂性。 支持长距离传输: 12G-SDI支持长距离传输,能够实现远距离的高质量视频信号传输。 支持4K高清视频: 12G-SDI支持4K分辨率,帧率高达60fps,能够流畅地播放动态视频。 图 1 SOM-TLZU核心板优势 图 2 SOM-TLZU核心板典型应用领域 图 3 12G-SDI高清视频开发案例演示 为了简化描述,本文仅摘录部分方案功能描述与测试结果。 案例说明 该案例通过12G-SDI IN接口采集4K@60fps视频,并通过12G-SDI OUT接口将采集到的视频进行输出。 案例演示 将小米盒子、视频转换器模块、4K显示屏连接至评估板,硬件连接图如下所示。 图 4 加载PS端裸机程序、PL端程序后,即可看到调试串口终端打印如下信息。 图 5 可看到4K显示屏显示正常图像。 图 6 键盘输入i,调试串口终端会打印如下信息。可从打印信息中获取输入、输出图像格式、分辨率、帧率等信息。 图 7
  • 2024-6-7 09:49
    0 个评论
    0 1 产品概述 本公司基于 Xilinx Kintex-7系列的开发平台采用核心板加扩展主板的方式,方便用户对相关板卡的二次开发利用。 其中,核心板包含一片芯片XC7K325T,使用FFG900封装,外挂4片512MB的高速DDR3芯片和1片256Mb的QSPI Flash芯片。 在扩展板上我们设计了丰富的外围接口,比如 PCIe Gen2X8 接口、2路10G SFP接口、1路 HDMI 输入接口、1路HDMI输出接口、2路SATA接口、1路SD卡接口、2路千兆以太网接口、1个40针扩展接口、1路UART接口、1个FMC接口等等。并且可以搭配使用各类高速 ADC / DAC 、视频处理 FMC 子卡等。 02功能接口图 扩展板: 核心板: 03产品参数 核心板主要参数: 型号 XC7K325T-2FFG900I PCle Gen2 X8 逻辑单元 326,080 收发器 16个12.5Gb/s max 查找表 50,950 触虫发器 407,600 Block RAM 16,020Kb DSP 处理单元 840 温度等级 工业级,-40℃-85℃ XADC 1个12bit 1Mbps AD 速度等级 -2 功能和接口: DDR3 4 x 512MB DDR3,64bit 总线 ,数据速率1600Mbps QSPl Flash 1 片 256Mbit QSPI FLASH,可用作 FPGA 配置文件和用户数据存储 晶振 高精度 LVDS 有源差分晶振,一个是 200MHz给系统提供稳定的时钟源,一个是125MHz为 GTX收发器提供稳定的时钟输入 PCle 接口 1 路标准 PCle x8 接口,用于和电脑主板的 PCle 通信,支持PCLe2.0,单通道通信速率可高达 5Gbps SATA接口 2 路SATA接口 SFP 光纤 2 路高速 SFP 光纤通信接口,每路接收和发送速度高达 10Gb/s HDMI接口 1 路HDMI输入接口,1路HDMI输出接口 以太网口 2 路千兆以太网口 SD 卡座 1 路 Micro SD 卡座 40 针扩展接口 预留 1个40 针 2.54mm 间距的扩展口,可以外接各种模块(双目摄像头,TFT LCD 屏,高速 AD 模块等等)。扩展口包含 5V电源1路,3.3V电源2路,地3路,IO口 34路。 JTAG 口 14 针 2.0mm 标准的 JTAG 口,用于 FPGA 程序的下载和调试 USB 转串口 2 路 Uart 转 USB 接口,用于和电脑通信,方便用户调试 FMC接口 1路FMC接口,兼容FMC-LPC接口 LED 4 个用户 LED 灯 按键 2 个用户按键 包装清单: FPGA开发板 1 套(1块扩展主板+1块核心板) 散热风扇 1 个 MicroUSB线 1 根 USB下载器 1 套 12V电源 1 个 挡板 电源参数: 输入 电压 +12V 电压输入 供电 12V / 3A 供电 输入 电流 3A 最大电流 结构尺寸: 尺寸大小 核心板 80mmx60mm,扩展主板 180mm x 108mm 叠层数量 核心板 14 层 PCB 板设计,扩展主板采用 6 层 PCB 板设计,预留独立电源层和 GND 层 04结构尺寸图 05应用领域 购买联系方式:13828768606 邮箱: William@deepview.top
  • 2024-6-6 14:14
    0 个评论
    0 1 产品概述 本公司基于Xilinx Kintex-7系列的开发平台采用核心板加扩展主板的方式,方便用户对相关板卡的二次开发利用。 其中,核心板包含一片芯片XC7K325T,使用FFG900封装,外挂4片512MB的高速DDR3芯片和1片256Mb的QSPI Flash芯片。 在扩展板上我们设计了丰富的外围接口,比如 PCIe Gen2X8 接口、2路10G SFP接口、1路HDMI输入接口、1路HDMI输出接口、2路SATA接口、1路SD卡接口、2路千兆以太网接口、1个40针扩展接口、1路UART接口、1个FMC接口等等。并且可以搭配使用各类高速 ADC/DAC、视频处理 FMC 子卡等。 02 功能接口图 扩展板: 核心板: 03 产品参数 核心板主 要参 数: 型号 XC7K325T-2FFG900I PCle Gen2 X8 逻辑单元 326,080 收发器 16个12.5Gb/s max 查找表 50,950 触虫发器 407,600 Block RAM 16,020Kb DSP 处理单元 840 温度等级 工业级,-40℃-85℃ XADC 1个12bit 1Mbps AD 速度等级 -2 功能和接口: DDR3 4 x 512MB DDR3,64bit 总线,数据速率1600Mbps QSPl Flash 1 片 256Mbit QSPI FLASH,可用作 FPGA配置文件和用户数据存储 晶振 高精度 LVDS 有源差分晶振,一个是 200MHz给系统提供稳定的时钟源,一个是125MHz为 GTX收发器提供稳定的时钟输入 PCle 接口 1 路标准 PCle x8 接口,用于和电脑主板的 PCle 通信,支持PCLe2.0,单通道通信速率可高达 5Gbps SATA接口 2 路SATA接口 SFP 光纤 2 路高速 SFP 光纤通信接口,每路接收和发送速度高达 10Gb/s HDMI接口 1 路HDMI输入接口,1路HDMI输出接口 以太网口 2 路千兆以太网口 SD 卡座 1 路 Micro SD 卡座 40 针扩展接口 预留 1个40 针 2.54mm 间距的扩展口,可以外接各种模块(双目摄像头,TFT LCD 屏,高速 AD 模块等等)。扩展口包含 5V电源1路,3.3V电源2路,地3路,IO口 34路。 JTAG 口 14 针 2.0mm 标准的 JTAG 口,用于 FPGA 程序的下载和调试 USB 转串口 2 路 Uart 转 USB 接口,用于和电脑通信,方便用户调试 FMC接口 1路FMC接口,兼容FMC-LPC接口 LED 4 个用户 LED 灯 按键 2 个用户按键 包装 清单: FPGA开发板 1 套(1块扩展主板+1块核心板) 散热风扇 1 个 MicroUSB线 1 根 USB下载器 1 套 12V电源 1 个 挡板 电源参数: 输入电压 +12V 电压输入 供电 12V / 3A 供电 输入电流 3A 最大电流 结构尺寸: 尺寸大小 核心板 80mmx60mm,扩展主板 180mm x 108mm 叠层数量 核心板 14 层 PCB 板设计,扩展主板采用 6 层 PCB 板设计,预留独立电源层和 GND 层 04 结构尺寸图 核心板结构尺寸图: 扩展主板结构尺寸图: 05 应用领域 人工智能 机器视觉 图像处理 自动驾驶 机器人 高速通信 工业控制 仪器仪表 购买联系方式:13828768606 邮箱:William@deepview.top 长按添加好友 也可了解更多相 关板 卡内容哦~ 转载请标注来源,谢谢!
相关资源