本申请公开了一种动态调整数据接收缓存的方法,应用于视频解码设备,包括:按照设定周期对网络的时延抖动进行计算,得到时延抖动数值D;将数据接收缓存的解码触发阈值调整为对应于2D时长的值。本申请还公开了一种对应于上述方法的视频解码设备。应用本申请公开的技术方案,能够动态调整视频缓冲的解码触发阈值,使得视频解码过程中由于缓存引入的时延尽可能小。
【技术实现步骤摘要】
本申请涉及移动通信
,特别涉及动态调整数据接收缓存的方法及视频解码设备。
技术介绍
在流媒体视频解码中,需要考虑网络时延和抖动问题。与文件播放不同,流媒体在播放时并未得到完整的视频数据,后续数据到达的准确时间也不可知,如果接收端接收到数据就即刻播放,此时如后续数据未能在需要播放前到达,则会引起视频播放的流畅度恶化,出现视频图像内容跳帧卡顿的现象,甚至出现较长时间的画面定屏。为了解决上述问题,在流媒体播放中,通常会在接收端缓存一定量的数据后,再开始播放,从而期望通过缓冲数据作为弹性空间,来平滑数据到达的不均匀性。目前应用广泛的流媒体播放机制是设定一定数据量、一定时长或一定视频帧数的缓冲区,并设定触发播放的解码触发阈值,在接收数据达到该解码触发阈值时开始播放,这种机制如图1所示。可以看出,在缓冲区正常工作的情况下,接收数据到达解码触发阈值时开始播放,在开始接收至开始解码的过程中,固定会引入填充阶段所耗时间的一段时延。在网络状况较好的理想情况下,缓冲区填充量基本会在阈值附近小幅波动,这是因为网络状况好的情况下,时延稳定,抖动很小。在网络状况较差的情况下,缓冲区的填充量波动较大,这是由于网络状况差的情况下,时延差异大,抖动大。在极端情况下,将出现缓冲区耗尽,但是后续数据仍未到达,或者大量突发数据同时到达,缓冲区已不能容纳所有接收数据的情况。对此,通常采取的解决方案是增大缓冲区的开始播放阈值,或者增大缓冲区整体大小。但是,在网络状况好的情况下,上述解决方案又将引入不必要的延时,这使得实时视频通信中,通话感受滞后,体验变差。
技术实现思路
本申请提供了一种动态调整数据接收缓存的方法及视频解码设备,以尽量减少视频解码过程中由于缓存引入的时延。本申请公开了一种动态调整数据接收缓存的方法,应用于视频解码设备,包括:按照设定周期对网络的时延抖动进行计算,得到时延抖动数值D;将数据接收缓存的解码触发阈值调整为对应于2D时长的值。较佳的,在调整数据接收缓存的解码触发阈值后,该方法还包括:当缓存的数据超过调整后的解码触发阈值时,判断缓存中是否存在类型为即时解码刷新IDR帧的关键帧,如果存在,则对关键帧之前的帧按照从后至前的顺序逐帧进行丢弃,直至缓存水平满足解码触发阈值的要求;如果不存在,则继续以接收到的数据填充缓存,如缓存填满,仍无IDR帧出现,则对后续接收的非IDR帧均进行丢弃,直至IDR帧出现,并对该IDR帧之前的帧按照从后至前的顺序逐帧进行丢弃,直至缓存水平满足解码触发阈值的要求。较佳的,所述将数据接收缓存的解码触发阈值调整为对应于2D时长的值包括:如果解码触发阈值以数据量为单位,则计算2D时长对应的数据量,并将解码触发阈值调整为计算得到的数据量;如果解码触发阈值以时长为单位,则将解码触发阈值调整为2D;如果解码触发阈值以数据帧为单位,则计算2D时长对应的数据帧的帧数,并将解码触发阈值调整为计算得到的帧数。本申请还公开了一种视频解码设备,包括:时延抖动计算模块和阈值调整模块,其中:所述时延抖动计算模块,用于按照设定周期对网络的时延抖动进行计算,得到时延抖动数值D;所述阈值调整模块,用于将数据接收缓存的解码触发阈值调整为对应于2D时长的值。较佳的,该视频解码设备还包括控制模块;所述控制模块在缓存的数据超过调整后的解码触发阈值时,判断缓存中是否存在类型为即时解码刷新IDR帧的关键帧,如果存在,则对关键帧之前的帧按照从后至前的顺序逐帧进行丢弃,直至缓存水平满足解码触发阈值的要求;如果不存在,则继续以接收到的数据填充缓存,如缓存填满,仍无IDR帧出现,则对后续接收的非IDR帧均进行丢弃,直至IDR帧出现,并对该IDR帧之前的帧按照从后至前的顺序逐帧进行丢弃,直至缓存水平满足解码触发阈值的要求。较佳的,所述阈值调整模块用于执行以下操作将数据接收缓存的解码触发阈值调整为对应于2D时长的值:如果解码触发阈值以数据量为单位,则计算2D时长对应的数据量,并将解码触发阈值调整为计算得到的数据量;如果解码触发阈值以时长为单位,则将解码触发阈值调整为2D;如果解码触发阈值以数据帧为单位,则计算2D时长对应的数据帧的帧数,并将解码触发阈值调整为计算得到的帧数。由上述技术方案可见,本申请提供的应用于视频解码设备的动态调整数据接收缓存的方法,首先,按照设定周期对网络的时延抖动进行计算,得到时延抖动数值D;然后,将数据接收缓存的解码触发阈值调整为对应于2D时长的值。应用本申请公开的技术方案,能够动态调整视频缓冲的解码触发阈值,使得视频解码过程中由于缓存引入的时延尽可能小。附图说明图1为现有流媒体播放缓冲机制的示意图;图2为本专利技术流媒体播放缓冲机制的示意图;图3为本申请一较佳视频解码设备的组成结构示意图;图4为本申请实施例一中调整阈值后对超出阈值部分的数据处理方法;图5为本申请实施例二中缓冲溢出后对缓存数据的处理方法。具体实施方式为使本申请的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本申请作进一步详细说明。通过分析现有流媒体播放缓冲机制,本申请的专利技术人发现,为了平滑抖动,缓冲区被定义为一个固定的填充水平(固定数据量、固定时长或固定数据帧),在网络状况较好时,这一填充水平的固定,将导致视频播放引入不必要时延,为此,本申请提出:通过数据统计得到反映当前网络时延抖动状况的指标,并依据该指标调整触发播放的解码触发阈值。进一步的,还可以通过识别缓存中的帧类型来决定是否对接收到的帧进行丢弃。本专利技术动态调整数据接收缓存的方法包括:首先,按照设定周期对网络的时延抖动进行计算,得到目前网络的时延抖动数值D,然后,将数据接收缓存的解码触发阈值调整为对应于2D时长的值,上述计算和调整的过程周期性进行。当缓存的数据超过调整后的解码触发阈值时,判断缓存中是否存在类型为IDR(InstantaneousDecodingRefresh,即时解码刷新)帧的关键帧,如果缓存中存在类型为IDR帧的关键帧,则对关键帧之前的帧按照从后至前的顺序逐帧进行丢弃,直至缓存水平满足阈值要求;如果不存在类型为IDR帧的关键帧,则继续以接收到的数据填充缓存。如缓存填满,仍无IDR帧出现,则对后续接收的非IDR帧均进行丢弃,直至IDR帧出现,并对IDR帧之前的帧按照从后至前的顺序逐帧进行丢弃,直至缓存水平满足阈值要求。其中,将数据接收缓存的解码触发阈值调整为对应于2D时长的值具体包括:如果解码触发阈值以数据量为单位,则计算2D时长对应的数据量是多少,并将解码触发阈值调整为计算得到的数据量;如果解码触发阈值以时长为单位,则直接将解码触发阈值调整为2D;如果解码触发阈值以数据帧为单位,则计算2D时长对应的数据帧的帧数,并将解码触发阈值调整为计算得到的帧数。对应于上述方法,本申请还公开了一种视频解码设备,其组成结构如图3所示,该视频解码设备包括:时延抖动计算模块和阈值调整模块,其中:所述时延抖动计算模块,用于按照设定周期对网络的时延抖动进行计算,得到时延抖动数值D;所述阈值调整模块,用于将数据接收缓存的解码触发阈值调整为对应于2D时长的值。较佳的,该视频解码设备还包括控制模块;所述控制模块在缓存的数据超过调整后的解码触发阈值时,判断缓存中是否存在本文档来自技高网...

