FPGA实现SDI视频解码PCIE传输 提供工程源码和QT上位机源码加技术支持

这篇具有很好参考价值的文章主要介绍了FPGA实现SDI视频解码PCIE传输 提供工程源码和QT上位机源码加技术支持。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、前言

FPGA实现SDI视频编解码目前有两种方案:
一是使用专用编解码芯片,比如典型的接收器GS2971,发送器GS2972,优点是简单,比如GS2971直接将SDI解码为并行的YCRCB,缺点是成本较高,可以百度一下GS2971的价格;
另一种方案是使用FPGA实现编解码,利用FPGA的GTP/GTX资源实现解串,优点是合理利用了FPGA资源,GTP/GTX资源不用白不用,缺点是操作难度大一些,对FPGA水平要求较高。

PCIE(PCI Express)采用了目前业内流行的点对点串行连接,比起 PCI 以及更早期的计算机总线的共享并行架构,每个设备都有自己的专用连接,不需要向整个总线请求带宽,而且可以把数据传输率提高到一个很高的频率,达到 PCI 所不能提供的高带宽,是目前各行业高速接口的优先选择方向,具有很高的实用价值和学习价值;

本设计使用Xilinx官方的XDMA方案搭建基于Xilinx系列FPGA的PCIE通信平台,该方案只适用于Xilinx系列FPGA,一并提供了XDMA的安装驱动和QT上位机源代码,省去了使用XDMA繁琐的驱动寻找和上位机软件开发的不知所措,并以搭建好vivado工程,省去了不知道如何使用XDMA的尴尬,使得PCIE的使用变得简单易上手,而不用关心其复杂的PCIE协议;由于我的开发板只支持PCIE X8,所以提供的代码是PCIE X8架构,若需要PCIE X1、 X2、 X8、 X16、 X32的朋友,可自行修改本工程,也可关注我,我会实时发布新的工程。

FPGA实现SDI视频解码PCIE传输 提供工程源码和QT上位机源码加技术支持
本文详细描述了FPGA纯verilog解码SDI视频并发送PCIE到上位机用QT现实采集视频的实现设计方案,利用开发板自带的SDI输入接口,实时采集HDMI输入视频,缓存DDR3后,一路经HDMI输出芯片输出显示器,另一路经XDMA,通过PCIE发送给QT上位机显示程序显示;达到SDI采集视频环出和PCIE输出到电脑端显示的同步操作,属于FPGA图像采集领域的高端项目。。。
工程代码编译通过后上板调试验证,文章末尾有演示视频,可直接项目移植,适用于在校学生做毕业设计、研究生项目开发,也适用于在职工程师做项目开发,可应用于医疗、军工等行业的数字成像和图像传输领域;
提供完整的、跑通的工程源码和技术支持;
工程源码和技术支持的获取方式放在了文章末尾,请耐心看到最后;

免责声明

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

2、我已有的SDI编解码方案

我的主页有SDI视频专栏,既有FPGA纯逻辑资源的SDI编解码,其中有基于GTX的,也有基于GTH的编解码,又有基于例如GS2971/GS2972的SDI视频收发工程,既有普通的SDI接受发送,也有SDI视频的缩放、拼接、UDP传输、SFP光纤传输、PCIE传输等等;以下是专栏地址:
点击直接前往

3、我已有的PCIE方案

我的主页有PCIE通信专栏,既有基于RIFFA实现的PCIE方案,也有基于XDMA实现的PCIE方案;既有简单的数据交互、测速,也有应用级别的图像采集传输;既有纯FPGA的PCIE,也有zynq的PCIE;以下是专栏地址:
点击直接前往

4、总体设计思路和方案

总体设计思路和方案如下:
FPGA实现SDI视频解码PCIE传输 提供工程源码和QT上位机源码加技术支持

SDI摄像头

我用到的SDI摄像头输出视频分辨率1080P@30Hz;根据不同相机有所区别;

Gv8601a单端转差

Gv8601a起到均衡 EQ 功能,这里选用Gv8601a是因为抄袭了Xilinx官方的板子,当然也可以用其他型号器件。

GTX解串

GTX负责解串,将原始SDI视频解为20位的并行数据,我的板子是K7,所以用GTX,如果是A7的板子则用GTP,这里使用GTX并没有调用IP,而是直接调用GTXE2_CHANNEL和GTXE2_COMMON源语,这一点可谓将Xilinx的GTX资源用到了极致水平,值得好好品读,其实调用IP无非也就是把调用源语变得界面化而已,直接调用源语或许理解更为深刻,这一点,在市面上的所谓FPGA教程里都学不到。

SDI解码

调用SMPTE-SDI IP核实现,GTX只是将高速串行数据解为了并行,但并没有解析SDI协议,SMPTE-SDI IP核则完成了SDI协议的解码,去掉了SDI协议中的数据包信息和控制信息,解析出有效的视频数据,详细的SMPTE-SDI IP核接口定义请参考官方的使用手册;

VGA时序恢复

