掌桥专利:专业的专利平台
掌桥专利
首页

码率决策模型训练方法、装置、电子设备及存储介质

文献发布时间:2023-06-19 11:50:46


码率决策模型训练方法、装置、电子设备及存储介质

技术领域

本公开涉及数据处理领域,尤其涉及一种码率决策模型训练方法、装置、电子设备及存储介质。

背景技术

网络波动对于视频直播领域来说有十分巨大的影响,为了能在保持一定的清晰度的同时避免卡顿,电子设备需要根据网络波动情况来调整视频流码率。

相关技术中,视频码率控制一般采用下述方法:调整电子设备所发送的视频数据的码率,以使客户端缓存的视频时长维持在一个给定范围内,例如,将客户端的缓存的直播视频时长维持在10s-20s之间,当缓存的直播视频时长小于10s时,则降低传输的码率,降低视频的清晰度,使得相同的视频数据包中携带时长更长的直播视频;当缓存的直播视频时长大于20s时,则提高传输的码率,提高视频的清晰度,使得相同的视频数据包中携带时短更长的直播视频。

但是,上述基于定值和经验对码率调整的方法会导致码率波动剧烈且调整频繁,不仅会造成显示效果的问题,而且还会大量占用电子设备的计算资源,影响其正常运行。

发明内容

本公开提供一种码率决策模型训练方法、装置、电子设备及存储介质,以至少改善相关技术中显示效果差以及对正常运行的影响问题。本公开的技术方案如下:

根据本公开实施例的第一方面,提供一种码率决策模型训练方法,包括:

将第一时刻的网络吞吐量、所述第一时刻的仿真交互环境中的缓冲区仿真模块的时间长度变化信息以及第二时刻的目标决策码率同时输入到待训练码率决策模型中,由所述待训练码率决策模型输出多个第一决策码率对应的多个第一概率,其中,所述第二时刻为所述第一时刻的上一个码率决策时刻;

将第一概率符合第一目标条件的第一决策码率确定为所述第一时刻的目标决策码率;

将所述第一时刻的目标决策码率输入所述仿真交互环境,获取第三时刻的仿真交互环境中的缓冲区仿真模块的时间长度变化信息,其中,所述第三时刻为所述第一时刻的下一个视频数据传输时刻;

基于所述第三时刻的网络吞吐量、所述第三时刻的仿真交互环境中的缓冲区仿真模块的时间长度变化信息以及所述第一时刻的目标决策码率,获取所述第一时刻的目标决策码率的第一评价值;

基于所述第一评价值,更新所述待训练码率决策模型的模型参数,直至任一迭代过程满足第一迭代结束条件,则将满足所述第一迭代结束条件的迭代过程所得到的待训练码率决策模型确定为码率决策模型。

在一种可能的实施方式中,所述仿真交互环境还包括编码器仿真模块以及发送仿真模块,所述将所述第一时刻的目标决策码率输入所述仿真交互环境,获取第三时刻的仿真交互环境中的缓冲区仿真模块的时间长度变化信息包括:

将所述第一时刻的目标决策码率输入所述编码器仿真模块,由所述编码器仿真模块向所述缓冲区仿真模块发送所述第一时刻的目标决策码率的视频数据;

基于所述发送仿真模块所指示的速率从所述缓冲区仿真模块中提取所述视频数据;

基于所述缓冲区仿真模块在所述第一时刻和所述第三时刻存储所述视频数据的容量差,获取所述第三时刻的缓冲区仿真模块的时间长度变化信息。

在一种可能的实施方式中,所述网络吞吐量包括两个视频帧间隔的时间范围内采集到的第一网络吞吐量以及码率决策间隔的第二网络吞吐量;

所述缓冲区仿真模块的时间长度变化信息包括所述两个视频帧间隔的时间范围内采集到的第一缓冲区时间长度变化信息以及所述码率决策间隔的第二缓冲区时间长度变化信息。

在一种可能的实施方式中,所述基于所述第三时刻的网络吞吐量、所述第三时刻的仿真交互环境中的缓冲区仿真模块的时间长度变化信息以及所述第一时刻的目标决策码率,获取所述第一时刻的目标决策码率的第一评价值包括:

将所述第三时刻的网络吞吐量、所述第三时刻的仿真交互环境中的缓冲区仿真模块的时间长度变化信息以及所述第一时刻的目标决策码率同时输入到待训练决策评价模型中,由所述待训练决策评价模型输出所述第一评价值。

在一种可能的实施方式中,所述基于所述第一评价值,更新所述待训练码率决策模型的模型参数之后,所述方法还包括:

将所述第三时刻的网络吞吐量、所述第三时刻的仿真交互环境中的缓冲区仿真模块的时间长度变化信息以及所述第一时刻的目标决策码率同时输入到所述待训练码率决策模型中,得到所述第三时刻的目标决策码率;

将第四时刻的网络吞吐量、所述第四时刻的仿真交互环境中的缓冲区仿真模块的时间长度变化信息和所述第三时刻的目标决策码率同时输入到待训练决策评价模型中,所述待训练决策评价模型基于所述第四时刻的网络吞吐量、所述第四时刻的仿真交互环境中的缓冲区仿真模块的时间长度变化信息和所述第三时刻的目标决策码率调整自身模型参数,直至任一迭代过程满足第二迭代结束条件,则将满足所述第二迭代结束条件的迭代过程所得到的待训练决策评价模型作为决策评价模型,其中,所述第四时刻为所述第三时刻的下一个视频数据传输时刻。

在一种可能的实施方式中,所述将第一时刻的网络吞吐量、所述第一时刻的仿真交互环境中的缓冲区仿真模块的时间长度变化信息以及第二时刻的目标决策码率输入到待训练码率决策模型中之前,所述方法还包括:

在第一次模型训练过程中,将样本数据输入待训练码率决策模型,由所述待训练码率决策模型输出多个第二决策码率对应的多个第二概率,所述样本数据中包括历史决策码率、历史缓冲区时间长度信息、历史缓冲区时间长度变化信息以及历史网络吞吐量;

将第二概率符合第二目标条件的第二决策码率确定为目标码率;

