CN116405741B - 基于多条传输路径的视频传输的调度方法、设备及介质 - Google Patents

基于多条传输路径的视频传输的调度方法、设备及介质 Download PDF

Info

Publication number
CN116405741B
CN116405741B CN202310435460.6A CN202310435460A CN116405741B CN 116405741 B CN116405741 B CN 116405741B CN 202310435460 A CN202310435460 A CN 202310435460A CN 116405741 B CN116405741 B CN 116405741B
Authority
CN
China
Prior art keywords
transmission
state
data
retransmission
transmission path
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.)
Active
Application number
CN202310435460.6A
Other languages
English (en)
Other versions
CN116405741A (zh
Inventor
王荧荧
邓磊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen University
Original Assignee
Shenzhen University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen University filed Critical Shenzhen University
Priority to CN202310435460.6A priority Critical patent/CN116405741B/zh
Publication of CN116405741A publication Critical patent/CN116405741A/zh
Application granted granted Critical
Publication of CN116405741B publication Critical patent/CN116405741B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network 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/63Control 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/631Multimode Transmission, e.g. transmitting basic layers and enhancement layers of the content over different transmission paths or transmitting with different error corrections, different keys or with different transmission protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network 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/63Control 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/647Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
    • H04N21/64723Monitoring of network processes or resources, e.g. monitoring of network load
    • H04N21/6473Monitoring network processes errors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network 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/63Control 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/647Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
    • H04N21/64723Monitoring of network processes or resources, e.g. monitoring of network load
    • H04N21/64738Monitoring network characteristics, e.g. bandwidth, congestion level
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network 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/63Control 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/647Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
    • H04N21/64784Data processing by the network
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/70Reducing energy consumption in communication networks in wireless communication networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本公开描述一种基于多条传输路径的视频传输的调度方法、设备及介质,包括:获取视频数据中的数据帧,数据帧的类型包括关键帧类型和普通帧类型,数据帧包括多个数据包;基于发送间隔、丢包率和单程时延估算多条传输路径的传输时间,基于多条传输路径的传输时间确定多条传输路径中每条传输路径的传输数据帧的数据包个数;基于多条传输路径对应的网络状态、数据帧的类型、以及数据帧中数据包的传输次数确定传输方式,传输方式与传输路径的选择相关;基于预设时间段内的网络卡顿率和最大可容忍卡顿率确定冗余度指标,冗余度指标与冗余度相关;并且基于数据包个数、传输方式和冗余度指标发送数据帧。由此,能够基于较小的带宽降低视频的卡顿率,从而能够提高用户观看视频的体验质量。

Description

基于多条传输路径的视频传输的调度方法、设备及介质
技术领域
本公开涉及视频传输领域,具体涉及一种基于多条传输路径的视频传输的调度方法、设备及介质。
背景技术
近年来,无线通信技术的快速发展推动了视频流媒体业务的蓬勃发展。短视频的风靡、直播带货的火爆、在线云游戏的流行以及远程线上会议应用的需要,使得视频流量数据井喷式增长。与此同时,用户对于视频观看体验质量的要求也在不断提高。然而传输视频数据需要占用较大的带宽,更高清晰度的视频也对网络的带宽提出了更高的要求。此外,网络的不稳定会导致视频数据包的延迟甚至丢包,从而造成视频的卡顿,显著地影响了QoE(Quality ofExperience,体验质量)。
目前单路径的视频传输已经无法满足用户对视频传输质量以及视频观看体验的需求,现存的多路径传输技术针对的场景是具有两条可用网络路径的视频传输。在此场景下,多路径下的数据传输有三种简单模式:切换、复用和分集,以及阿里巴巴技术团队研发的XLINK多路径传输技术。
然而,上述的三种简单模式在卡顿率较低时,带宽通常较高,往往不能较好地适应不同场景下的业务需求。
发明内容
本公开是鉴于上述现有技术的状况而完成,目的在于提供一种能够基于较小的带宽降低视频的卡顿率,进而能够适应不同场景的业务需求,并且提高用户观看视频的体验质量的基于多条传输路径的视频传输的调度方法、设备及介质。
为此,本公开第一方面提供一种基于多条传输路径的视频传输的调度方法,包括:获取视频数据中的数据帧,所述数据帧的类型包括关键帧类型和普通帧类型,所述数据帧包括多个数据包;基于发送间隔、丢包率和单程时延估算所述多条传输路径的传输时间,基于所述多条传输路径的传输时间确定所述多条传输路径中每条传输路径的传输所述数据帧的数据包个数;基于所述多条传输路径对应的网络状态、所述数据帧的类型、以及所述数据帧中数据包的传输次数确定传输方式,所述传输方式与传输路径的选择相关;基于预设时间段内的网络卡顿率和最大可容忍卡顿率确定冗余度指标,所述冗余度指标与冗余度相关;并且基于所述数据包个数、所述传输方式和所述冗余度指标发送所述数据帧。
在本公开的第一方面中,通过基于视频的传输路径的网络状态、数据帧的类型、以及数据帧中数据包的传输次数,能够对在不同网络状态下的关键帧和丢失数据包进行重传保护。另外,基于网络卡顿率和最大可容忍卡顿率确定传输路径的冗余度指标,能够减少带宽的浪费(也即,降低冗余度)并提高视频的流畅度(也即,降低网络卡顿率),进而更符合实际应用场景。
另外,在本公开第一方面所涉及的调度方法中,可选地,所述网络状态包括高丢包率状态、中丢包率状态和低丢包率状态,所述网络状态由丢包率确定,所述网络状态中高丢包率状态、中丢包率状态和低丢包率状态对应的丢包率依次递减;在确定所述传输方式中,对于所述数据帧中数据包为传输次数大于0的重传数据包:若所述网络状态为高丢包率状态且所述重传数据包所属的数据帧的类型不属于关键帧类型且所述重传数据包对应的传输次数为1,则确定当前传输状态为简单重传状态,若所述数据包所属的数据帧的类型属于关键帧类型或所述重传数据包对应的传输次数大于1,则确定当前传输状态为冗余重传状态;若所述网络状态为中丢包率状态且所述重传数据包所属的数据帧的类型不属于关键帧类型或所述重传数据包所属的数据帧的类型属于关键帧类型且所述重传数据包对应的传输次数为1,则确定当前传输状态为简单重传状态,若所述重传数据包所属的数据帧的类型属于关键帧类型且所述重传数据包对应的传输次数大于1,则确定当前传输状态为冗余重传状态;若所述网络状态为低丢包率状态,则确定当前传输状态为简单重传状态;基于确定的当前传输状态从所述多条传输路径中选择传输路径作为目标传输路径集,其中,若当前传输状态为简单重传状态时,所述目标传输路径集为所述多条传输路径中丢包率最低的一条传输路径,若当前传输状态为冗余重传状态时,所述目标传输路径集为所述多条传输路径中所有的传输路径;在确定所述传输方式中,对于所述数据帧中数据包的传输次数为0的初始数据包,所述传输方式为按所述路径集中每条传输路径的传输所述数据包个数发送所述初始数据包。在这种情况下,能够将网络状态按丢包率进行分类,从而根据实际情况考虑不同网络状态下的传输方式。另外,能够在重传重传数据包时将传输状态分为简单重传状态和冗余重传状态,且能够基于当前传输状态选择较优的传输路径。另外,能够基于每条传输路径的传输数据包个数将初始数据包分配至每条传输路径,从而能够提高初始数据包的传输的效率,能够较好地减少网络拥塞。
另外,在本公开第一方面所涉及的调度方法中,可选地,若当前传输状态为冗余重传状态且所述冗余度指标大于1,则基于该冗余度指标确定以两点分布的随机数,基于该随机数确定是否调整当前传输状态为简单重传状态;若当前传输状态为冗余重传状态且所述冗余度指标不大于1,调整当前传输状态为简单重传状态;若当前传输状态为简单重传状态且所述冗余度指标不小于1,保持当前传输状态;若当前传输状态为简单重传状态且所述冗余度指标小于1,则基于该冗余度指标确定以两点分布的随机数,基于该随机数确定是否调整当前传输状态为不重传状态;基于更新后的当前传输状态更新所述目标传输路径集,利用更新后的所述目标传输路径集以预设重传次数重传所述重传数据包,所述预设重传次数不小于1。在这种情况下,通过基于重传数据包时的传输路径和冗余度指标,动态调整传输方式,能够更好地适应不同场景的业务需求。另外,相较于较多的预设重传次数,能够节省网络带宽;相较于较少的预设重传次数,能够较好地提高数据包从发送端到接收端的完整性。
另外,在本公开第一方面所涉及的调度方法中,可选地,在移动终端上发送所述视频数据,所述多条传输路径的网络通信方式包括所述移动终端中的蓝牙、WIFI、5G和LTE中的至少一种。在这种情况下,能够在利用无线方式发送视频数据时,提高用户观看视频的体验质量。
另外,在本公开第一方面所涉及的调度方法中,可选地,所述高丢包率状态表示所述多条传输路径中存在一条丢包率大于0.2的传输路径,所述中丢包率状态表示所述多条传输路径中存在一条丢包率不大于0.2且不小于0.1的传输路径,所述低丢包率状态表示所述多条传输路径中每条传输路径的丢包率均小于0.1。在这种情况下,通过将传输路径按丢包率分类,能够根据不同类别的传输路径提供不同的传输方式,进而能够更适应不同网络状态下的业务场景的需求。
另外,在本公开第一方面所涉及的调度方法中,可选地,所述多条传输路径的数量为2,将所述数据帧分为两组数据包,
每条传输路径的传输时间满足公式:
其中,i表示所述多条传输路径中各条传输路径的索引,Ti表示第i条传输路径传输的Ni个数据包的所述传输时间,表示所述传输时间的期望,Ni表示第i条传输路径中的数据包个数,τi表示第i条传输路径的发送间隔,di表示第i条传输路径的单程时延,Xi表示第i条传输路径传输的Ni个数据包的重传次数中的最大值,/>表示所述最大值的期望。由此,能够确定每条传输路径的传输时间,以便选择更好的传输路径。
另外,在本公开第一方面所涉及的调度方法中,可选地,所述重传次数中最大值的期望满足公式:
其中,表示第i条传输路径传输的Ni个数据包的重传次数中最大值的期望,δi表示第i条传输路径的丢包率,Ni表示第i条传输路径中的数据包个数,Xi表示第i条传输路径传输的Ni个数据包的重传次数中的最大值。由此,能够确定传输路径中数据包重传次数中最大值的期望。
另外,在本公开第一方面所涉及的调度方法中,可选地,所述多条传输路径中每条传输路径的传输所述数据帧的数据包个数满足公式:
s.t.N1+N2=N
var.N1,N2∈{0,1,...,N}
其中,表示第1条传输路径传输的N1个数据包的所述传输时间的期望,表示第2条传输路径传输的N2个数据包的所述传输时间的期望,T1表示第1条传输路径传输的N1个数据包的所述传输时间,T2表示第2条传输路径传输的N2个数据包的所述传输时间,N1表示第1条传输路径传输的数据包个数,N2表示第2条传输路径传输的数据包个数,N表示所述数据帧的数据包个数。由此,能够确定每条传输路径的传输数据帧的数据包个数。
本公开第二方面提供一种通信设备,所述通信设备包括处理器和存储器,所述处理器执行所述存储器存储的计算机程序以实现如本公开第一方面所涉及的调度方法。
本公开第三方面提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储有至少一个指令,所述至少一个指令被处理器执行时实现如本公开第一方面所涉及的调度方法。
根据本公开,能够提供一种基于较小的带宽降低视频的卡顿率,进而能够适应不同场景的业务需求,并且提高用户观看视频的体验质量的基于多条传输路径的视频传输的调度方法、设备及介质。
附图说明
图1是示出了本公开示例所涉及的调度方法的应用场景图。
图2是示出了本公开示例所涉及的调度方法的流程图。
图3是示出了本公开示例所涉及的调度方法中的确定每条传输路径的数据包个数的流程图。
图4是示出了本公开示例所涉及的调度方法中的确定数据包在第一传输路径上传输的最优个数值的流程图。
图5是示出了本公开示例所涉及的确定重传数据包的传输方式的流程图。
图6是示出了本公开示例所涉及的自适应调整冗余度指标的方法的流程图。
图7是示出了本公开示例所涉及的基于冗余度指标调整当前传输状态的方法的流程图。
图8是示出了本公开示例所涉及的低丢包率状态下传输15秒视频各方法的实验结果的对比图。
图9是示出了本公开示例所涉及的低丢包率状态下传输60秒视频各方法的实验结果的对比图。
图10是示出了本公开示例所涉及的低丢包率状态下传输600秒视频各方法的实验结果的对比图。
图11是示出了本公开示例所涉及的高丢包率状态下传输15秒视频各方法的实验结果的对比图。
图12是示出了本公开示例所涉及的高丢包率状态下传输60秒视频各方法的实验结果的对比图。
图13是示出了本公开示例所涉及的高丢包率状态下传输600秒视频各方法的实验结果的对比图。
图14是示出了本公开示例所涉及的通信设备的结构示意图。
附图标记说明:
发送端…1,接收端…2,路由器…3,通信设备…4,
处理器…40,存储器…41。
具体实施方式
以下,参考附图,详细地说明本公开的优选实施方式。在下面的说明中,对于相同的部件赋予相同的符号,省略重复的说明。另外,附图只是示意性的图,部件相互之间的尺寸的比例或者部件的形状等可以与实际的不同。
需要说明的是,本公开中的术语“包括”和“具有”以及它们的任何变形,例如所包括或所具有的一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可以包括或具有没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本公开所描述的所有方法可以以任何合适的顺序执行,除非在此另有指示或者与上下文明显矛盾。
本公开的示例描述的场景是为了更加清楚的说明本公开的技术方案,并不构成对于本公开提供的技术方案的限定。
本公开能够提供一种能够基于较小的带宽降低视频的卡顿率,进而能够适应不同场景的业务需求,并且提高用户观看视频的体验质量的基于多条传输路径的视频传输的调度方法、设备及介质。
本公开涉及的一种基于多条传输路径的视频传输的调度方法,有时也可以简称为视频传输的调度方法或调度方法。
在一些示例中,本公开所涉及的调度方法可以支持智能终端设备(例如,手机或电脑等)通过多条传输路径同时传输数据。在这种情况下,能够便于提高智能终端设备访问网络视频的速度。
图1是示出了本公开示例所涉及的调度方法的应用场景图。
在一些示例中,本公开所涉及的调度方法可以应用于图1所示的场景中。在一些示例中,参见图1,发送端1可以基于调度方法将数据包通过第一传输路径(即第1条传输路径)和/或第二传输路径(即第2条传输路径)传输至路由器3,然后路由器3将数据包传输至接收端2,数据包被接收端2接收并通过例如解码渲染等处理方式后在接收端2播放。
图2是示出了本公开示例所涉及的调度方法的流程图。
在一些示例中,参见图2,调度方法可以包括获取视频数据中的数据帧(步骤S101)、估算多条传输路径的传输时间并基于多条传输路径的传输时间确定多条传输路径中每条传输路径的传输数据帧的数据包个数(步骤S102)、基于多条传输路径对应的网络状态、数据帧的类型、以及数据帧中数据包的传输次数确定传输方式(步骤S103)、确定冗余度指标(步骤S104)、以及基于数据包个数、传输方式和冗余度指标发送数据帧(步骤S105)。
在一些示例中,在步骤S101中,数据帧可以包括多个数据包。
在一些示例中,数据帧的类型可以包括关键帧类型和普通帧类型。在这种情况下,能够将数据帧的类型进行区分,能够便于后续针对不同数据帧的类型的处理。
在一些示例中,在步骤S102中,可以基于发送间隔、丢包率和单程时延获取多条传输路径的服务质量。也即,发送间隔、丢包率和单程时延可以表示多条传输路径的服务质量。
在一些示例中,发送间隔可以是指上一个数据包发送结束到下一个数据包发送开始的时间。另外,丢包率可以是指一段时间内丢失的数据包个数占发送总数据包个数的比率。另外,单程时延可以是指数据包从发送端1到接收端2单程的时间。
在一些示例中,在步骤S102中,可以基于多条传输路径的服务质量估算多条传输路径的传输时间。
在一些示例中,多条传输路径的数量可以为2(也即,第一传输路径和第二传输路径),可以将数据帧分为两组数据包。具体而言,第一组数据包可以通过第一传输路径传输,第二组数据包可以通过第二传输路径传输。
在一些示例中,每条传输路径的传输时间可以满足公式:
其中,i表示多条传输路径中各条传输路径的索引,Ti表示第i条传输路径传输的Ni个数据包的传输时间,表示传输时间的期望,Ni表示第i条传输路径中的数据包个数,τi表示第i条传输路径的发送间隔,di表示第i条传输路径的单程时延,Xi表示第i条传输路径传输的Ni个数据包的重传次数中的最大值,/>表示最大值的期望。由此,能够确定每条传输路径的传输时间,以便选择更好的传输路径。
在一些示例中,在步骤S102中,重传次数中最大值的期望可以满足公式:
其中,表示第i条传输路径传输的Ni个数据包的重传次数中最大值的期望,δi表示第i条传输路径的丢包率,Ni表示第i条传输路径中的数据包个数,Xi表示第i条传输路径传输的Ni个数据包的重传次数中的最大值。由此,能够确定传输路径中数据包重传次数中最大值的期望。
在一些示例中,可以基于多条传输路径的传输时间确定多条传输路径中每条传输路径的传输数据帧的数据包个数。
在一些示例中,多条传输路径中每条传输路径的传输数据帧的数据包个数可以满足公式:
s.t.N1+N2=N
var.N1,N2∈{0,1,...,N}
其中,表示第1条传输路径传输的N1个数据包的传输时间的期望,/>表示第2条传输路径传输的N2个数据包的传输时间的期望,T1表示第1条传输路径传输的N1个数据包的传输时间,T2表示第2条传输路径传输的N2个数据包的传输时间,N1表示第1条传输路径传输的数据包个数,N2表示第2条传输路径传输的数据包个数,N表示数据帧的数据包个数。由此,能够确定每条传输路径的传输数据帧的数据包个数。
在一些示例中,确定多条传输路径中每条传输路径的传输数据帧的数据包个数的方法有时可以简称为确定每条传输路径的数据包个数的方法或确定个数的方法。为此,本公开示例还提供了一种确定每条传输路径的数据包个数的示例性的方法,以下结合图3详细说明确定每条传输路径的数据包个数的方法。
图3是示出了本公开示例所涉及的调度方法中的确定每条传输路径的数据包个数的流程图。
在一些示例中,参见图3,确定每条传输路径的数据包个数可以包括获取第一传输路径和第二传输路径的服务质量并获取待传输的数据帧中的数据包个数(步骤S201)、基于待传输的数据帧中的数据包个数为第一传输路径和第二传输路径分配不同个数的数据包(步骤S202)、基于服务质量计算第一传输路径和第二传输路径的传输时间,并获取最大值(步骤S203)、以及基于最大值获取数据包在第一传输路径上传输的最优个数值(步骤S204)。
在一些示例中,在步骤S201中,可以获取第一传输路径和第二传输路径的丢包率、发送间隔和单程时延。由此,能够获取第一传输路径和第二传输路径的服务质量。在一些示例中,第一传输路径的丢包率可以通过δ1表示,第二传输路径的丢包率可以通过δ2表示;第一传输路径的发送间隔可以通过τ1表示,第二传输路径的发送间隔可以通过τ2表示;第一传输路径的单程时延可以通过d1表示,第二传输路径的单程时延可以通过d2表示。
在一些示例中,可以获取待传输的数据帧的数据包个数,待传输的数据帧的数据包个数可以通过N表示,第一传输路径传输的数据包个数可以通过N1表示,第二传输路径传输的数据包个数可以通过N2表示。
在一些示例中,可以令第一传输路径的数据包个数的初始值等于0。在这种情况下,能够使第一传输路径的数据包个数初始化,从而能够基于第一传输路径的数据包个数等于0时进行计算以获取传输数据帧的数据包在第二传输路径的传输时间。
在一些示例中,在步骤S202中,可以基于待传输的数据帧中的数据包个数为第一传输路径和第二传输路径分配传输数据帧的数据包。例如,第一传输路径的数据包个数可以为1个、2个或3个不等。同时,第二传输路径的数据包个数即为传输数据帧的数据包个数与第一传输路径的数据包个数的差值。
在一些示例中,在步骤S203中,可以基于第一传输路径的服务质量和数据包个数估算第一传输路径的传输时间,第一传输路径的传输时间的期望可以通过表示。另外,可以基于第二传输路径的服务质量和数据包个数估算第二传输路径的传输时间,第二传输路径的传输时间的期望可以通过/>表示。在一些示例中,可以通过比较第一传输路径的传输时间的期望和第二传输路径的传输时间的期望以获取两者中的最大值,最大值可以通过/>表示。
在一些示例中,可以依次递增第一传输路径的数据包个数,例如,可以使第一传输路径的数据包个数依次递增1个、2个或3个等。在这种情况下,能够估算多个第一传输路径的传输时间的值以及与之相对应的第二传输路径的传输时间的值,从而能够获取多个最大值。也即,可以重复地依次执行步骤S202和步骤S203以获取多次分配数据包对应的第一传输路径的多个传输时间。
在一些示例中,优选地,可以使第一传输路径的数据包个数依次递增1个。在这种情况下,能够估算全部第一传输路径的传输时间的值以及与之相对应的第二传输路径的传输时间的值,从而能够获取所有第一传输路径的数据包个数的计算情况,以便于后续的计算。
在一些示例中,在步骤S204中,通过比较多个最大值的大小,以获取其中的最小值。由此,能够获取最优的传输时间(也即,传输时间最短)。
在一些示例中,在步骤S204中,可以基于最小值获取数据包在第一传输路径上传输的最优个数值。
在一些示例中,可以通过最小值获取与之相对应的第一传输路径的数据包个数(也即,最小值可以对应第一传输路径和第二传输路径所分配的数据包的个数),第一传输路径的数据包个数即为数据包在第一传输路径上传输的最优个数值。另外,最优个数值可以通过Nopt表示。
在一些示例中,如上所述,可以通过比较不同数据包个数在第一传输路径的传输时间,以确定第一传输路径的数据包个数以及第二传输路径的数据包个数。
图4是示出了本公开示例所涉及的调度方法中的确定数据包在第一传输路径上传输的最优个数值的流程图。
在一些示例中,确定数据包在第一传输路径上传输的最优个数值可以包括数据初始化(步骤S210)、估算和/>并得到最大值/>(步骤S211)、判断/>是否小于T(步骤S212)、令/>等于T,并令N1等于Nopt(步骤S213)、令N1的个数增加1个(步骤S214)、判断N1是否大于N(步骤S215)、以及获取Nopt作为数据包在第一传输路径上传输的最优个数值(步骤S216)。
在一些示例中,在步骤S210中,可以令N1等于0,令Nopt等于0;可以设置参数T作为初始化的传输时间,令T等于无穷值。同时,可以获取N的值。由此,能够便于后续的计算。
在一些示例中,在步骤S211中,可以通过估算和/>的值并进行比较,以获取/>和/>中的较大值作为/>由此,能够获取最大值。
在一些示例中,在步骤S212中,可以判断的值与T的值的大小。具体而言,若/>的值小于等于T的值,则进入步骤S213;若/>的值大于T的值,则进入步骤S214。
在一些示例中,在步骤S213中,令等于T,并令N1等于Nopt。在这种情况下,能够基于多次的估算获取多个/>并能够使T的值更新为多个/>中的最小值。同时,能够将取得最小值时的N1作为Nopt
在一些示例中,在步骤S214中,可以令N1的个数增加1个。在这种情况下,能够使N1的个数递增,从而能够获取多个和/>的值,从而能够获取多个/>的值。
在一些示例中,在步骤S215中,可以判断N1与N的大小。具体而言,若N1的值小于等于N的值,则进入步骤S211;若N1的值大于N的值,则进入步骤S216。在这种情况下,能够涵盖N1的值的所有情况(也即,从0至N的所有情况),从而能够获取全部和/>的值。
在一些示例中,在步骤S216中,可以获取Nopt作为数据包在第一传输路径上传输的最优个数值。在这种情况下,能够确定N1和N2的值,从而能够确定第一传输路径的数据包个数以及第二传输路径的数据包个数。
如上所述,本公开可以通过估算多条传输路径的传输时间并基于多条传输路径的传输时间确定多条传输路径中每条传输路径的传输数据帧的数据包个数。
返回参考图2,在一些示例中,在步骤S103中,可以基于多条传输路径对应的网络状态、数据帧的类型、以及数据帧中数据包的传输次数确定传输方式。另外,传输方式可以与传输路径的选择相关。
在一些示例中,在确定传输方式中,对于数据帧中数据包的传输次数为0的初始数据包,传输方式为按路径集(也即多条传输路径)中每条传输路径的传输数据包个数发送初始数据包。在这种情况下,能够基于每条传输路径的传输数据包个数将初始数据包分配至每条传输路径,从而能够提高初始数据包的传输的效率,能够较好地减少网络拥塞。
在一些示例中,在确定传输方式中,对于数据帧中数据包为传输次数大于0的重传数据包,可以基于多条传输路径对应的网络状态和数据帧的类型确定传输方式。在这种情况下,能够对在不同网络状态下的关键帧和丢失数据包进行重传保护。
在一些示例中,网络状态可以包括高丢包率状态、中丢包率状态和低丢包率状态,网络状态可以由丢包率确定,网络状态中高丢包率状态、中丢包率状态和低丢包率状态对应的丢包率可以依次递减。由此,能够将网络状态按丢包率进行分类,从而根据实际情况考虑不同网络状态下的传输方式。
在一些示例中,高丢包率状态可以表示多条传输路径中存在一条丢包率大于0.2的传输路径,中丢包率状态可以表示多条传输路径中存在一条丢包率不大于0.2且不小于0.1的传输路径,低丢包率状态可以表示多条传输路径中每条传输路径的丢包率均小于0.1。在这种情况下,通过将传输路径按网络丢包率情况分类,根据不同传输路径的状态提供不同的传输方式,能够更适应不同业务场景的需求。
在一些示例中,重传数据包的重传方式可以包括简单重传和冗余重传中的至少一种。在一些示例中,简单重传可以是指在一条传输路径上传输数据包,冗余重传可以是指在一条以上的传输路径上传输相同的数据包。
在一些示例中,由于数据包在传输的过程会丢失,因此可以对丢失的数据包进行重传,重传数据包可以是指当数据包丢失后,重新发送一次的数据包。
在一些示例中,可以将待传输的数据包设置在传输路径的发送缓冲队列。在一些示例中,可以将待传输的数据包设置在传输路径的发送缓冲队列的队头。在这种情况下,能够便于数据包的读取,从而能够提高传输的效率。
图5是示出了本公开示例所涉及的确定重传数据包的传输方式的流程图。
在一些示例中,参见图5,确定重传数据包的传输方式可以包括获取传输路径的丢包率(步骤S301)、判断传输路径中是否存在一条丢包率小于0.1的传输路径(步骤S302)、判断传输路径中是否存在一条丢包率大于0.2的传输路径(步骤S303)、判断是否为关键帧类型,或重传数据包是否属于传输次数大于1的重传数据包(步骤S304)、判断是否为关键帧类型,且重传数据包是否属于传输次数大于1的重传数据包(步骤S305)、进行冗余重传(步骤S306)、判断第一传输路径是否大于第二传输路径的丢包率(步骤S307)、选择第一传输路径进行简单重传(步骤S308)、以及选择第二传输路径进行简单重传(步骤S309)。
在一些示例中,在步骤S301中,可以获取第一传输路径和第二传输路径的丢包率。由此,能够获取第一传输路径和第二传输路径的服务质量。在一些示例中,第一传输路径的丢包率可以通过δ1表示,第二传输路径的丢包率可以通过δ2表示。
在一些示例中,在步骤S302中,当传输路径中存在一条丢包率小于0.1的传输路径,则可以进入步骤S307;当传输路径中不存在一条丢包率小于0.1的传输路径,则可以进入步骤S303。
在一些示例中,在步骤S303中,当传输路径中存在一条丢包率大于0.2的传输路径,则可以进入步骤S304;当传输路径中不存在一条丢包率大于0.2的传输路径,则可以进入步骤S305。
在一些示例中,在步骤S304中,当重传数据包所属的数据帧的类型为关键帧类型,或重传数据包对应的传输次数大于1时,则可以进入步骤S306;当重传数据包所属的数据帧的类型不属于关键帧类型,且重传数据包对应的传输次数为1时,则可以进入步骤S307。
在一些示例中,在步骤S305中,当重传数据包所属的数据帧的类型为关键帧类型,且重传数据包对应的传输次数大于1时,则可以进入步骤S306;当重传数据包所属的数据帧的类型不属于关键帧类型,或重传数据包对应的传输次数为1时,则可以进入步骤S307。
在一些示例中,在步骤S306中,可以基于冗余重传进行数据包的重传。具体而言,可以在第一传输路径和第二传输路径的发送缓冲队列的队头插入重传数据包。
在一些示例中,在步骤S307中,可以判断δ1和δ2的值的大小。具体地,当δ1大于δ2时,则可以进入步骤S309;当δ1小于δ2时,则可以进入步骤S308。
在一些示例中,在步骤S308中,可以选择第一传输路径进行简单重传。具体而言,可以在第一传输路径的发送缓冲队列的队头插入重传数据包。
在一些示例中,在步骤S309中,可以选择第二传输路径进行简单重传。具体而言,可以在第二传输路径的发送缓冲队列的队头插入重传数据包。
如上所述,对于重传数据包,可以基于多条传输路径对应的网络状态和数据帧的类型确定传输方式。在一些示例中,在步骤S103中,基于多条传输路径对应的网络状态和数据帧的类型可以确定传输状态,基于传输状态可以确定传输方式。
在一些示例中,传输状态可以包括简单重传状态和冗余重传状态的至少一种。其中,简单重传状态可以与简单重传对应,冗余重传状态可以与冗余重传对应。在一些示例中,传输状态还可以包括不重传状态,不重传状态可以是指数据包无需进行重传的状态。例如,可以将目标传输路径集设置为空。
在一些示例中,在步骤S103中,在确定传输方式中,对于数据帧中数据包为传输次数大于0的重传数据包,若网络状态为高丢包率状态且重传数据包所属的数据帧的类型不属于关键帧类型且重传数据包对应的传输次数为1,则确定当前传输状态为简单重传状态,若数据包所属的数据帧的类型属于关键帧类型或重传数据包对应的传输次数大于1,则确定当前传输状态为冗余重传状态。在这种情况下,当网络状态为高丢包率状态时,能够确认传输路径的当前传输状态。
在一些示例中,若网络状态为中丢包率状态且重传数据包所属的数据帧的类型不属于关键帧类型或重传数据帧所属的数据帧的类型属于关键帧类型且重传数据包对应的传输次数大于1,则确定当前传输状态为简单重传状态,若重传数据包所属的数据帧的类型属于关键帧类型且重传数据包对应的传输次数大于1,则确定当前传输状态为冗余重传状态。在这种情况下,当网络状态为中丢包率状态时,能够确认传输路径的当前传输状态。
在一些示例中,若网络状态为低丢包率状态,则确定当前传输状态为简单重传状态。在这种情况下,当网络状态为低丢包率状态时,能够确认传输路径的当前传输状态。
如上所述,可以通过网络状态、重传数据包所属的数据帧的类型、以及重传数据包对应的传输次数确认传输路径的当前传输状态。在这种情况下,通过基于视频的传输路径的网络状态、数据帧的类型、以及数据帧中数据包的传输次数,能够对在不同网络状态下的关键帧和丢失数据包进行重传保护。另外,能够在重传重传数据包时将传输状态分为简单重传状态和冗余重传状态,且能够基于当前传输状态选择较优的传输路径。
如上所述,在步骤S103中,基于传输状态可以确定传输方式。在一些示例中,可以基于确定的当前传输状态从多条传输路径中选择传输路径作为目标传输路径集。具体地,若当前传输状态为简单重传状态时,目标传输路径集可以为多条传输路径中丢包率最低的一条传输路径;若当前传输状态为冗余重传状态时,目标传输路径集可以为多条传输路径中所有的传输路径。在这种情况下,能够基于当前传输状态选择相对应的目标传输路径集,从而能够基于实际情况较好地提高传输重传数据包的效率。
继续参考图2,在一些示例中,在步骤S104中,可以基于预设时间段内的网络卡顿率和最大可容忍卡顿率确定冗余度指标。
在一些示例中,网络卡顿率有时可以简称为卡顿率。在一些示例中,网络卡顿率可以是用于体现视频的流畅度的指标。在一些示例中,可以是基于预设时间段内(例如视频播放过程中)视频的卡顿时长占整个视频的总时长的比率。在一些示例中,在步骤S104中的网络卡顿率也可以为最大卡顿率。最大卡顿率可以是指多个预设时间段对应的网络卡顿率的最大值。具体而言,网络卡顿率的值越小,视频传输的效率越大,也即调度方法的效果越优。
在一些示例中,最大可容忍卡顿率可以基于需求进行设定。由此,通过调整最大可容忍卡顿率,能够便于后续视频传输方式以及传输状态的调整,使其更加符合用户的需求。
在一些示例中,基于最大可容忍卡顿率可以确定第一预设最大卡顿率和第二预设最大卡顿率。具体地,可以将最大可容忍卡顿率作为第一预设最大卡顿率,第一预设最大卡顿率的值减去预设小数(例如0.05)作为第二预设最大卡顿率,预设小数可以大于0。
另外,冗余度指标可以与冗余度相关。在一些示例中,冗余度可以是指在预设时间段内重传数据包的个数占待传输的数据帧的数据包个数的比值。具体而言,冗余度的值越小,视频传输的效率越大,也即调度方法的效果越优。另外,可以通过m表示冗余度指标。
在一些示例中,冗余度指标可以是指丢失的数据包在一次重传时的平均重传数量因子。在一些示例中,平均重传数量因子可以用于确认在一次重传时的重传数据包个数。
在一些示例中,冗余度指标的取值范围可以处于[0.5,2]区间上。例如,冗余度指标可以为0.5、1、1.5或2等。在一些示例中,初始的冗余度指标可以为2。
在一些示例中,冗余度指标可以进行自适应调整。具体而言,接收端2可以获取网络卡顿率,并将网络卡顿率反馈至发送端1,发送端1可以基于网络卡顿率和由最大可容忍卡顿率确定的第一预设最大卡顿率和第二预设最大卡顿率进行比较,并基于比较的结果对冗余度指标进行调整。在这种情况下,发送端1能够基于网络卡顿率实时调整冗余度指标,能够使冗余度指标更符合不同的业务场景。
图6是示出了本公开示例所涉及的自适应调整冗余度指标的方法的流程图。
在一些示例中,参见图6,以预设小数为0.05为例,自适应调整冗余度指标的方法可以包括获取网络卡顿率、第一预设最大卡顿率和初始的冗余度指标(步骤S401)、判断网络卡顿率是否大于等于第二预设最大卡顿率(步骤S402)、判断网络卡顿率是否大于第一预设最大卡顿率(步骤S403)、将冗余度指标的值降低0.1(步骤S404)、将冗余度指标的值增加0.5(步骤S405)、以及输出自适应调整后的冗余度指标(步骤S406)。
在一些示例中,在步骤S401中,可以获取网络卡顿率、第一预设最大卡顿率和初始的冗余度指标。由此,能够基于网络卡顿率和第一预设最大卡顿率对初始的冗余度指标进行调整。
在一些示例中,在步骤S402中,第二预设最大卡顿率的值可以为第一预设最大卡顿率的值减去0.05,当网络卡顿率小于第二预设最大卡顿率时,则可以进入步骤S404;当网络卡顿率大于等于第二预设最大卡顿率时,则可以进入步骤S403。
在一些示例中,在步骤S403中,当网络卡顿率大于第一预设最大卡顿率时,则可以进入步骤S405;当网络卡顿率小于等于第一预设最大卡顿率时,则可以进入步骤S406。
在一些示例中,在步骤S404中,可以将冗余度指标的值降低0.1。在另一些示例中,可以将冗余度指标的值降低0.15或0.2。
在一些示例中,在步骤S405中,可以将冗余度指标的值增加0.5。在另一些示例中,可以将冗余度指标的值增加0.6或0.7。
在一些示例中,在步骤S406中,可以输出自适应调整后的冗余度指标。由此,能够基于自适应调整后的冗余度指标调整当前传输状态。
返回参考图2,在一些示例中,在步骤S105中,可以基于多条传输路径中每条传输路径的传输数据帧的数据包个数、传输方式和冗余度指标发送数据帧。在这种情况下,能够基于定时监测网络卡顿率和最大可容忍卡顿率确定传输路径的冗余度指标,能够提供能减少带宽浪费(也即,降低冗余度)且保证网络视频流畅(也即,降低网络卡顿率)的更符合实际应用场景的传输方式。
另外,如上所述,对于初始数据包,传输方式可以为按路径集中每条传输路径的传输数据包个数发送初始数据包。也即,对于初始数据包,可以按路径集中每条传输路径的传输的数据包个数发送初始数据包。
另外,对于重传数据包,可以基于冗余度指标对步骤S103确定的传输方式进行调整。具体地,可以基于冗余度指标更新当前传输状态,进而基于更新后的当前传输状态更新目标传输路径集。
在一些示例中,若当前传输状态为冗余重传状态且冗余度指标大于1,则可以基于该冗余度指标确定以两点分布的随机数,并基于该随机数确定是否调整当前传输状态为简单重传状态;若当前传输状态为冗余重传状态且冗余度指标不大于1,可以调整当前传输状态为简单重传状态。
在一些示例中,若当前传输状态为简单重传状态且冗余度指标不小于1,可以保持当前传输状态;若当前传输状态为简单重传状态且冗余度指标小于1,则可以基于该冗余度指标确定以两点分布的随机数,可以基于该随机数确定是否调整当前传输状态为不重传状态。
在一些示例中,可以基于更新后的当前传输状态更新目标传输路径集,利用更新后的目标传输路径集以预设重传次数重传重传数据包。具体内容参见在步骤S103中的基于传输状态确定传输方式的相关描述。
在这种情况下,通过基于重传数据包时的传输路径和冗余度指标,动态调整传输方式,能够更好地适应不同场景的业务需求。
图7是示出了本公开示例所涉及的基于冗余度指标调整当前传输状态的方法的流程图。
在一些示例中,参见图7,基于冗余度指标调整当前传输状态的方法可以包括获取当前传输状态(步骤S501)、判断冗余度指标是否大于1(步骤S502)、判断冗余度指标是否大于等于1(步骤S503)、生成服从参数为m-1的以两点分布的第一随机数(步骤S504)、生成服从参数为m的以两点分布的第二随机数(步骤S505)、判断第一随机数的值是否为0(步骤S506)、判断第二随机数的值是否为0(步骤S507)、调整当前传输状态为简单重传状态(步骤S508)、调整当前传输状态为冗余重传状态(步骤S509)、以及调整当前传输状态为不重传状态(步骤S510)。
在一些示例中,在步骤S501中,可以获取当前传输状态,若当前传输状态为冗余重传状态,则可以进入步骤S502;若当前传输状态为简单重传状态或不重传状态,则可以进入步骤S503。
在一些示例中,在步骤S502中,当冗余度指标大于1时,则可以进入步骤S504;当冗余度指标小于等于1时,则可以进入步骤S508。
在一些示例中,在步骤S503中,当冗余度指标大于等于1时,则可以进入步骤S508;当冗余度指标小于1时,则可以进入步骤S505。
在一些示例中,在步骤S504中,可以生成服从参数为m-1的以两点分布的第一随机数。
在一些示例中,在步骤S505中,可以生成服从参数为m的以两点分布的第二随机数。
在一些示例中,在步骤S506中,可以获取第一随机数的值,当第一随机数的值为0时,则可以进入步骤S508;当第一随机数的值不为0时,则可以进入步骤S509。由此,能够基于第一随机数的值调整当前传输状态。
在一些示例中,在步骤S507中,可以获取第二随机数的值,当第二随机数的值为0时,则可以进入步骤S510;当第二随机数的值不为0时,则可以进入步骤S508。由此,能够基于第二随机数的值调整当前传输状态。
在一些示例中,在步骤S508中,可以调整当前传输状态为简单重传状态。在一些示例中,在步骤S509中,可以调整当前传输状态为冗余重传状态。在一些示例中,在步骤S510中,可以调整当前传输状态为不重传状态。由此,能够灵活地调整当前传输状态。
如上所述,在一些示例中,可以基于冗余度指标调整当前传输状态。由此,能够使更新后的当前传输状态更符合实际业务场景。
在一些示例中,预设重传次数可以为0次至4次,例如,预设重传次数可以为0次、1次、2次、3次或4次。在一些示例中,优选地,预设重传次数可以为1次。在这种情况下,相较于较多的预设重传次数,能够节省网络带宽;相较于较少的预设重传次数,能够较好地提高数据包从发送端1到接收端2的完整性。
在一些示例中,可以在移动终端上发送视频数据,多条传输路径的网络通信方式可以包括移动终端中的蓝牙、WIFI、5G和LTE中的至少一种。在这种情况下,能够通过无线方式发送视频数据,从而能够提高数据传输的便捷性。
为了进一步体现本公开所涉及的调度方法的效果,本公开在使用不同的方式对视频数据进行传输,其中,包括方法1、方法2、方法3、方法4、方法5和方法6。
方法1为单路径传输模式,可以是指发送端1到接收端2只有一条传输路径,数据包通过该传输路径传输至接收端2。
方法2为切换模式,可以是指发送端1到接收端2有至少一条传输路径,发送端1选择其中传输时间最短的一条传输路径进行数据包发送。同时,其他传输路径则为闲置状态。
方法3为复用模式,可以是指发送端1到接收端2有至少一条传输路径,发送端1同时在两条不同的传输路径上传输不同的数据包。
方法4为分集模式,可以是指发送端1到接收端2有至少一条传输路径,发送端1同时在两条不同的路径上传输相同的数据包。
方法5为XLINK方法,可以是指当视频缓冲充分的情况下关闭重注入开关,利用两条传输路径对数据包进行复用模式(也即,方法3)的数据传输,而当视频缓冲不充分时,接收端2将打开重注入开关,对没有收到确认字符的数据包在传输时间较快的传输路径上进行冗余传输。
方法6为本公开所涉及的调度方法,本公开所涉及的调度方法可以基于发送间隔、丢包率和单程时延获取每条传输路径的服务质量,基于服务质量估算每条传输路径的传输时间,基于传输时间确定传输数据帧的数据包个数;基于多条传输路径对应的网络状态、数据帧的类型、以及数据包的传输次数确定传输方式;基于预设时间段内的网络卡顿率和最大可容忍卡顿率确定冗余度指标;并且基于数据包个数、传输方式和冗余度指标发送数据帧。
本公开示例给出三组基于上述方法的实验数据,视频数据的长度分别为15秒、60秒和600秒。每组的实验数据为低丢包率状态和高丢包率状态下采用上述方法的卡顿率和冗余度两个指标。其中,传输路径的服务质量会随着时间的变化而波动,每个数据包的最大重传次数为3次,实验数据为模拟1000次后取平均值得到。
图8是示出了本公开示例所涉及的低丢包率状态下传输15秒视频各方法的实验结果的对比图。图9是示出了本公开示例所涉及的低丢包率状态下传输60秒视频各方法的实验结果的对比图。图10是示出了本公开示例所涉及的低丢包率状态下传输600秒视频各方法的实验结果的对比图。
图11是示出了本公开示例所涉及的高丢包率状态下传输15秒视频各方法的实验结果的对比图。图12是示出了本公开示例所涉及的高丢包率状态下传输60秒视频各方法的实验结果的对比图。图13是示出了本公开示例所涉及的高丢包率状态下传输600秒视频各方法的实验结果的对比图。
在一些示例中,参见图8、图9和图10,在低丢包率状态下,方法4的冗余度最高,方法6的冗余度最低。
在一些示例中,方法6在短视频(也即,15秒视频和60秒视频)传输中的卡顿率高于方法4和方法2,这是因为本公开所涉及的调度方法是在保证卡顿率低于第一预设最大卡顿率的情况下,能够进一步降低冗余度。
在一些示例中,方法6在长视频(也即,600秒视频)传输中,本方法的卡顿率与方法5基本相同,高于方法4。这是因为本公开所涉及的调度方法是在保证卡顿率低于第一预设最大卡顿率的情况下,能够进一步降低冗余度。
在一些示例中,参见图11、图12和图13,在高丢包率状态下,方法1的卡顿率最高,方法6的卡顿率仅高于方法4,同时,方法4的冗余度最高。方法6的冗余度大致为方法4的一半,略高于方法1、方法2和方法3。方法2在传输60秒视频时的冗余度高于方法6,而传输15秒视频和600秒视频的冗余度都略低于方法6。方法6的卡顿率均低于方法1、方法2和方法3。
如上所述,在一些示例中,本公开所涉及的调度方法在低丢包率状态下更优。与其他方法相比,本公开在卡顿率较低的情况下,同时,具有较低的冗余度。本公开所涉及的调度方法在高丢包率状态下更优。与其他方法相比,本公开在提高较少冗余度的情况下,能够减低卡顿率,使其能够低于第一预设最大卡顿率。
因此,基于上述实验数据,本公开所涉及的调度方法更优。
本公开示例还涉及一种通信设备4。
图14是示出了本公开示例所涉及的通信设备4的结构示意图。在一些示例中,参见图14,通信设备4可以包括处理器40和存储器41。其中,处理器40以及存储器41分别连接通信总线。存储器41可以是高速RAM存储器,也可以是非易失性的存储器(non-volatilememory)。本领域技术人员可以理解,图14中示出的通信设备4的结构并不构成对本公开的限定,既可以是总线形结构,也可以是星型结构,还可以包括比图14所示的更多或更少的部件,或者组合某些部件,或者不同的部件布置。
其中,处理器40可以为通信设备4的控制中心,可以是中央处理器(CentralProcessing Unit,CPU),处理器40可以利用各种接口和线路连接整个通信设备4的各个部分,用于运行或执行存储在存储器41内的软件程序和/或模块,以及调用存储在存储器41内存储的程序代码,用于执行上述的调度方法中的全部或部分操作。
在本公开中,应该理解到,所揭露的设备,可通过其它的方式实现。例如,以上所描述的设备实施方式仅仅是示意性的,例如单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
本公开示例还涉及一种非暂态计算机可读存储介质,本领域普通技术人员可以理解上述示例中的调度方法中的全部或部分步骤是可以通过程序(指令)来指令相关的硬件来完成,该程序(指令)可以存储于计算机可读存储器(存储介质)中,计算机可读存储器可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(RandomAccessMemory,RAM)、磁盘或光盘等。
虽然以上结合附图和示例对本公开进行了具体说明,但是可以理解,上述说明不以任何形式限制本公开。本领域技术人员在不偏离本公开的实质精神和范围的情况下可以根据需要对本公开进行变形和变化,这些变形和变化均落入本公开的范围内。

Claims (8)

1.一种基于多条传输路径的视频传输的调度方法,其特征在于,包括:
获取视频数据中的数据帧,所述数据帧的类型包括关键帧类型和普通帧类型,所述数据帧包括多个数据包;基于发送间隔、丢包率和单程时延估算所述多条传输路径的传输时间,基于所述多条传输路径的传输时间确定所述多条传输路径中每条传输路径的传输所述数据帧的数据包个数;基于所述多条传输路径对应的网络状态、所述数据帧的类型、以及所述数据帧中数据包的传输次数确定传输方式,所述传输方式与传输路径的选择相关;基于预设时间段内的网络卡顿率和最大可容忍卡顿率确定冗余度指标,所述冗余度指标与冗余度相关;并且基于所述数据包个数、所述传输方式和所述冗余度指标发送所述数据帧;
所述网络状态包括高丢包率状态、中丢包率状态和低丢包率状态,所述网络状态由丢包率确定,所述网络状态中高丢包率状态、中丢包率状态和低丢包率状态对应的丢包率依次递减;
在确定所述传输方式中,对于所述数据帧中数据包为传输次数大于0的重传数据包:
若所述网络状态为高丢包率状态且所述重传数据包所属的数据帧的类型不属于关键帧类型且所述重传数据包对应的传输次数为1,则确定当前传输状态为简单重传状态,若所述数据包所属的数据帧的类型属于关键帧类型或所述重传数据包对应的传输次数大于1,则确定当前传输状态为冗余重传状态;
若所述网络状态为中丢包率状态且所述重传数据包所属的数据帧的类型不属于关键帧类型或所述重传数据包所属的数据帧的类型属于关键帧类型且所述重传数据包对应的传输次数为1,则确定当前传输状态为简单重传状态,若所述重传数据包所属的数据帧的类型属于关键帧类型且所述重传数据包对应的传输次数大于1,则确定当前传输状态为冗余重传状态;
若所述网络状态为低丢包率状态,则确定当前传输状态为简单重传状态;
基于确定的当前传输状态从所述多条传输路径中选择传输路径作为目标传输路径集,其中,若当前传输状态为简单重传状态时,所述目标传输路径集为所述多条传输路径中丢包率最低的一条传输路径,若当前传输状态为冗余重传状态时,所述目标传输路径集为所述多条传输路径中所有的传输路径;
在确定所述传输方式中,对于所述数据帧中数据包的传输次数为0的初始数据包,所述传输方式为按所述多条传输路径中每条传输路径的传输所述数据包个数发送所述初始数据包;
所述高丢包率状态表示所述多条传输路径中存在一条丢包率大于0.2的传输路径,所述中丢包率状态表示所述多条传输路径中存在一条丢包率不大于0.2且不小于0.1的传输路径,所述低丢包率状态表示所述多条传输路径中每条传输路径的丢包率均小于0.1。
2.如权利要求1所述的调度方法,其特征在于:
所述冗余度指标是指丢失的数据包在一次重传时的平均重传数量因子;若当前传输状态为冗余重传状态且所述冗余度指标大于1,则基于该冗余度指标确定以两点分布的随机数,基于该随机数确定是否调整当前传输状态为简单重传状态;若当前传输状态为冗余重传状态且所述冗余度指标不大于1,调整当前传输状态为简单重传状态;若当前传输状态为简单重传状态且所述冗余度指标不小于1,保持当前传输状态;若当前传输状态为简单重传状态且所述冗余度指标小于1,则基于该冗余度指标确定以两点分布的随机数,基于该随机数确定是否调整当前传输状态为不重传状态;基于更新后的当前传输状态更新所述目标传输路径集,利用更新后的所述目标传输路径集以预设重传次数重传所述重传数据包,所述预设重传次数不小于1。
3.如权利要求1所述的调度方法,其特征在于:
在移动终端上发送所述视频数据,所述多条传输路径的网络通信方式包括所述移动终端中的蓝牙、WIFI、5G和LTE中的至少一种。
4.如权利要求1所述的调度方法,其特征在于:
所述多条传输路径的数量为2,将所述数据帧分为两组数据包,
每条传输路径的传输时间满足公式:
其中,表示所述多条传输路径中各条传输路径的索引,/>表示第/>条传输路径传输的个数据包的所述传输时间,/>表示所述传输时间的期望,/>表示第/>条传输路径中的数据包个数,/>表示第/>条传输路径的发送间隔,/>表示第/>条传输路径的单程时延,/>表示第/>条传输路径传输的/>个数据包的重传次数中的最大值,/>表示所述最大值的期望。
5.如权利要求4所述的调度方法,其特征在于:
所述重传次数中最大值的期望满足公式:
其中,表示第/>条传输路径传输的/>个数据包的重传次数中最大值的期望,/>表示第/>条传输路径的丢包率,/>表示第/>条传输路径中的数据包个数,/>表示第/>条传输路径传输的/>个数据包的重传次数中的最大值。
6.如权利要求5所述的调度方法,其特征在于:
所述多条传输路径中每条传输路径的传输所述数据帧的数据包个数满足公式:
其中,表示第1条传输路径传输的/>个数据包的所述传输时间的期望,/>表示第2条传输路径传输的/>个数据包的所述传输时间的期望,/>表示第1条传输路径传输的/>个数据包的所述传输时间,/>表示第2条传输路径传输的/>个数据包的所述传输时间,/>表示第1条传输路径传输的数据包个数,/>表示第2条传输路径传输的数据包个数,表示所述数据帧的数据包个数。
7.一种通信设备,其特征在于,所述通信设备包括处理器和存储器,所述处理器执行所述存储器存储的计算机程序以实现如权利要求1-6中任一项所述的调度方法。
8.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储有至少一个指令,所述至少一个指令被处理器执行时实现如权利要求1-6中任一项所述的调度方法。
CN202310435460.6A 2023-04-21 2023-04-21 基于多条传输路径的视频传输的调度方法、设备及介质 Active CN116405741B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310435460.6A CN116405741B (zh) 2023-04-21 2023-04-21 基于多条传输路径的视频传输的调度方法、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310435460.6A CN116405741B (zh) 2023-04-21 2023-04-21 基于多条传输路径的视频传输的调度方法、设备及介质

Publications (2)

Publication Number Publication Date
CN116405741A CN116405741A (zh) 2023-07-07
CN116405741B true CN116405741B (zh) 2024-01-16

Family

ID=87017826

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310435460.6A Active CN116405741B (zh) 2023-04-21 2023-04-21 基于多条传输路径的视频传输的调度方法、设备及介质

Country Status (1)

Country Link
CN (1) CN116405741B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118400317B (zh) * 2024-06-25 2024-09-03 杭州流形新网络科技有限公司 基于实时视频结构驱动的多路径数据包调度方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101714908A (zh) * 2008-10-07 2010-05-26 中兴通讯股份有限公司 信道冗余发送增强多媒体终端抗丢包能力的系统和方法
CN103580773A (zh) * 2012-07-18 2014-02-12 中兴通讯股份有限公司 数据帧的传输方法及装置
CN110311758A (zh) * 2019-07-19 2019-10-08 北京清源新创科技有限公司 数据低延迟传输方法、装置及设备和存储介质
CN112821992A (zh) * 2021-01-08 2021-05-18 百果园技术(新加坡)有限公司 数据传输方法、装置、电子设备和存储介质
WO2023273763A1 (zh) * 2021-06-29 2023-01-05 华为技术有限公司 一种视频数据的传输方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10887151B2 (en) * 2018-10-05 2021-01-05 Samsung Eletrônica da Amazônia Ltda. Method for digital video transmission adopting packaging forwarding strategies with path and content monitoring in heterogeneous networks using MMT protocol, method for reception and communication system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101714908A (zh) * 2008-10-07 2010-05-26 中兴通讯股份有限公司 信道冗余发送增强多媒体终端抗丢包能力的系统和方法
CN103580773A (zh) * 2012-07-18 2014-02-12 中兴通讯股份有限公司 数据帧的传输方法及装置
CN110311758A (zh) * 2019-07-19 2019-10-08 北京清源新创科技有限公司 数据低延迟传输方法、装置及设备和存储介质
CN112821992A (zh) * 2021-01-08 2021-05-18 百果园技术(新加坡)有限公司 数据传输方法、装置、电子设备和存储介质
WO2023273763A1 (zh) * 2021-06-29 2023-01-05 华为技术有限公司 一种视频数据的传输方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
面向实际信道观测环境的时限约束无线下行调度策略;张帆, 宫傲宇, 邓磊, 刘芳, 林艳, 张一晋;《计算机科学》(第2021年09期期);全文 *

Also Published As

Publication number Publication date
CN116405741A (zh) 2023-07-07

Similar Documents

Publication Publication Date Title
EP3780542B1 (en) Data transmission method and device
EP1720318B1 (en) Apparatus and method for transmitting a multimedia data stream
RU2469482C2 (ru) Способ и система для передачи данных в сети передачи данных
US20060291395A1 (en) Packet transmission control method and apparatus
US20050053002A1 (en) Methods and devices for maximizing the throughput of TCP/IP data along wireless links
JP2002524915A (ja) 低待ち時間通信用のシステムおよび方法
KR102139721B1 (ko) 다중 경로 프로토콜에서 이중으로 네트워크 코딩을 적용하는 방법 및 그 장치
CN111327962B (zh) 播放控制方法、装置、设备及存储介质
CN116405741B (zh) 基于多条传输路径的视频传输的调度方法、设备及介质
KR20130047642A (ko) 통신 시스템에서 데이터 송수신 장치 및 방법
CN102208962B (zh) 无线数据传输方法
JP3866713B2 (ja) マルチユーザ1ポイント対多ポイント型デジタルデータ送信システムによるデータ送信の方法
CN113055285A (zh) 基于mptcp与网络编码的自适应数据传输方法
CN103312469B (zh) 组播重传中的确认代表选择方法及装置
CN113316263A (zh) 数据传输方法、装置、设备和存储介质
CN101908953A (zh) 一种对重传数据进行调度的方法及装置
JP2008118257A (ja) データ伝送システム
CN101005336A (zh) 一种适合卫星网络的自适应拥塞控制方法及系统
KR20180010531A (ko) 통신 시스템에서 전송 제어 프로토콜의 전송 버퍼 제어 방법 및 장치
KR101837637B1 (ko) 클라이언트 측 ack 조정 기반 적응 스트리밍 방법 및 장치
CN107302504B (zh) 一种基于虚拟发送队列的多路传输调度方法及系统
CN102547868B (zh) 报文调度方法、装置和网络设备
US20230362718A1 (en) Communication device and communication method
KR102140267B1 (ko) 적어도 둘 이상의 무선 경로들을 통해 비디오 데이터 프레임의 패킷을 전송하는 적응적 비디오 스트리밍 방법 및 시스템
WO2010085212A1 (en) Method and system for linear network coding in broadcast systems

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
GR01 Patent grant
GR01 Patent grant