FPGA 图像缩放 千兆网 UDP 网络视频传输,基于RTL8211 PHY实现,提供工程和QT上位机源码加技术支持

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

1、前言

没玩过UDP协议栈都不好意思说自己玩儿过FPGA,这是CSDN某大佬说过的一句话,鄙人深信不疑。。。UDP协议栈在实际项目中应用广泛,特别是在医疗和军工行业;本文使用Xilinx的Artix7 FPGA基于RTL8211 网络PHY芯片实现千兆网UDP视频传输(视频缩放后再传输),视频源有两种,分别对应开发者手里有没有摄像头的情况,一种是使用板载的HDMI输入接口(笔记本电脑输入模拟HDMI输入源);另一种是如果你的手里没有摄像头,或者你的开发板没HDMI输入接口,则可使用代码内部生成的动态彩条模拟摄像头视频,视频源的选择通过代码顶层的`define宏定义进行,上电默认选择HDMI输入接口作为视频输入源;FPGA采集视频后,首先使用纯verilog实现的图像缩放模块对视频进行缩小操作,即从输入的1920x1080分辨率缩小为1280x720,因为我们的QT上位机目前只支持1280x720,所以才需要缩放;使用FDMA将视频缓存到DDR3中,然后将视频读出,根据与QT上位机的通信协议将视频进行UDP数据组包,然后使用我们的UDP协议栈对视频进行UDP数据封装,再将数据送入Tri Mode Ethernet MAC IP,输出给开发板板载的RTL8211 网络PHY,然后UDP视频通过开发板板载的RJ45网口经网线传输给电脑主机,电脑端用我们提供的QT上位机采集图像并显示;提供vivado2019.1版本的FPGA工程源码和QT上位机及其源码;

本博客详细描述了FPGA基于RTL8211 网络PHY芯片实现千兆网UDP视频传输的设计方案,工程代码可综合编译上板调试,可直接项目移植,适用于在校学生、研究生项目开发,也适用于在职工程师做学习提升,可应用于医疗、军工等行业的高速接口或图像处理领域;
提供完整的、跑通的工程源码和技术支持;
工程源码和技术支持的获取方式放在了文章末尾,请耐心看到最后;

版本更新说明

此版本为第2版,根据读者的建议,对第1版工程做了如下改进和更新:
1:增加了输入视频动态彩条的选择,有的读者说他手里没有OV5640摄像头,或者摄像头原理图和我的不一致,导致在移植过程中困难很大,基于此,增加了动态彩条,它由FPGA内部产生,不需要外接摄像头就可以使用,使用方法在后文有说明,本例程板载的是HDMI输入接口,没有该接口的朋友可以选择使用动态彩条;
2:优化了FDMA,之前的FDMA内AXI4的数据读写突发长度为256,导致在低端FPGA上带宽不够,从而图像质量不佳,基于此,将FDMA内AXI4的数据读写突发长度改为128;
3:优化了UDP协议栈及其数据缓冲FIFO组的代码,并在博文里增加了这一部分的代码说明;
4:增加了Tri Mode Ethernet MAC IP核的使用、更新、修改等说明,以单独文档形式放在了资料包中;
5:优化了整体代码架构,使得之前看起来杂乱无章的代码变得清爽简洁;

免责声明

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

2、相关方案推荐

UDP视频传输–无缩放

我这里有与本博客相似的UDP视频传输方案,但他的输入视频没有进行缩放操作,而是直接缓存后送UDP协议栈输出,博客链接如下:直接点击前往

FPGA图像缩放方案

本博客使用到的图像缩放方案,是我之前发布过的一篇博文的内容,对该图像缩放部分感兴趣的可以参考,博客链接如下:直接点击前往

我这里已有的以太网方案

目前我这里有大量UDP协议的工程源码,包括UDP数据回环,视频传输,AD采集传输等,也有TCP协议的工程,还有RDMA的NIC 10G 25G 100G网卡工程源码,对网络通信有需求的兄弟可以去看看:直接点击前往
其中千兆TCP协议的工程博客如下:
直接点击前往

3、设计思路框架

FPGA工程设计框图如下:
FPGA 图像缩放 千兆网 UDP 网络视频传输,基于RTL8211 PHY实现,提供工程和QT上位机源码加技术支持,菜鸟FPGA以太网专题,菜鸟FPGA图像处理专题,FPGA图像缩放,网络,fpga开发,udp,RTL8211,QT,视频传输,图像缩放

视频源选择

视频源有两种,分别对应开发者手里有没有摄像头的情况,一种是使用板载的HDMI输入接口;另一种是如果你的手里没有摄像头,或者你的开发板没HDMI输入接口,则可使用代码内部生成的动态彩条模拟摄像头视频,视频源的选择通过代码顶层的宏定义进行,上电默认选择HDMI输入接口作为视频输入源;
视频源的选择通过代码顶层的`define宏定义进行;如下:
FPGA 图像缩放 千兆网 UDP 网络视频传输,基于RTL8211 PHY实现,提供工程和QT上位机源码加技术支持,菜鸟FPGA以太网专题,菜鸟FPGA图像处理专题,FPGA图像缩放,网络,fpga开发,udp,RTL8211,QT,视频传输,图像缩放
选择逻辑代码部分如下:
FPGA 图像缩放 千兆网 UDP 网络视频传输,基于RTL8211 PHY实现,提供工程和QT上位机源码加技术支持,菜鸟FPGA以太网专题,菜鸟FPGA图像处理专题,FPGA图像缩放,网络,fpga开发,udp,RTL8211,QT,视频传输,图像缩放
选择逻辑如下:
当(注释) define COLOR_IN时,输入源视频是动态彩条;
当(不注释) define COLOR_IN时,输入源视频是HDMI输入;

