基于PI控制的多视点视频自适应传输控制算法的制作方法

文档序号:12378942阅读:313来源:国知局
基于PI控制的多视点视频自适应传输控制算法的制作方法与工艺

本发明属于网络多视点视频自适应传输领域,更具体的是应用于3D环境中,一种基于PI控制的多视点视频自适应传输控制算法。



背景技术:

随着互联网以及各个智能终端的快速发展,人们对于视频、音频等多媒体信息的需求日益增多,为了解决各个智能终端间的兼容性和适配性等问题,动态图像专家组(MPEG)与第三代合作伙伴计划(3GPP)于2011联合提出基于HTTP的动态自适应流媒体传输(MPEG-DASH)协议,该协议规定了媒体描述文件(MPD)及媒体文件的格式。

基于HTTP动态自适应(DASH)传输协议的流媒体传输机制,是由客户端驱动,在视频传输前,服务器会将同一视频资源分割成不同的视频切片,并进行不同比特率编码,最终生成一个基于二进制可扩展标记语言(XML)格式的媒体描述文件,它包含了视频切片的比特率、分辨率、时间间隔等相应的视频属性信息。客户端根据当前的网络状况、自身硬件的处理能力以及缓存等相关参数根据媒体描述文件所提供的统一资源定位符(URL)自适应的选择适应于当前网络状况的下的视频资源进行申请和下载。

然而随着图像以及摄影技术的发展,3D视频以立体、真实的用户体验质量深受各产品运营商以及研究者的亲睐。在ITU-T和ISO联合制定的下一代视频编码标准(HEVC)中,将3D-HEVC作为了HEVC的扩展,相对于H264/AVC,HEVC压缩方案效率提高一倍。在3D-HEVC中以多视点加深度(MVD)作为数据的压缩格式,为每个视点编码一个深度信息,用来描述的是拍摄场景中客体离摄像机的距离。编码后的多视点加深度视频流会发送到客户端,客户端会根据深度信息通过深度图像渲染(DIBR)合成虚拟视点,进而完成3D视频的重建。

目前已经有很多关于2D-DASH自适应方案的研究主要可以分为两类:基于吞吐量自适应和基于缓存自适应。相较之下,3D-DASH自适应方案还不够成熟。在目前的3D-DASH的研究主要集中在媒体描述文件的格式改进、传输的视点数量对最终呈现的视频质量的影响以、传输视点数量的自适应切换。但是由于多视点编码的原因,在3D环境中,客户端会产生更多的具有不同比特率的多视点比特流版本。因此基于3D-DASH的自适应方案相对于2D要求更加严格。



技术实现要素:

本发明所解决的技术问题是:在无线网络环境下,提供一种由客户端驱动的基于PI控制的MPEG-DASH多视点视频自适应算法,以满足:在现有的无线网络环境下,保证申请的视频质量紧跟网络带宽的变化,以防止缓存溢出造成的视频播放停滞或带宽利用率低等问题;在有限的网络带宽环境下,最大化用户申请的视频质量,以最大化用户体验质量;在网络带宽发生波动时,尽量维持所选择的视频质量稳定,避免造成视频质量频繁切换给用户带来疲惫感;本发明的技术方案如下:

一种基于PI控制的MPEG-DASH多视点视频自适应算法,该算法采用PI控制器:将缓存相对于目标缓存的偏离程度作为误差反馈信号,通过反馈信号动态的输出多视点比特流切片选择标准,包括以下步骤:

步骤1:资源预备:在多视点视频进行自适应传输前,服务器端进行多视点比特流的资源预备,将各个位置捕捉到的视频流进行独立对称编码,并以相同的时间间隔进行视频切片切割;

步骤2:媒体描述文件生成:对多视点视频流进行打包,并将结构相似性指标SSIM作为设置多视点视频流的自适应切换的客观参考依据,将多视点视频的属性信息进行汇总生产媒体描述文件;

步骤3:媒体描述文件预下载:在视频下载前,客户端先向服务器提出申请,并下载媒体描述文件,通过解析媒体描述文件了解服务器端的码率资源分配情况;

步骤4:进入初始缓存阶段:客户端先向服务器申请视点数以及总比特率最低的多视点比特流视频切片,当缓存区的视频切片达到预定值时,执行步骤5,启动自适应传输;

步骤5:设置PI控制器的比例系数Kp和积分时间常数Ki