将所述目标码率输入到仿真交互环境中,获取所述仿真交互环境中的缓冲区仿真模块的时间长度变化信息;

将所述目标码率、仿真交互环境中的缓冲区仿真模块的时间长度变化信息以及下一个视频数据传输时刻的网络带宽输入到待训练决策评价模型中,由所述待训练评价模型输出第二评价值;

基于所述第二评价值,调整所述待训练码率决策模型的模型参数。

在一种可能的实施方式中,所述第二目标条件包括所述第二概率为所述多个第二概率中最高的概率。

在一种可能的实施方式中,所述第一目标条件包括所述第一概率为所述多个第一概率中最高的概率。

根据本公开实施例的第二方面,提供一种码率决策方法,包括:

将第五时刻的网络吞吐量、所述第五时刻的缓冲区的第一参数变化信息以及第六时刻的目标决策码率同时输入到码率决策模型中,由所述码率决策模型输出多个第三决策码率对应的多个第三概率,其中,所述第六时刻为所述第五时刻的上一个码率决策时刻;

将第三概率符合第三目标条件的第三决策码率作为所述第五时刻的目标决策码率;基于所述第五时刻的目标决策码率,调整视频数据的码率,所述码率决策模型为上述码率决策模型训练方法训练出的码率决策模型。

在一种可能的实施方式中,所述基于所述第五时刻的目标决策码率,调整视频数据的码率之后,所述方法还包括:

基于所述第五时刻的目标决策码率以及第七时刻的网络吞吐量,更新所述码率决策模型,所述第七时刻为所述第五时刻的下一个视频数据传输时刻。

在一种可能的实施方式中,所述第三目标条件包括所述第三概率为所述多个第三概率中最高的概率。

根据本公开实施例的第三方面,提供一种码率决策模型训练装置,包括:

第一概率输出单元,被配置为执行将第一时刻的网络吞吐量、所述第一时刻的仿真交互环境中的缓冲区仿真模块的时间长度变化信息以及第二时刻的目标决策码率同时输入到待训练码率决策模型中,由所述待训练码率决策模型输出多个第一决策码率对应的多个第一概率,其中,所述第二时刻为所述第一时刻的上一个码率决策时刻;

第一目标决策码率确定单元,被配置为执行将第一概率符合第一目标条件的第一决策码率确定为所述第一时刻的目标决策码率;

时间长度变化信息获取单元,被配置为执行将所述第一时刻的目标决策码率输入所述仿真交互环境,获取第三时刻的仿真交互环境中的缓冲区仿真模块的时间长度变化信息,其中,所述第三时刻为所述第一时刻的下一个视频数据传输时刻;

评价值获取单元,被配置为执行基于所述第三时刻的网络吞吐量、所述第三时刻的仿真交互环境中的缓冲区仿真模块的时间长度变化信息以及所述第一时刻的目标决策码率,获取所述第一时刻的目标决策码率的第一评价值;

模型参数更新单元,基于所述第一评价值,更新所述待训练码率决策模型的模型参数,直至任一迭代过程满足第一迭代结束条件,则将满足所述第一迭代结束条件的迭代过程所得到的待训练码率决策模型确定为码率决策模型。

在一种可能的实施方式中,所述时间长度变化信息获取单元包括:

视频数据发送子单元,被配置为执行将所述第一时刻的目标决策码率输入所述编码器仿真模块,由所述编码器仿真模块向所述缓冲区仿真模块发送所述第一时刻的目标决策码率的视频数据;

视频数据提取子单元,被配置为执行基于所述发送仿真模块所指示的速率从所述缓冲区仿真模块中提取所述视频数据;

时间长度变化信息获取子单元,被配置为执行基于所述缓冲区仿真模块在所述第一时刻和所述第三时刻存储所述视频数据的容量差,获取所述第三时刻的缓冲区仿真模块的时间长度变化信息。

在一种可能的实施方式中,所述网络吞吐量包括两个视频帧间隔的时间范围内采集到的第一网络吞吐量以及码率决策间隔的第二网络吞吐量;

所述缓冲区仿真模块的时间长度变化信息包括所述两个视频帧间隔的时间范围内采集到的第一缓冲区时间长度变化信息以及所述码率决策间隔的第二缓冲区时间长度变化信息。

在一种可能的实施方式中,所述评价值获取单元被配置为执行将所述第三时刻的网络吞吐量、所述第三时刻的仿真交互环境中的缓冲区仿真模块的时间长度变化信息以及所述第一时刻的目标决策码率同时输入到待训练决策评价模型中,由所述待训练决策评价模型输出所述第一评价值。

在一种可能的实施方式中,所述装置还包括:

第三时刻目标码率决策确定单元,被配置为执行将所述第三时刻的网络吞吐量、所述第三时刻的仿真交互环境中的缓冲区仿真模块的时间长度变化信息以及所述第一时刻的目标决策码率同时输入到所述待训练码率决策模型中,得到所述第三时刻的目标决策码率;

决策评价模型确定单元,被配置为执行将第四时刻的网络吞吐量、所述第四时刻的仿真交互环境中的缓冲区仿真模块的时间长度变化信息和所述第三时刻的目标决策码率同时输入到待训练决策评价模型中,所述待训练决策评价模型基于所述第四时刻的网络吞吐量、所述第四时刻的仿真交互环境中的缓冲区仿真模块的时间长度变化信息和所述第三时刻的目标决策码率调整自身模型参数,直至任一迭代过程满足第二迭代结束条件,则将满足所述第二迭代结束条件的迭代过程所得到的待训练决策评价模型作为决策评价模型,其中,所述第四时刻为所述第三时刻的下一个视频数据传输时刻。

在一种可能的实施方式中,所述第一概率输出单元还被配置为执行在第一次模型训练过程中,将样本数据输入待训练码率决策模型,由所述待训练码率决策模型输出多个第二决策码率对应的多个第二概率,所述样本数据中包括历史决策码率、历史缓冲区时间长度信息、历史缓冲区时间长度变化信息以及历史网络吞吐量;

所述第一目标决策码率确定单元,还被配置为执行将第二概率符合第二目标条件的第二决策码率确定为目标码率;

