FPGA调用 Video Mixer IP 实现多路视频拼接,提供4套工程源码和技术支持

这篇具有很好参考价值的文章主要介绍了FPGA调用 Video Mixer IP 实现多路视频拼接,提供4套工程源码和技术支持。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.前言

Video Mixer IP是OSD的升级版,vivado2019.1后OSD已不再使用,Video Mixer IP主要功能就是实现视频叠加输出,最多可叠加16路视频,但现实项目几乎用不到这么多路。本设计调用Xilinx主推的VDMA做图像缓存,调用Video Mixer IP做视频拼接,提供4套vivado工程,分别为1路视频直接输出,2路视频拼接,3路视频拼接,4路视频拼接,旨在让大家掌握Video Mixer IP的用法,包括IP配置,SDK配置等;
本文详细描述了设计方案,工程代码编译通过后上板调试验证,可直接项目移植,适用于在校学生做毕业设计、研究生项目开发,也适用于在职工程师做项目开发,可应用于医疗、军工等行业的数字成像和图像传输领域;
提供完整的、跑通的工程源码和技术支持;
工程源码和技术支持的获取方式放在了文章末尾,请耐心看到最后;

2.我这儿已有的多路视频拼接方案

多路视频拼接是FPGA图像处理的基本操作,项目中应用广泛,目前我这儿已有的多路视频拼接方案有如下几种:

2.1 输入VGA时序视频拼接

输入视频时序为VGA时序,视频缓存在DDR的不同地址后输出,从而实现视频拼接,这种方案的优点是输入视频时序为VGA,不需要时序转换,适合不喜欢用AXI4-Stream时序的老玩家,由于输入入视频时序为VGA,所以也不需要调用Xilinx主推的VDMA等一大堆IP,更不需要SDK配置,无论是FPGA的移植性还是适应性还是资源消耗都更为友好,这个实现方式我之前专门出过一篇博客,感兴趣的可以点击链接去参考:点击直接前往博客

2.2 输入AXI4-Stream时序视频拼接

本方案,本方案调用Xilinx主推的VDMA做图像缓存,调用Video Mixer IP做视频拼接,所以输入视频时序必须为AXI4-Stream,如果你的输入视频时序为VGA,则需要调用Xilinx的IP转为AXI4-Stream时序,且需要运行SDK软件配置IP才能使用,用起来相对麻烦,但有点是基于AXI4-Stream的视频流适合大批量数据传输,使用上更加简单,你无需关心底层逻辑如何实现的,只需要知道如何用SDK配置即可;

2.3 输入VGA时序视频缩放后拼接

输入视频时序为VGA时序,视频经过纯verilog编写的图像缩放模块对视频进行任意尺寸的缩放,达到你的要求后再将视频缓存在DDR的不同地址后输出,从而实现视频拼接,这种方案的优点是输入视频可以进行缩放操作,因为视频拼接往往伴随着视频缩放,这样更为接近真实的项目需求,且图像缩放模块支持任意比例、任意尺寸的缩放,使得你的拼接变得更具有私人定制的属性,时序为VGA,不需要时序转换,适合不喜欢用AXI4-Stream时序的老玩家,由于输入入视频时序为VGA,所以也不需要调用Xilinx主推的VDMA等一大堆IP,更不需要SDK配置,无论是FPGA的移植性还是适应性还是资源消耗都更为友好,这个实现方式我之前专门出过一篇博客,感兴趣的可以点击链接去参考:点击直接前往博客

2.4 输入AXI4-Stream时序视频缩放后拼接

本方案输入视频时序为AXI4-Stream时序,经过输入时序同样为AXI4-Stream的图像缩放模块对视频进行任意尺寸的缩放,再调用Xilinx主推的VDMA做图像缓存,调用Video Mixer IP做视频拼接,这种方案的优点是输入视频可以进行缩放操作,因为视频拼接往往伴随着视频缩放,这样更为接近真实的项目需求,且图像缩放模块支持任意比例、任意尺寸的缩放,使得你的拼接变得更具有私人定制的属性,要求输入视频时序必须为AXI4-Stream,如果你的输入视频时序为VGA,则需要调用Xilinx的IP转为AXI4-Stream时序,且需要运行SDK软件配置IP才能使用,用起来相对麻烦,但有点是基于AXI4-Stream的视频流适合大批量数据传输,使用上更加简单,你无需关心底层逻辑如何实现的,只需要知道如何用SDK配置即可;这个实现方式我之前专门出过一篇博客,感兴趣的可以点击链接去参考:点击直接前往博客