ADV7611 解码芯片配置及采集

ADV7611 解码芯片需要i2c配置才能使用,ADV7611 解码芯片配置及采集这两部分均用verilog代码模块实现,代码位置如下:
FPGA 图像缩放 千兆网 UDP 网络视频传输,基于RTL8211 PHY实现,提供工程和QT上位机源码加技术支持,菜鸟FPGA以太网专题,菜鸟FPGA图像处理专题,FPGA图像缩放,网络,fpga开发,udp,RTL8211,QT,视频传输,图像缩放
代码中配置为1920x1080分辨率;

动态彩条

动态彩条可配置为不同分辨率的视频,视频的边框宽度,动态移动方块的大小,移动速度等都可以参数化配置,我这里配置为辨率1920x1080,动态彩条模块代码位置和顶层接口和例化如下:
FPGA 图像缩放 千兆网 UDP 网络视频传输,基于RTL8211 PHY实现,提供工程和QT上位机源码加技术支持,菜鸟FPGA以太网专题,菜鸟FPGA图像处理专题,FPGA图像缩放,网络,fpga开发,udp,RTL8211,QT,视频传输,图像缩放
FPGA 图像缩放 千兆网 UDP 网络视频传输,基于RTL8211 PHY实现,提供工程和QT上位机源码加技术支持,菜鸟FPGA以太网专题,菜鸟FPGA图像处理专题,FPGA图像缩放,网络,fpga开发,udp,RTL8211,QT,视频传输,图像缩放

跨时钟FIFO

跨时钟FIFO的作用是为了解决跨时钟域的问题,当视频不进行缩放时不存在视频跨时钟域问题,但当视频缩小或放大时就存在此问题,用FIFO缓冲可以使图像缩放模块每次读到的都是有效的输入数据,注意,原视频的输入时序在这里就已经被打乱了;

图像缩放模块详解

因为我们的QT上位机目前只支持1280x720,所以才需要缩放,即从输入的1920x1080分辨率缩小为1280x720;用笔记本电脑模拟HDMI视频输入源;

设计框图

本设计将常用的双线性插值和邻域插值算法融合为一个代码中,通过输入参数选择某一种算法;代码使用纯verilog实现,没有任何ip,可在Xilinx、Intel、国产FPGA间任意移植;代码以ram和fifo为核心进行数据缓存和插值实现,设计架构如下:
FPGA 图像缩放 千兆网 UDP 网络视频传输,基于RTL8211 PHY实现,提供工程和QT上位机源码加技术支持,菜鸟FPGA以太网专题,菜鸟FPGA图像处理专题,FPGA图像缩放,网络,fpga开发,udp,RTL8211,QT,视频传输,图像缩放
视频输入时序要求如下:
FPGA 图像缩放 千兆网 UDP 网络视频传输,基于RTL8211 PHY实现,提供工程和QT上位机源码加技术支持,菜鸟FPGA以太网专题,菜鸟FPGA图像处理专题,FPGA图像缩放,网络,fpga开发,udp,RTL8211,QT,视频传输,图像缩放
输入像素数据在dInValid和nextDin同时为高时方可改变;
视频输出时序要求如下:
FPGA 图像缩放 千兆网 UDP 网络视频传输,基于RTL8211 PHY实现,提供工程和QT上位机源码加技术支持,菜鸟FPGA以太网专题,菜鸟FPGA图像处理专题,FPGA图像缩放,网络,fpga开发,udp,RTL8211,QT,视频传输,图像缩放
输出像素数据在dOutValid 和nextdOut同时为高时才能输出;

