Xilinx系列FPGA实现4K视频拼接,基于Video Mixer实现,提供1套工程源码和技术支持

目录

  • 1、前言
    • 工程概述
    • 免责声明
  • 2、相关方案推荐
    • FPGA图像处理方案
    • FPGA视频拼接叠加融合方案推荐
    • 4K视频输入输出方案
    • Video Mixer视频拼接方案
  • 3、详细设计方案
    • 设计框图
    • TPG测试彩条
    • VDMA图像缓存
    • Video Mixer介绍
    • HDMI 1.4/2.0 Transmitter Subsystem
    • Video PHY Controller
    • 输出均衡电路
    • 视频输出显示
    • FPGA开发板
    • 工程源码架构
  • 4、工程源码详解-->XCZU4EV版本
  • 5、工程移植说明
    • vivado版本不一致处理
    • FPGA型号不一致处理
    • 其他注意事项
  • 6、上板调试验证并演示
    • 准备工作
    • 输出效果演示
  • 7、福利:工程代码的获取

Xilinx系列FPGA实现4K视频拼接,基于Video Mixer实现,提供1套工程源码和技术支持

1、前言

没玩过视频拼接都不好意思说自己玩儿过FPGA,这是CSDN某大佬说过的一句话,鄙人深信不疑。。。目前市面上主流的FPGA图像视频拼接方案如下:
1:纯Verilog方案,但该方案很少能做到4K分辨率;
2:Xilinx的HLS方案,该方案简单,易于实现,但只能用于Xilinx自家的FPGA;
本博客使用Xilinx的HLS方案实现4K视频拼接,具体是使用Xilinx官方推出了Video Mixer IP核,该IP可轻松支持4K视频拼接,但遗憾的是仅可在Xilinx自家系列FPGA上使用,或许复旦微也可以;

工程概述

本设采用Xilinx官方的Video Mixer IP核为核心,实现4K视频拼接;输入源4路Xilinx官方的Video Test Pattem Generator IP核产生4路分辨率为1920x1080@60Hz的彩条视频,彩条视频为单像素模式(一个时钟24bit像素),输出接口为AXI4-Stream,每路彩条的形状不一样,分别为竖条彩条形状、交叉网格形状、棋盘形状、格子形状;然后调用4路Xilinx官方的XDMA将4路彩条视频写入FPGA板载DDR4中缓存;然后调用Xilinx官方的Video Mixer将4路彩条视频从DDR4中读出并做拼接处理,拼接方案为4路视频沾满4K分辨率显示器,即4路视频做4分屏拼接显示;然后给到Xilinx官方HDMI 1.4/2.0 Transmitter Subsystem IP核做4K视频的编码工作,可同时编码视频流和音频流,本工程没有音频输入;输出3路AXI4-Stream流和DDC控制信号,3路AXI4-Stream流进入Xilinx官方的Video PHY Controller IP核做4K视频并串转化工作,将原3路20bit的AXI4-Stream并行数据串化为高速串行信号,该IP需使用FPGA GT高速接口资源;输出的差分视频信号从GT BANK上输出,进入到板载的DP159或其他同等功能的芯片做均衡处理,然后连接到HDMI2.0输出接口;HDMI2.0周边电路需要i2c配置,所以还需要调用Zynq或者MicroBlaze软核进行配置,软核开发工具为Vitis SDK;

免责声明

本工程及其源码即有自己写的一部分,也有网络公开渠道获取的一部分(包括CSDN、Xilinx官网、Altera官网等等),若大佬们觉得有所冒犯,请私信批评教育;基于此,本工程及其源码仅限于读者或粉丝个人学习和研究,禁止用于商业用途,若由于读者或粉丝自身原因用于商业用途所导致的法律问题,与本博客及博主无关,请谨慎使用。。。

2、相关方案推荐

FPGA图像处理方案

我的主页目前有FPGA图像处理专栏,改专栏收录了我目前手里已有的FPGA图像处理方案,包括图像缩放、图像识别、图像拼接、图像融合、图像去雾、图像叠加、图像旋转、图像增强、图像字符叠加等等;以下是专栏地址:
点击直接前往

FPGA视频拼接叠加融合方案推荐

我的主页目前有FPGA视频拼接叠加融合专栏,改专栏收录了我目前手里已有的FPGA视频拼接叠加融合方案,从实现方式分类有基于HSL实现的视频拼接、基于纯verilog代码实现的视频拼接;从应用上分为单路、2路、3路、4路、8路、16路视频拼接;视频缩放+拼接;视频融合叠加;从输入视频分类可分为OV5640摄像头视频拼接、SDI视频拼接、CameraLink视频拼接等等;以下是专栏地址:
点击直接前往

4K视频输入输出方案