2.5 输入4路 PAL 视频拼接输出

这个方案就是具体的现实项目了,输入视频为4路PAL制式的隔行扫描视频,经过视频去隔行后缓存DDR再4路拼接输出,这个实现方式我之前专门出过两篇博客,感兴趣的可以点击链接去参考:点击直接前往博客
点击直接前往博客

2.6 输入4路 SDI 视频拼接输出

这个方案就是具体的现实项目了,输入视频为4路SDI 制式的隔行扫描视频,经过SDI解串、解码、时序恢复后缓存DDR再4路拼接输出,这个实现方式我之前专门出过一篇博客,感兴趣的可以点击链接去参考:点击直接前往博客

3.Video Mixer IP官方数据手册解读

官方手册是PG243,链接点这里PG243
这是干货文章,所以我们只看手册的重点:
FPGA调用 Video Mixer IP 实现多路视频拼接,提供4套工程源码和技术支持,菜鸟FPGA图像处理专题,菜鸟FPGA HLS专题,fpga开发,mixer,图像处理,图像叠加,zynq
这里还有个图像放大功能,但不能缩小,感觉很鸡肋,可以不管他
FPGA调用 Video Mixer IP 实现多路视频拼接,提供4套工程源码和技术支持,菜鸟FPGA图像处理专题,菜鸟FPGA HLS专题,fpga开发,mixer,图像处理,图像叠加,zynq
数据手的核心内容我直接翻译成图片如下:
FPGA调用 Video Mixer IP 实现多路视频拼接,提供4套工程源码和技术支持,菜鸟FPGA图像处理专题,菜鸟FPGA HLS专题,fpga开发,mixer,图像处理,图像叠加,zynq
Master Layer:底层,是视频叠加的最底层,不能编程,只能指定大小;
Layer0–>Layer16:叠加图层,也就是输入视频,叠加在底层之上,大小和位置可通过SDK编程控制。

4.Video Mixer IP寄存器配置和UI配置

BD配置如下:
FPGA调用 Video Mixer IP 实现多路视频拼接,提供4套工程源码和技术支持,菜鸟FPGA图像处理专题,菜鸟FPGA HLS专题,fpga开发,mixer,图像处理,图像叠加,zynq
寄存器配置说明如下:具体配置看SDK代码,工程源码和SDK配置C代码的获取方式在文章末尾,请耐心看到最后;
FPGA调用 Video Mixer IP 实现多路视频拼接,提供4套工程源码和技术支持,菜鸟FPGA图像处理专题,菜鸟FPGA HLS专题,fpga开发,mixer,图像处理,图像叠加,zynq

5.工程1:一路视频叠加输出

开发板FPGA型号:Xilinx Kintex7-xc7k325tffg676-2;
开发环境:vivado2019.1;
输入:OV5640摄像头,分辨率1280X720@60Hz;
输出:HDMI 1080P叠加一路720P视频输出;
Vivado Block Design工程如图:
FPGA调用 Video Mixer IP 实现多路视频拼接,提供4套工程源码和技术支持,菜鸟FPGA图像处理专题,菜鸟FPGA HLS专题,fpga开发,mixer,图像处理,图像叠加,zynq
mixer配置如下:
FPGA调用 Video Mixer IP 实现多路视频拼接,提供4套工程源码和技术支持,菜鸟FPGA图像处理专题,菜鸟FPGA HLS专题,fpga开发,mixer,图像处理,图像叠加,zynq
输出如下:
FPGA调用 Video Mixer IP 实现多路视频拼接,提供4套工程源码和技术支持,菜鸟FPGA图像处理专题,菜鸟FPGA HLS专题,fpga开发,mixer,图像处理,图像叠加,zynq