代码框图

代码使用纯verilog实现,没有任何ip,可在Xilinx、Intel、国产FPGA间任意移植;
图像缩放的实现方式很多,最简单的莫过于Xilinx的HLS方式实现,用opencv的库,以c++语言几行代码即可完成,关于HLS实现图像缩放请参考我之前写的文章HLS实现图像缩放
网上也有其他图像缩放例程代码,但大多使用了IP,导致在其他FPGA器件上移植变得困难,通用性不好;相比之下,本设计代码就具有通用性;代码架构如图;
FPGA 图像缩放 千兆网 UDP 网络视频传输,基于RTL8211 PHY实现,提供工程和QT上位机源码加技术支持,菜鸟FPGA以太网专题,菜鸟FPGA图像处理专题,FPGA图像缩放,网络,fpga开发,udp,RTL8211,QT,视频传输,图像缩放
其中顶层接口部分如下:
FPGA 图像缩放 千兆网 UDP 网络视频传输,基于RTL8211 PHY实现,提供工程和QT上位机源码加技术支持,菜鸟FPGA以太网专题,菜鸟FPGA图像处理专题,FPGA图像缩放,网络,fpga开发,udp,RTL8211,QT,视频传输,图像缩放

2种插值算法的整合与选择

本设计将常用的双线性插值和邻域插值算法融合为一个代码中,通过输入参数选择某一种算法;
具体选择参数如下:

input  wire i_scaler_type //0-->bilinear;1-->neighbor

通过输入i_scaler_type 的值即可选择;

输入0选择双线性插值算法;
输入1选择邻域插值算法;

关于这两种算法的数学差异,请参考我之前写的文章HLS实现图像缩放

UDP协议栈

本UDP协议栈方案需配合Xilinx的Tri Mode Ethernet MAC三速网IP一起使用,使用UDP协议栈网表文件,虽看不见源码但可正常实现UDP通信,该协议栈目前并不开源,只提供网表文件,但不影响使用,该协议栈带有用户接口,使得用户无需关心复杂的UDP协议而只需关心简单的用户接口时序即可操作UDP收发,非常简单;
协议栈架构如下:
FPGA 图像缩放 千兆网 UDP 网络视频传输,基于RTL8211 PHY实现,提供工程和QT上位机源码加技术支持,菜鸟FPGA以太网专题,菜鸟FPGA图像处理专题,FPGA图像缩放,网络,fpga开发,udp,RTL8211,QT,视频传输,图像缩放
协议栈性能表现如下:
1:支持 UDP 接收校验和检验功能,暂不支持 UDP 发送校验和生成;
2:支持 IP 首部校验和的生成和校验,同时支持 ICMP 协议中的 PING 功能,可接收并响应同一个子网内部设备的 PING 请求;
3:可自动发起或响应同一个子网内设备的 ARP 请求,ARP 收发完全自适应。ARP 表可保存同一个子网内部256 个 IP 和 MAC 地址对;
4:支持 ARP 超时机制,可检测所需发送数据包的目的 IP 地址是否可达;
5:协议栈发送带宽利用率可达 93%,高发送带宽下,内部仲裁机制保证 PING 和 ARP 功能不受任何影响;
6:发送过程不会造成丢包;
7:提供64bit位宽AXI4-Stream形式的MAC接口,可与Xilinx官方的千兆以太网IP核Tri Mode Ethernet MAC,以及万兆以太网 IP 核 10 Gigabit Ethernet Subsystem、10 Gigabit Ethernet MAC 配合使用;
有了此协议栈,我们无需关心复杂的UDP协议的实现了,直接调用接口即可使用。。。
本UDP协议栈用户接口发送时序如下:
FPGA 图像缩放 千兆网 UDP 网络视频传输,基于RTL8211 PHY实现,提供工程和QT上位机源码加技术支持,菜鸟FPGA以太网专题,菜鸟FPGA图像处理专题,FPGA图像缩放,网络,fpga开发,udp,RTL8211,QT,视频传输,图像缩放
本UDP协议栈用户接口接收时序如下:
FPGA 图像缩放 千兆网 UDP 网络视频传输,基于RTL8211 PHY实现,提供工程和QT上位机源码加技术支持,菜鸟FPGA以太网专题,菜鸟FPGA图像处理专题,FPGA图像缩放,网络,fpga开发,udp,RTL8211,QT,视频传输,图像缩放