所述时间长度变化信息获取单元,还被配置为执行将所述目标码率输入到仿真交互环境中,获取所述仿真交互环境中的缓冲区仿真模块的时间长度变化信息;

所述评价值获取单元,还被配置为执行将所述目标码率、仿真交互环境中的缓冲区仿真模块的时间长度变化信息以及下一个视频数据传输时刻的网络带宽输入到待训练决策评价模型中,由所述待训练评价模型输出第二评价值;

所述模型参数更新单元,还被配置为执行基于所述第二评价值,更新所述待训练码率决策模型的模型参数。

在一种可能的实施方式中,所述第二目标条件包括所述第二概率为所述多个第二概率中最高的概率。

在一种可能的实施方式中,所述第一目标条件包括所述第一概率为所述多个第一概率中最高的概率。

根据本公开实施例的第四方面,提供一种码率决策装置,包括:

第二概率输出单元,被配置为执行将第五时刻的网络吞吐量、所述第五时刻的缓冲区的第一参数变化信息以及第六时刻的目标决策码率同时输入到码率决策模型中,由所述码率决策模型输出多个第三决策码率对应的多个第三概率,其中,所述第六时刻为所述第五时刻的上一个码率决策时刻;

第二目标决策码率确定单元,被配置为执行将第三概率符合第三目标条件的第三决策码率确定为所述第五时刻的目标决策码率;

码率调整单元,被配置为执行基于所述第五时刻的目标决策码率,调整视频数据的码率,所述码率决策模型为权利要求12-19中任一码率决策模型训练装置训练出的码率决策模型。

在一种可能的实施方式中,所述装置还包括:

码率决策模型更新单元,被配置为执行基于所述第五时刻的目标决策码率以及第七时刻的网络吞吐量,更新所述码率决策模型,所述第七时刻为所述第五时刻的下一个视频数据传输时刻。

在一种可能的实施方式中,所述第三目标条件包括所述第三概率为所述多个第三概率中最高的概率。

根据本公开实施例的第五方面,提供一种电子设备,包括:

处理器;

用于存储所述处理器可执行指令的存储器;

其中,所述处理器被配置为执行所述指令,以实现上述码率决策模型训练方法;或码率决策方法。

根据本公开实施例的第六方面,提供一种存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行上述码率决策模型训练方法;或码率决策方法。

根据本公开实施例的第七方面,提供一种计算机程序产品,当所述计算机程序产品中的指令由电子设备的处理器执行时,使得电子设备能够执行上述码率决策模型训练方法;或码率决策方法。

本公开的实施例提供的技术方案至少带来以下有益效果:

电子设备将网络吞吐量、缓冲区仿真模块的时间长度变化信息以及上一个码率决策时刻的目标决策码率输入到待训练码率决策模型中,由待训练码率决策模型输出多个第一决策码率对应的第一概率,基于第一概率确定目标决策码率。电子设备基于目标决策码率以及下一个视频数据传输时刻的网络吞吐量和缓冲区仿真模块的时间长度变化信息来确定对于目标决策码率的第一评价值,基于第一评价值,更新待训练码率决策模型的模型参数。通过本公开提供的码率决策模型训练方法,电子设备可以基于仿真交互环境来加速待训练码率决策模型的训练进程,提高了模型的训练速度。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。

图1是根据一示例性实施例示出的一种视频数据采集类型的示意图。

图2是根据一示例性实施例示出的一种仿真交互环境结构示意图。

图3是根据一示例性实施例示出的一种码率决策模型训练方法的流程图。

图4是根据一示例性实施例示出的一种码率决策方法的流程图。

图5是根据一示例性实施例示出的一种码率决策模型训练方法的流程图。

图6是根据一示例性实施例示出的一种Actor网络结构示意图。

图7是根据一示例性实施例示出的一种Critic网络结构示意图。

图8是根据一示例性实施例示出的一种码率决策模型训练装置框图。

图9是根据一示例性实施例示出的一种码率决策装置框图。

图10是根据一示例性实施例示出的一种电子设备的结构图。

图11是根据一示例性实施例示出的本公开实施例达到的效果示例图。

具体实施方式

为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。

需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。

下面是对本公开所涉及的一些名词进行的解释:

码率是一定时长的视频块的信息大小,相同压缩比下码率较大的视频清晰度更高。

缓冲区是用来存储还未发送视频数据的区域,缓冲区的大小是有限的,在直播领域,希望控制缓冲区内存储的视频数据尽量的小,确保直播的实时性。

网络吞吐量是指在单位时间内能传输的数据量。

为了实现对码率的实时控制,解决显示效果不佳以及电子设备的计算资源占用等问题,本公开实施例可以通过训练一个码率决策模型,用以根据上一时刻的网络传输信息来预测下一时刻所需码率,下面对本公开实施例采用的模型训练方法进行介绍,该模型训练方法可以包括数据收集、训练环境创建以及训练过程。

在数据收集过程中,电子设备可以获取多个电子设备在数据传输过程中用于表示视频传输环境的相关信息,该相关信息包括但不限于历史网络吞吐量W、缓冲区时间长度信息B、历史码率决策R以及历史缓冲区时间长度变化信息ΔB。上述相关信息所对应的数据采集时间尺度可以不同,例如,数据采集时间尺度可以包括长间隔和短间隔,其中,长间隔可以为在两次码率决策之间的时间间隔,短间隔可以为相邻两个视频帧之间的时间间隔,当然,该长间隔和短间隔的具体时长可以根据实际需要进行设置,本公开实施例对此不做的限定,其中,码率决策是指对当前码率进行调整的方式。例如,数据采集的形式可以如图1所示,电子设备可以同时采集到长间隔和短间隔的网络吞吐量W,分别记为W

在训练环境创建过程中,基本模型架构可以采用任一种神经网络,例如,深度确定性策略梯度(deep deterministic policy gradient,DDPG)、异步优势动作评价算法(asynchronous advantage actor-critic,A3C)以及策略梯度(policy gradients)等,本公开实施例对此不做限定。

