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

文档序号:30921106发布日期:2022-07-29 22:58阅读:80来源:国知局
一种数据传输仿真方法、装置、设备及存储介质与流程

1.本技术实施例涉及仿真技术领域,尤其涉及一种数据传输仿真方法、装置、设备及存储介质。


背景技术:

2.在直播场景下,数据发送端需要通过自适应码率调节、拥塞控制等一系列传输算法来提高带宽利用率的同时尽可能地避免网络拥塞,同时保证用户观看的清晰度和流畅性。通过对传输算法进行迭代优化,能不断改善产品用户的观看体验。在传输算法迭代优化的过程中,需要进行大量的数据传输测试来验证传输算法优化的有效性,以达到适配当前产品的应用场景和用户习惯的效果。
3.通常的数据传输测试方法是直接在线上代码中调试传输算法的相关逻辑和参数,生成对应的测试包,用不同的测试设备安装测试包后分别模拟主播端和观众端,再通过网络进行视频数据的发送,观察传输算法在不同网络情景下的表现。但是上述数据传输测试方法需要测试设备模拟主播端和观众端进行视频数据的处理,导致测试效率较低。


技术实现要素:

4.本技术实施例提供一种数据传输仿真方法、装置、设备及存储介质,以解决相关技术中数据传输测试需要测试设备模拟主播端和观众端进行视频数据的处理,导致测试效率较低的技术问题,通过模拟数据传输测试的各个功能模块进行数据传输仿真测试,有效提高数据传输测试效率。
5.在第一方面,本技术实施例提供了一种数据传输仿真系统,包括编码模拟模块、发送模拟模块、自适应控制模块、接收模拟模块、网络模拟模块和接口模拟模块,其中:
6.所述网络模拟模块,配置为获取网络模拟参数,并向所述接口模拟模块发送所述网络模拟参数;以及基于所述网络模拟参数向所述接收模拟模块发送所述发送模拟模块提供的模拟视频帧;
7.所述接口模拟模块,配置为根据所述网络模拟模块提供的网络模拟参数确定网络估算信息;
8.所述自适应控制模块,配置为根据所述网络估算信息以及所述发送模拟模块提供的队列堆积信息确定编码参数;
9.所述编码模拟模块,配置为根据所述自适应控制模块提供的编码参数生成模拟视频帧;
10.所述发送模拟模块,配置为根据所述网络模拟参数,通过所述网络模拟模块向所述接收模拟模块发送所述模拟视频帧,以及向所述自适应控制模块发送队列堆积信息。
11.在第二方面,本技术实施例提供了一种数据传输仿真方法,应用于如第一方面所述的数据传输仿真系统,所述数据传输仿真系统包括编码模拟模块、发送模拟模块、自适应控制模块、接收模拟模块、网络模拟模块和接口模拟模块,所述数据传输仿真方法包括:
12.通过所述网络模拟模块,获取网络模拟参数,并向接口模拟模块发送所述网络模拟参数,以及基于所述网络模拟参数向所述接收模拟模块发送所述发送模拟模块提供的模拟视频帧;
13.通过所述接口模拟模块,根据所述网络模拟模块提供的网络模拟参数确定网络估算信息;
14.通过所述自适应控制模块,根据所述网络估算信息以及所述发送模拟模块提供的队列堆积信息确定编码参数;
15.通过所述编码模拟模块,根据所述自适应控制模块提供的编码参数生成模拟视频帧,以及通过所述发送模拟模块,根据所述网络模拟参数,通过所述网络模拟模块向所述接收模拟模块发送所述模拟视频帧,以及向所述自适应控制模块发送队列堆积信息。
16.在第三方面,本技术实施例提供了一种数据传输仿真设备,包括:存储器以及一个或多个处理器;
17.所述存储器,用于存储一个或多个程序;
18.当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第二方面所述的数据传输仿真方法。
19.在第四方面,本技术实施例提供了一种存储计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如第二方面所述的数据传输仿真方法。
20.在第五方面,本技术实施例提供了一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序存储在计算机可读存储介质中,设备的至少一个处理器从计算机可读存储介质读取并执行计算机程序,使得设备执行如第二方面所述的数据传输仿真方法。
21.本技术实施例通过网络模拟模块设置网络模拟参数,并通过接口模拟模块根据网络模拟参数确定网络估算信息,自适应控制模块根据网络估算信息和发送模拟模块在发送模拟视频帧时的队列堆积信息确定编码参数,并将编码参数发送给编码模拟模块,编码模拟模块将根据编码参数生成模拟视频帧,并提交给通过发送模拟模块,由发送模拟模块根据网络估算信息向接收模拟模块发送模拟视频帧,并向自适应控制模块发送队列堆积信息,实现对视频数据的传输仿真,不需要测试设备模拟主播端和观众端进行视频数据的处理,而是通过模拟数据传输测试的各个功能模块进行数据传输仿真测试,有效提高数据传输测试效率以及对传输算法的测试调试效率。
附图说明
22.图1是本技术实施例提供的一种数据传输仿真系统的框架示意图;
23.图2是本技术实施例提供的一种数据传输仿真方法的流程图;
24.图3是本技术实施例提供的一种数据传输仿真设备的结构示意图。
具体实施方式
25.为了使本技术的目的、技术方案和优点更加清楚,下面结合附图对本技术具体实施例作进一步的详细描述。可以理解的是,此处所描述的具体实施例仅仅用于解释本技术,
而非对本技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本技术相关的部分而非全部内容。在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时上述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。上述处理可以对应于方法、函数、规程、子例程、子程序等等。
26.图1是本技术实施例提供的一种数据传输仿真系统的框架示意图。参考图1,该数据传输仿真系统包括编码模拟模块(encoder模块)、发送模拟模块(sender模块)、自适应控制模块(controller模块)、接收模拟模块(receiver模块)、网络模拟模块(net模块)和接口模拟模块(link模块)。
27.在相关技术中,在对传输算法(例如自适应码率算法、拥塞控制算法等)进行测试和调试时,需要将传输算法配置在测试设备中,由测试设备基于传输算法进行视频数据的生成与发送,以对数据传输和传输算法进行测试和调试。例如直播场景下的主播端作为测试设备,基于自适应码率算法确定在对应网络情况下的编码参数,主播端根据编码参数生成视频数据以及相关数据处理(例如视频采集、视频渲染、数据编码、美颜处理、特效处理等),并通过真实网络发送给观众端,观众端在接收到视频数据后同样要进行相关处理(例如视频解码、视频播放等)。同时,为了测试传输算法在不同网络环境下的控制效果,还需要通过相关的限速工具对主播端和观众端的网速进行不同的限制,模拟线上各类真实的网络情景,观察传输算法在不同网络环境下的表现。上述测试方法需要测试设备对视频数据进行数据传输之外的数据处理,导致测试效率过低,且通过网络限速工具人为给定的网损并不能覆盖现实情况下复杂的网络情形,数据传输测试效果不佳。
28.为了解决上述技术问题,本方案通过搭建数据发送端的仿真环境,不需要测试设备模拟主播端和观众端进行视频数据的处理,而是通过模拟数据传输测试的各个功能模块进行数据传输仿真测试,将涉及传输算法的相关模块抽象出来并进行精简,减少其他无关模块(例如视频采集、视频渲染等模块)的对数据传输测试效率的影响,有效提高数据传输测试效率以及对传输算法的测试调试效率。通过搭建直播场景下数据发送端的仿真环境,并应用于直播场景下数据发送端的传输环境仿真,便于数据发送端的自适应码率、拥塞控制等传输算法的迭代优化和测试,有效地提高直播场景下发端相关传输算法优化迭代过程中的测试效率,可更直观快捷地分析传输算法存在的问题。
29.本方案提供的网络模拟模块配置为获取网络模拟参数,并向接口模拟模块发送网络模拟参数,以及基于网络模拟参数向接收模拟模块发送发送模拟模块提供的模拟视频帧(data)。
30.其中,本方案提供的网络模拟参数可以是包括配置带宽、丢包率和/或延时时间,网络模拟参数可根据需要测试的网络环境进行设置,或者是通过采集真实的线上网络环境(例如用户真实带宽trace)得到,并输入到网络模拟模块中。可选的,网络模拟参数中的配置带宽、丢包率和/或延时时间可以是固定的数值,也可以是随着时间进行改变(例如通过采集真实网络环境的网络参数进行确定,或者是通过人为定义的方式确定网络模拟参数在不同时间的数值),还可以是对网络模拟参数加入扰动,使得网络模拟参数在设定范围内发送波动。
31.示例性的,网络模拟模块接收对模拟网络环境进行配置的网络模拟参数,并实时向接口模拟模块发送网络模拟参数,以供接口模拟模块对网络环境进行估算。同时,网络模拟模块配置为模拟真实的线上网络,接收发送模拟模块发送的模拟视频帧,并向接收模拟模块转发模拟视频帧。
32.本方案提供的接口模拟模块配置为根据网络模拟模块提供的网络模拟参数确定网络估算信息。示例性的,接口模拟模块在接收到网络模拟模块提供的网络模拟参数时,根据网络模拟参数对网络环境进行估算并确定网络估算信息。
33.在一个可能的实施例中,接口模拟模块可根据设定的拥塞控制算法进行网络环境的估算。基于此,接口模拟模块在根据网络模拟模块提供的网络模拟参数确定网络估算信息时,可配置为:基于设定的拥塞控制算法,根据网络模拟模块提供的网络模拟参数确定网络估算信息。
34.其中,接口模拟模块可用于实现调试带宽估算、拥塞控制相关算法逻辑和参数。接口模拟模块可为发送端(发送模拟模块)和接收端(接收模拟模块)提供相关接口,并实现对网络的带宽探测、拥塞控制等功能,并可利用拥塞控制模型基于探测到的带宽来控制发送端的发送速率。例如接口模拟模块根据网络模拟模块中的网络模拟参数(例如配置带宽、丢包率、延时等)输入,基于拥塞控制算法或拥塞控制模型估算出发送速率并反馈给发送模拟模块。
35.接口模拟模块可对网络的波动(网络的波动可在网络模拟模块进行配置)进行过滤,保证数据传输效果。例如在出现探测到的带宽突然出现波动但很快又恢复的情况时,此时应该认为只是网络突然波动而不是用户的带宽变差,需要保持原来的发送速率,此时在基于拥塞控制算法估算带宽的时候会对网络进行滤波,减少网络波动对网络估算的影响。
36.示例性的,在接口模拟模块中配置有预先设定的拥塞控制算法(例如需要进行测试及调试或调试完毕的拥塞控制算法),接口模拟模块在接收到网络模拟模块提供的网络模拟参数时,基于设定的拥塞控制算法对网络模拟参数进行处理,并基于拥塞控制算法的处理结果确定网络估算信息。接口模拟模块在确定网络估算信息后,向自适应控制模块发送网络估算信息,供自适应控制模块进行编码参数的自适应调整。其中,接口模拟模块可直接向自适应控制模块发送网络估算信息,还可以是先将网络估算信息发送给发送模拟模块,由发送模拟模块向自适应控制模块发送网络估算信息。
37.本方案提供的自适应控制模块配置为根据网络估算信息以及发送模拟模块提供的队列堆积信息确定编码参数。自适应控制模块在接收到接口模拟模块或发送模拟模块发送的网络估算信息,以及发送模拟模块发送的队列堆积信息后,根据网络估算信息以及队列堆积信息实时确定编码参数。在确定编码参数后,实时将编码参数提交至编码模拟模块,以供编码模拟模块根据编码参数生成模拟视频帧。
38.在一个可能的实施例中,网络估算信息可以包括估算带宽,编码参数可以包括编码码率、编码帧率和编码分辨率中的一种或多种的组合,例如自适应控制模块可根据估算带宽确定编码码率、编码帧率和编码分辨率中的一种或多种的组合。
39.对应的,本方案提供的自适应控制模块在根据网络估算信息以及发送模拟模块提供的队列堆积信息确定编码参数时,可配置为:利用设定的自适应码率算法对应的码率自适应函数、帧率自适应函数和/或分辨率自适应函数,根据网络估算信息对应的估算带宽以
及队列堆积信息,自适应调节编码参数对应的编码码率、编码帧率和编码分辨率中的一种或多种的组合。
40.示例性的,在自适应控制模块中配置的自适应码率算法包括码率自适应函数、帧率自适应函数和分辨率自适应函数中的一种或多种的组合,自适应控制模块实时从网络模拟模块或发送模拟模块获取网络估算信息和队列堆积信息,将网络估算信息和队列堆积信息加入到码率自适应函数、帧率自适应函数和分辨率自适应函数中,通过码率自适应函数、帧率自适应函数和分辨率自适应函数自适应调节编码参数,其中编码参数包括编码码率、编码帧率和编码分辨率中的一种或多种的组合,即根据估算带宽以及队列堆积信息,利用码率自适应函数、帧率自适应函数和/或分辨率自适应函数自适应调节编码参数对应的编码码率、编码帧率和编码分辨率中的一种或多种的组合。其中,可将自适应控制模块中配置的自适应码率算法拆分为不同的决策函数,即拆分为码率自适应函数、帧率自适应函数和分辨率自适应函数,可对不同的决策函数进行单独的调试,更方便地调试自适应码率算法的各个逻辑和参数,对传输算法的调试更精准。
41.在一个可能的实施例中,在自适应控制模块确定编码参数的同时,可同时对编码参数(提供给编码模拟模块的编码码率、编码帧率和编码分辨率等)以及对应的网络模拟参数进行记录,方便调试人员对各种网络模拟参数下自适应码率算法对应的自适应控制效果进行分析,以及对传输算法进行调试。
42.本方案提供的编码模拟模块配置为根据自适应控制模块提供的编码参数生成模拟视频帧。示例性的,编码模拟模块用于模拟数据发送端(例如直播场景下的主播端),进行模拟视频帧的生成。其中,编码模块根据自适应控制模块提供的编码参数进行模拟视频帧的生成。
43.可以理解的是,本方案提供的数据传输仿真系统用于对视频数据的传输仿真以及对传输算法的测试调试,不需要关心具体的数据类型以及对数据的具体处理(例如采集视频、渲染视频、视频编解码等)。对应的,编码模拟模块在生成模拟视频帧时,可以不对生成的模拟视频帧的数据类型、处理方式等进行限制,生成的模拟视频帧满足编码参数即可,减少对数据传输测试影响较小的数据处理,不需要执行传统的数据发送端上将数据包组成帧、解码、播放等功能,可大量简化模块的实现过程。
44.在一个可能的实施例中,本方案提供的编码模拟模块在根据自适应控制模块提供的编码参数生成模拟视频帧时,其具体为:通过随机数生成器,根据自适应控制模块提供的编码参数随机生成模拟视频帧。
45.可以理解的是,由于在数据传输仿真过程中,关心的是视频数据的编码码率、编码帧率和编码分辨率等编码参数,模拟视频帧的生成不需要考虑具体的视频内容,也无需涉及视频编解码的具体过程,可在编码模拟模块中设置随机数生成器,用于模拟视频帧的生成。示例性的,编码模拟模块按照编码参数对应的编码码率、编码帧率和编码分辨率随机生成模拟视频帧。例如按照编码码率、编码帧率对应的时间间隔生成编码分辨率对应大小的模拟视频帧(其中,模拟视频帧不一定是可用于播放的视频帧,本方案根据给定的编码参数随机生成对应长度的数据作为模拟视频帧即可)。
46.由于真实的视频编码器在编码过程中所消耗的时间较长,导致数据传输测试的效率较低,而在传输算法的相关逻辑中,关心的是视频数据的码率、帧率、分辨率等编码信息,
而非具体的视频内容,也不涉及到视频编解码的具体过程,本方案通过编码模拟模块模拟真实的视频编码器输出后续数据传输所需的模拟视频帧,在仿真环境中,无需关心视频编码的帧类型,只需要通过随机数生成器根据给定的编码参数随机生成对应长度的数据作为模拟编码器的输出即可,有效提高了编码数据的输出速度,提高数据传输测试效率。
47.进一步的,本方案提供的发送模拟模块配置为根据网络模拟参数,通过网络模拟模块向接收模拟模块发送模拟视频帧,以及向自适应控制模块发送队列堆积信息。
48.示例性的,编码模拟模块在生成模拟视频帧后,将模拟视频帧发送给发送模拟模块。发送模拟模块在接收到编码模拟模块提供的模拟视频帧后,将模拟视频帧添加到发送队列中,并根据在网络模拟模块中配置的网络模拟参数向网络模拟模块发送对应数据量的模拟视频帧。网络模拟模块在接收到发送模拟模块提供的模拟视频帧后,向接收模拟模块发送模拟视频帧。其中,发送模拟模块根据网络模拟参数向网络模拟模块发送模拟视频帧,有效反映了对网络模拟参数所模拟的网络环境下数据发送情况。
49.进一步的,发送模拟模块实时确定自身发送队列中堆积的数据长度,并根据堆积的数据长度向自适应控制模块实时反馈队列堆积信息,以供自适应控制模块根据网络估算信息以及队列堆积信息确定编码参数。
50.在一个可能的实施例中,本方案提供的发送模拟模块在根据网络模拟参数,通过网络模拟模块向接收模拟模块发送模拟视频帧时,配置为:将编码模拟模块提供的模拟视频帧分解成多个视频包,并将视频包送入发送队列;以及根据网络模拟参数从发送队列中提取视频包,并通过网络模拟模块向接收模拟模块发送提取的视频包,并根据接收模拟模块反馈的接收确认信息确定是否进行视频包重传。
51.示例性的,发送模拟模块用于模拟主播端的数据发送模块,发送模拟模块维护有一个用于进行数据收发的发送队列,发送模拟模块在接收到编码模拟模块提供的模拟视频帧时,按照设定的数据包尺寸将模拟视频帧分解成多个视频包,并将视频包添加到发送队列中。
52.同时,发送模拟模块根据网络模拟模块中确定的网络模拟参数从发送队列中提取视频包,并向网络模拟模块发送提取到的视频包,由通过网络模拟模块向接收模拟模块发送提取的视频包。例如发送模拟模块根据网络模拟参数中的配置带宽从发送队列中提取对应数据量的视频包发送给网络模拟模块进行转发。通过发送模拟模块根据配置带宽选择对应数据量的视频包进行发送,实现对网络模拟参数下的网络带宽环境对数据传输的限制。
53.其中,接收模拟模块在接收到数据包后,向网络模拟模块反馈对应的接收确认信息(ack信息),由网络模拟模块向发送模拟模块转发接收确认信息。发送模拟模块根据接收到的接收确认信息确定视频包是否正确发送到接收模拟模块,并根据设定的数据重传策略确定是否进行视频包重传以及重传方式,模拟真实的数据发送端在对应网络环境下的数据传输方式。同时,发送模拟模块实时确定自身发送队列中堆积的视频包的数据长度,并根据堆积的视频包的数据长度向自适应控制模块实时反馈队列堆积信息。
54.在一个可能的实施例中,本方案提供的网络模拟参数包括丢包率和/或延时时间,对应的,本方您提供的网络模拟模块在基于网络模拟参数向接收模拟模块发送发送模拟模块提供的模拟视频帧时,可配置为:基于网络模拟参数对应的丢包率和/或延时时间,从发送模拟模块提供的视频包中确定需要发送的视频包以及发送时间;根据发送时间,向接收
模拟模块发送确定需要发送的视频包。
55.示例性的,网络模拟模块在接收到发送模拟模块发送的视频包后,根据网络模拟参数对应的丢包率从发送模拟模块提供的视频包中确定需要发送的视频包,例如确定需要丢弃的视频包和/或需要发送的视频包,以使在设定时间段内向接收模拟模块发送的视频包的丢包率(即丢弃的视频包占接收到的视频包的比例)与网络模拟参数中的丢包率接近或一致。同时,在确定需要向接收模拟模块发送的视频包后,根据网络模拟参数对应的延时时间确定视频包的发送时间,并根据发送时间(其中发送时间可以是时间间隔或时间点,例如在从发送模拟模块接收到视频包的接收时间达到发送时间对应的时间间隔时,或者当前时间到达发送时间对应的时间点时)向接收模拟模块发送对应的视频包。其中,每个视频包对应的发送时间可以是按照固定的延迟时间进行确定,还可以是根据存在波动的延迟时间进行确定。本方案根据网络模拟参数指示的丢包率和/或延时时间确定需要发送的视频包和/或发送时间,有效模拟真实网络环境下数据传输情况,提高数据传输仿真效果。
56.可选的,数据传输仿真系统在执行各个模块对应的执行函数(对应模块在实现对应功能时执行的函数)时,可基于真实的环境时间执行,也可通过全局时钟调度的方式进行。对于全局时钟调度执行各个模块对应的执行函数,本方案提供的数据传输仿真系统基于设定变量模拟环境时间,并且在编码模拟模块、发送模拟模块、自适应控制模块、接收模拟模块、网络模拟模块和接口模拟模块均遍历一次时,对设定变量进行增量操作。
57.示例性的,在数据传输仿真系统中维护一个设定变量来模拟环境时间,并在各模块中记录相关操作的时间,并且在各模块(包括编码模拟模块、发送模拟模块、自适应控制模块、接收模拟模块、网络模拟模块和接口模拟模块)遍历一次自身对应的执行函数时,对设定变量进行增量操作,表示当前环境时间已经历一个周期,而不需要等待真实时间经历一个周期。
58.例如通过维护变量ts来模拟当前环境时间(单位ms),并在各模块中记录下相关操作的时间,每遍历一次各模块的执行函数便执行ts=ts+1(即对设定变量进行增量操作),从而通过全局的时钟调度来确保各模块正常运行。例如,在编码帧率设置为20fps时,当遍历至编码模拟模块的执行函数时,若上一次变量ts与当前变量ts之间的差值大于50时,则执行编码模拟模块对应的执行函数,输出一帧模拟视频帧。本方案通过维护变量来模拟环境时间,与真实环境时间相比,仿真环境中在相同时间长度可执行更多次的执行函数,例如每秒可对各模块遍历数十万次,数据传输仿真系统的执行效率更高,数据传输仿真系统的数据传输测试效率远高于通过使用真实的数据发送端进行的数据传输测试效率。
59.值得注意的是,上述数据传输仿真系统的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明实施例的保护范围。
60.上述,通过网络模拟模块设置网络模拟参数,并通过接口模拟模块根据网络模拟参数确定网络估算信息,自适应控制模块根据网络估算信息和发送模拟模块在发送模拟视频帧时的队列堆积信息确定编码参数,并将编码参数发送给编码模拟模块,编码模拟模块将根据编码参数生成模拟视频帧,并提交给通过发送模拟模块,由发送模拟模块根据网络估算信息向接收模拟模块发送模拟视频帧,并向自适应控制模块发送队列堆积信息,实现
对视频数据的传输仿真,不需要测试设备模拟主播端和观众端进行视频数据的处理,而是通过模拟数据传输测试的各个功能模块进行数据传输仿真测试,有效提高数据传输测试效率以及对传输算法的测试调试效率。同时,基于拥塞控制算法估算带宽的时候会对网络进行滤波,减少网络波动对网络估算的影响。并通过随机数生成器随机生成对应长度的数据作为模拟编码器的输出,有效提高了编码数据的输出速度,提高数据传输测试效率。发送模拟模块根据配置带宽选择对应数据量的视频包进行发送,实现对网络模拟参数下的网络带宽环境对数据传输的限制,实现对不用网络环境下不同带宽环境的模拟,以及根据网络模拟参数指示的丢包率和/或延时时间确定需要发送的视频包和/或发送时间,有效模拟真实网络环境下数据传输情况,提高数据传输仿真效果。还可将自适应控制模块中配置的自适应码率算法拆分为不同的决策函数,可对不同的决策函数进行单独的调试,对传输算法的调试更精准。并且通过全局时钟调度的方式来模拟环境时间,数据传输仿真系统的执行效率更高,有效提高数据传输测试效率。
61.图2给出了本技术实施例提供的一种数据传输仿真方法的流程图,本技术实施例提供的数据传输仿真方法可以由上述实施例提供的数据传输仿真系统来执行,该数据传输仿真系统可以通过硬件和/或软件的方式实现,并集成在数据传输仿真设备中。其中,数据传输仿真系统包括编码模拟模块、发送模拟模块、自适应控制模块、接收模拟模块、网络模拟模块和接口模拟模块。
62.下述以数据传输仿真系统执行数据传输仿真方法为例进行描述。参考图2,该数据传输仿真方法包括:
63.s101:通过网络模拟模块,获取网络模拟参数,并向接口模拟模块发送网络模拟参数,以及基于网络模拟参数向接收模拟模块发送发送模拟模块提供的模拟视频帧。
64.s102:通过接口模拟模块,根据网络模拟模块提供的网络模拟参数确定网络估算信息。
65.在一个可能的实施例中,本方案在根据网络模拟模块提供的网络模拟参数确定网络估算信息时,包括:基于设定的拥塞控制算法,根据网络模拟模块提供的网络模拟参数确定网络估算信息。
66.s103:通过自适应控制模块,根据网络估算信息以及发送模拟模块提供的队列堆积信息确定编码参数。
67.在一个可能的实施例中,本方案提供的网络估算信息包括估算带宽,编码参数包括编码码率、编码帧率和编码分辨率中的一种或多种的组合。对应的,本方案在根据网络估算信息以及发送模拟模块提供的队列堆积信息确定编码参数时,包括:利用设定的自适应码率算法对应的码率自适应函数、帧率自适应函数和/或分辨率自适应函数,根据网络估算信息对应的估算带宽以及队列堆积信息,自适应调节编码参数对应的编码码率、编码帧率和编码分辨率中的一种或多种的组合。
68.s104:通过编码模拟模块,根据自适应控制模块提供的编码参数生成模拟视频帧,以及通过发送模拟模块,根据网络模拟参数,通过网络模拟模块向接收模拟模块发送模拟视频帧,以及向自适应控制模块发送队列堆积信息。
69.在一个可能的实施例中,本方案在根据自适应控制模块提供的编码参数生成模拟视频帧时,包括:通过随机数生成器,根据自适应控制模块提供的编码参数随机生成模拟视
频帧。
70.在一个可能的实施例中,本方案在根据网络模拟参数,通过网络模拟模块向接收模拟模块发送模拟视频帧时,包括:将编码模拟模块提供的模拟视频帧分解成多个视频包,并将视频包送入发送队列;根据网络模拟参数从发送队列中提取视频包,并通过网络模拟模块向接收模拟模块发送提取的视频包,并根据接收模拟模块反馈的接收确认信息确定是否进行视频包重传。
71.在一个可能的实施例中,本方案在提供的网络模拟参数包括丢包率和/或延时时间。对应的,本方案在基于网络模拟参数向接收模拟模块发送发送模拟模块提供的模拟视频帧,包括:基于网络模拟参数对应的丢包率和/或延时时间,从发送模拟模块提供的视频包中确定需要发送的视频包以及发送时间;根据发送时间,向接收模拟模块发送确定需要发送的视频包。
72.在一个可能的实施例中,本方案提供的数据传输仿真系统基于设定变量模拟环境时间,并且在编码模拟模块、发送模拟模块、自适应控制模块、接收模拟模块、网络模拟模块和接口模拟模块均遍历一次时,对设定变量进行增量操作。
73.本方案提供的数据传输仿真方法的具体执行步骤可参照上述实施例提供的数据传输仿真系统各模块的相关描述,本实施例不再赘述。
74.上述,通过网络模拟模块设置网络模拟参数,并通过接口模拟模块根据网络模拟参数确定网络估算信息,自适应控制模块根据网络估算信息和发送模拟模块在发送模拟视频帧时的队列堆积信息确定编码参数,并将编码参数发送给编码模拟模块,编码模拟模块将根据编码参数生成模拟视频帧,并提交给通过发送模拟模块,由发送模拟模块根据网络估算信息向接收模拟模块发送模拟视频帧,并向自适应控制模块发送队列堆积信息,实现对视频数据的传输仿真,不需要测试设备模拟主播端和观众端进行视频数据的处理,而是通过模拟数据传输测试的各个功能模块进行数据传输仿真测试,有效提高数据传输测试效率以及对传输算法的测试调试效率。
75.本技术实施例还提供了一种数据传输仿真设备,该数据传输仿真设备可集成本技术实施例提供的数据传输仿真系统。图3是本技术实施例提供的一种数据传输仿真设备的结构示意图。参考图3,该数据传输仿真设备包括:输入装置33、输出装置34、存储器32以及一个或多个处理器31;存储器32,用于存储一个或多个程序;当一个或多个程序被一个或多个处理器31执行,使得一个或多个处理器31实现如上述实施例提供的数据传输仿真方法。上述提供的数据传输仿真系统、设备和计算机可用于执行上述任意实施例提供的数据传输仿真方法,具备相应的功能和有益效果。
76.本技术实施例还提供一种存储计算机可执行指令的存储介质,计算机可执行指令在由计算机处理器执行时用于执行如上述实施例提供的数据传输仿真方法。当然,本技术实施例所提供的一种存储计算机可执行指令的存储介质,其计算机可执行指令不限于如上提供的数据传输仿真方法,还可以执行本技术任意实施例所提供的数据传输仿真方法中的相关操作。上述实施例中提供的数据传输仿真系统、设备及存储介质可执行本技术任意实施例所提供的数据传输仿真方法,未在上述实施例中详尽描述的技术细节,可参见本技术任意实施例所提供的数据传输仿真方法。
77.在一些可能的实施方式中,本公开提供的方法的各个方面还可以实现为一种程序
产品的形式,其包括程序代码,当上述程序产品在计算机设备上运行时,程序代码用于使上述计算机设备执行本说明书上述描述的根据本公开各种示例性实施方式的方法中的步骤,例如,计算机设备可以执行本公开实施例所记载的数据传输仿真方法。其中,程序产品可以采用一个或多个可读介质的任意组合。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1