UDP视频数据组包

实现UDP视频数据的组包,UDP数据发送必须与QT上位机的接受程序一致,上位机定义的UDP帧格式包括帧头个UDP数据,帧头定义如下:
FPGA 图像缩放 千兆网 UDP 网络视频传输,基于RTL8211 PHY实现,提供工程和QT上位机源码加技术支持,菜鸟FPGA以太网专题,菜鸟FPGA图像处理专题,FPGA图像缩放,网络,fpga开发,udp,RTL8211,QT,视频传输,图像缩放
FPGA端的UDP数据组包代码必须与上图的数据帧格式对应,否则QT无法解析,代码中定义了数据组包状态机以及数据帧,如下:
FPGA 图像缩放 千兆网 UDP 网络视频传输,基于RTL8211 PHY实现,提供工程和QT上位机源码加技术支持,菜鸟FPGA以太网专题,菜鸟FPGA图像处理专题,FPGA图像缩放,网络,fpga开发,udp,RTL8211,QT,视频传输,图像缩放
另外,由于UDP发送是64位数据位宽,而图像像素数据是24bit位宽,所以必须将UDP数据重新组合,以保证像素数据的对齐,这部分是整个工程的难点,也是所有FPGA做UDP数据传输的难点;

UDP协议栈数据发送

UDP协议栈具有发送和接收功能,但这里仅用到了发送,此部分代码架构如下:
FPGA 图像缩放 千兆网 UDP 网络视频传输,基于RTL8211 PHY实现,提供工程和QT上位机源码加技术支持,菜鸟FPGA以太网专题,菜鸟FPGA图像处理专题,FPGA图像缩放,网络,fpga开发,udp,RTL8211,QT,视频传输,图像缩放
UDP协议栈代码组我已经做好,用户可直接拿去使用;

UDP协议栈数据缓冲

这里对代码中用到的数据缓冲FIFO组做如下解释:
由于 UDP IP 协议栈的 AXI-Stream 数据接口位宽为 64bit,而 Tri Mode Ethernet MAC 的 AXI-Stream数据接口位宽为 8bit。因此,要将 UDP IP 协议栈与 Tri Mode Ethernet MAC 之间通过 AXI-Stream 接口互联,需要进行时钟域和数据位宽的转换。实现方案如下图所示:
FPGA 图像缩放 千兆网 UDP 网络视频传输,基于RTL8211 PHY实现,提供工程和QT上位机源码加技术支持,菜鸟FPGA以太网专题,菜鸟FPGA图像处理专题,FPGA图像缩放,网络,fpga开发,udp,RTL8211,QT,视频传输,图像缩放
收发路径(本设计只用到了发送)都使用了2个AXI-Stream DATA FIFO,通过其中1个FIFO实现异步时钟域的转换,1个FIFO实
现数据缓冲和同步Packet mode功能;由于千兆速率下Tri Mode Ethernet MAC的AXI-Stream数据接口同步时钟信号为125MHz,此时,UDP协议栈64bit的AXI-Stream数据接口同步时钟信号应该为125MHz/(64/8)=15.625MHz,因此,异步
AXI-Stream DATA FIFO两端的时钟分别为125MHz(8bit),15.625MHz(64bit);UDP IP协议栈的AXI-Stream接口经过FIFO时钟域转换后,还需要进行数据数据位宽转换,数据位宽的转换通过AXI4-Stream Data Width Converter完成,在接收路径中,进行 8bit 到 64bit 的转换;在发送路径中,进行 64bit 到 8bit 的转换;

