基于深度学习的智能视频码率调整及带宽分配方法

文档序号:25294196发布日期:2021-06-04 10:15阅读:262来源:国知局
基于深度学习的智能视频码率调整及带宽分配方法

本发明属于通信技术领域,更为具体地讲,涉及一种基于深度学习的智能视频码率调整及带宽分配方法。



背景技术:

近年来,视频流业务量急剧增加,并已占据整个互联网业务的主要部分。为了适应动态网络条件并提供更好的服务质量,大多数视频服务提供商已部署了基于HTTP的动态自适应流(Dynamic Adaptive Streaming over HTTP,DASH) 方案。在DASH方案中,视频文件被分为多个固定段长度(以秒为单位)的分段。视频的每个分段可以使用不同的比特率编码为不同的副本,并且每个比特率对应于特定的视频帧率和分辨率。客户端可以根据估计的当前网络状况来自适应地请求下一个段的比特率(不同的帧率和分辨率)。

然而,随着DASH的广泛部署和视频需求的快速增长,在同一瓶颈链路上,多个DASH流竞争带宽资源的情况变得越来越普遍。在多DASH流竞争同一瓶颈链路的情况下,已有的自适应码率调整算法有以下缺点:1)每个客户端在不知道其他客户端存在的情况下,独立地做出比特率自适应决策,缺乏客户端之间的协作;2)客户端只能在应用层探测物理带宽,缺乏准确的网络带宽信息。这导致:1)用户的体验质量较低,比如视频播放卡顿次数增加;2)不同用户的服务体验质量差距较大。

一种可行的解决方法是在瓶颈链路控制器处部署中心控制的码率和带宽分配方案。目前已有学者对这种方法进行了数学建模,其数学模型如下:

Subject to:

其中,A、B、C、a为可根据实际情况进行调整的系数,ri,k为第k个时隙用户i所被分配的码率,ωi,k为第k个时隙用户i所被分配的带宽,βi,k表示第k个时隙用户i保证视频播放不卡顿所需的最低带宽,bi,k为第k个时隙用户i缓存中的视频时长,π为单位决策时隙,Wk为第k个时隙的可用带宽。分别表示码率、缓存剩余、所有用户码率的标准差对用户服务质量的贡献,此模型保证用户在接下来单位时隙内,能观看码率尽可能高的视频服务,且所有用户视频不会发生卡顿,有更多的视频缓存,同时用户间服务质量的公平性较高。

但是目前已证明该问题为NP难问题,不能保证多项式时间内完成求解,无法适应现阶段时延敏感的用户业务需求。因此,迫切需要一个能快速有效求解此问题的方案。



技术实现要素:

本发明的目的在于克服现有技术的不足,提供一种基于深度学习的智能视频码率调整及带宽分配方法,利用神经网络推断过程执行速度快的特点,快速求解码率和带宽分配方案,提高时效及准确性。

为实现上述发明目的,本发明基于深度学习的智能视频码率调整及带宽分配方法包括以下步骤:

S1:记接入核心网络的瓶颈链路控制器所控制的可同时请求DASH业务流的最大用户数量为N,根据实际情况设置M个用户可选码率档位,码率档位的序号越大码率越高;

S2:构建码率分配神经网络,包含输入层、全连接隐藏层和输出层,其中输入层包含2N+1个神经单元,输入为2N+1维状态向量 I=(W,b1,s1,b2,s2,…,bN,sN),其中W表示瓶颈链路控制器接入核心网络的可用带宽归一化值,sn分别表示第n个用户的缓存视频时长归一化值和活跃状态,sn=1表示用户活跃,需要进行码率分配,sn=0表示用户不活跃,不需要进行码率分配,n=1,2,…,N;输出层包含N个独立输出层,每个独立输出层包含M+1个神经单元,第n个独立输出层的输出向量为 On=(rn,0,rn,1,…,rn,M),其中rn,m表示第n个用户在下一时隙选择第m档码率的概率,其取值范围为[0,1],m=0,1,…,M,m=0表示不分配码率;

设置D个用户状态和可用带宽场景,根据用户缓存视频时长的最大值、最小值以及可用带宽的最大值和最小值,对用户缓存视频时长和可用带宽进行归一化,确定对应的状态向量其中d=1,2,…,D,Wd表示第d种场景中瓶颈链路控制器接入核心网络的可用带宽归一化值,分别表示第d种场景中第n个用户缓存视频时长的归一化值和活跃状态;根据理论分析得到该场景中每个用户在下一时隙所选择的码率,将码率分配方案向量中对应元素置1,其余元素置为0,表示第d种场景中第N′个用户在下一时隙选择第m档码率,表示第d种场景中第n个用户在下一时隙不选择第m档码率;

