一、Xilinx Video Mixer 概述
Xilinx Video Mixer 是Vivado® 设计套件中的一个 IP 核,用于将多个视频层复合为一个单一的视频输出流。它是构建以下应用的基石:
画中画 (PiP)。
屏幕显示 (OSD):用于菜单、文本或徽标。
视频叠加:例如添加透明水印。
视频切换和混合。
在视频流上叠加用户界面 (UI)。
它属于更大的Xilinx 视频 IP套件的一部分,该套件设计用于与其他 IP 核(如缩放器、帧缓存读写器、色彩空间转换器和时序控制器)无缝协作。Xilinx官方文档《PG231》。
二、核心功能
支持(每像素)十七个视频/图像和logo层的alpha混合。
可选的logo(在块RAM中)层,拥护颜色透明度。
图层可以是内存映射的AXI4接口或AXI4-Stream。
提供可编程背景颜色。
提供可编程的图层位置和大小。
给予将图层放大到1倍、2倍或4倍的效果。
可选内置色彩空间转换和色度重采样。
承受RGB、YUV 444、YUV 422、YUV 420。
支撑在流接口上每颜色分量输入和输出8、10、12和16位,在内存接口上每颜色分量为8位和10位。
帮助从64x64到8192x4320的分辨率。
协助所有支持的设备系列中的8K@60。
帮助可编程CSC系数,以支持各种色度计,如BT601、BT709和BT2020。
支持每时钟一次、两次、四次或八次采样。
三、Video Mixer UI界面
四、Video Mixer优点(Advantages)
高性能与高吞吐量
硬件并行处理:作为 FPGA 上的硬件 IP,它可以并行处理多个图层和像素,延迟极低。这是软件方案无法比拟的,非常适合处理高分辨率(如 4K、8K)和高帧率的实时视频流。
高度的灵活性和可部署性
图层管理:支持最多 8 个独立图层,每个图层的开启、位置、全局透明度均可动态配置(通过 AXI4-Lite 接口)。
混合模式:支持全局 Alpha 和像素级 Alpha 混合,可以实现从便捷叠加到复杂透明、半透明效果的各类合成需求。
格式支持:协助多种色彩空间(RGB, YCbCr)和位宽,能够灵活地接入不同的视频源。
无缝集成与互操作性
标准 AXI4-Stream 接口:采用 Xilinx 视频 IP 套件的标准协议,行非常方便地与其他核心 IP(如Video Scaler(缩放器)、Frame Buffer Read/Write(帧缓存读写)、HDMI TX/RX等)连接,构建完整的视频处理流水线。这大大减少了接口设计的工作量。
确定性(Deterministic)
在 FPGA 中,处理时序是固定的和可预测的。只要时序收敛,就不会出现像软件处理中可能发生的因框架负载过高而导致的帧丢失或卡顿现象,保证了系统的可靠性。
节省处理器资源
五、Video Mixer缺点 (Disadvantages)
FPGA 资源消耗大
这是最主要的缺点。混合器的资源消耗(LUT, FF, DSP, BRAM)与图层数量、分辨率和色深直接成正比。一个多层、高分辨率的混合器会消耗大量逻辑资源,可能挤占其他功能模块的资源,增加项目成本和功耗。
设计复杂性高
时序收敛挑战:高数据吞吐量的设计会带来严峻的时序挑战。完成高频运行(例如处理 4K60 视频)得深厚的 FPGA 设计经验,进行良好的流水线设计和约束。
系统集成复杂度:你需要为其提供已经处理好(如缩放、去隔行、格式转换)的视频流。这通常意味着需要设计一个含有多个 IP 的复杂系统,增加了设计和调试的难度。
功能限制
Video Mixer只能进行混合和定位,不能动态修改图层大小。这是一个非常关键的局限。不利于OSD设计和多种多画面切换。
Video Mixer 不用能指定颜色透明,只能整体透明。
Video Mixer 不用修改图层优先级,不方便改变层叠关系。
(总之,有一定局限性,够用,性能不如传统SOC芯片)
六、优化办法
参考Video Mixer自己编写代码,搭配Scaler+VDMA,就许可完美弥补Video Mixer的不足,平台移植也很方便。可以广泛用于画面分割器、视频图像处理器、大屏拼控等等。