Xilinx系列FPGA有一套专用的基于GT高速接口资源的4K视频实现方案,我之前出过专门的博客,博客链接如下:
点击直接前往

Video Mixer视频拼接方案

Video Mixer是Xilinx官方推出的视频拼接方案,我之前出过专门的博客,博客链接如下:
点击直接前往

3、详细设计方案

设计框图

本设计使用的是Xilinx官方推荐的方案,设计框图如下:
在这里插入图片描述

TPG测试彩条

输入源4路Xilinx官方的Video Test Pattem Generator IP核产生4路分辨率为1920x1080@60Hz的彩条视频,彩条视频为单像素模式(一个时钟24bit像素),输出接口为AXI4-Stream,每路彩条的形状不一样,分别为竖条彩条形状、交叉网格形状、棋盘形状、格子形状;效果如下:
在这里插入图片描述
TPG测试彩条在Block Design中如下:
在这里插入图片描述

VDMA图像缓存

调用4路Xilinx官方的XDMA将4路彩条视频写入FPGA板载DDR4中缓存;VDMA只使用写模式,配置为3帧缓存,配置如下:
在这里插入图片描述
VDMA在Block Design中如下:
在这里插入图片描述

Video Mixer介绍

由于工程所用到的IP都是常用IP,所以这里重点介绍一下Video Mixer IP;
支持最大分辨率:8K,即可以处理高达8K的视频;
支持最多16层视频拼接叠加,即最多可拼接16路视频;
输入视频格式:AXI4-Stream;
输出视频格式:AXI4-Stream;
需要SDK软件配置,其本质为通过AXI_Lite 做寄存器配置;
提供自定义的配置API,通过调用该库函数即可轻松使用,具体参考SDK代码;
模块占用的FPGA逻辑资源更小,相比于自己写的HLS视频拼接而言,官方的Video Mixer资源占用大约减小30%左右,且更高效:
Video Mixer逻辑资源如下,请谨慎评估你的FPGA资源情况;
在这里插入图片描述
本设计采用4路视频拼接模式,视频输入为Memory模式,即Video Mixer通过AXI4总线主动去DDR4中读取视频,视频背景分辨率为3840x2160,配置如下:
在这里插入图片描述

HDMI 1.4/2.0 Transmitter Subsystem

用XIlinx方案做4K HDMI视频收发必须要用到此IP,需要输出的4K HDMI视频先进入Xilinx官方的HDMI 1.4/2.0 Transmitter Subsystem IP核做4K 高清视频的编码工作,同时编码视频流和音频流,这里的音频流并没有数据传入,只是做了预留,用户可根据需求决定是否加入音频;输出3路AXI4-Stream流和DDC控制信号;DMI 1.4/2.0 Transmitter Subsystem配置如下:
在这里插入图片描述
该IP需要在Vitis SDK中做进一步详细配置,详情参考Vitis SDK C语言软件代码;

Video PHY Controller

用XIlinx方案做4K HDMI2.0视频收发必须要用到此IP,Video PHY Controller IP核主要做解串和串化的工作,利用FPGA GT资源,在发送端做4K 高清视频并做串化工作,将原3路20bit的AXI4-Stream并行数据串化为高速串行信号;Video PHY Controller配置如下:
在这里插入图片描述
该IP需要在Vitis SDK中做进一步详细配置,详情参考Vitis SDK C语言软件代码;

输出均衡电路

在HDMI输出端需要加均衡器电路,大体方案如下:
在这里插入图片描述
图中IC型号只做参考,具体根据你的项目方案而定;

视频输出显示

视频输出显示需要支持4K@60Hz,一般情况下,1千块以内的显示器是不支持的,我是用的是家里的电视机,品牌为小米电视EA55-2022款(@雷军,雷总请给鸡腿),你可以查询一下你的电视是否支持4K@60Hz。。。

FPGA开发板

为了确保工程与硬件FPGA开发板的适配性,推荐使用本博主同款开发板,以减少移植难度和快速验证,当然,如果你有自己的FPGA板子,也可以用自己的,只不过需要根据你板子将工程移植一下;本博主现有两款FPGA开发板可配套本工程的两套代码,分别如下:
1–>Xilinx Kintxe7 FPGA开发板;
2–>Zynq UltraScale+ FPGA开发板
需要这两款开发板的请联系博主。。。

工程源码架构

工程源码架构包括vivado Block Design逻辑设计和vitis SDK软件设计;
Block Design逻辑设计架构截图如下:
在这里插入图片描述
综合后的源码架构如下:
在这里插入图片描述
Vitis SDK软件代码如下:
在这里插入图片描述

4、工程源码详解–>XCZU4EV版本

