CN114827301B - 一种数据传输仿真方法、装置、设备及存储介质 - Google Patents

一种数据传输仿真方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN114827301B
CN114827301B CN202210637743.4A CN202210637743A CN114827301B CN 114827301 B CN114827301 B CN 114827301B CN 202210637743 A CN202210637743 A CN 202210637743A CN 114827301 B CN114827301 B CN 114827301B
Authority
CN
China
Prior art keywords
simulation
network
module
simulation module
parameters
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
CN202210637743.4A
Other languages
English (en)
Other versions
CN114827301A (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.)
Guangzhou Baiguoyuan Information Technology Co Ltd
Original Assignee
Guangzhou Baiguoyuan Information Technology Co Ltd
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 Guangzhou Baiguoyuan Information Technology Co Ltd filed Critical Guangzhou Baiguoyuan Information Technology Co Ltd
Priority to CN202210637743.4A priority Critical patent/CN114827301B/zh
Publication of CN114827301A publication Critical patent/CN114827301A/zh
Application granted granted Critical
Publication of CN114827301B publication Critical patent/CN114827301B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/20Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Multimedia (AREA)
  • Environmental & Geological Engineering (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本申请实施例提供了一种数据传输仿真方法、装置、设备及存储介质。本申请实施例提供的技术方案通过网络模拟模块设置网络模拟参数,并通过接口模拟模块根据网络模拟参数确定网络估算信息,自适应控制模块根据网络估算信息和发送模拟模块在发送模拟视频帧时的队列堆积信息确定编码参数,并将编码参数发送给编码模拟模块,编码模拟模块将根据编码参数生成模拟视频帧,并提交给通过发送模拟模块,由发送模拟模块根据网络估算信息向接收模拟模块发送模拟视频帧,并向自适应控制模块发送队列堆积信息,实现对视频数据的传输仿真,有效提高数据传输测试效率以及对传输算法的测试调试效率。

Description

一种数据传输仿真方法、装置、设备及存储介质
技术领域
本申请实施例涉及仿真技术领域,尤其涉及一种数据传输仿真方法、装置、设备及存储介质。
背景技术
在直播场景下,数据发送端需要通过自适应码率调节、拥塞控制等一系列传输算法来提高带宽利用率的同时尽可能地避免网络拥塞,同时保证用户观看的清晰度和流畅性。通过对传输算法进行迭代优化,能不断改善产品用户的观看体验。在传输算法迭代优化的过程中,需要进行大量的数据传输测试来验证传输算法优化的有效性,以达到适配当前产品的应用场景和用户习惯的效果。
通常的数据传输测试方法是直接在线上代码中调试传输算法的相关逻辑和参数,生成对应的测试包,用不同的测试设备安装测试包后分别模拟主播端和观众端,再通过网络进行视频数据的发送,观察传输算法在不同网络情景下的表现。但是上述数据传输测试方法需要测试设备模拟主播端和观众端进行视频数据的处理,导致测试效率较低。
发明内容
本申请实施例提供一种数据传输仿真方法、装置、设备及存储介质,以解决相关技术中数据传输测试需要测试设备模拟主播端和观众端进行视频数据的处理,导致测试效率较低的技术问题,通过模拟数据传输测试的各个功能模块进行数据传输仿真测试,有效提高数据传输测试效率。
在第一方面,本申请实施例提供了一种数据传输仿真系统,包括编码模拟模块、发送模拟模块、自适应控制模块、接收模拟模块、网络模拟模块和接口模拟模块,其中:
所述网络模拟模块,配置为获取网络模拟参数,并向所述接口模拟模块发送所述网络模拟参数;以及基于所述网络模拟参数向所述接收模拟模块发送所述发送模拟模块提供的模拟视频帧;
所述接口模拟模块,配置为根据所述网络模拟模块提供的网络模拟参数确定网络估算信息;
所述自适应控制模块,配置为根据所述网络估算信息以及所述发送模拟模块提供的队列堆积信息确定编码参数;
所述编码模拟模块,配置为根据所述自适应控制模块提供的编码参数生成模拟视频帧;
所述发送模拟模块,配置为根据所述网络模拟参数,通过所述网络模拟模块向所述接收模拟模块发送所述模拟视频帧,以及向所述自适应控制模块发送队列堆积信息。
在第二方面,本申请实施例提供了一种数据传输仿真方法,应用于如第一方面所述的数据传输仿真系统,所述数据传输仿真系统包括编码模拟模块、发送模拟模块、自适应控制模块、接收模拟模块、网络模拟模块和接口模拟模块,所述数据传输仿真方法包括:
通过所述网络模拟模块,获取网络模拟参数,并向接口模拟模块发送所述网络模拟参数,以及基于所述网络模拟参数向所述接收模拟模块发送所述发送模拟模块提供的模拟视频帧;
通过所述接口模拟模块,根据所述网络模拟模块提供的网络模拟参数确定网络估算信息;
通过所述自适应控制模块,根据所述网络估算信息以及所述发送模拟模块提供的队列堆积信息确定编码参数;
通过所述编码模拟模块,根据所述自适应控制模块提供的编码参数生成模拟视频帧,以及通过所述发送模拟模块,根据所述网络模拟参数,通过所述网络模拟模块向所述接收模拟模块发送所述模拟视频帧,以及向所述自适应控制模块发送队列堆积信息。
在第三方面,本申请实施例提供了一种数据传输仿真设备,包括:存储器以及一个或多个处理器;
所述存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第二方面所述的数据传输仿真方法。
在第四方面,本申请实施例提供了一种存储计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如第二方面所述的数据传输仿真方法。
在第五方面,本申请实施例提供了一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序存储在计算机可读存储介质中,设备的至少一个处理器从计算机可读存储介质读取并执行计算机程序,使得设备执行如第二方面所述的数据传输仿真方法。
本申请实施例通过网络模拟模块设置网络模拟参数,并通过接口模拟模块根据网络模拟参数确定网络估算信息,自适应控制模块根据网络估算信息和发送模拟模块在发送模拟视频帧时的队列堆积信息确定编码参数,并将编码参数发送给编码模拟模块,编码模拟模块将根据编码参数生成模拟视频帧,并提交给通过发送模拟模块,由发送模拟模块根据网络估算信息向接收模拟模块发送模拟视频帧,并向自适应控制模块发送队列堆积信息,实现对视频数据的传输仿真,不需要测试设备模拟主播端和观众端进行视频数据的处理,而是通过模拟数据传输测试的各个功能模块进行数据传输仿真测试,有效提高数据传输测试效率以及对传输算法的测试调试效率。
附图说明
图1是本申请实施例提供的一种数据传输仿真系统的框架示意图;
图2是本申请实施例提供的一种数据传输仿真方法的流程图;
图3是本申请实施例提供的一种数据传输仿真设备的结构示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面结合附图对本申请具体实施例作进一步的详细描述。可以理解的是,此处所描述的具体实施例仅仅用于解释本申请,而非对本申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部内容。在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时上述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。上述处理可以对应于方法、函数、规程、子例程、子程序等等。
图1是本申请实施例提供的一种数据传输仿真系统的框架示意图。参考图1,该数据传输仿真系统包括编码模拟模块(Encoder模块)、发送模拟模块(Sender模块)、自适应控制模块(Controller模块)、接收模拟模块(Receiver模块)、网络模拟模块(Net模块)和接口模拟模块(Link模块)。
在相关技术中,在对传输算法(例如自适应码率算法、拥塞控制算法等)进行测试和调试时,需要将传输算法配置在测试设备中,由测试设备基于传输算法进行视频数据的生成与发送,以对数据传输和传输算法进行测试和调试。例如直播场景下的主播端作为测试设备,基于自适应码率算法确定在对应网络情况下的编码参数,主播端根据编码参数生成视频数据以及相关数据处理(例如视频采集、视频渲染、数据编码、美颜处理、特效处理等),并通过真实网络发送给观众端,观众端在接收到视频数据后同样要进行相关处理(例如视频解码、视频播放等)。同时,为了测试传输算法在不同网络环境下的控制效果,还需要通过相关的限速工具对主播端和观众端的网速进行不同的限制,模拟线上各类真实的网络情景,观察传输算法在不同网络环境下的表现。上述测试方法需要测试设备对视频数据进行数据传输之外的数据处理,导致测试效率过低,且通过网络限速工具人为给定的网损并不能覆盖现实情况下复杂的网络情形,数据传输测试效果不佳。
为了解决上述技术问题,本方案通过搭建数据发送端的仿真环境,不需要测试设备模拟主播端和观众端进行视频数据的处理,而是通过模拟数据传输测试的各个功能模块进行数据传输仿真测试,将涉及传输算法的相关模块抽象出来并进行精简,减少其他无关模块(例如视频采集、视频渲染等模块)的对数据传输测试效率的影响,有效提高数据传输测试效率以及对传输算法的测试调试效率。通过搭建直播场景下数据发送端的仿真环境,并应用于直播场景下数据发送端的传输环境仿真,便于数据发送端的自适应码率、拥塞控制等传输算法的迭代优化和测试,有效地提高直播场景下发端相关传输算法优化迭代过程中的测试效率,可更直观快捷地分析传输算法存在的问题。
本方案提供的网络模拟模块配置为获取网络模拟参数,并向接口模拟模块发送网络模拟参数,以及基于网络模拟参数向接收模拟模块发送发送模拟模块提供的模拟视频帧(Data)。
其中,本方案提供的网络模拟参数可以是包括配置带宽、丢包率和/或延时时间,网络模拟参数可根据需要测试的网络环境进行设置,或者是通过采集真实的线上网络环境(例如用户真实带宽trace)得到,并输入到网络模拟模块中。可选的,网络模拟参数中的配置带宽、丢包率和/或延时时间可以是固定的数值,也可以是随着时间进行改变(例如通过采集真实网络环境的网络参数进行确定,或者是通过人为定义的方式确定网络模拟参数在不同时间的数值),还可以是对网络模拟参数加入扰动,使得网络模拟参数在设定范围内发送波动。
示例性的,网络模拟模块接收对模拟网络环境进行配置的网络模拟参数,并实时向接口模拟模块发送网络模拟参数,以供接口模拟模块对网络环境进行估算。同时,网络模拟模块配置为模拟真实的线上网络,接收发送模拟模块发送的模拟视频帧,并向接收模拟模块转发模拟视频帧。
本方案提供的接口模拟模块配置为根据网络模拟模块提供的网络模拟参数确定网络估算信息。示例性的,接口模拟模块在接收到网络模拟模块提供的网络模拟参数时,根据网络模拟参数对网络环境进行估算并确定网络估算信息。
在一个可能的实施例中,接口模拟模块可根据设定的拥塞控制算法进行网络环境的估算。基于此,接口模拟模块在根据网络模拟模块提供的网络模拟参数确定网络估算信息时,可配置为:基于设定的拥塞控制算法,根据网络模拟模块提供的网络模拟参数确定网络估算信息。
其中,接口模拟模块可用于实现调试带宽估算、拥塞控制相关算法逻辑和参数。接口模拟模块可为发送端(发送模拟模块)和接收端(接收模拟模块)提供相关接口,并实现对网络的带宽探测、拥塞控制等功能,并可利用拥塞控制模型基于探测到的带宽来控制发送端的发送速率。例如接口模拟模块根据网络模拟模块中的网络模拟参数(例如配置带宽、丢包率、延时等)输入,基于拥塞控制算法或拥塞控制模型估算出发送速率并反馈给发送模拟模块。
接口模拟模块可对网络的波动(网络的波动可在网络模拟模块进行配置)进行过滤,保证数据传输效果。例如在出现探测到的带宽突然出现波动但很快又恢复的情况时,此时应该认为只是网络突然波动而不是用户的带宽变差,需要保持原来的发送速率,此时在基于拥塞控制算法估算带宽的时候会对网络进行滤波,减少网络波动对网络估算的影响。
示例性的,在接口模拟模块中配置有预先设定的拥塞控制算法(例如需要进行测试及调试或调试完毕的拥塞控制算法),接口模拟模块在接收到网络模拟模块提供的网络模拟参数时,基于设定的拥塞控制算法对网络模拟参数进行处理,并基于拥塞控制算法的处理结果确定网络估算信息。接口模拟模块在确定网络估算信息后,向自适应控制模块发送网络估算信息,供自适应控制模块进行编码参数的自适应调整。其中,接口模拟模块可直接向自适应控制模块发送网络估算信息,还可以是先将网络估算信息发送给发送模拟模块,由发送模拟模块向自适应控制模块发送网络估算信息。
本方案提供的自适应控制模块配置为根据网络估算信息以及发送模拟模块提供的队列堆积信息确定编码参数。自适应控制模块在接收到接口模拟模块或发送模拟模块发送的网络估算信息,以及发送模拟模块发送的队列堆积信息后,根据网络估算信息以及队列堆积信息实时确定编码参数。在确定编码参数后,实时将编码参数提交至编码模拟模块,以供编码模拟模块根据编码参数生成模拟视频帧。
在一个可能的实施例中,网络估算信息可以包括估算带宽,编码参数可以包括编码码率、编码帧率和编码分辨率中的一种或多种的组合,例如自适应控制模块可根据估算带宽确定编码码率、编码帧率和编码分辨率中的一种或多种的组合。
对应的,本方案提供的自适应控制模块在根据网络估算信息以及发送模拟模块提供的队列堆积信息确定编码参数时,可配置为:利用设定的自适应码率算法对应的码率自适应函数、帧率自适应函数和/或分辨率自适应函数,根据网络估算信息对应的估算带宽以及队列堆积信息,自适应调节编码参数对应的编码码率、编码帧率和编码分辨率中的一种或多种的组合。
示例性的,在自适应控制模块中配置的自适应码率算法包括码率自适应函数、帧率自适应函数和分辨率自适应函数中的一种或多种的组合,自适应控制模块实时从网络模拟模块或发送模拟模块获取网络估算信息和队列堆积信息,将网络估算信息和队列堆积信息加入到码率自适应函数、帧率自适应函数和分辨率自适应函数中,通过码率自适应函数、帧率自适应函数和分辨率自适应函数自适应调节编码参数,其中编码参数包括编码码率、编码帧率和编码分辨率中的一种或多种的组合,即根据估算带宽以及队列堆积信息,利用码率自适应函数、帧率自适应函数和/或分辨率自适应函数自适应调节编码参数对应的编码码率、编码帧率和编码分辨率中的一种或多种的组合。其中,可将自适应控制模块中配置的自适应码率算法拆分为不同的决策函数,即拆分为码率自适应函数、帧率自适应函数和分辨率自适应函数,可对不同的决策函数进行单独的调试,更方便地调试自适应码率算法的各个逻辑和参数,对传输算法的调试更精准。
在一个可能的实施例中,在自适应控制模块确定编码参数的同时,可同时对编码参数(提供给编码模拟模块的编码码率、编码帧率和编码分辨率等)以及对应的网络模拟参数进行记录,方便调试人员对各种网络模拟参数下自适应码率算法对应的自适应控制效果进行分析,以及对传输算法进行调试。
本方案提供的编码模拟模块配置为根据自适应控制模块提供的编码参数生成模拟视频帧。示例性的,编码模拟模块用于模拟数据发送端(例如直播场景下的主播端),进行模拟视频帧的生成。其中,编码模块根据自适应控制模块提供的编码参数进行模拟视频帧的生成。
可以理解的是,本方案提供的数据传输仿真系统用于对视频数据的传输仿真以及对传输算法的测试调试,不需要关心具体的数据类型以及对数据的具体处理(例如采集视频、渲染视频、视频编解码等)。对应的,编码模拟模块在生成模拟视频帧时,可以不对生成的模拟视频帧的数据类型、处理方式等进行限制,生成的模拟视频帧满足编码参数即可,减少对数据传输测试影响较小的数据处理,不需要执行传统的数据发送端上将数据包组成帧、解码、播放等功能,可大量简化模块的实现过程。
在一个可能的实施例中,本方案提供的编码模拟模块在根据自适应控制模块提供的编码参数生成模拟视频帧时,其具体为:通过随机数生成器,根据自适应控制模块提供的编码参数随机生成模拟视频帧。
可以理解的是,由于在数据传输仿真过程中,关心的是视频数据的编码码率、编码帧率和编码分辨率等编码参数,模拟视频帧的生成不需要考虑具体的视频内容,也无需涉及视频编解码的具体过程,可在编码模拟模块中设置随机数生成器,用于模拟视频帧的生成。示例性的,编码模拟模块按照编码参数对应的编码码率、编码帧率和编码分辨率随机生成模拟视频帧。例如按照编码码率、编码帧率对应的时间间隔生成编码分辨率对应大小的模拟视频帧(其中,模拟视频帧不一定是可用于播放的视频帧,本方案根据给定的编码参数随机生成对应长度的数据作为模拟视频帧即可)。
由于真实的视频编码器在编码过程中所消耗的时间较长,导致数据传输测试的效率较低,而在传输算法的相关逻辑中,关心的是视频数据的码率、帧率、分辨率等编码信息,而非具体的视频内容,也不涉及到视频编解码的具体过程,本方案通过编码模拟模块模拟真实的视频编码器输出后续数据传输所需的模拟视频帧,在仿真环境中,无需关心视频编码的帧类型,只需要通过随机数生成器根据给定的编码参数随机生成对应长度的数据作为模拟编码器的输出即可,有效提高了编码数据的输出速度,提高数据传输测试效率。
进一步的,本方案提供的发送模拟模块配置为根据网络模拟参数,通过网络模拟模块向接收模拟模块发送模拟视频帧,以及向自适应控制模块发送队列堆积信息。
示例性的,编码模拟模块在生成模拟视频帧后,将模拟视频帧发送给发送模拟模块。发送模拟模块在接收到编码模拟模块提供的模拟视频帧后,将模拟视频帧添加到发送队列中,并根据在网络模拟模块中配置的网络模拟参数向网络模拟模块发送对应数据量的模拟视频帧。网络模拟模块在接收到发送模拟模块提供的模拟视频帧后,向接收模拟模块发送模拟视频帧。其中,发送模拟模块根据网络模拟参数向网络模拟模块发送模拟视频帧,有效反映了对网络模拟参数所模拟的网络环境下数据发送情况。
进一步的,发送模拟模块实时确定自身发送队列中堆积的数据长度,并根据堆积的数据长度向自适应控制模块实时反馈队列堆积信息,以供自适应控制模块根据网络估算信息以及队列堆积信息确定编码参数。
在一个可能的实施例中,本方案提供的发送模拟模块在根据网络模拟参数,通过网络模拟模块向接收模拟模块发送模拟视频帧时,配置为:将编码模拟模块提供的模拟视频帧分解成多个视频包,并将视频包送入发送队列;以及根据网络模拟参数从发送队列中提取视频包,并通过网络模拟模块向接收模拟模块发送提取的视频包,并根据接收模拟模块反馈的接收确认信息确定是否进行视频包重传。
示例性的,发送模拟模块用于模拟主播端的数据发送模块,发送模拟模块维护有一个用于进行数据收发的发送队列,发送模拟模块在接收到编码模拟模块提供的模拟视频帧时,按照设定的数据包尺寸将模拟视频帧分解成多个视频包,并将视频包添加到发送队列中。
同时,发送模拟模块根据网络模拟模块中确定的网络模拟参数从发送队列中提取视频包,并向网络模拟模块发送提取到的视频包,由通过网络模拟模块向接收模拟模块发送提取的视频包。例如发送模拟模块根据网络模拟参数中的配置带宽从发送队列中提取对应数据量的视频包发送给网络模拟模块进行转发。通过发送模拟模块根据配置带宽选择对应数据量的视频包进行发送,实现对网络模拟参数下的网络带宽环境对数据传输的限制。
其中,接收模拟模块在接收到数据包后,向网络模拟模块反馈对应的接收确认信息(ACK信息),由网络模拟模块向发送模拟模块转发接收确认信息。发送模拟模块根据接收到的接收确认信息确定视频包是否正确发送到接收模拟模块,并根据设定的数据重传策略确定是否进行视频包重传以及重传方式,模拟真实的数据发送端在对应网络环境下的数据传输方式。同时,发送模拟模块实时确定自身发送队列中堆积的视频包的数据长度,并根据堆积的视频包的数据长度向自适应控制模块实时反馈队列堆积信息。
在一个可能的实施例中,本方案提供的网络模拟参数包括丢包率和/或延时时间,对应的,本方您提供的网络模拟模块在基于网络模拟参数向接收模拟模块发送发送模拟模块提供的模拟视频帧时,可配置为:基于网络模拟参数对应的丢包率和/或延时时间,从发送模拟模块提供的视频包中确定需要发送的视频包以及发送时间;根据发送时间,向接收模拟模块发送确定需要发送的视频包。
示例性的,网络模拟模块在接收到发送模拟模块发送的视频包后,根据网络模拟参数对应的丢包率从发送模拟模块提供的视频包中确定需要发送的视频包,例如确定需要丢弃的视频包和/或需要发送的视频包,以使在设定时间段内向接收模拟模块发送的视频包的丢包率(即丢弃的视频包占接收到的视频包的比例)与网络模拟参数中的丢包率接近或一致。同时,在确定需要向接收模拟模块发送的视频包后,根据网络模拟参数对应的延时时间确定视频包的发送时间,并根据发送时间(其中发送时间可以是时间间隔或时间点,例如在从发送模拟模块接收到视频包的接收时间达到发送时间对应的时间间隔时,或者当前时间到达发送时间对应的时间点时)向接收模拟模块发送对应的视频包。其中,每个视频包对应的发送时间可以是按照固定的延迟时间进行确定,还可以是根据存在波动的延迟时间进行确定。本方案根据网络模拟参数指示的丢包率和/或延时时间确定需要发送的视频包和/或发送时间,有效模拟真实网络环境下数据传输情况,提高数据传输仿真效果。
可选的,数据传输仿真系统在执行各个模块对应的执行函数(对应模块在实现对应功能时执行的函数)时,可基于真实的环境时间执行,也可通过全局时钟调度的方式进行。对于全局时钟调度执行各个模块对应的执行函数,本方案提供的数据传输仿真系统基于设定变量模拟环境时间,并且在编码模拟模块、发送模拟模块、自适应控制模块、接收模拟模块、网络模拟模块和接口模拟模块均遍历一次时,对设定变量进行增量操作。
示例性的,在数据传输仿真系统中维护一个设定变量来模拟环境时间,并在各模块中记录相关操作的时间,并且在各模块(包括编码模拟模块、发送模拟模块、自适应控制模块、接收模拟模块、网络模拟模块和接口模拟模块)遍历一次自身对应的执行函数时,对设定变量进行增量操作,表示当前环境时间已经历一个周期,而不需要等待真实时间经历一个周期。
例如通过维护变量ts来模拟当前环境时间(单位ms),并在各模块中记录下相关操作的时间,每遍历一次各模块的执行函数便执行ts=ts+1(即对设定变量进行增量操作),从而通过全局的时钟调度来确保各模块正常运行。例如,在编码帧率设置为20fps时,当遍历至编码模拟模块的执行函数时,若上一次变量ts与当前变量ts之间的差值大于50时,则执行编码模拟模块对应的执行函数,输出一帧模拟视频帧。本方案通过维护变量来模拟环境时间,与真实环境时间相比,仿真环境中在相同时间长度可执行更多次的执行函数,例如每秒可对各模块遍历数十万次,数据传输仿真系统的执行效率更高,数据传输仿真系统的数据传输测试效率远高于通过使用真实的数据发送端进行的数据传输测试效率。
值得注意的是,上述数据传输仿真系统的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明实施例的保护范围。
上述,通过网络模拟模块设置网络模拟参数,并通过接口模拟模块根据网络模拟参数确定网络估算信息,自适应控制模块根据网络估算信息和发送模拟模块在发送模拟视频帧时的队列堆积信息确定编码参数,并将编码参数发送给编码模拟模块,编码模拟模块将根据编码参数生成模拟视频帧,并提交给通过发送模拟模块,由发送模拟模块根据网络估算信息向接收模拟模块发送模拟视频帧,并向自适应控制模块发送队列堆积信息,实现对视频数据的传输仿真,不需要测试设备模拟主播端和观众端进行视频数据的处理,而是通过模拟数据传输测试的各个功能模块进行数据传输仿真测试,有效提高数据传输测试效率以及对传输算法的测试调试效率。同时,基于拥塞控制算法估算带宽的时候会对网络进行滤波,减少网络波动对网络估算的影响。并通过随机数生成器随机生成对应长度的数据作为模拟编码器的输出,有效提高了编码数据的输出速度,提高数据传输测试效率。发送模拟模块根据配置带宽选择对应数据量的视频包进行发送,实现对网络模拟参数下的网络带宽环境对数据传输的限制,实现对不用网络环境下不同带宽环境的模拟,以及根据网络模拟参数指示的丢包率和/或延时时间确定需要发送的视频包和/或发送时间,有效模拟真实网络环境下数据传输情况,提高数据传输仿真效果。还可将自适应控制模块中配置的自适应码率算法拆分为不同的决策函数,可对不同的决策函数进行单独的调试,对传输算法的调试更精准。并且通过全局时钟调度的方式来模拟环境时间,数据传输仿真系统的执行效率更高,有效提高数据传输测试效率。
图2给出了本申请实施例提供的一种数据传输仿真方法的流程图,本申请实施例提供的数据传输仿真方法可以由上述实施例提供的数据传输仿真系统来执行,该数据传输仿真系统可以通过硬件和/或软件的方式实现,并集成在数据传输仿真设备中。其中,数据传输仿真系统包括编码模拟模块、发送模拟模块、自适应控制模块、接收模拟模块、网络模拟模块和接口模拟模块。
下述以数据传输仿真系统执行数据传输仿真方法为例进行描述。参考图2,该数据传输仿真方法包括:
S101:通过网络模拟模块,获取网络模拟参数,并向接口模拟模块发送网络模拟参数,以及基于网络模拟参数向接收模拟模块发送发送模拟模块提供的模拟视频帧。
S102:通过接口模拟模块,根据网络模拟模块提供的网络模拟参数确定网络估算信息。
在一个可能的实施例中,本方案在根据网络模拟模块提供的网络模拟参数确定网络估算信息时,包括:基于设定的拥塞控制算法,根据网络模拟模块提供的网络模拟参数确定网络估算信息。
S103:通过自适应控制模块,根据网络估算信息以及发送模拟模块提供的队列堆积信息确定编码参数。
在一个可能的实施例中,本方案提供的网络估算信息包括估算带宽,编码参数包括编码码率、编码帧率和编码分辨率中的一种或多种的组合。对应的,本方案在根据网络估算信息以及发送模拟模块提供的队列堆积信息确定编码参数时,包括:利用设定的自适应码率算法对应的码率自适应函数、帧率自适应函数和/或分辨率自适应函数,根据网络估算信息对应的估算带宽以及队列堆积信息,自适应调节编码参数对应的编码码率、编码帧率和编码分辨率中的一种或多种的组合。
S104:通过编码模拟模块,根据自适应控制模块提供的编码参数生成模拟视频帧,以及通过发送模拟模块,根据网络模拟参数,通过网络模拟模块向接收模拟模块发送模拟视频帧,以及向自适应控制模块发送队列堆积信息。
在一个可能的实施例中,本方案在根据自适应控制模块提供的编码参数生成模拟视频帧时,包括:通过随机数生成器,根据自适应控制模块提供的编码参数随机生成模拟视频帧。
在一个可能的实施例中,本方案在根据网络模拟参数,通过网络模拟模块向接收模拟模块发送模拟视频帧时,包括:将编码模拟模块提供的模拟视频帧分解成多个视频包,并将视频包送入发送队列;根据网络模拟参数从发送队列中提取视频包,并通过网络模拟模块向接收模拟模块发送提取的视频包,并根据接收模拟模块反馈的接收确认信息确定是否进行视频包重传。
在一个可能的实施例中,本方案在提供的网络模拟参数包括丢包率和/或延时时间。对应的,本方案在基于网络模拟参数向接收模拟模块发送发送模拟模块提供的模拟视频帧,包括:基于网络模拟参数对应的丢包率和/或延时时间,从发送模拟模块提供的视频包中确定需要发送的视频包以及发送时间;根据发送时间,向接收模拟模块发送确定需要发送的视频包。
在一个可能的实施例中,本方案提供的数据传输仿真系统基于设定变量模拟环境时间,并且在编码模拟模块、发送模拟模块、自适应控制模块、接收模拟模块、网络模拟模块和接口模拟模块均遍历一次时,对设定变量进行增量操作。
本方案提供的数据传输仿真方法的具体执行步骤可参照上述实施例提供的数据传输仿真系统各模块的相关描述,本实施例不再赘述。
上述,通过网络模拟模块设置网络模拟参数,并通过接口模拟模块根据网络模拟参数确定网络估算信息,自适应控制模块根据网络估算信息和发送模拟模块在发送模拟视频帧时的队列堆积信息确定编码参数,并将编码参数发送给编码模拟模块,编码模拟模块将根据编码参数生成模拟视频帧,并提交给通过发送模拟模块,由发送模拟模块根据网络估算信息向接收模拟模块发送模拟视频帧,并向自适应控制模块发送队列堆积信息,实现对视频数据的传输仿真,不需要测试设备模拟主播端和观众端进行视频数据的处理,而是通过模拟数据传输测试的各个功能模块进行数据传输仿真测试,有效提高数据传输测试效率以及对传输算法的测试调试效率。
本申请实施例还提供了一种数据传输仿真设备,该数据传输仿真设备可集成本申请实施例提供的数据传输仿真系统。图3是本申请实施例提供的一种数据传输仿真设备的结构示意图。参考图3,该数据传输仿真设备包括:输入装置33、输出装置34、存储器32以及一个或多个处理器31;存储器32,用于存储一个或多个程序;当一个或多个程序被一个或多个处理器31执行,使得一个或多个处理器31实现如上述实施例提供的数据传输仿真方法。上述提供的数据传输仿真系统、设备和计算机可用于执行上述任意实施例提供的数据传输仿真方法,具备相应的功能和有益效果。
本申请实施例还提供一种存储计算机可执行指令的存储介质,计算机可执行指令在由计算机处理器执行时用于执行如上述实施例提供的数据传输仿真方法。当然,本申请实施例所提供的一种存储计算机可执行指令的存储介质,其计算机可执行指令不限于如上提供的数据传输仿真方法,还可以执行本申请任意实施例所提供的数据传输仿真方法中的相关操作。上述实施例中提供的数据传输仿真系统、设备及存储介质可执行本申请任意实施例所提供的数据传输仿真方法,未在上述实施例中详尽描述的技术细节,可参见本申请任意实施例所提供的数据传输仿真方法。
在一些可能的实施方式中,本公开提供的方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当上述程序产品在计算机设备上运行时,程序代码用于使上述计算机设备执行本说明书上述描述的根据本公开各种示例性实施方式的方法中的步骤,例如,计算机设备可以执行本公开实施例所记载的数据传输仿真方法。其中,程序产品可以采用一个或多个可读介质的任意组合。

Claims (10)

1.一种数据传输仿真系统,其特征在于,包括编码模拟模块、发送模拟模块、自适应控制模块、接收模拟模块、网络模拟模块和接口模拟模块,其中:
所述网络模拟模块,配置为获取网络模拟参数,并向所述接口模拟模块发送所述网络模拟参数;以及基于所述网络模拟参数向所述接收模拟模块发送所述发送模拟模块提供的模拟视频帧;
所述接口模拟模块,配置为根据所述网络模拟模块提供的网络模拟参数确定网络估算信息;
所述自适应控制模块,配置为根据所述网络估算信息以及所述发送模拟模块提供的队列堆积信息确定编码参数;
所述编码模拟模块,配置为根据所述自适应控制模块提供的编码参数生成模拟视频帧;
所述发送模拟模块,配置为根据所述网络模拟参数,通过所述网络模拟模块向所述接收模拟模块发送所述模拟视频帧,以及向所述自适应控制模块发送队列堆积信息。
2.根据权利要求1所述的数据传输仿真系统,其特征在于,所述接口模拟模块在根据所述网络模拟模块提供的网络模拟参数确定网络估算信息时,配置为:
基于设定的拥塞控制算法,根据所述网络模拟模块提供的网络模拟参数确定网络估算信息。
3.根据权利要求1所述的数据传输仿真系统,其特征在于,所述编码模拟模块在根据所述自适应控制模块提供的编码参数生成模拟视频帧时,配置为:
通过随机数生成器,根据所述自适应控制模块提供的编码参数随机生成模拟视频帧。
4.根据权利要求1所述的数据传输仿真系统,其特征在于,所述发送模拟模块在根据所述网络模拟参数,通过所述网络模拟模块向所述接收模拟模块发送所述模拟视频帧时,配置为:
将所述编码模拟模块提供的模拟视频帧分解成多个视频包,并将所述视频包送入发送队列;
根据所述网络模拟参数从所述发送队列中提取视频包,并通过所述网络模拟模块向所述接收模拟模块发送提取的视频包,并根据所述接收模拟模块反馈的接收确认信息确定是否进行视频包重传。
5.根据权利要求4所述的数据传输仿真系统,其特征在于,所述网络模拟参数包括丢包率和/或延时时间;
所述网络模拟模块在基于所述网络模拟参数向所述接收模拟模块发送所述发送模拟模块提供的模拟视频帧时,配置为:
基于所述网络模拟参数对应的丢包率和/或延时时间,从所述发送模拟模块提供的视频包中确定需要发送的视频包以及发送时间;
根据所述发送时间,向所述接收模拟模块发送确定需要发送的视频包。
6.根据权利要求1所述的数据传输仿真系统,其特征在于,所述网络估算信息包括估算带宽,所述编码参数包括编码码率、编码帧率和编码分辨率中的一种或多种的组合;
所述自适应控制模块在根据所述网络估算信息以及所述发送模拟模块提供的队列堆积信息确定编码参数时,配置为:
利用设定的自适应码率算法对应的码率自适应函数、帧率自适应函数和/或分辨率自适应函数,根据所述网络估算信息对应的估算带宽以及所述队列堆积信息,自适应调节编码参数对应的编码码率、编码帧率和编码分辨率中的一种或多种的组合。
7.根据权利要求1-6任一项所述的数据传输仿真系统,其特征在于,所述数据传输仿真系统基于设定变量模拟环境时间,并且在所述编码模拟模块、所述发送模拟模块、所述自适应控制模块、所述接收模拟模块、所述网络模拟模块和所述接口模拟模块均遍历一次时,对所述设定变量进行增量操作。
8.一种数据传输仿真方法,应用于数据传输仿真系统,其特征在于,所述数据传输仿真系统包括编码模拟模块、发送模拟模块、自适应控制模块、接收模拟模块、网络模拟模块和接口模拟模块,所述数据传输仿真方法包括:
通过所述网络模拟模块,获取网络模拟参数,并向接口模拟模块发送所述网络模拟参数,以及基于所述网络模拟参数向所述接收模拟模块发送所述发送模拟模块提供的模拟视频帧;
通过所述接口模拟模块,根据所述网络模拟模块提供的网络模拟参数确定网络估算信息;
通过所述自适应控制模块,根据所述网络估算信息以及所述发送模拟模块提供的队列堆积信息确定编码参数;
通过所述编码模拟模块,根据所述自适应控制模块提供的编码参数生成模拟视频帧,以及通过所述发送模拟模块,根据所述网络模拟参数,通过所述网络模拟模块向所述接收模拟模块发送所述模拟视频帧,以及向所述自适应控制模块发送队列堆积信息。
9.一种数据传输仿真设备,其特征在于,包括:存储器以及一个或多个处理器;
所述存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求8所述的数据传输仿真方法。
10.一种存储计算机可执行指令的存储介质,其特征在于,所述计算机可执行指令在由计算机处理器执行时用于执行如权利要求8所述的数据传输仿真方法。
CN202210637743.4A 2022-06-06 2022-06-06 一种数据传输仿真方法、装置、设备及存储介质 Active CN114827301B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210637743.4A CN114827301B (zh) 2022-06-06 2022-06-06 一种数据传输仿真方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210637743.4A CN114827301B (zh) 2022-06-06 2022-06-06 一种数据传输仿真方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN114827301A CN114827301A (zh) 2022-07-29
CN114827301B true CN114827301B (zh) 2023-08-29

Family

ID=82521011

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210637743.4A Active CN114827301B (zh) 2022-06-06 2022-06-06 一种数据传输仿真方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN114827301B (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009164706A (ja) * 2007-12-28 2009-07-23 Office Two:Kk ネットワークシミュレーションシステム、ネットワークシミュレーション方法及びネットワークシミュレーション用プログラム
CN103096084A (zh) * 2013-01-29 2013-05-08 海能达通信股份有限公司 一种无线传输中码率自适应调节的方法、装置及系统
CN111263184A (zh) * 2020-02-27 2020-06-09 腾讯科技(深圳)有限公司 编解码一致性检测方法、装置、设备
CN111901642A (zh) * 2020-07-31 2020-11-06 成都云格致力科技有限公司 基于强化学习的实时视频码率自适应调控方法与系统
CN112543129A (zh) * 2020-11-27 2021-03-23 北京经纬恒润科技股份有限公司 队列深度的确认方法、系统及报文模拟器
CN113286161A (zh) * 2021-05-19 2021-08-20 广州虎牙科技有限公司 一种直播方法、装置、设备及存储介质
WO2022007874A1 (zh) * 2020-07-08 2022-01-13 钉钉控股(开曼)有限公司 视频质量的评估方法、装置及电子设备
CN114401253A (zh) * 2021-11-24 2022-04-26 江苏龙源振华海洋工程有限公司 一种基于WebRTC的模拟网络中视频传输方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10127082B2 (en) * 2012-04-05 2018-11-13 Electronic Arts Inc. Distributed realization of digital content

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009164706A (ja) * 2007-12-28 2009-07-23 Office Two:Kk ネットワークシミュレーションシステム、ネットワークシミュレーション方法及びネットワークシミュレーション用プログラム
CN103096084A (zh) * 2013-01-29 2013-05-08 海能达通信股份有限公司 一种无线传输中码率自适应调节的方法、装置及系统
CN111263184A (zh) * 2020-02-27 2020-06-09 腾讯科技(深圳)有限公司 编解码一致性检测方法、装置、设备
WO2022007874A1 (zh) * 2020-07-08 2022-01-13 钉钉控股(开曼)有限公司 视频质量的评估方法、装置及电子设备
CN111901642A (zh) * 2020-07-31 2020-11-06 成都云格致力科技有限公司 基于强化学习的实时视频码率自适应调控方法与系统
CN112543129A (zh) * 2020-11-27 2021-03-23 北京经纬恒润科技股份有限公司 队列深度的确认方法、系统及报文模拟器
CN113286161A (zh) * 2021-05-19 2021-08-20 广州虎牙科技有限公司 一种直播方法、装置、设备及存储介质
CN114401253A (zh) * 2021-11-24 2022-04-26 江苏龙源振华海洋工程有限公司 一种基于WebRTC的模拟网络中视频传输方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
祝睿杰 ; 别红霞 ; .影响流媒体系统视频质量的关键参数仿真测试研究.电视技术.2009,(第S2期),全文. *

Also Published As

Publication number Publication date
CN114827301A (zh) 2022-07-29

Similar Documents

Publication Publication Date Title
US8897144B2 (en) Quality of user experience testing for video transmissions
US20160249106A1 (en) Remote Control of a Mobile Device
CN102655585B (zh) 视频会议系统及其时延测试方法、装置和系统
CN106454389B (zh) 一种直播视频的播放方法与装置
CN110138617B (zh) 数据传输质量测试方法、系统、电子设备及存储介质
US7257082B2 (en) Self-similar traffic generation
CN114827301B (zh) 一种数据传输仿真方法、装置、设备及存储介质
De Souza e Silva et al. The TANGRAMII integrated modeling environment for computer systems and networks
CN105515943B (zh) 一种即时通讯实现方法
CN108668167B (zh) 一种视频还原的方法及装置
CN108810522B (zh) 一种流媒体数据的评估方法及装置
CN111538646B (zh) 一种空间信息网络性能的测试系统及方法
JP2003140988A (ja) 動画配信サーバ負荷試験装置
US8996694B2 (en) Computer-readable recording medium, information processing method, and information processing apparatus
CN110505352B (zh) 通话质量测试方法、系统、计算机设备和计算机存储介质
CN115914512A (zh) 直播截图方法、装置、设备及存储介质
WO2023282425A3 (ko) 지능적 가로-세로 영상 변환을 위한 전자 장치, 시스템 및 방법
CN110809127B (zh) 一种基于深度模仿学习的视频通话方法及装置
CN113691799A (zh) 直播流交互控制方法及其相应的装置、设备、介质
CN107872705A (zh) 一种数据采集的方法、装置和系统
CN108377243B (zh) 一种直播流的传输方法及装置
JP6035601B2 (ja) パケットリプレイ方法
Pope et al. Quartermaster: A tool for modeling and simulating system degradation
Valiska et al. Error models simulations in transmission channels using network simulator environment
CN105007526A (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
GR01 Patent grant
GR01 Patent grant