CN105991476B - 一种语音数据延时处理方法及装置 - Google Patents
一种语音数据延时处理方法及装置 Download PDFInfo
- Publication number
- CN105991476B CN105991476B CN201510043932.9A CN201510043932A CN105991476B CN 105991476 B CN105991476 B CN 105991476B CN 201510043932 A CN201510043932 A CN 201510043932A CN 105991476 B CN105991476 B CN 105991476B
- Authority
- CN
- China
- Prior art keywords
- delay
- parameter
- current
- target
- retransmission
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Abstract
本发明实施例公开了一种语音数据延时处理方法及装置,涉及网络语音通讯技术领域,用于提高网络语音传输的质量。本发明提供的一种语音数据延时处理方法包括:确定用于表示当前网络状况的原始网络丢包率参数、重传后网络丢包率参数、重传数据包中迟到包所占比率参数、数据包最大抖动幅度参数;根据当前原始网络丢包率参数、重传后网络丢包率参数、重传数据包中迟到包所占比率参数、数据包最大抖动幅度参数,调整抖动缓存的目标延时参数;根据调整后的抖动缓存的目标延时参数,对抖动缓存中的数据包进行延时处理。
Description
技术领域
本发明涉及网络语音通讯技术领域,特别是涉及一种语音数据延时处理方法及装置。
背景技术
在大规模的网络语音直播技术中,由于网络状况不稳定,包括丢包、抖动、网络数据接收和语音数据播放之间存在速率差等因素,从而造成语音断续、不清晰,影响语音的效果。
目前,现有技术中仅仅给出如何根据网络抖动情况确定调整延时的方案,即:确定用于表示当前网络抖动情况的网络抖动参数;根据当前网络抖动参数,调整抖动缓存(Jitter Buffer)的延时参数;根据调整后的抖动缓存的延时参数,对抖动缓存中的数据包进行延时处理。
现有技术虽然考虑到了根据网络抖动情况调整延时,但存在一些待改进之处。一方面,现有技术在根据网络状况调整缓存时,网络评估考虑不够全面,调整的自适应速度较慢,且未能考虑到网络数据接收线程和语音数据播放线程之间存在速率差,另一方面,现有技术在调整时过于粗糙,而由于语音的时间连续性及时序敏感性关系,很容易造成语音的卡顿。
发明内容
本发明综合考虑丢包、抖动等网络不稳定因素,以及网络数据接收和语音数据播放之间存在速率差,配合上丢包重传机制,提供一种改进的语音抖动缓存Jitter Buffer技术方案,即通过周期性地统计原始网络丢包率、重传后网络丢包率、重传数据包中迟到包所占比率、数据包最大抖动幅度这些参数,而后根据这些参数合理调整抖动缓存的目标延时参数,再周期性地对抖动缓存中的数据包进行延时处理,以达到快速自适应的效果,用于提高网络语音传输的质量,令听觉感受更加舒适。
本发明提供的一种语音数据延时处理方法包括如下步骤:
确定用于表示当前网络状况的原始网络丢包率参数、重传后网络丢包率参数、重传数据包中迟到包所占比率参数、数据包最大抖动幅度参数;
根据当前原始网络丢包率参数、重传后网络丢包率参数、重传数据包中迟到包所占比率参数、数据包最大抖动幅度参数,调整抖动缓存的目标延时参数;
根据调整后的抖动缓存的目标延时参数,对抖动缓存中的数据包进行延时处理。
本发明提供的一种语音数据延时处理装置包括:
网络状况确定单元,用于确定表示当前网络状况的原始网络丢包率参数、重传后网络丢包率参数、重传数据包中迟到包所占比率参数、数据包最大抖动幅度参数;
抖动缓存的目标延时参数调整单元,用于根据当前原始网络丢包率参数、重传后网络丢包率参数、重传数据包中迟到包所占比率参数、数据包最大抖动幅度参数,调整抖动缓存的目标延时参数;
抖动缓存中数据包延时处理单元,用于根据调整后的抖动缓存的目标延时参数,对抖动缓存中的数据包进行延时处理。
附图说明
图1为本发明实施例提供的一种语音数据延时处理方法的流程示意图。
图2为本发明实施例提供的一种语音数据延时处理装置的结构示意图。
具体实施方式
本发明实施例实现的基本原理是:抖动缓存越大,其纠正乱序、去除网络抖动、配合丢包重传减少丢包的效果越好,但引起的延时却越大;反之则相反。因此,需要尽可能地让它维持在一个合理值;在实时语音传输过程中,抖动缓存中的数据接收速率取决于发送端的语音数据采集线程,而数据取出速率取决于接收端的语音数据播放线程,因此,两个速率很可能有细微的偏差,这种偏差随着时间的累积将导致当前语音数据延时慢慢变大或慢慢变小,此时,需要良好的语音数据延时处理方法来消除这种偏差,且尽可能小地影响用户听觉体验。
参见图1,本发明实例提供的一种语音数据延时处理方法,总体包括如下步骤:
S101,确定用于表示当前网络状况的原始网络丢包率参数、重传后网络丢包率参数、重传数据包中迟到包所占比率参数、数据包最大抖动幅度参数;
S102,根据当前原始网络丢包率参数、重传后网络丢包率参数、重传数据包中迟到包所占比率参数、数据包最大抖动幅度参数,调整抖动缓存的目标延时参数;
S103,根据调整后的抖动缓存的目标延时参数,对抖动缓存中的数据包进行延时处理。
具体技术方案如下:
确定当前网络状况网络状态的参数,包括原始网络丢包率参数、重传后网络丢包率参数、重传数据包中迟到包所占比率参数、数据包最大抖动幅度参数,即每隔一定周期统计一次该周期内的原始网络丢包率参数、重传后网络丢包率参数、重传数据包中迟到包所占比率参数、数据包最大抖动幅度参数,例如,以10s为周期统计一次。
其中:
原始网络丢包率:每个统计周期内发生丢包重传情况前的网络丢包率,原始网络丢包率=(每个统计周期内发生丢包重传情况前的丢包数量/每个统计周期内的总数据包数量)*100%,初始值为0;
重传后网络丢包率:每个统计周期内发生丢包重传情况后的网络丢包率,重传后网络丢包率=(每个统计周期内发生丢包重传情况后的丢包数量/每个统计周期内的总数据包数量)*100%,初始值为0;
重传数据包中迟到包所占比率:每个统计周期内重传到达的数据包中,晚于播放时刻到达的重传包数量占所有重传包数量的比率,重传数据包中迟到包所占比率=(每个统计周期内晚于播放时刻到达的重传包数量/每个统计周期内总的重传包数量)*100%,初始值为0;
最大抖动幅度参数:每个统计周期内相邻数据包时间间隔的最大值,单位为ms,初始值为0。
根据当前原始网络丢包率参数、重传后网络丢包率参数、重传数据包中迟到包所占比率参数、数据包最大抖动幅度参数,调整抖动缓存的目标延时参数,包括:
主要延时参数涉及:
Target_delay:期望延时参数,单位为ms,例如:Target_delay=150ms;
Min_Target_delay:期望延时调整下限参数,单位为ms,例如:Min_Target_delay=100ms;
Max_Target_delay:期望延时调整上限参数,单位为ms,例如:Max_Target_delay=500ms;
Current_delay:当前延时参数,即目前缓存中的数据量大小,单位为ms;
Min_Current_delay:当前延时调整下限参数,单位为ms,Min_Current_delay根据Target_delay确定:如果Target_delay小于400ms,则Min_Current_delay =Target_delay/2;如果Target_delay大于或等于200ms,则Min_Current_delay = Target_delay-200;
Max_Current_delay:当前延时调整上限参数,单位为ms,Max_Current_delay根据Target_delay确定:如果Target_delay小于200ms,则Max_Current_delay =Target_delay*2;如果Target_delay大于或等于200ms,则Max_Current_delay = Target_delay+200;
Need_turn_up:调大延时标记参数,布尔类型,True表示调大,False表示不调大,默认值为False;
Need_turn_down:调小延时标记参数,布尔类型,True表示调小,False表示不调小,默认值为False;
本抖动缓存包括两种状态:Waiting_state和Working_state,默认为Waiting_state;
Waiting_state:此时处于等待数据接收状态,此时只接收数据包不取出数据;
Working_state:此时处于正常工作状态,此时既接收数据也取出数据。
如果原始丢包率小于原始丢包率阈值(例如,原始丢包率阈值= 4%),并且重传数据包中迟到包所占比率小于重传数据包中迟到包所占比率阈值1(例如,重传数据包中迟到包所占比率阈值1=1%),则按固定步长(例如,步长=10ms)调小期望延时参数Target_delay,此时如果期望延时参数Target_delay小于期望延时调整下限参数Min_Target_delay,则将期望延时参数Target_delay调整为期望延时调整下限参数Min_ Target_delay。
如果重传后网络丢包率小于原始网络丢包率,并且重传数据包中迟到包所占比率大于重传数据包中迟到包所占比率阈值2(例如,重传数据包中迟到包所占比率阈值2=10%),则按固定步长(例如,步长=10ms)调大期望延时参数Target_delay,此时如果期望延时参数Target_delay大于期望延时调整上限参数Max_ Target_delay,则将期望延时参数Target_delay调整为期望延时调整上限参数Max_Target_delay。
如果数据包最大抖动幅度参数大于Target_delay,则将期望延时参数Target_delay调整为最大抖动幅度参数*1.2。
根据调整后的抖动缓存的目标延时参数,对抖动缓存中的数据包进行延时处理,主要包括:
周期性判断抖动缓存状态,当抖动缓存状态为Waiting_state状态时,则比较当前延时参数Current_delay与期望延时参数Target_delay的大小:如果当前延时参数Current_delay小于期望延时参数Target_delay,则表明抖动缓存中数据不够,则抖动缓存继续接收语音数据包;如果当前延时参数Current_delay大于或等于期望延时参数Target_delay,则解码并取出播放语音数据包,抖动缓存状态切换为Working_state状态;当出现异常情况时,抖动缓存状态切换为Waiting_state状态。
所述抖动缓存中的语音数据包为从远端接收到的按序列号升序排列、间隔为1的编码后的语音数据包序列的组成部分,判断数据包的序列号是否连续,如不连续,则发生丢包情形,其中导致不连续的序号的数据包即为丢失的数据包,此时重传丢失的数据包;在接收语音数据包时,判断是否需要调大当前延时参数Current_delay,即比较当前延时参数Current_delay与当前延时参数下限参数Min_Current_delay的大小:如Current_delay小于Min_Current_delay,则将调大延时标记参数Need_turn_up置为True,否则将调大延时标记参数Need_turn_up置为False。
在取出播放语音数据包时,周期性判断调大延时标记参数Need_turn_up的值,如果为True,则在当前缓存中插入固定步长的数据帧,直到Current_delay大于或等于Target_delay为止。
在取出播放语音数据包时,如果当前延时参数Current_delay大于当前延时调整上限参数Max_Current_delay,则将调小延时标记参数Need_turn_down置Ture,否则将调小延时标记参数Need_turn_down置False。
在取出播放语音数据包时,周期性判断调小延时标记参数Need_turn_down的值,如果为True,则在当前缓存中合并固定步长的数据帧,直到Current_delay小于或等于Target_delay为止,以达到对抖动缓存中的数据包进行自适应延时处理效果。
根据调整后的抖动缓存的目标延时参数,对抖动缓存中的数据包进行延时处理过程中的判断和调整的速率需要作限制,例如以周期80ms,步长10ms进行判断和调整。
参见图2,本发明实施例提供一种语音数据延时处理装置,包括:
网络状况确定单元201,用于确定表示当前网络状况的原始网络丢包率参数、重传后网络丢包率参数、重传数据包中迟到包所占比率参数、数据包最大抖动幅度参数;
抖动缓存的目标延时参数调整单元202,用于根据当前原始网络丢包率参数、重传后网络丢包率参数、重传数据包中迟到包所占比率参数、数据包最大抖动幅度参数,调整抖动缓存的目标延时参数;
抖动缓存中数据包延时处理单元203,用于根据调整后的抖动缓存的目标延时参数,对抖动缓存中的数据包进行延时处理。
具体如下:
所述网络状况确定单元,用于每隔一定周期统计一次该周期内的原始网络丢包率参数、重传后网络丢包率参数、重传数据包中迟到包所占比率参数、数据包最大抖动幅度参数,例如,以10s为周期统计一次。
其中:
原始网络丢包率:每个统计周期内发生丢包重传情况前的网络丢包率,原始网络丢包率=(每个统计周期内发生丢包重传情况前的丢包数量/每个统计周期内的总数据包数量)*100%,初始值为0;
重传后网络丢包率:每个统计周期内发生丢包重传情况后的网络丢包率,重传后网络丢包率=(每个统计周期内发生丢包重传情况后的丢包数量/每个统计周期内的总数据包数量)*100%,初始值为0;
重传数据包中迟到包所占比率:每个统计周期内重传到达的数据包中,晚于播放时刻到达的重传包数量占所有重传包数量的比率,重传数据包中迟到包所占比率=每个统计周期内晚于播放时刻到达的重传包数量/每个统计周期内总的重传包数量,初始值为0;
最大抖动幅度参数:每个统计周期内相邻数据包时间间隔的最大值,单位为ms,初始值为0。
所述抖动缓存的目标延时参数调整单元,用于根据当前原始网络丢包率参数、重传后网络丢包率参数、重传数据包中迟到包所占比率参数、数据包最大抖动幅度参数,调整抖动缓存的目标延时参数,包括:
主要延时参数涉及:
Target_delay:期望延时参数,单位为ms,例如:Target_delay=150ms;
Min_Target_delay:期望延时调整下限参数,单位为ms,例如:Min_Target_delay=100ms;
Max_Target_delay:期望延时调整上限参数,单位为ms,例如:Max_Target_delay=500ms;
Current_delay:当前延时参数,即目前缓存中的数据量大小,单位为ms;
Min_Current_delay:当前延时调整下限参数,单位为ms,Min_Current_delay根据Target_delay确定:如果Target_delay小于400ms,则Min_Current_delay =Target_delay/2;如果Target_delay大于或等于200ms,则Min_Current_delay = Target_delay-200;
Max_Current_delay:当前延时调整上限参数,单位为ms,Max_Current_delay根据Target_delay确定:如果Target_delay小于200ms,则Max_Current_delay =Target_delay*2;如果Target_delay大于或等于200ms,则Max_Current_delay = Target_delay+200;
Need_turn_up:调大延时标记参数,布尔类型,True表示调大,False表示不调大,默认值为False;
Need_turn_down:调小延时标记参数,布尔类型,True表示调小,False表示不调小,默认值为False;
本抖动缓存包括两种状态:Waiting_state和Working_state,默认为Waiting_state;
Waiting_state:此时处于等待数据接收状态,此时只接收数据包不取出数据;
Working_state:此时处于正常工作状态,此时既接收数据也取出数据。
如果原始丢包率小于原始丢包率阈值(例如,原始丢包率阈值= 4%),并且重传数据包中迟到包所占比率小于重传数据包中迟到包所占比率阈值1(例如,重传数据包中迟到包所占比率阈值1=1%),则按固定步长(例如,步长=10ms)调小期望延时参数Target_delay,此时如果期望延时参数Target_delay小于期望延时调整下限参数Min_Target_delay,则将期望延时参数Target_delay调整为期望延时调整下限参数Min_ Target_delay。
如果重传后网络丢包率小于原始网络丢包率,并且重传数据包中迟到包所占比率大于重传数据包中迟到包所占比率阈值2(例如,重传数据包中迟到包所占比率阈值2=10%),则按固定步长(例如,步长=10ms)调大期望延时参数Target_delay,此时如果期望延时参数Target_delay大于期望延时调整上限参数Max_ Target_delay,则将期望延时参数Target_delay调整为期望延时调整上限参数Max_Target_delay。
如果数据包最大抖动幅度参数大于Target_delay,则将期望延时参数Target_delay调整为最大抖动幅度参数*1.2。
所述抖动缓存中数据包延时处理单元,用于根据调整后的抖动缓存的目标延时参数,对抖动缓存中的数据包进行延时处理,包括:
周期性判断抖动缓存状态,当抖动缓存状态为Waiting_state状态时,则比较当前延时参数Current_delay与期望延时参数Target_delay的大小:如果当前延时参数Current_delay小于期望延时参数Target_delay,则表明抖动缓存中数据不够,则抖动缓存继续接收语音数据包;如果当前延时参数Current_delay大于或等于期望延时参数Target_delay,则解码并取出播放语音数据包,抖动缓存状态切换为Working_state状态;当出现异常情况时,抖动缓存状态切换为Waiting_state状态。
所述抖动缓存中的语音数据包为从远端接收到的按序列号升序排列、间隔为1的编码后的语音数据包序列的组成部分,判断数据包的序列号是否连续,如不连续,则发生丢包情形,其中导致不连续的序号的数据包即为丢失的数据包,此时重传丢失的数据包;在接收语音数据包时,判断是否需要调大当前延时参数Current_delay,即比较当前延时参数Current_delay与当前延时参数下限参数Min_Current_delay的大小:如Current_delay小于Min_Current_delay,则将调大延时标记参数Need_turn_up置为True,否则将调大延时标记参数Need_turn_up置为False。
在取出播放语音数据包时,周期性判断调大延时标记参数Need_turn_up的值,如果为True,则在当前缓存中插入固定步长的数据帧,直到Current_delay大于或等于Target_delay为止。
在取出播放语音数据包时,如果当前延时参数Current_delay大于当前延时调整上限参数Max_Current_delay,则将调小延时标记参数Need_turn_down置Ture,否则将调小延时标记参数Need_turn_down置False。
在取出播放语音数据包时,周期性判断调小延时标记参数Need_turn_down的值,如果为True,则在当前缓存中合并固定步长的数据帧,直到Current_delay小于或等于Target_delay为止,以达到对抖动缓存中的数据包进行自适应延时处理效果。
根据调整后的抖动缓存的目标延时参数,对抖动缓存中的数据包进行延时处理过程中的判断和调整的速率需要作限制,例如以周期80ms,步长10ms进行判断和调整。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。并且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质( 包括但不限于磁盘存储器和光学存储器等) 上实施的计算机程序产品的形式。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/ 或方框图一个方框或多个方框中指定的功能的步骤。
Claims (8)
1.一种语音数据延时处理方法,其特征在于,该方法包括如下步骤:
确定用于表示当前网络状况的原始网络丢包率参数、重传后网络丢包率参数、重传数据包中迟到包所占比率参数和数据包最大抖动幅度参数,其中,所述重传数据包中迟到包所占比率为:每个统计周期内重传到达的数据包中,晚于播放时刻到达的重传包数量占所有重传包数量的比率;
根据当前原始网络丢包率参数、重传后网络丢包率参数、重传数据包中迟到包所占比率参数和数据包最大抖动幅度参数,调整抖动缓存的目标延时参数,具体包括:
如果原始丢包率小于原始丢包率阈值,并且重传数据包中迟到包所占比率小于重传数据包中迟到包所占比率阈值1,则按固定步长调小期望延时参数Target_delay,此时如果期望延时参数Target_delay小于期望延时调整下限参数Min_Target_delay,则将期望延时参数Target_delay调整为期望延时调整下限参数Min_Target_delay;
如果重传后网络丢包率小于原始网络丢包率,并且重传数据包中迟到包所占比率大于重传数据包中迟到包所占比率阈值2,则按固定步长调大期望延时参数Target_delay,此时如果期望延时参数Target_delay大于期望延时调整上限参数Max_Target_delay,则将期望延时参数Target_delay调整为期望延时调整上限参数Max_Target_delay;
如果数据包最大抖动幅度参数大于期望延时参数Target_delay,则将期望延时参数Target_delay调整为最大抖动幅度参数*1.2;
根据调整后的抖动缓存的目标延时参数,对抖动缓存中的数据包进行延时处理。
2.根据权利要求1所述的语音数据延时处理方法,其特征在于,所述表示当前网络状况的原始网络丢包率参数、重传后网络丢包率参数、重传数据包中迟到包所占比率参数、数据包最大抖动幅度参数进行周期性统计,其中:
原始网络丢包率为每个统计周期内发生丢包重传情况前的网络丢包率,原始网络丢包率=(每个统计周期内发生丢包重传情况前的丢包数量/每个统计周期内的总数据包数量)*100%;
重传后网络丢包率为每个统计周期内发生丢包重传情况后的网络丢包率,重传后网络丢包率=(每个统计周期内发生丢包重传情况后的丢包数量/每个统计周期内的总数据包数量)*100%;
重传数据包中迟到包所占比率为每个统计周期内重传到达的数据包中,晚于播放时刻到达的重传包数量占所有重传包数量的比率,重传数据包中迟到包所占比率=(每个统计周期内晚于播放时刻到达的重传数据包数量/每个统计周期内总的重传数据包数量)*100%;
最大抖动幅度参数为每个统计周期内相邻数据包时间间隔的最大值,单位为ms。
3.根据权利要求1所述的语音数据延时处理方法,其特征在于,根据调整后的抖动缓存的目标延时参数,对抖动缓存中的数据包进行延时处理,包括:
周期性判断抖动缓存状态,当抖动缓存状态为Waiting_state状态时,则比较当前延时参数Current_delay与期望延时参数Target_delay的大小:如果当前延时参数Current_delay小于期望延时参数Target_delay,则表明抖动缓存中数据不够,则抖动缓存继续接收语音数据包;如果当前延时参数Current_delay大于或等于期望延时参数Target_delay,则解码并取出播放语音数据包,抖动缓存状态切换为Working_state状态;当出现异常情况时,抖动缓存状态切换为Waiting_state状态;
所述抖动缓存中的语音数据包为从远端接收到的按序列号升序排列、间隔为1的编码后的语音数据包序列的组成部分,判断数据包的序列号是否连续,如不连续,则发生丢包情形,其中导致不连续的序号的数据包即为丢失的数据包,此时重传丢失的数据包;在接收语音数据包时,判断是否需要调大当前延时参数Current_delay,即比较当前延时参数Current_delay与当前延时参数下限参数Min_Current_delay的大小:如Current_delay小于Min_Current_delay,则将调大延时标记参数Need_turn_up置为True,否则将调大延时标记参数Need_turn_up置为False;
在取出播放语音数据包时,周期性判断调大延时标记参数Need_turn_up的值,如果为True,则在当前缓存中插入固定步长的数据帧,直到当前延时参数Current_delay大于或等于期望延时参数Target_delay为止;
在取出播放语音数据包时,如果当前延时参数Current_delay大于当前延时调整上限参数Max_Current_delay,则将调小延时标记参数Need_turn_down置Ture,否则将调小延时标记参数Need_turn_down置False;
在取出播放语音数据包时,周期性判断调小延时标记参数Need_turn_down的值,如果为True,则在当前缓存中合并固定步长的数据帧,直到当前延时参数Current_delay小于或等于目标延时参数Target_delay为止,
其中:
Waiting_state状态:此时处于等待数据接收状态,此时只接收数据包不取出数据;
Working_state状态:此时处于正常工作状态,此时既接收数据也取出数据
Current_delay:当前延时参数,即目前缓存中的数据量大小,单位为ms。
4.根据权利要求3所述的语音数据延时处理方法,其特征在于,所述异常情况包括:
新接收的数据包序列号与缓存中的数据包序列号相差超过200;
抖动缓存的当前延时参数Current_delay小于五分之一的目标延时参数Target_delay;
抖动缓存的当前延时参数Current_delay大于二倍的目标延时参数Target_delay。
5.一种语音数据延时处理装置,其特征在于,该装置包括:
网络状况确定单元,用于确定表示当前网络状况的原始网络丢包率参数、重传后网络丢包率参数、重传数据包中迟到包所占比率参数和数据包最大抖动幅度参数,其中,所述重传数据包中迟到包所占比率为:每个统计周期内重传到达的数据包中,晚于播放时刻到达的重传包数量占所有重传包数量的比率;
抖动缓存的目标延时参数调整单元,用于根据当前原始网络丢包率参数、重传后网络丢包率参数、重传数据包中迟到包所占比率参数和数据包最大抖动幅度参数,调整抖动缓存的目标延时参数,具体包括:
如果原始丢包率小于原始丢包率阈值,并且重传数据包中迟到包所占比率小于重传数据包中迟到包所占比率阈值1,则按固定步长调小期望延时参数Target_delay,此时如果期望延时参数Target_delay小于期望延时调整下限参数Min_Target_delay,则将期望延时参数Target_delay调整为期望延时调整下限参数Min_Target_delay;
如果重传后网络丢包率小于原始网络丢包率,并且重传数据包中迟到包所占比率大于重传数据包中迟到包所占比率阈值2,则按固定步长调大期望延时参数Target_delay,此时如果期望延时参数Target_delay大于期望延时调整上限参数Max_Target_delay,则将期望延时参数Target_delay调整为期望延时调整上限参数Max_Target_delay;
如果数据包最大抖动幅度参数大于期望延时参数Target_delay,则将期望延时参数Target_delay调整为最大抖动幅度参数*1.2;
抖动缓存中数据包延时处理单元,用于根据调整后的抖动缓存的目标延时参数,对抖动缓存中的数据包进行延时处理。
6.根据权利要求5所述的语音数据延时处理装置,其特征在于,所述网络状况确定单元,用于对原始网络丢包率参数、重传后网络丢包率参数、重传数据包中迟到包所占比率参数、数据包最大抖动幅度参数进行周期性统计,其中:
原始网络丢包率为每个统计周期内发生丢包重传情况前的网络丢包率,原始网络丢包率=(每个统计周期内发生丢包重传情况前的丢包数量/每个统计周期内的总数据包数量)*100%;
重传后网络丢包率为每个统计周期内发生丢包重传情况后的网络丢包率,重传后网络丢包率=(每个统计周期内发生丢包重传情况后的丢包数量/每个统计周期内的总数据包数量)*100%;
重传数据包中迟到包所占比率为每个统计周期内重传到达的数据包中,晚于播放时刻到达的重传包数量占所有重传包数量的比率,重传数据包中迟到包所占比率=(每个统计周期内晚于播放时刻到达的重传数据包数量/每个统计周期内总的重传数据包数量)*100%;
最大抖动幅度参数为每个统计周期内相邻数据包时间间隔的最大值,单位为ms。
7.根据权利要求5所述的语音数据延时处理装置,其特征在于,所述抖动缓存中数据包延时处理单元,用于根据调整后的抖动缓存的目标延时参数,对抖动缓存中的数据包进行延时处理,包括:
周期性判断抖动缓存状态,当抖动缓存状态为Waiting_state状态时,则比较当前延时参数Current_delay与期望延时参数Target_delay的大小:如果当前延时参数Current_delay小于期望延时参数Target_delay,则表明抖动缓存中数据不够,则抖动缓存继续接收语音数据包;如果当前延时参数Current_delay大于或等于期望延时参数Target_delay,则解码并取出播放语音数据包,抖动缓存状态切换为Working_state状态;当出现异常情况时,抖动缓存状态切换为Waiting_state状态;
所述抖动缓存中的语音数据包为从远端接收到的按序列号升序排列、间隔为1的编码后的语音数据包序列的组成部分,判断数据包的序列号是否连续,如不连续,则发生丢包情形,其中导致不连续的序号的数据包即为丢失的数据包,此时重传丢失的数据包;在接收语音数据包时,判断是否需要调大当前延时参数Current_delay,即比较当前延时参数Current_delay与当前延时参数下限参数Min_Current_delay的大小:如Current_delay小于Min_Current_delay,则将调大延时标记参数Need_turn_up置为True,否则将调大延时标记参数Need_turn_up置为False;
在取出播放语音数据包时,周期性判断调大延时标记参数Need_turn_up的值,如果为True,则在当前缓存中插入固定步长的数据帧,直到当前延时参数Current_delay大于或等于期望延时参数Target_delay为止;
在取出播放语音数据包时,如果当前延时参数Current_delay大于当前延时调整上限参数Max_Current_delay,则将调小延时标记参数Need_turn_down置Ture,否则将调小延时标记参数Need_turn_down置False;
在取出播放语音数据包时,周期性判断调小延时标记参数Need_turn_down的值,如果为True,则在当前缓存中合并固定步长的数据帧,直到当前延时参数Current_delay小于或等于目标延时参数Target_delay为止,
其中:
Waiting_state状态:此时处于等待数据接收状态,此时只接收数据包不取出数据;
Working_state状态:此时处于正常工作状态,此时既接收数据也取出数据
Current_delay:当前延时参数,即目前缓存中的数据量大小,单位为ms。
8.根据权利要求7所述的语音数据延时处理装置,其特征在于,所述异常情况包括:
新接收的数据包序列号与缓存中的最大序列号数据包的序列号相差超过200;
抖动缓存的当前延时参数Current_delay小于五分之一的目标延时参数Target_delay;
抖动缓存的当前延时参数Current_delay大于二倍的目标延时参数Target_delay。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510043932.9A CN105991476B (zh) | 2015-01-29 | 2015-01-29 | 一种语音数据延时处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510043932.9A CN105991476B (zh) | 2015-01-29 | 2015-01-29 | 一种语音数据延时处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105991476A CN105991476A (zh) | 2016-10-05 |
CN105991476B true CN105991476B (zh) | 2020-08-04 |
Family
ID=57034238
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510043932.9A Active CN105991476B (zh) | 2015-01-29 | 2015-01-29 | 一种语音数据延时处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105991476B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109104263A (zh) * | 2017-06-20 | 2018-12-28 | 阿里巴巴集团控股有限公司 | 存储容量的调整方法、装置和系统 |
CN109976752A (zh) * | 2017-12-27 | 2019-07-05 | 沪江教育科技(上海)股份有限公司 | 一种跨平台开发方法及系统 |
CN112543296B (zh) * | 2020-11-26 | 2023-04-07 | 中移(杭州)信息技术有限公司 | 延时控制方法、装置和网络设备 |
CN113037440B (zh) * | 2021-05-25 | 2021-08-06 | 腾讯科技(深圳)有限公司 | 数据重传处理方法、装置、计算机设备和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1677954A (zh) * | 2004-04-02 | 2005-10-05 | 华为技术有限公司 | 语音传输过程中动态调整抖动缓存的实现方法 |
CN101022326A (zh) * | 2007-02-01 | 2007-08-22 | 华为技术有限公司 | 延时控制的方法及其装置 |
CN102388584A (zh) * | 2011-09-22 | 2012-03-21 | 华为技术有限公司 | 拥塞控制方法及设备 |
CN103533451A (zh) * | 2013-09-30 | 2014-01-22 | 广州华多网络科技有限公司 | 抖动缓存调节方法及其系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8953622B2 (en) * | 2011-11-18 | 2015-02-10 | Motorola Solutions, Inc. | Method and apparatus for jitter buffering within a communication system |
-
2015
- 2015-01-29 CN CN201510043932.9A patent/CN105991476B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1677954A (zh) * | 2004-04-02 | 2005-10-05 | 华为技术有限公司 | 语音传输过程中动态调整抖动缓存的实现方法 |
CN101022326A (zh) * | 2007-02-01 | 2007-08-22 | 华为技术有限公司 | 延时控制的方法及其装置 |
CN102388584A (zh) * | 2011-09-22 | 2012-03-21 | 华为技术有限公司 | 拥塞控制方法及设备 |
CN103533451A (zh) * | 2013-09-30 | 2014-01-22 | 广州华多网络科技有限公司 | 抖动缓存调节方法及其系统 |
Also Published As
Publication number | Publication date |
---|---|
CN105991476A (zh) | 2016-10-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11546399B2 (en) | Method and apparatus for providing a low latency transmission system using adjustable buffers | |
CN105430532B (zh) | 一种视频数据传输自适应调整的控制方法及其系统 | |
CN105991476B (zh) | 一种语音数据延时处理方法及装置 | |
JP5153891B2 (ja) | ネットワーク・ノードのための簡易な適応ジッタ・バッファリング・アルゴリズム | |
US9985887B2 (en) | Method and apparatus for providing a low latency transmission system using adaptive buffering estimation | |
WO2017000719A1 (zh) | 一种基于队列时延的拥塞控制方法及装置 | |
CN110192394B (zh) | 通过网络传送媒体内容的方法和服务器 | |
EP3466001B1 (en) | Media buffering | |
WO2014100331A1 (en) | Apparatus and methods for controlling jitter buffer | |
CN103533451A (zh) | 抖动缓存调节方法及其系统 | |
CN104009819B (zh) | 基于分层编码的抗丢包实时通信方法、系统及相关设备 | |
CN103647722B (zh) | 一种基于信誉的链路拥塞控制方法 | |
WO2000055829A1 (en) | Jitter buffer and methods for control of same | |
CN104394484A (zh) | 一种无线实时流媒体传输方法 | |
WO2019095278A1 (en) | Method and apparatus for synchronization between different data packet streams | |
CN105099940B (zh) | 队列管理方法和装置 | |
US11425051B2 (en) | Flow control method and system, and device | |
CN102292943A (zh) | 分组通信系统中的接收节点和用于管理分组通信系统中的接收节点中的缓冲器的方法 | |
WO2017021682A1 (en) | Monitoring network conditions | |
CN105142002A (zh) | 音/视频直播方法、装置及控制方法、装置 | |
CN104683866A (zh) | 一种接收视频流的播放处理方法 | |
US20110013618A1 (en) | Method Of Processing Sequential Information In Packets Streamed Over A Network | |
CN105472404A (zh) | 一种视频业务中的数据处理方法 | |
CN105610728A (zh) | 一种基于时间窗口的网络爬虫流量控制自动降级方法 | |
CN110620939A (zh) | 一种网络状态确定方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220708 Address after: 200090 room 1601, 1602, 16th floor, No. 32, Tieling Road, Yangpu District, Shanghai Patentee after: Shanghai Xinhu Education Technology Co.,Ltd. Address before: Room 703, puruan building, No. 2, Boyun Road, Pudong New Area, Shanghai 201203 Patentee before: HUJIANG EDUCATION TECHNOLOGY (SHANGHAI) CO.,LTD. |
|
TR01 | Transfer of patent right |