当前位置: 首页 > news >正文

[FPGA Video] AXI4-Stream Remapper

Xilinx AXI4-Stream Remapper IP (PG379) 详细介绍

概述

Xilinx LogiCORE™ IP AXI4-Stream Remapper 核是一个专为视频处理设计的模块,用于在不同每时钟像素数(Pixels Per Clock, PPC)要求之间重新映射视频像素。它支持将输入 AXI4-Stream 视频流的像素数据重新组织,以适应不同的输出 PPC 配置,同时提供像素丢弃(Pixel Drop)和像素重复(Pixel Repeat)功能。该 IP 核通过 AXI4-Stream 接口输入和输出视频流,广泛应用于需要灵活像素格式转换的视频处理系统。它支持多种 AMD FPGA 和 SoC 设备,适用于实时视频处理和显示应用。

主要特性

  • 接口
    • 输入/输出:AXI4-Stream 视频协议(符合 Vivado AXI Reference Guide UG1037),用于视频数据传输。
    • 无 AXI4-Lite 控制接口,配置通过 Vivado GUI 静态设置。
  • 像素重映射
    • 支持输入和输出 PPC 转换,例如从 1 PPC 到 2 PPC 或从 4 PPC 到 1 PPC。
    • 支持的 PPC 配置:1、2、4(输入和输出组合)。
  • 颜色格式
    • 支持多种颜色格式,包括 YUV 4:4:4、YUV 4:2:2、YUV 4:2:0,以及 RGB。
    • 特别支持 YUV 4:2:0 HDMI 颜色格式。
  • 像素操作
    • 像素丢弃(Pixel Drop):允许丢弃用户指定的像素,用于格式转换或数据精简。
    • 像素重复(Pixel Repeat):重复指定像素以填充输出流,适应更高 PPC 要求。
  • 数据宽度
    • 支持可配置的数据宽度,基于 PPC 和颜色格式(例如,YUV 4:4:4 的 24 位/像素,1 PPC)。
  • 分辨率与帧率
    • 支持从低分辨率(如 VGA 640x480)到高分辨率(如 4K@60Hz)。
    • 最大像素时钟频率因设备而异(参考 PG379 性能数据)。
  • 设备支持
    • 兼容 Artix-7、Kintex-7、Virtex-7、Zynq-7000、Kintex UltraScale、Virtex UltraScale、UltraScale+、Versal AI Core、Versal Premium、Versal Prime 等。
  • 设计工具
    • 支持 Vivado Design Suite。
  • 性能
    • 低资源占用,适合嵌入式和实时视频处理。
    • 支持高带宽视频流(如 4K@60Hz,需高性能设备)。
  • 其他特性
    • 免费许可,包含在 Vivado 工具中。
    • 无运行时动态配置,所有参数在设计时静态设置。

应用场景

  1. 视频格式转换

    • 在视频处理流水线中,将不同 PPC 的视频流转换为目标格式,以匹配下游模块或显示设备的需求。
    • 例如,将 1 PPC 的 YUV 4:2:2 流转换为 2 PPC 以提高吞吐量。
  2. 嵌入式视频系统

    • 在 Zynq-7000 或 Zynq UltraScale+ MPSoC 平台上,调整视频流的 PPC 以优化 HDMI、DisplayPort 或 SDI 输出。
    • 适用于数字标牌、机顶盒、嵌入式多媒体设备。
  3. 高分辨率视频处理

    • 在 4K 或 8K 视频系统中,通过 PPC 转换提高数据吞吐量,减少时钟频率需求。
    • 例如,将 4 PPC 流转换为 1 PPC 以适配低速处理模块。
  4. 颜色格式调整

    • 支持 YUV 4:2:0 HDMI 格式转换,适用于广播设备和专业视听系统。
    • 例如,将 YUV 4:4:4 流转换为 YUV 4:2:0 以符合 HDMI 2.0 标准。
  5. 像素丢弃与重复

    • 在视频压缩或精简场景中,使用像素丢弃功能减少数据量。
    • 在超采样或格式填充场景中,使用像素重复功能生成额外像素。
    • 适用于视频编码器、视频切换器。
  6. 硬件验证与测试

    • 在视频系统开发中,结合测试图案生成器(TPG)和视频时序控制器(VTC),验证视频处理模块的 PPC 兼容性和性能。
    • 适用于 FPGA 原型设计和硬件在环(HIL)测试。

使用指南

设计流程

  1. IP 配置

    • 在 Vivado IP Integrator 中添加 AXI4-Stream Remapper IP 核。
    • 配置输入和输出 PPC(1、2、4),确保与上下游模块兼容。
    • 选择颜色格式(YUV 4:4:4、YUV 4:2:2、YUV 4:2:0 或 RGB)。
    • 启用像素丢弃或像素重复功能(若需要),并指定操作参数。
    • 设置数据宽度和最大分辨率,匹配视频流需求。
  2. 视频流水线集成

    • 将 AXI4-Stream Remapper 的输入连接到视频源(如 TPG、Sensor Demosaic)。
    • 将输出连接到下游模块(如 AXI4-Stream to Video Out、颜色转换器)。
    • 搭配 VTC IP 提供时序信号(如 Vsync、Hsync),确保视频流同步。
  3. 时钟管理

    • 使用时钟向导(Clocking Wizard)生成像素时钟。
    • 确保像素时钟频率支持目标分辨率和帧率(例如,4K@60Hz 需要约 594 MHz,4 PPC)。
    • 验证 AXI4-Stream 接口的时钟域一致性。
  4. 验证与调试

    • 使用 Vivado 仿真工具验证 AXI4-Stream 输入/输出信号(TValid、TReady、TData)和像素重映射效果。
    • 检查输出视频流的分辨率、颜色格式和 PPC 是否符合预期。
    • 使用 Vivado ILA 监控硬件中的视频流和信号时序。

示例设计

以下是一个典型的视频处理设计:

  • 模块
    • TPG IP 生成 AXI4-Stream 视频流(1080p60,YUV 4:4:4,1 PPC)。
    • AXI4-Stream Remapper IP 转换为 2 PPC,启用像素重复以填充输出。
    • AXI4-Stream to Video Out IP 转换为并行视频信号。
    • VTC IP 提供时序信号,HDMI TX 输出到显示器。
  • 控制
    • 静态配置 Remapper 的 PPC 和颜色格式(无 AXI4-Lite 动态控制)。
  • 时钟
    • 时钟向导生成 148.5 MHz 像素时钟(1 PPC,1080p60)。
  • 参考:Video Beginner Series 13(XVES0013)提供了 AXI4-Stream 基础设施 IP 的使用示例,可参考其连接方法。

使用注意事项

  1. PPC 配置兼容性

    • 确保输入和输出 PPC 配置与上下游模块兼容。错误的 PPC 设置会导致数据错位或丢失。
    • 验证 PPC 转换对数据宽度的影响(例如,1 PPC 到 2 PPC 可能加倍 TData 宽度)。
  2. 颜色格式支持

    • 确认颜色格式(YUV 4:4:4、YUV 4:2:2、YUV 4:2:0、RGB)与视频源和目标设备匹配。
    • 对于 YUV 4:2:0 HDMI 格式,确保下游模块支持相应的子采样结构。
  3. 像素丢弃与重复

    • 谨慎使用像素丢弃功能,确保丢弃的像素不会影响图像质量(如避免丢弃关键颜色分量)。
    • 配置像素重复时,验证重复像素的分布是否符合目标格式需求。
  4. AXI4-Stream 协议合规性

    • 确保输入/输出信号(TValid、TReady、TData、TUser、TLast)符合 AXI4-Stream 视频协议。
    • 若下游模块不支持 TUser 信号,使用 AXI4-Stream Subset Converter IP 调整信号宽度(参考 PG085)。
  5. 时钟与带宽

    • 高 PPC 配置(如 4 PPC)会显著增加带宽需求,确保像素时钟和 AXI4-Stream 接口支持目标吞吐量。
    • 对于 4K 或更高分辨率,选择高性能设备(如 Versal AI Core)并优化时钟频率。
  6. 资源优化

    • AXI4-Stream Remapper 资源占用较低,但高 PPC 或复杂颜色格式可能增加逻辑需求。参考 PG379 的资源利用率数据选择合适的 FPGA。
    • 避免不必要的像素重复以减少资源消耗。
  7. 仿真与验证

    • 在设计初期进行充分仿真,使用测试图案(如 TPG 生成的颜色条)验证像素重映射效果。
    • 检查输出图像的完整性和颜色准确性,避免伪影或数据错位。
    • 使用 Vivado ILA 监控 TData 和 TValid/TReady 信号的时序。
  8. 静态配置限制

    • 该 IP 不支持运行时动态配置,所有参数需在 Vivado 中静态设置。确保设计时准确定义 PPC、颜色格式和像素操作。
    • 若需动态调整 PPC,考虑结合 AXI4-Stream Switch 或其他基础设施 IP。