进一步地,考虑到实际模型训练时,若将码率决策模型置于真实环境中训练,实际交互的时间为与真实时间同步,经历的环境变化情况十分有限,为了提高训练的效率,本公开的码率决策模型训练部分可以采用仿真交互环境与模型进行互动,因此,可以创建一个仿真交互环境,来模拟实际的网络吞吐量变化情况,可以通过将收集好的真实网络吞吐量随时间变化的记录输入到仿真交互环境中,由仿真交互环境按照收集好的真实网络吞吐量将视频数据发送出去,并获取当前的与视频传输环境的相关信息。码率决策模型从仿真交互环境中获取与视频传输环境的相关信息,做出相应的码率决策,决策评价模型会根据码率决策模型输出的决策码率给出评价值,而码率决策模型做出的码率预测会影响仿真交互环境,使得仿真交互环境发生一定的变化,最终使得反馈给决策评价模型的与视频传输环境的相关信息也发生变化,整个训练的过程就是上述交互动作的重复,其中,获得的价评价值可以是有利于模型学习决策的奖励函数。示例性的,仿真交互环境的结构可以如图2所示,主要分为三个模块:编码器仿真模块、缓冲区仿真模块以及发送仿真模块。采用仿真交互环境的优点是能极大地增加模型和环境交互的速度,能短时间有效地覆盖大部分网络变化场景,提升模型训练的收敛速度。

其中,编码器仿真模块用于接收码率决策模型输出的码率预测,将对应码率的视频数据发送至缓冲区仿真模块。需要说明的是,视频数据的大小主要受码率大小的影响,同时也会受到视频数据中每一帧大小的影响,为了尽可能多地覆盖各个场景,编码器仿真模块可以将视频数据的大小编码在满足码率约束的一定范围内随机波动,同时编码器仿真模块需要设定符合直播视频实际的帧率和视频数据大小。

其中,缓冲区仿真模块用于接收和发送视频数据。可以基于一个容量有限的队列实现,缓冲区仿真模块由一定的帧间隔接收编码器仿真模块发送的视频数据,同时将视频数据发送至发送仿真模块。

其中,发送仿真模块用于接收虚拟网络吞吐量,其中虚拟网络吞吐量是用于仿真网络实际可用带宽的变化情况,虚拟网络吞吐量可以是预先收集好的真实带宽随时间变化的记录。发送仿真模块还用于按照网络吞吐量的速度限制将缓冲区仿真模块中的视频数据发送出去,从而达到按照网络吞吐量决定的速度消耗缓冲区仿真模块视频数据的目的。

在一种可能的实施方式中,编码器仿真模块可以单次向缓冲区仿真模块发送固定时长的视频数据。码率的改变会导致单个视频数据大小的变化,例如一个视频数据的时长为10s,当前视频数据的大小为50KB(kilobyte,千字节),下一时刻码率决策模型输出的码率决策为0.7,那么电子设备就将视频数据当前码率变为上个时刻的码率的0.7倍,那么相应的,一个视频数据的大小就变成了50×0.7=35KB。

在一种可能的实施方式中,网络吞吐量会随着时间的推移发生波动,基于网络吞吐量从缓冲区仿真模块中取出视频数据意味着发送仿真模块不是随意从缓冲区仿真模块中取出视频数据,视频数据的取出速度是由当前的网络吞吐量限制的。例如,当前时刻的网络吞吐量可能为1000KB/s,也就意味着发送仿真模块每秒可以从缓冲区仿真模块中取出大小为1000KB的数据,如果单个视频数据的大小为50KB,那么就相当于发送仿真模块每秒可以取出20个视频数据;如果一个视频数据的大小为25KB,那么就相当于发送仿真模块每秒可以取出40个视频数据。缓冲区仿真模块的剩余容量是时刻变化的,例如当前网络吞吐量较小,也就意味着发送仿真模块从缓冲区仿真模块中取出视频数据的速度较慢,由于编码器仿真模块向缓冲区发送的视频数据的数量是一定的,那么缓冲区仿真模块内存储的数据变多,相应的,缓冲区的剩余容量会减小。

在一种可能的实施方式中,如果缓冲区仿真模块内的视频数据达到其容量上限,则按照“先进先出”的原则将视频数据丢弃。

在训练过程中,本公开实施例提供了一种基于仿真交互环境的模型训练过程,基本构思是待训练码率决策模型基于样本数据进行码率决策,输出一个决策码率,待训练码率决策模型将决策码率输入到仿真交互环境中,仿真交互环境基于接收到的决策码率调整视频数据的发送码率。计算机设备可以获取在上述过程中仿真交互环境中缓冲区仿真模块的时间长度变化信息,将缓冲区仿真模块的时间长度变化信息、决策码率和网络吞吐量输入到待训练决策评价模型中,由待训练决策模型输出评价值,待训练码率决策模型基于评价值更新模型参数。待训练码率决策模型、仿真交互环境以及待训练决策评价模型三者的不断交互,最终得到码率决策模型,该码率决策模型具有基于视频传输环境的相关信息预测得到决策码率的能力。具体的码率决策模型的训练过程可以参见步骤501-506。

图3是根据一示例性实施例示出的一种码率决策模型训练方法的流程图,如图3所示,包括以下步骤:

在步骤301中,将第一时刻的网络吞吐量、第一时刻的仿真交互环境中的缓冲区仿真模块的时间长度变化信息以及第二时刻的目标决策码率同时输入到待训练码率决策模型中,由待训练码率决策模型输出多个第一决策码率对应的多个第一概率,其中,第二时刻为第一时刻的上一个码率决策时刻。

在步骤302中,将第一概率符合第一目标条件的第一决策码率确定为第一时刻的目标决策码率。

在步骤303中,将第一时刻的目标决策码率输入仿真交互环境,获取第三时刻的仿真交互环境中的缓冲区仿真模块的时间长度变化信息,其中,第三时刻为第一时刻的下一个视频数据传输时刻。

在步骤304中,基于第三时刻的网络吞吐量、第三时刻的仿真交互环境中的缓冲区仿真模块的时间长度变化信息以及第一时刻的目标决策码率,获取第一时刻的目标决策码率的第一评价值。

在步骤305中,基于第一评价值,更新待训练码率决策模型的模型参数,直至任一迭代过程满足第一迭代结束条件,则将满足第一迭代结束条件的迭代过程所得到的待训练码率决策模型确定为码率决策模型。