IP地址、端口号的修改

UDP协议栈留出了IP地址、端口号的修改端口供用户自由修改,位置如下:
FPGA 图像缩放 千兆网 UDP 网络视频传输,基于RTL8211 PHY实现,提供工程和QT上位机源码加技术支持,菜鸟FPGA以太网专题,菜鸟FPGA图像处理专题,FPGA图像缩放,网络,fpga开发,udp,RTL8211,QT,视频传输,图像缩放

Tri Mode Ethernet MAC介绍以及移植注意事项

本设计调用了Xilinx官方IP:Tri Mode Ethernet MAC,其在代码中的位置如下:
FPGA 图像缩放 千兆网 UDP 网络视频传输,基于RTL8211 PHY实现,提供工程和QT上位机源码加技术支持,菜鸟FPGA以太网专题,菜鸟FPGA图像处理专题,FPGA图像缩放,网络,fpga开发,udp,RTL8211,QT,视频传输,图像缩放
可以看到其中Tri Mode Ethernet MAC IP核处于被锁定状态,这是我们故意为之,目的是根据不同的PHY延时参数而修改其内部代码和内部时序约束代码,由于本设计使用的网络PHY为RTL8211 ,所以这里重点介绍使用RTL8211 时Tri Mode Ethernet MAC的修改和移植事项,当你需要工程移植,或者你的vivado版本与我的不一致时,Tri Mode Ethernet MAC都需要在vivado中进行升级,但由于该IP已被我们人为锁定,所以升级和修改需要一些高端操作,关于操作方法,我专门写了一篇文档,已附在资料包里,如下:
FPGA 图像缩放 千兆网 UDP 网络视频传输,基于RTL8211 PHY实现,提供工程和QT上位机源码加技术支持,菜鸟FPGA以太网专题,菜鸟FPGA图像处理专题,FPGA图像缩放,网络,fpga开发,udp,RTL8211,QT,视频传输,图像缩放

RTL8211 PHY

本设计开发板使用的网络PHY为RTL8211 ,工作在延时模式下,原理图引出了MDIO,但代码中不需要MDIO配置,通过上下拉电阻即可使RTL8211 工作于延时模式,该PHY最高支持千兆,且能在10M/100M/1000M之间自动协商,但本设计在Tri Mode Ethernet MAC端固定为1000M;在资料包中,我们提供RTL8211 的原理图;
FPGA 图像缩放 千兆网 UDP 网络视频传输,基于RTL8211 PHY实现,提供工程和QT上位机源码加技术支持,菜鸟FPGA以太网专题,菜鸟FPGA图像处理专题,FPGA图像缩放,网络,fpga开发,udp,RTL8211,QT,视频传输,图像缩放

QT上位机和源码

我们提供和UDP通信协议相匹配的QT抓图显示上位机及其源代码,目录如下:
FPGA 图像缩放 千兆网 UDP 网络视频传输,基于RTL8211 PHY实现,提供工程和QT上位机源码加技术支持,菜鸟FPGA以太网专题,菜鸟FPGA图像处理专题,FPGA图像缩放,网络,fpga开发,udp,RTL8211,QT,视频传输,图像缩放
我们的QT目前仅支持1280x720分辨率的视频抓图显示,但同时预留了1080P接口,对QT开发感兴趣的朋友可以尝试修改代码以适应1080P,因为QT在这里只是验证工具,不是本工程的重点,所以不再过多赘述,详情请参考资料包的QT源码,位置如下:
FPGA 图像缩放 千兆网 UDP 网络视频传输,基于RTL8211 PHY实现,提供工程和QT上位机源码加技术支持,菜鸟FPGA以太网专题,菜鸟FPGA图像处理专题,FPGA图像缩放,网络,fpga开发,udp,RTL8211,QT,视频传输,图像缩放

4、vivado工程详解