此模块的作用就是解码恢复出hs、vs以及de信号,即恢复正常的VGA视频时序;
要恢复正常的VGA视频时序,首先得看懂下面这张图:
FPGA实现SDI视频解码PCIE传输 提供工程源码和QT上位机源码加技术支持
根据这张表即可恢复出图像时序,具体看代码,这里一两句话实在讲不清楚,如果要完全讲明白,写5本书都搓搓有余;

YUV转RGB

这里就简单了,YUV4:4:4转RGB8:8:8,几条公式和几行代码的事儿,属于低端操作;
至此,SDI解码过程就完成了,接下来就是图像输出过程;

具体的SDI解码部分原理讲解,请参考我之前的文章:点击直接前往

图像缓存

其实就是一个AXI4主机,加上读写逻辑构成的DMA;具体看代码。。。

PCIE发送通路

调用Xilinx官方的XDMA作为PCIE发送引擎,不需要了解PCIE复杂的协议,XDMA集成AXI4接口,直接与DDR3交互,用户通过DDR3的指定地址做数据读写即可;
具体的PCIE发送通路部分原理讲解,请参考我之前的文章:点击直接前往

SDI同步输出通路

SDI视频采集缓存后,读出数据送HDMI输出现实,这一步可作为QT上位机的参考,同步输出可比较PCIE视频传输的正确性,有的项目也有PCIE和HDMI同步输出的需求,所以这里设计得高度贴近真实项目。。。
HDMI发送使用silicon9134芯片,silicon9134需要i2c配置才能使用,关于silicon9134得i2c配置和使用,请参考我之前的文章:点击直接前往

5、vivado工程详解

开发板FPGA型号:Xilinx–xc7k325tffg900-2;
开发环境:Vivado2019.1;
输入:3G-SDI;分辨率1920X1080@30Hz;
输出1:PCIE X8至电脑端QT上位机;
输出2:HDMI输出;分辨率1920X1080@60Hz;;
应用:SDI视频采集卡;
工程BD如下:
FPGA实现SDI视频解码PCIE传输 提供工程源码和QT上位机源码加技术支持
FPGA实现SDI视频解码PCIE传输 提供工程源码和QT上位机源码加技术支持
综合后的工程代码架构如下:
FPGA实现SDI视频解码PCIE传输 提供工程源码和QT上位机源码加技术支持
SDI解码部分源码位置如图:
FPGA实现SDI视频解码PCIE传输 提供工程源码和QT上位机源码加技术支持
综合编译完成后的FPGA资源消耗和功耗预估如下:
FPGA实现SDI视频解码PCIE传输 提供工程源码和QT上位机源码加技术支持

6、驱动安装

提供提供Win系统驱动,目录如下:
FPGA实现SDI视频解码PCIE传输 提供工程源码和QT上位机源码加技术支持
FPGA实现SDI视频解码PCIE传输 提供工程源码和QT上位机源码加技术支持
驱动安装参考前面的测速试验:点击直接前往

7、QT上位机软件

QT显示上位机:提供源代码和可执行程序,发开版本为QT5.6.2;位置如下:
FPGA实现SDI视频解码PCIE传输 提供工程源码和QT上位机源码加技术支持
FPGA实现SDI视频解码PCIE传输 提供工程源码和QT上位机源码加技术支持
FPGA实现SDI视频解码PCIE传输 提供工程源码和QT上位机源码加技术支持

8、工程移植说明

vivado版本不一致处理

1:如果你的vivado版本与本工程vivado版本一致,则直接打开工程;
2:如果你的vivado版本低于本工程vivado版本,则需要打开工程后,点击文件–>另存为;但此方法并不保险,最保险的方法是将你的vivado版本升级到本工程vivado的版本或者更高版本;
FPGA实现SDI视频解码PCIE传输 提供工程源码和QT上位机源码加技术支持
3:如果你的vivado版本高于本工程vivado版本,解决如下:
FPGA实现SDI视频解码PCIE传输 提供工程源码和QT上位机源码加技术支持
打开工程后会发现IP都被锁住了,如下:
FPGA实现SDI视频解码PCIE传输 提供工程源码和QT上位机源码加技术支持
此时需要升级IP,操作如下:
FPGA实现SDI视频解码PCIE传输 提供工程源码和QT上位机源码加技术支持
FPGA实现SDI视频解码PCIE传输 提供工程源码和QT上位机源码加技术支持

FPGA型号不一致处理

如果你的FPGA型号与我的不一致,则需要更改FPGA型号,操作如下:
FPGA实现SDI视频解码PCIE传输 提供工程源码和QT上位机源码加技术支持
FPGA实现SDI视频解码PCIE传输 提供工程源码和QT上位机源码加技术支持
FPGA实现SDI视频解码PCIE传输 提供工程源码和QT上位机源码加技术支持
更改FPGA型号后还需要升级IP,升级IP的方法前面已经讲述了;

其他注意事项

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

9、上板调试验证

SDI同步HDMI输出验证

FPGA实现SDI视频解码PCIE传输 提供工程源码和QT上位机源码加技术支持

PCIE输出验证