在本公开实施例中,电子设备将网络吞吐量、缓冲区仿真模块的时间长度变化信息以及上一个码率决策时刻的目标决策码率输入到待训练码率决策模型中,由待训练码率决策模型输出多个第一决策码率对应的第一概率,基于第一概率确定目标决策码率。电子设备基于目标决策码率以及下一个视频数据传输时刻的网络吞吐量和缓冲区仿真模块的时间长度变化信息来确定对于目标决策码率的第一评价值,基于第一评价值,更新待训练码率决策模型的模型参数。通过本公开提供的码率决策模型训练方法,电子设备可以基于仿真交互环境来加速待训练码率决策模型的训练进程,提高了模型的训练速度。

在一种可能的实施方式中,仿真交互环境还包括编码器仿真模块以及发送仿真模块,将第一时刻的目标决策码率输入仿真交互环境,获取第三时刻的仿真交互环境中的缓冲区仿真模块的时间长度变化信息包括:

将第一时刻的目标决策码率输入编码器仿真模块,由编码器仿真模块向缓冲区仿真模块发送第一时刻的目标决策码率的视频数据。

基于发送仿真模块所指示的速率从缓冲区仿真模块中提取视频数据。

基于缓冲区仿真模块在第一时刻和第三时刻存储视频数据的容量差,获取第三时刻的缓冲区仿真模块的时间长度变化信息。

在一种可能的实施方式中,网络吞吐量包括两个视频帧间隔的时间范围内采集到的第一网络吞吐量以及码率决策间隔的第二网络吞吐量。

缓冲区仿真模块的时间长度变化信息包括两个视频帧间隔的时间范围内采集到的第一缓冲区时间长度变化信息以及码率决策间隔的第二缓冲区时间长度变化信息。

在一种可能的实施方式中,基于第三时刻的网络吞吐量、第三时刻的仿真交互环境中的缓冲区仿真模块的时间长度变化信息以及第一时刻的目标决策码率,获取第一时刻的目标决策码率的第一评价值包括:

将第三时刻的网络吞吐量、第三时刻的仿真交互环境中的缓冲区仿真模块的时间长度变化信息以及第一时刻的目标决策码率同时输入到待训练决策评价模型中,由待训练决策评价模型输出第一评价值。

在一种可能的实施方式中,基于第一评价值,更新待训练码率决策模型的模型参数之后,方法还包括:

将第三时刻的网络吞吐量、第三时刻的仿真交互环境中的缓冲区仿真模块的时间长度变化信息以及第一时刻的目标决策码率同时输入到待训练码率决策模型中,得到第三时刻的目标决策码率。

将第四时刻的网络吞吐量、第四时刻的仿真交互环境中的缓冲区仿真模块的时间长度变化信息和第三时刻的目标决策码率同时输入到待训练决策评价模型中,待训练决策评价模型基于第四时刻的网络吞吐量、第四时刻的仿真交互环境中的缓冲区仿真模块的时间长度变化信息和第三时刻的目标决策码率调整自身模型参数,直至任一迭代过程满足第二迭代结束条件,则将满足第二迭代结束条件的迭代过程所得到的待训练决策评价模型作为决策评价模型,其中,第四时刻为第三时刻的下一个视频数据传输时刻。

在一种可能的实施方式中,将第一时刻的网络吞吐量、第一时刻的仿真交互环境中的缓冲区仿真模块的时间长度变化信息以及第二时刻的目标决策码率输入到待训练码率决策模型中之前,方法还包括:

在第一次模型训练过程中,将样本数据输入待训练码率决策模型,由待训练码率决策模型输出多个第二决策码率对应的多个第二概率,样本数据中包括历史决策码率、历史缓冲区时间长度信息、历史缓冲区时间长度变化信息以及历史网络吞吐量。

将第二概率符合第二目标条件的第二决策码率确定为目标码率。

将目标码率输入到仿真交互环境中,获取仿真交互环境中的缓冲区仿真模块的时间长度变化信息。

将目标码率、仿真交互环境中的缓冲区仿真模块的时间长度变化信息以及下一个视频数据传输时刻的网络带宽输入到待训练决策评价模型中,由待训练评价模型输出第二评价值。

基于第二评价值,更新待训练码率决策模型的模型参数。

在一种可能的实施方式中,第二目标条件包括第二概率为多个第二概率中最高的概率。

在一种可能的实施方式中,第一目标条件包括第一概率为多个第一概率中最高的概率。

图4是根据一示例性实施例示出的一种码率决策方法的流程图,如图4所示,包括以下步骤:

在步骤401中,将第五时刻的网络吞吐量、第五时刻的缓冲区的第一参数变化信息以及第六时刻的目标决策码率同时输入到码率决策模型中,由码率决策模型输出多个第三决策码率对应的多个第三概率,其中,第六时刻为第五时刻的上一个码率决策时刻。

在步骤402中,将第三概率符合第三目标条件的第三决策码率确定为第五时刻的目标决策码率。

在步骤403中,基于第五时刻的目标决策码率,调整视频数据的码率,码率决策模型为上述码率决策模型训练方法训练出的码率决策模型。

在一种可能的实施方式中,基于第五时刻的目标决策码率,调整视频数据的码率之后,方法还包括:

基于第五时刻的目标决策码率以及第七时刻的网络吞吐量,更新码率决策模型,第七时刻为第五时刻的下一个视频数据传输时刻。

在一种可能的实施方式中,第三目标条件包括第三概率为多个第三概率中最高的概率。

在本公开实施例中,训练过后的码率决策模型可以基于历史网络吞吐量、历史缓冲区的第一参数变化信息以及上一个码率决策时刻的目标决策码率来确定当前时刻的目标决策码率,电子设备可以基于当前时刻的目标决策码率调整视频数据的码率,利用了训练过后的码率决策模型的鲁棒性和泛化能力,提升了视频数据传输的稳定性,最大化的利用了当前的网络吞吐量,提升了视频的显示效果。

图5是根据一示例性实施例示出的一种码率决策模型训练方法的流程图,如图5所示,方法应用于电子设备中,包括以下步骤:

在步骤501中,电子设备将第一时刻的网络吞吐量、第一时刻的仿真交互环境中的缓冲区仿真模块的时间长度变化信息以及第二时刻的目标决策码率同时输入到待训练码率决策模型中,由待训练码率决策模型输出多个第一决策码率对应的多个第一概率,其中,第二时刻为第一时刻的上一个码率决策时刻。

在一种可能的实施方式中,电子设备可以将第一时刻的网络吞吐量、第一时刻的仿真交互环境中的缓冲区仿真模块的时间长度变化信息以及第二时刻的目标决策码率组成一个第一参数矩阵,并将第一参数矩阵输入到待训练码率决策模型中,待训练码率决策模型基于至少一个权重矩阵与参数矩阵相乘,得到多个第一特征向量,将多个第一特征向量映射为多个第一概率。例如,例如第一时刻的网络吞吐量W为500Kbps、第二时刻的目标决策码率R为0.7、第二时刻的缓冲区仿真模块的时间长度变化信息ΔB为3%,电子设备可以生成一个一维的第一参数矩阵[500,0.7,3]

需要说明的是,第一时刻和第二时刻之间的间隔可以是提前设置好的,定时直接切换,保证直播的实时性,当然也可以是电子设备实时确定的间隔,本公开实施例对此不做限定。第一决策码率可以为码率调整的倍数也可以为具体的码率值,若第一决策码率为码率调整的倍数,那么码率决策模型输出的第一概率对应于不同的码率调整倍数,例如0.7,0.8,0.9,1.0,1.05,1.1以及1.15,每个数字的为将当前的视频数据的码率调整为上一时刻的倍数,如果0.7对应的第一概率最高,那么电子设备可以指示编码器仿真模块将当前视频数据的码率调整为上一时刻的0.7倍。

在步骤502中,电子设备将第一概率符合第一目标条件的第一决策码率确定为第一时刻的目标决策码率。将第一时刻的目标决策码率输入仿真交互环境,获取第三时刻的仿真交互环境中的缓冲区仿真模块的时间长度变化信息,其中,第三时刻为第一时刻的下一个视频数据传输时刻。

其中,第一目标条件包括第一概率为多个第一概率中最高的概率。电子设备可以将第一时刻的目标决策码率输入到仿真交互环境中,由仿真交互环境基于第一时刻的目标决策码率对视频数据的码率进行调整,得到第三时刻的仿真交互环境中的缓冲区仿真模块的时间长度变化信息。

在一种可能的实施方式中,仿真交互环境还包括编码器仿真模块以及发送仿真模块,电子设备将第一时刻的目标决策码率输入编码器仿真模块,由编码器仿真模块向缓冲区仿真模块发送第一时刻的目标决策码率的视频数据。电子设备可以基于发送仿真模块所指示的速率从缓冲区仿真模块中提取视频数据。电子设备可以基于缓冲区仿真模块在第一时刻和第三时刻存储视频数据的容量差,获取第三时刻的缓冲区仿真模块的时间长度变化信息。

在步骤503中,电子设备将第三时刻的网络吞吐量、第三时刻的仿真交互环境中的缓冲区仿真模块的时间长度变化信息以及第一时刻的目标决策码率同时输入到待训练决策评价模型中,由待训练决策评价模型输出第一评价值。

在一种可能的实施方式中,电子设备可以将第三时刻的网络吞吐量、第三时刻的仿真交互环境中的缓冲区仿真模块的时间长度变化信息以及第一时刻的目标决策码率组成第二参数矩阵。并将第二参数矩阵输入到待训练决策评价模型中,由待训练决策评价模型基于至少一个权重矩阵进行运算,得到多个第二特征向量,将多个第二特征向量映射为第一评价值。例如,例如第三时刻的网络吞吐量W为450Kbps、第一时刻的目标决策码率R为0.5、第三时刻的缓冲区仿真模块的时间长度变化信息ΔB为2%,电子设备可以生成一个一维的第二参数矩阵[450,0.5,2]

在步骤504中,电子设备基于第一评价值,更新待训练码率决策模型的模型参数,直至任一迭代过程满足第一迭代结束条件,则将满足第一迭代结束条件的迭代过程所得到的待训练码率决策模型确定为码率决策模型。

在一种可能的实施方式中,电子设备可以基于第一评价值,对待训练码率决策模型的至少一个权重矩阵进行更新,直至待训练码率决策模型的损失函数的函数值低于目标阈值,或迭代次数达到目标次数时,待训练码率决策模型训练完成,得到码率决策模型。

在步骤505中,电子设备将第三时刻的网络吞吐量、第三时刻的仿真交互环境中的缓冲区仿真模块的时间长度变化信息以及第一时刻的目标决策码率同时输入到待训练码率决策模型中,得到第三时刻的目标决策码率。

在步骤506中,电子设备将第四时刻的网络吞吐量、第四时刻的仿真交互环境中的缓冲区仿真模块的时间长度变化信息和第三时刻的目标决策码率同时输入到待训练决策评价模型中,待训练决策评价模型基于第四时刻的网络吞吐量、第四时刻的仿真交互环境中的缓冲区仿真模块的时间长度变化信息和第三时刻的目标决策码率调整自身模型参数,直至任一迭代过程满足第二迭代结束条件,则将满足第二迭代结束条件的迭代过程所得到的待训练决策评价模型作为决策评价模型,其中,第四时刻为第三时刻的下一个视频数据传输时刻。

在步骤501-步骤506之前,在第一模型训练过程中,由于还不存在仿真交互环境中各个部分的参数信息,电子设备可以收集样本数据作为待训练码率决策模型的第一次输入,其中,样本数据中包括历史决策码率,历史缓冲区时间长度信息、历史缓冲区时间长度变化信息以及历史网络吞吐量。样本数据可以来源于用户端,也可以来自于服务器,本公开实施例对于样本数据的来源不做限定。

