CN101969362A - 掩码生成方法、列表压缩编码方式的选择方法及相应装置 - Google Patents
掩码生成方法、列表压缩编码方式的选择方法及相应装置 Download PDFInfo
- Publication number
- CN101969362A CN101969362A CN2010105074944A CN201010507494A CN101969362A CN 101969362 A CN101969362 A CN 101969362A CN 2010105074944 A CN2010105074944 A CN 2010105074944A CN 201010507494 A CN201010507494 A CN 201010507494A CN 101969362 A CN101969362 A CN 101969362A
- Authority
- CN
- China
- Prior art keywords
- index
- tabulation
- list items
- mask
- compares
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/04—Protocols for data compression, e.g. ROHC
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明提出鲁棒性头压缩中一种掩码生成方法,选择待压缩列表和引用列表中具有较多列表项索引个数者,并从中确定一定个数的列表项索引作为一循环体,所述循环体的初始范围为所述具有较多列表项索引个数的列表中从首个列表项索引至最末一个列表项索引,然后将所述循环体中的各列表项索引依次与具有较少列表项索引个数者中的首个列表项索引进行比较。当在某一轮的比较过程中,如果两个进行比较的列表项索引相等,则将循环体缩小为所述具有较多列表项索引个数的列表中从当前进行比较的列表项索引的下一类表项索引至最末一个列表项索引,然后根据新的循环体执行下一轮的比较。
Description
技术领域
本发明涉及在移动通信领域中的一种鲁棒性头压缩算法,尤其涉及一种掩码生成方法、列表压缩编码方式的选择方法及相应装置。
背景技术
由于物理条件的限制,移动通信系统中的无线链路与有线链路相比传输速率较低,误码率较高。为了能有效利用有限的无线信道带宽资源,引入了鲁棒性头压缩技术(Robust Header Compress,以下简称ROHC)。ROHC的核心是利用业务流的分组之间的信息冗余来透明的压缩和解压缩直接相连节点间的分组头中的信息。ROHC技术由互联网工程任务组(Internet EngineeringTask Force,简称IETF)的RFC3095文档进行描述,并且在2007年2月份IETF对其进行了修订,修订文档是RFC4815。
ROHC中提到的列表主要包括两大类:实时传输协议(Real-TimeProtocol,简称RTP)包中的作用源(Contributing Source,以下简称CSRC)列表和IP包中的扩展头链。其中IP包扩展头链具体包括认证头(Authentication Header,以下简称AH头)、空封装安全载荷(the nullEncapsulation Security Payload Header,以下简称ESP头)、最小封装头(theminimal encapsulation header,以下简称MINE头)、通用路由封装头(GenericRouting Encapsulation Header,以下简称GRE头)和IPv6扩展头。
RFC3095协议中描述的列表压缩基本原理是由压缩器为每个列表项分配唯一的索引,同时维护一个具有所有列表项的翻译表,并使用列表项索引进行标识。列表项索引与对应的列表项在压缩列表中同时被发送,直到压缩器确保解压器已经获取到了索引和列表项之间的映射关系。后续压缩器可以在压缩包中单独发送列表索引用于代表对应的列表项。压缩器可以重新指派一个已存在索引到一个新的列表项,然后以相同的方式重新建立映射关系。
RFC3095协议定义的列表压缩采用基于引用列表的压缩方案,引用列表为同时出现在压缩上下文和解压上下文中的按照一定顺序排列的列表项索引的集合,待压缩列表为按照原始IP包中顺序排列的待压缩列表项索引的集合。
列表压缩的压缩包由对待压缩列表和引用列表之间进行差异编码得到。当解压器收到列表压缩包后,基于引用列表对差异进行处理恢复得到原始列表项。为了标识被使用的引用列表,每个压缩列表均携带一个ID。在R模式下某个已发送列表如果收到对端解压器的确认,或者在U/O模式下重复发送某列表到达一定次数则可以确保解压器已经收到此列表,可以被选作引用列表,此引用列表的ID称为引用ID(Ref ID)。
RFC3095协议定义了四种列表压缩包格式,分别为编码类型0(EncodingType0)(Generic scheme)、编码类型1(Encoding Type1)(insertion onlyscheme)、编码类型2(Encoding Type2)(removal only scheme)、编码类型3(Encoding Type3)(removal then insert scheme),适用于不同的列表压缩场景,其中:Encoding Type0类型只能发送原始列表项,适用于初始化阶段不存在引用列表的情形。Encoding Type1类型中含有插入比特掩码,适用于存在引用列表且当前的列表项比引用列表有若干增加项的情形。EncodingType2类型中含有删除比特掩码,适用于存在引用列表且当前的列表项比引用列表有若干删除项的情形。Encoding Type3类型中同时含有插入比特掩码和删除比特掩码,适用于存在引用列表且当前的列表项比引用列表既有若干增加项又有若干删除项的情形。但是协议中并未明确定义如何生成插入比特掩码和删除比特掩码,以及如何决策这四种列表压缩包格式的方法。
发明内容
本发明所要解决的技术问题是,提供一种掩码生成方法、列表压缩编码方式的选择方法及相应装置,能够快速、高效地生成掩码,为列表压缩编码方式的选择提供判断依据。
为了解决上述技术问题,本发明提出鲁棒性头压缩中一种掩码生成方法,包括:
在执行列表压缩时,如果引用列表不为空,则选择比较待压缩列表和引用列表中的一个为第一列表,另一个为第二列表,其中第一列表的列表项索引个数大于等于第二列表的列表项索引个数;设置第一列表中的首个列表项索引为第一索引,设置第二列表中的首个列表项索引为第二索引;
从第一列表中的第一索引开始,依次将各列表项索引分别与第二列表中的第二索引进行比较,当进行比较的两个列表项索引不相同时,继续比较第一列表中的下一列表项索引与第二索引,如果直到第一列表中的最末一个列表项索引,均与第二索引不相同,则将第二索引设置为其下一索引,然后重新执行所述从第一列表中的第一索引开始,依次将各列表项索引分别与第二列表中的第二索引进行比较的步骤;当进行比较的两个列表项索引相同时,将第一索引和第二索引分别更新为第一列表和第二列表中当前进行比较的列表项索引的下一索引,然后重新执行所述从第一列表中的第一索引开始,依次将各列表项索引分别与第二列表中的第二索引进行比较的步骤;
根据每两个列表项索引的比较结果,设置所述两个进行比较的列表项索引对应的掩码比特位。
进一步地,上述方法还可具有以下特点:
所述根据每两个列表项索引的比较结果,设置所述两个进行比较的列表项索引对应的掩码比特位包括:
当比较结果为不相同时,设置第一列表中当前进行比较的列表项索引对应的掩码比特位为一第一值;
当第一列表中从第一索引至最末一个列表项索引与第二索引的比较结果均为不相同时,设置第二列表中当前进行比较的列表项索引对应的掩码比特位为所述第一值;
当比较结果为相同时,设置第一列表和第二列表中当前进行比较的列表项索引对应的掩码比特位均为一第二值。
进一步地,上述方法还可具有以下特点:
所述掩码包括只删除掩码和只添加掩码;
所述只删除掩码中的各比特位分别用以指示引用列表中各列表项索引是否删除;所述只添加掩码中的各比特位分别用以指示待压缩列表中的各列表项索引是否为相对于引用列表添加的列表项索引。
进一步地,上述方法还可具有以下特点:
当比较结果为相同时,还包括:当第一列表或第二列表中当前进行比较的列表项索引没有下一列表项索引时,将第一列表和第二列表中有下一列表项索引者中当前进行比较的列表项索引的后续列表项索引对应的掩码比特位设置为所述第一值;以及
当比较结果为不相同时,还包括:当第一列表中当前进行比较的列表项索引有下一列表项索引,且第二列表中当前进行比较的列表项索引没有下一列表项索引时,则将第一列表中当前进行比较的列表项索引的后续列表项索引对应的掩码比特位设置为所述第一值。
为了解决上述技术问题,本发明还提出鲁棒性头压缩中一种列表压缩编码方式的选择方法,包括:
在执行列表压缩时,如果引用列表为空,则选择编码类型0的编码方式;如果引用列表不为空,则根据上述掩码生成方法生成掩码,根据所述掩码的值选择编码方式。
为了解决上述技术问题,本发明还提出鲁棒性头压缩中一种掩码生成装置,包括配置模块、处理模块,其中:
所述配置模块,在执行列表压缩时,如果引用列表不为空,则选择比较待压缩列表和引用列表中的一个为第一列表,另一个为第二列表,其中第一列表的列表项索引个数大于等于第二列表的列表项索引个数;设置第一列表中的首个列表项索引为第一索引,设置第二列表中的首个列表项索引为第二索引;
所述处理模块,从第一列表中的第一索引开始,依次将各列表项索引分别与第二列表中的第二索引进行比较,当进行比较的两个列表项索引不相同时,继续比较第一列表中的下一列表项索引与第二索引,如果直到第一列表中的最末一个列表项索引,均与第二索引不相同,则将第二索引设置为其下一索引,然后重新执行所述从第一列表中的第一索引开始,依次将各列表项索引分别与第二列表中的第二索引进行比较的步骤;当进行比较的两个列表项索引相同时,将第一索引和第二索引分别更新为第一列表和第二列表中当前进行比较的列表项索引的下一索引,然后重新执行所述从第一列表中的第一索引开始,依次将各列表项索引分别与第二列表中的第二索引进行比较的步骤;以及,根据所述比较模块得到的每两个列表项索引的比较结果,设置所述两个进行比较的列表项索引对应的掩码比特位。
进一步地,上述装置还可具有以下特点:
所述处理模块根据每两个列表项索引的比较结果,设置所述两个进行比较的列表项索引对应的掩码比特位包括:
当比较结果为不相同时,设置第一列表中当前进行比较的列表项索引对应的掩码比特位为一第一值;
当第一列表中从第一索引至最末一个列表项索引与第二索引的比较结果均为不相同时,设置第二列表中当前进行比较的列表项索引对应的掩码比特位为所述第一值;
当比较结果为相同时,设置第一列表和第二列表中当前进行比较的列表项索引对应的掩码比特位均为一第二值。
进一步地,上述装置还可具有以下特点:
所述掩码包括只删除掩码和只添加掩码;
所述只删除掩码中的各比特位分别用以指示引用列表中各列表项索引是否删除;所述只添加掩码中的各比特位分别用以指示待压缩列表中的各列表项索引是否为相对于引用列表添加的列表项索引。
进一步地,上述装置还可具有以下特点:
所述处理模块在得到比较结果为相同时,且第一列表或第二列表中当前进行比较的列表项索引没有下一列表项索引时,还将第一列表和第二列表中有下一列表项索引者中当前进行比较的列表项索引的后续列表项索引对应的掩码比特位设置为所述第一值;以及
当得到比较结果为不相同时,且第一列表中当前进行比较的列表项索引有下一列表项索引,且第二列表中当前进行比较的列表项索引没有下一列表项索引时,还将第一列表中当前进行比较的列表项索引的后续列表项索引对应的掩码比特位设置为所述第一值。
为了解决上述技术问题,本发明还提出鲁棒性头压缩中一种列表压缩编码方式的选择装置,包括上述掩码生成装置和一选择模块:
所述选择模块,在执行列表压缩时,如果引用列表为空,则选择编码类型0的编码方式;如果引用列表不为空,则控制所述掩码生成装置生成掩码,并根据所述掩码的值选择编码方式。
本发明提供的一种掩码生成方法、列表压缩编码方式的选择方法及相应装置,具有以下优点:
能够快速、高效地生成掩码,遍历次数少,进而提高了列表压缩的效率;
不需要生成临时列表,有效节省系统资源;
流程清晰、简洁,更易于理解和维护。
附图说明
图1是本发明实施例鲁棒性头压缩中一种掩码生成方法流程图;
图2是本发明实施例一种采用指针实现掩码生成的方法流程图;
图3是本发明实施例一种列表压缩编码方式的选择方法流程图;
图4是本发明第一应用实例一种掩码生成方法示意图;
图5是本发明第二应用实例一种掩码生成方法示意图。
具体实施方式
下面将结合附图来详细说明本发明实施方式。
参见图1,该图示出了本发明实施例鲁棒性头压缩中一种掩码生成方法,包括步骤:
步骤S101:在执行列表压缩时,如果引用列表不为空,则选择比较待压缩列表和引用列表中的一个为第一列表,另一个为第二列表,其中第一列表的列表项索引个数大于等于第二列表的列表项索引个数;设置第一列表中的首个列表项索引为第一索引,设置第二列表中的首个列表项索引为第二索引;
步骤S102:从第一列表中的第一索引开始,依次将各列表项索引分别与第二列表中的第二索引进行比较,当进行比较的两个列表项索引不相同时,继续比较第一列表中的下一列表项索引与第二索引,如果直到第一列表中的最末一个列表项索引,均与第二索引不相同,则将第二索引设置为其下一索引,然后重新执行所述从第一列表中的第一索引开始,依次将各列表项索引分别与第二列表中的第二索引进行比较的步骤;当进行比较的两个列表项索引相同时,将第一索引和第二索引分别更新为第一列表和第二列表中当前进行比较的列表项索引的下一索引,然后重新执行所述从第一列表中的第一索引开始,依次将各列表项索引分别与第二列表中的第二索引进行比较的步骤;
步骤S103:在执行步骤S102的过程中,根据每两个列表项索引的比较结果,设置所述两个进行比较的列表项索引对应的掩码比特位。
本发明实施例巧妙地选择待压缩列表和引用列表中具有较多列表项索引个数者,并从中确定一定个数的列表项索引作为一循环体,所述循环体的初始范围为所述具有较多列表项索引个数的列表中从首个列表项索引至最末一个列表项索引,然后将所述循环体中的各列表项索引依次与具有较少列表项索引个数者中的首个列表项索引进行比较,完成一轮的比较后,再将所述循环体中的各列表项索引与所述具有较少列表项索引个数者中的下一个列表项索引进行比较,依此类推。当在某一轮的比较过程中,如果两个进行比较的列表项索引相等,则将循环体缩小为所述具有较多列表项索引个数的列表中从当前进行比较的列表项索引的下一类表项索引至最末一个列表项索引,然后根据新的循环体执行下一轮的比较。至此,可以很明显地看出,采用本发明技术方案,能够有效地减少不必要的比较次数,掩码生成的效率很高。
上述步骤S103中,所述根据每两个列表项索引的比较结果,设置所述两个进行比较的列表项索引对应的掩码比特位包括:
当比较结果为不相同时,设置第一列表中当前进行比较的列表项索引对应的掩码比特位为一第一值;当第一列表中从第一索引至最末一个列表项索引与第二索引的比较结果均为不相同时,设置第二列表中当前进行比较的列表项索引对应的掩码比特位为所述第一值;当比较结果为相同时,设置第一列表和第二列表中当前进行比较的列表项索引对应的掩码比特位均为一第二值。
进一步地,当比较结果为相同时,还包括:当第一列表或第二列表中当前进行比较的列表项索引没有下一列表项索引时,将第一列表和第二列表中有下一列表项索引者中当前进行比较的列表项索引的后续列表项索引对应的掩码比特位设置为所述第一值;以及当比较结果为不相同时,还包括:当第一列表中当前进行比较的列表项索引有下一列表项索引,且第二列表中当前进行比较的列表项索引没有下一列表项索引时,则将第一列表中当前进行比较的列表项索引的后续列表项索引对应的掩码比特位设置为所述第一值。
其中,所述掩码包括只删除掩码和只添加掩码。所述只删除掩码中的各比特位分别用以指示引用列表中各列表项索引是否删除;所述只添加掩码中的各比特位分别用以指示待压缩列表中的各列表项索引是否为相对于引用列表添加的列表项索引。
较佳地,所述第一值可为1,所述第二值可为0。对只删除掩码的各掩码比特位而言,如果为1,则表示删除该比特位对应的引用列表中的列表项索引,如果为0,则表示不删除该比特位对应的引用列表中的列表项索引。对只添加掩码的各掩码比特位而言,如果为1,则表示该比特位对应的待压缩列表中的列表项索引为相对于引用列表添加的列表项索引,如果为0,则表示该比特位对应的待压缩列表中的列表项索引不是相对于引用列表添加的列表项索引,即引用列表中存在该列表项索引。
为了更直观地说明本发明实施例鲁棒性头压缩中一种掩码生成方法,本发明实施例提供了一种通过指针实现的具体方式,如图2所示,包括步骤:
步骤S201:ROHC进行列表压缩,引用列表存在,流程开始,进入步骤S202;
步骤S202:获取待压缩列表中的列表项索引(index)的个数,记为CurLen,进入步骤S203;
步骤S203:获取引用列表中的index的个数,记为RefLen,进入步骤S204;
步骤S204:将Cur_P、Ref_P(Cur_P、Ref_P分别表示待比较的索引在待压缩列表和引用列表中的位置指针)分别指向待压缩列表及引用列表的第一个Index,进入步骤S205;
步骤S205:将Cur_P_Temp、Ref_P_Temp(Cur_P_Temp、Ref_P_Temp分别为待压缩列表、引用列表中记录相关索引位置的临时变量)分别指向Cur_p、Ref_P指向的index,进入步骤S206;
步骤S206:将I_P(I_P为指向只添加掩码(I_BitMask)的当前比特位的位置指针)指向I_BitMask中的第一个比特位,将M_P(M_P为指向删除加掩码(M_BitMask)的当前比特位的位置指针)指向I_BitMask中的第一个比特位,进入步骤S207;
步骤S207:判断CurLen是否大于或者等于RefLen,如果是,则进入步骤S208;否则,进入步骤S229;
步骤S208:判断Cur_P、Ref_P指向的index是否相等,如果相等,则进入步骤S209,否则进入步骤S218;
步骤S209:将I_BitMask中I_P指向的比特位置0,然后将I_P向后移一位,进入步骤S210;
步骤S210:将M_BitMask中M_P指向的比特位置0,然后将M_P向后移一位,进入步骤S211;
步骤S211:判断待压缩列表中的index是否耗尽,如果是,则进入步骤S216,如果否,则进入步骤S212;
判断待压缩列表中的index是否耗尽,即判断Cur_P指向的index是否为待压缩列表中的最末一个index。
步骤S212:判断引用列表是否耗尽,如果是,则进入步骤S215,如果否,则进入步骤S213;
判断引用列表中的index是否耗尽,即判断Ref_P指向的index是否为引用列表中的最末一个index。
步骤S213:分别将Cur_P、Ref_P指向下一个index,进入步骤S214;
步骤S214:将Cur_P_Temp指向Cur_P所指的位置,返回步骤S107;
步骤S215:将I_BitMask的剩余比特位全部置1,结束;
所述I_BitMask的剩余比特位是指I_BitMask中I_P指向的比特位至最末一个比特位。
步骤S216:判断引用列表的index是否耗尽,如果是,则结束,否则进入步骤S217;
判断引用列表中的index是否耗尽,即判断Ref_P指向的index是否为引用列表中的最末一个index。
步骤S217:将M_BitMask剩余bit全部置1,结束;
所述M_BitMask的剩余比特位是指M_BitMask中M_P指向的比特位至最末一个比特位。
步骤S218:判断待压缩列表的index是否耗尽,如果是,则进入步骤S219,否则进入步骤S225;
判断待压缩列表中的index是否耗尽,即判断Cur_P指向的index是否为待压缩列表中的最末一个index。
步骤S219:将M_BitMask中M_P指向的比特位置1,然后将M_P向后移一位,进入步骤S220;
步骤S220:将I_BitMask中I_P指向的比特位置1,然后将I_P向后移一位,进入步骤S221;
步骤S221:判断引用列表中的index是否耗尽,如果是,则结束,否则进入步骤S222;
步骤S222:将Cur_P指向Cur_P_Temp指向的index,进入步骤S223;
步骤S223:将I_BitMask中I_P指向第Cur_P_Temp个bit,进入步骤S224;
步骤S224:将Ref_P移向下一个index,返回步骤S208;
步骤S225:判断引用列表中的index是否耗尽,如果是,则进入步骤S226,否则进入步骤S227;
判断引用列表中的index是否耗尽,即判断Ref_P指向的index是否为引用列表中的最末一个index。
步骤S226:将I_BitMask剩余bit全部置1,结束;
所述I_BitMask的剩余比特位是指I_BitMask中I_P指向的比特位至最末一个比特位。
步骤S227:将Cur_P后移指向待压缩列表的下一个index,进入步骤S228;
步骤S228:将I_BitMask中的I_P指向的比特位置1,然后将I_P向后移一位,返回步骤S208;
步骤S229:Cur_P、Ref_P指向的index是否相同,相同进入步骤S230,否则进入步骤S239;
步骤S230:将I_BitMask中I_P指向的比特位置0,然后将I_P向后移一位,进入步骤S231;
步骤S231:将M_BitMask中M_P指向的比特位置0,然后将M_P向后移一位,进入步骤S232;
步骤S232:判断引用列表的index是否耗尽,如果是,则执行步骤S237,否则进入步骤S233;
判断引用列表中的index是否耗尽,即判断Ref_P指向的index是否为引用列表中的最末一个index。
步骤S233:判断待压缩列表中的index是否耗尽,如果是,则进入步骤S236,如果否,则进入步骤S234;
判断待压缩列表中的index是否耗尽,即判断Cur_P指向的index是否为待压缩列表中的最末一个index。
步骤S234:将Cur_P、Ref_P均移向下一个index,进入步骤S235;
步骤S235:将Ref_P_Temp指向Ref_P所指的位置,进入步骤S232;
步骤S236:将M_BitMask剩余bit全部置1,结束;
所述M_BitMask的剩余比特位是指M_BitMask中M_P指向的比特位至最末一个比特位。
步骤S237:判断待压缩列表的index是否耗尽,如果是,则结束,否则进入步骤S238;
判断待压缩列表中的index是否耗尽,即判断Cur_P指向的index是否为待压缩列表中的最末一个index。
步骤S238:将I_BitMask剩余bit全部置1,结束;
所述I_BitMask的剩余比特位是指I_BitMask中I_P指向的比特位至最末一个比特位。
步骤S239:判断引用列表的index是否耗尽,如果是,则执行步骤S240,否则进入步骤S246;
判断引用列表中的index是否耗尽,即判断Ref_P指向的index是否为引用列表中的最末一个index。
步骤S240:将I_BitMask中I_P指向的比特位置1,然后将I_P向后移一位,进入步骤S241;
步骤S241:将M_BitMask中M_P指向的比特位置1,然后将M_P向后移一位,进入步骤S242;
步骤S242:判断待压缩列表的index是否耗尽,如果是,则结束,否则进入步骤S243;
判断待压缩列表中的index是否耗尽,即判断Cur_P指向的index是否为待压缩列表中的最末一个index。
步骤S243:将Ref_P指向Ref_P_Temp指向的index,进入步骤S244;
步骤S244:将M_BitMask中M_P指向第Ref_P_Temp个bit,进入步骤S245;
步骤S245:将Cur_P移向下一个index,返回步骤S229;
步骤S246:判断待压缩列表的index是否耗尽,如果是,则进入步骤S247,否则进入步骤S248;
步骤S247:将M_BitMask的剩余bit全部置1,结束;
所述M_BitMask的剩余比特位是指M_BitMask中M_P指向的比特位至最末一个比特位。
步骤S248:将Ref_P后移指向待压缩列表的下一个index,进入步骤S249;
步骤S249:将M_BitMask中M_P指向的比特位置1,然后将M_P向后移一位,返回步骤S229。
为了实现上述掩码生成方法,本发明还提出鲁棒性头压缩中一种掩码生成装置,包括配置模块、处理模块,其中:
所述配置模块,在执行列表压缩时,如果引用列表不为空,则选择比较待压缩列表和引用列表中的一个为第一列表,另一个为第二列表,其中第一列表的列表项索引个数大于等于第二列表的列表项索引个数;设置第一列表中的首个列表项索引为第一索引,设置第二列表中的首个列表项索引为第二索引;
所述处理模块,从第一列表中的第一索引开始,依次将各列表项索引分别与第二列表中的第二索引进行比较,当进行比较的两个列表项索引不相同时,继续比较第一列表中的下一列表项索引与第二索引,如果直到第一列表中的最末一个列表项索引,均与第二索引不相同,则将第二索引设置为其下一索引,然后重新执行所述从第一列表中的第一索引开始,依次将各列表项索引分别与第二列表中的第二索引进行比较的步骤;当进行比较的两个列表项索引相同时,将第一索引和第二索引分别更新为第一列表和第二列表中当前进行比较的列表项索引的下一索引,然后重新执行所述从第一列表中的第一索引开始,依次将各列表项索引分别与第二列表中的第二索引进行比较的步骤;以及,根据所述比较模块得到的每两个列表项索引的比较结果,设置所述两个进行比较的列表项索引对应的掩码比特位。
进一步地,所述处理模块根据每两个列表项索引的比较结果,设置所述两个进行比较的列表项索引对应的掩码比特位包括:
当比较结果为不相同时,设置第一列表中当前进行比较的列表项索引对应的掩码比特位为一第一值;
当第一列表中从第一索引至最末一个列表项索引与第二索引的比较结果均为不相同时,设置第二列表中当前进行比较的列表项索引对应的掩码比特位为所述第一值;
当比较结果为相同时,设置第一列表和第二列表中当前进行比较的列表项索引对应的掩码比特位均为一第二值。
进一步地:
所述掩码包括只删除掩码和只添加掩码;
所述只删除掩码中的各比特位分别用以指示引用列表中各列表项索引是否删除;所述只添加掩码中的各比特位分别用以指示待压缩列表中的各列表项索引是否为相对于引用列表添加的列表项索引。
进一步地:
所述处理模块在得到比较结果为相同时,且第一列表或第二列表中当前进行比较的列表项索引没有下一列表项索引时,还将第一列表和第二列表中有下一列表项索引者中当前进行比较的列表项索引的后续列表项索引对应的掩码比特位设置为所述第一值;以及
当得到比较结果为不相同时,且第一列表中当前进行比较的列表项索引有下一列表项索引,且第二列表中当前进行比较的列表项索引没有下一列表项索引时,还将第一列表中当前进行比较的列表项索引的后续列表项索引对应的掩码比特位设置为所述第一值。
本发明实施例还提供了鲁棒性头压缩中一种列表压缩编码方式的选择方法,其以采用本发明上述方式生成的掩码为选择依据,所述掩码包括只删除掩码和只添加掩码,如图3所示,该方法包括:
步骤S301:在执行列表压缩时,判断引用列表是否为空,如果为空,则选择编码类型0的编码方式,结束;如果引用列表不为空,则执行步骤S302;
步骤S302:判断只删除掩码和只添加掩码,如果只删除掩码和只添加掩码均不为0,则选择编码类型3的编码方式,结束;如果只删除掩码不为0,只添加掩码为0,则选择编码类型2的编码方式,结束;如果只删除掩码为0,只添加掩码不为0,则选择编码类型1的编码方式,结束。
为了实现上述选择方法,本发明还提出鲁棒性头压缩中一种列表压缩编码方式的选择装置,包括上述掩码生成装置和一选择模块:
所述选择模块,在执行列表压缩时,如果引用列表为空,则选择编码类型0的编码方式;如果引用列表不为空,则控制所述掩码生成装置生成掩码,并根据所述掩码的值选择编码方式。
下面以具体的应用实例做进一步说明。
应用实例
参见图4,引用列表中的列表项索引分别为3、5、6、8、10、12,待压缩列表中的列表项索引分别为1、2、5、8、9、11、12、14。
由于待压缩列表中的列表项索引个数比引用列表中的列表项索引个数多,因此,选择待压缩列表,从中确定循环体。
在第一轮比较过程中,循环体为1、2、5、8、9、11、12、14,依次与引用列表中的首个列表项索引3进行比较,并根据比较结果设置I_BitMask中各比特位依次为1、1、1、1、1、1、1、1。在一轮循环结束后,所述循环体中的各列表项索引1、2、5、8、9、11、12、14均与引用列表中首个列表项索引3不相同,则设置只删除掩码中第一个比特位为1,然后执行第二轮比较。
在第二轮比较过程中,循环体为1、2、5、8、9、11、12、14,依次与引用列表中的第2个列表项索引5进行比较,所述循环体中的前2个列表项索引1、2与引用列表中的第2个列表项索引5不相同,设置I_BitMask中第1、2个比特位均为1,当比较到所述循环体中的第3个列表项索引5时,其与引用列表中的第2个列表项索引5相等,此时,结束本轮比较,设置I_BitMask中第3个比特位为0,设置M_BitMask中第2个比特位为0,将循环体缩小为8、9、11、12、14。然后根据更新后的循环体执行第三轮比较。
在第三轮比较过程中,循环体为8、9、11、12、14,依次与引用列表中的第3个列表项索引6进行比较,并根据比较结果设置I BitMask中第4至8个比特位依次为1、1、1、1、1。在一轮循环结束后,所述循环体中的各列表项索引8、9、11、12、14均与引用列表中的第3个列表项索引6不相同,则设置只删除掩码中第3个比特位为1,然后执行第四轮比较。
在第四轮比较过程中,循环体为8、9、11、12、14,依次与引用列表中的第4个列表项索引8进行比较。当比较到所述循环体中的第1个列表项索引8时,其与引用列表中的第4个列表项索引8相等,此时,结束本轮比较,设置I_BitMask中第4个比特位为0,设置M_BitMask中第4个比特位为0,将循环体缩小为9、11、12、14。然后根据更新后的循环体执行第五轮比较。
在第五轮比较过程中,循环体为9、11、12、14,依次与引用列表中的第5个列表项索引10进行比较,并根据比较结果设置I_BitMask中第5至8个比特位依次为1、1、1、1。在一轮循环结束后,所述循环体中的各列表项索引9、11、12、14均与引用列表中的第5个列表项索引10不相同,则设置只删除掩码中第5个比特位为1,然后执行第六轮比较。
在第六轮比较过程中,循环体为9、11、12、14,依次与引用列表中的第6个列表项索引12进行比较,所述循环体中的前2个列表项索引9、11与引用列表中的第6个列表项索引12不相同,设置I_BitMask中第5、6个比特位均为1,当比较到所述循环体中的第3个列表项索引12时,其与引用列表中的第6个列表项索引12相等,此时,结束本轮比较,设置I_BitMask中第7个比特位为0,设置M_BitMask中第6个比特位为0。此时引用列表耗尽,待压缩列表未耗尽,将I_BitMask的剩余比特位,即第8个比特位置为1,至此,掩码生成过程结束。
从上述具体实例中可以看出,每一轮比较都是将循环体中的各列表项索引分别与引用列表中的一个列表项索引进行比较的过程。在此过程中,当比较结果为相等时,将会缩小循环体,进而在下一轮的比较过程中,大大节约了不比必要的比较操作,从而提高了掩码生成的效率。
参见图5,本发明还提供了另一种掩码生成应用实例,待压缩列表中的列表项索引分别为3、5、6、8、10、12,引用列表中的列表项索引分别为1、2、5、8、9、11、12、14。该应用实例与上一应用实例的区别在于待压缩列表中的列表项索引个数比引用列表中的列表项索引个数少,那么选择引用列表,从中确定循环体。而后续的掩码生成过程与上一应用实例类似,此处不再赘述。
以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.鲁棒性头压缩中一种掩码生成方法,其特征在于,包括:
在执行列表压缩时,如果引用列表不为空,则选择比较待压缩列表和引用列表中的一个为第一列表,另一个为第二列表,其中第一列表的列表项索引个数大于等于第二列表的列表项索引个数;设置第一列表中的首个列表项索引为第一索引,设置第二列表中的首个列表项索引为第二索引;
从第一列表中的第一索引开始,依次将各列表项索引分别与第二列表中的第二索引进行比较,当进行比较的两个列表项索引不相同时,继续比较第一列表中的下一列表项索引与第二索引,如果直到第一列表中的最末一个列表项索引,均与第二索引不相同,则将第二索引设置为其下一索引,然后重新执行所述从第一列表中的第一索引开始,依次将各列表项索引分别与第二列表中的第二索引进行比较的步骤;当进行比较的两个列表项索引相同时,将第一索引和第二索引分别更新为第一列表和第二列表中当前进行比较的列表项索引的下一索引,然后重新执行所述从第一列表中的第一索引开始,依次将各列表项索引分别与第二列表中的第二索引进行比较的步骤;
根据每两个列表项索引的比较结果,设置所述两个进行比较的列表项索引对应的掩码比特位。
2.如权利要求1所述的方法,其特征在于,所述根据每两个列表项索引的比较结果,设置所述两个进行比较的列表项索引对应的掩码比特位包括:
当比较结果为不相同时,设置第一列表中当前进行比较的列表项索引对应的掩码比特位为一第一值;
当第一列表中从第一索引至最末一个列表项索引与第二索引的比较结果均为不相同时,设置第二列表中当前进行比较的列表项索引对应的掩码比特位为所述第一值;
当比较结果为相同时,设置第一列表和第二列表中当前进行比较的列表项索引对应的掩码比特位均为一第二值。
3.如权利要求2所述的方法,其特征在于:
所述掩码包括只删除掩码和只添加掩码;
所述只删除掩码中的各比特位分别用以指示引用列表中各列表项索引是否删除;所述只添加掩码中的各比特位分别用以指示待压缩列表中的各列表项索引是否为相对于引用列表添加的列表项索引。
4.如权利要求2所述的方法,其特征在于:
当比较结果为相同时,还包括:当第一列表或第二列表中当前进行比较的列表项索引没有下一列表项索引时,将第一列表和第二列表中有下一列表项索引者中当前进行比较的列表项索引的后续列表项索引对应的掩码比特位设置为所述第一值;以及
当比较结果为不相同时,还包括:当第一列表中当前进行比较的列表项索引有下一列表项索引,且第二列表中当前进行比较的列表项索引没有下一列表项索引时,则将第一列表中当前进行比较的列表项索引的后续列表项索引对应的掩码比特位设置为所述第一值。
5.鲁棒性头压缩中一种列表压缩编码方式的选择方法,其特征在于,包括:
在执行列表压缩时,如果引用列表为空,则选择编码类型0的编码方式;如果引用列表不为空,则根据权利要求1-4中的任何一项所述的掩码生成方法生成掩码,根据所述掩码的值选择编码方式。
6.鲁棒性头压缩中一种掩码生成装置,其特征在于,包括配置模块、处理模块,其中:
所述配置模块,在执行列表压缩时,如果引用列表不为空,则选择比较待压缩列表和引用列表中的一个为第一列表,另一个为第二列表,其中第一列表的列表项索引个数大于等于第二列表的列表项索引个数;设置第一列表中的首个列表项索引为第一索引,设置第二列表中的首个列表项索引为第二索引;
所述处理模块,从第一列表中的第一索引开始,依次将各列表项索引分别与第二列表中的第二索引进行比较,当进行比较的两个列表项索引不相同时,继续比较第一列表中的下一列表项索引与第二索引,如果直到第一列表中的最末一个列表项索引,均与第二索引不相同,则将第二索引设置为其下一索引,然后重新执行所述从第一列表中的第一索引开始,依次将各列表项索引分别与第二列表中的第二索引进行比较的步骤;当进行比较的两个列表项索引相同时,将第一索引和第二索引分别更新为第一列表和第二列表中当前进行比较的列表项索引的下一索引,然后重新执行所述从第一列表中的第一索引开始,依次将各列表项索引分别与第二列表中的第二索引进行比较的步骤;以及,根据所述比较模块得到的每两个列表项索引的比较结果,设置所述两个进行比较的列表项索引对应的掩码比特位。
7.如权利要求6所述的装置,其特征在于,所述处理模块根据每两个列表项索引的比较结果,设置所述两个进行比较的列表项索引对应的掩码比特位包括:
当比较结果为不相同时,设置第一列表中当前进行比较的列表项索引对应的掩码比特位为一第一值;
当第一列表中从第一索引至最末一个列表项索引与第二索引的比较结果均为不相同时,设置第二列表中当前进行比较的列表项索引对应的掩码比特位为所述第一值;
当比较结果为相同时,设置第一列表和第二列表中当前进行比较的列表项索引对应的掩码比特位均为一第二值。
8.如权利要求7所述的装置,其特征在于:
所述掩码包括只删除掩码和只添加掩码;
所述只删除掩码中的各比特位分别用以指示引用列表中各列表项索引是否删除;所述只添加掩码中的各比特位分别用以指示待压缩列表中的各列表项索引是否为相对于引用列表添加的列表项索引。
9.如权利要求7所述的装置,其特征在于:
所述处理模块在得到比较结果为相同时,且第一列表或第二列表中当前进行比较的列表项索引没有下一列表项索引时,还将第一列表和第二列表中有下一列表项索引者中当前进行比较的列表项索引的后续列表项索引对应的掩码比特位设置为所述第一值;以及
当得到比较结果为不相同时,且第一列表中当前进行比较的列表项索引有下一列表项索引,且第二列表中当前进行比较的列表项索引没有下一列表项索引时,还将第一列表中当前进行比较的列表项索引的后续列表项索引对应的掩码比特位设置为所述第一值。
10.鲁棒性头压缩中一种列表压缩编码方式的选择装置,其特征在于,包括权利要求6-9中任何一项所述的掩码生成装置和一选择模块:
所述选择模块,在执行列表压缩时,如果引用列表为空,则选择编码类型0的编码方式;如果引用列表不为空,则控制所述掩码生成装置生成掩码,并根据所述掩码的值选择编码方式。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010507494.4A CN101969362B (zh) | 2010-09-30 | 2010-09-30 | 掩码生成方法、列表压缩编码方式的选择方法及相应装置 |
PCT/CN2011/078824 WO2012041134A1 (zh) | 2010-09-30 | 2011-08-24 | 掩码生成方法、列表压缩编码方式的选择方法及相应装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010507494.4A CN101969362B (zh) | 2010-09-30 | 2010-09-30 | 掩码生成方法、列表压缩编码方式的选择方法及相应装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101969362A true CN101969362A (zh) | 2011-02-09 |
CN101969362B CN101969362B (zh) | 2014-09-10 |
Family
ID=43548469
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010507494.4A Active CN101969362B (zh) | 2010-09-30 | 2010-09-30 | 掩码生成方法、列表压缩编码方式的选择方法及相应装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN101969362B (zh) |
WO (1) | WO2012041134A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012041134A1 (zh) * | 2010-09-30 | 2012-04-05 | 中兴通讯股份有限公司 | 掩码生成方法、列表压缩编码方式的选择方法及相应装置 |
WO2013189295A1 (zh) * | 2012-06-20 | 2013-12-27 | 中兴通讯股份有限公司 | 删除比特掩码的获得方法及装置 |
CN107168679A (zh) * | 2011-05-03 | 2017-09-15 | 高通股份有限公司 | 用于内嵌在存储器层级内的经熵编码软件的存储和翻译的方法和设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101069354A (zh) * | 2004-12-07 | 2007-11-07 | 日本电信电话株式会社 | 信息压缩编码装置、其解码装置、及其方法和程序以及记录介质 |
CN101110638A (zh) * | 2007-08-29 | 2008-01-23 | 中兴通讯股份有限公司 | 一种链表编码方法及系统 |
US7643505B1 (en) * | 2006-11-30 | 2010-01-05 | Qlogic, Corporation | Method and system for real time compression and decompression |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8750334B2 (en) * | 2006-10-02 | 2014-06-10 | Motorola Mobility Llc | Link layer assisted robust header compression context update management |
CN100563210C (zh) * | 2006-11-23 | 2009-11-25 | 华为技术有限公司 | 压缩报头的方法、压缩器及传输系统 |
CN101969362B (zh) * | 2010-09-30 | 2014-09-10 | 中兴通讯股份有限公司 | 掩码生成方法、列表压缩编码方式的选择方法及相应装置 |
-
2010
- 2010-09-30 CN CN201010507494.4A patent/CN101969362B/zh active Active
-
2011
- 2011-08-24 WO PCT/CN2011/078824 patent/WO2012041134A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101069354A (zh) * | 2004-12-07 | 2007-11-07 | 日本电信电话株式会社 | 信息压缩编码装置、其解码装置、及其方法和程序以及记录介质 |
US7643505B1 (en) * | 2006-11-30 | 2010-01-05 | Qlogic, Corporation | Method and system for real time compression and decompression |
CN101110638A (zh) * | 2007-08-29 | 2008-01-23 | 中兴通讯股份有限公司 | 一种链表编码方法及系统 |
Non-Patent Citations (1)
Title |
---|
C.BURMEISTER: "RObust Header Copmression(ROHC): Framework and four profiles: RTP, UDP, ESP, and uncompressed", 《RFC3095》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012041134A1 (zh) * | 2010-09-30 | 2012-04-05 | 中兴通讯股份有限公司 | 掩码生成方法、列表压缩编码方式的选择方法及相应装置 |
CN107168679A (zh) * | 2011-05-03 | 2017-09-15 | 高通股份有限公司 | 用于内嵌在存储器层级内的经熵编码软件的存储和翻译的方法和设备 |
US10754653B2 (en) | 2011-05-03 | 2020-08-25 | Qualcomm Incorporated | Methods and apparatus for storage and translation of entropy encoded software embedded within a memory hierarchy |
WO2013189295A1 (zh) * | 2012-06-20 | 2013-12-27 | 中兴通讯股份有限公司 | 删除比特掩码的获得方法及装置 |
CN103517331A (zh) * | 2012-06-20 | 2014-01-15 | 中兴通讯股份有限公司 | 删除比特掩码的获得方法及装置 |
CN103517331B (zh) * | 2012-06-20 | 2018-07-24 | 中兴通讯股份有限公司 | 删除比特掩码的获得方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2012041134A1 (zh) | 2012-04-05 |
CN101969362B (zh) | 2014-09-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7430617B2 (en) | Method and system for header compression | |
US6950445B2 (en) | Communication system and method for shared context compression | |
US7948913B1 (en) | Communicating data in various modes using header-compression algorithms | |
US8560552B2 (en) | Method for lossless data reduction of redundant patterns | |
CN101977402B (zh) | 鲁棒性头压缩中一种上下文重用的方法及装置 | |
JP2009538581A (ja) | アドホック無線ネットワークにおけるオーバーヘッドの削減 | |
Abdelfadeel et al. | Lschc: Layered static context header compression for lpwans | |
CN101594290A (zh) | 一种鲁棒性头压缩上下文标识的处理方法及装置 | |
CN101969362B (zh) | 掩码生成方法、列表压缩编码方式的选择方法及相应装置 | |
CN113726907A (zh) | 一种路由处理方法、网元设备、装置以及可读存储介质 | |
US20050083944A1 (en) | Compressing header data | |
CN104767710B (zh) | 基于dfa的http分块传输编码的传输载荷提取方法 | |
CN101984621B (zh) | 鲁棒性头压缩中一种提高列表压缩效率的方法及装置 | |
CN101110638A (zh) | 一种链表编码方法及系统 | |
Ruxanayasmin et al. | Implementation of data compression techniques in mobile ad hoc networks | |
Ju et al. | Easipc: A packet compression mechanism for embedded WSN | |
CN102202347B (zh) | 稳健头压缩业务流处理方法及装置 | |
Wang et al. | Improving fountain codes for short message lengths by adding memory | |
CN102291406A (zh) | 鲁棒性头压缩处理方法及鲁棒性头压缩处理器 | |
US20140215094A1 (en) | Method and system for data compression | |
CN101895548A (zh) | 鲁棒性头压缩中一种列表压缩方法及装置 | |
Jiang et al. | Disruption‐resilient bundle delivery mechanism in space DTNs with partial segments aggregation | |
Pandit et al. | Performance evaluation of routing protocols for manet using NS2 | |
Massey et al. | Protocol-Independent Compression for Resource-Constrained Wireless Networks | |
Massey et al. | Protocol-Agnostic Compression for Resource-Constrained Wireless Networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
EE01 | Entry into force of recordation of patent licensing contract |
Application publication date: 20110209 Assignee: SHENZHEN ZTE MICROELECTRONICS TECHNOLOGY CO., LTD. Assignor: ZTE Corporation Contract record no.: 2015440020319 Denomination of invention: Mask generation method, method and corresponding device for selecting list compression encoding mode Granted publication date: 20140910 License type: Common License Record date: 20151123 |
|
LICC | Enforcement, change and cancellation of record of contracts on the licence for exploitation of a patent or utility model |