开发板FPGA型号:Xilinx–Zynq UltraScale+MPSoCs–xczu4ev-sfvc784-2-i;
开发环境:Vivado2022.2;
输入:4路Xilinx官方TGP生成彩条,单像素,分辨率1920x1080@60Hz;
图像拼接方案:Xilinx官方Video Mixer方案;
图像拼接示例:3840x2160背景下拼接4路1920x1080视频,即4分屏;
输出:小米电视,HDMI2.0,分辨率3840x2160@60Hz;
工程源码架构请参考前面第3章节中的《工程源码架构》小节;
软核类型:Zynq UltraScale+ MPSoC;
使用GT资源类型:GTH;
工程作用:此工程目的是让读者掌握Xilinx系列FPGA实现4K视频拼接的设计能力,以便能够移植和设计自己的项目;
工程的资源消耗和功耗如下:
在这里插入图片描述

5、工程移植说明

vivado版本不一致处理

1:如果你的vivado版本与本工程vivado版本一致,则直接打开工程;
2:如果你的vivado版本低于本工程vivado版本,则需要打开工程后,点击文件–>另存为;但此方法并不保险,最保险的方法是将你的vivado版本升级到本工程vivado的版本或者更高版本;
在这里插入图片描述
3:如果你的vivado版本高于本工程vivado版本,解决如下:
在这里插入图片描述
打开工程后会发现IP都被锁住了,如下:
在这里插入图片描述
此时需要升级IP,操作如下:
在这里插入图片描述
在这里插入图片描述

FPGA型号不一致处理

如果你的FPGA型号与我的不一致,则需要更改FPGA型号,操作如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
更改FPGA型号后还需要升级IP,升级IP的方法前面已经讲述了;

其他注意事项

1:由于每个板子的DDR不一定完全一样,所以MIG IP需要根据你自己的原理图进行配置,甚至可以直接删掉我这里原工程的MIG并重新添加IP,重新配置;
2:根据你自己的原理图修改引脚约束,在xdc文件中修改即可;
3:纯FPGA移植到Zynq需要在工程中添加zynq软核;

6、上板调试验证并演示

准备工作

试验需要准备以下设备:
FPGA开发板,可以自行购买,也可以找本博主购买同款开发板;
HDMI线;
4K分辨率显示器;
以工程源码1的开发板为例进行上板调试;
连接如下:
在这里插入图片描述

输出效果演示

输出效果静态演示如下:
在这里插入图片描述
输出效果动态演示如下:

FPGA-4K视频拼接

7、福利:工程代码的获取

福利:工程代码的获取
代码太大,无法邮箱发送,以某度网盘链接方式发送,
资料获取方式:私,或者文章末尾的V名片。
网盘资料如下:
在这里插入图片描述
此外,有很多朋友给本博主提了很多意见和建议,希望能丰富服务内容和选项,因为不同朋友的需求不一样,所以本博主还提供以下服务:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/752078.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

RuleApp1.4.6文章社区客户端 广告联盟支持Docx导入

支持编译为安卓,苹果,小程序,H5网页的社区客户端代码,包括文章模块,用户模块,动态模块,支付模块,聊天模块,广告模块,商城模块等基础功能,包含VIP会…

黄历工具网/万年历/财神方位/日历/佛历/道历/24节气/PHP网站源码

黄历工具网/万年历/财神方位/日历/佛历/道历/24节气/PHP网站源码 演示地址: https://hl.caohongji.com/ 手机端地址: https://mhl.caohongji.com/ 客服: kkmp326 源码说明: 1、系统内的黄历宜忌、农历、日历、佛历、道…

傅里叶变换,拉普拉斯变换,卷积 卷积定理

傅里叶变换,拉普拉斯变换,卷积 & 卷积定理 文章目录 傅里叶变换,拉普拉斯变换,卷积 & 卷积定理开胃小菜(收敛性)一、傅里叶变换核心原理定义连续时间信号离散时间信号(了解)…

leetcode 二分查找·系统掌握 有序数组中的单一元素

题意: 题解: 一种可行的思路是,考虑这个单独的数加入之前和加入之后这个数组中其他元素的属性发生了什么变化,不难看出在这个单独的数之前每一对数的第一个索引为偶数,在这个单独的数之后每一对数的第一个索引为奇数&…

RISC-V知识总结 —— 向量(扩展)指令集

