一种实时传输协议时间戳的生成方法

文档序号:7898325阅读:275来源:国知局
专利名称:一种实时传输协议时间戳的生成方法
技术领域
本发明涉及通信技术领域,尤其涉及一种实时传输协议时间戳的生成方法。
背景技术
实时传输协议(RTP)是在IP等包交换网络上承载实时语音/媒体流的承载协议,利用这个协议,接收方可以通过每个RTP报文在发送时由发送方标记上去的时间戳和序列号实现抖动的消除和报文的序列重建(乱序消除)。按照RTP标准,发送方在生成时戳时必须满足严格的要求,这些要求包括1、时戳必须基于规定的,或者双方协商好的时钟频率,比如,一般的语音编解码都是以8KHz为基准时钟。
2、相邻报文之间的时戳差值必须是相应的语音/媒体编解码所规定的组包间隔的整数倍。比如,自适应多速率(AMR)语音编解码(一种标准的编解码算法)所规定的组包间隔为20毫秒,在基于标准规定的基准时钟(8KHz)情况下,这个组包间隔相当于RTP时钟的160个滴答。因为静音压缩的缘故,AMR编解码在静音情况下相隔一段时间(8个AMR组包时间,等同于160毫秒)才输出一个背景更新报文,那么,在静音压缩期间,相邻的RTP报文的时戳相差为160×8=1280个滴答。
现有的常用的RTP时戳生成方法就是采用编解码算法来完成时戳的生成,对于编解码模块来讲,语音是连续的,所以算法知道所有需要的时间信息,在实际工作中,编解码模块可以这样实现时间戳的生成1、随机生成第一个报文(P0)的RTP时间戳(标准出于安全的考虑,要求RTP时戳的起始值是一个随机数),记为TS0;2、随后,对每一个生成的语音报文Pi(i属于自然数),设置其时戳为TSi-1+Delta,其中,Delta为该语音编解码的标准组包间隔(比如,对于AMR编解码来讲,Delta=160);3、如果某个报文Pj不需要在网络上传送给对端(比如处于静音压缩期间的非连续传输帧),那么将这个报文丢弃,但是仍然更新TSj。
现有的时间戳的生成存在以下缺点1、必须在存在编解码器的情况下才能应用,如果没有编解码器,则算法不适用,比如,在不需要语音编解码,但是需要把其它承载内的语音流转换到RTP承载时。
2、如果强行增加编解码器,因为编解码器资源昂贵,那么设备的成本将急剧升高,另外,编解码器的编解码动作增加了延迟,并增加了语音损伤。
3、如果RTP协议处理和编解码器不在一个器件内(比如数字信号处理器)实现,那么编解码器需要传递时戳信息到RTP协议处理部件,这样增加了设备内部的传输带宽要求,并增加了消息复杂度。

发明内容
本发明所要解决的技术问题是克服现有的生成RTP时戳必须使用编解码器所带来的成本高、语音损伤及增加了设备内部的传输带宽要求等缺点,提供一种不需要编解码器的简单、有效、快速地生成RTP时戳的方法,从而节约设备成本,降低语音损伤。
本发明为解决上述技术问题所采用的技术方案为
这种实时传输协议时间戳的生成方法,其特征在于采用局部时钟并通过执行器来生成实时传输协议(RTP)时戳,包括以下步骤A、随机生成第一个报文的RTP时间戳;B、对后续报文取得当前局部时钟,并计算当前局部时钟与前一个报文局部时钟的差值;C、对所述差值进行修正,使其为语音编解码组包间隔的整数倍;D、当前报文时戳为前一个报文时戳与所述经过修正的差值之和。
所述的步骤C中,对所述的差值进行修正时,可先将该差值除以语音编解码的组包间隔后取整,然后再乘以语音编解码的组包间隔。
所述的步骤C中,对所述的差值进行修正时,可先将该差值先加上修正因子,对局部时钟和源端时钟的不同步进行补偿后,再除以语音编解码的组包间隔后取整,然后再乘以语音编解码的组包间隔。
所述的修正因子为语音编解码的组包间隔的一半。
所述的执行器位于语音源端和目的端之间,可以和语音源在同一个设备之内,也可以不在同一个设备之内,而是和语音源端通过网络相连。
当实现异步传输模式第二适配层(AAL2)承载到RTP承载之间的转换时,所述的执行器在需要承载转换的媒体网关内部。
当语音源端和所述的执行器之间为可靠链路时,若当前报文是语音帧,且前一个报文也是语音帧,则当前报文时戳为前一个报文时戳加上语音编解码的组包间隔。
所述局部时钟的频率可以和需要支持的语音编解码的基准时钟频率相同,也可以不同。
当局部时钟的频率和需要支持的语音编解码的基准时钟频率不同时,将取得的局部时钟数值转换为与语音编解码基准时钟频率对应的时钟数值。
本发明的有益效果为本发明利用局部时钟,并通过执行器生成RTP时戳,实现了一种不需要编解码器的快速RTP时戳生成方法,该方法简单、有效,算法复杂度很低。RTP时戳的生成方法是自封闭的,不需要编解码器的额外帮助,尤其是在只需要进行承载转换,而不需要进行编解码转换的场合有着重要的意义,它免去了增加编解码器的额外费用,从而节约了设备成本,并且避免了其它增加了编解码器后的问题,包括端到端的延迟增大,额外的编解码带来的语音损伤等。
具体实施例方式
下面根据附图
和实施例对本发明作进一步详细说明对于现有技术采用的编解码器,由于语音是连续的,因此编解码模块知道所需的时间信息,本发明不采用编解码器,利用局部时钟并通过执行器来生成RTP时戳,这个时钟的频率可以和需要支持的语音编解码的基准时钟频率相同,也可以不同,但是需要频率更快一些。对于不同的时钟频率,可以将局部时钟数值换算为与编解码的标准时钟频率对应的时钟数值。
本发明执行器的位置在语音源端和目的端之间的某个地方,它可以和语音源在一个设备之内,也可以不在同一个设备之内,而是和语音源端通过某个网络相连,典型的,比如在需要承载转换的媒体网关内部,实现异步传输模式第二适配层(即AAL2,一种在异步传输模式ATM网络上承载语音等实时流的承载协议)承载到RTP承载之间的转换。
设需要支持的语音编解码的组包间隔所对应的RTP滴答数为Interval(对AMR编解码来讲,Interval=160),假设局部时钟的频率和编解码的标准时钟频率相同,则1、对第一个RTP报文P0,其时戳TS0为一个随机数,同时记录当前局部时钟的数值C0;
2、对后续的每一个报文Pi,进行如下处理2a、取得当前局部时钟Ci;2b、计算Ci-Ci-1;2c、C=(Ci-Ci-1+Interval/2)/Interval后取整;其中,Interval/2为修正因子,可以对局部时钟和源端时钟的不同步进行补偿;2d、第i个报文的时戳为TSi=TSi-1+C×Interval;2e、记录TSi和Ci,以备后用。
由于时戳必须基于规定的,或者双方协商好的时钟频率,因此,若局部时钟频率与编解码标准时钟频率不同,例如当局部时钟频率为20KHz,而AMR编解码标准时钟频率为8KHz时,20ms的标准组包间隔相当于此局部时钟的400个滴答,而相当于编解码标准时钟频率而言是160个滴答。因此,在上述步骤中取得局部时钟数值Ci和Ci-1后,需要根据局部时钟频率与编解码标准时钟频率的比值,先将其换算成与编解码标准时钟频率对应的时钟值,再进行后续处理。
当语音源端和本发明执行器之间为可靠链路时(不存在帧丢失的情况),本发明实现方法还可以进一步简化1、对第一个RTP报文P0,其时戳TS0为一个随机数,同时记录当前局部时钟的数值C0;2、对后续的每一个报文Pi,进行如下处理2a、判断当前的报文是语音帧还是静音帧,如果是语音帧,则进行2b,否则2e;2b、判断前一个报文是语音帧还是静音帧,如果是语音帧,则进行2c,否则2e;2c、该报文的时戳为TSi=TSi-1+Interval;2d、取得并记录当前时钟Ci,记录TSi,结束。
2e、取得当前局部时钟Ci;2f、计算Ci-Ci-1;2g、C=(Ci-Ci-1+Interval/2)/Interval后取整;其中,Inteval/2为修正因子,可以对局部时钟和源端时钟的不同步进行补偿;2h、第i个报文的时戳为TSi=TSi-1+C×Interval;2i、记录TSi和Ci,以备后用,结束。
在这种情况下,只有静音情况下的背景更新帧,以及静音后的第一个语音帧的时间戳需要一定的计算,而其它的语音帧只是进行简单的加法计算,而实际上,语音帧要占到整个语音流的帧的一半,所以,该简化降低了一半的算法复杂度。
本发明实现了一种不需要编解码器的快速RTP时戳生成方法,该方法简单、有效,算法复杂度低,免去了增加编解码器的额外费用,从而节约了设备成本,并且避免了其它增加了编解码器后的问题,包括端到端的延迟增大,额外的编解码带来的语音损伤等。
权利要求
1.一种实时传输协议时间戳的生成方法,其特征在于采用局部时钟并通过执行器来生成实时传输协议(RTP)时戳,包括以下步骤A、随机生成第一个报文的RTP时间戳;B、对后续报文取得当前局部时钟,并计算当前局部时钟与前一个报文局部时钟的差值;C、对所述差值进行修正,使其为语音编解码组包间隔的整数倍;D、当前报文时戳为前一个报文时戳与所述经过修正的差值之和。
2.根据权利要求1所述的实时传输协议时间戳的生成方法,其特征在于所述的步骤C中,对所述的差值进行修正时,可先将该差值除以语音编解码的组包间隔后取整,然后再乘以语音编解码的组包间隔。
3.根据权利要求1所述的实时传输协议时间戳的生成方法,其特征在于所述的步骤C中,对所述的差值进行修正时,可先将该差值先加上修正因子,对局部时钟和源端时钟的不同步进行补偿后,再除以语音编解码的组包间隔后取整,然后再乘以语音编解码的组包间隔。
4.根据权利要求3所述的实时传输协议时间戳的生成方法,其特征在于所述的修正因子为语音编解码的组包间隔的一半。
5.根据权利要求1、2、3或4所述的实时传输协议时间戳的生成方法,其特征在于所述的执行器位于语音源端和目的端之间,可以和语音源在同一个设备之内,也可以不在同一个设备之内,而是和语音源端通过网络相连。
6.根据权利要求5所述的实时传输协议时间戳的生成方法,其特征在于当实现异步传输模式第二适配层(AAL2)承载到RTP承载之间的转换时,所述的执行器在需要承载转换的媒体网关内部。
7.根据权利要求5所述的实时传输协议时间戳的生成方法,其特征在于当语音源端和所述的执行器之间为可靠链路时,若当前报文是语音帧,且前一个报文也是语音帧,则当前报文时戳为前一个报文时戳加上语音编解码的组包间隔。
8.根据权利要求1、2、3或4所述的实时传输协议时间戳的生成方法,其特征在于所述局部时钟的频率可以和需要支持的语音编解码的基准时钟频率相同,也可以不同。
9.根据权利要求8所述的实时传输协议时间戳的生成方法,其特征在于当局部时钟的频率和需要支持的语音编解码的基准时钟频率不同时,将取得的局部时钟数值转换为与语音编解码基准时钟频率对应的时钟数值。
全文摘要
一种涉及通信技术领域的实时传输协议(RTP)时间戳的生成方法,采用局部时钟并通过执行器来生成RTP时戳,首先随机生成第一个报文的RTP时间戳;对后续报文取得当前局部时钟,并计算当前局部时钟与前一个报文局部时钟的差值;对所述差值进行修正,使其为语音编解码组包间隔的整数倍;当前报文时戳为前一个报文时戳加上所述经过修正的差值。当语音源端和执行器之间为可靠链路时,若当前报文是语音帧,且前一个报文也是语音帧,则当前报文时戳为前一个报文时戳加上语音编解码的组包间隔。本发明提供了一种不需要编解码器的简单、有效、快速地生成RTP时戳的方法,从而节约了设备成本,降低了语音损伤。
文档编号H04L12/56GK1538704SQ0311005
公开日2004年10月20日 申请日期2003年4月14日 优先权日2003年4月14日
发明者吴向斌 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1