6.工程2:两路视频叠加输出

开发板FPGA型号:Xilinx Kintex7-xc7k325tffg676-2;
开发环境:vivado2019.1;
输入:OV5640摄像头,分辨率1280X720@60Hz;
输出:HDMI 1080P叠加2路960X540视频输出;
Vivado Block Design工程如图:
FPGA调用 Video Mixer IP 实现多路视频拼接,提供4套工程源码和技术支持,菜鸟FPGA图像处理专题,菜鸟FPGA HLS专题,fpga开发,mixer,图像处理,图像叠加,zynq
mixer配置如下:
FPGA调用 Video Mixer IP 实现多路视频拼接,提供4套工程源码和技术支持,菜鸟FPGA图像处理专题,菜鸟FPGA HLS专题,fpga开发,mixer,图像处理,图像叠加,zynq
输出如下:
FPGA调用 Video Mixer IP 实现多路视频拼接,提供4套工程源码和技术支持,菜鸟FPGA图像处理专题,菜鸟FPGA HLS专题,fpga开发,mixer,图像处理,图像叠加,zynq

7.工程3:四路视频叠加输出

开发板FPGA型号:Xilinx Kintex7-xc7k325tffg676-2;
开发环境:vivado2019.1;
输入:OV5640摄像头,分辨率1280X720@60Hz;
输出:HDMI 1080P叠加4路960X540视频输出;
Vivado Block Design工程如图:
FPGA调用 Video Mixer IP 实现多路视频拼接,提供4套工程源码和技术支持,菜鸟FPGA图像处理专题,菜鸟FPGA HLS专题,fpga开发,mixer,图像处理,图像叠加,zynq
mixer配置如下:
FPGA调用 Video Mixer IP 实现多路视频拼接,提供4套工程源码和技术支持,菜鸟FPGA图像处理专题,菜鸟FPGA HLS专题,fpga开发,mixer,图像处理,图像叠加,zynq
输出如下:
FPGA调用 Video Mixer IP 实现多路视频拼接,提供4套工程源码和技术支持,菜鸟FPGA图像处理专题,菜鸟FPGA HLS专题,fpga开发,mixer,图像处理,图像叠加,zynq

8.工程4:四路视频叠加优化输出

开发板FPGA型号:Xilinx Kintex7-xc7k325tffg676-2;
开发环境:vivado2019.1;
输入:OV5640摄像头,分辨率1280X720@60Hz;
输出:HDMI 1080P叠加4路960X540视频输出;
优化:去掉了AXI data width converter,如下:
FPGA调用 Video Mixer IP 实现多路视频拼接,提供4套工程源码和技术支持,菜鸟FPGA图像处理专题,菜鸟FPGA HLS专题,fpga开发,mixer,图像处理,图像叠加,zynq
替换成AIX4-Stream Subset Converter,如下:
FPGA调用 Video Mixer IP 实现多路视频拼接,提供4套工程源码和技术支持,菜鸟FPGA图像处理专题,菜鸟FPGA HLS专题,fpga开发,mixer,图像处理,图像叠加,zynq
优化的效果是降低了资源消耗,优化后的Vivado Block Design工程如图:
FPGA调用 Video Mixer IP 实现多路视频拼接,提供4套工程源码和技术支持,菜鸟FPGA图像处理专题,菜鸟FPGA HLS专题,fpga开发,mixer,图像处理,图像叠加,zynq

9.福利:工程源码获取

福利:工程代码的获取
代码太大,无法邮箱发送,以某度网盘链接方式发送,
资料获取方式:私,或者文章末尾的V名片。
网盘资料如下:
FPGA调用 Video Mixer IP 实现多路视频拼接,提供4套工程源码和技术支持,菜鸟FPGA图像处理专题,菜鸟FPGA HLS专题,fpga开发,mixer,图像处理,图像叠加,zynq文章来源地址https://www.toymoban.com/news/detail-661562.html

到了这里,关于FPGA调用 Video Mixer IP 实现多路视频拼接,提供4套工程源码和技术支持的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包