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利用Video Mixer IP实现视频叠加,送4套工程源码和技术支持
数据手的核心内容我直接翻译成图片如下:
FPGA利用Video Mixer IP实现视频叠加,送4套工程源码和技术支持
Master Layer:底层,是视频叠加的最底层,不能编程,只能指定大小;
Layer0–>Layer16:叠加图层,也就是输入视频,叠加在底层之上,大小和位置可通过SDK编程控制。

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

BD配置如下:
FPGA利用Video Mixer IP实现视频叠加,送4套工程源码和技术支持
寄存器配置说明如下:具体配置看SDK代码,工程源码和SDK配置C代码的获取方式在文章末尾,请耐心看到最后;
FPGA利用Video Mixer IP实现视频叠加,送4套工程源码和技术支持

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

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

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

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

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

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

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套工程源码和技术支持
替换成AIX4-Stream Subset Converter,如下:
FPGA利用Video Mixer IP实现视频叠加,送4套工程源码和技术支持
优化的效果是降低了资源消耗,优化后的Vivado Block Design工程如图:
FPGA利用Video Mixer IP实现视频叠加,送4套工程源码和技术支持

9.福利:工程源码获取

福利:工程代码的获取
代码太大,无法邮箱发送,以某度网盘链接方式发送,
资料获取方式:私,或者文章末尾的V名片。
网盘资料如下:
FPGA利用Video Mixer IP实现视频叠加,送4套工程源码和技术支持文章来源地址https://www.toymoban.com/news/detail-430518.html

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

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

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

相关文章

  • FPGA高端项目:解码索尼IMX327 MIPI相机+2路视频融合叠加,提供开发板+工程源码+技术支持

    FPGA高端项目:解码索尼IMX327 MIPI相机+2路视频融合叠加,提供开发板+工程源码+技术支持 FPGA图像采集领域目前协议最复杂、技术难度最高之一的应该就是MIPI协议了,MIPI解码难度之高,令无数英雄竞折腰,以至于Xilinx官方不得不推出专用的IP核供开发者使用,不然太高端的操作

    2024年04月15日
    浏览(67)
  • FPGA PAL视频BT656解码Video Processing Subsystem去隔行工程源码 TW2867采集4路视频拼接输出 提供技术支持

    大自然的信号都是模拟的,视频信号也不例外。视频信号是指电视信号、静止图象信号和可视电视图像信号。视频信号分为三种制式:PAL、NTSC 和 SECAM。既然 PAL、NTSC、SECAM 都是模拟信号,FPGA 处理的是数字信号(有些 FPGA内部自带 AD,可以处理模拟信号,例如 Altera 的 MAX10),

    2024年02月03日
    浏览(50)
  • FPGA解码 4K MIPI 视频自定义IP版 纯vhdl实现 CSI2 RX 采集OV13850 提供工程源码和技术支持

    FPGA图像采集领域目前协议最复杂、技术难度最高的应该就是MIPI协议了,MIPI解码难度之高,令无数英雄竞折腰,以至于Xilinx官方不得不推出专用的IP核供开发者使用,不然太高端的操作直接吓退一大批FPGA开发者,就没人玩儿了。 本设计基于Xilinx的Kintex7开发板,采集OV13850摄像

    2024年02月11日
    浏览(46)
  • Zynq-7000系列FPGA使用 Video Processing Subsystem 实现图像缩放,提供工程源码和技术支持

    Zynq-7000系列FPGA使用 Video Processing Subsystem 实现图像缩放,提供工程源码和技术支持 没玩过图像缩放都不好意思说自己玩儿过FPGA,这是CSDN某大佬说过的一句话,鄙人深信不疑。。。 目前市面上主流的FPGA图像缩放方案如下: 1:Xilinx的HLS方案,该方案简单,易于实现,但只能用

    2024年02月05日
    浏览(48)
  • FPGA高端项目:FPGA实现SDI视频编解码工程解决方案,提供3套工程源码和技术支持

    FPGA高端项目:FPGA实现SDI视频编解码工程解决方案,提供3套工程源码和技术支持 目前FPGA实现SDI视频编解码有两种方案:一是使用专用编解码芯片,比如典型的接收器GS2971,发送器GS2972,优点是简单,比如GS2971接收器直接将SDI解码为并行的YCrCb422,GS2972发送器直接将并行的YC

    2024年02月21日
    浏览(48)
  • FPGA实现MPEG2视频压缩 提供工程源码和技术支持

    MJPEG、MPEG2、MPEG4、H264 是流行且兼容性很高的 4 种视频编码格式。其中 MJPEG 对每帧独立进行 JPEG 图象压缩,而不利用帧间相关性,因此压缩效果较差。 MPEG2、MPEG4 和 H264 会进行帧间压缩,但后两者更复杂,效果也更好。MPEG2 虽然比较老 (1994年),但在低压缩率的条件下与 MPEG

    2024年02月06日
    浏览(48)
  • FPGA使用GTH实现SDI视频回环收发 提供工程源码和技术支持

    FPGA实现SDI视频编解码目前有两种方案: 一是使用专用编解码芯片,比如典型的接收器GS2971,发送器GS2972,优点是简单,比如GS2971接收器直接将SDI解码为并行的YCRCB,GS2972发送器直接将并行的YCRCB编码为SDI视频,缺点是成本较高,可以百度一下GS2971和GS2972的价格; 另一种方案是

    2024年02月11日
    浏览(53)
  • FPGA纯verilog实现8路视频拼接显示,提供工程源码和技术支持

    没玩过图像拼接都不好意思说自己玩儿过FPGA,这是CSDN某大佬说过的一句话,鄙人深信不疑。。。 图像拼接在实际项目中应用广泛,特别是在医疗和军工行业,目前市面上的图像拼接方案主要有Xilinx官方推出的Video Mixer方案和自己手撕代码的自定义方案;Xilinx官方推出的Vide

    2024年02月08日
    浏览(45)
  • FPGA纯verilog代码实现H264视频压缩 提供工程源码和技术支持

    H264视频压缩与解码在FPGA图传领域应用广泛,Xilinx高端器件已经内嵌了H264加速器,在Linux系统下调用API即可使用,但对于需要定制私有算法或者协议的H264视频压缩与解码应用或者学习研究者而言,纯verilog代码实现H264视频压缩依然具有实用价值,本设计采用纯verilog代码实现

    2024年02月06日
    浏览(57)
  • FPGA纯verilog实现CameraLink视频接收和发送,附带工程源码和技术支持

    FPGA实现CameraLink视频编解码目前有两种方案: 一是使用专用编解码芯片,比如典型的DS90CR287;另一种方案是使用FPGA实现编解码,利用FPGA的serdes资源实现解串,优点是合理利用了FPGA资源,serdes资源不用白不用,缺点是操作难度大一些,对FPGA水平要求较高。 本文详细描述了F

    2024年02月07日
    浏览(48)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包