【技术保护点】
一种动态调整数据接收缓存的方法,应用于视频解码设备,其特征在于,包括:按照设定周期对网络的时延抖动进行计算,得到时延抖动数值D;将数据接收缓存的解码触发阈值调整为对应于2D时长的值。
【技术特征摘要】
1.一种动态调整数据接收缓存的方法,应用于视频解码设备,其特征在于,包括:按照设定周期对网络的时延抖动进行计算,得到时延抖动数值D;将数据接收缓存的解码触发阈值调整为对应于2D时长的值。2.根据权利要求1所述的方法,其特征在于,在调整数据接收缓存的解码触发阈值后,该方法还包括:当缓存的数据超过调整后的解码触发阈值时,判断缓存中是否存在类型为即时解码刷新IDR帧的关键帧,如果存在,则对关键帧之前的帧按照从后至前的顺序逐帧进行丢弃,直至缓存水平满足解码触发阈值的要求;如果不存在,则继续以接收到的数据填充缓存,如缓存填满,仍无IDR帧出现,则对后续接收的非IDR帧均进行丢弃,直至IDR帧出现,并对该IDR帧之前的帧按照从后至前的顺序逐帧进行丢弃,直至缓存水平满足解码触发阈值的要求。3.根据权利要求1或2所述的方法,其特征在于,所述将数据接收缓存的解码触发阈值调整为对应于2D时长的值包括:如果解码触发阈值以数据量为单位,则计算2D时长对应的数据量,并将解码触发阈值调整为计算得到的数据量;如果解码触发阈值以时长为单位,则将解码触发阈值调整为2D;如果解码触发阈值以数据帧为单位,则计算2D时长对应的数据帧的帧数,并将解码触发阈值调整为计算得到的帧数。4.一种视频解码设备,其特征在于,包括:时延抖动...
【专利技术属性】
技术研发人员:方伟,王亮,
申请(专利权)人:成都鼎桥通信技术有限公司,
类型:发明
国别省市:四川;51
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。