一种基于自适应学习的实时视频传输方法

文档序号:31601713发布日期:2022-09-21 09:05阅读:102来源:国知局
一种基于自适应学习的实时视频传输方法

1.本发明涉及实时视频传输,特别是涉及一种基于自适应学习的实时视频传输方法。


背景技术:

2.随着互联网数据类型的不断丰富与发展,多媒体数据已经成为互联网数据流量中重要的组成部分之一。作为多媒体应用的重要类型之一,实时流媒体(realtime multimedia streaming)服务以其实时性、便捷性和交互性等特点在近年来取得了飞速的发展和广泛的应用,主要形式包括实时视频直播和多人视频会议等。
3.实时流媒体应用在教育、办公、消费等领域发挥了重大作用,对部分单位企业的工作方式和人们的生活方式产生了深远的影响。例如,基于多人视频会议进行线上授课和远程办公、众多线下实体企业选择利用视频直播的方式进行在线推广和直播带货等,这种新的模式也为消费者提供了更为便利的购物和消费体验。而基于实时流媒体传输的视频通信、视频会议以及视频分析等正是推动这些方面建设和发展的关键所在。因此,如何对实时流媒体的传输进行优化从而保障实时流媒体服务的质量具有重大的研究意义和产业需求。
4.由于实时流媒体应用大多是面向用户的,因此用户的体验质量(quality of experience,简称qoe)往往是衡量实时流媒体应用的重要评价标准之一。实时流媒体传输中影响qoe的因素主要包括三个方面,即吞吐量(throughput),延迟(delay)和网络丢包(network loss)。其中,吞吐量决定了视频可以以多高的码率进行传输。如果网络的吞吐量充足,则可以支持720p,1080p,甚至是4k全高清视频的传输,从而提升用户的观感体验。延迟包括网络传输以及中间节点的计算例如视频转码和缓存等造成的传输时延。
5.考虑到相对于传统的流媒体传输,例如视频点播服务,实时流媒体传输有着更强的实时性要求、更高的网络带宽需求以及更多元 化的用户体验构成,因此更加难以保障用户的 qoe。具体而言,现阶段面向高 qoe 的实时流媒体传输存在以下方面的挑战:基于tcp 的流媒体传输系统并不适用于实时流媒体。传统的针对视频点播服务(video on demand, 简称vod)的流媒体传输主要是使用http协议传输视频流,其下层采用tcp 作为传输层协议。tcp 作为可靠的传输协议可以通过超时重传等机制来保证数据包都被正确有序地接收。然而考虑到 tcp 所带来的的高延迟无法满足实时性的要求,实时流媒体传输系统通常选择更快但是非可靠的 udp 作为传输层协议。
6.单纯使用udp 协议的视频传输系统,会引入网络丢包问题。udp非可靠的特性使其避免了长时间超时等待重传因而视频传输的延迟更低。然而这种策略的代价是udp 并不会自动地 处理网络的丢包问题,因此会造成较高的丢包率,导致视频画面扭曲或缺失,严重影响用户的观看体验。
7.传统的码率控制算法无法解决网络丢包带来的qoe 下降,流媒体传输系统中广泛应用了码率自适应算法来动态调节视频的码率。近年来学术界提出了多种码率自适应算法(adaptive bitrate algorithm,简称 abr算法),其主要决策依据是当前缓存(buffer)大
小和对未来吞吐量的预测,有些已经被 广泛应用于基于 http 的视频传输中,例如 dash(dynamic adaptive streaming over http)。然而此类算法都是考虑基于 tcp 的可靠传输的情形,并没有考虑在非可靠的udp 传输下的丢包问题,因此不能很好的适用于实时流媒体传输的 qoe 优化。
8.实时流媒体传输对于延迟有着严格的要求,其允许的范围通常在200ms至800ms。数据包超过这一时间范围到达将被认为超时并被丢弃,称之为延迟丢包。较高的延迟丢包率会导致视频播放的卡顿,严重损害用户的qoe。网络丢包指数据包在网络传输过程中由于发生比特错误(bit error)、拥塞(congestion)和缓存溢出(buffer overflow)等原因导致数据包无法及时地到达接收端,或者到达了接收端但出现数据包错误从而被丢弃的情况。在实时流媒体传输中,网络丢包会导致视频画面在视觉上的扭曲、模糊从而导致画面失真,降低用户的qoe。


技术实现要素:

9.本发明的目的在于克服现有技术的不足,提供一种基于自适应学习的实时视频传输方法,通过udp-lite可以接收部分错误的特性,减少重传并降低视频的延迟,并使用前向纠错技术,降低了错误导致的重传,并降低视频的时延。
10.本发明的目的是通过以下技术方案来实现的:一种基于自适应学习的实时视频传输方法,包括以下子步骤:s1.在开始进行实时视频传输之前,发送端初始化配置参数,包括比特率、udp-lite校验范围、fec纠错数据包配比、最大数据包长度mtu;接收端部署强化学习模型,并初始化最大播放延迟、gop和fps。
11.s2.实时视频传输过程中,发送端读取当前配置中的比特率,并使用h.264视频编码器对当前的原始视频进行编码;s3.发送端读取当前配置中的mtu、udp-lite校验比例、fec纠错数据包的比例,对编码后的视频数据打包,然后发送给接收端;s4.接收端接收到数据包后,将数据包放入待检测队列,并进行udp-lite校验和丢失数据包的恢复;s5.接收端统计数据包传输过程中的相关参数,并提供给强化学习模型;传输过程中的相关参数包括传输超时的网络数据、重传的网络数据和视频效果数据;s6.强化学习模型在得到输入数据后,计算强化学习奖惩值,根据奖惩值计算神经网络的梯度,并使用ppo算法对神经网络进行更新;更新后的智能体决策出下一时刻的各类参数,包含视频的比特率、udp-lite的校验比例、以及fec纠错数据包的配比;s7.接收端将智能体的决策结果反馈给发送端,发送端根据决策结果,修改视频的比特率、udp-lite的校验比例、以及fec纠错数据包的配比,用于后续视频传输过程使用。
12.本发明的有益效果是:本发明基于udp协议,以克服tcp协议传输慢的特点。通过udp-lite可以接受部分错误的特性,减少重传并降低视频的延迟。使用前向纠错技术,通过占用更多的带宽,来降低错误导致的重传,并降低视频的时延。通过调整bitrate,来调整视频的大小,以适应不同的网络状况。
附图说明
13.图1为本发明的框架原理示意图;图2为本发明的方法流程图;图3为本发明具体的传输过程示意图。
具体实施方式
14.下面结合附图进一步详细描述本发明的技术方案,但本发明的保护范围不局限于以下所述。
15.本发明一种基于自适应学习的实时视频传输方法,克服传统视频传输机制,在实时视频的苛刻时延要求下表现差强人意的不足。本发明通过更换底层协议、引入向前纠错技术、并结合强化学习算法的决策,最大化视频的用户体验。接收端包含网络分析、视频分析,以及决策器,发送端包含执行器。从技术的角度,本发明使用了udp-lite技术,前向纠错技术(fec),和强化学习算法ppo。具体的实现上,还包括视频编码、数据包的打包、数据包重组、视频解码几个部分。
16.如图1所示,接收端需要先收集各类网络、视频的数据进行分析,并将这些信息提供给决策器的智能体进行学习和决策。这些信息包括网络的时延、发送的数据包、丢包率、视频大小、当前视频质量。智能体在实时的感知当前网络状况后,通过ppo算法进行学习,并决策出最佳的udp-lite的校验和覆盖范围、向前纠错的比例、比特率;发送端的执行器会根据决策结果,对未来要发送的视频进行采样。完成视频采样后,会根据对应的udp-lite协议进行打包。然后通过fec技术,对udp-lite校验的部分数据,配置对应的纠错数据包。从技术设计角度看:本发明底层基于udp协议,以克服tcp协议传输慢的特点。通过udp-lite可以接受部分错误的特性,减少重传并降低视频的延迟。使用前向纠错技术,通过占用更多的带宽,来降低错误导致的重传,并降低视频的时延。通过调整bitrate,来调整视频的大小,以适应不同的网络状况。
17.如图2~3所示,本发明提供的基于自适应学习的实时视频传输的方法,包括以下步骤:s1.在开始进行实时视频传输之前,发送端初始化配置参数,包括比特率、udp-lite校验范围、fec纠错数据包配比、最大数据包长度mtu;接收端部署强化学习模型,并初始化最大播放延迟、gop和fps;s2.实时视频传输过程中,发送端读取当前配置中的比特率,并使用h.264视频编码器对当前的原始视频进行编码;s3.发送端读取当前配置中的mtu、udp-lite校验比例、fec纠错数据包的比例,对编码后的视频数据打包,然后发送给接收端;s4.接收端接收到数据包后,将数据包放入待检测队列,并进行udp-lite校验和丢失数据包的恢复;s5.接收端统计数据包传输过程中的相关参数,并提供给强化学习模型;传输过程中的相关参数包括传输超时的网络数据、重传的网络数据和视频效果数据;s6.强化学习模型在得到输入数据后,计算强化学习奖惩值,根据奖惩值计算神经网络的梯度,并使用ppo算法对神经网络进行更新;更新后的智能体决策出下一时刻的各类
参数,包含视频的比特率、udp-lite的校验比例、以及fec纠错数据包的配比;s7.接收端将智能体的决策结果反馈给发送端,发送端根据决策结果,修改视频的比特率、udp-lite的校验比例、以及fec纠错数据包的配比,用于后续视频传输过程使用。
18.所述步骤s3包括以下子步骤:s301.发送端根据最大数据包长度mtu,将编码好的视频数据分割成多个udp-lite数据包,在每个包负载的起始处插入一个递增的数字序号,表示其次序;s302.对于每一个udp-lite数据包,根据配置的udp-lite校验比例,设置udp-lite的数据的校验范围,计算校验和并把校验和填入包头;分割得到的udp-lite数据包经过校验范围设置,并将校验和填入包头后,按照数字序号形成一组初始数据包;例如长度是1200 bytes,校验比例是0.8,我们就会将int(1200*0.8)作为校验范围填入其包头,并计算前int(1200*0.8) bytes数据的校验和,填入包头。
19.s303.根据fec纠错数据包的配比,将一组初始数据包通过reed solomon算法进行计算,得出一组fec数据包,一组fec数据包中包含多个数据包;s304.将得到的一组fec数据包发送给接收端。
20.所述步骤s4包括以下子步骤:s401.对于接收到的一组fec数据包中的每个数据包,接收端根据udp-lite协议,通过数据包头里的校验范围及对应的校验和,判断校验范围内的数据是否有错误;s402.根据数据包的序号,在一组fec数据包收到后,若步骤s401判断出校验范围内的数据存在错误,则通过fec算法进行恢复。
21.其中,fec是数据包前向纠错,会按比例配置一些纠错的数据包。例如(例子中的数字可以不同)原有5个数据包作为1组,经过fec的计算后,会变成1组6个有冗余的数据包。这一组带有冗余数据的6个数据包,如果有任意5个正常被接受了,就可以恢复出原来的5个数据包,以此省掉重传的过程。
22.所述步骤s5包括:s501.接收端每接收到一个数据包时,都会记录对应的网络数据,所述网络数据包含延迟、数据包是否包含错误,数据包是否包含错误,即数据包是能否通过udp-lite校验和的校验;如果接收的数据包,其到达时间超过了时限,即超过了发送时间与最大播放延迟的和,则丢弃该部分数据;如果错误的数据包,超过了fec算法的恢复能力,无法纠正所有的错误,则反馈给发送端,要求重传此段数据;发送端在接收到重传要求后,会重复步骤s3;s502.接收端进行视频解码,播放解码后的视频,统计当前的视频数据,所述视频数据包括:通过播放器记录视频的比特率,记为“视频质量”;播放时的卡顿时间,记为“卡顿值”;播放当前时刻的比特率与之前时刻的比特率差值,记为视频效果的变化差值;s503.将网络数据和视频数据提供给强化学习模型。
23.所述步骤s6包括:s601.强化学习模型在得到输入数据后根据下列公式计算强化学习奖惩值:
奖惩值 = 1*视频效果值
ꢀ–ꢀ
1*播放卡顿值
ꢀ‑ꢀ
0.5*视频效果的变化差值;s602.强化学习模型的输出为动作action,设置3个动作,分别为视频的比特率、udp-lite的校验比例,fec就纠错数据包的配比,其中每个项有6个选项;模型的输入的特征包含网络数据和视频数据,强化学习模型在得到输入后,会输出3个动作;在本技术的实施例中,强化学习里,设置了3个action,分别为视频的比特率、udp-lite的校验比例、以及fec纠错数据包的配比,其中每个项有6个选择。输入的feature为[delay, packet_sent, packet_not_sent, packet_loss, video_size, throughput, quality, fec, udp_lite, raw_quality, delay_penalty, discard_penalty, smoothness_penalty],输出的action则为一组配置(如[3,1,2]。每一个值对应比特率、udp-lite的校验比例、以及fec纠错数据包的配比的index)。learning的参数具体有:batch size设置为64,lr学习率设置为3e-4,gamma设置为0.99,每个epoch有5000个step,网络的隐藏层为[64,64]。
[0024]
在强化学习模型的学习过程中,强化学习模型根据奖惩值计算神经网络的梯度,并使用ppo算法对神经网络进行更新;更新后的智能体决策出下一时刻的各类参数,包含视频的比特率、udp-lite的校验比例、以及fec纠错数据包的配比。
[0025]
其中,ppo算法是actor-critic结构的,即包含”评论者”和一个”玩家”两个网络,分别用于进行决策,以及评估状态的得分。ppo算法优化了其前身a2c的学习率,使其能更好、更快的收敛到一个最优值。
[0026]
在与传统的方案的对比中,本发明的表现超越现有的解决方案。在真实流量的仿真实验中,本发明的用户体验得分,超越现有的各类解决方案3.9%
ꢀ‑ꢀ
11.6%不等。
[0027]
以上所述是本发明的优选实施方式,应当理解本发明并非局限于本文所披露的形式,不应该看作是对其他实施例的排除,而可用于其他组合、修改和环境,并能够在本文所述构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1