基于深度强化学习的传输编码联合码率自适应控制方法
未命名
10-09
阅读:181
评论:0
1.本发明涉及技术领域,具体涉及一种基于深度强化学习的传输编码联合码率自适应控制方法。
背景技术:
2.视频内容在当今互联网的流量中占有很大比例。目前的服务提供商主要使用自适应流媒体传输技术来传输视频,即根据一定的算法和规则,动态地切换视频码率,以提高用户体验质量(quality of experience,qoe)。随着人们生活方式的改变,实时视频通信(real time video communications,rtvc)业务迅猛发展,其内容包括使用普通相机拍摄的自然视频,以及通过智能电子设备生成的屏幕视频两类,有着内容复杂度高、种类多样、场景切换迅速等特点。此外,不同于视频点播,实时视频通信对于延迟的要求极为苛刻,这使得自适应码率算法(adaptive bitrate,abr)无法在播放端维持较大的播放缓存,对于网络波动的抵抗能力大大降低。
3.传统的自适应码率算法大多使用固定的控制规则来做出码率决策,它们的不同的点主要在于所参考的指标,大体可以分为以下三类:(1)基于网络吞吐量的预测;(2)基于播放缓存区的预测;(3)以上两种方法的结合。这些算法都是启发式的,在具体部署时需要大量的调整,拥有较差的泛化性。近年来,基于深度强化学习的自适应码率算法取得了突破性进展,涌现出大量优秀的工作如pensieve、oboe、ars(adaptive real-time streaming)等。其主要思想为采集一些当下的信息作为神经网络的输入,通常包括之前编码单元的编码参数和编码结果、当下网络状况、缓冲区占用情况等。针对每个编码单元,神经网络经过计算在动作空间中选择一个作为码率决策,编码器根据编码决策对编码单元进行编码并最终将视频传输至到客户端,客户端根据所采用的qoe信号向强化学习智能体(agent)反馈奖励或惩罚,智能体以最大化累积奖励为目标更新神经网络参数。其中pensieve和oboe面向的是点播场景,而ars面向的是实时视频通信场景。
4.但是,已有码率自适应算法均存在一些不足,主要有两大方面,也即保证用户qoe所面临的两大挑战:(1)决策易过时。在现实世界中,用户所拥有的网络带宽是在毫秒级上变化的,自适应码率传输算法必须及时调整决策才可以适应网络带宽的变化,否则将很容易因为过高的丢包率和重传率而迟迟无法复播。然而当下的编码器码率控制技术大多需要秒级以上的时间来将编码码率控制在目标范围。为了使得编码器能够正常工作,当下主流的自适应码率传输算法大多采用秒级的决策颗粒度,这就导致自适应码率传输算法的响应远远滞后于带宽的变化。(2)无法适配不同视频内容。由于实时视频通信场景下的视频内容有着内容复度高、种类多样、场景切换迅速等特点,传统的编码器码率控制算法的鲁棒性较差,因此仅在编码层面也很容易产生码率的巨幅波动。当下主流的自适应码率传输算法都固守于对于编码码率进行决策,而缺少与编码器的交互,更无法针对不同视频内容进行针对性决策。
技术实现要素:
5.针对以上现有技术中存在的缺陷,本发明的目的在于提供一种基于深度强化学习的传输编码联合码率自适应控制方法,以进一步提高用户体验质量。
6.为达上述目的,本发明采用的技术方案如下:
7.基于深度强化学习的传输编码联合码率自适应控制方法,包括如下步骤:
8.(1)由内容提供端生成原始视频,然后利用视频切片的操作将原始视频划分为视频帧组,计算出每个视频帧组所包含视频帧的空间复杂度信息和时间复杂度信息作为内容复杂度状态;
9.(2)分别从视频编码器收集历史视频帧类型和历史压缩参数crf值作为编码器状态,从视频接收端收集丢包率、平均帧传输延迟和卡顿率作为网络传输状态;
10.(3)针对每个视频帧组,根据所述内容复杂度状态和网络传输状态,利用神经网络得到视频编码的压缩参数crf值;然后对每个视频帧组进行编码后打包传输;其中,所述神经网络对所述内容复杂度状态和编码器状态进行联合提取特征,对所述网络传输状态进行单独提取特征,再将两部分特征融合以进一步提取高维特征;
11.(4)视频发送端以帧为单位依次发送视频帧组的视频流,接收端在本地维护一个接收缓冲区和一个播放缓冲区;未接收完整的帧暂存于所述接收缓冲区,接收完整且可解码的连续帧移交至所述播放缓冲区依次播放;根据所述接收缓冲区中未接收完整的帧计算出当前实时丢包率和平均帧传输延迟,根据所述播放缓冲区的剩余帧数计算出卡顿率,以此反映网络吞吐量的波动和编码码流大小的波动;
12.(5)根据传输过程中回传给智能体的状态信息,计算用户体验质量,更新神经网络的策略参数,输出下一个压缩参数crf的决策;
13.(6)重复上述步骤(1)至(5),直至收敛到最优的决策策略参数。
14.进一步地,步骤(3)中,神经网络的输入包括网络传输层和视频应用层的共七个状态参数:视频帧组的内容空间复杂度、内容时间复杂度、压缩参数crf值、i帧标记、丢包率、平均帧传输延迟和卡顿率,其中,i帧标记用于表示在一个视频帧组内是否包含视频i帧。
15.进一步地,步骤(3)中,采用视频帧级别的决策颗粒度。
16.进一步地,所述神经网络包括两个第一层gru循环层、第二层全连接层和第三层全连接层,其中,一个第一层gru循环层用于提取所述内容复杂度状态和编码器状态,第二个第一层gru循环层用于提取所述网络传输状态;两个第一层gru循环层的输出经过融合后进入第二层全连接层。
17.进一步地,所述神经网络的输出为下一组视频帧组所采取的压缩参数较上一个压缩参数的相对变化量。
18.相比现有技术,本发明的方法通过在目标码率决策问题中融入编码码率控制,将码率决策改为直接对编码所需压缩参数进行决策,并在输入状态中考虑了原始图像的时空复杂度信息和编码器状态信息,通过感知视频内容提升了算法对于不同视频类型的适应能力,通过直接针对质量编码避免了基于码率的决策的不准确性,降低了对于网络带宽的滥用,提高有效利用带宽的能力。此外,在码率决策细粒度上,传统的基于码率的决策方法受困于通用编码器的性能,只能在秒级做出响应,本发明采用通过直接针对帧级图像质量决策,实现了粒度更小的决策周期,可以使决策在时间维度上匹配网络的变化,及时应对网络
波动的同时避免神经网络难以收敛,提升了对于网络状况的应变能力。
附图说明
19.图1是本发明控制方法中自适应流媒体传输系统架构图。
20.图2是使用不同模式编码的视频vmaf分数波动,(a)使用固定比特率模式编码,(b)使用crf值编码。
21.图3是本发明实施例中神经网络结构示意图。
22.图4是本发明与ars在测试集上取得的性能对比图,以累积分布函数的形式展示,(a)本发明与ars在视频码率节省上的对比,(b)本发明与ars在视频画面质量vmaf分数上的对比,(c)本发明与ars在视频延迟指标上的对比,(d)本发明与ars在视频卡顿指标上的对比。
具体实施方式
23.下面将结合附图及具体实施例对本发明进行详细描述。
24.本发明控制方法的整体系统框架如图1所示,图中实线表示视频内容从产生、编码、打包传输、最终到达播放端的正向传播过程,虚线表示码率自适应控制方法需要从正向传播过程各个环节收集到的状态信息的回传过程。其具体工作流程如下:
25.(1)由内容提供端生成原始视频,然后利用视频切片的操作将原始视频划分为视频帧组,根据国际标准itu-rbt.1788给出的定义计算出每个视频帧组所包含视频帧的空间复杂度信息和时间复杂度信息作为内容复杂度状态;
26.(2)分别从编码器收集历史视频帧类型和历史压缩参数crf值,从视频接收端收集丢包率、平均帧传输延迟和卡顿率作为网络传输状态;
27.(3)针对每个视频帧组,利用神经网络根据前两步收集到的状态给出视频编码的压缩参数crf值;然后对每个视频帧组进行编码后打包传输;具体来讲,神经网络对编码器和视频复杂度状态进行联合提取特征,对网络传输状态进行单独提取特征,再将两部分提取特征融合以提取高维特征;
28.(4)视频发送端以帧为单位依次发送视频帧组的视频流,接收端在本地维护一个接收缓冲区和一个播放缓冲区;未接收完整的帧暂存于所述接收缓冲区,接收完整且可解码的连续帧移交至所述播放缓冲区依次播放;根据所述接收缓冲区中未接收完整的帧计算出当前实时丢包率和平均帧传输延迟,根据所述播放缓冲区的剩余帧数计算出卡顿率,以此反映网络吞吐量的波动和编码码流大小的波动;
29.(5)根据传输过程中回传给智能体的状态信息,计算用户体验质量,更新神经网络的策略参数,输出下一个压缩参数crf的决策;
30.(6)重复上述步骤(1)至(5),直至收敛到最优的决策策略参数。
31.本实施例的码率自适应控制方法采用经典深度强化学习a3c算法为例进行训练和推理,并使用多智能体并行训练,但也支持采用其他dqn、ddpg、ppo等强化学习算法。本实施例采用h.264编码标准的压缩参数crf进行编码控制,但也支持采用h.265、vp8、vp9等其他编码器。
32.1、动作集
33.在码率自适应控制方法给出的决策上,现有码率自适应控制方法中神经网络所使用的动作空间都为一组离散的码率,但是对于许多rtvc业务视频内容来说(如文档演示、网页浏览等屏幕视频),一些持续静止的画面以很小的码率编码就可以获得很高的质量,因此现有码率自适应方法都会对网络带宽造成一定的滥用。而本发明考虑使用编码所需crf作为决策,因为crf值相较于平均码率与人眼的观感线性关系更好,可以更好地反映用户体验质量。图2展示了同一段视频分别使用高、中、低三种质量的crf和高、中、低三种质量的固定比特率模式进行编码,视频的观感波动情况。视频观感使用netflix公司开发的用于主观视频质量评价的画面全参考质量指标融合vmaf(video multimethod assessment fusion)进行计算。从图中可以看出,在整段视频的跨度内,相比较于使用固定比特率编码,直接使用crf编码视频质量的波动更小。
34.为了保证视频质量没有大幅波动,本实施例的动作集设置为crf值的相对变化量,动作集包含[+8,+4,+2,0,-1,-2,-4]七种动作,对应下一次编码压缩crf值相对于上一次的改变量。最小crf值为20,对应所能编码的最高质量;最大crf值为42,对应所能编码的最低质量。这样的设置不仅基本覆盖了用户所需要的全部清晰度,也避免了动作集过大带来的神经网络难以收敛的问题。值得注意的是,更改最小、最大crf值以及相对变化量,本发明提供的方案同样适用。
[0035]
在实际训练过程中,神经网络的输出为采取每一个相对变化量的概率,相加等于1,如下式所示。之后根据当前策略的概率分布随机确定一个相对变化量作为决策。
[0036][0037]
其中p
π
表示在策略π和状态s
t
下做出动作ai的概率。
[0038]
值得注意的是,除了上述使用离散相对变化量作为动作集的方案外,本发明提供的方案同样适用使用绝对量或连续值作为动作集。采用绝对量时,神经网络的输出值a为一个位于[crf
min
,crf
max
]区间的数,直接获取下一个crf值,其中crf
min
和crf
max
分别表示决策的最小crf值和最大crf值。采用连续量时,神经网络的输出值a为一个位于[-8,4]区间的浮点数,下一crf决策的计算公式如下:
[0039]
crf=crf
last
+α
ꢀꢀꢀ
(2)
[0040]
其中crf
last
表示上一个编码压缩参数。
[0041]
2、状态集
[0042]
本实施例共设置了七个状态作为输入参数:之前视频帧组的内容空间复杂度、内容时间复杂度、压缩参数crf值、i帧标记、丢包率、平均帧传输延迟和卡顿率。本实施例将状态输入设置为过去6个视频帧组的状态信息,基本上覆盖了决策所需要的全部信息,同时本发明也支持超过或小于6个视频帧组的状态输入。
[0043]
之前视频帧组的内容空间复杂度和时间复杂度由国际标准itu-rbt.1788给出的定义直接算出。这两个参数可以有效表达当前所传输视频的编码复杂度。
[0044]
之前视频帧组的crf也即智能体之前做出的动作,该参数可以在一定程度上反应网络吞吐量,并限制智能体改变crf的幅度过大。
[0045]
在神经网络输入变量中,本发明引入i帧标记,i帧标记用于表示在下一个视频帧组内是否包含视频i帧。该参数反映了对于不同的视频帧组,智能体采取策略的偏重不同,
提升算法对视频块大小波动的抵抗能力。对于包含i帧的视频帧组,智能体应优先保证视频帧组能接收到,在此基础上尽可能提高画面质量。对于仅包含p帧的视频帧组,智能体可以以更激进的策略提高画面质量。
[0046]
丢包率和平均帧传输延时都是当前网络状况的体现。丢包率计算公式如下:
[0047][0048]
其中p
lost,i
为接收缓冲区第i帧发生丢失的数据包数,p
total,i
为接收缓冲区第i帧总的数据包数,n为当前接收缓冲区的帧数。平均帧传输延迟计算公式如下:
[0049][0050]
其中t
rcv,i
为接收缓存区第i帧的接收时间戳,在未完整接收时默认值为-1,并在计算时用当前时间戳替代。t
snd,i
为接收缓存区第i帧的发送时间戳,t
rvc,i-t
snd,i
即为第i帧的传输延迟。n为当前接收缓冲区的帧数。
[0051]
卡顿率定义为在过去一个视频帧组内卡顿的帧数与总帧数的比值。视频卡顿对于用户qoe的影响比重较大,该参数的输入可以让智能体学习到如何有效避免卡顿。
[0052]
本发明与其他现有方案不同的是,没有使用实际接收码率和播放缓冲区占用率这两个指标。原因如下:(1)对于实际接收码率,因为本发明没有使用固定码率进行编码,在一段视频的跨度内码率波动很大。并且对于不同的视频内容,码率的分布情况也不一样。因此,当网络吞吐量没有占满时,即接收码率等于视频码率时,接收码率不适合用来反映网络吞吐量变化情况。(2)对于播放缓冲区占用率,这是一个在点播场景下常用的指标。但是在rtvc场景下,因为视频内容是实时产生的,为了保证播放延迟,除非用户重新开始新的会话或者发生较为严重的卡顿,码率自适应方法都不能主动增加本地视频缓存。因此播放缓冲区占用率不能作为反映网络吞吐量波动的指标。
[0053]
3、决策细粒度
[0054]
现有码率自适应方法所选择的质量调整细粒度大多为秒级,即选择1~4秒为一个视频块,但是对于视频质量秒级的调整无法对抗网络吞吐量毫秒级的波动,由此会增加视频的卡顿。而本发明采用帧级的决策细粒度。在默认30帧/秒的视频帧率下,本发明采用每6帧进行一次决策。这样设置不仅可以使算法及时应对网络波动,也可以避免因为决策太多而带来的神经网络难以收敛的问题,提高了算法对于网络吞吐量波动和编码码率波动的对抗能力。值得注意的是,本发明支持大于或小于6帧(如1帧)颗粒度的决策,使用其他颗粒度决策并不超出本发明保护范围。
[0055]
4、神经网络
[0056]
在神经网络设置上,为了降低计算开销,本实施例参考循环神经网络(recurrent neural network,rnn)和深度神经网络(deep neural networks,dnn),采用了轻量级的三层神经网络,如图3所示。actor网络结构设计如下:第一层为gru循环层。为尽可能提取有效
特征,内容复杂度状态和编码器状态使用gru共同提取,网络传输状态使用gru单独提取。两部分循环层的输出经过融合(concat)后进入第二层。第二层和第三层使用全连接层(fullyconnected,fc)。前两层使用线性激活函数leaky relu,有效解决梯度消失问题和输入为负时的神经元死亡问题。最后一层使用softmax激活函数将输出转换为动作集的概率分布。critic网络与actor网络基本相似,不同的是critic网络最后没有使用softmax激活函数而是也使用了leaky relu激活函数。全连接层的加入使得神经网络可以更准确精细地对于状态进行分类,而循环层的加入弥补了全连接层对于时间序列上的变化无法处理的问题。值得注意的是,当使用连续值作为动作集时,本发明在actor网络最后一层上使用linear等线性激活函数,使得actor输出为一维浮点数。
[0057]
5、效果对比
[0058]
本发明与ars的方案进行了对比,对比指标包括视频码率、视频质量、延迟和卡顿,每条网络吞吐量轨迹测试数据计算一个值。图4展示了在测试集上本发明与ars的对比,以累积分布函数的形式展示。其中,视频码率、延迟和卡顿越小(曲线越靠近左上角)越好,视频质量vmaf越大(曲线越靠近右下角)越好。从中可以看出,本发明在保持基本一致的视频质量的同时,有效节省了码率,并降低了延迟与卡顿。具体来说,本发明相较于ars,在达到几乎相同画面质量的同时,节省了12.3%的码率,降低了39.5%的延迟和26.1%的卡顿,因此取得了优异的qoe。
技术特征:
1.基于深度强化学习的传输编码联合码率自适应控制方法,其特征在于,包括如下步骤:(1)由内容提供端生成原始视频,然后利用视频切片的操作将原始视频划分为视频帧组,计算出每个视频帧组所包含视频帧的空间复杂度信息和时间复杂度信息作为内容复杂度状态;(2)分别从视频编码器收集历史视频帧类型和历史压缩参数crf值作为编码器状态,从视频接收端收集丢包率、平均帧传输延迟和卡顿率作为网络传输状态;(3)针对每个视频帧组,根据所述内容复杂度状态和网络传输状态,利用神经网络得到视频编码的压缩参数crf值;然后对每个视频帧组进行编码后打包传输;其中,所述神经网络对所述内容复杂度状态和编码器状态进行联合提取特征,对所述网络传输状态进行单独提取特征,再将两部分特征融合以进一步提取高维特征;(4)视频发送端以帧为单位依次发送视频帧组的视频流,接收端在本地维护一个接收缓冲区和一个播放缓冲区;未接收完整的帧暂存于所述接收缓冲区,接收完整且可解码的连续帧移交至所述播放缓冲区依次播放;根据所述接收缓冲区中未接收完整的帧计算出当前实时丢包率和平均帧传输延迟,根据所述播放缓冲区的剩余帧数计算出卡顿率,以此反映网络吞吐量的波动和编码码流大小的波动;(5)根据传输过程中回传给智能体的状态信息,计算用户体验质量,更新神经网络的策略参数,输出下一个压缩参数crf的决策;(6)重复上述步骤(1)至(5),直至收敛到最优的决策策略参数。2.根据权利要求1所述的基于深度强化学习的传输编码联合码率自适应控制方法,其特征在于,步骤(3)中,神经网络的输入包括网络传输层和视频应用层的共七个状态参数:视频帧组的内容空间复杂度、内容时间复杂度、压缩参数crf值、i帧标记、丢包率、平均帧传输延迟和卡顿率,其中,i帧标记用于表示在一个视频帧组内是否包含视频i帧。3.根据权利要求1所述的基于深度强化学习的传输编码联合码率自适应控制方法,其特征在于,步骤(3)中,采用视频帧级别的决策颗粒度。4.根据权利要求1所述的基于深度强化学习的传输编码联合码率自适应控制方法,其特征在于,所述神经网络包括两个第一层gru循环层、第二层全连接层和第三层全连接层,其中,一个第一层gru循环层用于提取所述内容复杂度状态和编码器状态,第二个第一层gru循环层用于提取所述网络传输状态;两个第一层gru循环层的输出经过融合后进入第二层全连接层。5.根据权利要求1所述的基于深度强化学习的传输编码联合码率自适应控制方法,其特征在于,所述神经网络的输出为下一组视频帧组所采取的压缩参数较上一个压缩参数的相对变化量。
技术总结
本发明提供了一种基于深度强化学习的传输编码联合码率自适应控制方法,其步骤如下:(1)将原始视频划分为视频帧组,计算出视频帧的空间复杂度和时间复杂度信息;(2)针对每个视频帧组,利用神经网络根据视频复杂度信息、网络状况和编码器信息给出视频编码的压缩参数值,然后进行编码后打包传输;(3)视频发送端以帧为单位依次发送视频流,接收端在本地维护一个接收缓冲区和一个播放缓冲区;(4)根据回传的状态信息计算用户体验质量,更新神经网络的参数,输出下一个视频压缩参数的决策;(5)重复上述步骤,直至收敛到最优决策策略。本发明直接对编码所需压缩参数进行决策,避免了基于码率的决策的不准确性,降低了对于网络带宽的滥用。滥用。滥用。
技术研发人员:陈浩 李岳恒 马展
受保护的技术使用者:南京大学
技术研发日:2022.03.24
技术公布日:2023/10/8
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