开发板FPGA型号:Xilinx–Artix7–xc7a35tfgg484-2;
开发环境:Vivado2019.1;
输入:HDMI或动态彩条,分辨率1920x1080;
输出:千兆UDP协议栈,RTL8211 PHY,RJ45网口;
工程作用:千兆UDP网络视频传输;
工程BD如下:
FPGA 图像缩放 千兆网 UDP 网络视频传输,基于RTL8211 PHY实现,提供工程和QT上位机源码加技术支持,菜鸟FPGA以太网专题,菜鸟FPGA图像处理专题,FPGA图像缩放,网络,fpga开发,udp,RTL8211,QT,视频传输,图像缩放
工程代码架构如下:
FPGA 图像缩放 千兆网 UDP 网络视频传输,基于RTL8211 PHY实现,提供工程和QT上位机源码加技术支持,菜鸟FPGA以太网专题,菜鸟FPGA图像处理专题,FPGA图像缩放,网络,fpga开发,udp,RTL8211,QT,视频传输,图像缩放
工程的资源消耗和功耗如下:
FPGA 图像缩放 千兆网 UDP 网络视频传输,基于RTL8211 PHY实现,提供工程和QT上位机源码加技术支持,菜鸟FPGA以太网专题,菜鸟FPGA图像处理专题,FPGA图像缩放,网络,fpga开发,udp,RTL8211,QT,视频传输,图像缩放

5、工程移植说明

vivado版本不一致处理

1:如果你的vivado版本与本工程vivado版本一致,则直接打开工程;
2:如果你的vivado版本低于本工程vivado版本,则需要打开工程后,点击文件–>另存为;但此方法并不保险,最保险的方法是将你的vivado版本升级到本工程vivado的版本或者更高版本;
FPGA 图像缩放 千兆网 UDP 网络视频传输,基于RTL8211 PHY实现,提供工程和QT上位机源码加技术支持,菜鸟FPGA以太网专题,菜鸟FPGA图像处理专题,FPGA图像缩放,网络,fpga开发,udp,RTL8211,QT,视频传输,图像缩放
3:如果你的vivado版本高于本工程vivado版本,解决如下:
FPGA 图像缩放 千兆网 UDP 网络视频传输,基于RTL8211 PHY实现,提供工程和QT上位机源码加技术支持,菜鸟FPGA以太网专题,菜鸟FPGA图像处理专题,FPGA图像缩放,网络,fpga开发,udp,RTL8211,QT,视频传输,图像缩放
打开工程后会发现IP都被锁住了,如下:
FPGA 图像缩放 千兆网 UDP 网络视频传输,基于RTL8211 PHY实现,提供工程和QT上位机源码加技术支持,菜鸟FPGA以太网专题,菜鸟FPGA图像处理专题,FPGA图像缩放,网络,fpga开发,udp,RTL8211,QT,视频传输,图像缩放
此时需要升级IP,操作如下:
FPGA 图像缩放 千兆网 UDP 网络视频传输,基于RTL8211 PHY实现,提供工程和QT上位机源码加技术支持,菜鸟FPGA以太网专题,菜鸟FPGA图像处理专题,FPGA图像缩放,网络,fpga开发,udp,RTL8211,QT,视频传输,图像缩放
FPGA 图像缩放 千兆网 UDP 网络视频传输,基于RTL8211 PHY实现,提供工程和QT上位机源码加技术支持,菜鸟FPGA以太网专题,菜鸟FPGA图像处理专题,FPGA图像缩放,网络,fpga开发,udp,RTL8211,QT,视频传输,图像缩放

FPGA型号不一致处理

如果你的FPGA型号与我的不一致,则需要更改FPGA型号,操作如下:
FPGA 图像缩放 千兆网 UDP 网络视频传输,基于RTL8211 PHY实现,提供工程和QT上位机源码加技术支持,菜鸟FPGA以太网专题,菜鸟FPGA图像处理专题,FPGA图像缩放,网络,fpga开发,udp,RTL8211,QT,视频传输,图像缩放
FPGA 图像缩放 千兆网 UDP 网络视频传输,基于RTL8211 PHY实现,提供工程和QT上位机源码加技术支持,菜鸟FPGA以太网专题,菜鸟FPGA图像处理专题,FPGA图像缩放,网络,fpga开发,udp,RTL8211,QT,视频传输,图像缩放
FPGA 图像缩放 千兆网 UDP 网络视频传输,基于RTL8211 PHY实现,提供工程和QT上位机源码加技术支持,菜鸟FPGA以太网专题,菜鸟FPGA图像处理专题,FPGA图像缩放,网络,fpga开发,udp,RTL8211,QT,视频传输,图像缩放
更改FPGA型号后还需要升级IP,升级IP的方法前面已经讲述了;

