数据压缩编码器/译码器及有效的重复 字符串处理的方法 本发明涉及数据压缩,具体涉及提高处理输入数据中重复字符串的效率。
数据通信是指通过传输系统从一个地点向另一个地点传送计算机编码的信息。数据通信导致在长距离上近乎即时的信息交换。
数据通信使发送或接收数据的数据终端设备(DTE)诸如各种终端、打印机或计算机之类链接起来。数据通信设备(DCE)是一种附接在DTE与通信信道之间用以控制所发送信号或数据的装置。DCE通常包括:用以与DTE接口连接的DTE接口,用以存储计算机程序和数据的随机存取存储器(RAM),用以执行所存储的计算机程序的微处理器,以及用以与通信信道接口连接的数据调制解调器(pump)。通信信道往往是电话网路,但也可以是蜂窝网络、数字通信网路或卫星通信网路。
由发射机DTE(TXDTE)传送至接收机DTE(RXDTE)的信息由字符序列组成。信息一般含有大量的冗余度,因而可将信息压缩,以便能以较短的时间通过通信信道进行传输。
在已知的数据压缩方法中,有Ziv-Lemple78算法(“ZL78”)。在ZL78算法中,发送DCE(TXDCE)通过将字符串存储于TXDCERAM中所保存的一个编码器词典内来记录所发送数据的最近的变化历程。对编码器词典中的每一字符串指配以一个相应的码字。通过将当前数据的各相继部分与编码器词典中的字符串相比较,便可查找到冗余数据。TXDCE并不传送整个地冗余序列,而是传送相应的码字。每当需要传送码字的比特数目少于冗余数据序列中的比特数目时,便发生数据压缩。由冗余数据序列生成码字的过程通常称为编码过程,而TXDCE中实现编码过程的软件或硬件一般叫做编码器。
在信道的另一端,接收机DCE(RXDCE)在RXDCE RAM中保存一个与TXDCE所保存的编码器词典相类似的译码器词典。当从TXDCE上接收到码字后,RXDCE利用该码字查找出译码器词典中的冗余数据序列。而后,RXDCE将数据序列传输给RXDTE。从码字中恢复冗余数据序列的过程通常称为译码过程,而RXDCE实现译码过程的软件或硬件一般叫做译码器。
TXDCE中的编码器和RXDCE中的译码器为对等的数据压缩实体。TXDCE中编码器与RXDCE中译码器的结合可称之为数据压缩系统。DCE通常既包括一个编码器又包括一个译码器,从而可以在第一数据压缩系统中作为TXDCE工作,而在第二数据压缩系统中作为RXDCE工作。
数据压缩系统的一个目标是使数据压缩效率最高,即产生最少的比特数目来表示数据。在ZL78数据压缩系统中,冗余数据序列中的字符越多,压缩效率越高。因此,ZL78数据压缩系统的一个目标是,给词典加入表示数据中会遇到的最长冗余数据序列的一些字符串。
数据压缩系统的另一目标是使数据压缩和“去压缩”所需的步骤数目最少和存储器存储容量最少。步骤数目会影响由微处理器执行的指令数目,或者影响集成电路或其它硬件在实现中所需逻辑门的数目。存储器存储容量会影响所用RAM的存储容量,或者影响集成电路或其它硬件在实现中所需寄存器的数目。因此,数据压缩系统的复杂性对系统成本有直接的影响,这里既包含系统通过量(即何等快地处理数据)方面的成本,又包含所需资源数量方面的成本。
ZL78算法的一种实施方案为CCITT(国际电报电话咨询委员会)V.42bis数据压缩标准。V.42bis在词典中保存了有限数目的字符串。V.42bis是自适应的;在给词典加入新字符串的同时,从词典中删除旧字符串,以使得词典中所存储的字符串总是代表最新近的数据。V.42bis编码器和译码器按照一组规则来建立它们各自的词典。建立这两个词典的一种方法是,将各字符串存储在具有各级互联节点的树型结构数据库中。编码器和译码器在它们各自的词典中均保持一个自由入口(entry),这里的自由入口是一个没有相应的字符串与之关联的码字。给自由入口加入一个新字符串时,便删除一个旧字符串,使自由入口变为下一个新字符串的自由入口。一种用于生成树型结构数据库、给树型结构数据库加入字符串以及从树型结构数据库中删除字符串的程序的全面描述可以在CCITTV.42bis规范和在Clark的美国专利5,153,591以及Welsh的美国专利4,558,302中查阅到。其它有关的专利还有Holtz的美国专利4,366,551和MacCrisken的美国专利4,730,348。
ZL78数据压缩系统中的一个要求是,在编码器词典和译码器词典中必须给一个特定的字符串指配相同的码字,以便当编码器在它的词典中适配一个冗余字符序列而传送出相应的码字时,译码器能从码器词典中由该码字恢复出相同的冗余字符序列。ZL78数据压缩系统中的第二项要求是,编码器只传送存在于译码器词典中的字符串码字。
由于在编码器词典中没有与自由入口相关联的字符串,所以编码器决不会适配自由入口,从而决不会传送出对应于自由入口的码字。同样地,译码器决不会接收到与译码器词汇中的自由入口相关联的码字。如果译码器确实接收到了有关其自由入口的码字,则认为是一个差错,必须发生某种差错补偿程序,以使编码器与编码器重新同步。然而,下面将示明的,编码器词典中的自由入口有时可以不同于译码器词典中的自由入口。因此,编码器须保证不传送与译码器词典中自由入口相对应的码字。
V.42bis编码器工作过程如下所述:编码器采用字符串适配程序,以便在编码器词典中查找输入字符的最长适配字符串。字符串适配程序是一个迭代过程,开始于检索词典内等于各相继输入字符中第一个字符的检索字符串,并每次对一个输入字符扩展检索字符串,直到检索字符串不再在词汇中适配为止。引起非适配的输入字符叫做不适配字符。表示最长适配字符串的码字被传送出去,并且,如果检索字符串的长度(即检索字符串中的字符数目)不超过预定的最大字符串长度,则将该检索字符串加入词典中。加入到词汇中的字符串可以称为最新加入的字符串。当检索字符串等于引起不适配的输入字符时,便重新开始字符串适配程序。应当指出,该不适配字符将是下一个最长适配字符串的第一个字符。
重要的是要注意到,在编码器将一个新字符串(上面称之为最新加入的字符串)加入其词典中的时刻,编码器词典内包括了一个在译码器词典中没有体现的字符串。当新字符串加入编码器词典之后,在译码器接收到由字符串适配程序的迭代运算重复进行适配所产生的码字之前,译码器不会将新字符串加入词典中。因此,编码器不能传送出最新加入的字符串的码字,除非它已传送出一个字符串码字而不是最新加入的字符串。由编码器指配给最新加入的字符串的码字是与译码器词典中的自由入口用的码字相同的(由于译码器随后要将该字符串加入译码器词典中的自由入口上,所以其码字必须与编码器指配给该字符串的相同)。如果编码器传送出最新加入的字符串的码字,则译码器将接收到关于其自由入口的码字,这被认为是一个差错。
为此,当编码器对最新加入的字符串适配时,便会引起问题,这种情况发生在当数据中有重复字符的字符串的时候(例如,一个单个字符的游程)。编码器不能传送出最新加入的字符串的码字,除了不再将字符串加入到词典中之外,它的工作好像是对最新加入的字符串的适配为一种非适配。这种情况被认为是字符串适配程序的一种过早终止,因为字符串适配程序在达到最长适配之前终止了而没有任何字符串加入到词典中的缘故。编码器传送出最长适配字符串的码字,当检索字符串等于不适配字符时重新开始字符串适配程序。对字符串后继的适配认为是有效的适配,编码器象平常那样继续字符串适配程序。
禁止传送最新加入的字符串码字的作用在于,每当编码器适配词典中的一个字符串时,编码器必须检查适配的字符串是否是最新加入的字符串(有时称作重复字符串检查)。为了进行重复字符串检查,编码器必须记得哪个字符串是最新加入的字符串。据此,每当编码器给它的词典加入一个字符串时,它便将该字符串(或者适合于实现重复字符串检查的一种字符串代表)保存在RAM中作为最新加入的字符串。最新加入的字符串的保存和重复的字符串检查将耗费运行资源和存储器资源,并一般地增加了编码器的复杂性。
过早地终止字符串适配导致在真正的最长适配字符串之前强使编码器产生一个码字,并又阻止编码器将新字符串加入编码器词典中,进而降低了压缩效率。
在数据压缩系统工作期间,由于在译码器将同一字符串加入其词典中之前编码器已将该字符串加入其词典而对应一个码字,所以译码器通常比编码器滞后一步。编码器通常检索到直至查找到一个最长的适配字符串和一个不适配字符。编码器传送出最长适配字符串的码字,并将新字符串加入其词典中,这里,该新字符串是最长适配字符串和不适配字符的串接。然后,在不适配字符上编码器重新开始字符串适配程序。为此,由编码器传送的下一个码字将代表一种字符串,该不适配字符作为该字符串的第一个字符。
译码器接收到一系列码字后,对每一个码字译码出由该码字代表的字符串,并按照使译码器词典与编码器词典同步的要求将字符串加入译码器词典中。当译码器从一个码字中译码出一个当前字符串时,该当前字符串的第一个字符(有时称之为革新(innovation)字符)是先前字符串中的不适配字符。由译码器必须加入译码器词典中的该字符串是先前字符串和当前字符串革新字符两者的串接。然后,在典型的V.42bis译码器中,译码器保存每一译码的字符串作为先前字符串,用于处理下一个码字。
由译码器接收到的一系列码字可以包含一个或多个控制码字。数据压缩系统通常保留一个或多个码字,用于传送从编码器至译码器的控制信息。例如,V.42bis规定了三个控制码字,用于编码器传送出隐蔽(flush)、升级(step up)或模式切换(mode switch)出现的信令。没有任何字符串与控制码字相关联。对于接收到的每一码字,译码器确定该码字是否是一个控制码字。若码字是一个控制码字,译码器执行一个相应的控制功能;若码字不是一个控制码字,译码器译码出对应于该码字的字符串。
图1是表示先有技术V.42bis编码器处理字符程序的一个实施例的流程图。
图2表示按照本发明处理字符程序的一个实施例的流程图。
图3是表示先有技术V.42bis译码器中用于译码一个非控制码字的程序的一个实施例流程图。
图4是表示按照本发明用于译码一个非控制码字的程序的第一实施例流程图。
图5是表示按照本发明用于译码一个非控制码字的程序的第二实施例流程图。
图6是表示先有技术是公知的数据通信设备的方框图。
图7是表示按照本发明的数据压缩编码器的功能方框图。
图8是表示按照本发明的数据压缩译码器的功能方框图。
图9是表示按照本发明具有发送和接收模式的一个数据通信设备的功能方框图。
通过在编码器中消除重复字符串检查和允许译码器在编码器传送出其最新加入的字符串时译码出正确的字符串,本发明提高了编码器和译码器两者的效率。
消除重复字符串检查是反直观的,因为V.42bis编码器中重复字符串检查的目的是防止编码器给译码器传送无效的码字。然而,在本发明的编码器中消除重复字符串检查却有不少优点。第一,当字符串适配程序检测适配时编码器实施的步骤会少一步,因而微处理器执行较少的指令。第二,编码器中的字符串适配程序继续进行,直至它查找到一个最长适配字符串(即没有过早终止字符串适配程序),从而通过从最长适配字符串中产生码字和根据每一个非适配来更新词典,提高了压缩效率。第三,每次保存最新加入的字符串的步骤由一个新字符串加入词汇中,该步骤耗费微处理器和存储器资源。结果是,与先有技术的数据压缩系统相比,本发明的编码器提供更高的效率。
当编码器在其最新加入的字符串上适配时,便实现了编码器效率的提高。为了使编码器与其最新加入的字符串适配,该字符串的最后一个字符必须与该字符串的第一个字符相同。例如,如果输入数据包含字符“ABCABCABC…”,而编码器词典包含有字符串“ABC”,则编码器将对第一个“ABC”适配,作为最长适配字符串,传送出字符串“ABC”的码字,并将非适配字符串“ABCA”加入词汇中。字符串“ABCA”便是最新加入的字符串。编码器会从第二个“ABC”字符串起继续进行字符串适配程序,并适配字符串“ABCA”。在V.42bis编码器中,定会在最新加入的字符串上适配,所以编码器会将它作为一个非适配对待,并传送出字符串“ABC”的码字而不将字符串加入词汇中。然而,在本发明的编码器中,这会是一个最长适配字符串,所以,本发明的编码器将传送出字符串“ABCA”的码字,并将非适配字符串“ABCAB”加入编码器词典。在V.42bis编码器中,字符串适配程序将从第三个“A”起继续进行;在本发明的编码器中,字符串适配程序将从第三个“B”起继续进行。V.42bis编码器能够与字符串“ABCA”适配,而本发明的编码器既能与字符串“ABCA”适配,又能与“ABCAB”适配。
本发明的译码器能使译码器在编码器传送出其最新加入的字符串码字时译码出正确的字符串。将译码器译码出的每一字符串保存,作为下一个码字的先前字符串。然后,译码器译码下一个码字,将译码字符串的第一个字符附加到先前的字符串上,并将得到的字符串加入其词汇中的自由入口上。不过,当编码器传送出其最新加入的字符串码字时,译码器将接收对应于译码器词汇中自由入口的码字。在V.42bis译码器中,这会认为是一个差错。然而,在本发明的译码器中,译码器是依靠先前字符串的第一字符附加在先前字符串上的来译码码字的。将得到的字符串加入其词汇中的自由入口上。
上面的例子中,本发明的编码器首先传送出字符串“ABC”的码字,而后传送字符串“ABCA”的码字。响应于字符串“ABC”的码字,本发明的译码器从其词典中恢复字符串“ABC”,并将它作为先前的字符串来保存。响应于字符串“ABCA”的码字,这是对应于译码器词典中自由入口的码字,译码器将先前字符串的第一个(革新)字符(“A”)附加在先前字符串(“ABC”)上,并将得到的字符串(“ABCA”)加入译码器词汇的自由入口上。译码器正确地译码出字符串,并正确地将字符串加入译码器词典。
虽然,本发明的译码器中自由入口通常是有效的码字(即有一个与之相关联的字符串),但至少有二次自由入口为无效的情况。第一,立即紧随词典重置之后自由入口是无效的,因为译码器没有存储先前字符串。第二,当译码器接收到最大/长度/字符串的码字时自由入口是无效的。这种情况出现于编码器中最长适配字符串为最大/长度/字符串,且编码器没有将字符串加入编码器词典中时,(由于将最长适配字符串扩展一个字符便会生成一个超过最大字符串长度的字符串)。所以,不存在编码器能够在其上面适配的新的最新加入的节点(node)。
每当编码器传送出部分适配的字符串(即在查找到最长适配字符串之前由编码器适配的一个字符串)时,译码器的自由入口也是无效的。例如,当编码器执行一个“flush”操作(参见CCITTV.42bis规范)时,便会出现这种情况。flush操作包括传送部分适配字符串的码字,并且,如果那时编码器输出为非八位位组对准的(即由编码器产生的码字序列中比特数目不是8的一个准确倍数),则传送一个控制码字,作为告知发生flush操作的信号。译码器不能够确定一个码字代表了部分适配字符串,从而译码器不可能标识出自由入口无效。然而,这可以通过请求编码器在每一flush操作之后传送出“flush”控制码字并每当接收到“flush”控制码字便标识出自由入口无效的方法来予以补救。
在输入数据为字符的一个游程的情况下,最能看清本发明的编码译码过程的优点。一个显示七个字符游程编码的例子(例如“AAAAAAA”)可以表明本发明的编码器胜过V.42bis编码的优点,下面的两个例子中,假定编码器词典内包含字符串“A”。
下面是表示V.42bis编码器中处理字符串“AAAAAAA”的一个例子。编码器查找最长适配字符串“A”,传送出字符串“A”的码字,将字符串“AA”加入词典,从第二个“A”起重新开始字符串适配程序。然后,编码器按最新加入的字符串“AA”进行适配,所以编码器传送字符串“A”的码字,并从第三个“A”起重新开始字符串适配程序。接着,编码器查找最长适配字符串“AA”,传送出字符串“AA”的码字,将字符串“AAA”加入词典,并从第五个“A”起重新开始字符串适配程序。最后,编码器按照最新加入的字符串“AAA”进行适配,因而编码器传送字符串“AA”的码字,并从第七个“A”起重新开始符串适配程序。因此,V.42bis编码器传送出四个码字来代表六个字符(第七个“A”将在编码器传送出的下一个码字中表示),并给词典加入两个字符串。
下面是表示本发明编码器中处理字符串“AAAAAAA”的一个例子。编码器查找最长适配字符串“A”,传送出字符串“A”的码字,将字符串“AA”加入词典,并从第二个“A”起重新开始字符串适配程序。然后,编码器查找最长适配字符串“AA”,传送出字符串“AA”的码字,将字符串“AAA”加入词典,并从第四个“A”起重新开始字符串适配程序。最后,编码器查找最长适配字符串“AAA”,传送出字符串“AAA”的码字,将字符串“AAAA”加入词典,并从第七个“A”起重新开始字符串适配程序。因此,本发明的编码器传送出三个码字来代表六个字符(第七个“A”将在编码器传送出的下一个码字中表示),并活词典加入三个字符串。
上述例子中,本发明的编码器不仅在编码字符游程中比V.42bis编码器有更高效率,而且,如果数据包括字符“A”的相继游程,则本发明的编码器能够与多达四个字符“AAAA”的字符串适配,而V.42bis编码器只能与多到三个字符“AAA”的字符串适配。因此,本发明的编码器在编码相继的游程中也有更高的效率。
图1是表示先有技术V.42bis编码器处理字符程序的一个实施例的流程图。该方法处理一个输入字符。方法(102)包括的步骤有:1)在词典中检索等于适配字符串和输入字符两者串接的新字符串(104);2)当有不成功的适配(106-未找到)时,将新字符串加入词典(108),传送出表示适配字符串的码字(110),并设定适配字符串等于输入字符(112);3)当有成功的适配(106-找到)时,便测试新字符串是否等于最新加入的字符串(114);4)当新字符串等于最新加入的字符串(114-是)时,传送出代表适配字符串的一个码字(110),并设定适配字符串等于输入字符(112);5)当新字符串不是最新加入的字符串的一个字符串(114-否)时,便设定适配字符串等于新字符串(116)。
图2是表示按照本发明处理字符程序的一个实施例的流程图。该方法处理一个输入字符。方法(202)包括的步骤有:1)在词典中检索等于适配字符串和输入字符两者串接的新字符串(204);2)当有不成功的适配(206-未找到)时,将新字符串加入词典(208);传送出代表适配字符串的码字(210),并设定适配字符串等于输入字符(212);3)当有成功的适配(206-找到)时,设定适配字符串等于新字符串(216)。
图3是表示先有技术V.42bis译码器中译码非控制码字的一个程序实施例的流程图。该方法处理一个非控制码字。方法(302)包括的步骤:1)测试码字是否等于自由入口(302);2)当码字等于自由入口(304-是)时,发生适当的差错补偿作用;3)当码字是不同于自由入口的一个码字(304-否)时,译码出该码字而得到当前字符串(306),输出该当前字符串(308),并检索词典中等于先前字符串和当前字符串革新字符两者串接的新字符串(310);4)当有不成功的适配(312-未找到)时,将新字符串加入词典(314),并设定先前字符串等于当前字符串(316);5)当有成功的适配(312-找到)时,便设定先前字符串等于当前字符串(316)。
图4是表示按照本发明译码非控制码字程序的第一实施例的流程图。该方法处理一个非控制码字。方法(402)包括的步骤有:1)测试该码字是否等于自由入口(404);2)当码字为不是自由入口的一个码字(404-否)时,译码出该码字而得到当前字符串(406);3)当码字等于自由入口(404-是)时,设定当前字符串等于先前字符串和先前字符串革新字符两者的串接(418);4)输出当前字符串(408);5)检索词典中等于先前字符串和当前字符串革新字符两者串接的新字符串(410);6)当有不成功的适配(412-未找到)时,将新字符串加入词典(414),并设定先前字符串等于当前字符串(416);7)当有成功的适配(412-找到)时,设定先前字符串等于当前字符串(416)。
图5是表示按照本发明译码非控制码字程序的第二实施例的流程图。该方法处理一个非控制码字。方法(502)包括的步骤有:1)测试码字是否有效(504);2)当码字为无效的(504-否)时,发生适当的差错补偿作用;3)当码字为有效的(504-是)时,译码出该码字而得到当前字符串(506),输出当前字符串(508),并检索词典中等于先前字符串和当前字符串革新字符两者串接的新字符串(510);4)当有不成功的适配(512-未找到)时,将新字符串加入词典(514),并测试当前字符串长度是否等于最大字符串长度(518);5)当有成功的适配(512-找到)时,测试当前字符串长度是否等于最大字符串长度(518);6)当前字符串长度小于最大字符串长度(518-否)时,给自由入口指配一个等于当前字符串和当前字符串革新字符两者串接的字符串(520),并设定先前字符串等于当前字符串(516);7)当当前字符串长度等于最大字符串长度(518-是)是,设定自由入口为无效的(522),并设定先前字符串等于当前字符串(516)。
图6以标号600表示本领域内周知的数据通信系统的方框图。DTE602连接至DCE604。DCE604包括一个DTE接口614,通过它DCE604与DTE602相连接。DTE602经由DTE接口614给DCE604传送出传输信息(TXD)。DCE604包括一个微处理器606。微处理器606实现数据压缩编码器608和数据压缩解码器610的功能。数据压缩编码器608接收TXD,并将TXD压缩为码字(如果可能的话)。数据调制解调器616经由通信信道618将压缩的TXD传送给在某一其它位置上的DCE/DTE对。如数据通信中通常所用的那样,“RX”前缀表示“接收机”,“TX”前缀表示“发射机”。
类似地,数据调制解调器616从通信信道618上得到压缩的RXD。然后,数据压缩译码器610将压缩的RXD“去压缩”为RXD。 DTE接口614传送RXD给DTE602。
RAM612连接至微处理器606。RAM612除了别的以外还包含有编码器和译码器词典及控制微处理器的程序。
图7以标号700表示采用本发明装置的数据压缩编码器(702)的功能方框图。字符串适配单元706接收输入的字符串,并采用本发明的方法检索编码器词典704,查找最长适配的字符串。当查找到最长适配字符串后,由选体的码字发生器708输出一个与该最长适配字串对应的码字。又在查找到最长适配字符串后由选体的编码器词典更新单元712通过加入新字符串和恢复自由入口来更新编码器词典704。
图8以标号800表示采用本发明装置的数据压缩译码器802的功能方框图。字符串译码单元806接收输入码字,并采用译码器词典804和选体的字符串存储器单元810中可选地存储的先前字符串以本发明的方法,将每一码字译码为其相应的字符串。字符串译码单元806输出译码的字符串。使用译码词典804来存储先前译码的字符串。每个字符串有一个对应的码字。选体的字符串存储器单元810用来存储先前的码字或先前译码的字符串。在将一个码字译码之后,选体的译码器词典更新单元812通过加入新字符串和恢复新自由入口来更新译码器词典804。译码器词典更新单元812采用本发明的方法可选地将等于译码字符串和译码字符串革新字符两者串接的一个重复字符串与该新的自由入口关联起来。在译码出码字之后,字符串译码单元806可选地将码字或译码的字符串存储在字符串存储器单元810中。
图9以标号900表示采用本发明装置至少具有一个发射模式和一个接收模式的DCE901的功能方框图。十分清楚,通过选择,具有本发明装置的DCE可以只工作在发射方式或只工作在接收模式中,或者工作在两种模式中,在这一例子中也是如此,它清楚地选择成TX数据调制解调器914和RX数据调制解调器920都位于DCE901中,具有发射和接收两种模式。发射机DCE(TXDCE)902经由通信信道与远端的接收机DCE(RXDCE)通信。在大多数情况下,DCE既包含有TXDCE,又包含有RXDCE。
TXDCE经由发射机DTE(TXDTE)接口906接收TXD。数据压缩编码器908采用本发明的方法将TXD压缩为压缩的TXD。
选体的TX纠错单元912从数据压缩编码器908中接收压缩的TXD,并将数据传送给TX数据调制解调914,以便经由通信信道传输给远端的RXDCE。
RX数据调制解调器920从通信信道中接收压缩的RXD。选体的RX纠错单元918处理压缩的RXD,并将数据传送给数据压缩译码器922,后者采用本发明的方法将压缩的RXD去压缩为RXD。接收机DTE(RXDTE)接口924通常将RXD传送给所连接的DTE。
虽然,图9将DCE表示为在编码器/译码器中用以高效地处理重复字符串的装置,但具有高效处理重复字符串处理器的编码器/译码器可以装置在数字信号处理器(DSP)、专用集成电路(ASIC)或其它集成电路、高散逻辑电路、可编程逻辑电路内,或者装置在它们任意的组合电路内。
上述各图不表示完整的编码器和译码器的实施。各图只是意在表示本发明是怎样工作的,并且,只表示出与本发明相关的数据压缩系统的那些部分。对于那些熟知本领域的技术人员来说,如何将本发明组合在新的或现有的数据压缩过程、系统或装置中,是十分清楚的。
虽然,以上所描述的是示范性实施例,但十分明显,那些熟知本领域的技术人员可以做出许多变更和修改,而不背离本发明。因此,正如所附权利要求书中规定的那样,所有这样的变更和修改都包括在本发明的实质和范围之内。