CN118055165B - 时间戳信息处理方法、装置、计算机设备及存储介质 - Google Patents
时间戳信息处理方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN118055165B CN118055165B CN202410451709.7A CN202410451709A CN118055165B CN 118055165 B CN118055165 B CN 118055165B CN 202410451709 A CN202410451709 A CN 202410451709A CN 118055165 B CN118055165 B CN 118055165B
- Authority
- CN
- China
- Prior art keywords
- timestamp
- data packet
- value
- current data
- packet
- 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
- 230000010365 information processing Effects 0.000 title claims abstract description 31
- 238000003672 processing method Methods 0.000 title claims abstract description 26
- 230000006835 compression Effects 0.000 claims abstract description 150
- 238000007906 compression Methods 0.000 claims abstract description 150
- 230000006837 decompression Effects 0.000 claims abstract description 69
- 238000000034 method Methods 0.000 claims abstract description 28
- 238000004590 computer program Methods 0.000 claims description 20
- 238000012545 processing Methods 0.000 claims description 9
- 230000008569 process Effects 0.000 abstract description 5
- 238000004891 communication Methods 0.000 abstract description 3
- 230000008859 change Effects 0.000 description 7
- 239000002699 waste material Substances 0.000 description 4
- 230000006978 adaptation Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及网络通信技术领域,进一步公开一种时间戳信息处理方法、装置、计算机设备及存储介质,该方法包括:通过压缩端接收当前数据包;确定当前数据包的类型,当前数据包的类型包括:静默数据包和语音数据包;当前数据包为静默数据包时,控制压缩端发送压缩后的时间戳未缩放值至解压端,并控制解压端对压缩后的时间戳未缩放值进行解压;当前数据包为语音数据包时,根据当前数据包携带的第一时间戳信息和前一个数据包携带的第二时间戳信息,控制压缩端发送第一初始化包至解压端;控制解压端根据第一时间戳信息以及第一初始化包对第一时间戳信息进行初始化。本发明减少了初始化过程中的字节开销并提高了压缩端的压缩效率。
Description
技术领域
本发明涉及网络通信技术领域,进一步的涉及一种时间戳信息处理方法、装置、计算机设备及存储介质。
背景技术
ROHC压缩端一旦检测到了TS_STRIDE发生变化就需要发送IR-DYN包来重新初始化TS_STRIDE和TS_OFFSET。如果这两种情况频繁发生,ROHC压缩端就会更加频繁的发送IR-DYN包来重新初始化TS_STRIDE和TS_OFFSET,这明显会降低压缩端的压缩效率。
发明内容
为了解决上述技术问题,本发明提供一种时间戳信息处理方法、装置、计算机设备及存储介质,提高了压缩端的压缩效率。
具体的,本发明的技术方案如下:
本发明提供一种时间戳信息处理方法,包括步骤:
通过压缩端接收当前数据包;
确定所述当前数据包的类型,所述当前数据包的类型包括:静默数据包和语音数据包;
所述当前数据包为静默数据包时,控制所述压缩端发送压缩后的时间戳未缩放值至解压端,并控制所述解压端对压缩后的所述时间戳未缩放值进行解压;
所述当前数据包为语音数据包时,根据所述当前数据包携带的第一时间戳信息和前一个数据包携带的第二时间戳信息,控制所述压缩端发送第一初始化包至解压端;
控制所述解压端根据所述第一时间戳信息以及所述第一初始化包对所述第一时间戳信息进行初始化。
通过确认当前数据包的类型,在当前数据包为静默数据包时不对当前数据包中的时间戳偏差值和时间戳随机偏移量进行初始化,提高了压缩端的压缩效率并减少了资源浪费。在当前数据包为语音数据包且需要进行初始化时,通过第一初始化包对第一时间戳偏差值和第一时间戳随机偏移量进行初始化,相比现有技术依靠第二初始化包和第三初始化包进行初始化,明显减少了初始化过程中的字节开销,进一步提升了压缩端的压缩效率。
在一些实施方式中,所述第一时间戳信息包括:第一时间戳偏差值和第一时间戳定值;所述第二时间戳信息包括:第二时间戳偏差值;所述的据所述当前数据包携带的第一时间戳信息和前一个数据包携带的第二时间戳信息控制所述压缩端发送第一初始化包至解压端,具体包括步骤:
判断所述第一时间戳偏差值是否等于所述第一时间戳定值;
若不相等,判断所述第一时间戳偏差值与所述第二时间戳偏差值是否相等;
若所述第一时间戳偏差值与所述第二时间戳偏差值相等,控制所述压缩端发送所述第一初始化包至所述解压端。
确定当前数据包为语音数据包,通过连续多个限定条件判断当前数据包中的第一时间戳信息是否需要初始化,避免了压缩端频繁发送初始化包(初始化包为第一初始化包、第二初始化包以及第三初始化包)对第一时间戳信息进行初始化,提高了初始化时机选择的精确度以及进一步提高了压缩端的压缩效率。
在一些实施方式中,所述第一时间戳信息还包括:第一时间戳压缩值和第一时间戳随机偏移量;所述的控制所述解压端根据所述第一时间戳信息以及所述第一初始化包对所述第一时间戳信息进行初始化,具体包括步骤:
根据所述第一时间戳压缩值和所述第一时间戳定值控制所述解压端对所述第一时间戳随机偏移量进行初始化;
根据所述第一初始化包中的第一指示信息对所述第一时间戳定值进行初始化,所述第一指示信息包括第一预设时间戳定值。
在一些实施方式中,所述第一时间戳信息还包括:第一时间戳压缩比例值;所述的判断所述第一时间戳偏差值是否等于所述第一时间戳定值之后,还包括步骤:
所述第一时间戳偏差值与所述第一时间戳定值相等时,根据所述第一时间戳压缩值和所述第一时间戳定值控制所述压缩端对所述第一时间戳压缩比例值进行压缩;
控制所述压缩端将压缩后的所述第一时间戳压缩比例值发送所述解压端;
控制所述解压端对所述压缩后的第一时间戳压缩比例值进行解压。
通过当前数据包的第一时间戳偏差值与当前数据包的第一时间戳定值的比较、当前数据包第一时间戳偏差值与前一个数据包的时间戳偏差值的比较,识别出当前数据包的第一时间戳定值是否发生变化,减少语音数据包的第一时间戳偏差值频繁变化带来的第一时间戳定值和第一时间戳随机偏移量更新同步的开销。
在一些实施方式中,还包括步骤:
所述第一时间戳偏差值与所述第二时间戳偏差值不相等时,根据所述第一初始化包控制所述压缩端对所述第一初始化包携带的时间戳未缩放值进行压缩;
控制所述压缩端发送压缩后的时间戳未缩放值至解压端,并控制所述解压端对压缩后的所述时间戳未缩放值进行解压。
在一些实施方式中,所述的通过压缩端接收当前数据包之后,确定所述当前数据包的类型之前,还包括步骤:
判断所述压缩端是否处于初始化状态;
所述压缩端处于所述初始化状态时,根据所述初始化状态控制所述压缩端发送第二初始化包至所述解压端;
根据所述第二初始化包控制所述解压端对所述第一时间戳偏差值以及所述第一时间戳随机偏移量进行初始化。
在一些实施方式中,所述的确定所述当前数据包的类型,具体包括步骤:
判断所述当前数据包的有效载荷长度是否小于预设值,若小于,则判断所述当前数据包为所述静默数据包,若大于,则判断所述当前数据包为所述语音数据包;
或,
判断所述当前数据包内是否存在预设的标记信息,若存在,则判断所述当前数据包为所述静默数据包,若不存在,则判断所述当前数据包为所述语音数据包。
本发明还提供一种时间戳信息处理装置,包括存储器、处理器及存储在存储器上的计算机程序,所述处理器执行所述计算机程序以实现前述实施方式所述时间戳信息处理方法的步骤。
本发明还提供一种计算机设备,包括存储器、处理器及存储在存储器上的计算机程序,所述处理器执行所述计算机程序以实现前述实施方式所述时间戳信息处理方法的步骤。
本发明还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现前述实施方式所述时间戳信息处理方法的步骤。
本发明还提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现前述实施方式所述时间戳信息处理方法的步骤。
与现有技术相比,本发明至少具有以下一项有益效果:
1、通过确认当前数据包的类型,在当前数据包为静默数据包时不对当前数据包中的时间戳偏差值和时间戳随机偏移量进行初始化,提高了压缩端的压缩效率并减少了资源浪费。在当前数据包为语音数据包且需要进行初始化时,通过第一初始化包对第一时间戳偏差值和第一时间戳随机偏移量进行初始化,相比现有技术依靠第二初始化包和第三初始化包进行初始化,明显减少了初始化过程中的字节开销,进一步提升了压缩端的压缩效率。
2、确定当前数据包为语音数据包,通过连续多个限定条件判断当前数据包中的第一时间戳信息是否需要初始化,避免了压缩端频繁发送初始化包(初始化包为第一初始化包、第二初始化包以及第三初始化包)对第一时间戳信息进行初始化,提高了初始化时机选择的精确度以及进一步提高了压缩端的压缩效率。
3、通过当前数据包的第一时间戳偏差值与当前数据包的第一时间戳定值的比较、当前数据包第一时间戳偏差值与前一个数据包的时间戳偏差值的比较,识别出当前数据包的第一时间戳定值是否发生变化,减少语音数据包的第一时间戳偏差值频繁变化带来的第一时间戳定值和第一时间戳随机偏移量更新同步的开销。
附图说明
下面将以明确易懂的方式,结合附图说明优选实施方式,对本发明的上述特性、技术特征、优点及其实现方式予以进一步说明。
图1是本发明的一种时间戳信息处理方法的一个实施例的流程图;
图2是本发明的一种时间戳信息处理方法的一个实施例的流程图;
图3是本发明的一种时间戳信息处理方法的一个实施例的流程图;
图4是本发明的一种时间戳信息处理方法的一个实施例的流程图;
图5是本发明的一种时间戳信息处理方法的另一个实施例的流程图;
图6是现有技术中数据包流通的结构简图;
图7是现有技术中一种时间戳信息处理方法的流程图。
具体实施方式
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对照附图说明本发明的具体实施方式。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,并获得其他的实施方式。
为使图面简洁,各图中只示意性地表示出了与发明相关的部分,它们并不代表其作为产品的实际结构。另外,以使图面简洁便于理解,在有些图中具有相同结构或功能的部件,仅示意性地绘示了其中的一个,或仅标出了其中的一个。在本文中,“一个”不仅表示“仅此一个”,也可以表示“多于一个”的情形。
还应当进一步理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
在本文中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
另外,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
应当说明的是,上述实施例均可根据需要自由组合。以上仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
5G/LTE终端在通话或数据传输过程中很可能TS_delta会发生跳变,例如在语音通话静默期的时候通常会在通话链路上发送静默期RTP包,这些静默包的TS通常不会按照之前通话数据包的TS_delta间隔增加,比如按照TS_delta倍数来增加,而且静默时间比较长的情况下静默包的TS_delta可能会逐渐增大,这时候就会出现TS_delta频繁变化的情况,直到静默期结束重新发送语音数据TS_delta又会回到静默期开始之前的TS_delta。
参考附图7,ROHC压缩端一旦检测到了TS_STRIDE发生变化就需要发送IR-DYN包来重新初始化TS_STRIDE和TS_OFFSET。如果这两种情况频繁发生,例如在语音业务过程中的静默期很可能会比较频繁,ROHC压缩端就会更加频繁的发送IR-DYN包或IR包来重新初始化TS_STRIDE和TS_OFFSET,这明显会降低压缩端的压缩效率。
因此,为了解决上述技术问题,本发明提供一种时间戳信息处理方法,通过对压缩端接收的当前数据包进行识别,避免当前数据包为静默数据包时进行初始化操作。同时若当前数据包为语音数据包时,通过当前数据包的第一时间戳偏差值和第一时间戳定值的比较、当前数据包的第一时间戳偏差值和前一个数据包的第二时间戳偏差值的比较,判断当前数据包的时间戳定值是否发生变化。减少由于时间戳定值(TS_STRIDE)发生变化,压缩端发送IR-DYN包或IR包不断的对TS_STRIDE和TS_OFFSET进行初始化导致的开销和资源浪费,提高压缩端的压缩效率。
在一个实施例中,如图1所示,本发明提供一种时间戳信息处理方法,包括步骤:
S100,通过压缩端接收当前数据包。
具体的,当前数据包为RTP(Real-time Transport Protocol,是用于互联网上针对多媒体数据流的一种传输协议。RTP由两个紧密链接部分组成:RTP协议传送具有实时属性的数据;RTP控制协议监控服务质量并传送正在进行的会话参与者的相关信息。RTP协议常用于流媒体***、视频会议和视频电话***)包。
进一步的,通过健壮性包头压缩(ROHC,以下统称ROHC。ROHC是公认的应用于无线链路上较为理想的头部压缩方式,它有U/R/O三种工作模式,即单向模式、双向可信模式和最优化模式,每种模式下又有多种数据包。)中的压缩端接收当前数据包。其中,ROHC协议中压缩状态有两种,包括初始化和重置状态(Initiationand Refreshstate,IR,本实施例中又将IR包称为第二初始化包),用于初始、更新语境(context)中静态域和动态域信息。在此状态下,压缩端连续发送全部IP信头信息和流关联标识符(CID)。一级压缩状态(firstorder,FO),此时压缩端仅仅需要传递完整的动态信头域信息。二级压缩状态(SecondOrder,SO)。二级压缩状态是最高级压缩状态,这时压缩端根据动态域变化规律,仅传递动态域的压缩值,此时压缩端发送最高压缩率的ROHC压缩分组。
S110,确定当前数据包的类型,当前数据包的类型包括:静默数据包和语音数据包。
S120,当前数据包为静默数据包时,控制压缩端发送压缩后的时间戳未缩放值至解压端,并控制解压端对压缩后的时间戳未缩放值进行解压。
具体的,参考附图6语音业务中存在静默期,即连续发送多个语音数据包之后进入静默期,在静默期发送静默数据包,静默期结束后在继续发送语音数据包。因此当前数据包的类型会包括语音数据包和静默数据包,且静默数据包和语音数据包均为RTP包。在语音业务静默期发送静默数据包时,静默数据包的时间戳(本实施例中时间戳为TS,TS为LTE网络中最基本的时间单元)通常不会按照之前语音数据包的时间戳偏差值(本实施例中时间戳偏差值为TS delta,即当前数据包的时间戳与上一个数据包时间戳之间的差值)增加,而是出现时间戳偏差值频繁变化的情况。
参考附图6,RTP包y和y+1都是携带语音数据的数据包,在y+1包和x包之间的静默期间语音链路上会发送静默数据包,当ROHC压缩端收到静默数据包的时候不再更新TS_STRIDE,直到收到语音数据包x再进一步判断是否更新TS_STRIDE,使用TS_delta(n)来代表RTP包n压缩时检测到的当前TS_delta,则更新TS_STRIDE的规则如下:
1)如果当前RTP包的TS_delta等于当前TS_STRIDE,则继续使用当前的TS_STRIDE,对于本次TS可以压缩发送TS_SCALED,若当前RTP包的TS_delta不等于当前TS_STRIDE,则执行步骤2)。
2)如果当前RTP包的TS_delta等于前一个包压缩时的TS_delta,则认为此时的TS_STRIDE已经发生改变,需要更新TS_STRIDE为当前的TS_delta,压缩端重新初始化新的TS_STRIDE和TS_OFFSET给解压端,若当前RTP包的TS_delta不等于前一个包压缩时的TS_delta,则执行步骤3)。
3)压缩端只能压缩发送unscaled TS,不需要续更新TS_STIDE,继续观察下一个RTP包。
循环重复上述步骤1)2)3)。
进一步的,时间戳偏差值在正常情况为一个定值,该定值为时间戳定值(本实施例中时间戳定值为TS_STRIDE,TS_STRIDE用于指示RTP包中时间戳字段的单位,即两个连续的RTP数据包之间的时间间隔。在多媒体传输中,时间戳是同步不同媒体流和保持播放连续性的关键因素。例如,如果音频和视频流的时间戳不同步,用户可能会经历唇音不同步的情况。通过调整TS_STRIDE的值,可以确保音频和视频流能够正确同步)。因此当时间戳偏差值频繁发生变化时,实质上时间戳定值也在频繁发生变化。而压缩端一旦检测到时间戳定值发生变化就会发送第三初始化包(参考附图7的IR-DYN包,这种类型的数据包用于初始化和刷新操作,特别是在动态字段相关的初始化和刷新过程中使用。当压缩端与解压端处于模式转换过程中时,通常会选择发送IR-DYN压缩数据包。如果解压端接收到IR-DYN类型的数据包,它将根据数据包中指示的配置文件来确定如何处理该数据包)来重新初始化时间戳定值和时间戳随机偏移量(TS_OFFSET,用于计算RTP包的绝对播放时间),由此明显降低了压缩端的压缩效率。
进一步的,为了提高压缩端的压缩效率,就需要避免压缩端在接收到静默数据包时频繁更新时间戳定值和时间戳随机偏移量。因此压缩端需要识别当前数据包为静默数据包还是语音数据包。识别静默数据包的方式有很多,在此进行列举:
判断当前数据包的有效载荷长度是否小于预设值,若小于,则判断当前数据包为静默数据包,若大于,则判断当前数据包为语音数据包。或,判断当前数据包内是否存在预设的标记信息,若存在,则判断当前数据包为静默数据包,若不存在,则判断当前数据包为语音数据包。
具体的,在静默期发送的静默数据包其有效载荷长度只有几个字节,因此可以通过判断当前数据包的有效载荷长度是否小于预设值(本实施例中,静默数据包的有效载荷长度通常小于10字节,因此预设值可以设置为10字节、20字节、30字节等,只需保证设置的预设值大于静默数据包的有效载荷长度即可)。若当前数据包的有效载荷长度小于预设值,则判断当前数据包为静默数据包,若当前数据包的有效载荷长度大于预设值,则判断当前数据包为语音数据包。
进一步的,也可以判断当前数据包中是否存在预设的标记信息(例如,设置静默数据包中携带有特殊的payload等信息,也可在静默数据包中某个字节设置标记等),若存在,则判断当前数据包为静默数据包,若不存在,则判断当前数据包为语音数据包。
进一步的,当确定当前数据包为静默数据包时,压缩端对静默数据包中的时间戳未缩放值(unscaled TS)进行压缩,并将压缩后的时间戳未缩放值发送至解压端进行解压。
S130,当前数据包为语音数据包时,根据当前数据包携带的第一时间戳信息和前一个数据包携带的第二时间戳信息,控制压缩端发送第一初始化包至解压端。
S140,控制解压端根据第一时间戳信息以及第一初始化包对第一时间戳信息进行初始化。
具体的,当前数据包为语音数据包时,且当前数据包的时间戳定值发生变化时,根据当前数据包携带的第一时间戳信息(本实施例中第一时间戳信息包括当前数据包的第一时间戳偏差值、第一时间戳定值、第一时间戳压缩值、第一时间戳随机偏移量和第一时间戳比例值)和前一个数据包携带的第二时间戳信息(本实施例中第二时间戳信息包括第二时间戳偏差值),压缩端发送第一初始化包(本实施例中第一初始化包为UOR-2包)至解压端,解压端根据第一初始化包对第一时间戳信息中的第一时间戳偏差值和第一时间戳随机偏移量进行初始化。
本实施例中,通过确认当前数据包的类型,在当前数据包为静默数据包时不对当前数据包中的时间戳偏差值和时间戳随机偏移量进行初始化,提高了压缩端的压缩效率并减少了资源浪费。在当前数据包为语音数据包且需要进行初始化时,通过第一初始化包对第一时间戳偏差值和第一时间戳随机偏移量进行初始化,相比现有技术依靠第二初始化包和第三初始化包进行初始化,明显减少了初始化过程中的字节开销,进一步提升了压缩端的压缩效率。
在一个实施例中,如图2所示,本发明提供一种时间戳信息处理方法,在上述实施例的基础上,所述第一时间戳信息包括:第一时间戳偏差值和第一时间戳定值;所述第二时间戳信息包括:第二时间戳偏差值;所述的据所述当前数据包携带的第一时间戳信息和前一个数据包携带的第二时间戳信息控制所述压缩端发送第一初始化包至解压端,具体包括步骤:
S200,判断第一时间戳偏差值是否等于第一时间戳定值。
S210,若不相等,判断第一时间戳偏差值与第二时间戳偏差值是否相等。
S220,若第一时间戳偏差值与第二时间戳偏差值相等,控制压缩端发送第一初始化包至解压端。
具体的,第一时间戳信息包括第一时间戳偏差值和第一时间戳定值,第二时间戳信息包括第二时间戳偏差值。压缩端接收当前数据包并判断当前数据包为语音数据包时,判断当前数据包的第一时间戳偏差值是否等于当前数据包的第一时间戳定值。若当前数据包的第一时间戳偏差值不等于当前数据包的第一时间戳定值,进一步判断第一时间戳偏差值和第二时间戳偏差值是否相等。若第一时间戳偏差值与第二时间戳偏差值相等,则压缩端发送第一初始化包至解压端。解压端根据第一初始化包和第一时间戳信息对第一时间戳信息中的第一时间定值和第一时间戳随机偏移量进行初始化。
确定当前数据包为语音数据包,通过连续多个限定条件判断当前数据包中的第一时间戳信息是否需要初始化,避免了压缩端频繁发送初始化包(初始化包为第一初始化包、第二初始化包以及第三初始化包)对第一时间戳信息进行初始化,提高了初始化时机选择的精确度以及进一步提高了压缩端的压缩效率。
在一个实施例中,如图3所示,本发明提供一种时间戳信息处理方法,在上述实施例的基础上,所述第一时间戳信息还包括:第一时间戳压缩值和第一时间戳随机偏移量;所述的控制所述解压端根据所述第一时间戳信息以及所述第一初始化包对所述第一时间戳信息进行初始化,具体包括步骤:
S300,根据第一时间戳压缩值和第一时间戳定值控制解压端对第一时间戳随机偏移量进行初始化。
S310,根据第一初始化包中的第一指示信息对第一时间戳定值进行初始化,第一指示信息包括第一预设时间戳定值。
本实施例中,关于初始化的概念需要进行详细解释,具体如下:
根据RFC3095,ROHC用来压缩和解压RTP包TS fields的算法如下:
1)初始化:压缩端发送TS_STRIDE和TS fields的绝对值给解压端,解压端收到这两个值就可以用来初始化TS_OFFSET。(TS_OFFSET = TS(absolute) modu to TS_STRIDE)。
2)压缩:初始化之后,压缩端不在压缩原始的RTP包中的TS fields,而是压缩TS_SCALED,其中TS_SCALED = TS / TS_STRIDE。可以使用W-LSB来压缩TS_SCALED。
3)解压:当解压端收到TS_SCALED的压缩值之后就可以推算出完整的TS_SCALED,然后就可以进行计算 。
4)环绕偏移:当TS发生环绕的时候,之前的TS_OFFSET就会失效。这个时候需要解压端来检测出该TS环绕的情况并更新到新的TS_OFFSET,压缩端不需要来再次初始化TS_OFFSET。
会话期间当TS_STRIDE发生变化时,只能对未缩放的TS进行压缩,直到新的TS_STRIDE和TS_OFFSET重新初始化后才可以压缩TS_SCALED。而且,初始化的时候需要发送TSfields的绝对值,因此初始化只能使用IR包或者IR-DYN包。
进一步的,第一时间戳信息包括第一时间戳压缩值和第一时间戳随机偏移量。确定当前数据包为语音数据包,通过前述实施例判断该当前数据包的第一时间戳偏差值与第一时间戳定值不相等,且当前数据包的第一时间戳偏差值和前一个数据包的第二时间戳偏差值相等时,压缩端发送第一初始化包至解压端,解压端根据第一初始化包和第一时间戳信息对第一时间戳定值和第一时间戳随机偏移量进行初始化。
进一步的,初始化的流程为压缩端发送第一时间戳定值的绝对值和第一时间戳压缩值(本实施例中第一时间戳压缩值为TS fields或TS)的绝对值至解压端,解压端将第一时间戳定值的绝对值和第一时间戳压缩值的绝对值代入初始化公式TS_OFFSET = TS(absolute) modu to TS_STRIDE中,便可完成对第一时间戳随机偏移量的初始化。
进一步的,对第一时间戳定值的初始化与前述不同,压缩端发送的第一初始化包中携带有第一指示信息(本实施例中第一指示信息为第一预设时间戳定值)。解压端接收到第一初始化包之后,根据第一初始化包中的第一指示信息对当前数据包的第一时间戳定值进行初始化,即将第一指示信息中的第一预设时间戳定值赋值给当前数据包的第一时间戳定值,由此便完成了第一时间戳定值的初始化。
进一步的,参考附图4,本实施例中所述第一时间戳信息还包括:第一时间戳压缩比例值;所述的判断所述第一时间戳偏差值是否等于所述第一时间戳定值之后,还包括步骤:
S400,第一时间戳偏差值与第一时间戳定值相等时,根据第一时间戳压缩值和第一时间戳定值控制压缩端对第一时间戳压缩比例值进行压缩。
具体的,当前数据包为语音数据包,且当前数据包的第一时间戳偏差值和第一时间戳定值相等时,当前数据包并不需要进行初始化。因此,压缩端不在压缩当前数据包的第一时间戳压缩值,而是根据第一时间戳压缩值、第一时间戳定值和第一压缩包(本实施例中第一压缩包为W-LSB(Wide Least Significant Bit),W-LSB编码是一种在无线通信***中使用的差分编码方案,它主要用于ROHC(鲁棒头压缩)协议中,以支持TCP协议的数据传输。这种编码方法通过使用差值来进行编码,可以有效地减少数据的大小,从而提高传输效率。当然,第一压缩包还包括LSB编码、RTP时间戳编码、IP-ID偏移编码以及自描述的可变长度值编码等,具体可根据实际情况进行设置,在此便不过多列举)对第一时间戳压缩比例值(本实施例中,第一压缩比例值为TS_SCALED,TS_SCALED可以用于调整时间戳的单位,以便更好地适应特定的应用场景。例如,如果一个媒体流的时间戳单位是毫秒,而另一个媒体流的时间戳单位是秒,那么通过使用TS_SCALED,可以将它们转换到相同的单位,从而实现同步播放)进行压缩,具体公式为第一时间戳压缩比例值=第一时间戳压缩值/第一时间戳定值。
S410,控制压缩端将压缩后的第一时间戳压缩比例值发送解压端。
S420,控制解压端对压缩后的第一时间戳压缩比例值进行解压。
具体的,压缩端将压缩后的第一时间戳压缩比例值发送至解压端,当解压端收到压缩后的第一时间戳压缩比例值之后,就可以推算出完整的第一时间戳压缩比例值,然后就可以进行计算第一时间戳压缩值(具体计算为第一时间戳压缩值=第一时间戳压缩比例值第一时间戳定值+第一时间戳随机偏移量,计算公式为)。
通过当前数据包的第一时间戳偏差值与当前数据包的第一时间戳定值的比较、当前数据包第一时间戳偏差值与前一个数据包的时间戳偏差值的比较,识别出当前数据包的第一时间戳定值是否发生变化,减少语音数据包的第一时间戳偏差值频繁变化带来的第一时间戳定值和第一时间戳随机偏移量更新同步的开销。
在一个实施例中,本发明提供一种时间戳信息处理方法,在上述实施例的基础上,还包括步骤:
第一时间戳偏差值与第二时间戳偏差值不相等时,根据第一初始化包控制压缩端对第一初始化包携带的时间戳未缩放值进行压缩。
控制压缩端发送压缩后的时间戳未缩放值至解压端,并控制解压端对压缩后的时间戳未缩放值进行解压。
具体的,确定当前数据包为语音数据包,且当前数据包的第一时间戳偏差值和前一个数据包的第二时间戳偏差值不相等时,压缩端对第一初始化包种携带的时间戳未缩放值(本实施例种时间戳未缩放值为unscaled TS,unscaled TS在RTP包中指的是未缩放的时间戳,反映了原始的、未经调整的时间信息)进行压缩(压缩端通过特定的打包和编码流程对unscaled TS进行压缩)。压缩端将压缩后的时间戳未缩放值发送至解压端,解压端对压缩后的时间戳未缩放值进行解压。
通过第二初始化包携带32-bits unscaled TS和TS_STRIDE来给解压端同步更新TS_STRIDE、TS_OFFSET,相比于协议和现有实现中的使用IR-DYN包来重新初始化TS_STRIDE、TS_OFFSET,本方案可以明显减少字节开销,进一步提高了压缩端的压缩效率。
在一个实施例中,如图5所示,本发明提供一种时间戳信息处理方法,在上述实施例的基础上,所述的通过压缩端接收当前数据包之后,确定所述当前数据包的类型之前,还包括步骤:
S500,判断压缩端是否处于初始化状态。
S510,压缩端处于初始化状态时,根据初始化状态控制压缩端发送第二初始化包至解压端。
S520,根据第二初始化包控制解压端对第一时间戳偏差值以及第一时间戳随机偏移量进行初始化。
具体的,压缩端接收到当前数据包之后,首先判断压缩端是否处于初始化状态。当压缩端处于初始化状态时,发送第二初始化包至解压端。解压端根据第二初始化包对当前数据包的第一时间戳偏差值以及第一时间戳随机偏移量进行初始化。具体初始化流程为:压缩端发送第一时间戳定值的绝对值和第一时间戳压缩值的绝对值至解压端,解压端将第一时间戳定值的绝对值和第一时间戳压缩值的绝对值代入初始化公式TS_OFFSET = TS(absolute) modu to TS_STRIDE中,便可完成对第一时间戳随机偏移量的初始化。
进一步的,压缩端发送的第二初始化包中携带有第二指示信息(本实施例中第一指示信息为第二预设时间戳定值)。解压端接收到第二初始化包之后,根据第二初始化包中的第二指示信息对当前数据包的第一时间戳定值进行初始化,即将第二指示信息中的第二预设时间戳定值赋值给当前数据包的第一时间戳定值,由此便完成了第一时间戳定值的初始化。
在一个实施例中,本发明还提供一种时间戳信息处理装置,包括存储器、处理器及存储在存储器上的计算机程序,所述处理器执行所述计算机程序以实现前述实施例所述时间戳信息处理方法的步骤。
在一个实施例中,本发明提供一种计算机设备,包括存储器、处理器及存储在存储器上的计算机程序,所述处理器执行所述计算机程序以实现前述实施例所述时间戳信息处理方法的步骤。
在一个实施例中,本发明提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现前述实施例所述时间戳信息处理方法的步骤。
在一个实施例中,本发明提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时可实现如前述实施例记载的时间戳信息处理方法。也即是,当前述本发明实施例对现有技术做出贡献的技术方案的部分或全部通过计算机软件产品的方式得以体现时,前述计算机软件产品存储在一个计算机可读存储介质中。计算机可读存储介质可以为任意可携带计算机程序代码实体装置或设备,比如,U盘、移动磁盘、磁碟、光盘、计算机存储器、只读存储器、随机存取存储器等。
应当说明的是,上述实施例均可根据需要自由组合。以上仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种时间戳信息处理方法,其特征在于,包括步骤:
通过压缩端接收当前数据包;
确定所述当前数据包的类型,所述当前数据包的类型包括:静默数据包和语音数据包;
所述当前数据包为静默数据包时,控制所述压缩端发送压缩后的时间戳未缩放值至解压端,并控制所述解压端对压缩后的所述时间戳未缩放值进行解压;
所述当前数据包为语音数据包时,根据所述当前数据包携带的第一时间戳信息和前一个数据包携带的第二时间戳信息,控制所述压缩端发送第一初始化包至解压端;
控制所述解压端根据所述第一时间戳信息以及所述第一初始化包对所述第一时间戳信息进行初始化。
2.根据权利要求1所述的时间戳信息处理方法,其特征在于,所述第一时间戳信息包括:第一时间戳偏差值和第一时间戳定值;所述第二时间戳信息包括:第二时间戳偏差值;所述的据所述当前数据包携带的第一时间戳信息和前一个数据包携带的第二时间戳信息控制所述压缩端发送第一初始化包至解压端,具体包括步骤:
判断所述第一时间戳偏差值是否等于所述第一时间戳定值;
若不相等,判断所述第一时间戳偏差值与所述第二时间戳偏差值是否相等;
若所述第一时间戳偏差值与所述第二时间戳偏差值相等,控制所述压缩端发送所述第一初始化包至所述解压端。
3.根据权利要求2所述的时间戳信息处理方法,其特征在于,所述第一时间戳信息还包括:第一时间戳压缩值和第一时间戳随机偏移量;所述的控制所述解压端根据所述第一时间戳信息以及所述第一初始化包对所述第一时间戳信息进行初始化,具体包括步骤:
根据所述第一时间戳压缩值和所述第一时间戳定值控制所述解压端对所述第一时间戳随机偏移量进行初始化;
根据所述第一初始化包中的第一指示信息对所述第一时间戳定值进行初始化,所述第一指示信息包括第一预设时间戳定值。
4.根据权利要求3所述的时间戳信息处理方法,其特征在于,所述第一时间戳信息还包括:第一时间戳压缩比例值;所述的判断所述第一时间戳偏差值是否等于所述第一时间戳定值之后,还包括步骤:
所述第一时间戳偏差值与所述第一时间戳定值相等时,根据所述第一时间戳压缩值和所述第一时间戳定值控制所述压缩端对所述第一时间戳压缩比例值进行压缩;
控制所述压缩端将压缩后的所述第一时间戳压缩比例值发送所述解压端;
控制所述解压端对所述压缩后的第一时间戳压缩比例值进行解压。
5.根据权利要求2-4任一项所述的时间戳信息处理方法,其特征在于,还包括步骤:
所述第一时间戳偏差值与所述第二时间戳偏差值不相等时,根据所述第一初始化包控制所述压缩端对所述第一初始化包携带的时间戳未缩放值进行压缩;
控制所述压缩端发送压缩后的时间戳未缩放值至解压端,并控制所述解压端对压缩后的所述时间戳未缩放值进行解压。
6.根据权利要求3或4所述的时间戳信息处理方法,其特征在于,所述的通过压缩端接收当前数据包之后,确定所述当前数据包的类型之前,还包括步骤:
判断所述压缩端是否处于初始化状态;
当所述压缩端处于所述初始化状态时,根据所述初始化状态控制所述压缩端发送第二初始化包至所述解压端;
根据所述第二初始化包控制所述解压端对所述第一时间戳偏差值以及所述第一时间戳随机偏移量进行初始化。
7.根据权利要求1所述的时间戳信息处理方法,其特征在于,所述的确定所述当前数据包的类型,具体包括步骤:
判断所述当前数据包的有效载荷长度是否小于预设值,若小于,则判断所述当前数据包为所述静默数据包,若大于,则判断所述当前数据包为所述语音数据包;
或,
判断所述当前数据包内是否存在预设的标记信息,若存在,则判断所述当前数据包为所述静默数据包,若不存在,则判断所述当前数据包为所述语音数据包。
8.一种时间戳信息处理装置,包括存储器、处理器及存储在存储器上的计算机程序,其特征在于,所述处理器执行所述计算机程序以实现权利要求1-7任一项所述的时间戳信息处理方法的步骤。
9.一种计算机设备,包括存储器、处理器及存储在存储器上的计算机程序,其特征在于,所述处理器执行所述计算机程序以实现权利要求1-7任一项所述的时间戳信息处理方法的步骤。
10.一种存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1-7任一项所述的时间戳信息处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410451709.7A CN118055165B (zh) | 2024-04-16 | 2024-04-16 | 时间戳信息处理方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410451709.7A CN118055165B (zh) | 2024-04-16 | 2024-04-16 | 时间戳信息处理方法、装置、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN118055165A CN118055165A (zh) | 2024-05-17 |
CN118055165B true CN118055165B (zh) | 2024-06-18 |
Family
ID=91046934
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410451709.7A Active CN118055165B (zh) | 2024-04-16 | 2024-04-16 | 时间戳信息处理方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118055165B (zh) |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1926282B1 (en) * | 1999-10-14 | 2012-11-21 | Nokia Corporation | Method and system for compressing and decompressing packet headers |
US7024490B2 (en) * | 2000-11-06 | 2006-04-04 | Matsushita Electric Industrial Co., Ltd. | Scheme, apparatus, and program for header compression |
CN105791228B (zh) * | 2014-12-22 | 2019-12-03 | 中兴通讯股份有限公司 | 一种压缩时间戳的方法和装置 |
US10037240B2 (en) * | 2015-09-24 | 2018-07-31 | Qualcomm Incorporated | Timestamp repair mechanism in case of decompression failure |
CN106941697A (zh) * | 2016-01-04 | 2017-07-11 | 中兴通讯股份有限公司 | 一种发送、接收时间戳信息的方法和装置 |
CN108737349B (zh) * | 2017-04-24 | 2020-08-28 | 大唐移动通信设备有限公司 | 一种语音数据包的处理方法及装置 |
US11445047B2 (en) * | 2017-09-29 | 2022-09-13 | Apple Inc. | ROHC header compression for MPTCP |
CN110602745A (zh) * | 2018-06-12 | 2019-12-20 | 大唐移动通信设备有限公司 | 一种数据包解压方法及装置 |
-
2024
- 2024-04-16 CN CN202410451709.7A patent/CN118055165B/zh active Active
Non-Patent Citations (4)
Title |
---|
C. Bormann, Editor, TZI/Uni Bremen * |
C. Burmeister, Matsushita ; M. Degermark, Univ. of Arizona * |
H. Fukushima, Matsushita ; H. Hannu, Ericsson ; L-E. Jonsson, Ericsson ; R. Hakenberg, Matsushita ; T. Koren, Cisco ; K. Le, Nokia ; Z. Liu, Nokia ; A. Miyazaki, Matsushita ; K. Svanbro, Ericsson ; T. Wiebke, Matsushita ; T. Yoshimura, NTT DoCoMo ; H. Zheng, Nokia ; .RObust Header Compression (ROHC):Framework and four profiles: RTP, UDP, ESP, and uncompressed.IETF .2001,全文. * |
Tammy Chang ; .A self-adaptive scheduling (SAS) solution for enhancing VoIP service quality in OFDM-based mobile networks.《2013 IEEE International Conference on Communications (ICC)》.2013,全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN118055165A (zh) | 2024-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3559271B2 (ja) | ヘッダフィールド圧縮時のコンテキスト識別子の定義方法 | |
CA2375830C (en) | Robust header compression in packet communications | |
EP1271886B1 (en) | Packet header compression | |
EP1180871B1 (en) | Method and apparatus for header compression | |
US7000166B2 (en) | Apparatus and method for header decompression | |
EP1187416B1 (en) | Method and apparatus for transmitting data packets | |
EP1187417B1 (en) | Method and apparatus for transmitting data packets | |
KR20040019578A (ko) | 헤더 압축에 의한 패킷 데이터의 송신 방법 및 장치 | |
EP1482668A1 (en) | PACKET TRANSMITTER, PACKET RECEIVER AND PACKET TRANSMISSION METHOD | |
WO2000079764A1 (en) | Robust delta encoding with history information | |
CN118055165B (zh) | 时间戳信息处理方法、装置、计算机设备及存储介质 | |
US20040136380A1 (en) | Packet transmitter, packet receiver and packet transmission method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | 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 |