步骤6:计算估计吞吐量:根据上一个视频切片下载速度,计算网络吞吐量,并将计算得到的网络吞吐量作为下一个视频切片下载期间的网络估计吞吐量Te(i);

步骤7:计算缓存:根据申请的多视点比特流视频切片的总比特率、网络吞吐量以及上一个视频切片下载完成是的缓存余量,计算第i个视频切片下载完成后的缓存余量B(i);

步骤8:计算缓存的偏移量:设置目标缓存Bopt,将步骤7计算得到的缓存余量同目标缓存对比,并计算两者的差值作为当前的缓存偏移量Boffet

Boffset=B(i)-Bopt

步骤9:系统变量的输入:将步骤8计算得到的缓存偏移量作为PI控制器的输入,进入PI控制器的计算单元,输出控制变量u(i):

<mrow> <mi>u</mi> <mrow> <mo>(</mo> <mi>i</mi> <mo>)</mo> </mrow> <mo>=</mo> <msub> <mi>K</mi> <mi>p</mi> </msub> <mrow> <mo>(</mo> <mi>B</mi> <mo>(</mo> <mi>i</mi> <mo>)</mo> <mo>-</mo> <msub> <mi>B</mi> <mrow> <mi>o</mi> <mi>p</mi> <mi>t</mi> </mrow> </msub> <mo>)</mo> </mrow> <mo>+</mo> <msub> <mi>K</mi> <mi>i</mi> </msub> <munderover> <mo>&Sigma;</mo> <mrow> <mi>&tau;</mi> <mo>=</mo> <mn>0</mn> </mrow> <mi>i</mi> </munderover> <mrow> <mo>(</mo> <mi>B</mi> <mo>(</mo> <mi>&tau;</mi> <mo>)</mo> <mo>-</mo> <msub> <mi>B</mi> <mrow> <mi>o</mi> <mi>p</mi> <mi>t</mi> </mrow> </msub> <mo>)</mo> </mrow> </mrow>

步骤10:计算多视点比特流切片选择标准:根据PI控制器的输出控制变量以及步骤6计算得到的估计吞吐量,通过控制计算单元输出第i个比特流视频切片选择标准:

<mrow> <mover> <mi>v</mi> <mo>~</mo> </mover> <mrow> <mo>(</mo> <mi>i</mi> <mo>)</mo> </mrow> <mo>=</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>+</mo> <mi>u</mi> <mo>(</mo> <mi>i</mi> <mo>)</mo> <mo>)</mo> </mrow> <mo>&times;</mo> <msub> <mi>T</mi> <mi>e</mi> </msub> <mrow> <mo>(</mo> <mi>i</mi> <mo>)</mo> </mrow> </mrow>

步骤11:比特流选择:根据步骤10输出的多视点比特流切片选择标准在各个比特流中选择总比特率最为接近该标准的视频切片,并在这些所选择的视频切片中选择客观指标值,即SSIM值较大的多视点比特流视频切片进行传输;

步骤12:视频下载;根据步骤11所做决策向服务器端申请下一视频切片,等待,直到本视频切片下载完成;

步骤13:重复步骤6~12,直到下载完成本视频所有切片。

附图说明

图1为本发明服务器系统图

图2为本发明客户端系统图

图3为基于DASH的自适应传输机制

图4为基于PI控制的自适应算法框架

图5为本发明具体实施的逻辑框图

具体实施方法

为使本发明的目的技术方案和优点更加清楚,下面结合附图和具体实施方案,对本发明进行进一步的详细描述。

步骤1:在视频自适应传输前,服务器端进行多视点比特流的资源预备,如图1服务器的系统框图,本发明的具体实施方案采用3个摄像机以相同的基线距离环形排列,进行视频捕捉,并采用3D-HEVC标准对捕捉到的视频流进行独立对称地编码,每个视点被编码成L个比特率播放版本(v1,v2,...,vL)。以相同的时间间隔(8秒)将每个视点视频切割成N个视频切片。打包合成两种比特流:两视点加深度(2VD)和三视点加深度(3VD)。

步骤2:媒体描述文件生成。根据步骤1得到的多视点比特流(2VD,3VD),将各个比特流在客户端渲染的虚拟视点的平均结构相似性指标(SSIM)值,作为多视点比特流的切换的客观依据以贴近用户的真实体验。最终将服务器端比特流切片的比特率、视点数量、SSIM值以及URL等属性信息汇总到媒体描述文件中。

