CN117544604A - 一种多无人机流媒体分流合流系统及方法 - Google Patents
一种多无人机流媒体分流合流系统及方法 Download PDFInfo
- Publication number
- CN117544604A CN117544604A CN202311126133.9A CN202311126133A CN117544604A CN 117544604 A CN117544604 A CN 117544604A CN 202311126133 A CN202311126133 A CN 202311126133A CN 117544604 A CN117544604 A CN 117544604A
- Authority
- CN
- China
- Prior art keywords
- unmanned aerial
- aerial vehicle
- video
- packet
- video data
- 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
- 238000000034 method Methods 0.000 title claims abstract description 30
- 239000000872 buffer Substances 0.000 claims abstract description 47
- 230000005540 biological transmission Effects 0.000 claims abstract description 43
- 238000004891 communication Methods 0.000 claims abstract description 26
- 230000008569 process Effects 0.000 claims abstract description 5
- 230000006870 function Effects 0.000 claims description 15
- 238000005259 measurement Methods 0.000 claims description 13
- 238000013461 design Methods 0.000 claims description 12
- 230000008447 perception Effects 0.000 claims description 8
- 230000002093 peripheral effect Effects 0.000 claims description 8
- 230000001413 cellular effect Effects 0.000 claims description 7
- 238000011156 evaluation Methods 0.000 claims description 7
- 230000007246 mechanism Effects 0.000 claims description 6
- 230000008859 change Effects 0.000 claims description 5
- 230000010354 integration Effects 0.000 claims description 4
- 238000012544 monitoring process Methods 0.000 claims description 4
- 230000008521 reorganization Effects 0.000 claims description 4
- RZVHIXYEVGDQDX-UHFFFAOYSA-N 9,10-anthraquinone Chemical compound C1=CC=C2C(=O)C3=CC=CC=C3C(=O)C2=C1 RZVHIXYEVGDQDX-UHFFFAOYSA-N 0.000 claims description 3
- 238000012545 processing Methods 0.000 claims description 3
- 238000012163 sequencing technique Methods 0.000 claims description 3
- 238000005538 encapsulation Methods 0.000 claims description 2
- 238000005215 recombination Methods 0.000 claims description 2
- 230000006798 recombination Effects 0.000 claims description 2
- 238000002474 experimental method Methods 0.000 description 4
- 230000003139 buffering effect Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000013441 quality evaluation Methods 0.000 description 3
- 238000009825 accumulation Methods 0.000 description 2
- 208000037265 diseases, disorders, signs and symptoms Diseases 0.000 description 2
- 208000035475 disorder Diseases 0.000 description 2
- 238000013508 migration Methods 0.000 description 2
- 230000005012 migration Effects 0.000 description 2
- 208000009115 Anorectal Malformations Diseases 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005315 distribution function Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007087 memory ability Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/80—Responding to QoS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/18—End to end
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/43—Assembling or disassembling of packets, e.g. segmentation and reassembly [SAR]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9057—Arrangements for supporting packet reassembly or resequencing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/65—Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/14—Multichannel or multilink protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/643—Communication protocols
- H04N21/6437—Real-time Transport Protocol [RTP]
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Multimedia (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明属于无人机视频传输技术领域,具体为一种多无人机流媒体分流合流系统及方法。本发明系统包含:地面控制端、无人机发送端、无人机接收端、服务器端和用户。无人机发送端对音视频进行采集、编码和分流,实现多路并行发送;无人机接收端或服务器端对多路视频数据实施合流;接收端应用程序包含多线程和环形缓冲器,至少一个线程缓存视频数据包,将视频包按照序列号进行排序和重组,至少一个线程读取数据包并转发到其他客户端。本发明使多无人机实时通信克服弱网环境下带宽不足引起的传输高延时问题,解决无人机高速移动过程中视频负载过高的问题。相比于现有方法,本发明减少400‑1500ms的端到端传输延时,为无人机系统带来2‑4倍的吞吐量增益。
Description
技术领域
本发明属于无人机视频传输技术领域,具体涉及基于服务质量评估和用户体验感知的多无人机流媒体分流合流系统及方法。
背景技术
无人机流媒体技术用于在网络中分段传输音频和视频,广泛应用于大型体育赛事、无线安防、森林防火和地震救援等多种应急通信场景。随着无人机移动速度和位置的改变,网络带宽和自身视频载荷生成速率也是动态变化的。一方面,视频载荷的生成速率会超过信道容量;另一方面,无人机位置的变化会影响网络连接,导致视频实时传输速率下降。另外,在飞行自组网中,邻居节点的负载输入,会占据额外的带宽,进一步加重其他节点的传输负荷。网络带宽和负载数量的变化,会导致多无人机之间的视频传输延时、丢包率、缓存率和流畅性等性能的下降,无法满足良好的用户体验。
为了克服无人机在飞行自组网实时传输流媒体面临的高延时和高负载问题,本发明基于发送端和接收端的无人机的应用层、传输层和网络层等进行联合跨层设计。发送端的无人机的应用层评估网络带宽和负载,设计了一种多模式视频分流算法。客户端的无人机的应用层基于延时、吞吐量和丢包率进行感知和计算,并实时反馈给发送端。接收端的无人机或者服务器的应用层基于环形缓冲器和多线程机制实现多路合流,克服数据包的乱序问题,提升了无人机实时通信系统的缓存能力。这种在飞行自组网中的多无人机联合分流合流算法,能够根据局部和全局网络状态自适应地调整负载和流量传输的比例,减少了端到端的视频传输延时,增加了全系统的网络吞吐量,克服了高并发视频业务引起的瓶颈节点处的网络拥塞问题,显著提升了视频感知的用户体验。
发明内容
本发明的目的是针对背景技术中提到的飞行自组网中多无人机实时通信在不可预测的网络之间,单链路传输所面对的高负载和高延时问题,提供一种基于服务质量评估和用户体验感知的多无人机流媒体分流合流系统及方法。
本发明提供的多无人机流媒体分流合流系统,是基于Android和Linux系统联合设计的多无人机实时通信系统,包含5个子系统:地面控制端、无人机发送端、无人机接收端、服务器端和用户;其中:
所述地面控制端,包含飞控程序和服务质量QoS评估工具;所述飞控程序实现向无人机手动发送飞行控制指令;所述QoS评估工具实现实时监控无人机的网络吞吐量和传输延时等度量信息。
所述无人机发送端,包含外设设备、主模块和辅助模块;所述主模块和辅助模块是一种集成了应用处理器、基带处理器和射频等多芯片集成的无线收发模块,具体工作内容包括:
(1)视频采集和输入:外设设备采集视频数据,经过HDMI接口输入主模块的MIPI接口;
(2)跨层处理:主模块的驱动层从MIPI接口读取视频数据,通过Android系统的相机接口发送给流媒体应用;
(3)视频编码和包的封装:流媒体应用程序调用安卓系统框架层的多媒体接口Mediacodec类对原始的视频数据进行压缩和编码,流媒体应用程序对编码后的视频数据根据IETF RFC协议封装,将视频数据封装成H.264或H.265格式的数据,然后根据流媒体协议(RTP)将编码后的视频数据封装成流媒体数据包;
(4)流媒体会话和传输:无人机发送端与无人机接收端或者服务器端基于RTSP协议建立会话,基于RTP协议传输视频载荷,基于RTCP协议传输度量信息,并通过套接字实现通信;
(5)主链路传输:主模块实现将数据包直接从自身的网卡传输给其他目的地,实现主链路的传输功能,主模块和辅助模块通过USB线连接,基于USB-RNDIS通信,共同组成多模块叠加的通信系统,主模块还实现将数据包转发给辅助模块;
(6)子链路传输:辅助模块实现接收主模块的数据包,将数据包的目的ip地址转换为其他网卡的ip地址,经由其他网卡发送,从而实现子链路的传输功能;
(7)服务质量QoS评估和用户体验QoE感知:无人机发送端对负载和带宽等信息评估,并接收无人机接收端、服务器端和用户的消息,感知端到端延时、吞吐量和丢包率;
(8)分流:无人机发送端基于QoS评估和QoE感知的结果,选择分流模式,对视频载荷实施分流。
所述无人机接收端,包含外设设备、主模块和辅助模块,所述主模块和辅助模块是一种集成了应用处理器、基带处理器和射频等多芯片集成的无线收发模块,具体工作内容包括:
(1)合流:无人机接收端的应用程序将多链路接收的视频数据包进行缓存、排序和重组,然后转发给客户端进行解码和播放;
(2)多线程处理:所述无人机接收端的应用程序,至少包含写和读两个线程;写线程负责合流,接收多个套接字(Socket)的流媒体数据包,将数据包按照序列号排序和重组,写入到环形缓冲器区域;读线程负责转发视频数据;写线程完成合流后通过中断通知读线程,读线程将重组后的数据包转发给流媒体应用程序或者其他目的地;
(3)缓存设计:多线程对数据包的读和写是基于环形缓冲器机制实现,所述环形缓冲器具有内存中实际开始的位置标识、缓冲区长度、有效数据的开始位置标识和有效数据的结束位置标识。
所述服务器端,包含两部分:搭载Linux系统或Windows系统的服务器和集成模组;其中:
所述集成模组是一种集成了应用处理器、基带处理器和射频多芯片集成的无线收发模块,实现接收无人机发送的多路视频数据,实现多流数据包的重组和缓存;其工作内容包括:
所述服务器实现多种网络制式通信功能,包括以太网、蜂窝网、USB、蓝牙和WIFI等;
所述服务器实现与集成模组通过以太网或者USB有线连接,能够和无人机系统上的集成模组基于自组网或者蜂窝网通信;
所述服务器实现接收无人机发送的单路视频数据,实现缓存和保存到本地;
所述服务器实现接收无人机发送的多路视频数据,实现缓存和保存到本地;
所述服务器的应用程序实现多线程处理,所述无人机接收端的应用程序,至少包含写和读两个线程;写线程负责合流,接收多个套接字(Socket)的流媒体数据包,将数据包按照序列号排序和重组,写入到环形缓冲器区域;读线程负责转发视频数据;写线程完成合流后通过中断通知读线程,读线程将重组后的数据包转发给流媒体应用程序或者其他目的地;
所述服务器的应用程序实现缓存设计,多线程对数据包的读和写是基于环形缓冲器机制实现,所述环形缓冲器具有内存中实际开始的位置标识、缓冲区长度、有效数据的开始位置标识和有效数据的结束位置标识;
所述集成模组实现向服务器发送数据;
所述服务器实现接收集成模组的数据,实现向无人机或者用户转发视频数据。
所述用户,包含流媒体播放器的客户端应用和用户体验感知工具。
所述流媒体播放器的客户端应用实现接收无人机或者服务器的视频数据。
所述用户体验感知工具实现计算端到端延时、丢包率、丢帧率和视频缓存率等度量信息,并转发给无人机或者服务器。
基于上述多无人机流媒体分流合流系统,本发明还提供多无人机流媒体分流合流方法,包括,在发送端的无人机,其应用程序利用客户端实时的吞吐量、画面延时和丢包率等评估链路状态,对视频数据包、视频帧和视频会话等进行负载量的计算,选择分流模式。具体步骤为:
第一步,发送端负载和流量监控;发送端的无人机,其应用程序利用Linux系统中的ioctl函数实时获取网卡的输入和输出的负载数量;首先,应用程序读取网卡来获得其他节点输入的负载数量Linput;然后,应用程序计算编码前后的自身产生的源载荷数量Lsrc;
第二步,客户端计算吞吐量、延时、丢包率和缓存率;作为客户端的用户将计算后的吞吐量、延时、丢包率和缓存率等度量信息,封装在RTCP协议消息中,转发给发送端;
第三步,发送端分流;发送端的应用程序从约定的RTCP链路读取吞吐量、延时、丢包率和缓存率等信息,进行评估和决策,通过分流算法进行分流;分流算法包含三种分流模式:基于包的分流、基于帧的分流和基于会话的分流,具体步骤如下,
当Linput>Lsrc时,代表邻居节点输入的负载量大于本节点自身产生的源载荷数量,发送端实施基于包的分流;发送端根据负载和带宽比值、会话延时和丢包率等性能指标对视频包按照序列号进行分割;每条链路可以设置计数器进行累加计数和比较,根据带宽的变化,实时的调整分流比例;
当Linput≤Lsrc时,代表邻居节点输入的负载量小于本节点自身产生的源载荷数量,发送端实施基于帧的分流;根据链路的带宽,将自身的视频帧按照帧号和链路带宽进行分割;
当Lsrc>>Linput,代表自身同其他应用或终端产生了多个视频会话,导致自身的源载荷数量显著增加;发送端接收来自于用户的多会话的延时和丢包率等信息进行链路评估,发送端的应用程序对多会话的负载进行分流和路径迁移;
第四步,接收端合流;接收端的应用程序包含多个写和读线程;写线程从多个UDP套接字中获得数据包,解析其序列号,进行排序,写入到环形缓冲器区域;读线程从环形缓冲器中读取数据包,从保存的IP地址和端口号信息中获取目的地址,将数据包写到指定的套接字中,转发给其他客户端。
在接收端的无人机或者服务器,其应用程序首先完成多路视频数据的缓存和重新排序,然后进行转发。视频数据包经过多路径传输后是乱序的,接收端的应用程序设计包重组算法,解决数据包乱序问题。定义A和B两个线程:
线程A,通过多个UDP套接字循环不断地接收视频数据包。当套接字缓存区收到数据包后,线程A解析视频包序列号Sequence Number(SN)字段。本发明定义了一个长度为len的循环队列,队列中每个单元保存一个视频包,当循环队列没有溢出且接收到的SN号大于发送的SN号,将接收的视频包,根据SN号对len取模得到保存位置i(i=SN%len)。线程A将该视频包保存到队列中第i个单元,SN占2个字节长度,SN最大数值为65535。
线程A处理的是视频数据包乱序问题,所实现的排序算法逻辑如下:
步骤1,从第一个数据包的序列号开始,写入到环形缓冲器;
步骤2,接收到下一个数据包,在已经排序的数据包中从后往前扫描;
步骤3,如果已经排序的数据包的序列号大于新接收的数据包的序列号,则将已经排序的数据包往队列后移动;
步骤4,重复步骤3,直到找到已排序的数据包的序列号小于新接收的数据包的序列号;
步骤5,将新的数据包插入到环形缓冲器的该位置;
步骤6,重复步骤2-5。
线程B,首先判断循环队列是否为空;如果为空,不进行任何操作;如果不为空,判断队列是否满;如果队列没有满,判断当前队列位置指针pos是否存在数据,存在数据则执行视频数据包出队,记录当前出队视频数据包SN号,并执行pos++;若队列pos位置不存在数据,则启动定时器,若定时器结束前循环队列pos位置收到数据,中断定时器,发送视频数据包。
本发明系统包含5个子系统:地面控制端、无人机发送端、无人机接收端、服务器端和用户;作为音视频采集、编码和发送端的无人机,在发送视频包之前在多模块之间实施视频分流,实现多路并行发送;视频分流算法包含三种模式,分别是基于视频包的分流、基于视频帧的分流和基于视频会话的分流;作为接收端的无人机,对多路视频数据实施合流;接收端的应用程序包含多线程和环形缓冲器设计,至少一个线程用来缓存视频数据包,将多路传输来的视频包按照序列号进行排序和重组,至少一个线程用来读取数据包并转发到其他客户端;实验表明,本发明使多无人机实时通信克服了弱网环境下带宽不足引起的传输高延时问题,解决了无人机高速移动过程中视频负载过高的问题;相比于单路径传输、MPTCP(MultiPath TCP)和DTP(Deadline-aware Transport Protocol)等方法,本发明能够减少400-1500ms的端到端传输延时,为无人机系统带来2-4倍的吞吐量增益。
本发明较现有技术相比,具有以下优点及有益效果:
(1)本发明大幅增加了多无人机系统在弱网环境下的吞吐量性能,提升了传输效率;
(2)本发明显著降低了多无人机系统在多跳传输时的视频端到端延时,减少了视频卡顿的发生;
(3)本发明对多路径传输的数据包拥有良好的排序和重组功能,提升了无人机系统的缓存和转发能力;
(4)本发明提供的分流合流算法,保证了全网络多无人机系统实现点对点推拉流、点对多点推拉流和分布式多点对多点推拉流等高并发业务的高实时性,减少了网络中瓶颈节点处的网络拥塞,提升了用户体验。
附图说明
图1为本发明的多无人机实时通信系统的软件架构图。
图2为本发明的一个实施例提出的分流合流方法的流程图。
图3为本发明的分流算法的三种分流模式示意图。
图4为本发明的合流算法的示意图。
图5为本发明的一个实例同MPTCP和DTP等协议对比的吞吐量性能图。
具体实施方式
下面通过具体实施例结合附图进一步介绍本发明。
如图1所示,本发明基于Android、Linux和Windows系统联合设计了一种多无人机实时通信系统,其包含5个子系统:地面控制端、无人机发送端、无人机接收端、服务器端和用户。表1给出了本发明中无人机实时通信系统的无线参数和飞行自组网的拓扑。表2给出了本发明中无人机实时通信系统的音视频编码参数。
地面控制端是一台Windows系统的电脑,包含有飞行控制应用程序和服务质量评估应用程序。飞行控制程序可以实时获取无人机的高度、速度、方向和位置等参数,实现了向无人机发送指令。服务质量评估应用程序实现了实时的获取无人机的负载、带宽、吞吐量等信息,实现了向无人机发送切换指令,实现了对无人机单路传输和多路传输模式的控制。
无人机发送端包含多个子系统:相机外设、主模块和多个辅助模块。主模块和多个辅助模块包含应用处理器、基带处理器和射频,应用处理器集成了8核Arm芯片,Mali V550GPU,基带处理器具备MIMO和OFDM的无线收发功能,如表1所示。主模块和多个辅助模块的软件架构基于Android系统实现,包含流媒体应用和缓存等多个应用程序,既具备带宽和负载的计算能力,也实现了数据包的分流功能。主模块和辅助模块是由ARM开发板并搭载Android系统的集成模组,具备自组网、蜂窝网、蓝牙、USB和以太网等网络通信能力。主模块和辅助模块通过USB线连接,基于USB-RNDIS机制通信,共同组成多模块叠加的通信系统。
无人机接收端包含多个子系统:相机外设、主模块和多个辅助模块。主模块和多个辅助模块包含应用处理器、基带处理器和射频,应用处理器集成了8核Arm芯片,Mali V550GPU,基带处理器具备MIMO和OFDM的无线收发功能。主模块和多个辅助模块的软件架构基于Android系统实现,包含流媒体应用和缓存等多个应用程序,既具备丢包率和吞吐量的计算能力,也实现了数据包的合流功能。缓存程序包含多个环形缓冲器,每个环形缓冲器都具有内存中实际开始的位置标识、缓冲区长度、有效数据的开始位置标识和有效数据的结束位置标识。
服务器端,包含两个单元:搭载Windows系统和Linux系统的蜂窝网服务器、基于Arm和DSP芯片平台开发的集成模组。服务器实现基于蜂窝网同无人机和远程用户通信,间接通过集成模组实现与无人机或其他终端基于自组网通信。集成模组包含有8核Arm芯片,Mali V550 GPU,如表1所示。服务器端包含流媒体应用和缓存等多个应用程序,既具备丢包率和吞吐量的计算能力,也实现了数据包的合流功能。缓存程序包含多个环形缓冲器,每个环形缓冲器都具有内存中实际开始的位置标识、缓冲区长度、有效数据的开始位置标识和有效数据的结束位置标识。
用户,包含流媒体播放器的客户端应用和用户体验QoE感知工具。流媒体播放器是一个RTSP应用,实现有基于Android系统和Windows系统的类型,实现接收无人机或者服务器的视频数据,实现视频数据的缓存、解码和播放;QoE感知工具是一个基于C语言开发的动态库或应用程序,实现计算端到端延时、丢包率、丢帧率和视频缓存率等度量信息,实现与无人机或者服务器建立套接字通信,实现基于TCP/IP方式传输数据。
表1无人机实时通信系统的无线参数
表2无人机实时通信系统的音视频编码参数
本发明的多无人机分流合流方法的流程,如图2所示,包括,在发送端的无人机,其应用程序利用客户端实时的吞吐量、画面延时和丢包率等评估链路状态,对视频数据包、视频帧和视频会话等进行负载量的计算,选择分流模式。具体步骤为:
第一步,发送端负载和流量监控。发送端的无人机,其应用程序利用Linux系统中的ioctl函数实时获取网卡的输入和输出的负载数量。首先,应用程序读取网卡来获得其他节点输入的负载数量Linput;然后,应用程序计算编码前后的自身产生的源载荷数量Lsrc。
在Linux系统中,应用程序利用ioctl函数读取网卡获取Linput的具体代码包括三个软件接口,分别是uav_get_nic_dbytes,uav_get_nic_flow和uav_get_nic_ip。
uav_get_nic_dbytes接口用来读取网卡的字节数,uav_get_nic_flow接口用来读取网卡的输入和输出负载流量,uav_get_nic_ip接口用来读取指定网卡的ip地址,软件接口代码见附录1。
在Android系统中,应用程序计算编码前后的自身产生的源载荷数量Lsrc的具体代码利用的是安卓系统中的TrafficStats类,包含TrafficStats.getTotalRxPackets()和TrafficStats.getTotalTxBytes()接口,可以实时读取指定应用程序的输入和输出流量,该软件接口代码见附录2。
在Android系统中,本发明还可以通过在编码后的消息队列中,实时的读取编码后的视频数据量,可以通过读取ByteBuffer的长度来获取数据量,软件接口见附录3。
第二步,客户端计算吞吐量、延时、丢包率和缓存率。如图1所示,作为客户端的用户将计算后的吞吐量、延时、丢包率和缓存率等度量信息,封装在RTCP消息中,反馈给发送端。
第三步,发送端分流。发送端的应用程序从约定的RTCP链路读取吞吐量、延时、丢包率和缓存率等信息,进行评估和决策。如图3所示,分流算法包含三种分流模式,基于包的分流,基于帧的分流和基于会话的分流。
当Linput>Lsrc时,发送端实施基于包的分流。发送端根据负载和带宽比值、会话延时和丢包率等性能指标对视频包按照序列号进行分割。例如,将数据包1、2和3基于子链路2发送,将数据包4、5、6和7基于子链路3发送,将数据包8、9和10基于主链路1发送。每条链路可以设置计数器进行累加计数和比较,根据带宽的变化,实时的调整分流比例。
当Linput≤Lsrc时,发送端实施基于帧的分流。根据链路的带宽,将自身的视频帧按照帧号和链路带宽进行分割。例如将第一组图像组(Group of Pictures,GOP)的帧基于子链路2发送,将第二组图像组的帧基于子链路3发送,将第三组图像组的帧基于主链路1发送。
当Lsrc>>Linput,代表自身同其他产生了多个视频会话,导致自身的源载荷数量显著增加。因此,发送端会实施基于会话的分流。发送端接收来自用户的多会话的延时和丢包率等信息进行链路评估,然后对每个会话的视频包进行分流和路径迁移。如将会话2和3在主链路1发送,将会话1和5在子链路2发送,将会话4和6在子链路3发送。
第四步,接收端合流。接收端的应用程序包含多个写和读线程。写线程从多个UDP套接字中获得数据包,解析其序列号,进行排序,写入到环形缓冲器区域。读线程从环形缓冲器中读取数据包,从保存的IP地址和端口号信息中获取目的地址,将数据包写到指定的套接字中,转发给其他客户端。
在接收端的无人机或者服务器,如图4所示,其应用程序首先完成多路视频数据的缓存和重新排序,然后进行转发。视频数据包经过多路径传输后是乱序的,接收端的应用程序设计包重组算法,解决数据包乱序问题。定义A和B两个线程:
线程A,通过多个UDP套接字循环不断地接收视频数据包。当套接字缓存区收到数据包后,线程A解析视频包序列号Sequence Number(SN)字段。本发明定义了一个长度为len的循环队列,队列中每个单元保存一个视频包,当循环队列没有溢出且接收到的SN号大于发送的SN号,将接收的视频包,根据SN号对len取模得到保存位置i(i=SN%len)。线程A将该视频包保存到队列中第i个单元,SN占2个字节长度,SN最大数值为65535。
线程A处理的是视频数据包乱序问题,所实现的排序算法逻辑如下:
第1步,从第一个数据包的序列号开始,写入到环形缓冲器;
第2步,接收到下一个数据包,在已经排序的数据包中从后往前扫描;
第3步,如果已经排序的数据包的序列号大于新接收的数据包的序列号,则将已经排序的数据包往队列后移动;
第4步,重复步骤3,直到找到已排序的数据包的序列号小于新接收的数据包的序列号;
第5步,将新的数据包插入到环形缓冲器的该位置;
第6步,重复步骤2-5。
线程B,首先判断循环队列是否为空。如果为空,不进行任何操作;如果不为空,判断队列是否满。如果队列没有满,判断当前队列位置指针pos是否存在数据,存在数据则执行视频数据包出队,记录当前出队视频数据包SN号,并执行pos++;若队列pos位置不存在数据,则启动定时器,若定时器结束前循环队列pos位置收到数据,中断定时器,发送视频数据包。
本发明通过工程实验测试本发明的分流合流算法对比单路径传输、MPTCP[1]和DTP[2]等方法的性能,实验结果反应了这些方法的端到端延时和吞吐量差异。
表3给出了本发明的分流合流算法同单路径传输、MPTCP和DTP等协议的端到端延时性能对比结果。实验表明,本发明的方法相比于单路径传输,能够降低1500ms的传输延时。相比于已有的MPTCP和DTP协议,本发明分别能减少约850ms和400ms的延时。
表3本发明的分流合流算法和MPTCP及DTP算法的延时性能对比
表4给出了本发明的分流合流算法的缓存性能。可以看出,数据包25954和25955分别经主模块和辅助模块按序发出。不难发现,25954的到达时间是274.798363秒,早于25955的274.783791秒,延时相差15毫秒。经过合流处理后,经由172.23.8.120地址发出时,25954和25955相差不到1毫秒。接收端的应用程序会利用环形缓冲器对数据包进行重组,进一步转发给其他模块。这种合流机制的计算是毫秒级别,不会给系统带来大的延时开销,为无人机多路传输系统带来了良好的缓存性能。
表4本发明的分流合流算法的缓存性能
图5给出了本发明的分流合流算法同单路径传输、MPTCP和DTP等协议的吞吐量性能对比结果。实验表明,本发明的分流合流算法在高速移动的弱网环境下,能给系统带来约2.5倍的吞吐量增益,显著提升了无人机的传输能力和效率。尤其在分布式多会话传输的飞行自组网中,本发明的分流合流算法给无人机系统带来的吞吐量增益更加明显。
参考文献
[1]Alan Ford,Costin Raiciu,Mark J.Handley,and Olivier Bonaventure.TCPExtensions for Multipath Operation with Multiple Addresses.RFC 6824,IETFRequest for Comments,January 2013.
[2]H.Shi,Y.Cui,F.Qian,and Y.Hu,“DTP:Deadline-aware TransportProtocol,”Proceedings of the 3rd Asia-Pacific Workshop on Networking 2019(APNet’19).,pp.1–7,2019。
附录:
附录1,uav_get_nic_dbytes,uav_get_nic_flow和uav_get_nic_ip接口代码
/>
/>
/>
附录2,Android系统中,TrafficStats.getTotalRxPackets()和TrafficStats.getTotalTxBytes()接口
/>
附录3,Android系统中,在编码后的消息队列中,实时的读取编码后的视频数据量,通过读取ByteBuffer的长度来获取数据量的软件接口代码
/>
Claims (7)
1.一种多无人机流媒体分流合流系统,其特征在于,是基于Android和Linux系统联合设计的多无人机实时通信系统,包含5个子系统:地面控制端、无人机发送端、无人机接收端、服务器端和用户;其中:
包含5个子系统:地面控制端、无人机发送端、无人机接收端、服务器端和用户;其中:
所述地面控制端,包含飞控程序和服务质量QoS评估工具;所述飞控程序实现向无人机手动发送飞行控制指令;所述QoS评估工具实现实时监控无人机的网络吞吐量和传输延时等度量信息;
所述无人机发送端,包含外设设备、主模块和辅助模块;所述主模块和辅助模块是一种集成了应用处理器、基带处理器和射频等多芯片集成的无线收发模块;
所述无人机接收端,包含外设设备、主模块和辅助模块,所述主模块和辅助模块是一种集成了应用处理器、基带处理器和射频等多芯片集成的无线收发模块;
所述服务器端,包含两部分:搭载Linux系统或Windows系统的服务器和集成模组;其中:
所述集成模组是一种集成了应用处理器、基带处理器和射频多芯片集成的无线收发模块,实现接收无人机发送的多路视频数据,实现多流数据包的重组和缓存;其工作包括:
所述服务器实现多种网络制式通信功能,包括以太网、蜂窝网、USB、蓝牙和WIFI;
所述服务器实现与集成模组通过以太网或者USB有线连接,和无人机系统上的集成模组基于自组网或者蜂窝网通信;
所述用户,包含流媒体播放器的客户端应用和用户体验感知工具;其中:
所述流媒体播放器的客户端应用实现接收无人机或者服务器的视频数据;
所述用户体验感知工具实现计算端到端延时、丢包率、丢帧率和视频缓存率度量信息,并转发给无人机或者服务器。
2.根据权利要求1所述的多无人机流媒体分流合流系统,其特征在于,所述无人机发送端具体工作包括:
(1)视频采集和输入:外设设备采集视频数据,经过HDMI接口输入到主模块的MIPI接口;
(2)跨层处理:主模块的驱动层从MIPI接口读取视频数据,通过Android系统的相机接口发送给流媒体应用;
(3)视频编码和包的封装:流媒体应用程序调用安卓系统框架层的多媒体接口Mediacodec类对原始的视频数据进行压缩和编码,流媒体应用程序对编码后的视频数据根据IETF RFC协议封装,将视频数据封装成H.264或H.265格式的数据,然后根据流媒体协议(RTP)将编码后的视频数据封装成流媒体数据包;
(4)流媒体会话和传输:无人机发送端与无人机接收端或者服务器端基于RTSP协议建立会话,基于RTP协议传输视频载荷,基于RTCP协议传输度量信息,并通过套接字实现通信;
(5)主链路传输:主模块实现将数据包直接从自身的网卡传输给其他目的地,实现主链路的传输功能,主模块和辅助模块通过USB线连接,基于USB-RNDIS通信,共同组成多模块叠加的通信系统,主模块还实现将数据包转发给辅助模块;
(6)子链路传输:辅助模块实现接收主模块的数据包,将数据包的目的ip地址转换为其他网卡的ip地址,经由其他网卡发送,从而实现子链路的传输功能;
(7)服务质量QoS评估和用户体验QoE感知:无人机发送端对负载和带宽等信息评估,并接收无人机接收端、服务器端和用户的消息,感知端到端延时、吞吐量和丢包率;
(8)分流:无人机发送端基于QoS评估和QoE感知的结果,选择分流模式,对视频载荷实施分流。
3.根据权利要求2所述的多无人机流媒体分流合流系统,其特征在于,所述无人机接收端具体工作包括:
(1)合流:无人机接收端的应用程序将多链路接收的视频数据包进行缓存、排序和重组,然后转发给客户端进行解码和播放;
(2)多线程处理:所述无人机接收端的应用程序,至少包含写和读两个线程;写线程负责合流,接收多个套接字(Socket)的流媒体数据包,将数据包按照序列号排序和重组,写入到环形缓冲器区域;读线程负责转发视频数据;写线程完成合流后通过中断通知读线程,读线程将重组后的数据包转发给流媒体应用程序或者其他目的地;
(3)缓存设计:多线程对数据包的读和写是基于环形缓冲器机制实现,所述环形缓冲器具有内存中实际开始的位置标识、缓冲区长度、有效数据的开始位置标识和有效数据的结束位置标识。
4.根据权利要求3所述的多无人机流媒体分流合流系统,其特征在于,所述服务器端,其工作还包括:
接收无人机发送的单路视频数据,实现缓存和保存到本地;
接收无人机发送的多路视频数据,实现缓存和保存到本地;
所述服务器的应用程序实现多线程处理;
所述集成模组实现向服务器发送数据;
所述服务器实现接收集成模组的数据,实现向无人机或者用户转发视频数据。
5.基于权利要求1-4之一所述系统的多无人机流媒体分流合流方法,其特征在于,包括,在发送端的无人机,其应用程序利用客户端实时的吞吐量、画面延时和丢包率评估链路状态,对视频数据包、视频帧和视频会话进行负载量的计算,选择分流模式;具体步骤为:
第一步,发送端负载和流量监控;发送端的无人机,其应用程序利用Linux系统中的ioctl函数实时获取网卡的输入和输出的负载数量;首先,应用程序读取网卡来获得其他节点输入的负载数量Linput;然后,应用程序计算编码前后的自身产生的源载荷数量Lsrc;
第二步,客户端计算吞吐量、延时、丢包率和缓存率;作为客户端的用户将计算后的吞吐量、延时、丢包率和缓存率度量信息,封装在RTCP协议消息中,转发给发送端;
第三步,发送端分流;发送端的应用程序从约定的RTCP链路读取吞吐量、延时、丢包率和缓存率信息,进行评估和决策,通过分流算法进行分流;
第四步,接收端合流;接收端的应用程序包含多个写线程和读线程;写线程从多个UDP套接字中获得数据包,解析其序列号,进行排序,写入到环形缓冲器区域;读线程从环形缓冲器中读取数据包,从保存的IP地址和端口号信息中获取目的地址,将数据包写到指定的套接字中,转发给其他客户端;
在接收端的无人机或者服务器,其应用程序首先完成多路视频数据的缓存和重新排序,然后进行转发;视频数据包经过多路径传输后是乱序的,接收端的应用程序实现包重组算法,解决数据包乱序问题。
6.根据权利要求4所述的多无人机流媒体分流合流方法,其特征在于,第三步中所述分流算法包含三种分流模式,基于包的分流、基于帧的分流和基于会话的分流;
当Linput>Lsrc时,代表邻居节点输入的负载量大于本节点自身产生的源载荷数量,发送端实施基于包的分流;发送端根据负载和带宽比值、会话延时和丢包率性能指标对视频包按照序列号进行分割;每条链路设置计数器进行累加计数和比较,根据带宽的变化,实时的调整分流比例;
当Linput≤Lsrc时,代表邻居节点输入的负载量小于本节点自身产生的源载荷数量,发送端实施基于帧的分流;根据链路的带宽,将自身的视频帧按照帧号和链路带宽进行分割;
当Lsrc>>Linput,代表自身同其他应用或终端产生了多个视频会话,导致自身的源载荷数量显著增加,发送端实施基于会话的分流;发送端基于多会话的延时和丢包率信息进行链路评估;发送端的应用程序对多会话的负载进行分流和路径迁移。
7.根据权利要求6所述的多无人机流媒体分流合流方法,其特征在于,第四步中所述接收端的应用程序设计包重组算法,解决数据包乱序问题,具体定义两个线程A和B:
线程A,通过多个UDP套接字循环不断地接收视频数据包;当套接字缓存区收到数据包后,线程A解析视频包序列号SN字段;定义一个长度为len的循环队列,队列中每个单元保存一个视频包,当循环队列没有溢出且接收到的SN号大于发送的SN号,将接收的视频包,根据SN号对len取模得到保存位置i(i=SN%len);线程A将该视频包保存到队列中第i个单元,SN占2个字节长度;
线程A处理的是视频数据包乱序问题,所实现的排序算法逻辑如下:
步骤1,从第一个数据包的序列号开始,写入到环形缓冲器;
步骤2,接收到下一个数据包,在已经排序的数据包中从后往前扫描;
步骤3,如果已经排序的数据包的序列号大于新接收的数据包的序列号,则将已经排序的数据包往队列后移动;
步骤4,重复步骤3,直到找到已排序的数据包的序列号小于新接收的数据包的序列号;
步骤5,将新的数据包插入到环形缓冲器的该位置;
步骤6,重复步骤2-步骤5;
线程B,首先判断循环队列是否为空;如果为空,不进行任何操作;如果不为空,判断队列是否满;如果队列没有满,判断当前队列位置指针pos是否存在数据,存在数据则执行视频数据包出队,记录当前出队视频数据包SN号,并执行pos++;若队列pos位置不存在数据,则启动定时器,若定时器结束前循环队列pos位置收到数据,中断定时器,发送视频数据包。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311126133.9A CN117544604A (zh) | 2023-09-04 | 2023-09-04 | 一种多无人机流媒体分流合流系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311126133.9A CN117544604A (zh) | 2023-09-04 | 2023-09-04 | 一种多无人机流媒体分流合流系统及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117544604A true CN117544604A (zh) | 2024-02-09 |
Family
ID=89792559
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311126133.9A Pending CN117544604A (zh) | 2023-09-04 | 2023-09-04 | 一种多无人机流媒体分流合流系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117544604A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117812174A (zh) * | 2024-02-29 | 2024-04-02 | 中国人民解放军国防科技大学 | 支持流协议报文传输的芯粒互连接口物理链路及接口电路 |
-
2023
- 2023-09-04 CN CN202311126133.9A patent/CN117544604A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117812174A (zh) * | 2024-02-29 | 2024-04-02 | 中国人民解放军国防科技大学 | 支持流协议报文传输的芯粒互连接口物理链路及接口电路 |
CN117812174B (zh) * | 2024-02-29 | 2024-05-10 | 中国人民解放军国防科技大学 | 支持流协议报文传输的芯粒互连接口物理链路及接口电路 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109314662B (zh) | 数据传输方法及装置 | |
US9306708B2 (en) | Method and apparatus for retransmission decision making | |
US7397819B2 (en) | Packet compression system, packet restoration system, packet compression method, and packet restoration method | |
US5444709A (en) | Protocol for transporting real time data | |
US20120275324A1 (en) | Packet transmission system and packet reception system | |
CN110474721B (zh) | 视频数据传输方法、装置及计算机可读存储介质 | |
CN103929681B (zh) | 一种提升低速网络中rtp视频流处理效率的方法 | |
US20020032788A1 (en) | Method and means for transmitting data of different quality of service in internet protocol datagrams | |
JP2009542114A (ja) | 圧縮ベースQoSのための方法及びシステム | |
CN101552660A (zh) | 对流媒体数据进行重传、播放的方法、装置及通信系统 | |
CN117544604A (zh) | 一种多无人机流媒体分流合流系统及方法 | |
CN113747203B (zh) | 一种视频信息传输方法、装置、电子设备及存储介质 | |
WO2022093938A1 (en) | Method and system for enabling low-latency data communication by aggregating a plurality of network interfaces | |
CN107707476A (zh) | 基于fpga的高效无线转发装置及方法 | |
CN109257620A (zh) | 基于多路径传输的网络直播方法及其系统 | |
CN116418894A (zh) | 业务处理方法和设备 | |
Liu et al. | Cross-layer design for UAV-based streaming media transmission | |
CN107786560A (zh) | 基于网络编码的多播移动设备视频会议系统 | |
CN108924063B (zh) | 一种时延约束感知的最小化端到端时延的流量分配方法 | |
CN114979793A (zh) | 一种直播数据传输方法、装置、系统、设备和介质 | |
Karrer et al. | Multipath streaming in best-effort networks | |
Liu et al. | Design and implementation for a UAV-based streaming media system | |
WO2024060991A1 (zh) | 一种多路径的数据流引流方法及装置 | |
Zhang et al. | An optimized BBR for multipath real time video streaming | |
CN116915688B (zh) | 一种实时音视频传输网络的数据传输方法及系统 |
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 |