一种发送、接收时间戳信息的方法和装置与流程

文档序号:12823065阅读:484来源:国知局
一种发送、接收时间戳信息的方法和装置与流程

本发明涉及移动通讯领域,特别是涉及一种发送、接收时间戳信息的方法和装置。



背景技术:

为了充分利用带宽,引入了rohc(robustheadercompression,信头压缩协议),即对业务报文中的协议头进行压缩的技术,其中对于涉及语音视频业务的协议,有profile4可以压缩ip协议头,有profile2可以压缩ip/udp协议头,profile1可以压缩ip/udp/rtp协议头,对于rtp协议(real-timetransportprotocol,实时传输协议)类型的报文profile1压缩效率最高。每种profile下有各自维护的ir、fo、so压缩状态,压缩效率从低到高,每种profile下各自维护的压缩模式,不同的压缩模式根据不同回迁方式保证头压缩的鲁棒性,其中u模式周期回迁,r模式是根据终端的反馈进行回迁,o模式是既可以根据反馈进行回迁也可以周期回迁。

现有技术中,profile1下对于timestamp的主要压缩算法思想如下:两个连续的rtp包头的时间戳(timestamp)域之间通常不是任意增加的,相反每次增加的是个定值(ts_stride)的整数倍。例如:在语音流中,语音的采样频率通常为8khz,而一帧数据中包含20ms的语音数据,通常一个语音帧放在一个rtp包中传输,这种情况下rtp包中timestamp域的增长量通常为n*160(l60=8000*0.02),n为正整数,n的引入主要是因为语音通话过程中,有一段时间称为静默期存在,这段时间内没有语音存在,因此timestamp的增长量为160的整数倍。

timestamp的值可以通过如下公式表示:timestamp=ts_scaled*ts_stride+ts_offset;现有协议中要求ts_stride不为0,因为计算ts_scaled需要timestamp除以ts_stride,计算ts_offset需要timestamp模上ts_stride。

如果压缩端和解压端相互协商好ts_stride和ts_offset的值,则压缩端每次只需要发送ts_scaled的值即可,而发送ts_scaled的开销远小于发送ts,从而实现了压缩。

对于profile1下的语音视频业务,rtp协议包里的时间戳timestamp,动态字段影响压缩效率,对于语音业务编码速率固定后timestamp一般都是按固定步长增加,而对于视频业务来是timestamp主要用于和语音统一,所以对于大视频来说经常会有一个画面很多相同的timestamp报文,但是rtp报文里的sn还是加1增加的。而对于timestamp的压缩方式,在rfc3095和rfc4815里没有明确给出当timestamp不变时的处理方式,只要求ts_stride必须非零,所以按照协议我们只能把这种方式按照跳变理解,跳变的时候就要求timestamp必须原值发送,大大降低了timestamp的压缩效率。



技术实现要素:

本发明提供一种发送、接收时间戳信息的方法和装置,用以解决现有技术在压缩时,ts_stride只能为0,且在前后两包timestamp一样的情况下,只能原值发送,压缩效率较低的问题。

为解决上述技术问题,一方面,本发明提供一种发送时间戳信息的方法,包括:在当前数据包的时间戳信息与上一数据包的时间戳信息相同的情况下,判断时间戳信息相同的次数是否达到预设次数;在时间戳信息相同的次数达到预设次数的情况下,在再次收到与上一数据包的时间戳信息相同的时间戳信息时,采用零比特位发送所述时间戳信息。

进一步,判断时间戳信息相同的次数是否达到预设次数之前,还包括:判断当前数据包的时间戳信息是否与上一数据包的时间戳信息相同;在所述当前数据包的时间戳信息与所述上一数据包的时间戳信息相同的情况下,维护压缩端的定值为零,并向解压端发送维护定值为零的信息,以使解压端与压缩端的定值相同。

另一方面,本发明提供一种接收时间戳信息的方法,包括:判断解压得到相同的时间戳信息的次数是否达到预设解压次数;在得到相同的时间戳信息的次数达到所述预设解压次数的情况下,维护时间偏移量等于时间戳信息。

进一步,判断解压得到相同的时间戳信息的次数是否达到预设解压次数之前,还包括:接收来自压缩端的维护信息,其中,所述维护信息为维护定值为零的信息;解压端根据所述维护信息修改本地的定值。

另一方面,本发明还提供一种发送时间戳信息的装置,包括:第一判断模块,用于在当前数据包的时间戳信息与上一数据包的时间戳信息相同的情况下,判断时间戳信息相同的次数是否达到预设次数;发送模块,用于在时间戳信息相同的次数达到预设次数的情况下,在再次收到与上一数据包的时间戳信息相同的时间戳信息时,采用零比特位发送所述时间戳信息。

进一步,还包括:第二判断模块,用于判断当前数据包的时间戳信息是否与上一数据包的时间戳信息相同;执行模块,用于在所述当前数据包的时间戳信息与所述上一数据包的时间戳信息相同的情况下,维护压缩端的定值为零,并通过所述发送模块向解压端发送维护定值为零的信息,以使解压端与压缩端的定值相同。

另一方面,本发明提供一种接收时间戳信息的装置,包括:第三判断模块,用于判断解压得到相同的时间戳信息的次数是否达到预设解压次数;维护模块,用于在得到相同的时间戳信息的次数达到所述预设解压次数的情况下,维护时间偏移量等于时间戳信息。

进一步,还包括:接收模块,用于接收来自压缩端的维护信息,其中,所述维护信息为维护定值为零的信息;修改模块,用于根据所述维护信息修改本地的定值。

又一方面,本发明提供一种压缩系统,包括:上述的发送时间戳信息的装置和上述的接收时间戳信息的装置。

本发明通过比较相邻两次时间戳信息是否相同,在相同的次数达到预设次数的情况下,采用零比特位发送下一个相同的时间戳信息,该方法采用零比特位发送时间戳,压缩时间更快,处理速度明显提升,解决了现有技术在压缩时,ts_stride只能为0,且在前后两包timestamp一样的情况下,只能原值发送,压缩效率较低。

附图说明

图1是本发明实施例中发送时间戳信息的方法的流程图;

图2是本发明实施例中接收时间戳信息的方法的流程图;

图3是本发明实施例中发送时间戳信息的装置的结构示意图;

图4是本发明实施例中发送时间戳信息的装置的优选结构示意图;

图5是本发明实施例中接收时间戳信息的装置的结构示意图;

图6是本发明实施例中接收时间戳信息的装置的优选结构示意图;

图7是本发明优选实施例中实施方式一的压缩端工作流程图;

图8是本发明优选实施例中实施方式二的压缩端工作流程图。

具体实施方式

为了解决现有技术在压缩时,ts_stride只能为0,且在前后两包timestamp一样的情况下,只能原值发送,压缩效率较低的问题,本发明提供了一种发送、接收时间戳信息的方法和装置,以下结合附图以及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不限定本发明。

本发明实施例提供一种发送时间戳信息的方法,该方法的流程如图1所示,包括步骤s102至s104:

s102,在当前数据包的时间戳信息(timestamp)与上一数据包的时间戳信息相同的情况下,判断时间戳信息相同的次数是否达到预设次数;

s104,在时间戳信息相同的次数达到预设次数的情况下,在再次收到与上一数据包的时间戳信息相同的时间戳信息时,采用零比特位发送时间戳信息。

本发明实施例通过比较相邻两次时间戳信息是否相同,在相同的次数达到预设次数的情况下,采用零比特位发送下一个相同的时间戳信息,该方法采用零比特位发送时间戳,压缩时间更快,处理速度明显提升,解决了现有技术在压缩时,ts_stride只能为0,且在前后两包timestamp一样的情况下,只能原值发送,压缩效率较低。

实现的过程中,在判断时间戳信息相同的次数是否达到预设次数之前,还可以预先判断当前数据包的时间戳信息是否与上一数据包的时间戳信息相同;如果当前数据包的时间戳信息与上一数据包的时间戳信息相同,则维护压缩端的定值为零,并向解压端发送维护定值为零的信息,以使解压端与压缩端的定值相同。如果当前数据包的时间戳信息与上一数据包的时间戳信息不相同,则正常发送即可。

本发明实施例还提供一种接收时间戳信息的方法,应用于解压端,其流程如图2所示,包括步骤s202至s204:

s202,判断解压得到相同的时间戳信息的次数是否达到预设解压次数;

s204,在得到相同的时间戳信息的次数达到预设解压次数的情况下,维护时间偏移量等于时间戳信息。

本发明实施例是对于解压端的操作,解压端的预设解压次数应与压缩端的收到相同时间戳信息的预设次数相同,这样才能够保证两侧收发进度一致。

在判断解压得到相同的时间戳信息的次数是否达到预设解压次数之前,还可以接收来自压缩端的维护信息,其中,维护信息为压缩端发送的维护定值为零的信息;解压端根据维护信息修改本地的定值。

本发明实施例还提供一种发送时间戳信息的装置,该装置的结构示意如图3所示,包括:第一判断模块10,用于在当前数据包的时间戳信息与上一数据包的时间戳信息相同的情况下,判断时间戳信息相同的次数是否达到预设次数;发送模块20,与第一判断模块10耦合,用于在时间戳信息相同的次数达到预设次数的情况下,在再次收到与上一数据包的时间戳信息相同的时间戳信息时,采用零比特位发送时间戳信息。

上述装置还可以如图4所示,进一步包括:第二判断模块30,用于判断当前数据包的时间戳信息是否与上一数据包的时间戳信息相同;执行模块40,与第二判断模块30和第一判断模块10耦合,用于在当前数据包的时间戳信息与上一数据包的时间戳信息相同的情况下,维护压缩端的定值为零,并通过发送模块向解压端发送维护定值为零的信息,以使解压端与压缩端的定值相同。

本发明实施例还提供一种接收时间戳信息的装置,与上述发送时间戳信息的装置交互,其结构示意如图5所示,包括:第三判断模块50,用于判断解压得到相同的时间戳信息的次数是否达到预设解压次数;维护模块60,与第三判断模块50耦合,用于在得到相同的时间戳信息的次数达到预设解压次数的情况下,维护时间偏移量等于时间戳信息。

上述装置还可以如图6所示,进一步包括:接收模块70,用于接收来自压缩端的维护信息,其中,维护信息为维护定值为零的信息;修改模块80,与接收模块70和第三判断模块50耦合,用于根据维护信息修改本地的定值。

本发明实施例还提供一种压缩系统,其包括上述的发送时间戳信息的装置和接收时间戳信息的装置。本领域技术人员根据上述记载,可以知晓如何实现该压缩系统,此处不再赘述。

优选实施例

本发明实施例针对profile1下头压缩模式进行的改进,目的是为了提高语音视频压缩效率。

当rtp报文连续出现相同timestamp值的时候,为了提高压缩效率,也可通过相邻timestamp值来维护此时的ts_stride(定值)和ts_offset(偏移量),但此时的ts_stride=0,ts_offset=timestamp,而ts_scaled(扩展值)我们默认为跟sequencenumber(sn)变化是一样的,因此连续报文的timestamp一直不变,所以本发明实施例可以采用0bit发送timestamp,从而大大提高了视频业务的压缩效率。

压缩端维护timestamp、ts_stride和ts_offset对应关系,维护好ts_scaled和sequencenumber的对应关系;当ts_stride不为0的时候,我们通过公式“timestamp=ts_scaled*ts_stride+ts_offset”里的ts_scaled和sequencenumber的关系以及ts_offset对timestamp进行压缩解压缩。当ts_stride为0的时候我们用上面公式中的ts_offset对timestamp进行压缩解压缩。下面通过具体实例进行详细说明。

实施方式一

本实施方式通过携带3类型的扩展头实现,可以适用于u/o模式,因为u/o模式下压缩端可以认为解压端自动维护好上下文里的ts_stride和ts_offset的关系,只通过发送原始timestamp来维护ts_stride和ts_offset的关系。下面分别通过压缩端和解压端两个方面来具体描述流程,压缩端工作流程如图7所示,步骤如下:

步骤1:

压缩端:来了一包timestamp值与上一包timestamp值相同;用3类型的扩展头携带timestamp,同时维护压缩端new_ts_stride=0。

解压端:收到也做同样的处理,解压缩3类型的扩展头携带的timestamp,跟上次的值相同,同时维护解压缩端的new_ts_stride=0。

步骤2:

压缩端:当连续来了3包(这个次数可根据经验值维护,是一个预设次数)相同timestamp,维护ts_stride=new_ts_stride=0。

解压端:当连续解压得到3包相同的timestamp,维护ts_stride=new_ts_stride=0;并维护ts_offset=timestamp。

步骤3:

压缩端:当收到第4包timestamp值相同的时候,压缩端可以零bit位发送timestamp。

解压端:当收到第4包零bit位压缩报文时,解压缩timestamp=ts_offset。

实施方式二

本实施方式通过状态回迁发初始化上下文的压缩包实现,可以适用于o/r模式,通过状态回迁,发送带有timestamp和ts_stride的初始化上下文的报文来维护ts_stride和ts_offset的关系。下面分别通过压缩端和解压端两个方面来具体描述流程,压缩端工作流程如图8所示,步骤如下:

步骤1:

压缩端:来了一包timestamp值与上一包timestamp值相同;用ir或者ir-dyn报文携带timestamp和ts_stride.这里timestamp就是实际值,ts_stride为0。

解压端:收到也做同样的处理,解压缩ir或者ir-dyn报文携带timestamp和ts_stride,维护ts_stride=0。

步骤2:

压缩端:o/r模式下,当收到解压端反馈后,维护ts_stride=0。

解压端:o/r模式下,直接维护ts_stride=0,ts_offset=timestamp。

步骤3:

压缩端:当收到第4包timestamp值相同的时候,压缩端可以零bit位发送timestamp。

解压端:当收到第4包零bit位压缩报文时,解压缩timestamp=ts_offset。

上述实施例与ts_stride不为0的情况是有区别的,不为0的时候要求ts_scaled和rtp报文里的sequencenumber变化量相同才能零bit位发送,然而,本发明实施例只要timestamp值不变都可以零bit位发送,通过使用本发明实施例,在鲁棒性头压缩功能使能后,尤其对于高清视频业务,出现连续视频包中用相同timestamp值,可以大大提高大视频业务的鲁棒性头压缩的压缩效率。

尽管为示例目的,已经公开了本发明的优选实施例,本领域的技术人员将意识到各种改进、增加和取代也是可能的,因此,本发明的范围应当不限于上述实施例。

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