步骤3:媒体描述文件预下载。如图3基于DASH的自适应传输机制,客户端预先向服务器发送HTTP GET请求下载媒体描述文件媒体描述。并通过解析媒体描述文件获知服务器端比特流的比特率、视点数量、SSIM值以及URL等属性信息。

步骤4:初始缓存阶段。缓存开始阶段,客户端根据从媒体描述文件中得到的服务器端视频的属性信息,向服务器申请最低等级质量视频且视点数最低(2VD)的比特流,直到缓存达到预设值,启动客户端自适应传输机制。

步骤5:设计PI控制器。图4为基于PI控制的自适应算法框架。本发明采用P(比例)控制器和I(积分)控制器,设置P控制器的比例系数Kp=0.1和I控制器的积分时间常数Ki=0.01。将目标缓存的偏离程度作为误差反馈信号。

步骤6:计算估计吞吐量。如图2所示的自适应客户端,设从申请到第i个视频切片下载完成所需时间t,申请视频流的总比特率为v,每段视频切片播放时长为τ,则下载第i个视频切片期间网络吞吐量表示为:Ti(i)=v×τ/t。使用该吞吐量作为进行下一个视频切片下载时的估计吞吐量,即Te(i+1)=Ti(i)。

步骤7:计算缓存。设前一个视频切片下载完成时的缓存余量为B(i-1),根据步骤6得到的t和τ,则当前缓存计算方式为:B(i)=B(i-1)+τ-t

步骤8:计算缓存的偏移量Boffset。将目标缓存设置为Bopt,将步骤7计算得到的缓存余量同目标缓存Bopt对比,并计算两者的差值作为缓存偏移量Boffset=B(i)-Bopt

步骤9:系统变量的输入。将步骤8计算得到的缓存偏移量Boffset作为PI控制器的输入,进入PI控制器的计算单元。PI控制器输出控制变量u(i):

<mrow> <mi>u</mi> <mrow> <mo>(</mo> <mi>i</mi> <mo>)</mo> </mrow> <mo>=</mo> <msub> <mi>K</mi> <mi>p</mi> </msub> <mrow> <mo>(</mo> <mi>B</mi> <mo>(</mo> <mi>i</mi> <mo>)</mo> <mo>-</mo> <msub> <mi>B</mi> <mrow> <mi>o</mi> <mi>p</mi> <mi>t</mi> </mrow> </msub> <mo>)</mo> </mrow> <mo>+</mo> <msub> <mi>K</mi> <mi>i</mi> </msub> <munderover> <mo>&Sigma;</mo> <mrow> <mi>&tau;</mi> <mo>=</mo> <mn>0</mn> </mrow> <mi>i</mi> </munderover> <mrow> <mo>(</mo> <mi>B</mi> <mo>(</mo> <mi>&tau;</mi> <mo>)</mo> <mo>-</mo> <msub> <mi>B</mi> <mrow> <mi>o</mi> <mi>p</mi> <mi>t</mi> </mrow> </msub> <mo>)</mo> </mrow> </mrow>

步骤10:计算多视点比特流切片选择标准通过PI控制器输出以及步骤6计算得到的估计吞吐量Te,控制计算单元计算多视点比特流切片选择标准

步骤11:比特流选择。首先根据步骤10输出的比特流切片选择标准分别在2VD(两视点加深度)和3VD(三视点加深度)这两种比特流中选择总比特率最接近的视频切片,然后在两个比特流中选择SSIM值较大的视频切片进行传输。

步骤12:视频下载。根据步骤11所选择的视频切片,通过媒体描述文件所提供的URL向服务器申请下载该视频切片,等待,直到该视频切片下载完成。

步骤13:重复步骤6~12,直到下载完成本视频所有切片。图5为本发明具体实施的逻辑框图。

本发明采用以上技术方案,显示出以下优点:

(1)在3D-DASH应用中充分考虑到缓存对于用户的影响,进而保证了客户端不会出现缓存的上溢和下溢。

(2)向用户提供质量更高的多视点视频,且保证视频切换较为平滑稳定,提高用户的体验质量。

(3)将PI控制应用到3D环境中,可以更好的保证在3D环境下用户的缓存视频可以稳定在一个安全值,同时保证最大程度的利用带宽。

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