将每个场景的状态向量作为输入,N个用户的码率分配方案向量作为期望输出,对码率分配神经网络进行训练;

S3:在每个决策时隙到来时,获取当前瓶颈链路控制器控制的DASH业务用户数量N′和瓶颈链路控制器接入核心网络的可用带宽W*,根据用户缓存视频时长的最大值、最小值以及可用带宽的最大值和最小值,对用户缓存视频时长和可用带宽进行归一化,得到用户缓存视频时长归一化值bn′和可用带宽归一化值W,同时确定各个用户活跃状态sn′,n′=1,2,…,N′;构建当前状态向量 I=(W,b1,s1,b2,s2,…,bN,sN),当n≤N′,bn=bn′,sn=sn′,否则bn=0,sn=0;

S4:将步骤S3得到的当前状态向量n′输入至步骤S102训练好的码率分配神经网络中,得到每个用户在下一时隙的码率分配方案向量ωn′,对于当前的n′个用户,选择其码率分配方案向量中概率最大值所对应的码率档位作为该用户下一时隙的码率档位Rn′,βn′,得到码率分配方案;

S5:根据当前可用带宽以及码率分配方案确定的当前n′个用户的码率,计算出分配给每个用户的带宽,完成带宽分配。

本发明基于深度学习的智能视频码率调整及带宽分配方法,构建码率分配神经网络,其输入为包括可用带宽归一化值、用户缓存视频时长归一化值和用户活跃状态的状态向量,其输出为每个用户的码率分配方案向量;设置若干用户状态和可用带宽场景以获取训练样本,对码率分配神经网络进行训练;在每个决策时隙到来时,获取状态向量输入至训练好的码率分配神经网络,得到码率分配方案,再根据码率分配方案和当前可用带宽确定每个用户所占用的带宽,完成带宽分配。

本发明具有以下技术效果:

1)本发明设计了一种可获取全局用户信息和网络状态信息的中心控制 DASH业务方案,相对已有的传统解决方案,该方案能了解全局状态,以调整所有用户的码率选择,在保证所有用户视频播放不卡顿的条件下,使得各用户得到的服务质量比较公平;

2)本发明运用深度学习技术解决码率分配问题,利用过往求得的最优解决方案实例作为数据集,提前训练好神经网络。在实际执行中,利用已训练好的神经网络,仅需毫秒级时间即可获得接近最优解的码率分配结果;

3)本发明设计了一种跨层优化的DASH业务方案,同时调控应用层的视频码率和网络层的带宽,使得用户的服务质量有较大的提高,可以保证视频的流畅播放,同时可以获得尽可能高的视频码率和较高的服务质量公平性。

附图说明

图1是本发明基于深度学习的智能视频码率调整及带宽分配方法的具体实施方式流程图;

图2是本发明中码率分配神经网络的结构图;

图3是本实施例中智能码率调整及带宽分配应用场景示意图;

图4是本实施例中中心控制器与用户之间的信息交互示意图。

具体实施方式

下面结合附图对本发明的具体实施方式进行描述,以便本领域的技术人员更好地理解本发明。需要特别提醒注意的是,在以下的描述中,当已知功能和设计的详细描述也许会淡化本发明的主要内容时,这些描述在这里将被忽略。

实施例

图1是本发明基于深度学习的智能视频码率调整及带宽分配方法的具体实施方式流程图。如图1所示,本发明基于深度学习的智能视频码率调整及带宽分配方法的具体步骤包括:

S101:获取系统数据:

记接入核心网络的瓶颈链路控制器所控制的可同时请求DASH业务流的最大用户数量为N,根据实际情况设置M个用户可选码率档位,码率档位的序号越大码率越高。

S102:构建并训练码率分配神经网络:

为了快捷、准确地进行码率分配,本发明需要构建一个码率分配神经网络。图2是本发明中码率分配神经网络的结构图。如图2所示,本发明中码率分配神经网络包含输入层、全连接隐藏层和输出层,其中输入层包含2N+1个神经单元,输入为2N+1维状态向量I=(W,b1,s1,b2,s2,…,bN,sN),其中W表示瓶颈链路控制器接入核心网络的可用带宽归一化值,bn、sn分别表示第n个用户的缓存视频时长归一化值和活跃状态,sn=1表示用户活跃,需要进行码率分配,sn=0表示用户不活跃,不需要进行码率分配,n=1,2,…,N;输出层包含N个独立输出层,每个独立输出层包含M+1个神经单元,第n个独立输出层的输出向量为 On=(rn,0,rn,1,…,rn,M),其中rn,m表示第n个用户在下一时隙选择第m档码率的概率,其取值范围为[0,1],m=0,1,…,M,m=0表示不分配码率。全连接隐藏层的神经单元数量可以根据实际需要设置。