在一种可能的实施方式中,电子设备可以同时基于不同的网络带宽训练得到多个码率决策模型,最终基于训练得到的多个码率决策模型,得到主码率决策模型的参数。例如,多个码率决策模型可以分别获取第一预设数量的训练参数,训练参数中至少包括表示视频传输环境的相关信息以及与表示视频传输环境的相关信息对应的评价值,多个码率决策模型分别将第一预设数量的训练参数发送至主码率决策模型,主码率决策模型基于多个第一预设数量的训练参数更新自身模型参数。主码率决策模型更新自身模型参数之后,可以将更新后的模型参数分别发送给多个码率决策模型,多个码率决策模型分别将自身的模型参数替换为接收到的模型参数,随后继续在不同的仿真交互环境中训练,重复上述步骤,直至主码率决策模型更新自身模型参数的次数达到预设次数时,完成训练。其中,预设次数可以根据实际需要进行设置,本公开实施例对此不做限定。需要说明的是,本公开实施例提供的主码率决策模型除了在达到预设次数的训练之后停止训练,也可以基于模型的损失函数来确定停止训练的时机,本公开实施例对此不做限定。

下面以采用异步更新强化模型(actor-critic)为例说明本公开实施例提供的码率决策模型的训练方法。码率决策模型可以为Actor(策略)网络、决策评价模型可以为Critic(价值)网络,Critic网络用于基于在不同网络吞吐量下选择不同码率时所得到的仿真交互环境中的缓冲区仿真模块的时间长度变化信息,来输出评价值,而Actor网络基于Critic网络输出的评价值调整模型参数,Critic网络基于改变码率后的当前时刻的用于表示视频传输环境的相关信息和上一时刻的决策码率,调整模型参数。也就是说,Actor网络利用Critic网络的输出的评价值作为训练目标。具体的,Actor网络可以用如下公式(1)调整自身参数,Critic网络可以利用如下公式(2)调整自身参数:

其中,θ

需要说明的是,在进行码率决策时,可以仅有Actor网络处于激活状态,而在训练状态下Actor网络和Critic网络同时处于激活状态。

在一种可能的实施方式中,Critic网络与Actor网络的最后一个输出层可以是不同的,Critic网络的最后一个输出层为一个没有激活函数的线性输出层;Actor网络的最后一个输出层为一个SoftMax输出层。除了最后一个输出层,Critic网络和Actor网络的其余结构可以相同。示例性的,Actor网络的结构可以如图6所示,Critic网络的结构可以如图7所示。需要说明的是,Critic网络与Actor网络的结构可以基于实际情况进行设计,本公开实施例对此不做限定。

在本公开实施例中,电子设备可以基于仿真交互环境对码率决策模型进行训练,训练过程中利用了码率决策模型的输出改变仿真交互环境中多个组成部分参数,决策评价模型基于改变后的仿真交互环境的参数变化情况以及与视频传输环境的相关信息对码率决策模型的输出的决策码率做出评价,码率决策模型基于决策评价模型的评价值调整模型参数,三者之间的连续交互可以节约训练时间,大大提高了码率决策模型的训练速度。

图8是根据一示例性实施例示出的一种码率决策模型训练装置框图。参照图8,该装置包括第一概率输出单元801,第一目标决策码率确定单元802、时间长度变化信息确定单元803、评价值获取单元804和模型参数更新单元805。

第一概率输出单元801,被配置为执行将第一时刻的网络吞吐量、第一时刻的仿真交互环境中的缓冲区仿真模块的时间长度变化信息以及第二时刻的目标决策码率同时输入到待训练码率决策模型中,由待训练码率决策模型输出多个第一决策码率对应的多个第一概率,其中,第二时刻为第一时刻的上一个码率决策时刻。

第一目标决策码率确定单元802,被配置为执行将第一概率符合第一目标条件的第一决策码率确定为第一时刻的目标决策码率。

时间长度变化信息获取单元803,被配置为执行将第一时刻的目标决策码率输入仿真交互环境,获取第三时刻的仿真交互环境中的缓冲区仿真模块的时间长度变化信息,其中,第三时刻为第一时刻的下一个视频数据传输时刻。

评价值获取单元804,被配置为执行基于第三时刻的网络吞吐量、第三时刻的仿真交互环境中的缓冲区仿真模块的时间长度变化信息以及第一时刻的目标决策码率,获取第一时刻的目标决策码率的第一评价值。

模型参数更新单元805,基于第一评价值,更新待训练码率决策模型的模型参数,直至任一迭代过程满足第一迭代结束条件,则将满足第一迭代结束条件的迭代过程所得到的待训练码率决策模型确定为码率决策模型。

在一种可能的实施方式中,时间长度变化信息获取单元包括:

视频数据发送子单元,被配置为执行将第一时刻的目标决策码率输入编码器仿真模块,由编码器仿真模块向缓冲区仿真模块发送第一时刻的目标决策码率的视频数据。

视频数据提取子单元,被配置为执行基于发送仿真模块所指示的速率从缓冲区仿真模块中提取视频数据。

时间长度变化信息获取子单元,被配置为执行基于缓冲区仿真模块在第一时刻和第三时刻存储视频数据的容量差,获取第三时刻的缓冲区仿真模块的时间长度变化信息。

在一种可能的实施方式中,网络吞吐量包括两个视频帧间隔的时间范围内采集到的第一网络吞吐量以及码率决策间隔的第二网络吞吐量。

缓冲区仿真模块的时间长度变化信息包括两个视频帧间隔的时间范围内采集到的第一缓冲区时间长度变化信息以及码率决策间隔的第二缓冲区时间长度变化信息。

在一种可能的实施方式中,评价值获取单元被配置为执行将第三时刻的网络吞吐量、第三时刻的仿真交互环境中的缓冲区仿真模块的时间长度变化信息以及第一时刻的目标决策码率同时输入到待训练决策评价模型中,由待训练决策评价模型输出第一评价值。

在一种可能的实施方式中,装置还包括:

第三时刻目标码率决策确定单元,被配置为执行将第三时刻的网络吞吐量、第三时刻的仿真交互环境中的缓冲区仿真模块的时间长度变化信息以及第一时刻的目标决策码率同时输入到待训练码率决策模型中,得到第三时刻的目标决策码率。

