织梦网站建设视频,免费刷seo,南宁营销型网站专家,静态html网址网站导航源码目录 1、前言工程概述免责声明 2、相关方案推荐我已有的所有工程源码总目录----方便你快速找到自己喜欢的项目我这里已有的红外相机图像处理解决方案本博已有的已有的FPGA视频拼接叠加融合方案 3、工程详细设计方案工程设计原理框图红外相机FDMA多路视频拼接算法FDMA图像缓存视… 目录 1、前言工程概述免责声明 2、相关方案推荐我已有的所有工程源码总目录----方便你快速找到自己喜欢的项目我这里已有的红外相机图像处理解决方案本博已有的已有的FPGA视频拼接叠加融合方案 3、工程详细设计方案工程设计原理框图红外相机FDMA多路视频拼接算法FDMA图像缓存视频读取控制HDMI视频输出架构工程源码架构 4、vivado工程源码1详解2路视频拼接版本5、vivado工程源码2详解4路视频拼接版本6、工程移植说明vivado版本不一致处理FPGA型号不一致处理其他注意事项 7、上板调试验证准备工作2路视频拼接输出效果演示4路视频拼接输出效果演示 8、工程代码的获取 FPGA多路红外相机视频拼接输出提供2套工程源码和技术支持 1、前言
近年来高端局战争已发生了翻天覆地的变化以我国云南边境的某外国内战为例某地方武装正在雨林中猥琐发育突然天降大批无人机和配套的导弹甚至简体中文版使用手册也附带其中于是该地方武装人员操作无人机对敌军造成了巨大损失敌军被打蒙后决定学习我军的夜战传统昼伏夜出结果晚上也被无人机精准击杀原来无人机上安装了红外摄像头从空中俯视敌军被一个个看得一清二楚。。。。于是敌军又学聪明了听到无人机声音后立马躲进小树林结果依然被无人机精准击杀原来无人机上还安装了热成像摄像头从空中俯视敌军依然被一个个看得一清二楚。。。。敌军这下彻底服了立马下跪投降于是骚扰我国的缅北电诈集团被团灭话事人也被送到国境内审判这就是己不战而夺城也是无人机红外相机热成像仪在现代战争中的小试牛刀本设计采用FPGA为平台实时采集红外相机经过图像缓存后用HDMI输出
工程概述
本设计基于Xilinx系列FPGA为平台搭建红外相机实时采集系统视频输入源为红外相机相机输出LVCMOS数字视频接口即包含 1 个时钟信号线、1 个帧同步场同步信号线、1 个行同步信号线、1 个使能信号线和 14 个并行数据信号线。当一帧数据到来时 帧同步信号置高电平表示接下来的数据为同一帧数据这一帧数据结束后帧同步信号置低电平表示该帧数据结束。同样当一行数据到来时行同步信号置高 电平当该行数据结束后行同步信号置低电平视频分辨率为640x512输入视频直接送入本博主常用的FDMA图像缓存架构实现图像两帧缓存缓存介质为板载DDR3或者Zynq的PS端DDR然后Native视频时序控制FDMA从DDR3中读取视频并同步输出RGB888视频流然后使用RGB转HDMI模块或者专用芯片实现RGB视频流转HDMI差分视频信号最后用显示器显示视频即可针对市场主流需求本博客设计并提供1套工程源码具体如下
工程源码1
开发板FPGA型号为Xilinx-ZU19EG-xczu19eg-ffvc1760-2-i视频输入源为红外相机相机输出LVCMOS数字视频接口视频分辨率为640x512将输入红外相机视频复制为2份以模拟2路视频输入输入视频直接送入本博主常用的FDMA图像缓存架构实现图像两帧缓存将不同的视频写入不同的内存地址再统一读出来以达到拼接效果缓存介质为板载DDR3或者Zynq的PS端DDR然后Native视频时序控制FDMA从DDR3中读取视频并同步输出RGB888视频流然后使用silicom9134专用芯片实现RGB视频流转HDMI差分视频信号输出分辨率为1920x108060Hz黑色背景下叠加2路640x512的有效视频最后通过HDMI显示器显示由此形成FPGA红外相机视频拼接HDMI的实时图传架构该工程适用于FPGA采集红外相机应用
工程源码2
开发板FPGA型号为Xilinx-ZU19EG-xczu19eg-ffvc1760-2-i视频输入源为红外相机相机输出LVCMOS数字视频接口视频分辨率为640x512将输入红外相机视频复制为4份以模拟4路视频输入输入视频直接送入本博主常用的FDMA图像缓存架构实现图像两帧缓存将不同的视频写入不同的内存地址再统一读出来以达到拼接效果缓存介质为板载DDR3或者Zynq的PS端DDR然后Native视频时序控制FDMA从DDR3中读取视频并同步输出RGB888视频流然后使用silicom9134专用芯片实现RGB视频流转HDMI差分视频信号输出分辨率为1920x108060Hz黑色背景下叠加4路640x512的有效视频最后通过HDMI显示器显示由此形成FPGA红外相机视频拼接HDMI的实时图传架构该工程适用于FPGA采集红外相机应用
本博客详细描述了Xilinx系列FPGA实时红外相机采集输出系统的设计方案工程代码可综合编译上板调试可直接项目移植适用于在校学生、研究生项目开发也适用于在职工程师做学习提升可应用于医疗、军工等行业的高速接口或图像处理领域 提供完整的、跑通的工程源码和技术支持 工程源码和技术支持的获取方式放在了文章末尾请耐心看到最后
免责声明
本工程及其源码即有自己写的一部分也有网络公开渠道获取的一部分(包括CSDN、Xilinx官网、Altera官网以及其他开源免费获取渠道等等)若大佬们觉得有所冒犯请私信批评教育部分模块源码转载自上述网络版权归原作者所有如有侵权请联系我们删除基于此本工程及其源码仅限于读者或粉丝个人学习和研究禁止用于商业用途若由于读者或粉丝自身原因用于商业用途所导致的法律问题与本博客及博主无关请谨慎使用。。。
2、相关方案推荐
我已有的所有工程源码总目录----方便你快速找到自己喜欢的项目
其实一直有朋友反馈说我的博客文章太多了乱花渐欲迷人自己看得一头雾水不方便快速定位找到自己想要的项目所以本博文置顶列出我目前已有的所有项目并给出总目录每个项目的文章链接当然本博文实时更新。。。以下是博客地址 点击直接前往
我这里已有的红外相机图像处理解决方案
我的主页有FPGA红外相机图像处理专栏该专栏有关于红外相机图的各种图像处理以下是专栏地址 点击直接前往
本博已有的已有的FPGA视频拼接叠加融合方案
我的主页目前有FPGA视频拼接叠加融合专栏改专栏收录了我目前手里已有的FPGA视频拼接叠加融合方案从实现方式分类有基于HSL实现的视频拼接、基于纯verilog代码实现的视频拼接从应用上分为单路、2路、3路、4路、8路、16路视频拼接视频缩放拼接视频融合叠加从输入视频分类可分为OV5640摄像头视频拼接、SDI视频拼接、CameraLink视频拼接等等以下是专栏地址 点击直接前往
3、工程详细设计方案
工程设计原理框图
工程设计原理框图如下
红外相机
视频输入源为红外相机相机输出LVCMOS数字视频接口即包含 1 个时钟信号线、1 个帧同步场同步信号线、1 个行同步信号线、1 个使能信号线和 14 个并行数据信号线。当一帧数据到来时 帧同步信号置高电平表示接下来的数据为同一帧数据这一帧数据结束后帧同步信号置低电平表示该帧数据结束。同样当一行数据到来时行同步信号置高 电平当该行数据结束后行同步信号置低电平视频分辨率为640x512红外相机视频输出时序如下 LVCMOS 视频数据每一个像素的数据对应 1 个时钟周期。每一帧的数据量与 机芯探测器的面阵大小相同机芯探测器面阵大小为 640512LVCMOS 每一帧 包含 640512327680 个像素的数据每行有 640 个数据共有 512 行。即每个 行同步信号高电平持续的时间为 640 个时钟周期在一帧数据期间行同步信号 共有 512 次被置为高电平。在上图中同步信号和数据信号都是在时钟的上升沿 进行变化在实际的程序设计中可以令信号在时钟的下降沿开始变化以便于接收端在时钟的上升沿进行采样。
FDMA多路视频拼接算法
纯verilog多路视频拼接方案如下以4路视频拼接为例 输出屏幕分辨率为1920X1080 需要拼接的4路视频分辨率为960X540 4路输入刚好可以占满整个屏幕 多路视频的拼接显示原理如下 以把 2 个摄像头 CAM0 和 CAM1 输出到同一个显示器上为列为了把 2 个图像显示到 1 个显示器首先得搞清楚以下关系 hsize每 1 行图像实际在内存中占用的有效空间以 32bit 表示一个像素的时候占用内存大小为 hsize X 4 hstride用于设置每行图像第一个像素的地址,以 32bit 表示一个像素的时候 v_cnt X hstride X 4 vsize有效的行 因此很容易得出 cam0 的每行第一个像素的地址也是 v_cnt X hstride X 4 同理如果我们需要把 cam1 在 hsize 和 vsize 空间的任何位置显示我们只要关心 cam1 每一行图像第一个像素的地址可以用以下公式 v_cnt X hstride X 4 offset uifdma_dbuf 支持 stride 参数设置stride 参数可以设置输入数据 X(hsize)方向每一行数据的第一个像素到下一个起始像素的间隔地址利用 stride 参数可以非常方便地摆放输入视频到内存中的排列方式。 关于uifdma_dbuf可以参考我之前写的文章点击查看FDMA实现视频数据三帧缓存 根据以上铺垫每路摄像头缓存的基地址如下 CAM0ADDR_BASE0x80000000 CAM1ADDR_BASE0x80000000(1920-960)X4 CAM2ADDR_BASE0x80000000(1080-540)X1920X4 CAM3ADDR_BASE0x80000000(1080-540)X1920X4(1920-960)X4 地址设置完毕后基本就完事儿了
FDMA图像缓存
使用本博常用的FDMA图像缓存架构实现图像3帧缓存缓存介质为板载的DDR3FDMA图像缓存架构由FDMA、FDMA控制器、缓存帧选择器构成、Xilinx MIG IP核构成图像缓存使用Xilinx vivado的Block Design设计他的作用是将图像送入DDR中做3帧缓存再读出显示目的是匹配输入输出的时钟差和提高输出视频质量FDMA图像缓存架构如下图所示截图为4路视频拼接其他多路视频拼接与之类似 这里多路视频拼接时调用多路FDMA进行缓存具体讲就是每一路视频调用1路FDMA以4路视频拼接为例 调用4路FDMA其中三路配置为写模式因为这三路视频在这里只需要写入DDR3读出是由另一个FDMA完成配置如下 另外1路FDMA配置为读写模式因为4路视频需要同时一并读出配置如下 视频拼接的关键点在于4路视频在DDR3中缓存地址的不同还是以4路视频拼接为例4路FDMA的写地址以此为 第一路视频缓存写基地址0x80000000 第二路视频缓存写基地址0x80000f00 第三路视频缓存写基地址0x803f4800 第四路视频缓存写基地址0x803f5700 视频缓存读基地址0x80000000
视频读取控制
FDMA图像缓存架构使用VGA时序模块完成视频读取控制Native视频时序模块负责产生VGA时序他有两个作用一是控制FDMA控制器从DDR3中读出缓存的视频二是将同步后的VGA视频送入下一级模块
HDMI视频输出架构
缓存图像从DDR3读出后经过Native时序生成模块输出标准的VGA时序视频然后经过纯verilog显示的RGB转HDMI模块输出HDMI差分视频然后使用silicom9134专用芯片实现RGB视频流转HDMI差分视频信号输出分辨率为1920x108060Hz黑色背景下叠加640x512的有效视频最后通过HDMI显示器显示silicom9134需要i2c配置才能使用代码中配置如下
工程源码架构
工程Block Design设计如下 综合后的工程源码架构如下 工程使用了Zynq系列FPGAPL端时钟由Zynq软核提供所以需要运行运行SDK以启动Zynq所以需要在SDK里运行一个简单的hello world程序SDK软件代码架构如下 工程编译后资源消耗低、功耗低、时序收敛符合工程项目应用要求如下 上图只是举例资源消耗并非本工程的实际消耗实际消耗请看下文的《工程代码详解》
4、vivado工程源码1详解2路视频拼接版本
开发板FPGA型号Xilinx-ZU19EG-xczu19eg-ffvc1760-2-i FPGA开发环境Vivado2019.1 输入红外相机分辨率640x51230Hz 输出HDMIsilicom9134芯片编码方案1920x108060Hz背景下叠加显示2路拼接的640x512的有效图像 图像缓存方案自研FDMA方案 图像缓存介质板载DDR3 视频拼接方案自研FDMA方案 视频拼接应用2路视频拼接 实现功能FPGA多路红外相机视频拼接输出 工程作用此工程目的是让读者掌握FPGA多路红外相机视频拼接输出的设计能力以便能够移植和设计自己的项目 工程Block Design和工程代码架构请参考第3章节的《工程源码架构》小节内容 工程的资源消耗和功耗如下
5、vivado工程源码2详解4路视频拼接版本
开发板FPGA型号Xilinx-ZU19EG-xczu19eg-ffvc1760-2-i FPGA开发环境Vivado2019.1 输入红外相机分辨率640x51230Hz 输出HDMIsilicom9134芯片编码方案1920x108060Hz背景下叠加显示4路拼接的640x512的有效图像 图像缓存方案自研FDMA方案 图像缓存介质板载DDR3 视频拼接方案自研FDMA方案 视频拼接应用4路视频拼接 实现功能FPGA多路红外相机视频拼接输出 工程作用此工程目的是让读者掌握FPGA多路红外相机视频拼接输出的设计能力以便能够移植和设计自己的项目 工程Block Design和工程代码架构请参考第3章节的《工程源码架构》小节内容 工程的资源消耗和功耗如下
6、工程移植说明
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软核
7、上板调试验证
准备工作
需要准备的器材如下 红外相机没有的可以找本博提供 FPGA开发板没有开发板可以找本博提供 HDMI显示器和HDMI线缆 我的开发板了连接如下
2路视频拼接输出效果演示
2路视频拼接输出效果演示如下 红外-2路 4路视频拼接输出效果演示
4路视频拼接输出效果演示如下 红外-4路 8、工程代码的获取
代码太大无法邮箱发送以某度网盘链接方式发送 资料获取方式文章末尾名片。 网盘资料如下 此外有很多朋友给本博主提了很多意见和建议希望能丰富服务内容和选项因为不同朋友的需求不一样所以本博主还提供以下服务