常见问题与解决方法

  1. 问题:输出视频流像素错位或颜色异常。

    • 原因:PPC 配置或颜色格式不匹配。
    • 解决:检查输入/输出 PPC 设置,验证颜色格式(YUV 4:4:4、YUV 4:2:2 等)与上下游模块一致。
  2. 问题:数据流阻塞(TValid 信号低)。

    • 原因:下游模块未正确处理 TReady,或带宽不足。
    • 解决:验证 TReady 信号行为,检查像素时钟频率和 AXI4-Stream 带宽。
  3. 问题:高分辨率视频(如 4K)性能不足。

    • 原因:像素时钟频率不足或 FPGA 性能限制。
    • 解决:选择高性能设备(如 UltraScale+ 或 Versal),优化时钟频率和 PPC 配置。
  4. 问题:像素丢弃导致图像质量下降。

    • 原因:丢弃了关键像素或配置不当。
    • 解决:调整像素丢弃参数,验证输出图像的完整性。

结论

Xilinx AXI4-Stream Remapper IP (PG379) 是一个高效的视频处理模块,专为在不同 PPC 和颜色格式之间重新映射视频像素而设计,适用于视频格式转换、嵌入式系统和高分辨率视频处理。其支持像素丢弃和重复功能,结合 YUV 4:2:0 HDMI 格式支持,满足了多种视频应用需求。免费许可和 Vivado 集成使其易于开发和部署。使用时需特别注意 PPC 配置、颜色格式兼容性、AXI4-Stream 协议合规性和时钟管理,以确保系统性能和图像质量。

FPGA设计工具推荐

  • SZ901
    SZ901 是一款基于XVC协议的FPGA网络下载器。

    • 最高支持53M
    • 支持4路JTAG独立使用
    • 支持端口合并
    • 支持国产FLASH烧写
    • 下载器无限扩展
    • 配备专属程序固化软件,一键烧写,能大大减小程序固化时间!
  • SZ501(PRO_A7)

    • SZ501 是一款适合初学者FPGA开发板,包含低速高速接口!
    • 双网口(RGMII)
    • 双SFP+
    • DDR
    • UART
    • IIC

相关文章:

  • stm32 hal库 SPI使用(二)硬件SPI的HAL库函数调用
  • spring-- 事务失效原因及多线程事务失效解决方案
  • Flutter——数据库Drift开发详细教程(二)
  • Flutter AppBar 详解
  • “会话技术”——Cookie_(2/2)原理与使用细节
  • 【二叉树】java源码实现
  • 中小企业MES系统概要设计
  • 数字智慧方案6213丨智慧园区规划方案(63页PPT)(文末有下载方式)
  • 【学习笔记】第十章:序列建模:递归神经网络(RNN)
  • Python 数据智能实战 (8):基于LLM的个性化营销文案
  • Redis总结及设置营业状态案例
  • 分发饼干之 双数组匹配问题 (双指针 or 二分)
  • 【质量管理】现代TRIZ中问题识别中的功能分析——相互接触分析
  • 【算法题】荷兰国旗问题[力扣75题颜色分类] - JAVA
  • Rust 学习笔记:关于枚举与模式匹配的练习题
  • 从0搭建Transformer
  • 大学之大:瑞典皇家理工学院2025.5.2
  • 纯原生Java实现:获取整个项目中指定接口所有的实现类
  • 柔性超声耦合剂的选择与设计-可穿戴式柔性超声耦合剂面临的难题
  • [面试]SoC验证工程师面试常见问题(三)
  • 客流持续高位运行,长三角铁路计划增开153列旅客列车
  • 消息人士称以色列政府初步同意扩大对加沙军事行动
  • AI世界的年轻人|他用影像大模型解决看病难题,“要做的研究还有很多”
  • 新势力4月销量出炉:零跑逾4万辆再夺冠,蔚来环比增近六成,小米下滑
  • 深交所修订创业板指数编制方案,引入ESG负面剔除机制
  • 投资者建议发行优惠套票给“被套”小股东,张家界:将研究考虑