[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 工具中。
- 无运行时动态配置,所有参数在设计时静态设置。
应用场景
-
视频格式转换:
- 在视频处理流水线中,将不同 PPC 的视频流转换为目标格式,以匹配下游模块或显示设备的需求。
- 例如,将 1 PPC 的 YUV 4:2:2 流转换为 2 PPC 以提高吞吐量。
-
嵌入式视频系统:
- 在 Zynq-7000 或 Zynq UltraScale+ MPSoC 平台上,调整视频流的 PPC 以优化 HDMI、DisplayPort 或 SDI 输出。
- 适用于数字标牌、机顶盒、嵌入式多媒体设备。
-
高分辨率视频处理:
- 在 4K 或 8K 视频系统中,通过 PPC 转换提高数据吞吐量,减少时钟频率需求。
- 例如,将 4 PPC 流转换为 1 PPC 以适配低速处理模块。
-
颜色格式调整:
- 支持 YUV 4:2:0 HDMI 格式转换,适用于广播设备和专业视听系统。
- 例如,将 YUV 4:4:4 流转换为 YUV 4:2:0 以符合 HDMI 2.0 标准。
-
像素丢弃与重复:
- 在视频压缩或精简场景中,使用像素丢弃功能减少数据量。
- 在超采样或格式填充场景中,使用像素重复功能生成额外像素。
- 适用于视频编码器、视频切换器。
-
硬件验证与测试:
- 在视频系统开发中,结合测试图案生成器(TPG)和视频时序控制器(VTC),验证视频处理模块的 PPC 兼容性和性能。
- 适用于 FPGA 原型设计和硬件在环(HIL)测试。
使用指南
设计流程
-
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)。
- 启用像素丢弃或像素重复功能(若需要),并指定操作参数。
- 设置数据宽度和最大分辨率,匹配视频流需求。
-
视频流水线集成:
- 将 AXI4-Stream Remapper 的输入连接到视频源(如 TPG、Sensor Demosaic)。
- 将输出连接到下游模块(如 AXI4-Stream to Video Out、颜色转换器)。
- 搭配 VTC IP 提供时序信号(如 Vsync、Hsync),确保视频流同步。
-
时钟管理:
- 使用时钟向导(Clocking Wizard)生成像素时钟。
- 确保像素时钟频率支持目标分辨率和帧率(例如,4K@60Hz 需要约 594 MHz,4 PPC)。
- 验证 AXI4-Stream 接口的时钟域一致性。
-
验证与调试:
- 使用 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 的使用示例,可参考其连接方法。
使用注意事项
-
PPC 配置兼容性:
- 确保输入和输出 PPC 配置与上下游模块兼容。错误的 PPC 设置会导致数据错位或丢失。
- 验证 PPC 转换对数据宽度的影响(例如,1 PPC 到 2 PPC 可能加倍 TData 宽度)。
-
颜色格式支持:
- 确认颜色格式(YUV 4:4:4、YUV 4:2:2、YUV 4:2:0、RGB)与视频源和目标设备匹配。
- 对于 YUV 4:2:0 HDMI 格式,确保下游模块支持相应的子采样结构。
-
像素丢弃与重复:
- 谨慎使用像素丢弃功能,确保丢弃的像素不会影响图像质量(如避免丢弃关键颜色分量)。
- 配置像素重复时,验证重复像素的分布是否符合目标格式需求。
-
AXI4-Stream 协议合规性:
- 确保输入/输出信号(TValid、TReady、TData、TUser、TLast)符合 AXI4-Stream 视频协议。
- 若下游模块不支持 TUser 信号,使用 AXI4-Stream Subset Converter IP 调整信号宽度(参考 PG085)。
-
时钟与带宽:
- 高 PPC 配置(如 4 PPC)会显著增加带宽需求,确保像素时钟和 AXI4-Stream 接口支持目标吞吐量。
- 对于 4K 或更高分辨率,选择高性能设备(如 Versal AI Core)并优化时钟频率。
-
资源优化:
- AXI4-Stream Remapper 资源占用较低,但高 PPC 或复杂颜色格式可能增加逻辑需求。参考 PG379 的资源利用率数据选择合适的 FPGA。
- 避免不必要的像素重复以减少资源消耗。
-
仿真与验证:
- 在设计初期进行充分仿真,使用测试图案(如 TPG 生成的颜色条)验证像素重映射效果。
- 检查输出图像的完整性和颜色准确性,避免伪影或数据错位。
- 使用 Vivado ILA 监控 TData 和 TValid/TReady 信号的时序。
-
静态配置限制:
- 该 IP 不支持运行时动态配置,所有参数需在 Vivado 中静态设置。确保设计时准确定义 PPC、颜色格式和像素操作。
- 若需动态调整 PPC,考虑结合 AXI4-Stream Switch 或其他基础设施 IP。
常见问题与解决方法
-
问题:输出视频流像素错位或颜色异常。
- 原因:PPC 配置或颜色格式不匹配。
- 解决:检查输入/输出 PPC 设置,验证颜色格式(YUV 4:4:4、YUV 4:2:2 等)与上下游模块一致。
-
问题:数据流阻塞(TValid 信号低)。
- 原因:下游模块未正确处理 TReady,或带宽不足。
- 解决:验证 TReady 信号行为,检查像素时钟频率和 AXI4-Stream 带宽。
-
问题:高分辨率视频(如 4K)性能不足。
- 原因:像素时钟频率不足或 FPGA 性能限制。
- 解决:选择高性能设备(如 UltraScale+ 或 Versal),优化时钟频率和 PPC 配置。
-
问题:像素丢弃导致图像质量下降。
- 原因:丢弃了关键像素或配置不当。
- 解决:调整像素丢弃参数,验证输出图像的完整性。
结论
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