其他注意事项

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

6、上板调试验证并演示

准备工作

首先连接开发板和电脑,开发板端连接后如下图:
FPGA 图像缩放 千兆网 UDP 网络视频传输,基于RTL8211 PHY实现,提供工程和QT上位机源码加技术支持,菜鸟FPGA以太网专题,菜鸟FPGA图像处理专题,FPGA图像缩放,网络,fpga开发,udp,RTL8211,QT,视频传输,图像缩放
然后将你的电脑IP地址改为和代码里规定的IP一致,当然,代码里的IP是可以任意设置的,但代码里的IP修改后,电脑端的IP也要跟着改,我的设置如下:
FPGA 图像缩放 千兆网 UDP 网络视频传输,基于RTL8211 PHY实现,提供工程和QT上位机源码加技术支持,菜鸟FPGA以太网专题,菜鸟FPGA图像处理专题,FPGA图像缩放,网络,fpga开发,udp,RTL8211,QT,视频传输,图像缩放

ping一下

在开始测试前,我们先ping一下,测试UDP是否连通,如下:
FPGA 图像缩放 千兆网 UDP 网络视频传输,基于RTL8211 PHY实现,提供工程和QT上位机源码加技术支持,菜鸟FPGA以太网专题,菜鸟FPGA图像处理专题,FPGA图像缩放,网络,fpga开发,udp,RTL8211,QT,视频传输,图像缩放

静态演示

HDMI输入1920x1080缩小到1280x720后UDP网络传输QT上位机显示如下:
FPGA 图像缩放 千兆网 UDP 网络视频传输,基于RTL8211 PHY实现,提供工程和QT上位机源码加技术支持,菜鸟FPGA以太网专题,菜鸟FPGA图像处理专题,FPGA图像缩放,网络,fpga开发,udp,RTL8211,QT,视频传输,图像缩放
动态彩条1920x1080缩小到1280x720后UDP网络传输QT上位机显示如下:
FPGA 图像缩放 千兆网 UDP 网络视频传输,基于RTL8211 PHY实现,提供工程和QT上位机源码加技术支持,菜鸟FPGA以太网专题,菜鸟FPGA图像处理专题,FPGA图像缩放,网络,fpga开发,udp,RTL8211,QT,视频传输,图像缩放

动态演示

动态视频演示如下:

FPGA-UDP-视频缩放传输-K7-16比9

7、福利:工程源码获取

福利:工程代码的获取
代码太大,无法邮箱发送,以某度网盘链接方式发送,
资料获取方式:私,或者文章末尾的V名片。
网盘资料如下:
FPGA 图像缩放 千兆网 UDP 网络视频传输,基于RTL8211 PHY实现,提供工程和QT上位机源码加技术支持,菜鸟FPGA以太网专题,菜鸟FPGA图像处理专题,FPGA图像缩放,网络,fpga开发,udp,RTL8211,QT,视频传输,图像缩放
FPGA 图像缩放 千兆网 UDP 网络视频传输,基于RTL8211 PHY实现,提供工程和QT上位机源码加技术支持,菜鸟FPGA以太网专题,菜鸟FPGA图像处理专题,FPGA图像缩放,网络,fpga开发,udp,RTL8211,QT,视频传输,图像缩放文章来源地址https://www.toymoban.com/news/detail-722167.html

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

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

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

