CN107197116A - 一种基于udp协议实时可靠图像传输方案 - Google Patents
一种基于udp协议实时可靠图像传输方案 Download PDFInfo
- Publication number
- CN107197116A CN107197116A CN201710381442.9A CN201710381442A CN107197116A CN 107197116 A CN107197116 A CN 107197116A CN 201710381442 A CN201710381442 A CN 201710381442A CN 107197116 A CN107197116 A CN 107197116A
- Authority
- CN
- China
- Prior art keywords
- packet
- data
- bag
- index
- length
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/00095—Systems or arrangements for the transmission of the picture signal
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Mobile Radio Communication Systems (AREA)
- Communication Control (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种基于UDP协议实时可靠图像传输方案,包括:在图像处理与图像传输之间加入异步FIFO作为数据缓冲;二进制图像码流在增加相应头信息后以数据包方式存放于SDRAM中待用,SDRAM被划分为两部分:数据包索引区和数据包存放区,数据包索引区存放一种包含数据包长度与数据包头地址的索引数据结构;数据包存放区以分段的方式存放包数据,每段第一字节为包序号,分段长度为固定长度;发送端对于一帧图像的多个数据包进行循环发送,若接收到反馈信息显示某一数据包已被接收,则清空该数据包相对应的索引信息并将包数量属性减1,在一帧图像数据全部被接收成功开始下一帧图像的发送。
Description
技术领域
本发明设计属于数据传输与通信技术领域,具体涉及一种基于UDP协议(UserDatagram Protocol)实时可靠图像传输方案。
背景技术
随着网络技术的高速发展,无线数据传输在通信、控制等领域得到了普遍的应用,极大的方便了人们的生活。
一般来说,无线传输服务在选择传输层协议时有两种主要的选择即TCP和UDP。TCP协议(Transmission Control Protocol)全称为传输控制协议,是一种面向连接的、可靠的、基于字节流的传输层通信协议,其正式规范为IETFRFC 793。UDP协议全称为用户数据报文协议,是一种无连接的传输层协议,提供面向事物的简单的不可靠信息传递,其正式规范为IETFRFC 768。
二者相比而言,基于TCP协议传输时,在传输数据前,收发两端必须通过多次“握手协议”来建立可靠的连接,在数据传递时还拥有确认、纠错、重发、拥塞控制机制,因此TCP协议传输是一种可靠的通信协议。但是也正因需要建立连接并可靠传输数据,导致了TCP传输协议的传输速率相对较慢,效率偏低且占用系统资源较高。基于CDP协议传输时,数据传输前源端与终端不需要建立连接,发送端只需要将数据发送到网络上由接收端来抓取数据,收发过程中也不需要对连接状态和数据可靠性进行维护,因此UDP协议数据传输速度只受制于源端生成数据的速率、传输带宽以及源端终端主机性能等因素,速度相对较快,效率较高,系统资源占用小。但是由于其是一个非连接协议且无数据可靠保护机制,因此其可靠性较低。
针对如无人机图传等对数据传输的实时性要求较高的场景下,UDP协议所提供的高效、低延时服务,可有效保证数据传输的实时性。因此在基于UDP协议实时图像传输方案中,保证其高效高速的前提下,提高其数据传输可靠度,保证图像质量受到了研究者的广泛关注与研究。
发明内容
本发明的目的是提供一种基于UDP协议的实时可靠图像传输方法。由于UDP协议下数据包在无线传输过程中丢包率较高会造成图像无法正确显示,因此本方案重新设计了图像数据打包与传输方式,使得丢包率减低至0%,实现了实时可靠的无线图像传输系统。技术方案如下:
一种基于UDP协议实时可靠图像传输方案,发送端从图像处理系统获取待传输的连续的二进制图像码流,组织打包之后通过无线收发模块以UDP协议传输,方法如下:
(1)在图像处理与图像传输之间加入异步FIFO作为数据缓冲,在接收数据的同时控制数据吞吐率,避免数据缺失;
(2)二进制图像码流在增加相应头信息后以数据包方式存放于SDRAM中待用,SDRAM被划分为两部分:数据包索引区和数据包存放区,数据包索引区存放一种包含数据包长度与数据包头地址的索引数据结构;数据包存放区以分段的方式存放包数据,每段第一字节为包序号,分段长度为固定长度;
(3)数据包的访问共四种方式:
1)初始化:对数据包索引区域的包长度、数据包首地址和数据包存放区的包序号进行初始化,初始化后各包长度为0;
2)数据写入:写入数据时从数据包存放区每一段的第二个字节开始写入数据,第一字节已写入包序号,写入完成后更新索引中的包长度值;
3)数据读取:读取数据包时,首先在数据包索引区检查包长度是否为0,为0说明包已经清空不需要读取;否则,以数据包索引区包首地址为起点读取包长度字节的码流;
4)数据清空:清空数据包索引区数据包长度属性,不需要对数据包存放区进行操作;
(4)发送端对于一帧图像的多个数据包进行循环发送,若接收到反馈信息显示某一数据包已被接收,则清空该数据包相对应的索引信息并将包数量属性减1,在一帧图像数据全部被接收成功开始下一帧图像的发送。
附图说明
图1是SDRAM存储空间划分
图2是发送端模块结构
图3是数据包收发流程
具体实施方式
下面结合附图对本方案进行详细说明。
本发明是一种基于UDP协议的实时可靠图像传输方法,由于UDP协议下数据包在无线传输过程中丢包率较高会造成图像无法正确显示,因此本方案设计了全新的图像数据打包与传输方式,使得丢包率减低至0%,实现了实时可靠的无线图像传输系统。
本数据收发方案分为发送端与接收端。发送端工作于NIOS II嵌入式系统,从图像处理系统获取待传输的连续的二进制图像码流,组织打包之后通过无线收发模块以UDP协议传输。接收端工作于Python脚本,抓取网络数据包、组织文件并发送反馈信息。
方案对发送端的待传输图像数据暂存与打包进行了全新设计。由于图像处理系统与本传输系统多为异步系统(工作频率不一致),因此在两系统之间加入异步FIFO作为数据缓冲,在接收数据的同时打到控制数据吞吐率的效果,避免传入NIOS系统中的图像被之后的数据所覆盖导致数据缺失。
文件码流在增加相应头信息后以数据包方式存放于SDRAM中待用。SDRAM被划分为两部分:数据包索引区(Package Index区)和数据包存放区(Package区)。数据包索引区存放一种包含数据包长度与数据包头地址的索引数据结构;数据包存放区以分段的方式存放包数据,每段第一字节为包序号,分段长度为1401字节(网络包存在1460字节的长度限制)。数据包的访问共四种方式。
1)初始化:对数据包索引区域的包长度、数据包首地址和数据包存放区的包序号进行初始化,初始化后各包长度为0(即空包)。
2)数据写入:写入数据时从包存放区每一段的第二个字节开始写入数据(第一字节已写入包序号),写入完成后更新索引中的包长度值。
3)数据读取:读取数据包时,首先在包索引区检查包长度是否为0,为0说明包已经清空不需要读取;否则,以索引区包首地址为起点读取包长度字节的码流。
4)数据清空:清空包索引区数据包长度属性,不需要对数据包存放区进行操作。
这样划分存储区域并进行相关操作的优势在于,待发送的图像数据信息全部反应在数据包索引区,通过对数据包索引区的读取可以获知包长度属性、包地址属性和包数量属性。同时通过对数据包索引区的更新便可标记图像数据包是否发送、清空等信息,而无需对包存储区进行任何操作。
方案在收发方式上也进行了设计。由于无线网络环境下数据包丢失率很大,因此发送端对于一帧图像的若干数据包进行循环发送,若接收到反馈信息显示某一数据包已被接收,则清空该数据包相对应的索引信息并将包数量属性减1。在一帧图像数据全部被接收成功开始下一帧图像的发送。
基于以上发送端与接收端的操作,可靠图像传输方案整体步骤如下:
1)系统初始化。无线收发模块产生无线网络连接发送端与接收端。发送端初始化缓存FIFO与SDRAM,等待获取图像二进制码流。接收端绑定IP、端口号、目的地址、目的端口,完成端口绑定和初始化,等待抓取网络数据包;
2)发送端获取数据并打包。图像数据经FIFO缓存后以索引区与存储分区的方式打包存储于SDRAM中,等待循环读取发送,SDRAM存储空间划分如图1所示;
3)发送端发送数据包。网络连接后发送端将打包数据按照UDP协议发送至无线网络,发送过程中只从SDRAM中读取包长度不为零的数据包发送,忽略长度为零(即已被接收并清空)的数据包,发送的同时等待接收端信息反馈,发送端模块结构如图2;
4)接收端接收数据包。接收端在计算机上生成并打开待写入图像文件,之后监听端口并等待数据包。接收到数据包后判定该包序号是否已在包序号列表中。若存在则认定为重复包并丢弃,若不重复则将包序号写入序号列表,包数据写入数据列表,并将序号列表与数据列表重排序;
5)接收端处理数据包。若接收端收到图像分割包(即一帧图像结束标志)后,则判定此时包序号总量与末序号是否一致。若一致,综合以上两点考虑可认定一帧图像已接收完毕,将接收到的数据序列写入文件中;若不一致则继续抓取该帧图像其他数据包;
6)接收端发送反馈信息。在接收端接收到网络包后,提取包序号并发送该包序号的网络包作为反馈信息给发送端,以便发送端判定该数据包是否发送成功;
7)发送端更新包索引区域。发送端收到接收到反馈包后,提取包序号并在索引区将该序号所对应的包长渡属性清零以标记该数据包已被接收成功,并将数据包总量减1;
8)判断剩余包数量并循环发送。若剩余包数量为零表明一帧图像已发送成功,回到步骤(2)开始下一帧图像的发送;若不为零,则回到步骤(3)循环发送包长度未清零的数据包,直至包数量为零。数据包收发流程如图3。
Claims (1)
1.一种基于UDP协议实时可靠图像传输方案,发送端从图像处理系统获取待传输的连续的二进制图像码流,组织打包之后通过无线收发模块以UDP协议传输。方法如下:
(1)在图像处理与图像传输之间加入异步FIFO作为数据缓冲,在接收数据的同时控制数据吞吐率,避免数据缺失;
(2)二进制图像码流在增加相应头信息后以数据包方式存放于SDRAM中待用,SDRAM被划分为两部分:数据包索引区和数据包存放区,数据包索引区存放一种包含数据包长度与数据包头地址的索引数据结构;数据包存放区以分段的方式存放包数据,每段第一字节为包序号,分段长度为固定长度;
(3)数据包的访问共四种方式:
1)初始化:对数据包索引区域的包长度、数据包首地址和数据包存放区的包序号进行初始化,初始化后各包长度为0;
2)数据写入:写入数据时从数据包存放区每一段的第二个字节开始写入数据,第一字节已写入包序号,写入完成后更新索引中的包长度值;
3)数据读取:读取数据包时,首先在数据包索引区检查包长度是否为0,为0说明包已经清空不需要读取;否则,以数据包索引区包首地址为起点读取包长度字节的码流;
4)数据清空:清空数据包索引区数据包长度属性,不需要对数据包存放区进行操作;
(4)发送端对于一帧图像的多个数据包进行循环发送,若接收到反馈信息显示某一数据包已被接收,则清空该数据包相对应的索引信息并将包数量属性减1,在一帧图像数据全部被接收成功开始下一帧图像的发送。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710381442.9A CN107197116A (zh) | 2017-05-25 | 2017-05-25 | 一种基于udp协议实时可靠图像传输方案 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710381442.9A CN107197116A (zh) | 2017-05-25 | 2017-05-25 | 一种基于udp协议实时可靠图像传输方案 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107197116A true CN107197116A (zh) | 2017-09-22 |
Family
ID=59875113
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710381442.9A Pending CN107197116A (zh) | 2017-05-25 | 2017-05-25 | 一种基于udp协议实时可靠图像传输方案 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107197116A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107911668A (zh) * | 2017-11-29 | 2018-04-13 | 天津聚飞创新科技有限公司 | 无线图传系统及方法 |
CN109151245A (zh) * | 2018-08-20 | 2019-01-04 | 上海奕瑞光电子科技股份有限公司 | 基于fpga的图像数据传输方法、系统、存储介质及fpga |
CN109710547A (zh) * | 2018-12-29 | 2019-05-03 | 浙江理工大学 | 一种工业物联网中的缓冲内存管理设计与实现方法 |
CN111092907A (zh) * | 2019-12-30 | 2020-05-01 | 人和未来生物科技(长沙)有限公司 | 基于udp协议的数据流快速传输方法、系统及介质 |
CN111093037A (zh) * | 2020-03-20 | 2020-05-01 | 深圳市中科先见医疗科技有限公司 | 图像数据接收方法、图像采集设备和人工视网膜设备 |
CN112291523A (zh) * | 2020-10-29 | 2021-01-29 | 合肥安迅精密技术有限公司 | 一种贴片机设备的图像数据接收系统及方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101178693A (zh) * | 2007-12-14 | 2008-05-14 | 沈阳东软软件股份有限公司 | 一种数据缓存方法及系统 |
CN101632263A (zh) * | 2007-01-09 | 2010-01-20 | Tdf公司 | 服务器与客户终端及以包方式实时发送/接收数据的方法 |
CN102136290A (zh) * | 2011-04-21 | 2011-07-27 | 北京联合大学 | 一种嵌入式实时视频文件存储方法 |
CN102724232A (zh) * | 2011-05-06 | 2012-10-10 | 新奥特(北京)视频技术有限公司 | 一种基于udp协议的网络字幕机的方法和系统 |
CN105187440A (zh) * | 2015-09-26 | 2015-12-23 | 北京暴风科技股份有限公司 | 使用udp协议传输视频数据的方法及系统 |
-
2017
- 2017-05-25 CN CN201710381442.9A patent/CN107197116A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101632263A (zh) * | 2007-01-09 | 2010-01-20 | Tdf公司 | 服务器与客户终端及以包方式实时发送/接收数据的方法 |
CN101178693A (zh) * | 2007-12-14 | 2008-05-14 | 沈阳东软软件股份有限公司 | 一种数据缓存方法及系统 |
CN102136290A (zh) * | 2011-04-21 | 2011-07-27 | 北京联合大学 | 一种嵌入式实时视频文件存储方法 |
CN102724232A (zh) * | 2011-05-06 | 2012-10-10 | 新奥特(北京)视频技术有限公司 | 一种基于udp协议的网络字幕机的方法和系统 |
CN105187440A (zh) * | 2015-09-26 | 2015-12-23 | 北京暴风科技股份有限公司 | 使用udp协议传输视频数据的方法及系统 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107911668A (zh) * | 2017-11-29 | 2018-04-13 | 天津聚飞创新科技有限公司 | 无线图传系统及方法 |
CN107911668B (zh) * | 2017-11-29 | 2019-12-06 | 天津聚飞创新科技有限公司 | 无线图传系统及方法 |
CN109151245A (zh) * | 2018-08-20 | 2019-01-04 | 上海奕瑞光电子科技股份有限公司 | 基于fpga的图像数据传输方法、系统、存储介质及fpga |
CN109710547A (zh) * | 2018-12-29 | 2019-05-03 | 浙江理工大学 | 一种工业物联网中的缓冲内存管理设计与实现方法 |
CN111092907A (zh) * | 2019-12-30 | 2020-05-01 | 人和未来生物科技(长沙)有限公司 | 基于udp协议的数据流快速传输方法、系统及介质 |
CN111092907B (zh) * | 2019-12-30 | 2021-09-03 | 人和未来生物科技(长沙)有限公司 | 基于udp协议的数据流快速传输方法、系统及介质 |
CN111093037A (zh) * | 2020-03-20 | 2020-05-01 | 深圳市中科先见医疗科技有限公司 | 图像数据接收方法、图像采集设备和人工视网膜设备 |
CN112291523A (zh) * | 2020-10-29 | 2021-01-29 | 合肥安迅精密技术有限公司 | 一种贴片机设备的图像数据接收系统及方法 |
CN112291523B (zh) * | 2020-10-29 | 2023-12-05 | 合肥安迅精密技术有限公司 | 一种贴片机设备的图像数据接收系统及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107197116A (zh) | 一种基于udp协议实时可靠图像传输方案 | |
CN101340574B (zh) | 一种实现零拷贝发送流媒体数据的方法及系统 | |
CN1883212B (zh) | 在无线mac处理器中提供通过网络连接的数据流传输的方法和装置 | |
Von Eicken et al. | U-Net: A user-level network interface for parallel and distributed computing | |
EP2312807B1 (en) | Method and system for enabling zero-copy transmission of streaming media data | |
US6947430B2 (en) | Network adapter with embedded deep packet processing | |
TWI332150B (en) | Processing data for a tcp connection using an offload unit | |
US7561573B2 (en) | Network adaptor, communication system and communication method | |
US7735099B1 (en) | Method and system for processing network data | |
US6594701B1 (en) | Credit-based methods and systems for controlling data flow between a sender and a receiver with reduced copying of data | |
JP3329390B2 (ja) | 高速一括ファイル転送方法及び装置 | |
US7050437B2 (en) | Wire speed reassembly of data frames | |
CN101828372B (zh) | 对网络连接的tcp行为并行化 | |
CN101485152B (zh) | 用于高性能捆绑重排序的方法、系统及计算机程序产品 | |
US7313148B2 (en) | Method and system for TCP large segment offload with ack-based transmit scheduling | |
US20050129064A1 (en) | Reliable transport layer protocol in low performance 8-bit microcontrollers | |
US6760304B2 (en) | Apparatus and method for receive transport protocol termination | |
US20030061269A1 (en) | Data flow engine | |
US20050135395A1 (en) | Method and system for pre-pending layer 2 (L2) frame descriptors | |
US20120143979A1 (en) | Protocol stack using shared memory | |
JP2009093348A (ja) | 情報処理装置、及び情報処理システム | |
TWI257790B (en) | System for protocol processing engine | |
US7580410B2 (en) | Extensible protocol processing system | |
US20080263171A1 (en) | Peripheral device that DMAS the same data to different locations in a computer | |
US7769905B1 (en) | Adapting network communication to asynchronous interfaces and methods |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20170922 |