开启上位机测程序进行 PCIe 显示测试,打开下图的显示软件 pcie2screen,软件在如下位置,实验结果如下:
FPGA实现SDI视频解码PCIE传输 提供工程源码和QT上位机源码加技术支持
打开上位机以后可以看到软件暂停播放:
FPGA实现SDI视频解码PCIE传输 提供工程源码和QT上位机源码加技术支持
点击中间的按钮,开始播放SDI输入视频源的视频:
FPGA实现SDI视频解码PCIE传输 提供工程源码和QT上位机源码加技术支持

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

福利:工程代码的获取
代码太大,无法邮箱发送,以某度网盘链接方式发送,
资料获取方式1:私,或者文章末尾的V名片。
资料获取方式2:文章末尾的XX号,回复 001006
网盘资料如下:
FPGA实现SDI视频解码PCIE传输 提供工程源码和QT上位机源码加技术支持
FPGA实现SDI视频解码PCIE传输 提供工程源码和QT上位机源码加技术支持文章来源地址https://www.toymoban.com/news/detail-459772.html

到了这里,关于FPGA实现SDI视频解码PCIE传输 提供工程源码和QT上位机源码加技术支持的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • FPGA高端项目:FPGA基于GS2971+GS2972架构的SDI视频收发+GTX 8b/10b编解码SFP光口传输,提供2套工程源码和技术支持

    FPGA高端项目:FPGA基于GS2971+GS2972架构的SDI视频收发+GTX 8b/10b编解码SFP光口传输,提供2套工程源码和技术支持 目前FPGA实现SDI视频编解码有两种方案:一是使用专用编解码芯片,比如典型的接收器GS2971,发送器GS2972,优点是简单,比如GS2971接收器直接将SDI解码为并行的YCrCb422,

    2024年03月23日
    浏览(49)
  • FPGA解码SDI视频任意尺寸缩放拼接输出 提供工程源码和技术支持

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

    2024年02月09日
    浏览(53)
  • FPGA实现 12G-SDI 视频编解码,支持4K60帧,提供2套工程源码+开发板+技术支持

    FPGA实现 12G-SDI 视频编解码,支持4K60帧,提供2套工程源码+开发板+技术支持 Xilinx系列FPGA实现12G-SDI视频编解码目前有两种方案: 一是使用Xilinx 7系列FPGA的GT高速接口解串+SMPTE UHD-SDI编解码,这种方案的优点是对FPGA型号要求较低,价格便宜,普通的GTX就能满足要求,缺点是灵活

    2024年04月26日
    浏览(42)
  • FPGA实现MPEG2视频压缩PCIe传输 提供软硬件工程源码和技术支持

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

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

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

    2024年02月11日
    浏览(53)
  • FPGA实现HDMI输入转SDI视频输出,提供4套工程源码和技术支持

    FPGA实现HDMI输入转SDI视频输出,提供4套工程源码和技术支持 FPGA实现SDI视频编解码目前有两种方案: 一是使用专用编解码芯片,比如典型的接收器GS2971,发送器GS2972,优点是简单,比如GS2971接收器直接将SDI解码为并行的YCRCB,GS2972发送器直接将并行的YCRCB编码为SDI视频,缺点是

    2024年02月08日
    浏览(51)
  • FPGA基于GS2971/GS2972实现SDI视频收发 提供工程源码和技术支持

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

    2024年02月07日
    浏览(45)
  • FPGA基于RIFFA实现PCIE采集ov5640图像传输,提供工程源码和QT上位机

    PCIE是目前速率很高的外部板卡与CPU通信的方案之一,广泛应用于电脑主板与外部板卡的通讯,PCIE协议极其复杂,想要掌握不容易,所以Xilinx和Altera等FPGA厂商直接推出了相关IP供用户使用,比如Xilinx的XDMA,这种IP直接集成了PCIE通信的所有内核资源,并已封装为AXIS接口,用户在

    2023年04月09日
    浏览(74)
  • FPGA GTX全网最细讲解,aurora 8b/10b编解码,HDMI视频传输,提供2套工程源码和技术支持

    没玩过GT资源都不好意思说自己玩儿过FPGA,这是CSDN某大佬说过的一句话,鄙人深信不疑。。。 GT资源是Xilinx系列FPGA的重要卖点,也是做高速接口的基础,不管是PCIE、SATA、MAC等,都需要用到GT资源来做数据高速串化和解串处理,Xilinx不同的FPGA系列拥有不同的GT资源类型,低端

    2024年02月09日
    浏览(40)
  • FPGA基于XDMA实现PCIE X8视频采集HDMI输出 提供工程源码和QT上位机程序和技术支持

    PCIE(PCI Express)采用了目前业内流行的点对点串行连接,比起 PCI 以及更早期的计算机总线的共享并行架构,每个设备都有自己的专用连接,不需要向整个总线请求带宽,而且可以把数据传输率提高到一个很高的频率,达到 PCI 所不能提供的高带宽,是目前各行业高速接口的优

    2024年02月01日
    浏览(49)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包