相关文章

  • FPGA高端项目:图像缩放+GTX+UDP架构,高速接口以太网视频传输,提供2套工程源码加QT上位机源码和技术支持

    FPGA高端项目:图像缩放+GTX+UDP架构,高速接口以太网视频传输,提供2套工程源码加QT上位机源码和技术支持 没玩过图像处理、GT高速接口、UDP网络通信,都不好意思说自己玩儿过FPGA,这是CSDN某大佬说过的一句话,鄙人深信不疑。。。GT资源是Xilinx系列FPGA的重要卖点,也是做

    2024年03月14日
    浏览(93)
  • FPGA高端项目:图像缩放+GTP+UDP架构,高速接口以太网视频传输,提供2套工程源码加QT上位机源码和技术支持

    FPGA高端项目:图像缩放+GTP+UDP架构,高速接口以太网视频传输,提供2套工程源码加QT上位机源码和技术支持 没玩过图像处理、GT高速接口、UDP网络通信,都不好意思说自己玩儿过FPGA,这是CSDN某大佬说过的一句话,鄙人深信不疑。。。GT资源是Xilinx系列FPGA的重要卖点,也是做

    2024年02月05日
    浏览(62)
  • 基于UDP协议的千兆以太网传输(FPGA)

    @[TOC]基于UDP协议的千兆以太网传输(FPGA) UDP协议是一种基于无连接协议,即发送端发送数据无需确认接收端是否存在;接收端收到数据后也无需给发送端反馈是否收到,所以UDP在数据发送过程中允许丢失一两包数据。用于对丢包不严格的场合,比如视频流,偶有一两帧的丢

    2024年02月12日
    浏览(74)
  • FPGA实现千兆/百兆自适应以太网UDP传输

    笔者最近在项目中需要使用到ZYNQ中PL端做以太网UDP传输并且需要支持100M/1000M自适应切换。使用的PHY型号为RTL8211。以下分享的主要为利用已有的1000M协议栈修改为100M并且实现二者自适应切换,IP核主要实现以下功能 1、实现100M/1000M自适应 2、回环测试 PS:完整的IP核文件下载地

    2024年01月21日
    浏览(56)
  • 千兆以太网传输层 UDP 协议原理与 FPGA 实现(UDP接收)

    相关文章: (1)千兆以太网网络层 ARP 协议的原理与 FPGA 实现 (2)千兆以太网硬件设计及链路层 MAC 协议格式 (3)CRC校验原理及实现 (4)RGMII 与 GMII 转换电路设计 (5)千兆以太网网络层 IP 协议介绍与 IP 校 验和算法实现 (6)千兆以太网传输层 UDP 协议原理与 FPGA 实现(

    2024年02月04日
    浏览(128)
  • 基于FPGA的视频接口之千兆网口(三UDP搭建)

            相信网络上对于FPGA驱动网口的开发板、博客、论坛数不胜数,为何博主需要重新手敲一遍呢,而不是做一个文抄君呢!因为目前博主感觉网络上描述的多为应用层上的开发,非从底层开始说明,本博主的思虑还是按照老规矩,按照硬件、底层、应用等关系,使用

    2024年02月07日
    浏览(41)
  • FPGA高端项目:图像采集+GTX+UDP架构,高速接口以太网视频传输,提供2套工程源码加QT上位机源码和技术支持

    FPGA高端项目:图像采集+GTX+UDP架构,高速接口以太网视频传输,提供2套工程源码加QT上位机源码和技术支持 没玩过图像处理、GT高速接口、UDP网络通信,都不好意思说自己玩儿过FPGA,这是CSDN某大佬说过的一句话,鄙人深信不疑。。。GT资源是Xilinx系列FPGA的重要卖点,也是做

    2024年02月05日
    浏览(65)
  • FPGA高端项目:图像采集+GTP+UDP架构,高速接口以太网视频传输,提供2套工程源码加QT上位机源码和技术支持

    FPGA高端项目:图像采集+GTP+UDP架构,高速接口以太网视频传输,提供2套工程源码加QT上位机源码和技术支持 没玩过图像处理、GT高速接口、UDP网络通信,都不好意思说自己玩儿过FPGA,这是CSDN某大佬说过的一句话,鄙人深信不疑。。。GT资源是Xilinx系列FPGA的重要卖点,也是做

    2024年02月05日
    浏览(58)
  • 基于OpenCv+Django的网络实时视频流传输(前后端分离)

    秋风阁——北溪入江流:https://focus-wind.com/ 秋风阁——基于OpenCv+Django的网络实时视频流传输(前后端分离) 使用OpenCv捕获摄像机画面后,我们有时候需要将画面显示在界面上。本博客基于Django的前后端分离模式,将视频流从后端读取,传送给前端显示。 在使用Django进行视频

    2024年02月08日
    浏览(54)
  • Golang 流媒体音视频网络传输开源项目-LAL

    lal是开源直播流媒体网络传输项目,主要由三部分组成: lalserver:流媒体转发服务器。类似于 nginx-rtmp-module 等服务,但支持更多的协议,提供更丰富的功能。 demo:一些小应用,比如推、拉流客户端,压测工具,流分析工具,调度示例程序等。类似于ffmpeg、ffprobe等应用。

    2023年04月16日
    浏览(68)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包