数据帧缓冲方法和设备的制作方法
【专利摘要】本发明的各实施方式总体上涉及一种数据帧缓冲方法和设备。具体地,该方法可以包括:接收数据帧,并且按照与其对应的时间戳顺序将数据帧缓存至缓冲器中;基于数据帧的相对到达时间来调整时钟以改变缓冲器中可缓存的数据帧的数目;以及当数据帧的播放时间到达时,将数据帧输出。对应地,还提供了数据帧缓冲设备。通过使用本发明的各实施方式能够减小由抖动缓冲器产生的丢包率;以及减少端到端延迟,从而可以灵敏应对网络变化。
【专利说明】数据帧缓冲方法和设备
[0001]相关申请的交叉引用
[0002]本申请要求于2012年12月17日递交的第61/738,239号美国临时申请的优先权,其公开内容通过引用的方式全部并入于此。
【技术领域】
[0003]本发明的各实施方式总体上涉及通信领域,并且更具体地,涉及一种数据帧缓冲方法和设备。
【背景技术】
[0004]随着信息技术的发展,已经有各种技术应用于通信领域。其中,VoIPdP语音)是一种基于IP(互联网协议)的网络实时语音通信系统,由于该通信系统具有通话成本低且占用宽带少等优点,因此近年来在通信领域得到了广泛的应用。然而,由于当前的网络性能并不稳定(即,语音帧在网络中的传输时间抖动较大),因此导致部分语音帧的乱序甚至丢失,从而影响VoIP的语首质量。
[0005]目前的解决方案是:在语音帧的接收端通过利用抖动缓冲器来有效地减少由网络引起的抖动。具体地,抖动缓冲器通过对接收到的语音帧进行排序,并在缓冲器内缓存一段时间后再将其播出。然而在实际应用中,存在以下问题:即,如果每个语音帧在抖动缓冲器中缓存的时间设置得越短,则端到端的延迟就越小,但这样可能会导致较多的语音帧因为晚到而被丢弃;另一方面,如果将每个语音帧在抖动缓冲器中缓存的时间设置得越长,则可以越有效地减少由抖动缓冲器引起的丢帧,但端到端的延迟会比较大,从而影响语音通话的质量。
【发明内容】
[0006]为了解决上述问题,本发明的各示例性实施方式提供了一种数据帧缓冲方法和设备。
[0007]根据本发明一个方面的某些实施方式,提供了一种数据帧缓冲方法,例如可以包括:接收数据帧,并且按照与其对应的时间戳顺序将数据帧缓存至缓冲器中;基于数据帧的相对到达时间来调整时钟以改变缓冲器中可缓存的数据帧的数目;以及当数据帧的播放时间到达时,将数据帧输出。
[0008]根据本发明一个方面的某些实施方式,提供了一种数据帧缓冲方法,还可以包括:计算数据帧的时间戳与下一播放数据帧的时间戳的差值作为该数据帧的相对到达时间。
[0009]根据本发明一个方面的某些实施方式,提供了一种数据帧缓冲方法,还可以包括:如果差值大于预定高阈值,则数据帧的相对到达时间被确定为早,并且如果预定数目的数据帧的相对到达时间被确定为早,则向后调整时钟以减少缓冲器中可缓存的数据帧的数目。
[0010]根据本发明一个方面的某些实施方式,提供了一种数据帧缓冲方法,还可以包括:如果差值小于预定低阈值,则数据帧的相对到达时间被确定为晚,并且如果预定数目的数据帧相对到达时间晚的代价总和超过预定阈值,向前调整时钟以增加缓冲器中可缓存的数据帧的数目。
[0011 ] 根据本发明一个方面的某些实施方式,提供了 一种数据帧缓冲方法,其中相对到达时间被确定为早的数据帧的预定数目可以是200。
[0012]根据本发明一个方面的某些实施方式,提供了一种数据帧缓冲方法,还可以包括:统计所述预定数目的所述数据帧相对到达时间晚的代价总和。
[0013]根据本发明一个方面的某些实施方式,提供了 一种数据帧缓冲方法,其中数据帧可以是语音帧、视频帧和/或其组合。
[0014]根据本发明另一方面的某些实施方式,提供了一种数据帧缓冲设备,例如可以包括:输入装置,被配置为接收数据帧,并且按照与其对应的时间戳顺序将数据帧缓存至缓冲器中;调整装置,被配置为基于数据帧的相对到达时间来调整时钟以改变缓冲器中可缓存的数据帧的数目;以及输出装置,被配置为当数据帧的播放时间到达时,将数据帧输出。
[0015]根据本发明另一方面的某些实施方式,提供了一种数据帧缓冲设备,还可以包括:计算装置,被配置为计算所述数据帧的时间戳与下一播放数据帧的时间戳的差值作为所述数据帧的相对到达时间。
[0016]根据本发明另一方面的某些实施方式,提供了一种数据帧缓冲设备,还可以包括:确定装置,被配置为如果差值大于预定高阈值,则数据帧的相对到达时间被确定为早,并且调整装置进一步被配置为如果预定数目的数据帧的相对到达时间被确定为早,则向后调整时钟以减少缓冲器中可缓存的数据帧的数目。
[0017]根据本发明另一方面的某些实施方式,提供了一种数据帧缓冲设备,还可以包括:确定装置,被配置为如果差值小于预定低阈值,则数据帧的相对到达时间被确定为晚,并且调整装置进一步被配置为如果预定数目的数据帧相对到达时间晚的代价总和超过预定阈值,则向前调整时钟以增加缓冲器中可缓存的数据帧的数目。
[0018]根据本发明另一方面的某些实施方式,提供了一种数据帧缓冲设备,其中相对到达时间被确定为早的数据帧的预定数目可以是200。
[0019]根据本发明另一方面的某些实施方式,提供了一种数据帧缓冲设备,还可以包括:统计装置,被配置为统计预定数目的数据帧相对到达时间晚的代价总和。
[0020]根据本发明另一方面的某些实施方式,提供了一种数据帧缓冲设备,其中数据帧可以是语音帧、视频帧和/或其组合。
[0021]根据本发明的实施方式所提出的数据帧缓冲方法和设备,可以通过调整时钟来权衡端到端延迟与由于数据帧晚到引起的丢包率之间的矛盾,从而实现减小由抖动缓冲器产生的丢包率;以及减少端到端延迟,从而可以灵敏应对网络变化。具体地,通过统计数据帧的相对到达时间,可以有效地预测网络变化情况,从而在出现晚到的数据帧之前,可以将时钟往前调。
【专利附图】
【附图说明】
[0022]结合附图并参考以下详细说明,本发明各实施方式的特征、优点及其他方面将变得更加明显,在此以示例性而非限制性的方式示出了本发明的若干实施方式。在附图中:[0023]图1示意性示出了抖动缓冲器的一个应用示例;
[0024]图2A示意性示出了根据本发明的一个实施方式的数据帧缓冲方法的流程图;
[0025]图2B示意性示出了图2A中所示数据帧缓冲方法中的一个步骤的示例;
[0026]图2C示意性示出了图2A中所示数据帧缓冲方法中的一个步骤的另一示例;
[0027]图3A示意性示出了根据本发明的一个实施方式的数据帧缓冲设备的框图;
[0028]图3B示意性示出了图3A中所示数据帧缓冲设备中的一个装置的示例;
[0029]图4示意性示出了根据本发明的一个实施方式的数据帧缓冲方法的一个应用示例;
[0030]图5示意性示出了数据帧相对到达时间晚与数据帧晚到的关系;
[0031]图6示意性示出了数据帧相对到达时间晚的程度与代价的关系;以及
[0032]图7示意性示出了实现根据本发明的一个实施方式的数据帧缓冲方法的自适应抖动缓冲器的流程图;以及
[0033]图8示意性图示了将从本发明示例性实施方式中受益并且可以用于实现本发明示例性实施方式的移动终端的框图。
【具体实施方式】
[0034]下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。
[0035]图1示意性示出了抖动缓冲器的一个应用示例。如图1所示,其中方格内的P4、?6、?6、?7、?5、?8和?9表示抖动缓冲器缓存的数据帧。由于在图1所示的示例中,每个数据帧在抖动缓冲器中缓存的时间设置得较短,因此会导致数据帧因晚到而丢弃。具体地,在80ms时正在播放P4,而抖动缓冲器中还没有缓存P5而是缓存了 P6。当IOOms时,由于在抖动缓冲器中没有找到P5而出现静音(即,不播放任意数据帧,这是因为每个数据帧都有对应的时间戳,所以不能播放抖动缓冲器中已缓存的P6)。当120ms时(即,到达P6的时间戳)播放P6,此时P5到达,由于抖动缓冲器中缓存的时间设置得较短,因此P5被丢弃。然而,如果将每个数据帧在抖动缓冲器中缓存的时间设置得较长,虽然可以有效地减少由抖动缓冲器引起的丢帧,但端到端的延迟会增大,从而影响语音通话的质量。
[0036]为了权衡端到端延迟与由数据帧晚到引起的丢包率之间的矛盾,本发明的各实施方式提出了一种数据帧缓冲方法和设备。图2示意性示出了根据本发明的一个实施方式的数据帧缓冲方法200的流程图。如图2所示,在步骤S201,接收数据帧,并且按照与其对应的时间戳顺序将数据帧缓存至缓冲器中。通常,数据帧具有与其相对应的时间戳。
[0037]根据本发明的示例性实施方式,在步骤S202,基于数据帧的相对到达时间来调整时钟以改变缓冲器中可缓存的数据帧的数目。
[0038]在一个 示例性实施方式中,还可以包括在步骤S2021,计算数据帧的时间戳与下一播放数据帧的时间戳的差值作为该数据帧的相对到达时间。另外,在步骤S2022,如果差值大于预定高阈值,则数据帧的相对到达时间可以被确定为早,并且在步骤S2023,如果预定数目的数据帧的相对到达时间被确定为早,则向后调整时钟以减少缓冲器中可缓存的数据帧的数目。在实际应用中,优选地将上述预定数目设置为200。[0039]在另一示例性实施方式中,也可以包括在步骤S2021,计算数据帧的时间戳与下一播放数据帧的时间戳的差值作为该数据帧的相对到达时间。另外,在步骤S2024,如果差值小于预定低阈值,则数据帧的相对到达时间被确定为晚,并且在步骤S2025,统计所述预定数目的所述数据帧相对到达时间晚的代价总和。接下来,在步骤S2026,如果预定数目的数据帧相对到达时间晚的代价总和超过预定阈值,则向前调整时钟以增加缓冲器中可缓存的数据帧的数目。在实际应用中,优选地将上述预定数目设置为15。
[0040]图3A示意性示出了根据本发明的一个实施方式的数据帧缓冲设备300的框图。如图3A所示,设备300例如可以包括输入装置301,被配置为接收数据帧,并且按照与其对应的时间戳顺序将所述数据帧缓存至缓冲器中;调整装置302,被配置为基于所述数据帧的相对到达时间来调整时钟以改变所述缓冲器中可缓存的数据帧的数目;以及输出装置303,被配置为当所述数据帧的播放时间到达时,将所述数据帧输出。
[0041]在一个示例性实施方式中,调整装置302还可以包括计算装置3021和确定装置3022。应当理解,设备300中记载的装置与分别参考图2A描述的方法200中的步骤相对应。另外,容易理解计算装置3021、确定装置3022和统计装置3023分别与图2B和图2C中的步骤S2021、步骤S2022和步骤S2024、以及步骤S2025相对应。由此,上文针对图2A至图2C的方法200描述的操作和特征同样适用于设备300及其中包含的装置和子装置,在此不再赘述。
[0042]应当理解,设备300可以利用各种方式来实现。例如,在某些实施方式中,设备300可以利用软件和/或固件模块来实现。此外,设备300也可以利用硬件模块来实现。例如,设备300可以实现为集成电路(IC)芯片或专用集成电路(ASIC)。设备300也可以实现为片上系统(SOC)。此外,设备300也可以利用硬件模块和软件和/或固件模块的组合来实现。现在已知或者将来开发的其他方式也是可行的,本发明的范围在此方面不受限制。
[0043]由于上述数据帧缓冲方法和设备可以应用于自适应抖动缓冲器,因此下面参考图4至图7以自适应抖动缓冲器为例进行描述。
[0044]图4示意性示出了根据本发明的一个实施方式的数据帧缓冲方法的一个应用示例。当接收到数据帧时,根据以下公式I计算其相对到达时间:
[0045]mRelativeArrivalTime=frameTimeStamp-nextPlaytimestamp (公式 I)
[0046]其中,“mRelativeArrivalTime” 表不数据巾贞相对到达时间,“ frameTimeStamp ” 表示自适应抖动缓冲器此时接收到的数据巾贞的时间戳,以及“nextPlaytimestamp”表示自适应抖动缓冲器下一播放数据帧的时间戳。
[0047]通常情况下,各数据帧的时间戳可以满足以下公式2:
[0048]timestamp (p (k+1)) =timestamp (p (k)) +Span (公式 2)
[0049]其中,“timestamp(p (k+1)) ” 表示第 k+1 个数据巾贞的时间戳,“timestamp (p (k)) ”表示第k个数据帧的时间戳,以及“Span”表示数据帧的采样长度。
[0050]为便于描述,假设每个数据帧的采样长度为160字节,继而Pk数据帧(第k个数据帧)的时间戳为160*k。继而,图1中所示各数据帧的相对到达时间如表I所示:
【权利要求】
1.一种数据帧缓冲方法,包括: 接收数据帧,并且按照与其对应的时间戳顺序将所述数据帧缓存至缓冲器中; 基于所述数据帧的相对到达时间来调整时钟以改变所述缓冲器中可缓存的数据帧的数目;以及 当所述数据帧的播放时间到达时,将所述数据帧输出。
2.根据权利要求1所述的方法,还包括: 计算所述数据帧的时间戳与下一播放数据帧的时间戳的差值作为所述数据帧的相对到达时间。
3.根据权利要求2所述的方法,还包括: 如果所述差值大于预定高阈值,则所述数据帧的相对到达时间被确定为早,并且 如果预定数目的所述数据帧的相对到达时间被确定为早,则向后调整所述时钟以减少所述缓冲器中可缓存的数据帧的数目。
4.根据权利要求2所述的方法,还包括: 如果所述差值小于预定低阈值,则所述数据帧的相对到达时间被确定为晚,并且 如果预定数目的所述数据帧相对到达时间晚的代价总和超过预定阈值,则向前调整所述时钟以增加所述缓冲器中可缓存的数据帧的数目。
5.根据权利要求3所述`的方法,其中所述预定数目是200。
6.根据权利要求4所述的方法,还包括统计所述预定数目的所述数据帧相对到达时间晚的代价总和。
7.根据权利要求1至6所述的方法,其中所述数据帧是语音帧、视频帧和/或其组合。
8.一种数据帧缓冲设备,包括: 输入装置,被配置为接收数据帧,并且按照与其对应的时间戳顺序将所述数据帧缓存至缓冲器中; 调整装置,被配置为基于所述数据帧的相对到达时间来调整时钟以改变所述缓冲器中可缓存的数据帧的数目;以及 输出装置,被配置为当所述数据帧的播放时间到达时,将所述数据帧输出。
9.根据权利要求8所述的设备,还包括: 计算装置,被配置为计算所述数据帧的时间戳与下一播放数据帧的时间戳的差值作为所述数据帧的相对到达时间。
10.根据权利要求9所述的设备,还包括: 确定装置,被配置为如果所述差值大于预定高阈值,则所述数据帧的相对到达时间被确定为早,并且 所述调整装置进一步被配置为如果预定数目的所述数据帧的相对到达时间被确定为早,则向后调整所述时钟以减少所述缓冲器中可缓存的数据帧的数目。
11.根据权利要求9所述的设备,还包括: 确定装置,被配置为如果所述差值小于预定低阈值,则所述数据帧的相对到达时间被确定为晚,并且 所述调整装置进一步被配置为如果预定数目的所述数据帧相对到达时间晚的代价总和超过预定阈值,向前调整所述时钟以增加所述缓冲器中可缓存的数据帧的数目。
12.根据权利要求10所述的设备,其中所述预定数目是200。
13.根据权利要求11所述的设备,还包括: 统计装置,被配置为统计所述预定数目的所述数据帧相对到达时间晚的代价总和。
14.根据权利要求8至13所述的设备,其中所述数据帧是语音帧、视频帧和/或其组口 ο`
【文档编号】H04L12/861GK103873382SQ201310648379
【公开日】2014年6月18日 申请日期:2013年12月2日 优先权日:2012年12月17日
【发明者】董大源, 樊宇伟, 黄永佳 申请人:马维尔国际有限公司