CN1316749C - 压缩和解压缩消息的通信设备及相关的通信系统和方法 - Google Patents
压缩和解压缩消息的通信设备及相关的通信系统和方法 Download PDFInfo
- Publication number
- CN1316749C CN1316749C CNB01822069XA CN01822069A CN1316749C CN 1316749 C CN1316749 C CN 1316749C CN B01822069X A CNB01822069X A CN B01822069XA CN 01822069 A CN01822069 A CN 01822069A CN 1316749 C CN1316749 C CN 1316749C
- Authority
- CN
- China
- Prior art keywords
- dictionary
- communication
- communication protocol
- symbol string
- string
- 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 - Lifetime
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
-
- 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
-
- 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/18—Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Communication Control (AREA)
- Computer And Data Communications (AREA)
Abstract
用于在带宽受限的通信链路(250,255,550)上提高通信协议的压缩效率的一种系统、方法和设备。本发明的一方面运用通信协议的结构和内容的知识来形成一个静态字典(220,420,430)或静态二进制代码树。作为结果,压缩效率可被大幅提高。本发明的另一方面提供一种组合的静态和动态字典(520,540)或二进制代码树来执行通信协议压缩。在本发明的一个方面,静态二进制代码树或静态字典(220,420,430)是通过研究在它们预期的使用环境中的数据协议流而构建的。
Description
相关申请的交叉参考
本专利申请涉及并要求以下专利申请的优先权:2000年11月16日提交的美国专利申请No.60/249,923(代理人号No.34645-522USPL);与此同时提交的美国专利申请No.09/814407,标题为“使用请求-答复通信模式用于数据压缩的通信系统和方法(Communication System and Method Utilizing Request-ReplyCommunication Patterns for Data Compression)”(代理人号No.34645-523USPT);与此同时提交的美国专利申请No.09/814268,标题为“使用临时压缩表格进行通信的系统和方法(System andMethod For Communicating With Temporary Compression Tables)”(代理人号No.34645-524USPT);以及与此同时提交的美国专利申请No.09/0814434,标题为“共享上下文压缩的通信系统和方法(Communication System and Method For Shared ContextCompression)”(代理人号No.34645-525USPT)。
技术领域
本发明涉及在使用数据协议(如互联网协议)的通信中的消息压缩。
背景技术
近年来被公众广泛使用的两种通信技术是蜂窝电话和互联网。蜂窝电话提供的某些好处是具有自由的移动性和可访问性,不论用户的位置如何都可以获得良好的服务质量。到最近为止,蜂窝电话提供的主要服务是话音。相对地,互联网在提供用于各种用途的灵活性的同时,着重于固定连接和大型终端。然而,某些服务(例如互联网电话)的所感受的质量已被普遍认为很低。
已经开发出多个互联网协议(IP),以提供给在互联网和其它网络上的通信。这种互联网协议的一个例子是会话发起协议(SIP)。SIP是一种应用层协议,用于建立、修改和终止多媒体会话或呼叫。这些会话可包含互联网多媒体会议、互联网电话以及类似应用。如本领域技术人员所知,SIP可被用在传输控制协议(TCP)或用户数据报协议(UDP)上。
互联网协议的另一个例子是实时流协议(RTSP),它是一个应用级协议,用于控制具有实时属性的数据(如音频和视频数据)的传递,RTSP也可与UDP、TCP或其它协议一同作为传输协议使用。互联网协议还有另一个例子是会话描述协议(SDP),它用于通告多媒体会议和通信会议地址以及会议工具特定的信息。SDP还用于一般的实时多媒体会话描述的目的。SDP被携带于SIP和RTSP消息的消息主体中。SIP,RTSP和SDP都是基于ASCII文本的,使用UTF-8编码中的ISO 10646字符集。
由于新技术的发展,互联网和蜂窝电话技术开始融合。未来的蜂窝设备将包含互联网协议(IP)堆栈并支持IP上的话音和网页浏览、电子邮件以及其它希望的服务。在一个“全IP(all-IP)”或“自始至终IP(IP all the way)”的实施中,互联网协议在通信系统中被端对端地使用。在一个蜂窝系统中,这可能在蜂窝链路和无线电跳越(hop)上包含IP。互联网协议可用于所有类型的业务,包括用户数据(如语音或流数据)和控制数据(如SIP或RTSP数据)。各个技术的这种融合同时提供了IP的灵活性优点和蜂窝技术的移动性优点。
如本技术领域所知的,SIP,RTSP和SDP协议共享相似的特征,所述特征已经蕴含在它们对蜂窝无线电接入的使用中。这些相似性之一是协议通用的请求和答复性质。通常,当发送者发送一个请求时,该发送者保持空闲,直到接收到一个响应。如上所述,另一个相似性是SIP、RTSP和SDP均基于ASCII文本,使用UTF-8编码的ISO 10646字符集。作为结果,信息通常使用比以二进制表示相同信息时所需的更多的比特数来表示。这些协议共享的另一个特征是:它们通常在尺寸上很大,以便提供必要的信息给会话的参与者。
IP的一个缺点是由IP协议组引入的相对较大的开销,这是因为报头和基于文本的信令协议较大的缘故。在蜂窝系统中重要的一点是:以有效的方式使用稀有的无线电资源。在蜂窝系统中,在每个小区中支持足够数量的用户是很重要的,否则实施和运行成本将高不可攀。频谱,进而带宽是蜂窝链路中昂贵的资源,应该有效地使用它们以使系统资源最大化。
在UMTS和EDGE移动通信系统以及第二代系统(如GSM和IS-95)的未来版中,很多信令业务将被使用互联网协议执行。然而如讨论的,大多数互联网协议被开发用于固定的、相对宽带的连接。当访问发生在窄带蜂窝链路上,则需要对协议消息进行压缩来满足服务质量的要求,比如是建立时间和延迟的要求。通常,在整个通信路径上的压缩是不需要的。然而,在无线电链路上(例如从无线用户终端到核心网络)的业务的压缩是非常需要的。
例如Lempel-Ziv和Huffman编码的标准二进制压缩方法在某种意义上非常通用,因为它们不使用任何待压缩数据的结构的明确知识。在互联网数据协议(如SIP和RTSP)上使用这种方法使通信消息的有效压缩出现困难。今天可用的标准二进制压缩方法通常被设计成用于大的数据文件。作为结果,将这种方法用于小消息或具有较少重复串的消息的压缩通常会使压缩性能被认为很差。事实上,如果待压缩的消息很小和/或包含很少的重复串,那么使用一些标准压缩方法就会导致已压缩的分组实际大于原始未压缩的分组,由此会获得相反的效果。
实施二进制压缩方案的一个方法是使用基于字典的压缩技术。通常,字典压缩方案使用已知为字典的数据结构来存储在输入数据中找到的符号串。此方案读入输入数据并寻找与字典中的符号串相匹配的符号串。如果一个串匹配被找到,则有一个指向该串在字典中的位置的指针或索引被输出,并代替该串被发送。如果索引小于它所替换的串,则将进行压缩。一个解压缩器包含一个压缩器字典的表示,以便使原始串可从接收的索引中再现。字典压缩方法的一个例子是Lempel-Ziv(LZ77)算法。此算法通过对先前在该文件中已出现的字符串,用对该先前出现的引用来替换该字符串而操作。当然,本发明在常有重复串的文件中是尤其成功的。
字典压缩方案通常可以被分类为静态或动态。静态字典是一种预定义的字典,它是在压缩发生之前构建的,并在压缩过程期间不发生改变。静态字典通常在使用前存储在压缩器和解压缩器中,或在压缩操作开始之前被发送并存储于存储器中。
另一方面,动态或自适应字典方案,允许字典的内容在压缩发生时改变。通常,动态字典方案开始于没有字典或有一个默认、预定义的字典,并在压缩过程期间向字典加入新的串。如果输入数据的一个串在字典中没有找到,则将该串加入字典的一个新位置中,并分配一个新索引值。新串被发送到解压缩器,以便可将其加入解压缩器的字典。新串的位置不必被发送,因为解压缩器能识别已经被接收的一个新串,并将该串加到解压缩器的字典中,加入位置与在压缩器字典中的加入位置相同。以这种方式,可以利用已更新的字典来压缩将来出现在输入数据中的该串。作为结果,当压缩发生时,压缩器和解压缩器处的字典被动态地构建和更新。
字典压缩的一个方法是已知为滑动窗口压缩的类型。根据这种方法,在压缩期间压缩器使一个固定尺寸的滑动窗口从左向右移动通过文件。压缩算法在该窗口左边的文件中搜索与该窗口中的当前串的匹配。如果找到一个匹配,则用文件中该匹配位置的引用和该匹配长度的引用一起来替换该串。可替换地,该窗口可以包含一个文本窗口,该文本窗口包含一大块最近解码的文本和一个先行缓冲器(look-ahead buffer)。在这种版本中,先行缓冲器被用于搜索文本窗口中的匹配。如果找到一个匹配,则将该串替换为文本窗口中匹配位置的引用和匹配长度的引用。这一信息由解压缩器使用,该解压缩器维护相同的字典以便再现原始信息。
数据压缩的另一个方法是使用二进制代码树。在二进制代码树中,待压缩的符号或串在一种树结构中以可变数量的比特表示,使每个符号都可被唯一地解码。通常,在输入数据中出现几率高的符号与那些出现几率低的符号相比由更少数量的比特来代表。在二进制代码树的构建中,个体符号被布置为连接到二进制代码树的叶节点的串。出现几率高的符号由树的较短枝表示,结果是只需要较少数量的比特来表示它们。相反,出现几率低的符号由树的较长枝表示,则需要较多数量的表示比特。当输入数据的一个串匹配于压缩器的二进制代码树中的一个符号时,该符号的代码代替符号本身被发送,从而形成数据的压缩。接收该代码的解压缩器使用一个相同的二进制代码树来重建原始符号或串。
与字典压缩相似,二进制代码树可以是静态或动态的。在静态二进制代码树方案中,一个预定义的二进制代码树在压缩之前被构建,并在压缩过程中不改变。与静态字典相同,静态二进制代码树可以预先存入压缩器和解压缩器中,或在压缩开始之前被发送并存储下来。
动态或自适应二进制代码树允许在压缩过程期间加入新的符号或串到代码树。根据使用的二进制代码树压缩类型,可以使用不同的方法来更新树的节点,以允许加入新符号并对代码树进行重新调整。在解压缩器中的二进制代码树必须根据与压缩器中的二进制代码树相同的规则也进行更新。
二进制代码树压缩方案的一个例子是Huffman编码压缩方案。Huffman压缩是一种通用的压缩方法,主要用于压缩ASCII文件。在这些文件中频繁出现的字符被用更短的代码(即ASCII代码使用的小于8比特的代码)替换。Huffman压缩在使用相对较少字符的文件中是可以成功的。
使用上述二进制压缩算法的成功压缩的一个通用准则是待压缩的文件是相当大。用于Huffman压缩的代码相比于正被压缩的文件不能过大。对于标准的Lempel-Ziv压缩,待压缩的文件必须足够大以致包含很多重复的串来获得有效压缩。由上述协议产生的消息多数为几百字节,没有大到足以基于逐个消息地使用上述的算法来有效地压缩消息。
EP0933876 A1描述了一种用于分组传输的数据压缩方法,其中在通信会话的启动期间,将一个固定的压缩字典从第一终端发送到第二终端,该第一终端根据所传送的固定字典来压缩数据,该第二终端根据所接收的固定字典来展开压缩数据。
因此,在本领域存在一种需求,希望提高利用通信协议发送的消息的压缩效率和性能,以使它们可用于带宽有限的通信链路和信道。
发明内容
本发明指导的是用于在带宽有限的通信链路中提高通信协议的压缩效率的一种方法、系统和设备。本发明的一方面使用通信协议的结构和内容的知识来形成一个静态字典或静态二进制代码树。作为结果,压缩效率可被大幅提高。本发明的另一方面提供一种组合的静态和动态字典或二进制代码树来执行通信协议压缩。在本发明的一个方面,静态二进制代码树或静态字典是通过研究在它们预期的使用环境中的数据协议流而构建的。
按照本发明的第一方面,提供了一种用于对使用通信协议传送的消息进行压缩的通信设备,所述通信设备的特征在于:一个其中包含至少一个符号串的字典,所述至少一个符号串对应于给定通信协议的至少一个符号,其中所述字典中的至少一个入口是基于所述给定通信协议的统计数据流的;和一个与所述字典通信的压缩器,所述压缩器使用所述字典来压缩依照所述给定通信协议的第一通信消息中的所述至少一个符号串。
按照本发明的第二方面,提供了一种用于对使用通信协议接收的消息进行解压缩的通信设备,所述通信设备的特征在于:一个其中包含至少一个符号串的字典,所述至少一个符号串对应于给定通信协议的至少一个符号,其中所述字典中的至少一个入口是基于所述给定通信协议的统计数据流的;和一个与所述字典通信的解压缩器,所述解压缩器使用所述字典来解压缩依照所述给定通信协议的第一通信消息中的所述至少一个符号串。
按照本发明的第三方面,提供了一种便于压缩消息通信的通信系统,所述通信系统的特征在于:一个第一通信设备,用于发送第一通信消息,所述第一通信设备包含:一个其中包含至少一个符号串的第一字典,所述至少一个符号串对应于给定通信协议的至少一个符号,其中所述第一字典中的至少一个入口是基于所述给定通信协议的统计数据流的;和一个与所述第一字典通信的第一压缩器,所述第一压缩器使用所述第一字典来压缩依照所述给定通信协议的第一通信消息中的一个给定符号串;和一个与所述第一通信设备通信的第二通信设备,用于接收所述第一通信消息,所述第二通信设备包含:一个其中包含至少一个符号串的第二字典,所述至少一个符号串对应于所述给定通信协议的所述至少一个符号;和一个与所述第二字典通信的第一解压缩器,所述第一解压缩器使用所述第二字典来解压缩依照所述给定通信协议的所述第一通信消息中的所述给定符号串,所述第一字典与所述第二字典基本上等同。
按照本发明的第四方面,提供了一种便于使用通信协议进行压缩消息通信的方法,所述方法的特征在于以下步骤:将第一通信消息中的至少一个符号串匹配到第一字典中的至少一个匹配的符号串,其中所述第一字典中的至少一个入口是基于所述通信协议的统计数据流的;传送指示所述至少一个匹配符号串在所述第一字典中位置的引用信息;接收指示所述至少一个匹配符号串在所述第一字典中位置的所述引用信息;将所述接收的引用信息与第二字典中的至少一个相应符号串关联起来,所述第二字典中的所述至少一个相应符号串基本等于所述第一字典中的所述至少一个匹配符号串;和用所述第二字典中的所述至少一个相应符号串重建所述第一通信消息。
按照本发明的第五方面,提供了一种便于使用通信协议进行压缩消息通信的方法,所述方法的特征在于以下步骤:在一个字典中搜索对应于所述通信协议的符号串,所述符号串被包含在一个通信消息中,其中所述字典中的至少一个入口是基于所述通信协议的统计数据流的;一肯定地确认所述字典包含所述符号串,就从所述字典检索与所述符号串相关联的压缩符号串;在所述通信消息中,用所述压缩符号串替换所述的符号串;和使用所述通信协议传送所述通信消息。
按照本发明的第六方面,提供了一种便于使用通信协议进行压缩消息通信的方法,所述方法的特征在于以下步骤:接收一个基于所述通信协议的通信消息,所述通信消息包含一个压缩符号串;从一字典中检索与所述压缩符号串相关联的一个未压缩符号串,所述未压缩符号串对应于所述通信协议,其中所述字典中的至少一个入口是基于所述通信协议的统计数据流的;和在所述通信消息中,用所述未压缩符号串替换所述压缩符号串。
附图说明
当结合附图参考下面的详细描述时,可获得对本发明的系统、方法和设备的更完整的理解,其中:
图1说明了根据本发明进行通信的一个示例性系统;
图2说明了根据本发明的一个示例性实施例;
图3说明了根据本发明的用于压缩和解压缩的一个示例性数据分组;
图4说明了根据本发明的另一个示例性实施例;和
图5说明了根据本发明的又一个示例性实施例。
具体实施方式
下面将参照附图更完整地描述本发明,在附图中显示了本发明的优选实施例。然而,本发明能够以很多不同的形式来实施,不应被理解为限于这里给出的实施例;相反,提供这些实施例是为了使公开更彻底和完整,并完全地将本发明的范围传达给本领域的技术人员。
图1说明了根据本发明进行通信的一个示例性系统。一个移动终端110利用通信协议经过通信链路115(例如一条无线链路)与基站120通信。基站120通过链路125与一个固定网络130(如PSTN)通信。固定网络130通过链路135与基站140通信。基站140使用通信链路145与终端150通信,终端150可以是一个移动终端或一个固定终端。根据本发明的一个实施例,移动终端110使用压缩数据经过通信链路115与基站120通信。类似地,基站140可使用压缩数据与终端150通信。应该理解,图1系统中的部分,如移动终端110和基站140,可以包含一个存储器160和处理器155,用于存储和执行软件指令,这些软件指令实现压缩和解压缩算法。还应该理解,本发明可用于其它通信系统,例如蜂窝网络,该网络在其中需要压缩的链路上使用通信协议。
图2说明了本发明的一个示例性实施例。在此实施例中,一个设备A(210)使用通信链路(250,255)与设备B(230)通信,在该通信链路(250,255)中使用了数据压缩。每个设备包含一个数据压缩器(215,245)和一个数据解压缩器(225,235)。根据本发明的一个示例性实施例,使用了一种字典压缩方法。在此实施例中,每个设备中的静态字典220被用于压缩和解压缩那些将要使用数据协议在通信链路上进行通信的数据。应该理解,压缩器和/或解压缩器可以使用一个处理器和其中存有压缩/解压缩算法指令的相关存储器来实现。还应该理解,通信设备可包含多个通信装置。例如,设备A可包含一个移动终端110,设备B可包含一个基站140。
根据本发明的一个实施例,设备A(210)和设备B(230)使用相同的静态字典220。静态字典220可由通信协议使用的协议字段名和公用符号串来构成,所述通信协议是在通信链路(250,255)上将被用于通信的协议,例如互联网协议。应该理解,通信设备可包含多个通信装置。例如,设备A可包含一个移动终端,设备B可包含一个基站。
可用于形成字典的设备的一个例子包含媒体类型的信息,例如音频、视频和图象信息。可用于形成字典的字典设备的其它例子包含使用的协议令牌(token)方法,例如GET,HEAD和POST或在特定协议中使用的报头字段名,例如连接(Connection)、日期(Date)和接受(Accept)。在此示例性实施例中,只有在字典中可以找到的一部分数据分组被压缩,而剩下的数据分组可以不经过压缩或使用本领域技术人员已知的替换方法压缩后进行发送。
图3说明了根据本发明的用于压缩和解压缩的一种示例性数据分组310。根据此实施例,数据分组310代表根据给定数据协议将被发送的信息。串A(320)和串C(340)代表在静态字典中没有找到的数据分组310的部分。串B(330)和串D(350)代表在静态字典中找到的数据分组310的部分。代替发送串B(330)和串D(350),只需要为数据分组310的串B和串D部分发送索引370和索引380,其中索引370指向串B在静态字典中的位置,索引380指向串D在静态字典中的位置。然后可将串A(320)和串C(340)作为未压缩数据加入索引370和索引380以形成压缩的数据分组360。作为替换,串A(320)和串C(340)可以使用本领域技术人员已知的多种压缩方法中的任一个方法进行压缩。然后将压缩数据分组360发送给接收设备。
在接收设备接收到压缩数据分组360之后,索引370和索引380被匹配到接收设备的相同静态字典中的相应入口,以形成重建的串B(330’)和串D(350’)。接收到的串A(320’)和串C(340’)与重建的串B(330’)和串D(350’)相组合以形成重建的原始数据分组(310’)。作为替换,如果串A(320)和串C(340)在发送之前被压缩,则将它们在与重建的串B(330’)和串D(350’)相组合以形成重建的原始数据分组(310’)之前进行解压缩。
图4说明了本发明的另一个示例性实施例。由于使用双向通信进行发送的数据的性质和格式通常对于每个通信方向是不同的,因此能为每个通信方向单独定制的压缩方案是有益的。在此实施例中,设备A(410)包含一个具有相关静态字典A(420)的数据压缩器415,和一个具有相关静态字典B(430)的数据解压缩器425。设备B(440)包含一个具有相关静态字典A(420)的数据解压缩器445,和一个具有相关静态字典B(430)的数据压缩器455。
在操作期间,设备A(410)将使用数据压缩器415压缩的消息或数据经过通信链路460发送到设备B(440),然后该消息或数据通过解压缩器445使用静态字典A(420)解压缩。用这种方法,设备A(410)的压缩器415和设备B(440)的解压缩器445使用相同的静态字典A(420)来进行压缩和解压缩。类似地,设备B(440)将使用数据压缩器455压缩的消息或数据经过通信链路465发送到设备A(410),然后该消息或数据被使用解压缩器425解压缩。设备B(440)的压缩器455和设备A(410)的解压缩器425使用相同的静态字典B(430)来进行压缩和解压缩。本发明的这一示例性实施例允许对通信的每个方向进行优化的静态字典设计。
图5说明了根据本发明的又一个示例性实施例,其中使用了一个组合的静态和动态字典。在此实施例中,使用一个初始的静态字典作为每个通信设备的压缩器和解压缩器的开始字典。只要通信一开始,该字典就作为一个动态字典来操作。在此实施例中,设备A(510)使用第一通信链路550与设备B(530)通信,其中设备A(510)包含具有相关静态/动态字典520的压缩器515,而设备B(530)包含具有相关静态/动态字典540的解压缩器535。
在设备A(510)中,将被压缩并发送给设备B(530)的消息被对照字典520进行测试。如果该消息的一部分匹配于一个字典入口,则该部分由其相应的索引替换。接着将不匹配于字典520中入口的消息部分或者是从该消息部分所选择的字段加入字典520,以用于将来的压缩。然后在第一通信链路550上将该索引和未压缩部分发送给设备B(530)。
之后,设备B(530)对接收到的消息解码并分隔成索引信息和未压缩部分。设备B(530)中的解压缩器535通过将该索引匹配到字典540中的入口,该词条接着被增加到该未压缩数据来形成原始消息,从而重现该压缩信息。然后将加入设备A(510)的字典520中的消息部分加入到设备B(530)的字典540中,以使每个设备维护匹配的字典。
此后从设备A(510)发送给设备B(530)的消息使用更新的字典520进行压缩,并由设备B(530)使用更新的字典540进行解压缩。作为结果,设备A(520)的字典520和设备B的字典540被动态更新,从而允许压缩方法适应于待发送的数据,这将使压缩效率不断地提高。
另外,设备A(510)可包含解压缩器525,设备B(530)可包含压缩器545,以便允许设备B(530)使用第二通信链路555向设备A(510)传送压缩的消息。这种配置提供了双向压缩通信的能力。设备A(510)的解压缩器525可以使用与压缩器515的相同的静态/动态字典520。类似地,设备B(530)的压缩器545可以使用与解压缩器535的相同的静态/动态字典540。作为替换,每对压缩器/解压缩器可以使用单独的静态/动态字典,并允许使用能针对各自通信方向进行优化的静态/动态字典。
在包含组合的静态/动态字典的本发明另一个示例性实施例中,可以使用滑动窗口字典压缩方法。与上一实施例一样,使用一个初始的静态字典作为压缩器和解压缩器的开始字典,只要通信一开始,该字典就作为动态字典来操作。在第一步骤中,待压缩的消息被添加到包含压缩器的第一设备的字典中。在下一步骤中,根据滑动窗口压缩方法(如Lempel-Ziv)对包含所加消息的字典进行处理以产生压缩的消息。在此步骤中,字典可能与附加的消息一起被压缩。
在另一步骤中,对应于静态/动态字典的一部分压缩消息被删除,并被替换为指向字典中相应位置的一个引用或索引。在下一步骤中,剩余的压缩消息与引用信息一起被发送到第二设备中的解压缩器。
在另一步骤中,将接收到的压缩消息添加到第二设备中的静态/动态字典的压缩版本,以使该解压缩器具有与该压缩器相同的字典。在下一步骤中,该结果由相应的解压缩方法(如Lempel-Ziv)进行处理,以产生该原始消息。
在上述方法的一种替换实施例中,不使用该压缩方法来压缩字典。在此实施例中,在操作之前,可将字典预先载入执行压缩算法使用的缓冲器和搜索树中。当待压缩的消息到达时,在该消息被载入的缓冲器中的位置开始实际压缩。由此,不压缩字典,只压缩消息本身。根据此实施例,该解压缩器的相应字典也可以是未压缩的形式。
本发明的一个重要方面是静态字典的构建。根据本发明构建静态字典的一个示例性方法包含研究数据分组流,以收集其中需要压缩的通信链路上的所需通信协议的统计数据。
通过使用该统计数据,就可以应用一个给定通信协议中最频繁使用的协议字段名和其它公共串来构建静态字典,以便为待发送的数据或消息提供最优的压缩。然后,可以在使用之前,构建静态字典并将其存储在第一通信设备和第二通信设备处。这种在使用之前的存储特别有利于用在短通信会话中,使得降低了在通信会话开始时可能产生的开销。作为替换,可以在压缩发生之前,在通信会话开始时将静态字典从压缩器传送到解压缩器。
作为一种字典压缩方案的替换,可以使用一种静态二进制代码树的方案。静态二进制代码树可以使用统计方法来构建,例如研究通信链路上所需数据协议的数据分组的流。使用这一统计信息,可将静态二进制代码树构建成这样:使数据协议中出现几率高的协议字段名和其它公共串比那些出现几率低的协议字段名和其它公共串用更少数量的比特来表示。作为结果,提高了压缩效率。可用于实施本发明的二进制代码树压缩方案的一个这样的例子是Huffman编码方法。
在本发明的另一示例性实施例中,可以将静态二进制代码树与静态字典组合使用。在此示例性实施例中,使用所需的方法来首先构建静态字典,所述方法是例如根据本发明的上述方法的一种。然后,可以通过在使用静态字典的情况下研究用于所需数据协议的数据分组的流并依此构建静态二进制代码树,从而来完成静态二进制代码树的构建。静态字典压缩与静态二进制代码树压缩(如Huffman编码)的组合使用可用于提高被发送数据的压缩效率。
尽管本发明的方法、系统和设备的各种实施例已经在附图中进行了说明,并在前面的具体描述中进行了描述,但应该明白,本发明不限于所公开的实施例,而是可以在不偏离如前面给出和后面权利要求限定的本发明范围的情况下,进行多次重新配置、修改和替换。
Claims (38)
1.一种用于对使用通信协议传送的消息进行压缩的通信设备(210),所述通信设备的特征在于:
一个其中包含至少一个符号串的字典(220),所述至少一个符号串对应于给定通信协议的至少一个符号,其中所述字典中的至少一个入口是基于所述给定通信协议的统计数据流的;和
一个与所述字典通信的压缩器(215),所述压缩器使用所述字典来压缩依照所述给定通信协议的第一通信消息中的所述至少一个符号串。
2.根据权利要求1所述的通信设备,所述通信设备还包含:
一个与所述字典通信的解压缩器(225),所述解压缩器使用所述字典来解压缩依照所述给定通信协议的第二通信消息中的至少一个符号串。
3.根据权利要求1所述的通信设备,所述通信设备还包含:
一个与所述压缩器通信的二进制代码树,所述压缩器使用所述二进制代码树来压缩依照所述给定通信协议的所述第一通信消息中的所述至少一个符号串。
4.根据权利要求3所述的通信设备,其中所述二进制代码树包含Huffman二进制代码树。
5.根据权利要求3所述的通信设备,其中所述二进制代码树包含静态二进制代码树。
6.根据权利要求1所述的通信设备,其中所述字典包含静态字典。
7.根据权利要求1所述的通信设备,其中所述给定通信协议的所述至少一个符号包含所述给定通信协议的至少一个字段名。
8.根据权利要求1所述的通信设备,所述通信设备还包含:
一个与所述压缩器通信的动态字典(520),所述动态字典中包含至少一个第二符号串,所述至少一个第二符号串对应于给定通信协议的至少一个第二符号,所述压缩器使用所述动态字典和所述字典两者中的至少一个字典来压缩依照所述给定通信协议的随后的通信消息中的至少一个符号串。
9.根据权利要求8所述的通信设备,其中所述压缩器使用一滑动窗口字典压缩方法。
10.一种用于对使用通信协议接收的消息进行解压缩的通信设备(230),所述通信设备的特征在于:
一个其中包含至少一个符号串的字典(220),所述至少一个符号串对应于给定通信协议的至少一个符号,其中所述字典中的至少一个入口是基于所述给定通信协议的统计数据流的;和
一个与所述字典通信的解压缩器(235),所述解压缩器使用所述字典来解压缩依照所述给定通信协议的第一通信消息中的所述至少一个符号串。
11.根据权利要求10所述的通信设备,所述通信设备还包含:
一个与所述字典(220)通信的压缩器(245),所述压缩器使用所述字典来压缩依照所述给定通信协议的第二通信消息中的至少一个符号串。
12.根据权利要求10所述的通信设备,所述通信设备还包含:
一个与所述解压缩器通信的二进制代码树,所述解压缩器使用所述二进制代码树来解压缩依照所述给定通信协议的所述第一通信消息中的所述至少一个符号串。
13.根据权利要求12所述的通信设备,其中所述二进制代码树包含静态二进制代码树。
14.根据权利要求12所述的通信设备,其中所述二进制代码树包含Huffman二进制代码树。
15.根据权利要求10所述的通信设备,其中所述字典包含静态字典。
16.根据权利要求10所述的通信设备,其中所述给定通信协议的所述至少一个符号包含所述给定通信协议的至少一个字段名。
17.根据权利要求10所述的通信设备,所述通信设备还包含:
一个与所述解压缩器通信的动态字典(520),所述动态字典中包含至少一个第二符号串,所述至少一个第二符号串对应于给定通信协议的至少一个第二符号,所述压缩器使用所述动态字典和所述字典两者中的至少一个字典来解压缩依照所述给定通信协议的随后的通信消息中的至少一个符号串。
18.根据权利要求17所述的通信设备,其中所述解压缩器使用一滑动窗口字典解压缩方法。
19.一种便于压缩消息通信的通信系统,所述通信系统的特征在于:
一个第一通信设备(210,410),用于发送第一通信消息,所述第一通信设备包含:
一个其中包含至少一个符号串的第一字典(220,420),所述至少一个符号串对应于给定通信协议的至少一个符号,其中所述第一字典中的至少一个入口是基于所述给定通信协议的统计数据流的;和
一个与所述第一字典通信的第一压缩器(215,415),所述第一压缩器使用所述第一字典来压缩依照所述给定通信协议的第一通信消息中的一个给定符号串;和
一个与所述第一通信设备通信的第二通信设备(230,440),用于接收所述第一通信消息,所述第二通信设备包含:
一个其中包含至少一个符号串的第二字典(220,420),所述至少一个符号串对应于所述给定通信协议的所述至少一个符号;和
一个与所述第二字典通信的第一解压缩器(235,445),所述第一解压缩器使用所述第二字典来解压缩依照所述给定通信协议的所述第一通信消息中的所述给定符号串,所述第一字典与所述第二字典基本上等同。
20.根据权利要求21所述的通信系统,其中所述第一通信设备还包含:
一个与所述第一字典(220)通信的第二解压缩器(225),所述第二解压缩器使用所述第一字典来解压缩依照所述给定通信协议的第二通信消息中的一个给定的符号串,所述第二通信消息是从所述第二通信设备(230)接收的。
21.根据权利要求20所述的通信系统,其中所述第二通信设备还包含:
一个与所述第二字典(220)通信的第二压缩器(245),所述第二压缩器使用所述第二字典来压缩依照所述给定通信协议的所述第二通信消息中的一个给定的符号串。
22.根据权利要求19所述的通信系统,其中所述第一通信设备(410)还包含:
一个其中包含至少一个符号串的第三字典(430),所述至少一个符号串对应于给定通信协议的至少一个符号;和
一个与所述第三字典通信的第二解压缩器(425),所述第二解压缩器使用所述第三字典来解压缩依照所述给定通信协议的第二通信消息中的一个给定符号串,所述第二通信消息是从所述第二通信设备(440)接收的。
23.根据权利要求22所述的通信系统,所述第二通信设备(440)还包含:
一个其中包含至少一个符号串的第四字典(430),所述至少一个符号串对应于给定通信协议的至少一个符号;和
一个与所述第四字典通信的第二压缩器(455),所述第二压缩器使用所述第四字典来压缩依照所述给定通信协议的所述第二通信消息中的所述给定符号串,所述第三字典与所述第四字典基本上等同。
24.根据权利要求19所述的通信系统,其中所述给定通信协议的所述至少一个符号包含所述给定通信协议的至少一个字段名。
25.根据权利要求22所述的通信系统,其中所述第三字典中的至少一个入口是基于所述给定通信协议的统计数据流的。
26.根据权利要求19所述的通信系统,其中所述第一字典包含静态字典。
27.根据权利要求19所述的通信系统,其中所述第二字典包含静态字典。
28.根据权利要求22所述的通信系统,其中所述第三字典包含静态字典。
29.根据权利要求23所述的通信系统,其中所述第四字典包含静态字典。
30.一种便于使用通信协议进行压缩消息通信的方法,所述方法的特征在于以下步骤:
将第一通信消息中的至少一个符号串匹配到第一字典中的至少一个匹配的符号串,其中所述第一字典中的至少一个入口是基于所述通信协议的统计数据流的;
传送指示所述至少一个匹配符号串在所述第一字典中位置的引用信息;
接收指示所述至少一个匹配符号串在所述第一字典中位置的所述引用信息;
将所述接收的引用信息与第二字典中的至少一个相应符号串关联起来,所述第二字典中的所述至少一个相应符号串基本等于所述第一字典中的所述至少一个匹配符号串;和
用所述第二字典中的所述至少一个相应符号串重建所述第一通信消息。
31.根据权利要求30所述的方法,其中所述第一字典和所述第二字典的至少一个包含静态字典。
32.根据权利要求30所述的方法,其中所述第一字典和所述第二字典的至少一个包含动态字典。
33.根据权利要求32所述的方法,其中所述字典包含静态字典。
34.一种便于使用通信协议进行压缩消息通信的方法,所述方法的特征在于以下步骤:
在一个字典中搜索对应于所述通信协议的符号串,所述符号串被包含在一个通信消息中,其中所述字典中的至少一个入口是基于所述通信协议的统计数据流的;
一肯定地确认所述字典包含所述符号串,就从所述字典检索与所述符号串相关联的压缩符号串;
在所述通信消息中,用所述压缩符号串替换所述的符号串;和
使用所述通信协议传送所述通信消息。
35.根据权利要求34所述的方法,其中所述字典包含静态字典。
36.根据权利要求34所述的方法,其中所述字典包含动态字典。
37.一种便于使用通信协议进行压缩消息通信的方法,所述方法的特征在于以下步骤:
接收一个基于所述通信协议的通信消息,所述通信消息包含一个压缩符号串;
从一字典中检索与所述压缩符号串相关联的一个未压缩符号串,所述未压缩符号串对应于所述通信协议,其中所述字典中的至少一个入口是基于所述通信协议的统计数据流的;和
在所述通信消息中,用所述未压缩符号串替换所述压缩符号串。
38.根据权利要求37所述的方法,其中所述字典包含动态字典。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US24992300P | 2000-11-16 | 2000-11-16 | |
US60/249,923 | 2000-11-16 | ||
US09/814,406 US6985965B2 (en) | 2000-11-16 | 2001-03-21 | Static information knowledge used with binary compression methods |
US09/814,406 | 2001-03-21 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1486536A CN1486536A (zh) | 2004-03-31 |
CN1316749C true CN1316749C (zh) | 2007-05-16 |
Family
ID=26940466
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB01822069XA Expired - Lifetime CN1316749C (zh) | 2000-11-16 | 2001-11-15 | 压缩和解压缩消息的通信设备及相关的通信系统和方法 |
Country Status (7)
Country | Link |
---|---|
EP (1) | EP1334557A2 (zh) |
JP (1) | JP3958211B2 (zh) |
CN (1) | CN1316749C (zh) |
AU (1) | AU2002215287A1 (zh) |
CA (1) | CA2428788C (zh) |
TW (1) | TW543311B (zh) |
WO (1) | WO2002041497A2 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105659503A (zh) * | 2013-10-24 | 2016-06-08 | 高通股份有限公司 | 用于提供多用户节电码本优化的系统和方法 |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8176186B2 (en) | 2002-10-30 | 2012-05-08 | Riverbed Technology, Inc. | Transaction accelerator for client-server communications systems |
US7120666B2 (en) * | 2002-10-30 | 2006-10-10 | Riverbed Technology, Inc. | Transaction accelerator for client-server communication systems |
JP3863130B2 (ja) * | 2003-08-18 | 2006-12-27 | 株式会社コナミデジタルエンタテインメント | 通信システム、サービス方法、端末方法、ならびに、プログラム |
WO2008125444A2 (en) | 2007-04-13 | 2008-10-23 | Thomson Licensing | Communication protocol, developing and network operating methods therefore |
TWI386069B (zh) * | 2007-08-10 | 2013-02-11 | Univ Nat Cheng Kung | 資料集編碼系統及方法以及程式產品 |
JP4930305B2 (ja) * | 2007-09-20 | 2012-05-16 | 日本電気株式会社 | データ通信システム、端末、カタログサーバ、データ通信方法、および通信プログラム |
JP2010258787A (ja) * | 2009-04-24 | 2010-11-11 | Mitsubishi Electric Corp | シグナリング圧縮装置、シグナリング伸長装置およびシグナリング圧縮伸長装置 |
WO2013079999A1 (en) * | 2011-12-02 | 2013-06-06 | Canon Kabushiki Kaisha | Methods and devices for encoding and decoding messages |
CN102857230B (zh) * | 2012-09-21 | 2015-05-20 | 中国科学院武汉物理与数学研究所 | 一种基于无损压缩数据传输技术的高速程序控制器 |
US9166620B2 (en) * | 2012-09-26 | 2015-10-20 | Qualcomm Incorporated | Method and apparatus for a memory based packet compression encoding |
CN104283777B (zh) * | 2013-07-03 | 2018-08-21 | 华为技术有限公司 | 报文压缩的方法和装置 |
JP6511836B2 (ja) | 2015-01-30 | 2019-05-15 | 富士通株式会社 | 圧縮プログラム、圧縮方法、圧縮装置および伸長プログラム |
JP6742692B2 (ja) | 2015-01-30 | 2020-08-19 | 富士通株式会社 | 符号化プログラムおよび伸長プログラム |
JP6641857B2 (ja) | 2015-10-05 | 2020-02-05 | 富士通株式会社 | 符号化プログラム、符号化方法、符号化装置、復号化プログラム、復号化方法および復号化装置 |
DE102016108403A1 (de) * | 2016-05-06 | 2017-11-09 | Haroon van Rikxoort | Verfahren zur Datenübertragung |
JP6984321B2 (ja) * | 2017-10-31 | 2021-12-17 | 富士通株式会社 | データ生成プログラム、データ生成方法および情報処理装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1112378A (zh) * | 1993-07-13 | 1995-11-22 | 菲利浦电子有限公司 | 数字通信系统以及用于该系统的发射设备和接收设备 |
EP0933876A1 (en) * | 1998-01-29 | 1999-08-04 | AT&T Corp. | Data compression method for packet transmission |
CN1256605A (zh) * | 1998-11-04 | 2000-06-14 | 三星电子株式会社 | 用于移动通信终端的短消息发送设备和方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5455576A (en) * | 1992-12-23 | 1995-10-03 | Hewlett Packard Corporation | Apparatus and methods for Lempel Ziv data compression with improved management of multiple dictionaries in content addressable memory |
JP3277792B2 (ja) * | 1996-01-31 | 2002-04-22 | 株式会社日立製作所 | データ圧縮方法および装置 |
-
2001
- 2001-10-30 TW TW90126862A patent/TW543311B/zh not_active IP Right Cessation
- 2001-11-15 CA CA2428788A patent/CA2428788C/en not_active Expired - Lifetime
- 2001-11-15 CN CNB01822069XA patent/CN1316749C/zh not_active Expired - Lifetime
- 2001-11-15 JP JP2002543788A patent/JP3958211B2/ja not_active Expired - Lifetime
- 2001-11-15 AU AU2002215287A patent/AU2002215287A1/en not_active Abandoned
- 2001-11-15 WO PCT/SE2001/002549 patent/WO2002041497A2/en active Application Filing
- 2001-11-15 EP EP01983894A patent/EP1334557A2/en not_active Withdrawn
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1112378A (zh) * | 1993-07-13 | 1995-11-22 | 菲利浦电子有限公司 | 数字通信系统以及用于该系统的发射设备和接收设备 |
EP0933876A1 (en) * | 1998-01-29 | 1999-08-04 | AT&T Corp. | Data compression method for packet transmission |
CN1256605A (zh) * | 1998-11-04 | 2000-06-14 | 三星电子株式会社 | 用于移动通信终端的短消息发送设备和方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105659503A (zh) * | 2013-10-24 | 2016-06-08 | 高通股份有限公司 | 用于提供多用户节电码本优化的系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
CA2428788C (en) | 2010-09-14 |
WO2002041497A2 (en) | 2002-05-23 |
CA2428788A1 (en) | 2002-05-23 |
JP3958211B2 (ja) | 2007-08-15 |
TW543311B (en) | 2003-07-21 |
CN1486536A (zh) | 2004-03-31 |
JP2004514366A (ja) | 2004-05-13 |
AU2002215287A1 (en) | 2002-05-27 |
WO2002041497A3 (en) | 2002-08-29 |
EP1334557A2 (en) | 2003-08-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100417027C (zh) | 用于共享的上下文压缩的通信系统和方法 | |
CN1316749C (zh) | 压缩和解压缩消息的通信设备及相关的通信系统和方法 | |
US6883035B2 (en) | System and method for communicating with temporary compression tables | |
US6985965B2 (en) | Static information knowledge used with binary compression methods | |
CN1671103B (zh) | 数据压缩的方法和装置 | |
EP1376878B1 (en) | Protocol message compression in a wireless communications system | |
US6963587B2 (en) | Communication system and method utilizing request-reply communication patterns for data compression | |
CN101366261B (zh) | 用于当遭遇静默抑制时增强稳健标头压缩性能的方法和设备 | |
CN100525289C (zh) | 用于voip无线终端的系统和方法 | |
US7640362B2 (en) | Adaptive compression in an edge router | |
CN1316748C (zh) | 使用请求-应答通信模式用于数据压缩的通信系统和方法 | |
US7212974B2 (en) | System and method for compressing and encoding data | |
CN101142798B (zh) | 一种用于多方通信系统的信令压缩方法 | |
KR100389702B1 (ko) | 비트치환에 의한 무손실 데이터압축 및 복원방법 | |
Shajeemohan et al. | Compression scheme for faster and secure data transmission over networks | |
JP2010258787A (ja) | シグナリング圧縮装置、シグナリング伸長装置およびシグナリング圧縮伸長装置 | |
KR100625670B1 (ko) | 그림 데이터 압축 방법과 장치 및 그 기록매체 | |
Al-Khatib et al. | Internet Protocol TV net Protocol TV | |
AU2002316653A1 (en) | System and method for compressing data |
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 | ||
CX01 | Expiry of patent term |
Granted publication date: 20070516 |
|
CX01 | Expiry of patent term |