CN101110638B - 一种链表编码方法及系统 - Google Patents
一种链表编码方法及系统 Download PDFInfo
- Publication number
- CN101110638B CN101110638B CN200710142556A CN200710142556A CN101110638B CN 101110638 B CN101110638 B CN 101110638B CN 200710142556 A CN200710142556 A CN 200710142556A CN 200710142556 A CN200710142556 A CN 200710142556A CN 101110638 B CN101110638 B CN 101110638B
- Authority
- CN
- China
- Prior art keywords
- list
- chained list
- current
- reference list
- current chained
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明公开了一种链表编码方法及系统。其中,该链表编码方法包括以下步骤:S102,比较参考链表和当前链表;S104,根据比较结果设置插入/删除比特掩码、选择编码方法,并利用所选择的编码方法对当前链表或参考链表的插入或删除比特掩码进行编码。通过本发明,大大减少了当前链表和参考链表中元素需要比较的次数,提高了编码的效率,同时通过将计算插入和删除比特掩码等功能独立出来,在先删除后插入方案中增强了模块的可重用性。
Description
技术领域
本发明涉及通信领域,更具体地涉及一种链表编码方法及系统。
背景技术
第三代移动通信(3rd Generation,简称3G)技术已经成为全球最关注的通信技术之一,作为一种新的通信技术,3G不仅支持传统的电路交换,同时还支持分组交换。而3G以后的一些技术(例如,B3G(Beyond 3G)和WiMax等)都已经转向以分组交换为主,即主要支持互联网协议(Internet Protocol,简称IP)的技术。
对于语音等多媒体应用而言,IP技术可以带来成本的降低,但是按照传统的IP格式来传送语音,由于语音数据承载在实时承载协议(Real Time Protocol,简称“RTP”)和用户数据报协议(UserDatagram Protocol,简称UDP)上,相对于语音净荷而言,RTP/UDP/IP报文有很大的头标开销,这对于无线空口资源来说会带来很大的浪费。因此,Internet任务工作组(Internet Engineering TaskForce,简称IETF)引入了健壮的头标压缩(Robust HeaderCompression,简称ROHC)技术,对RTP/UDP/IP头标进行压缩,以提高网络数据的传输效率。ROHC最高可以将40字节的头标压缩至1个字节,使得实际的带宽利用率从20%~30%提高到90%以上。
ROHC协议主要采用基于窗口的最低有效比特(Window-BasedLeast Significant Bits,简称WLSB)算法来压缩RTP头标中的序列号码(Sequence Number,简称SN)域,利用相邻分组之间的关联性,压缩方只传送16比特的SN的低k个比特来达到压缩的目的。针对RTP头标中的参与信源(Contributing Source,简称CSRC)压缩方法,ROHC也采用先保存相关参考链表,然后通过关联性和附加信息恢复出CSRC链。
ROHC协议给出了4种压缩方案,分别是List 0、List 1、List 2、和List 3。
List 0是一种通用方案,这种方法不需要依靠已经建立起来的参考链表,将整个链表发送,同时对于其中的元素,如果解压缩器已经保存了对应的选项,则只需要发送相关的索引,不需要再携带元素,这种编码方式通常在压缩器和解压缩器建立关联信息时使用。
List 1是一种仅插入方案,通过在相应的位置上添加元素,就可以从参考链表中得到新的链表。插入比特掩码指明在参考链表中应该插入的位置。插入比特掩码的比特“1”表示一个新的元素必须添加到参考链表的相应位置,而比特“0”表示此位置的元素从相应的参考链表中获取,新链表的组建采用自左至右的顺序来扫描插入比特掩码。
List 2是一种仅删除方案,通过在参考链表的基础上移除一些元素得到新的链表。其中,删除比特掩码指明应删除的元素在参考链表中的位置。解压缩器也采用自左向右的顺序扫描删除比特掩码,比特“1”表示删除参考链表中的相应元素,比特“0”表示新的元素将从参考链表中获取。
List 3则是一种删除插入方案,主要应用在当前链表中有新元素替换参考链表中旧元素的情况,采用删除后插入的顺序,这样可以减少额外的开销,通过删除比特掩码和插入比特掩码就可以从参考链表中得到新的链表。
因此如何选择链表类型,以及如何确定相关的插入和删除比特掩码将直接影响到编码的效率。
发明内容
鉴于以上所述的一个或多个问题,本发明提供了一种链表编码方法及系统。
根据本发明的链表编码方法,包括以下步骤:S102,比较参考链表和当前链表;S104,根据比较结果设置插入/删除比特掩码、选择编码方法,并利用所选择的编码方法对当前链表或参考链表的插入或删除比特掩码进行编码。
其中,比较参考链表和当前链表的过程包括以下步骤:将当前链表的第i个元素和参考链表的第k个元素进行比较;如果当前链表的第i个元素和参考链表的第k个元素相同,则将当前链表的第i+1个元素和参考链表的第k+1个元素进行比较,否则将当前链表的第i+1个元素和所述参考链表的第k个元素进行比较。
其中,如果当前链表的第i个元素和参考链表的第k个元素相同,则将当前链表的第i个元素的插入比特掩码设置为0,否则将当前链表的第i个元素的插入比特掩码设置为1。如果当前链表的前n个元素包含了参考链表的所有元素,则将当前链表剩余元素的插入比特掩码设置为1,并选择list 1编码方法对当前链表的插入比特掩码进行编码。如果参考链表与当前链表完全相同,则选择list 0编码方法。
可选地,比较参考链表和当前链表的过程包括以下步骤:将当前链表的第x个元素和参考链表的第j个元素进行比较;如果当前的第x个元素与参考链表的第j个元素相同,则将当前链表的第x+1个元素和参考链表的第j+1个元素进行比较,否则将当前链表的第x个元素和参考链表的第j+1个元素进行比较。
如果当前链表的第x个元素和参考链表的第j个元素相同,则将参考链表的第j个元素的删除比特掩码设置为0,否则将参考链表的第j个元素的删除比特掩码设置为1。如果参考链表的前m个元素包含了当前链表的所有元素,则将参考链表的剩余元素的删除比特掩码设置为1,并选择list 2编码方法对参考链表的删除比特掩码进行编码。如果参考链表与当前链表完全相同,则选择list 0编码方法。
其中,如果当前链表的前n个元素没有完全包含了参考链表的所有元素并且参考链表的前m个元素没有包含了当前链表的所有元素,则选择list 3编码方法对由当前链表和参考链表得出的新链表的插入/删除比特掩码进行编码。
根据本发明的链表编码系统包括:链表比较装置,用于比较参考链表和当前链表;链表编码装置,用于根据比较结果设置插入/删除比特掩码、选择编码方法,并利用所选择的编码方法对当前链表或参考链表的插入或删除比特掩码进行编码。
其中,链表编码装置包括:第一设置单元,用于根据链表比较装置的比较结果,对当前链表的插入比特掩码进行设置;第二设置单元,用于根据链表比较装置的比较结果,对参考链表的删除比特掩码进行设置;以及链表编码单元,用于根据链表比较装置的比较结果选择编码方法,并利用所选择的编码方法对当前链表或参考链表的插入或删除比特掩码进行编码,其中,第一设置单元和第二设置单元能够被复用。
通过本发明,大大减少了当前链表和参考链表中元素需要比较的次数,提高了编码的效率,同时通过将计算插入和删除比特掩码等功能独立出来,在先删除后插入方案中增强了模块的可重用性。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的链表编码方法的流程图;
图2是根据本发明实施例的插入方案的示意图;
图3是根据本发明实施例的删除方案的示意图;
图4是根据本发明实施例的插入方案设置比特掩码的流程图;
图5是根据本发明实施例的删除方案设置比特掩码的流程图;
图6是根据本发明实施例的选择不同编码方法的流程图;以及
图7是根据本发明实施例的链表编码系统的框图。
具体实施方式
下面参考附图,详细说明本发明的具体实施方式。
参考图1,说明根据本发明实施例的链表编码方法。如图1所示,该链表编码方法包括以下步骤:S102,比较参考链表和当前链表;S104,根据比较结果设置插入/删除比特掩码、选择编码方法,并利用所选择的编码方法对当前链表或参考链表的插入或删除比特掩码进行编码。
其中,比较参考链表和当前链表的过程包括以下步骤:将当前链表的第i个元素和参考链表的第k个元素进行比较;如果当前链表的第i个元素和参考链表的第k个元素相同,则将当前链表的第i+1个元素和参考链表的第k+1个元素进行比较,否则将当前链表的第i+1个元素和所述参考链表的第k个元素进行比较。
如果当前链表的第i个元素和参考链表的第k个元素相同,则将当前链表的第i个元素的插入比特掩码设置为0,否则将当前链表的第i个元素的插入比特掩码设置为1。如果当前链表的前n个元素包含了参考链表的所有元素,则将当前链表剩余元素的插入比特掩码设置为1,并选择list 1编码方法对当前链表的插入比特掩码进行编码。如果参考链表与当前链表完全相同,则选择list 0编码方法。
可选地,比较参考链表和当前链表的过程包括以下步骤:将当前链表的第x个元素和参考链表的第j个元素进行比较;如果当前的第x个元素与参考链表的第j个元素相同,则将当前链表的第x+1个元素和参考链表的第j+1个元素进行比较,否则将当前链表的第x个元素和参考链表的第j+1个元素进行比较。
如果当前链表的第x个元素和参考链表的第j个元素相同,则将参考链表的第j个元素的删除比特掩码设置为0,否则将参考链表的第j个元素的删除比特掩码设置为1。如果参考链表的前m个元素包含了当前链表的所有元素,则将参考链表的剩余元素的删除比特掩码设置为1,并选择list 2编码方法对参考链表的删除比特掩码进行编码。如果参考链表与当前链表完全相同,则选择list 0编码方法。
其中,如果当前链表的前n个元素没有完全包含了参考链表的所有元素并且参考链表的前m个元素没有包含了当前链表的所有元素,则选择list 3编码方法对由当前链表和参考链表得出的新链表的插入/删除比特掩码进行编码。
下面以对于CSRC链表的压缩编码为例进行说明。在对CSRC链表进行压缩编码的过程中,最重要的就是能够快速判断所需的编码类型以及相应的插入和删除比特掩码。在本实施例中,将整个压缩编码的过程划分为两大部分,首先通过比较参考链表和当前链表中的每一个元素,设置标志位,在比较的过程中计算出插入删除比特掩码。然后根据标志位选择相应的编码类型,并利用已经计算出的插入和删除比特掩码来编码。
其中,确定插入比特掩码的思想主要是,由于当前链表中的元素多于参考链表中的元素,因此新插入元素的位置应该是基于当前链表的。压缩器设置一个指针(如InsertIndex)指向参考链表,然后遍历整个当前链表,如果当前链表中有元素和参考链表中InsertIndex指向的元素相同,则根据编码规则当前的插入比特应该是“0”,然后比较当前链表的下一个元素和参考链表InsertIndex的下一个元素。如果不相等,则说明当前链表中有新元素,需要在参考链表上插入新元素,压缩器设置对应的比特位为“1”,因为在链表中没有重复的元素,所以压缩器会将所有和InsertIndex不相等的元素都当作是需要插入的项。当前链表中元素只要和InsertIndex指向的元素不相等,InsertIndex就不能够向后移动。如果已经在当前链表中找到了所有参考链表的元素,则将此时当前链表中剩余元素相应的插入比特都设置为“1”,因为此时已经没有元素可以比较了,当前链表尾的所有元素都是需要插入到参考链表中。
由于插入方案是基于当前链表中有比参考链表中多的元素而考虑的,所以遍历完当前链表实际上可以比较完所有元素。如果当前链表有N个元素,参考链表有M个元素,则当前比较的次数为min{N,M}(min{N,M}表示取N和M中最小的一个数),而不需要将当前链表中的所有元素和参考链表中的所有元素一一进行比较(一一比较需要比较的次数为N×M),因此使得编码的效率得以大大提高。
其中,确定删除比特掩码的思想和插入比特比特掩码的思想类似,只不过删除方案是相对于参考链表而言的。因为参考链表中的某些元素不存在于当前链表中,所以需要从参考链表中去除一些元素以得到新的链表。同样设置一个指针(如RemoveIndex)指向当前链表,然后遍历整个参考链表,如果有和RemoveIndex指向的元素相同的元素,则设置相应的删除比特掩码为“0”,RemoveIndex指向下一个元素。否则设置相应的删除比特掩码为“1”,并且RemoveIndex不变。同样因为链表中没有重复的元素,RemoveIndex的变化是基于参考链表中有元素和当前链表中元素不同的,所以这些元素都应该删除掉,直到在参考链表中找到一个和这个元素相同的元素为止,然后才重新比较当前链表的下一个元素。如果当前链表的元素已经全部遍历完,而参考链表中仍有元素没有比较,则此时的参考链表尾部的所有元素都应该删除,其相应的删除比特掩码应该置“1”。
同样,在仅删除方案中,如果当前链表有N个元素,参考链表有M个元素,则当前比较的次数为min{N,M},远远小于一一比较当前链表和参考链表中所有元素的N×M次,编码效率得以提高。
其中,先删除和插入的方案是上述两种方案的结合,压缩器先采用仅删除方案得到删除比特掩码,计算得到新的参考链表,然后利用新的参考链表进行计算后就可以得出插入比特掩码。
参考图2,说明根据本发明实施例的插入方案。如图2所示,插入指针InsertIndex是指向参考链表中元素的指针,初始化时指向参考链表的第一个元素,i是指向当前链表中元素的指针,初始化时指向当前链表的第一个元素。Item表示参考链表中的元素,同一个链表中的所有元素都是不同的,0、1表示的是Item的编号,编号是从0开始的,RefList.num表示的是参考链表中元素的数目,CurrList.num表示的是当前链表中元素的数目。
参考图3,说明根据本发明实施例的删除方案。如图3所示,删除指针RemoveIndex是向当前链表中元素的指针,初始化时指向当前链表的第一个元素,j是指向参考链表中元素的指针,初始化时指向参考链表的第一个元素。Item表示参考链表中的元素,同一个链表中的所有元素都是不同的,0、1表示的是Item的编号,编号是从0开始的,RefList.num表示的是参考链表中元素的数目,CurrList.num表示的是当前链表中元素的数目。
参考图4,说明根据本发明实施例的插入方案设置比特掩码的流程。如图4所示,该流程包括以下步骤:
S402,压缩器初始化系统的变量InsertIndex和i为0,设置初始插入比特掩码InsertBitMask为0。
S404,按照协议自左至右确定插入比特掩码,如果当前链表的第i个元素和参考链表中的第InsertIndex个元素相同,则InsertIndex加1,i加1,相应的InsertBitMask比特保持“0”不变;如果两者不相等,则InsertIndex不变,i加1,相应的InsertBitMask比特置“1”,直至InsertIndex等于RefList.num或者i等于CurrList.num时比较结束。
S406,如果InsertIndex等于RefList.num,而i不等于CurrList.num,则将i到CurrList.num所有元素对应的InsertBitMask比特置“1”,即将当前链表尾的元素插入到参考链表的尾部,其余条件下保持InsertIndex和InsertBitMask不变。
S408,压缩器保存变量InsertIndex和InsertBitMask返回。
参考图5,说明根据本发明实施例的删除方案设置比特掩码的流程。如图5所示,该流程包括以下步骤:
S502,压缩器初始化系统的变量RemoveIndex和j为0,设置初始删除比特掩码RemoveBitMask为0。
S504,按照协议自左至右确定删除比特掩码,如果参考链表的第j个元素和当前链表中的第RemoveIndex个元素相同,则RemoveIndex加1,j加1,相应的RemoveBitMask比特保持“0”不变;如果两者不相等,则RemoveIndex不变,j加1,相应的RemoveBitMask比特置“1”。直至RemoveIndex等于CurrList.num或者j等于RefList.num时比较结束。
S506,如果RemoveIndex等于CurrList.num,而j不等于RefList.num,则将j到RefList.num所有元素对应的RemoveIndex比特置“1”,即将参考链表尾的元素全部删除。其余条件下保持RemoveIndex和RemoveBitMask不变。
S508,压缩器保存变量RemoveIndex和RemoveBitMask返回。
参考图6,说明根据本发明实施例的选择不同编码方法的流程。如图6所示,该流程包括以下步骤:
S602,压缩器根据前面比较当前链表和参考链表的结果,确定InsertIndex、InsertBitMask以及RemoveIndex、RemoveBitMask等变量。
S604,压缩器主要根据InsertIndex、RemoveIndex和RefList.num、CurrList.num的比较来确定编码方案。
S606,上述比较分为4种情况:第一种是InsertIndex和RefList.num相等并且RemoveIndex和CurrList.num相等,按照前述可知此时参考链表和当前链表中所有元素都相同;第二种就是仅InsertIndex和RefList.num相等而RemoveIndex和CurrList.num不相等,此时则是一种仅插入的编码方案;而第三种RemoveIndex和CurrList.num相等但是InsertIndex和RefList.num不相等,这是一种仅删除方案;第四种就是InsertIndex和RefList.num不相等并且RemoveIndex和CurrList.num也不相等,则采取先删除后插入方案。
S608,压缩器根据上述四种情况分别选择不同方案来构造压缩包,上述第一种情况压缩器选择List 0编码,或者根据上层选择其余简化包不携带CSRC链表;第二种情况采用List 1仅插入编码方案;第三种选择List 2仅删除方案;第四种则选择List 3编码,首先根据计算得到的删除比特掩码删除有关元素得到新的参考链表,然后基于新的参考链表计算新的插入比特掩码编码。
由上述可知,在确定插入比特掩码的过程中,如果指针InsertIndex增加的次数等于参考链表中元素的数目,则说明在当前链表中已经找到所有参考链表的元素,这时压缩器只需要选择List1,即仅插入方案编码,在确定方案的同时也可以计算出所需的插入比特掩码。同理,在确定删除比特掩码过程中,如果指针RemoveIndex增加的次数等于当前链表中元素的数目,则说明在参考链表中已经包含了所有当前链表中的元素,只需要从参考链表中删除相应的元素就可以得到当前链表了,这时需要选择List 2,即仅删除方案编码。如果这两个条件同时具备,则说明当前链表和参考链表所有的元素都一样,这时可以考虑List 0编码,即通用编码方式,或者是根据上层选包方案不再携带CSRC链表。其余情况下只能选择先删除后添加的List 3编码方案。
参考图7,说明用于实现图1至图6所示方案的链表编码系统。如图7所示,该链表编码系统包括:链表比较装置702,用于比较参考链表和当前链表;链表编码装置704,用于根据比较结果设置插入/删除比特掩码、选择编码方法,并利用所选择的编码方法对当前链表或参考链表的插入或删除比特掩码进行编码。
其中,链表编码装置704包括:第一设置单元7042,用于根据链表比较装置的比较结果,对当前链表的插入比特掩码进行设置;第二设置单元7044,用于根据链表比较装置的比较结果,对参考链表的删除比特掩码进行设置;以及链表编码单元7046,用于根据链表比较装置的比较结果选择编码方法,并利用所选择的编码方法对当前链表或参考链表的插入或删除比特掩码进行编码。其中,第一设置单元和第二设置单元能够被复用。
其中,链表比较装置可以将当前链表的第i个元素和参考链表的第k个元素进行比较,如果当前链表的第i个元素与参考链表的第k个元素相同,则将当前链表的第i+1个元素和参考链表的第k+1个元素进行比较,否则将当前链表的第i+1个元素和参考链表的第k个元素进行比较。
可选地,链表比较装置也可以将当前链表的第x个元素和参考链表的第j个元素进行比较,如果当前链表的第x个元素与参考链表的第j个元素相同,则将当前链表的第x+1个元素和参考链表的第j+1个元素进行比较,否则将当前链表的第x个元素和参考链表的第j+1个元素进行比较。
其中,如果当前链表的第i个元素和参考链表的第k个元素相同,则第一设置单元将当前链表的第i个元素的插入比特掩码设置为0,否则将当前链表的第i个元素的插入比特掩码设置为1。如果当前链表的前n个元素包含了参考链表的所有元素,则第一设置单元将当前链表剩余元素的插入比特掩码设置为1。
其中,如果当前链表的第x个元素和参考链表的第j个元素相同,则第二设置单元将参考链表的第j个元素的删除比特掩码设置为0,否则将参考链表的第j个元素的删除比特掩码设置为1。如果参考链表的前m个元素包含了当前链表的所有元素,则第二设置单元将参考链表的剩余元素的删除比特掩码设置为1。
其中,如果参考链表与当前链表完全相同,则链表编码单元选择list 0编码方法;如果当前链表的前n个元素包含了参考链表的所有元素,则链表编码单元选择list 1编码方法对当前链表的插入比特掩码进行编码;如果参考链表的前m个元素包含了当前链表的所有元素,则链表编码单元选择list 2编码方法对参考链表的删除比特掩码进行编码;如果当前链表的前n个元素没有完全包含了参考链表的所有元素并且参考链表的前m个元素没有包含了当前链表的所有元素,则链表编码单元选择list 3编码方法对由当前链表和参考链表得出的新链表的插入/删除比特掩码进行编码。
综上所述,本发明通过设置2个指针对参考链表和当前链表进行操作,并通过一些标志位确定比特掩码和链表类型,有效提高了编码的效率。
以上所述仅为本发明的实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。
Claims (13)
1.一种链表编码方法,其特征在于,包括以下步骤:
S102,将当前链表的第x个元素和参考链表的第j个元素进行比较;如果所述当前链表的第x个元素与所述参考链表的第j个元素相同,则将所述当前链表的第x+1个元素和所述参考链表的第j+1个元素进行比较,否则将所述当前链表的第x个元素和所述参考链表的第j+1个元素进行比较;
S104,如果所述当前链表的第x个元素和所述参考链表的第j个元素相同,则将所述参考链表的第j个元素的删除比特掩码设置为0,否则将所述参考链表的第j个元素的删除比特掩码设置为1;如果所述参考链表的前m个元素包含了所述当前链表的所有元素,则将所述参考链表的剩余元素的删除比特掩码设置为1;如果所述参考链表的前m个元素包含了所述当前链表的所有元素,则选择1ist 2编码方法对所述参考链表的删除比特掩码进行编码,其中,m小于或者等于M,所述参考链表有M个元素,所述list 2编码方法是健壮的头标压缩(ROHC)协议给出的4种压缩方案的仅删除方案,其中,所述删除比特掩码指明应删除的元素在所述参考链表中的位置。
2.根据权利要求1所述的链表编码方法,其特征在于,还包括:
将所述当前链表的第i个元素和所述参考链表的第k个元素进行比较;
如果所述当前链表的第i个元素和所述参考链表的第k个元素相同,则将所述当前链表的第i+1个元素和所述参考链表的第k+1个元素进行比较,否则将所述当前链表的第i+1个元素和所述参考链表的第k个元素进行比较。
3.根据权利要求2所述的链表编码方法,其特征在于,如果所述当前链表的第i个元素和所述参考链表的第k个元素相同,则将所述当前链表的第i个元素的插入比特掩码设置为0,否则将所述当前链表的第i个元素的插入比特掩码设置为1;如果所述当前链表的前n个元素包含了所述参考链表的所有元素,则将所述当前链表剩余元素的插入比特掩码设置为1,其中,n小于或者等于N,所述当前链表有N个元素,所述插入比特掩码指明在所述参考链表中应该插入的位置。
4.根据权利要求3所述的链表编码方法,其特征在于,如果所述当前链表的前n个元素包含了所述参考链表的所有元素,则选择list 1编码方法对所述当前链表的插入比特掩码进行编码;如果所述参考链表与所述当前链表完全相同,则选择list 0编码方法,其中,所述list 0编码方法是ROHC协议给出的4种压缩方案的通用方案,其中,所述List 1编码方法是ROHC协议给出的4种压缩方案的仅插入方案。
5.根据权利要求2至4中任一项所述的链表编码方法,其特征在于,如果所述当前链表的前n个元素没有完全包含了所述参考链表的所有元素并且所述参考链表的前m个元素没有包含了所述当前链表的所有元素,则选择list 3编码方法对由所述当前链表得出的新链表的插入比特掩码或所述参考链表得出的新链表的删除比特掩码进行编码,其中,所述list 3编码方法是ROHC协议给出的4种压缩方案的删除插入方案。
6.一种链表编码方法,其特征在于,包括以下步骤:
S102,将当前链表的第i个元素和参考链表的第k个元素进行比较;如果所述当前链表的第i个元素和所述参考链表的第k个元素相同,则将所述当前链表的第i+1个元素和所述参考链表的第k+1个元素进行比较,否则将所述当前链表的第i+1个元素和所述参考链表的第k个元素进行比较;
S104,如果所述当前链表的第i个元素和所述参考链表的第k个元素相同,则将所述当前链表的第i个元素的插入比特掩码设置为0,否则将所述当前链表的第i个元素的插入比特掩码设置为1;如果所述当前链表的前n个元素包含了所述参考链表的所有元素,则将所述当前链表剩余元素的插入比特掩码设置为1;如果所述当前链表的前n个元素包含了所述参考链表的所有元素,则选择list 1编码方法对所述当前链表的插入比特掩码进行编码,其中,n小于或者等于N,所述当前链表有N个元素,所述list 1编码方法是健壮的头标压缩(ROHC)协议给出的4种压缩方案的仅插入方案,其中,所述插入比特掩码指明在所述参考链表中应该插入的位置。
7.根据权利要求6所述的链表编码方法,其特征在于,还包括:
将所述当前链表的第x个元素和所述参考链表的第j个元素进行比较;
如果所述当前链表的第x个元素与所述参考链表的第j个元素相同,则将所述当前链表的第x+1个元素和所述参考链表的第j+1个元素进行比较,否则将所述当前链表的第x个元素和所述参考链表的第j+1个元素进行比较。
8.根据权利要求7所述的链表编码方法,其特征在于,如果所述当前链表的第x个元素和所述参考链表的第j个元素相同,则将所述参考链表的第j个元素的删除比特掩码设置为0,否则将所述参考链表的第j个元素的删除比特掩码设置为1;如果所述参考链表的前m个元素包含了所述当前链表的所有元素,则将所述参考链表的剩余元素的删除比特掩码设置为1,其中,m小于或者等于M,所述参考链表有M个元素,所述删除比特掩码指明应删除的元素在所述参考链表中的位置。
9.根据权利要求7至8中任一项所述的链表编码方法,其特征在于,如果所述当前链表的前n个元素没有完全包含了所述参考链表的所有元素并且所述参考链表的前m个元素没有包含了所述当前链表的所有元素,则选择list 3编码方法对由所述当前链表得出的新链表的插入比特掩码或所述参考链表得出的新链表的删除比特掩码进行编码,其中,所述list 3编码方法是ROHC协议给出的4种压缩方案的删除插入方案。
10.一种用于实现权利要求1至4中任一项所述的链表编码方法的链表编码系统,其特征在于,包括:
链表比较装置,用于比较参考链表和当前链表;
链表编码装置,用于根据比较结果设置插入/删除比特掩码、选择编码方法,并利用所选择的编码方法对所述当前链表或所述参考链表的所述插入或删除比特掩码进行编码。
11.根据权利要求10所述的链表编码系统,其特征在于,所述链表编码装置包括:
第一设置单元,用于根据所述链表比较装置的比较结果,对所述当前链表的插入比特掩码进行设置;
第二设置单元,用于根据所述链表比较装置的比较结果,对所述参考链表的删除比特掩码进行设置;以及
链表编码单元,用于根据所述链表比较装置的比较结果选择编码方法,并利用所选择的编码方法对所述当前链表或所述参考链表的所述插入或删除比特掩码进行编码,其中
所述第一设置单元和所述第二设置单元能够被复用。
12.一种用于实现权利要求6至8中任一项所述的链表编码方法的链表编码系统,其特征在于,包括:
链表比较装置,用于比较参考链表和当前链表;
链表编码装置,用于根据比较结果设置插入/删除比特掩码、选择编码方法,并利用所选择的编码方法对所述当前链表或所述参考链表的所述插入或删除比特掩码进行编码。
13.根据权利要求12所述的链表编码系统,其特征在于,所述链表编码装置包括:
第一设置单元,用于根据所述链表比较装置的比较结果,对所述当前链表的插入比特掩码进行设置;
第二设置单元,用于根据所述链表比较装置的比较结果,对所述参考链表的删除比特掩码进行设置;以及
链表编码单元,用于根据所述链表比较装置的比较结果选择编码方法,并利用所选择的编码方法对所述当前链表或所述参考链表的所述插入或删除比特掩码进行编码,其中
所述第一设置单元和所述第二设置单元能够被复用。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200710142556A CN101110638B (zh) | 2007-08-29 | 2007-08-29 | 一种链表编码方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200710142556A CN101110638B (zh) | 2007-08-29 | 2007-08-29 | 一种链表编码方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101110638A CN101110638A (zh) | 2008-01-23 |
CN101110638B true CN101110638B (zh) | 2012-09-05 |
Family
ID=39042555
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200710142556A Expired - Fee Related CN101110638B (zh) | 2007-08-29 | 2007-08-29 | 一种链表编码方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101110638B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101969362B (zh) * | 2010-09-30 | 2014-09-10 | 中兴通讯股份有限公司 | 掩码生成方法、列表压缩编码方式的选择方法及相应装置 |
CN102681975B (zh) * | 2012-05-10 | 2013-06-19 | 江苏省电力公司电力科学研究院 | 一种基于链表的pqdif文件树形结构比较方法 |
CN103425642B (zh) * | 2012-05-14 | 2017-04-19 | 成都方程式电子有限公司 | 一种二维坐标定位的编码方法及装置 |
CN103517331B (zh) * | 2012-06-20 | 2018-07-24 | 中兴通讯股份有限公司 | 删除比特掩码的获得方法及装置 |
CN109150791B (zh) * | 2017-06-15 | 2022-03-22 | 中兴通讯股份有限公司 | 一种数据压缩方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5781536A (en) * | 1994-10-26 | 1998-07-14 | International Business Machines Corporation | Allocation method and apparatus for reusing network resources in a wireless communication system |
US6115388A (en) * | 1997-10-28 | 2000-09-05 | Motorola, Inc. | Establishment of multiple low-rate inbound signaling links in CDMA dispatch system |
CN1571320A (zh) * | 2003-07-22 | 2005-01-26 | 中兴通讯股份有限公司 | 一种共享集群数据链路的处理方法 |
-
2007
- 2007-08-29 CN CN200710142556A patent/CN101110638B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5781536A (en) * | 1994-10-26 | 1998-07-14 | International Business Machines Corporation | Allocation method and apparatus for reusing network resources in a wireless communication system |
US6115388A (en) * | 1997-10-28 | 2000-09-05 | Motorola, Inc. | Establishment of multiple low-rate inbound signaling links in CDMA dispatch system |
CN1571320A (zh) * | 2003-07-22 | 2005-01-26 | 中兴通讯股份有限公司 | 一种共享集群数据链路的处理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101110638A (zh) | 2008-01-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6950445B2 (en) | Communication system and method for shared context compression | |
CN101517553B (zh) | 用于对内容进行包化以经由网络传输的方法和设备 | |
CN101110638B (zh) | 一种链表编码方法及系统 | |
KR100927978B1 (ko) | 리치 미디어 콘텐츠의 프로그레시브 다운로딩 및스트리밍을 위해 iso 기반 미디어 파일 포맷으로 svg콘텐츠를 임베딩 하는 방법 | |
RU2424627C2 (ru) | Динамическое надежное уплотнение заголовка | |
CN102931997B (zh) | 消息压缩 | |
CN100471195C (zh) | 用于网络协议的报头压缩及解压方法和适于该方法的装置 | |
CN105812377A (zh) | 用于动态丰富媒体场景的传送机制 | |
EP1969856A2 (en) | Media container file management | |
CN101449550A (zh) | 在ad-hoc无线网络中的开销减小 | |
CN101523857A (zh) | 消息压缩方法和装置 | |
EP1438829B1 (de) | Verfahren und vorrichtung zur abbildung von netzwerk-headern auf mpls-header in bearer-architekturen | |
JP2011050069A (ja) | 移動無線通信ネットワークを運用する方法 | |
CN101690070B (zh) | 健壮头标压缩中采用窗基最低有效位解码的方法及装置 | |
JP2011050069A5 (zh) | ||
CN104967498B (zh) | 一种基于历史的卫星网络数据包压缩传输方法 | |
CN100379297C (zh) | 按照信令协议消息通信便于删除字典内容的设备和方法 | |
CN101252410B (zh) | 一种减少ip路由协议带宽占用量的方法 | |
CN101621472B (zh) | 一种报文传输方法和路由器 | |
US20080232589A1 (en) | Robust delivery of packet based secure voice | |
CN102006295A (zh) | 基于atm承载ip语音的数据压缩方法 | |
CN101707623A (zh) | 一种小内存系统中的文件发送方法及装置 | |
CN107615810A (zh) | 用于在线网络代码的包头压缩系统和方法 | |
CN106603193A (zh) | 一种基于媒体内容的fec机制 | |
CN1155199A (zh) | 电子邮件业务网关 |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120905 Termination date: 20170829 |