设置D个用户状态和可用带宽场景,根据用户缓存视频时长的最大值、最小值以及可用带宽的最大值和最小值,对用户缓存视频时长和可用带宽进行归一化,确定对应的状态向量其中d=1,2,…,D,Wd表示第d种场景中瓶颈链路控制器接入核心网络的可用带宽归一化值,分别表示第d种场景中第n个用户缓存视频时长的归一化值和活跃状态;根据理论分析得到该场景中每个用户在下一时隙所选择的码率,将码率分配方案向量中对应元素置1,其余元素置为0,表示第d种场景中第n个用户在下一时隙选择第m档码率,表示第d种场景中第n个用户在下一时隙不选择第m档码率。

将每个场景的状态向量作为输入,N个用户的码率分配方案向量作为期望输出,对码率分配神经网络进行训练。

S103:获取当前用户状态:

在每个决策时隙到来时,获取当前瓶颈链路控制器控制的DASH业务用户数量N′和瓶颈链路控制器接入核心网络的可用带宽W*,可用带宽可以直接抓取网端的实际可用带宽或调用可用带宽估计器获取。根据用户缓存视频时长的最大值、最小值以及可用带宽的最大值和最小值,对用户缓存视频时长和可用带宽进行归一化,得到用户缓存视频时长归一化值bn′和可用带宽归一化值W,同时确定各个用户活跃状态sn′,n′=1,2,…,N′。构建当前状态向量 I=(W,b1,s1,b2,s2,…,bN,sN),当n≤N′,bn=bn′,sn=sn′,否则bn=0,sn=0。

对于用户的活跃状态,本实施例中提供了一种用户活跃状态判断方法:

如果用户离去则此用户DASH业务流请求全部完成,或者用户缓存视频时长超过决策时隙,表示此用户下一个时隙内无需带宽下载也不会发生视频卡顿,将该两类用户状态置为0,表示其不活跃,下一时隙无需分配码率,其他用户状态置为1,表示其活跃,下一时隙必须分配码率。

S104:确定码率分配方案:

将步骤S103得到的当前状态向量I=(W,b1,s1,b2,s2,…,bN,sN)输入至步骤S102 训练好的码率分配神经网络中,得到每个用户在下一时隙的码率分配方案向量 On=(rn,0,rn,1,…,rn,M),对于当前的N′个用户,选择其码率分配方案向量中概率最大值所对应的码率档位作为该用户下一时隙的码率档位Rn′,Rn′=0,1,…,M,得到码率分配方案。

码率分配神经网络得到的码率分配方案,有一定概率会出现以下三种情况:有用户下一时隙无需分配码率,却被分配了码率;有用户下一时隙需要分配码率,但是并没有进行分配;所有用户整体分配码率过高,导致总带宽分配不足,下一时隙用户看视频卡顿。此三种情况违背场景业务要求,为了避免这些情况,还可以对码率分配方案进行可行性检查,将码率分配结果微调至满足场景业务要求,具体方法如下:

1)对于当前N′个DASH业务用户中的第n′个用户,如果其用户活跃状态 sn′=0,而为其分配的码率档位Rn′≠0,则令Rn′=0,即调整为不分配码率;

2)对于当前N′个DASH业务用户中的第n′个用户,如果其用户活跃状态 sn′=1,而为其分配的码率档位Rn′=0,则令Rn′=1,即调整为分配最低档位码率;

3)在上述两项调整完成后,利用如下公式计算当前码率分配方案下保证所有用户视频不卡顿所需的最小总带宽W':

其中,rn′表示根据码率档位Rn′所确定的码率,π表示码率调整和带宽分配的决策时隙。

如果最小总带宽W'小于等于当前可用带宽W*,则说明当前可用带宽可以满足所有用户需要,因此不作任何操作,否则说明当前可用带宽不能在本套码率分配方案下,保证每个用户视频不卡顿,因此将码率最高用户中随机一位用户的码率降低一档,再次计算最小总带宽W',重复上述处理过程,直至W'<W*

S105:带宽分配:

根据当前可用带宽以及码率分配方案确定的当前N′个用户的码率,计算出分配给每个用户的带宽,完成带宽分配。

本实施例中基于线性规划模型来进行带宽分配,其具体方法如下:

根据当前可用带宽和码率分配方案,构建如下线性规划模型:

subject to:

βn'-ωn'≤0

其中,Sn′表示第n′个用户的缓存时长对于用户服务质量的贡献,计算公式如下:

ωn′表示第n′个用户的带宽分配结果,rn′表示第n′个用户的码率,βn′表示保证第n′个用户视频不卡顿播放所需分配最小的带宽。

运用基本线性规划求解方法求解得到各个用户带宽分配结果。

在完成码率分配和带宽分配后,将码率分配结果和带宽分配结果下发至用户端,在下一次决策时隙到来时进行下一轮决策。

本发明可运用于多个DASH服务竞争同一瓶颈链路的场景中,常见场景包括:

一、家庭网络:家庭中多个家庭成员,可能使用个人电脑、智能手机、平板电脑、智能电视等终端观看视频,由于行为的随机性和视频长短不同,将具有频繁的请求数量变化,此时智能的码率选择和带宽分配尤为重要,可使用本发明方案;

二、超密集蜂窝网络:同一小区内用户智能设备通过基站连接核心网获取 DASH视频,用户数量的高度动态性和视频本身特性的差异需要合理的资源分配,故可使用本发明方案。

为了更好地说明本发明的技术方案,采用一个具体实例对本发明进行举例说明。

图3是本实施例中智能码率调整及带宽分配应用场景示意图。如图3所示,本实施例中智能码率调整及带宽分配应用场景为家庭网络场景,瓶颈链路控制器为中心控制器,其所控制的最大用户数量N=10,即可容纳最多10人同时请求DASH业务流,系统中有2.5Mbps至10Mbps的可变带宽W,可选码率档位共5档:350Kbps、700Kbps、1Mbps、1.5Mbps和2.5Mbps。设置决策时隙为π=5 秒,用于归一化的用户视频缓存时长最大值为5秒(即超过5秒的视频缓存时长其归一化值均为1),最小值为0秒。本发明可以在中心控制器中实现,也可以采用单独的决策模块实现,本实施例在中心控制器中部署用于实现本发明的功能模块。

根据以上信息,可知本实施例中码率分配神经网络的输入层包含21个神经单元,其输入为21维状态向量I=(W,b1,s1,b2,s2,…,b10,s10),输出层包含10个独立输出层,每个独立输出层包含6个神经单元,第n个独立输出层的输出向量为 On=(rn,0,rn,1,…,rn,5)。全连接隐藏层包括2层,其宽度均为128,隐藏层激活函数为ReLU(Rectified Linear Unit),网络更新使用RMSprop(Root Mean Square Prop) 优化器,学习率为1×10-4,使用所有输出层数据和标记数据的交叉熵之和作为损失函数,并添加L2范数防止过拟合。设置若干用户状态和可用带宽场景,获取对应的状态向量,然后利用混合整数规划求解出码率分配的最优解,得到码率分配方案向量作为标记数据,对码率分配神经网络进行训练。

在每个决策时隙到来时,中心控制器获取当前控制的用户数量和中心控制器接入核心网络的可用带宽。假设当前请求DASH业务流的用户数量为5,那么其状态向量长度为1+2*5=11,然后添0补足至21维状态向量。将该状态向量输入训练好的码率分配神经网络中,得到码率分配方案。然后对码率分配方案进行可行性检查,调整得到最终的码率分配方案。然后基于本实施例的线性规划模型,得到带宽分配结果。中心控制器将码率分配方案和带宽分配结果下发至各个用户及网络设备。

图4是本实施例中中心控制器与用户之间的信息交互示意图。如图4所示,中心控制器和用户客户端的交互可以概括为以下步骤:

步骤1:中心控制器首先向所有提出DASH业务流请求的接入用户终端发送信息收集请求,以获取此时用户视频缓存状况以及用户活跃状况;

步骤2:每个请求DASH业务流的用户客户端,接收到中心控制器的信息收集请求后,将当前播放的视频缓存时长、此视频是否已经缓存完成等信息,传输给中心控制器;

步骤3:中心控制器收集到用户信息后,抓取网关处实际可用总带宽,进而根据所收集到的信息采用本发明快速决策得到每个用户下一决策时隙内的码率和带宽分配;

步骤4:中心控制器将决策出的用户下一决策时隙内码率分发给对应的用户客户端,并将带宽分配结果写入网关控制器;

步骤5:用户客户端收到中心控制器下发的码率选择方案,应用该码率并等待接收视频,向中心控制器发出确认信息;

步骤6:中心控制器收到用户确认信息,等待至下一决策时隙,从步骤1重复上述操作。

尽管上面对本发明说明性的具体实施方式进行了描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1