首页 / 专利库 / 图形技术 / / 视频传输控制方法及装置、设备、存储介质

视频传输控制方法及装置、设备、存储介质

阅读:463发布:2020-05-08

专利汇可以提供视频传输控制方法及装置、设备、存储介质专利检索,专利查询,专利分析的服务。并且本 申请 的 实施例 揭示了一种视频传输控制方法及装置、设备、计算机可读存储介质。该方法包括:在发送端向接收端传输视频的过程中,获取已发送 视频 帧 的状态数据,所述状态数据用于描述所述已发送视频帧的发送和接收状态;根据所述状态数据预测适配于接收端网络状态的码率值;控制所述发送端根据所述码率值发送响应于接收端操作指令的视频帧,使所述接收端实时获得响应于所述操作指令的视频帧画面;通过不断获取的所述状态数据, 迭代 执行所述码率值的预测以及控制所述发送端根据预测的码率值发送响应于接收端操作指令的视频帧,直至停止进行视频传输。采用本申请实施例的技术方案能够使得客户端不会出现游戏画面卡顿的情况。,下面是视频传输控制方法及装置、设备、存储介质专利的具体信息内容。

1.一种视频传输控制方法,其特征在于,包括:
在发送端向接收端传输视频的过程中,获取已发送视频的状态数据,所述状态数据用于描述所述已发送视频帧的发送和接收状态;
根据所述状态数据预测适配于接收端网络状态的码率值;
控制所述发送端根据所述码率值发送响应于接收端操作指令的视频帧,使所述接收端实时获得响应于所述操作指令的视频帧画面;
通过不断获取的所述状态数据,迭代执行所述码率值的预测以及控制所述发送端根据预测的码率值发送响应于接收端操作指令的视频帧,直至停止进行视频传输。
2.根据权利要求1所述的方法,其特征在于,所述适配于接收端网络状态的码率值是按照预设的预测时间段进行预测的;所述根据所述状态数据预测适配于接收端网络状态的码率值,包括:
根据获取的所述状态数据,预测所述接收端在下一预测时间段内接收视频帧的网络状态;
确定与所述下一预测时间段所对应网络状态相适配的码率值,所述码率值用于控制所述发送端在所述下一预测时间段内发送视频帧。
3.根据权利要求2所述的方法,其特征在于,在根据获取的所述状态数据,预测所述接收端在下一预测时间段内接收视频帧的网络状态之前,所述方法还包括:
根据所述状态数据,计算上一预测时间段所预测码率值对应的奖励值,所述奖励值用于表征所述上一预测时间段进行码率值预测的效果;
根据所述奖励值调整进行码率值预测的预测参数,调整得到的预测参数用于预测适配于下一预测时间段内接收端网络状态的码率值。
4.根据权利要求3所述的方法,其特征在于,所述根据所述状态数据,计算上一预测时间段所预测码率值对应的奖励值,包括:
根据所述状态数据,获取所述预测时间段内传输视频帧的卡顿时间,以及获取所述发送端在所述上一预测时间段内发送视频帧的码率值;
计算所述发送端在所述上一预测时段内发送视频帧的码率值,与所述上一预测时间段预测的码率值之差,得到波动码率;
根据所述上一预测时间段所预测的码率值、所述卡顿时间和所述波动码率计算所述奖励值。
5.根据权利要求4所述的方法,其特征在于,所述根据所述状态数据,获取所在预测时间段内传输视频帧的卡顿时间,包括:
根据所在预测时间段内已发送视频帧的状态数据,确定所述接收端发送操作指令的第一时间,以及确定所述接收端获取到响应于所述操作指令的视频帧的第二时间;
计算所述第二时间与所述第一时间之间的时间差,获得所述卡顿时间。
6.根据权利要求4所述的方法,其特征在于,在根据所述上一预测时间段所预测的码率值、所述卡顿时间和所述波动码率计算所述奖励值之前,所述方法还包括:
根据所在预测时间段对应的卡顿时间,调整所述卡顿时间在所述奖励值计算中的权重,以根据调整后的权重进行所述上一预测时间段所对应奖励值的计算。
7.根据权利要求6所述的方法,其特征在于,所述根据所在预测时间段对应的卡顿时间,调整所述卡顿时间在所述奖励值计算中的权重,包括:
获取所述上一预测时间段进行奖励值计算中的权重;
如果所在预测时间段对应的卡顿时间小于预设的时间阈值,将所述权重调小设定数值;
否则,将所述权重增大所述设定数值。
8.根据权利要求1所述的方法,其特征在于,所述控制所述发送端根据所述码率值发送响应于接收端操作指令的视频帧,包括:
控制所述发送端根据接收的接收端操作指令生成响应于所述操作指令的视频帧;
将生成的视频帧按照预测的所述码率值重新编码,并将重新编码得到的视频帧发送至所述接收端。
9.根据权利要求8所述的方法,其特征在于,所述码率值的预测由所述发送端执行;所述将生成的视频帧按照预测的所述码率值重新编码,并将重新编码得到的视频帧发送至所述接收端,包括:
控制所述发送端将生成的视频帧按照自身预测的所述码率值重新编码,并将重新编码得到的视频帧发送至所述接收端。
10.根据权利要求8所述的方法,其特征在于,所述码率值的预测由所述接收端执行;在将生成的视频帧按照预测的所述码率值重新编码,并将重新编码得到的视频帧发送至所述接收端之前,所述方法还包括:
控制所述发送端获取所述接收端发起的码率请求,所述码率请求中携带有适配于接收端网络状态的码率值。
11.根据权利要求1所述的方法,其特征在于,所述状态数据包括所述发送端所发送视频帧的数据大小和码率值、所述接收端接收相邻视频帧之间的时间间隔、视频帧在所述接收端中的下载时间与显示时间之间的差值、所述接收端的播放帧率中的至少一种。
12.一种视频传输控制装置,其特征在于,包括:
状态数据获取模,用于在发送端向接收端传输视频的过程中,获取已发送视频帧的状态数据,所述状态数据用于描述所述已发送视频帧的发送和接收状态;
码率值预测模块,用于根据所述状态数据预测适配于接收端网络状态的码率值;
视频帧发送控制模块,用于控制所述发送端根据所述码率值发送响应于接收端操作指令的视频帧,使所述接收端实时获得响应于所述操作指令的视频帧画面;
迭代执行模块,用于通过不断获取的所述状态数据,迭代执行所述码率值的预测以及控制所述发送端根据预测的码率值发送响应于接收端操作指令的视频帧,直至停止进行视频传输。
13.一种视频传输控制设备,其特征在于,包括:
存储器,存储有计算机可读指令;
处理器,读取存储器存储的计算机可读指令,以执行权利要求1-11中任一项所述的方法。
14.一种计算机可读存储介质,其特征在于,其上存储有计算机可读指令,当所述计算机可读指令被计算机的处理器执行时,使计算机执行权利要求1-11中任一项所述的方法。

说明书全文

视频传输控制方法及装置、设备、存储介质

技术领域

[0001] 本申请涉及视频传输技术领域,具体涉及一种视频传输控制方法及装置、设备、计算机可读存储介质。

背景技术

[0002] 随着网络技术的发展,游戏广受追捧。在云游戏运行模式下,游戏在云服务器端运行,并将渲染的游戏画面压缩后通过网络传输给客户端。客户端不需要具有任何高端处理器和显卡,只需要具备视频解码功能和一定的网络带宽即可畅玩游戏。
[0003] 但由于云服务器端需要向客户端实时传输每一游戏画面,云游戏的运行依赖于大网络带宽,并且对于网络时延十分敏感。在实际应用中,客户端网络通常是具有网络波动特性的无线网络,如果网络波动发生带宽降低的情况,则会导致客户端出现游戏画面卡顿或者操作迟滞响应。
[0004] 为保证云游戏运行的流畅性,在现有的技术实现中,通过对客户端网络进行实时监控,如果监控到网络延迟增大,立即降低云游戏的分辨率,从而防止游戏画面卡顿。
[0005] 但是,上述技术实现对于网络变化的响应总是滞后的,当带宽下降至一定程度,导致游戏画面出现卡顿后才开始降低云游戏分辨率进行补救,因此,现有技术中仍存在无法避免游戏画面卡顿的问题。发明内容
[0006] 为解决现有技术无法避免游戏画面卡顿的技术问题,本申请的实施例提供了一种视频传输控制方法及装置、设备、计算机可读存储介质,基于本申请实施例进行的视频传输控制,能够有效防止云游戏运行中由于网络波动导致游戏画面卡顿。
[0007] 其中,本申请实施例采用的技术方案为:
[0008] 一种视频传输控制方法,包括:在发送端向接收端传输视频的过程中,获取已发送视频帧的状态数据,所述状态数据用于描述所述已发送视频帧的发送和接收状态;根据所述状态数据预测适配于接收端网络状态的码率值;控制所述发送端根据所述码率值发送响应于接收端操作指令的视频帧,使所述接收端实时获得响应于所述操作指令的视频帧画面;通过不断获取的所述状态数据,迭代执行所述码率值的预测以及控制所述发送端根据预测的码率值发送响应于接收端操作指令的视频帧,直至停止进行视频传输。
[0009] 一种视频传输控制装置,包括:状态数据获取模,用于在发送端向接收端传输视频的过程中,获取已发送视频帧的状态数据,所述状态数据用于描述所述已发送视频帧的发送和接收状态;码率值预测模块,用于根据所述状态数据预测适配于接收端网络状态的码率值;视频帧发送控制模块,用于控制所述发送端根据所述码率值发送响应于接收端操作指令的视频帧,使所述接收端实时获取响应于所述操作指令的视频帧画面;迭代执行模块,用于通过不断获取的所述状态数据,迭代执行所述码率值的预测以及控制所述发送端根据预测的码率值发送响应于接收端操作指令的视频帧,直至停止进行视频传输。
[0010] 一种视频传输控制设备,包括处理器及存储器,所述存储器上存储有计算机可读指令,所述计算机可读指令被所述处理器执行时实现如上所述的视频传输控制方法。
[0011] 一种计算机可读存储介质,其上存储有计算机可读指令,当所述计算机可读指令被计算机的处理器执行时,使计算机执行如上所述的视频传输控制方法。
[0012] 在上述技术方案中,通过在发送端向接收端传输视频的过程中,基于不断获取的已发送视频帧的状态数据进行适配于接收端网络状态的码率值预测,并控制发送端根据预测的码率值向接收端发送响应于接收端操作指令的视频帧,使得在整个视频传输的过程中,发送端与接收端之间所传输视频帧的码率值都将适配于接收端实时的网络状态,因此接收端不会出现视频帧画面的卡顿情况。
[0013] 在云游戏运行场景下,云服务器端作为视频传输的发送端,客户端作为视频传输的接收端,二者之间传输游戏画面的码率值也将适配于客户端实时的网络状态,因此客户端也不会出现游戏画面卡顿的情况。
[0014] 应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。附图说明
[0015] 此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术者来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
[0016] 图1是本申请涉及的实施环境的示意图;
[0017] 图2是根据一示例性实施例示出的一种视频传输控制方法的流程图
[0018] 图3是图2所示实施例中步骤120在一个实施例的流程图;
[0019] 图4是根据一示例性实施例示出的一种码率预测模型的示意图;
[0020] 图5是图2所示实施例中步骤120在另一个实施例的流程图;
[0021] 图6是图5所示实施例中步骤210在一个实施例的流程图;
[0022] 图7是根据一示例性实施例示出的一种云游戏运行系统的示意图;
[0023] 图8是根据另一示例性实施例示出的一种云游戏运行系统的示意图;
[0024] 图9是根据一示例性实施例示出的一种视频传输控制装置的框图
[0025] 图10是根据一示例性实施例示出的一种视频传输控制设备的结构示意图。

具体实施方式

[0026] 这里将详细地对示例性实施例执行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
[0027] 请参阅图1,图1是本发明涉及的一种实施环境的示意图,该实施环境可以为一视频传输系统,该视频传输系统包括发送端100和接收端200,并且发送端100和接收端200之间通过网络300进行通信。
[0028] 发送端100用于向接收端200发送视频帧,例如可以是游戏画面对应的视频帧,接收端200接收到视频帧之后进行相应视频帧画面的显示,用户可以在显示的视频帧画面中触发操作指令。
[0029] 接收端200产生的操作指令将实时传送至发送端100,使得发送端100根据操作指令,生成响应于操作指令的视频帧,同时将生成的视频帧发送至接收端200,使接收端200实时获取到响应于操作指令的视频帧画面。
[0030] 由此,在进行的视频传输中,发送端100将不断地向接收端200发送视频帧,这些视频帧包括发送端100响应于接收端200发送的操作指令生成的视频帧,接收端200也将不断地根据接收到的视频帧进行相应视频帧画面的显示,并且获取视频帧画面中触发的操作指令,以将获取到的操作指令实时传送至发送端。
[0031] 需要说明的是,在此实施环境中,发送端100可以是任意进行视频帧生成和发送的电子设备,例如可以是服务器等设备,接收端200可以是任意进行视频帧接收和视频帧画面显示的电子设备,例如可以是智能手机、平板电脑、计算机等设备,网络300可以是无线网络或者有线网络,本处均不进行限制。
[0032] 如果网络300发生带宽降低的波动情况,接收端200无法实时获取并显示发送端100发送的视频帧,针对接收端200中触发的操作指令,也无法实时获取响应于操作指令的视频帧画面,从而导致接收端200中进行的视频帧画面显示出现卡顿或者操作指令迟滞响应的情况。
[0033] 为解决网络波动带来的一系列问题,本申请的实施例一方面提供一种视频传输控制方法,另一方面还提供一种视频传输控制装置、一种视频传输控制设备以及一种计算机可读存储介质,通过在视频传输的过程中收集历史网络数据,并根据收集到的历史网络数据实时预测适配于接收端网络状态的码率值,以根据预测的码率值实时调整视频帧的发送码率,使得视频帧的发送码率总是与接收端的网络状态相匹配的,不会出现接收端的视频帧画面卡顿、操作指令迟滞响应等问题。
[0034] 请参阅图2,图2是根据一示例性实施例示出的一种视频传输控制方法的流程图,该方法至少包括以下步骤:
[0035] 步骤110,在发送端向接收端传输视频的过程中,获取已发送视频帧的状态数据,状态数据用于描述已发送视频帧的发送和接收状态。
[0036] 首先需要说明的是,在发送端向接收端进行的视频传输过程中,发送端将视频画面打包封装成视频帧的形式逐帧进行发送,接收端则对接收到的视频帧进行相应视频帧画面的显示。
[0037] 在此过程中,如果接收端获取到所显示的视频帧画面中触发了操作指令,则将操作指令实时发送至发送端,发送端通过响应接收端操作指令,生成响应于操作指令的视频帧,并生成的视频帧传输至接收端,使接收端实时获得响应于操作指令的视频帧画面。
[0038] 在网络状态稳定且具有较大带宽的情况下,发送端与接收端之间可以实现无缓冲的视频获取,发送端为响应接收端操作指令进行的视频帧生成与发送过程、以及接收端获取响应于接收端操作指令的视频帧画面的过程均是实时的,接收端中将流畅地进行视频帧画面的显示。
[0039] 在接收端网络状态出现较大波动的情况下,例如网络状态出现较大延迟,接收端则会出现视频帧画面卡顿、操作指令迟滞响应等问题。
[0040] 为避免出现这些问题,本实施例在发送端向接收端传输视频的过程中,需获取已发送视频帧的状态数据。
[0041] 需要说明的是,已发送视频帧的状态数据是用于描述已发送视频帧的发送和接收状态的相关数据,这些数据能够反映接收端的历史网络状态。示例性的,已发送视频帧的状态数据可以是发送端所发送视频帧的数据大小和码率值、接收端接收相邻视频帧之间的时间间隔、视频帧在接收端中的下载时间与显示时间之间的差值、接收端的播放帧率等数据中的至少一种,本处不进行限制。
[0042] 步骤120,根据状态数据预测适配于接收端网络状态的码率值。
[0043] 其中,适配于接收端网络状态的码率值是指,在此网络状态下,发送端按照此码率值向接收端发送视频帧,使接收端接收视频帧并进行相应视频帧画面显示的过程不会出现卡顿等问题。
[0044] 如前所述,已发送视频帧的状态数据能够反映接收端的历史网络状态,因此根据接收端的历史网络状态,可以有效预测接收端在将来的一段时间内的网络状态,根据预测得到的网络状态,则可以确定适配于此网络状态的码率值。
[0045] 需要说明的是,码率值的预测可以由发送端具体执行,也可以由接收端具体执行,本实施例并不对此进行限定。
[0046] 步骤130,控制发送端根据预测的码率值发送响应于接收端操作指令的视频帧,使所述接收端实时获得响应于操作指令的视频帧画面。
[0047] 如前所述,响应于接收端操作指令的视频帧可以是发送端获取到接收端发送的操作指令后生成的,发送端所生成的视频帧需要实时传输至接收端,才能保证接收端不会出现操作指令滞后响应等问题。
[0048] 控制发送端根据预测的码率值发送响应于接收端操作指令的视频帧是指,控制发送端在生成响应于接收端操作指令的视频帧之后,将所生成视频帧按照预测的码率值重新编码,然后将重新编码得到的视频帧发送至接收端。
[0049] 由于步骤120中所预测的码率值适配于接收端的网络状态,因此,通过控制发送端根据预测得到的码率值,向接收端发送响应于接收端操作指令的视频帧,可以使接收端实时地获取响应于操作指令的视频帧画面。
[0050] 需要说明的是,如果码率值的预测过程由发送端执行,发送端在生成响应于接收端操作指令的视频帧之后,则根据自身所预测的码率值进行视频帧的编码。
[0051] 如果码率值预测由接收端执行,则需控制发送端获取接收端发起的码率请求,码率请求中携带有接收端预测的、适配于接收端网络状态的码率值,以使得发送端在生成响应于接收端操作指令的视频帧之后,根据码率请求中的码率值进行视频帧的编码。
[0052] 步骤140,通过不断获取的状态数据,迭代执行码率值的预测以及控制发送端根据预测的码率值发送响应于接收端操作指令的视频帧,直至停止进行视频传输。
[0053] 在发送端向接收端进行视频传输的过程中,将不断地获取已发送视频帧的状态数据,从而动态地获取到接收端网络状态的变化情况。
[0054] 通过迭代执行适配于接收端网络状态的码率值预测,在接收端网络状态发生波动之前提前获知网络波动情况,并根据网络波动情况进行视频帧发送码率的自适应调整,从而使得在整个视频传输过程中,即使接收端网络状态发生较大波动,接收端获取响应于操作指令的视频帧画面的过程仍是流畅的,不会出现视频帧画面卡顿以及操作指令迟滞响应等问题。
[0055] 此外,本实施例所进行的视频帧发送码率的自适应调整,并非只是简单地降低发送端中待发送视频画面的分辨率,例如当预测到接收端网络发生延迟时,将待发送视频画面的分辨率从1080P降低为720P,当预测到接收端网络恢复时将分辨率进行还原,而是通过已发送视频帧的状态数据,预测得到一个最佳的、能够适配于接收端当前的网络情况的码率值,而不是只在几个固定码率范围内变化。
[0056] 由此,在整个视频传输过程中,视频帧的发送码率是实时连续可调的,发送端所进行的视频帧发送能够准确地适应于接收端网络状态的变化,最大程度地保证接收端能够获取到高质量的视频画面。
[0057] 对于用户通过接收端进行的视频画面获取来说,发送端所进行的码率值调节可以使得用户的视觉过渡更加平滑,不会出现视野中画面突然明显降低的情况,从而使得用户体验良好。
[0058] 图3是图2所示实施例中步骤120在一个实施例的流程图。如图3所示,在一示例性的实施例中,根据状态数据预测适配于接收端网络状态的码率值,可以包括以下步骤:
[0059] 步骤121,根据获取的状态数据,预测接收端在下一预测时间段内接收视频帧的网络状态;
[0060] 步骤122,确定与下一预测时间段所对应网络状态相适配的码率值,该码率值用于控制发送端在下一预测时间段内发送视频帧。
[0061] 首先需要说明的是,在本实施例中,适配于接收端网络状态的码率值是按照预设的预测时间段动态进行预测的,所预设预测时间段对应的时间长度可以相同,也可以不相同,本处不进行限制。
[0062] 对于待进行码率值预测的当前预测时间段,将根据获取的已发送视频帧的状态数据,预测得到与接收端在下一预测时间段对应的网络状态相适配的码率值,所预测得到相应的码率值用于控制发送端在下一预测时间段内按照此码率值发送视频帧。
[0063] 值得一提的是,发送端在当前预测时间段内进行的视频帧发送,也是基于上一预测时间段预测得到的码率值进行的。
[0064] 如前所述的,已发送视频帧的状态数据能够反映接收端的历史网络状态变化情况,因此在当前时间段,根据获取的已发送视频帧的状态数据,可以预测接收端在下一预测时间段内接收视频帧的网络状态,从而根据预测得到的码率值确定相适配的码率值。
[0065] 在一个实施例中,可以根据预先构建的码率预测模型进行适配于接收端网络状态的码率值预测。通过将不断获取的状态数据输入至码率预测模型,使得码率预测模型按照预设的预测时间段,不断地进行下一预测时段端所对应码率值的预测。
[0066] 示例性的,码率预测模型的结构示意图可以如图4所示,此模型为一强化网络学习模型,其中含有若干神经网络,基于这些神经网络,码率预测模型根据所输入的状态数据预测接收端在下一预测时间段内接收视频帧的网络状态,相应输出与下一预测时间段所对应网络状态相适配的码率值。
[0067] 其中,码率预测模型所含有的神经网络可以采用RNN(Recurrent Neural Network,循环神经网络)、CNN(Convolutional Neural Networks,卷积神经网络)等神经网络,CNN具体可以采用1层或者2层的网络结构,本处不进行限制。
[0068] 作为一种示例性的实施方式,仍如图4所示,码率预测模型中含有决策网络,该决策网络可以理解为是一种神经网络。在其它的神经网络针对输入的状态数据进行特征提取等预处理后,由决策网络根据状态数据所对应特征进行自适应码率决策,输出相应的码率决策结果。
[0069] 码率决策结果可以包括不同码率值对应的选择概率,码率预测模型可以将决策网络所输出最大选择概率对应的码率值,确定为与接收端在下一预测时间段所对应网络状态相适配的码率值。由此,基于本实施例所提供方法,将根据不断获取的状态数据,并按照预设的预测时间段动态地进行各个预测时间段所对应码率值的预测,以及动态地调整各个预测时间段内的视频帧发送码率,如此有序且自适应地进行发送端与接收端之间的视频传输,有效地避免出现由于接收端网络状态波动所导致的问题。
[0070] 图5是图2所示实施例中步骤120在另一个实施例的流程图。如图5所示,在一示例性实施例中,在步骤121之前,根据状态数据预测适配于接收端网络状态的码率值,还可以包括以下步骤:
[0071] 步骤210,根据状态数据计算上一预测时间段所预测码率值对应的奖励值,奖励值用于表征上一预测时间段进行码率值预测的效果。
[0072] 首先需要说明的是,奖励值用于表征适配于接收端网络状态的码率值的预测效果,奖励值越高,表示码率值预测的效果越好,接收端所显示视频帧画面的画面质量越高。
[0073] 对当前预测时间段来说,由于此时间段内发送端是根据上一预测时间段所预测的码率值进行视频帧发送,因此,上一预测时间段进行码率值预测的效果,可以通过当前预测时间端内已发送视频帧的状态数据进行体现。
[0074] 并且,当前预测时间段所获取的已发送视频帧的状态数据,不仅包括历史预测时间段内所发送视频帧的状态数据,还包括当前预测时间段内已经按照相应码率值发送的视频帧的状态数据。
[0075] 因此,根据获取到的状态数据,可以计算上一预测时间段所预测码率值对应的奖励值,进而可以根据所得奖励值确定上一预测时间段进行码率值预测的效果。
[0076] 步骤220,根据奖励值调整进行码率值预测的预测参数,调整得到的预测参数用于预测适配于下一预测时间段内接收端网络状态的码率值。
[0077] 其中,预测参数是指,在根据状态数据进行适配于接收端网络状态的码率值预测的过程中涉及的相关参数,例如对码率值预测模型来说,预测参数可以是模型所含有神经网络中的相关权重参数。
[0078] 由于当前预测时间段内进行视频帧发送的码率值,是上一预测时间段根据相应的预测参数和状态参数所预测得到的,因此,在根据奖励值确定上一预测时间段所对应预测效果的基础上,根据奖励值对上一预测时间段进行码率值预测的预测参数进行调整,使得下一次进行码率值预测时,可以通过调整得到的预测参数获得更优的码率值预测效果。
[0079] 仍如图4所示,在一示例性实施例中,码率值预测模型中可以含有评判网络,该评判网络用于执行步骤210和步骤220所描述的内容。其中,该评判网络也应当理解为是一种神经网络。
[0080] 在码率值预测模型进行一次码率值预测,并将预测得到的码率值应用至下一预测时间段的视频帧发送之后,将通过评判网络获取相应奖励值,奖励值也会反馈给评判网络,使得评判网络根据该奖励值指示码率值预测模型调整模型中的码率值预测权重,例如指示调整决策网络中的权重参数。
[0081] 由此,本实施例将根据每一次执行码率值预测的奖励值,动态地调整下一次码率值预测中的相关预测参数,使得每一次所进行的码率值预测效果都将得到进一步优化,码率值预测的准确率将不断提升,进而确保接收端中的视频画面质量的稳定性
[0082] 图6是图5所示实施例中步骤210在一个实施例的流程图。如图6所示,根据状态数据,计算上一预测时间段所预测码率值对应的奖励值,可以包括以下步骤:
[0083] 步骤211,根据状态数据,获取所在预测时间段内传输视频帧的卡顿时间,以及获取发送端在上一预测时间段内发送视频帧的码率值。
[0084] 其中,传输视频帧的卡顿时间是指,接收端在获取到视频帧画面中触发的操作指令后,向发送端发起操作指令至接收到响应该操作指令的视频帧所需的时间。
[0085] 因此,根据所在时间段内已发送视频帧的状态数据,可以确定接收段发送某一操作指令的第一时间,以及确定接收端获取到响应于该操作指令的是视频帧的第二时间,通过计算第二时间与第一时间之间的时间差,得到卡顿时间。
[0086] 根据上一预测时间段内已发送视频帧的状态数据,即可获取发送端在上一预测时间段内发送视频帧的码率值。
[0087] 步骤212,计算发送端在上一预测时间段内发送视频帧的码率值与上一预测时间段预测的码率值之差,得到波动码率。
[0088] 其中,上一预测时间段预测的码率值是发送端在当前预测时间段内发送视频帧的码率值,可以通过当前预测时间段内已发送视频帧的状态数据相应获得。
[0089] 由此可知,波动码率实质为发送端在上一预测时间段内和当前预测时间段内发送视频帧的码率差,其反映了发送端在当前预测时间段进行码率切换的情况。
[0090] 步骤213,根据上一预测时间段所预测的码率值、卡顿时间和波动码率,计算上一预测时间段所预测码率值对应的奖励值。
[0091] 如前所述,上一预测时间段所预测的码率值即为当前预测时间内发送视频帧的码率值。
[0092] 因此在本实施中,奖励值的大小主要受当前预测时间内视频帧的发送码率、当前预测时间段内传输视频帧的卡顿时间、以及当前预测时间段内的码率切换影响。
[0093] 在一个实施例中,奖励值是根据奖励函数计算得到的,奖励函数如下:
[0094] QoE=q(Rn)-μTn-γ|q(Rn+1)-q(Rn)|
[0095] 其中“, QoE”表示奖励值“,n”表示各个预测时间段的序号,“q()”表示预设的非线性函数,用于对码率值进行非线性运算,“Rn”表示第n个预测时间段内发送视频帧的码率值,“Tn”表示第n个预测时间段内的卡顿时间“,|q(Rn+1)-q(Rn)|”表示第n个预测时间段内的码率波动,“μ”表示卡顿时间影响奖励值的权重,“γ”表示波动码率影响奖励值的权重。
[0096] 在本实施例中,奖励函数是根据用户体验质量标准所设计的,当接收端网络延迟较低时,接收端画面质量对于用户体验的影响占主导地位,并且接收端画面质量的影响程度随着画面质量达到一定程度后趋于饱和;当接收端网络延迟较较高时,接收端将出现明显的卡顿或者操作迟滞感,将接收端网络延迟作为影响用户体验的主要因素。
[0097] 还值得一提的是,奖励函数所体现的用户体验质量标准中,还加入了平滑度因素,即码率波动对于用户体验指令的影响,进而保证接收端进行的码率切换不会影响用户体验。
[0098] 在一个实施例中,在当前预测时间段内,在执行奖励值计算的步骤之前,还将根据当前预测时间段对应的卡顿时间,调整卡顿时间在奖励值计算中的权重,即调整以上奖励值计算公式中的权重μ。
[0099] 如果当前预测时间段对应的卡顿时间小于预设的时间阈值,则将上一预测时间段进行奖励值计算中卡顿时间的权重调小设定数值,否则,将此权重增大设定数值。
[0100] 示例性的,权重调整规则如下:
[0101]
[0102] 也即是说,在进行每一次奖励值计算之前,都将根据当前预测时间段对应的卡顿时间对奖励函数进行更新,根据所更新的奖励函数计算得到的奖励值又将用于调整下一次码率值预测中的预测参数,由此动态地进行码率值的自适应调整,进一步提升了整个视频传输过程中,各个预测时间段内所发送视频帧的码率值与各个预测时间端内的接收端网络状态的适配程度,从而确保接收端能够获取到高质量的视频画面。
[0103] 并且,根据上述进行动态的码率值自适应调整过程可以看出,本实施例是以接收端获取高质量的视频画面为目的而进行的码率值调整,充分考虑了实际应用场景中用户基于接收端所进行的视频观看体验。例如,当接收端网络延迟较高时,接收端中将会有明显的卡顿出现或者对于用户操作的响应速度迟缓,通过本实施例所提供方法,即可避免出现这些问题,从而不会对用户体验造成影响。
[0104] 下面将以一个示例性的应用场景来对本申请的视频传输方法进行描述。
[0105] 该示例性应用场景具体为云游戏运行场景,在此应用场景中,云游戏在云服务器中运行,云服务器将作为发送端,将渲染的游戏视频对应的视频帧通过码流传输信道发送至客户端,客户端则对接收的视频帧进行解码得到相应的游戏画面。
[0106] 在云游戏运行过程中,用户在客户端显示的游戏画面中进行游戏操作,使客户端产生用户操作指令,用户操作指令实时上传至云服务器,使云服务器根据用户操作指令渲染响应于用户操作指令的游戏视频,然后将渲染的游戏视频以视频帧的形式发送给客户端。
[0107] 由此,客户端不需要具有任何高端处理器和显卡,只需要具备视频解码功能和一定的网络带宽即可畅玩游戏。
[0108] 目前,高清PC(Personal Computer,个人计算机)端云游戏需要大约30兆带宽才能保证用户的正常游戏体验,然而在实际游戏环境中,客户端网络往往是无线网络,呈现出波动特性,容易发生带宽降低的情况,导致客户端出现游戏卡顿或者用户操作迟滞响应等问题,十分损害用户体验。
[0109] 基于本申请提供的视频传输控制方法,即可以很好地解决云游戏运行中由于客户端网络波动导致的相关问题。
[0110] 具体地,在云游戏运行过程中,将不断地获取已发送视频帧的状态数据,例如发送端所发送视频帧的数据大小和码率值、接收端接收相邻视频帧之间的时间间隔、视频帧在接收端中的下载时间与显示时间之间的差值、接收端的播放帧率等状态数据,这些状态数据用于预测适配于客户端网络状态的码率值。
[0111] 根据不断获取的状态数据,迭代进行适配于客户端网络状态的码率值预测,以及控制发送端根据预测的码率值进行相应视频帧的发送,从而使得客户端可以实时地获取响应于操作指令的视频帧画面,客户端中的云游戏操作可以流畅地进行。
[0112] 由此,通过在云游戏运行过程中收集能够反映客户端的历史网络状态的状态数据,并根据收集到的状态数据实时地预测出客户端网络即将发生的变动,同时通过及时地响应预测到的网络变动,获取适配于客户端网络状态的码率值。
[0113] 通过控制云服务器根据预测的码率值进行后续视频帧的发送,使得云服务器进行视频帧发送的码率值总是与客户端即将出现的网络状态相匹配的,因此不会导致客户端出现游戏画面卡顿、用户操作指令迟滞响应等问题,不会影响用户体验。
[0114] 示例性的,在云游戏运行过程中,云服务器和客户端之间的数据交互过程可以如图7和图8所示。其中,图7对应于视频传输控制方法由云服务器具体执行,图8对应于视频传输控制方法由客户端具体执行。
[0115] 还需要说明的是,为便于理解云服务器和客户端之间的数据交互过程,本申请所提供的视频传输控制方法可以被加载到图7和图8所示的码率自适应模块中。在云游戏的运行过程中,码率自适应模块执行前述实施例中所描述的视频传输控制方法。
[0116] 如图7所示,码率自适应模块被配置在云服务器中,云服务器所加载的游戏程序根据用户操作指令产生云游戏渲染视频,并将云游戏渲染视频输入至编码器,码率自适应模块根据收集的状态数据,预测出适配于客户端网络状态的码率值,且将预测的码率值送入至编码器,编码器根据接收的码率值对游戏渲染视频进行编码得到视频帧,然后将视频帧逐帧发送至客户端。客户端通过对接收的视频帧进行解码得到游戏画面,用户则在游戏画面中触发用户操作指令,用户操作指令将与客户端状态信息一同打包,由上行专用信道反馈至云服务器。云服务器的反馈指令处理模块将反馈信息解析拆分,将操作指令送入游戏程序,将客户端状态信息输入至码率自适应模块。
[0117] 如图8所示,码率自适应模块被配置在云服务器中,云服务器由所加载的游戏程序根据用户操作指令产生云游戏渲染视频,并将产生的云游戏渲染视频输入至编码器,编码器根据客户端的码率请求对游戏渲染视频进行编码,并将视频帧逐帧发送至客户端。客户端通过对接收的视频帧进行解码得到游戏画面,用户在游戏画面中触发用户操作指令,码率自适应模块根据收集的状态数据预测出向云服务器请求的码率值,该码率值适配于客户端网络状态,用户操作指令与码率请求信息一同打包,由上行专用信道反馈至云服务器。云服务器的反馈指令处理模块将反馈信息解析拆分,将操作指令送入游戏程序,将码率请求信息输入至编码器。
[0118] 由此,云服务器将根据客户端发送的用户操作指令不断地产生游戏视频,码率自适应模块也将不断地进行码率值预测,使得云服务器向客户端传输的游戏视频总是适配于客户端网络状态,因此客户端不会出现游戏画面卡顿、用户操作指令迟滞响应等问题。
[0119] 相比于现有技术在监控到客户端网络发生波动后进行响应,本申请通过在客户端网络出现变化之前及时进行响应,使得客户端中视频画面的卡顿率可以下降50%。
[0120] 并且,在码率值预测过程中,还通过动态地调整码率值预测过程中的相关参数,使得码率值的预测准确率可以随着视频传输的进行不断提升,从而在很大程度上提升了预测效果。
[0121] 因此,基于对码率值的准确估计和预先估计,本申请可以无需为了保证客户端不出现卡顿而预留出较大的带宽。如前所述,目前云游戏系统通常需要带宽在30兆以上才能对抗可能出现的较大网络波动,采用本申请的技术方案则只需要15兆的带宽即可保证云游戏的稳定运行,在提升用户游戏体验的同时还节省了云服务器的带宽开销。
[0122] 图9是根据一示例性实施例示出的一种视频传输控制装置的框图。
[0123] 如图9所示,在一示例性实施例中,该视频传输控制装置包括状态数据获取模块310、码率值预测模块320、视频帧发送控制模块330和迭代执行模块340。
[0124] 状态数据获取模块310用于在发送端向接收端传输视频的过程中,获取已发送视频帧的状态数据,状态数据用于描述已发送视频帧的发送和接收状态。
[0125] 码率值预测模块320用于根据状态数据预测适配于接收端网络状态的码率值。
[0126] 视频帧发送控制模块330用于控制发送端根据码率值发送响应于接收端操作指令的视频帧,使接收端实时获取响应于操作指令的视频帧画面。
[0127] 迭代执行模块340用于通过不断获取的状态数据,迭代执行码率值的预测以及控制发送端根据预测的码率值发送响应于接收端操作指令的视频帧,直至停止进行视频传输。
[0128] 在另一示例性实施例中,码率值预测模块320包括网络预测单元和码率值确定单元。
[0129] 网络预测单元用于根据获取的状态数据,预测接收端在下一预测时间段内接收视频帧的网络状态。
[0130] 码率值确定单元用于确定与下一预测时间段所对应网络状态相适配的码率值,码率值用于控制发送端在下一预测时间段内发送视频帧。
[0131] 在另一示例性实施例中,码率值预测模块320还包括奖励值计算单元和预测参数调整单元。
[0132] 奖励值计算单元用于根据状态数据,计算上一预测时间段所预测码率值对应的奖励值,奖励值用于表征上一预测时间段进行码率值预测的效果。
[0133] 预测参数调整单元用于根据奖励值调整进行码率值预测的预测参数,调整得到的预测参数用于预测适配于下一预测时间段内接收端网络状态的码率值。
[0134] 在另一示例性实施例中,奖励值计算单元包括信息获取子单元、波动码率获取子单元和信息计算子单元。
[0135] 信息获取子单元用于根据状态数据,获取预测时间段内传输视频帧的卡顿时间,以及获取发送端在所述上一预测时间段内发送视频帧的码率值。
[0136] 波动码率获取子单元用于计算发送端在上一预测时段内发送视频帧的码率值与上一预测时间段预测的码率值之差,得到波动码率。
[0137] 信息计算子单元用于根据上一预测时间段所预测的码率值、卡顿时间和波动码率计算奖励值。
[0138] 在另一示例性实施例中,信息获取子单元包括时间信息获取子单元和卡顿时间获取子单元。
[0139] 时间信息获取子单元用于根据所在预测时间段内已发送视频帧的状态数据,确定接收端发送操作指令的第一时间,以及确定接收端获取到响应于操作指令的视频帧的第二时间。
[0140] 卡顿时间获取子单元用于计算第二时间与第一时间之间的时间差,获得卡顿时间。
[0141] 在另一示例性实施例中,奖励值计算单元还包括权重调整子单元,用于根据所在预测时间段对应的卡顿时间,调整卡顿时间在奖励值计算中的权重,以根据调整后的权重进行上一预测时间段所对应奖励值的计算。
[0142] 在另一示例性实施例中,权重调整子单元包括权重获取子单元和权重判断子单元。
[0143] 权重获取子单元用于获取上一预测时间段进行奖励值计算中的权重。
[0144] 权重判断子单元用于在所在预测时间段对应的卡顿时间小于预设的时间阈值的情况下,将权重调小设定数值,否则将权重增大设定数值。
[0145] 在另一示例性实施例中,视频帧发送控制模块330包括视频帧生成单元和视频帧编码单元。
[0146] 视频帧生成单元用于控制发送端根据接收的接收端操作指令生成响应于操作指令的视频帧。
[0147] 视频帧编码单元用于将生成的视频帧按照预测的码率值重新编码,并将重新编码得到的视频帧发送至接收端。
[0148] 在另一示例性实施例中,视频帧编码单元用于控制发送端将生成的视频帧按照自身预测的码率值重新编码,并将重新编码得到的视频帧发送至接收端。
[0149] 在另一示例性实施例中,视频帧发送控制模块330还包括码率请求获取单元,用于控制发送端获取接收端发起的码率请求,码率请求中携带有适配于接收端网络状态的码率值。
[0150] 在另一示例性实施例中,状态数据获取模块310所获取的状态数据包括发送端所发送视频帧的数据大小和码率值、接收端接收相邻视频帧之间的时间间隔、视频帧在接收端中的下载时间与显示时间之间的差值、接收端的播放帧率中的至少一种。
[0151] 需要说明的是,上述实施例所提供的装置与上述实施例所提供的方法属于同一构思,其中各个模块和单元执行操作的具体方式已经在方法实施例中进行了详细描述,此处不再赘述。
[0152] 本申请的另一方面还提供了一种视频传输控制设备,包括处理器和存储器,其中,存储器上存储有计算机可读指令,该计算机可读指令被处理器执行时实现如前所述的视频传输控制方法。
[0153] 图10是根据一示例性实施例示出的一种视频传输控制设备的结构示意图。
[0154] 需要说明的是,该视频传输控制设备只是一个适配于本发明的示例,不能认为是提供了对本发明的使用范围的任何限制。该视频传输控制设备也不能解释为需要依赖于或者必须具有图10中示出的示例性的视频传输控制设备中的一个或者多个组件。
[0155] 如图10所示,在一示例性实施例中,视频传输控制设备包括处理组件401、存储器402、电源组件403、多媒体组件404、音频组件405、传感器组件407和通信组件408。其中,上述组件并不全是必须的,视频传输控制设备可以根据自身功能需求增加其他组件或减少某些组件,本实施例不作限定。
[0156] 处理组件401通常控制视频传输控制设备的整体操作,诸如与显示、数据通信以及日志数据处理相关联的操作等。处理组件401可以包括一个或多个处理器409来执行指令,以完成上述操作的全部或部分步骤。此外,处理组件401可以包括一个或多个模块,便于处理组件401和其他组件之间的交互。例如,处理组件401可以包括多媒体模块,以方便多媒体组件404和处理组件401之间的交互。
[0157] 存储器402被配置为存储各种类型的数据以支持在视频传输控制设备的操作,这些数据的示例包括用于在视频传输控制设备上操作的任何应用程序或方法的指令。存储器402中存储有一个或多个模块,该一个或多个模块被配置成由该一个或多个处理器409执行,以完成上述实施例中所描述的视频传输控制方法中的全部或者部分步骤。
[0158] 电源组件403为视频传输控制设备的各种组件提供电。电源组件403可以包括电源管理系统,一个或多个电源,及其他与为视频传输控制设备生成、管理和分配电力相关联的组件。
[0159] 多媒体组件404包括在视频传输控制设备和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括TP(Touch Panel,触摸面板)和LCD(Liquid Crystal Display,液晶显示器)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。
[0160] 音频组件405被配置为输出和/或输入音频信号。例如,音频组件405包括一个麦克,当视频传输控制设备处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。在一些实施例中,音频组件405还包括一个扬声器,用于输出音频信号。
[0161] 传感器组件407包括一个或多个传感器,用于为视频传输控制设备提供各个方面的状态评估。例如,传感器组件407可以检测到视频传输控制设备的打开/关闭状态,还可以检测视频传输控制设备的温度变化。
[0162] 通信组件408被配置为便于视频传输控制设备和其他设备之间有线或无线方式的通信。视频传输控制设备可以接入基于通信标准的无线网络,例如Wi-Fi(Wireless-Fidelity,无线网络)。
[0163] 可以理解,图10所示的结构仅为示意,视频传输控制设备该可以包括比图10中所示更多或更少的组件,或者具有与图10所示不同的组件。图10中所示的各组件均可以采用硬件软件或者其组合来实现。
[0164] 本申请的另一方面还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如前所述的视频传输控制方法。
[0165] 该计算机可读存储介质可以是上述实施例中描述的视频传输控制设备中所包含的,也可以是单独存在,而未装配入该视频传输控制设备中。
[0166] 上述内容,仅为本申请的较佳示例性实施例,并非用于限制本申请的实施方案,本领域普通技术人员根据本申请的主要构思和精神,可以十分方便地进行相应的变通或修改,故本申请的保护范围应以权利要求书所要求的保护范围为准。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