决策评价模型确定单元,被配置为执行将第四时刻的网络吞吐量、第四时刻的仿真交互环境中的缓冲区仿真模块的时间长度变化信息和第三时刻的目标决策码率同时输入到待训练决策评价模型中,待训练决策评价模型基于第四时刻的网络吞吐量、第四时刻的仿真交互环境中的缓冲区仿真模块的时间长度变化信息和第三时刻的目标决策码率调整自身模型参数,直至任一迭代过程满足第二迭代结束条件,则将满足第二迭代结束条件的迭代过程所得到的待训练决策评价模型作为决策评价模型,其中,第四时刻为第三时刻的下一个视频数据传输时刻。

在一种可能的实施方式中,第一概率输出单元还被配置为执行在第一次模型训练过程中,将样本数据输入待训练码率决策模型,由待训练码率决策模型输出多个第二决策码率对应的多个第二概率,样本数据中包括历史决策码率、历史缓冲区时间长度信息、历史缓冲区时间长度变化信息以及历史网络吞吐量。

第一目标决策码率确定单元,还被配置为执行将第二概率符合第二目标条件的第二决策码率确定为目标码率。

时间长度变化信息获取单元,还被配置为执行将目标码率输入到仿真交互环境中,获取仿真交互环境中的缓冲区仿真模块的时间长度变化信息。

评价值获取单元,还被配置为执行将目标码率、仿真交互环境中的缓冲区仿真模块的时间长度变化信息以及下一个视频数据传输时刻的网络带宽输入到待训练决策评价模型中,由待训练评价模型输出第二评价值。

模型参数更新单元,还被配置为执行基于第二评价值,更新待训练码率决策模型的模型参数。

在一种可能的实施方式中,第二目标条件包括第二概率为多个第二概率中最高的概率。

在一种可能的实施方式中,第一目标条件包括第一概率为多个第一概率中最高的概率。

在本公开实施例中,电子设备将网络吞吐量、缓冲区仿真模块的时间长度变化信息以及上一个码率决策时刻的目标决策码率输入到待训练码率决策模型中,由待训练码率决策模型输出多个第一决策码率对应的第一概率,基于第一概率确定目标决策码率。电子设备基于目标决策码率以及下一个视频数据传输时刻的网络吞吐量和缓冲区仿真模块的时间长度变化信息来确定对于目标决策码率的第一评价值,基于第一评价值,更新待训练码率决策模型的模型参数。通过本公开提供的码率决策模型训练方法,电子设备可以基于仿真交互环境来加速待训练码率决策模型的训练进程,提高了模型的训练速度。

关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

图9是根据一示例性实施例示出的一种码率决策装置框图。参照图9,该装置包括第二概率输出单元901、第二目标决策码率确定单元902和码率调整单元903。

第二概率输出单元901,被配置为执行将第五时刻的网络吞吐量、第五时刻的缓冲区的第一参数变化信息以及第六时刻的目标决策码率同时输入到码率决策模型中,由码率决策模型输出多个第三决策码率对应的多个第三概率,其中,第六时刻为第五时刻的上一个码率决策时刻。

第二目标决策码率确定单元902,被配置为执行将第三概率符合第三目标条件的第三决策码率确定为第五时刻的目标决策码率。

码率调整单元903,被配置为执行基于第五时刻的目标决策码率,调整视频数据的码率,码率决策模型为上述决策模型训练装置训练出的码率决策模型。

在一种可能的实施方式中,装置还包括:

码率决策模型更新单元,被配置为执行基于第五时刻的目标决策码率以及第七时刻的网络吞吐量,更新码率决策模型,第七时刻为第五时刻的下一个视频数据传输时刻。

在一种可能的实施方式中,第三目标条件包括第三概率为多个第三概率中最高的概率。

在本公开实施例中,训练过后的码率决策模型可以基于历史网络吞吐量、历史缓冲区的第一参数变化信息以及上一个码率决策时刻的目标决策码率来确定当前时刻的目标决策码率,电子设备可以基于当前时刻的目标决策码率调整视频数据的码率,利用了训练过后的码率决策模型的鲁棒性和泛化能力,提升了视频数据传输的稳定性,最大化的利用了当前的网络吞吐量,提升了视频的显示效果。

关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

基于相同构思,本公开实施例还提供一种电子设备,如图10所示,所述电子设备包括:

处理器1001;

用于存储所述处理器1001可执行指令的存储器1002;

其中,所述处理器被配置为执行命令,以实现如上述实施例所述的码率决策模型训练方法或码率决策方法。

应理解的是,上述处理器可以是中央处理器(central processing unit,CPU),还可以是其他通用处理器、数字信号处理器(digital signal processing,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者是任何常规的处理器等。值得说明的是,处理器可以是支持进阶精简指令集机器(advanced RISC machines,ARM)架构的处理器。

进一步地,在一种可选的实施例中,上述存储器可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据。存储器还可以包括非易失性随机存取存储器。例如,存储器还可以存储设备类型的信息。

该存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用。例如,静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic random access memory,DRAM)、同步动态随机存取存储器(synchronousDRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data random SDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambusRAM,DRRAM)。

本公开提供了一种计算机程序产品,当计算机程序被计算机执行时,可以使得处理器或计算机执行上述方法实施例中对应的各个步骤和/或流程。

图11为本公开实施例达到的效果示例,参见图11。为了验证模型在波动较大的环境下的表现,选取了波动较大的波形为正弦波的网络带宽验证。图中横坐标为时间(秒),a曲线为真实带宽变化,单位为Mbps,b曲线为缓冲区时间大小的变化单位为秒(s),c曲线为模型选择的码率,单位为Mbps,d曲线为实际发送视频数据的吞吐量,单位为Mbps,可以看出本公开提供的视频码率控制方法能够使得实际发送视频数据的吞吐量很好地跟随真实带宽的变化,使得发送视频数据的吞吐量几乎和实际不可预知的网络带宽相等,同时保持了缓冲区中存储的数据量在相对较低的水平,这样既保证了视频直播发送的吞吐量,又保证了视频直播的实时性。

本领域技术人员在考虑说明书及实践这里的公开后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。

应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

相关技术
  • 码率决策模型训练方法、装置、电子设备及存储介质
  • 决策模型训练方法及样本特征选择方法、装置和电子设备
技术分类

06120113078736