资源1:晏明 - RISC-V向量扩展指令架构及LLVM自动向量化支持 - 202112118 - 第13届开源开发工具大会(OSDTConf2021)_哔哩哔哩_bilibili资源2:张先轶 - 基于RISC-V向量指令集优化基础计算软件生态【第12届开源开发工具大会(OSDT2020&#xff09…

Fizz Buzz 经典问题 - 蓝桥杯

基础知识要求: Java:方法、if else语句、算术运算符、逻辑运算符、Scanner类 Python: 方法、if else语句、算术运算符、逻辑运算符、input() 题目: 思路解析: 读取输入: 从标准输入或其他方式读取一个整数…

高效利用iCloud指南:打造无缝连接的数字生活

iCloud是苹果公司推出的一项云存储和云计算服务,它为用户提供了一个安全、便捷的云端存储空间,帮助用户在各个苹果设备之间无缝同步数据。无论是照片、文档、备忘录,还是应用程序数据,iCloud都能让你的数字生活更加高效和有序。本…

CogMG:用大模型解决知识图谱覆盖不足的问题

CogMG:用大模型解决知识图谱覆盖不足的问题 提出背景知识图谱的作用知识覆盖不完整知识更新不对齐 显式分解知识三元组和补全检索增强生成(RAG)和知识更新 框架设计1. 查询知识图谱2. 处理结果3. 知识图谱演化 CogMG 实现3.1 模型和组件问题分…

智能测流速仪

LS300-B随着科技的不断进步,智能设备在各个领域中扮演着越来越重要的角色。在水利、环保、农业等行业中,明渠流速流量的测量一直是一个关键环节。传统的测量方法虽然有其有效性,但在面对复杂多变的测量环境时,往往显得力不从心。而…

[CAN] 通讯协议手动解析与手动打包 [手撕编码格式]

手动解析与手动打包 一、Intel格式编码1.1 报文解析。1.2 报文打包二、Motorola格式通讯协议2.1 报文解析。2.2 报文打包🙋 前言 CAN有两种编码格式:Intel编码格式 和 Motorola编码格式,本教程将分别对两种格式进行手动解析与手动打包。 一、Intel格式编码 假设已知雷达CAN…

如何在MySQL中按字符串中的数字排序

在管理数据库时,我们经常遇到需要按嵌入在字符串中的数字进行排序的情况。这在实际应用中尤为常见,比如文件名、代码版本号等字段中通常包含数字,而这些数字往往是排序的关键。本文将详细介绍如何在MySQL中利用正则表达式提取字符串中的数字并…

GPT-5的到来:智能飞跃与未来畅想

IT之家6月22日消息,在美国达特茅斯工程学院的采访中,OpenAI首席技术官米拉穆拉蒂确认了GPT-5的发布计划,预计将在一年半后推出。穆拉蒂形象地将GPT-4到GPT-5的飞跃比作高中生到博士生的成长。这一飞跃将给我们带来哪些变化?GPT-5的…

贪吃蛇项目GameStart部分:对游戏的初始化

接上一篇文章介绍完需要使用到的WIN32API的相关知识,本篇文章让我们来开始使用他们来创建我们的贪吃蛇欢迎界面以及游戏所需要的地图。 准备工作: 为了后面我们构建贪吃蛇游戏所需要的各项函数便于观察,同时便于我们的函数声明,在…

docker mysql cpu100% cpu打满排查 mysql cpu爆了 mysql cpu 100%问题排查

1. docker 启动了一个mysql 实例,近期忽然发现cpu100% 如下图所示 命令: top 2.进入容器内排查: docker exec mysql(此处可以是docker ps -a 查找出来的image_id) -it /bin/bash cd /var/log cat mysqld.log 容器内m…

移远通信发布两款Wi-Fi 6模组新品:率先采用亚马逊ACK SDK for Matter方案实现互联互通

6月26日 ,在MWC上海展上,全球领先的物联网整体解决方案供应商移远通信联合亚马逊及上海博通现场宣布,推出支持亚马逊Alexa Connect Kit (ACK)SDK for Matter方案的MCU Wi-Fi 6模组FLM163D和FLM263D。 后续,…

完美解决ValueError: column index (256) not an int in range(256)的正确解决方法,亲测有效!!!

完美解决ValueError: column index (256) not an int in range(256)的正确解决方法,亲测有效!!! 亲测有效 完美解决ValueError: column index (256) not an int in range(256)的正确解决方法,亲测有效!&…

JavaWeb——MySQL

目录 2. 数据库设计 3. 表的关系 4. 表关系的实现 5. 多表查询 5.1 内连接 (1)隐式内连接 (2)显式内连接 ​5.2 外连接 (1)左外连接 (2)右外连接 2. 数据库设计 数据库设…

「51媒体」政企活动媒体宣发如何做?

传媒如春雨,润物细无声,大家好,我是51媒体网胡老师。 媒体宣传加速季,100万补贴享不停,一手媒体资源,全国100城线下落地执行。详情请联系胡老师。 政企活动媒体宣发是一个系统性的过程,需要明确…

World of Warcraft T2.5

World of Warcraft T2.5 猎人和术士套装需要的材料,好多啊,废墟和神殿打材料 猎人: 术士: