一种鲁棒性头压缩中更新乱序深度的方法及系统的制作方法

文档序号:7644604阅读:247来源:国知局
专利名称:一种鲁棒性头压缩中更新乱序深度的方法及系统的制作方法
技术领域
本发明涉及移动通信领域中的一种鲁棒性头压缩算法,主要是提出一种在乱序递 交链路环境下,通过测量乱序比例(reorder_ratio),闭环修复LSB(Least Significant Bits)算法中使用的P值的方法。
背景技术
由于物理条件的限制,移动通信系统中的无线链路与有线链路相比传输速率较 低,误码率较高。为了能有效利用有限的无线信道带宽资源,引入了鲁棒性头压缩技术 (RObust Header Compress,以下简称R0HC)。ROHC的核心是利用业务流的分组之间的信息 冗余来透明的压缩和解压缩直接相连节点间的分组头中的信息。ROHC技术由IETF(互联网 工程任务组)的RFC3095文档进行描述。LSB (Least Significant Bits)算法是ROHC技术中的重要算法,它主要用于压缩 序列号MSN (Master Sequence Number)信息。LSB压缩算法通过使用一个参考值V_ref以 及指定P值,将一个待压缩的,占kl比特位的值A进行LSB压缩,随后得到一个压缩后的, 占用更少比特位k2的,与V_ref关联的值B。通过LSB压缩,没有变化的比特位被删除掉 了,B值所表示的即为从值V_ref变化到值A的最低有效位(即B = A的低k2位)。采用 LSB解压缩将压缩后的值进行还原的过程与上述过程相反。ROHC是在2001年发布的,因为当时的链路几乎不存在乱序递交的情况,所以ROHC 在设计之初就被定义为应用在按序递交的链路上。随着时间地推移,ROHC已经广泛地应用 于越来越多的无线设备上,和其它压缩算法相比,“不能有效地工作在乱序递交链路上”也 就成为了 ROHC的一个弱点。在按序递交的链路上,从源端ROHC压缩器发送出去的压缩包在通过链路传输后, 在目的端可以被按序递交给ROHC解压器。比如压缩器依次发送5包数据包1,2,3,4,5,那 么解压器接收到这些数据包的顺序也是1,2,3,4,5,这样的一个过程是ROHC期望的,同时 也是它正常工作的一个条件;在非按序递交链路上,数据包的顺序有可能被底层链路影响, 使得位于目的端的ROHC解压器接收到的数据包顺序和源端ROHC压缩器发送的顺序不一 致,最终导致解压器无法正常解压数据包。比如压缩器依次发送5包数据包1,2,3,4,5,在 链路传送过程中,由于数据包3在底层链路上发生了错误重传,使得解压器接收到这些数 据包的顺序是1,2,4,5,3,其中数据包3被称为序列晚包,数据包4,5被称为序列早包,序列 早包的个数被称为乱序深度,此例中为2。这样的一个过程是不被ROHC期望的,对于序列早 包的异常处理可能会引起序列晚包的解压失败,从而导致解压器状态迁移,影响压缩效率; 对于序列晚包的异常处理可能会引起压缩器和解压器上下文不同步,影响健壮性。由于数 据包在链路中的乱序过程是无法预期的,它可能发生在ROHC处理过程的任何阶段,所以在 发生这种情况时,对数据包3,4,5的处理方法会直接影响到整个ROHC的效率和健壮性。为了改善这种情况,在2006年IETE发布了 RFC42M文档,在这份文档中,围绕着 ROHC如何兼容乱序递交的链路,提出了多种能够提高其压缩效率和健壮性的方法。但是在RFC4224中提出的所有方案中,由于压缩器和解压器之间不存在有关乱序深度的反馈,压缩 器无法确切地获得当前链路的最大乱序深度,最终导致在选择合适的LSB编码P值时,压缩 器只能单方面进行估计,而这样一种估计在一些场合是无法真正避免因为乱序导致的解压 问题的。作为ROHC的第二个版本,RFC5225采纳了 RFC42M中的若干思想,在计算LSB P值 时引入了乱序比例(reorder_ratio)的概念,即动态地调整LSB P值为2~ (k_2)*reorder_ ratio (如图1所示,其中re0rder_rati0的取值只能为0,1,2,3中的一种),从而使得 R0HCv2可以在一定程度上支持乱序递交。但是在具体实现时,由于压缩器和解压器之间并没有针对当前链路中的乱序状况 进行有效沟通,所以让人无法准确把握该值的选取。比如压缩器通过调整LSB算法中的P 值来解决乱序递交问题时,RFC4224文档中只是举例将P取值为2~k/3,但是在不同链路上 到底是取2~k/4,2~k/2,还是2~k*3/4,文档中并没有描述。因为对于整个ROHC而言,选取 不同P值时的压缩效率和健壮性是完全不同的,所以对于RFC5225本身而言,它并没有引入 新的乱序处理方法,因此同样不能解决RFC42M存在的问题。

发明内容
本发明要解决的技术问题是,提供一种鲁棒性头压缩中更新乱序深度的方法及系 统,能够根据乱序状况有效地更新乱序深度,从而使得LSB P值动态调整,进而有效确保当 前压缩策略的健壮性的同时,还能有效兼顾压缩效率。为了解决上述技术问题,本发明提出一种鲁棒性头压缩中更新乱序深度的方法, 包括解压器在判断出数据包发生乱序时,对乱序状况进行估计,并据以判断是否需要 采用更健壮的乱序处理策略,如果不需要,则保持所述解压器侧的乱序深度值;如果需要, 则更新所述解压器侧的乱序深度值为一更大值,并向压缩器发送携带所述更新后的乱序深 度值的反馈包;所述压缩器接收到所述反馈包后,根据所述反馈包中的乱序深度值更新所述压缩 器侧的乱序深度值。进一步地,上述方法还可具有以下特点所述解压器判断数据包是否发生乱序包括将接收到的数据包的序列号与记录的当前最大序列号进行比较,如果小于所述最 大序列号,则认为发生乱序;否则,认为未发生乱序,更新所述最大序列号为所述接收到的 数据包的序列号。进一步地,上述方法还可具有以下特点所述解压器在判断数据包是否发生乱序之前,还包括根据接收到的数据包的序列号进行数据包还原处理,对还原出的数据包进行校 验,如果校验成功,则进行乱序判断;如果校验失败,则进行乱序修复处理,如果修复成功, 则进行乱序判断;如果修复失败,则丢弃所述数据包,不进行乱序判断;所述乱序修复处理包括判断所述解压器侧的乱序深度值是否还可增大,如果不 可增大,则认为修复失败;如果还可增大,则以一更大值作为所述解压器侧的乱序深度值进行序列号还原计算,以还原出的新的序列号进行数据包还原处理,对还原出的数据包进行 校验,如果校验失败,则认为修复失败,如果校验成功,则认为修复成功,并更新修复成功个 数记录。进一步地,上述方法还可具有以下特点所述解压器对乱序状况进行估计包括根据所述修复成功个数记录和所述解压器 侧的乱序深度值对乱序状况进行估计;所述解压器在更新所述解压器侧的乱序深度值后,还将所述修复成功个数记录置 为初始值。进一步地,上述方法还可具有以下特点所述压缩器根据所述反馈包中的乱序深度值更新所述压缩器侧的乱序深度值包 括判断所述压缩器侧的乱序深度值是否小于所述反馈包中的乱序深度值,如果是, 则更新所述压缩器侧的乱序深度值为所述反馈包中的乱序深度值;否则,向解压器发送初 始化和刷新(IR)包,以进行乱序深度值同步。进一步地,上述方法还可具有以下特点所述更大值等于所述解压器侧的乱序深度值自增1后的值;所述乱序深度值包括0、1、2、3。为了解决上述技术问题,本发明还提出一种解压器,包括接收模块,用于接收鲁棒性头压缩数据包;存储模块,用于存储一乱序深度值;乱序检测模块,与所述接收模块相连,用于检测所述接收模块接收到的数据包是 否发生乱序,在检测出发生乱序时,发送乱序估计指令;乱序估计模块,与所述乱序检测模块相连,用于根据所述乱序估计指令对乱序状 况进行估计,得到一估计结果;更新判断模块,与所述乱序估计模块相连,用于根据所述估计结果,判断是否需要 采用更健壮的乱序处理策略,如果需要,则发送乱序深度更新指令;乱序深度更新模块,与所述存储模块和所述更新判断模块均相连,用于根据所述 乱序深度更新指令,将所述存储模块中的乱序深度值更新为一更大值,并发送携带所述更 新后的乱序深度值的反馈包。进一步地,上述解压器还可具有以下特点所述存储模块,还用于存储一当前最大序列号;所述乱序检测模块包括比较单元,用于将接收到的数据包的序列号与所述当前最大序列号进行比较,得 到一比较结果;判断处理单元,与所述比较单元和所述存储模块均相连,用于获取并判断所述比 较结果,如果所述比较结果为接收到的数据包的序列号小于所述最大序列号,则认为发生 乱序;否则,认为未发生乱序,更新所述存储模块中的所述最大序列号为所述接收到的数据 包的序列号。进一步地,上述解压器还可具有以下特点
所述存储模块,还用于存储一修复成功个数记录;所述乱序检测模块,用于在接收到检测控制指令后,才执行乱序检测;所述解压器还包括校验模块,位于所述接收模块与所述乱序检测模块之间,用于根据接收到的数据 包的序列号进行数据包还原处理,对还原出的数据包进行校验,如果校验成功,向所述乱序 检测模块发送检测控制指令;如果校验失败,则发送乱序修复指令;乱序修复模块,与所述校验模块和所述乱序检测模块均相连,用于判断所述存储 模块中的乱序深度值是否还可增大,如果不可增大,则认为修复失败,丢弃所述数据包;如 果还可增大,则以一更大值作为所述解压器侧的乱序深度值进行序列号还原计算,以还原 出的新的序列号进行数据包还原处理,对还原出的数据包进行校验,如果校验失败,则认为 修复失败,丢弃所述数据包;如果校验成功,则认为修复成功,更新所述修复成功个数记录, 向所述乱序检测模块发送检测控制指令。进一步地,上述解压器还可具有以下特点所述乱序估计模块,在估计乱序状况时,是根据所述修复成功个数记录和所述存 储模块中的乱序深度值对乱序状况进行估计;所述乱序深度更新模块,在更新所述存储模块中的乱序深度值后,还将所述存储 模块中的修复成功个数记录置为初始值。进一步地,上述解压器还可具有以下特点所述更大值等于所述解压器侧的乱序深度值自增1后的值;所述乱序深度值包括0、1、2、3。为了解决上述技术问题,本发明还提出一种压缩器,包括存储模块,用于存储一乱序深度值;接收解析模块,用于接收包含乱序深度值的反馈包,从中解析出乱序深度值;比较模块,与所述接收解析模块和所述存储模块均相连,用于比较所述存储模块 中的乱序深度值是否小于所述反馈包中的乱序深度值,得到一比较结果;更新处理模块,与所述存储模块和所述比较模块均相连,用于在所述比较结果为 所述存储模块中的乱序深度值小于所述反馈包中的乱序深度值时,更新所述存储模块中的 乱序深度值为所述反馈包中的乱序深度值;否则,发送初始化和刷新(IR)包,以与解压器 进行乱序深度值同步。为了解决上述技术问题,本发明还提出一种鲁棒性头压缩中更新乱序深度的系 统,包括如上所述的解压器和压缩器。本发明提供的一种鲁棒性头压缩中更新乱序深度的方法及系统,能够根据乱序状 况有效地更新乱序深度,从而使得LSB P值动态调整,进而有效确保当前压缩策略的健壮性 的同时,还能有效兼顾压缩效率。


图1协议定义的LSB算法中P值与re0rder_rati0之间的关系图;图2是本发明实施例一种鲁棒性头压缩中更新乱序深度的方法流程图;图3是本发明实施例定义的Re0rder_Rati0反馈选项示意图4是本发明实施例解压器接收到压缩包时的总体处理流程图;图5是本发明实施例解压器进行MSN乱序修复的方法流程图;图6是本发明实施例解压器进行乱序数据包处理的方法流程图;图7是本发明实施例压缩器对于Re0rder_Rati0反馈包的处理流程图;图8是本发明实施例一种解压器的装置方框图;图9是本发明实施例一种压缩器的装置方框图。
具体实施例方式为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明 的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中 的特征可以相互任意组合。参见图2,该图示出了本发明实施例一种鲁棒性头压缩中更新乱序深度的方法,包 括步骤步骤S201 解压器在判断出数据包发生乱序时,对乱序状况进行估计,并据以判 断是否需采用更健壮的乱序处理策略,如果不需要,则保持所述解压器侧的乱序深度值 reorder_ratio_D ;如果需要,则更新所述解压器侧的乱序深度值re0rder_rati0_D为一更 大值,并向压缩器发送携带所述更新后的乱序深度值reorder_ratio_D的反馈包;步骤S202 所述压缩器接收到所述反馈包后,根据所述反馈包中的乱序深度值 reorder_ratio_D更新所述压缩器侧的乱序深度值reorder_ratio_C。本发明实施例在解压流程中增加了乱序分析处理功能,在当前乱序处理策略应对 当前乱序状况表现出健壮性不佳时,尝试增大乱序深度值,并以反馈包的形式通知压缩器 一侧进行同步更新,实现主动尝试改变LSB P值,进而可以修复一定比例的落在LSB区间以 外的数据包,减少头压缩过程中的丢包。其中,步骤S201中,所述解压器判断数据包是否发生乱序可以采用如下判断方 法将接收到的数据包的序列号msrucurrent与记录的当前最大序列号maxjiisn进行比较, 如果小于所述最大序列号maxjiisn,则认为发生乱序;否则,认为未发生乱序,更新所述最 大序列号max_msn为所述接收到的数据包的序列号msn_current。其中,步骤S201中,所述携带所述更新后的乱序深度值re0rder_rati0_D的反馈 包可以如图3所示。较佳地,步骤S201中,所述更大值可以选择所述解压器侧的乱序深度值自增1后 的值。较佳地,步骤S201之前,还可以包括下述步骤S203(图中未示出)步骤S203 根据接收到的数据包的序列号msrucurrent进行数据包还原处理,对 还原出的数据包进行校验,如果校验成功,则进行乱序判断;如果校验失败,则进行乱序修 复处理,如果修复成功,则进行乱序判断;如果修复失败,则丢弃所述数据包,不进行乱序判 断。其中,步骤S203中所述乱序修复处理可以包括判断所述解压器侧的乱序深度 值re0rder_rati0_D是否还可增大,如果不可增大,则认为修复失败;如果还可增大,则以 一更大值作为所述解压器侧的乱序深度值re0rder_rati0_D进行序列号还原计算,以还原出的新的序列号mSn_CUrrtent_neW进行数据包还原处理,对还原出的数据包进行校验,如 果校验失败,则认为修复失败,如果校验成功,则认为修复成功,并更新修复成功个数记录 repaimum。较佳地,所述更大值可以选择所述解压器侧的乱序深度值自增1后的值。
其中,所述校验可以是例如CRC之类的校验,本发明在此不做限制。
其中,可以以一计数器对修复成功个数repaimum进行记录。本发明实施例在解压流程中增加了乱序修复功能(步骤S20;3),即,对校验失败 的原因进行猜测,将序列晚包导致的LSB计算错误作为其根本原因,根据当前的reorder ratio值调整LSB算法的解压参考区间,再次还原MSN值,最后重新进行CRC校验,从而验证 校验失败原因是否为序列晚包导致,如果是,则可针对这类校验失败的数据包进行乱序处 理。其中,步骤S201中,所述解压器对乱序状况进行估计可以是根据所述修复成功 个数记录和所述解压器侧的乱序深度值对乱序状况进行估计。例如,可设置判断条件为, 当repair_nUm >= 100时,认为需要采用更加健壮的乱序策略;或者,设置判断条件为,当 (repair_num)/(reorder_ratio+l) >= 100时,认为需要采用更加健壮的乱序策略。具体 的判断条件可以根据需要设置,本发明在此不做限制。相应地,所述解压器在更新所述解压 器侧的乱序深度值后,还将所述修复成功个数repaimum记录置为初始值。其中,步骤S202中,所述压缩器根据所述反馈包中的乱序深度值更新所述压缩器 侧的乱序深度值可以包括步骤判断所述压缩器侧的乱序深度值是否小于所述反馈包中的 乱序深度值,如果是,则更新所述压缩器侧的乱序深度值为所述反馈包中的乱序深度值;否 则,向解压器发送初始化和刷新(IR)包,以进行乱序深度值同步。为了进一步说明本发明上述方案,下面结合图4、5、6、7进行说明。参见图4,该图示出了本发明所涉及的解压器对压缩数据包的处理流程,包括步 骤步骤S401 解压器的解压流程启动,进入步骤S402 ;步骤S402 所述解压器根据压缩包类型信息,分析接收到的压缩数据包,将待解 压的MSN信息取出,进入步骤S403 ;步骤S403 所述解压器调用LSB解码算法对压缩的MSN进行解码,获取原始的MSN 值,记为msn_current,进入步骤S404 ;步骤S404 所述解压器使用msrucurrent进行数据包还原处理,并对还原的数据 包进行CRC校验,如果校验失败,进入步骤S405,如果校验成功,进入步骤S408 ;步骤S405 所述解压器使用MSN乱序修复算法进行修复处理,进入步骤S406 ;步骤S406 所述解压器判断采用MSN乱序修复算法是否修复成功,如果成功,则进 入步骤S408,如果失败,则进入步骤S407 ;步骤S407 所述解压器认为该数据包无法修复,将其丢弃,进入步骤S411 ;步骤S408 所述解压器判断数据包是否存在乱序,如果否,进入步骤S409,如果 是,进入步骤S410 ;步骤S409 所述解压器将max_msn更新为msn_current,进入步骤S411 ;步骤S410 所述解压器使用乱序包处理功能对乱序包进行处理,进入步骤S411 ;步骤S411 所述解压器处理流程结束。
参见图5,该图示出了本发明所涉及的解压器MSN乱序修复算法(步骤S405)的具 体实施方案步骤S501 所述解压器乱序修复过程启动,进入步骤S502 ;步骤S502 所述解压器获取reorder_ratio_D值,进入步骤S503 ;步骤S503 所述解压器判断re0rder_rati0_D值是否为最大值3,如果是,进入步 骤S210 ;否则,进入步骤S504 ;步骤 S504 所述解压器计算 reorder_ratio_D_new = reorder_ratio+l,以 reorder_ratio_D_new 作为新的 reorder_ratio_D 值,进入步骤 S505 ;步骤S505 所述解压器使用reorder_ratio_D_new进行MSN还原计算,得到msn_ current_new,进入步骤 S506 ;步骤S506 所述解压器使用msrucurrentjew进行数据包还原,对还原后的数据 包进行CRC校验,进入步骤S507 ;步骤S507 判断校验是否成功,如果成功,进入步骤S508 ;如果失败,进入步骤 S510 ;步骤S508 所述解压器将修复成功数据包个数计数器加1,进入步骤S509 ;步骤S509 所述解压器乱序修复成功,进入步骤S511 ;步骤S510 所述解压器乱序修复失败,进入步骤S511 ;步骤S511 所述解压器MSN乱序修复流程结束。参见图6,该图示出了本发明所涉及的解压器对乱序包进行处理(步骤S410)的具 体实施方案步骤S601 所述解压器乱序数据包处理启动,进入步骤S602 ;步骤S602 所述解压器根据r印air_num、reorder_ratio等乱序相关信息对当前 链路的乱序状况进行评估,进入步骤S603 ;步骤S603 所述解压器根据对乱序状况的评估结果判断是否需要采用更健壮的 乱序处理策略,如果需要,进入步骤S604 ;如果不需要,进入步骤S607 ;步骤S604 所述解压器更新re0rder_rati0_D值等于其自增1运算结果,进入步 骤 S605 ;步骤S605 所述解压器将r印air_num置为0,重新统计链路乱序状况,进入步骤
5606;步骤S606 所述解压器封装并发送携带re0rder_rati0_D的反馈包,进入步骤
5607;步骤S607 所述解压器乱序数据包处理流程结束。参见图7,该图示出了本发明所涉及的压缩器对re0rder_rati0反馈包处理的实 施方案做进一步的详细描述步骤S701 压缩器对携带re0rder_rati0反馈包处理启动,进入步骤S702 ;步骤S702 所述压缩器接收到有效的,类型为Re0rder_Rati0的反馈包,进入步骤 S703 ;步骤S703 所述压缩器获取反馈包和压缩器侧的re0rder_rati0值,分别记为 reorder_ratio_D 禾口 reorder_ratio_C,进入步骤 S704 ;
步骤S704 所述压缩器比较反馈包中的reorder_ratio_D和本地的reorder_ ratio_C值,如果reorder_ratio_C小于reorder_ratio_D,进入步骤S706 ;否则,进入步骤 S705 ;步骤S705 所述压缩器认为当前re0rder_rati0状态不同步,需要发送顶包,进 入步骤S707 ;步骤S706 所述压缩器将reorder_ratio_C更新为反馈包中的reorder_ratio_D, 进入步骤S707 ;步骤S707 所述压缩器对reorderjatio反馈包的处理流程结束。为了实现上述方法,本发明实施例还提供了一种解压器,如图8所示,包括接收模块,用于接收鲁棒性头压缩数据包;存储模块,用于存储一乱序深度值;乱序检测模块,与所述接收模块相连,用于检测所述接收模块接收到的数据包是 否发生乱序,在检测出发生乱序时,发送乱序估计指令;乱序估计模块,与所述乱序检测模块相连,用于根据所述乱序估计指令对乱序状 况进行估计,得到一估计结果;更新判断模块,与所述乱序估计模块相连,用于根据所述估计结果,判断是否需要 采用更健壮的乱序处理策略,如果需要,则发送乱序深度更新指令;乱序深度更新模块,与所述存储模块和所述更新判断模块均相连,用于根据所述 乱序深度更新指令,将所述存储模块中的乱序深度值更新为一更大值,并发送携带所述更 新后的乱序深度值的反馈包。其中,所述存储模块,还用于存储一当前最大序列号。所述乱序检测模块包括比 较单元,用于将接收到的数据包的序列号与所述当前最大序列号进行比较,得到一比较结 果;判断处理单元,与所述比较单元和所述存储模块均相连,用于获取并判断所述比较结 果,如果所述比较结果为接收到的数据包的序列号小于所述最大序列号,则认为发生乱序; 否则,认为未发生乱序,更新所述存储模块中的所述最大序列号为所述接收到的数据包的 序列号。其中,所述存储模块,还用于存储一修复成功个数记录。所述乱序检测模块,用于 在接收到检测控制指令后,才执行乱序检测。所述解压器还可以包括校验模块,位于所述 接收模块与所述乱序检测模块之间,用于根据接收到的数据包的序列号进行数据包还原处 理,对还原出的数据包进行校验,如果校验成功,向所述乱序检测模块发送检测控制指令; 如果校验失败,则发送乱序修复指令。乱序修复模块,与所述校验模块和所述乱序检测模块 均相连,用于判断所述存储模块中的乱序深度值是否还可增大,如果不可增大,则认为修复 失败,丢弃所述数据包;如果还可增大,则以一更大值作为所述解压器侧的乱序深度值进行 序列号还原计算,以还原出的新的序列号进行数据包还原处理,对还原出的数据包进行校 验,如果校验失败,则认为修复失败,丢弃所述数据包;如果校验成功,则认为修复成功,更 新所述修复成功个数记录,向所述乱序检测模块发送检测控制指令。其中,所述乱序估计模块,在估计乱序状况时,是根据所述修复成功个数记录和所 述存储模块中的乱序深度值对乱序状况进行估计。所述乱序深度更新模块,在更新所述存 储模块中的乱序深度值后,还将所述存储模块中的修复成功个数记录置为初始值。
其中,所述更大值可以等于所述解压器侧的乱序深度值自增1后的值。所述乱序 深度值包括0、1、2、3。为了实现上述方法,本发明实施例还提供了一种压缩装置,如图9所示,包括存储模块,用于存储一乱序深度值;接收解析模块,用于接收包含乱序深度值的反馈包,从中解析出乱序深度值;比较模块,与所述接收解析模块和所述存储模块均相连,用于比较所述存储模块 中的乱序深度值是否小于所述反馈包中的乱序深度值,得到一比较结果;更新处理模块,与所述存储模块和所述比较模块均相连,用于在所述比较结果为 所述存储模块中的乱序深度值小于所述反馈包中的乱序深度值时,更新所述存储模块中的 乱序深度值为所述反馈包中的乱序深度值;否则,发送初始化和刷新(IR)包,以与解压器 进行乱序深度值同步。当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,本 领域技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应 属于本发明所附的权利要求的保护范围。
1权利要求
1.一种鲁棒性头压缩中更新乱序深度的方法,其特征在于,包括解压器在判断出数据包发生乱序时,对乱序状况进行估计,并据以判断是否需要采用 更健壮的乱序处理策略,如果不需要,则保持所述解压器侧的乱序深度值;如果需要,则更 新所述解压器侧的乱序深度值为一更大值,并向压缩器发送携带所述更新后的乱序深度值 的反馈包;所述压缩器接收到所述反馈包后,根据所述反馈包中的乱序深度值更新所述压缩器侧 的乱序深度值。
2.如权利要求1所述的方法,其特征在于,所述解压器判断数据包是否发生乱序包括 将接收到的数据包的序列号与记录的当前最大序列号进行比较,如果小于所述最大序列号,则认为发生乱序;否则,认为未发生乱序,更新所述最大序列号为所述接收到的数据 包的序列号。
3.如权利要求2所述的方法,其特征在于,所述解压器在判断数据包是否发生乱序之 前,还包括根据接收到的数据包的序列号进行数据包还原处理,对还原出的数据包进行校验,如 果校验成功,则进行乱序判断;如果校验失败,则进行乱序修复处理,如果修复成功,则进行 乱序判断;如果修复失败,则丢弃所述数据包,不进行乱序判断;所述乱序修复处理包括判断所述解压器侧的乱序深度值是否还可增大,如果不可增 大,则认为修复失败;如果还可增大,则以一更大值作为所述解压器侧的乱序深度值进行序 列号还原计算,以还原出的新的序列号进行数据包还原处理,对还原出的数据包进行校验, 如果校验失败,则认为修复失败,如果校验成功,则认为修复成功,并更新修复成功个数记 录。
4.如权利要求3所述的方法,其特征在于所述解压器对乱序状况进行估计包括根据所述修复成功个数记录和所述解压器侧的 乱序深度值对乱序状况进行估计;所述解压器在更新所述解压器侧的乱序深度值后,还将所述修复成功个数记录置为初 始值。
5.如权利要求1所述的方法,其特征在于,所述压缩器根据所述反馈包中的乱序深度 值更新所述压缩器侧的乱序深度值包括判断所述压缩器侧的乱序深度值是否小于所述反馈包中的乱序深度值,如果是,则更 新所述压缩器侧的乱序深度值为所述反馈包中的乱序深度值;否则,向解压器发送初始化 和刷新(IR)包,以进行乱序深度值同步。
6.如权利要求1-5中任何一项所述的方法,其特征在于 所述更大值等于所述解压器侧的乱序深度值自增1后的值; 所述乱序深度值包括0、1、2、3。
7.一种解压器,其特征在于,包括 接收模块,用于接收鲁棒性头压缩数据包; 存储模块,用于存储一乱序深度值;乱序检测模块,与所述接收模块相连,用于检测所述接收模块接收到的数据包是否发 生乱序,在检测出发生乱序时,发送乱序估计指令;乱序估计模块,与所述乱序检测模块相连,用于根据所述乱序估计指令对乱序状况进 行估计,得到一估计结果;更新判断模块,与所述乱序估计模块相连,用于根据所述估计结果,判断是否需要采用 更健壮的乱序处理策略,如果需要,则发送乱序深度更新指令;乱序深度更新模块,与所述存储模块和所述更新判断模块均相连,用于根据所述乱序 深度更新指令,将所述存储模块中的乱序深度值更新为一更大值,并发送携带所述更新后 的乱序深度值的反馈包。
8.如权利要求7所述的解压器,其特征在于 所述存储模块,还用于存储一当前最大序列号; 所述乱序检测模块包括比较单元,用于将接收到的数据包的序列号与所述当前最大序列号进行比较,得到一 比较结果;判断处理单元,与所述比较单元和所述存储模块均相连,用于获取并判断所述比较结 果,如果所述比较结果为接收到的数据包的序列号小于所述最大序列号,则认为发生乱序; 否则,认为未发生乱序,更新所述存储模块中的所述最大序列号为所述接收到的数据包的 序列号。
9.如权利要求8所述的解压器,其特征在于 所述存储模块,还用于存储一修复成功个数记录;所述乱序检测模块,用于在接收到检测控制指令后,才执行乱序检测; 所述解压器还包括校验模块,位于所述接收模块与所述乱序检测模块之间,用于根据接收到的数据包的 序列号进行数据包还原处理,对还原出的数据包进行校验,如果校验成功,向所述乱序检测 模块发送检测控制指令;如果校验失败,则发送乱序修复指令;乱序修复模块,与所述校验模块和所述乱序检测模块均相连,用于判断所述存储模块 中的乱序深度值是否还可增大,如果不可增大,则认为修复失败,丢弃所述数据包;如果还 可增大,则以一更大值作为所述解压器侧的乱序深度值进行序列号还原计算,以还原出的 新的序列号进行数据包还原处理,对还原出的数据包进行校验,如果校验失败,则认为修复 失败,丢弃所述数据包;如果校验成功,则认为修复成功,更新所述修复成功个数记录,向所 述乱序检测模块发送检测控制指令。
10.如权利要求9所述的解压器,其特征在于所述乱序估计模块,在估计乱序状况时,是根据所述修复成功个数记录和所述存储模 块中的乱序深度值对乱序状况进行估计;所述乱序深度更新模块,在更新所述存储模块中的乱序深度值后,还将所述存储模块 中的修复成功个数记录置为初始值。
11.如权利要求7-10中任何一项所述的解压器,其特征在于 所述更大值等于所述解压器侧的乱序深度值自增1后的值; 所述乱序深度值包括0、1、2、3。
12.—种压缩器,其特征在于,包括 存储模块,用于存储一乱序深度值;接收解析模块,用于接收包含乱序深度值的反馈包,从中解析出乱序深度值; 比较模块,与所述接收解析模块和所述存储模块均相连,用于比较所述存储模块中的 乱序深度值是否小于所述反馈包中的乱序深度值,得到一比较结果;更新处理模块,与所述存储模块和所述比较模块均相连,用于在所述比较结果为所述 存储模块中的乱序深度值小于所述反馈包中的乱序深度值时,更新所述存储模块中的乱序 深度值为所述反馈包中的乱序深度值;否则,发送初始化和刷新(IR)包,以与解压器进行 乱序深度值同步。
13. 一种鲁棒性头压缩中更新乱序深度的系统,其特征在于,包括如权利要求7-11中 任何一项所述的解压器和如权利要求12所述的压缩器。
全文摘要
本发明提供了一种鲁棒性头压缩中更新乱序深度的方法及系统,该方法包括解压器在判断出数据包发生乱序时,对乱序状况进行估计,并据以判断是否需要采用更健壮的乱序处理策略,如果不需要,则保持所述解压器侧的乱序深度值;如果需要,则更新所述解压器侧的乱序深度值为一更大值,并向压缩器发送携带所述更新后的乱序深度值的反馈包;所述压缩器接收到所述反馈包后,根据所述反馈包中的乱序深度值更新所述压缩器侧的乱序深度值。该方法能够根据乱序状况有效地更新乱序深度,从而使得LSB P值动态调整,进而在有效确保当前压缩策略的健壮性时,还能有效兼顾压缩效率。
文档编号H04W28/06GK102149135SQ20111009966
公开日2011年8月10日 申请日期2011年4月20日 优先权日2011年4月20日
发明者毕文勇, 董淑松 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1