数据压缩编码器/译码器及有效的重复字符串处理的方法.pdf

上传人:1*** 文档编号:704190 上传时间:2018-03-06 格式:PDF 页数:29 大小:1.49MB
返回 下载 相关 举报
摘要
申请专利号:

CN96190231.0

申请日:

1996.01.16

公开号:

CN1148916A

公开日:

1997.04.30

当前法律状态:

撤回

有效性:

无权

法律详情:

发明专利申请公布后的视为撤回||||||公开

IPC分类号:

H03M7/38

主分类号:

H03M7/38

申请人:

摩托罗拉公司;

发明人:

杰弗里·T·克雷曼

地址:

美国伊利诺斯

优先权:

1995.03.24 US 08/410,476

专利代理机构:

中国国际贸易促进委员会专利商标事务所

代理人:

陆立英

PDF下载: PDF下载
内容摘要

编码器(200)和译码器(400)或(500)提高了对输入数据中重复字符串进行处理的效率。编码器继续进行其字符串适配程序,直至找到最长适配字符串为止,并没有由于按最新加入的字符串适配而导致过早的终止。因此,在对重复字符串编码中,编码器可以传送出与译码器中自由入口对应的码字。当译码器接收到与其自由入口对应的码字后,便恢复出编码的字符串,其方法是从后随有该字符串革新字符的即时的先前码字中输入该字符串。

权利要求书

1: 一种用以在数据压缩系统中对重复字符串编码的有效的方法, 其特征在于,包括以下步骤: 1A)在编码器词典中检索输入字符的最长适配字符串; 1B)在编码器词典中适配上输入字符的最长适配字符串也即所述 的输入字符最长适配字符串等于新加入的字符串后,传送出与译码器词 典中的自由入口相对应的一个码字,以代表该最长适配字符串。
2: 根据权利要求1的方法,其特征在于,在编码器词典中检索输 入字符的最长适配字符串时包含步骤: 2A)将下一个输入字符附加在部分适配字符串上以形成一个检索字 符串; 2B)按检索字符串在编码器词典中检索一个适配字符串; 2C)当在编码器词典中成功地适配该检索字符串时,再循环到步骤 2A),而不检查检索字符串是否等于最新加入的字符串;并将该检索字符 串用作部分适配字符串; 2D)当在编码器词典中不成功地适配该检索字符串时,设定一个最 长适配字符串等于所述部分适配字符串,并将所述的下一个输入字符归 类为非适配字符; 并且,这里可以选择, 在步骤2D之后进一步包括传送出一个码字代表该最长适配字符串 的步骤; 并且,还可以选择, 进一步包括将检索字符串加入编码器词典中的步骤; 并且,还可以选择2E-2F中的至少一个步骤: 2E)其中,检索字符串加入编码器词典的步骤中包括了将检索字符 串与编码器词典中的自由入口相关联; 2F)包括了从编码器词典中恢复下一个自由入口的步骤,并可以选 择; 2F1-2F2中包括的一个步骤: 2F1)其中,从编码器词典中恢复下一个自由入口的步骤内包括有从 词汇树上删除一个叶子节点的步骤; 2F2)在编码器词典中不成功地适配该检索字符串时,进一步包括使 用非适配字符作为部分适配字符串继续检索的步骤。
3: 一种用以在数据压缩系统中对重复字符串译码的有效的方法, 其特征在于,包括以下步骤: 3A)当译码器词典中在自由入口上接收到一个码字时,译码出等于 即时的先前字符串和即时的先前字符串革新字符两者串接的一个当前字 符串; 3B)当在不是自由入口的一个节点上接收到码字时,便译码出等于 译器词典中与该码字对应的字符串的一个当前字符串。
4: 根据权利要求3的方法,其特征在于,至少包括4A-4F中的 一个步骤: 4A)其中,在接收到自由入口上的码字而译码出当前字符串的步骤 中,包括有从存储器内保存的即时的先前字符串和即时的先前字符串革 新字符两者串接中形成当前字符串的步骤; 4B)其中,在接收到自由入口上的码字而译码出当前字符串的步骤 中,包括有步骤: 4B1)从存储器内保存的即时的先前码字中译码出即时的先前字符 串; 4B2)从即时的先前字符串和即时的先前字符串革新字符两者串接 中形成当前字符串; 4C)还包括输出当前字符串的步骤,并且可以进行选择,进一步包 括步骤: 4C1)按新字符串在译码器词典中检索适配,其中,所述新字符串 等于即时的先前字符串和当前字符串革新字符两者的串接; 4C2)当在译码器词典中不成功地适配新字符串时,便通过将新字 符串与自由入口相关联来将新字符串加入译码器词典,并且还可以选 择, 进一步包括从译码器词典中恢复下一个自由入口的步骤,并且,还 可以选择4C3-4C5选择中的至少一个步骤: 4C3)其中,从译码器词典中恢复下一个自由入口的步骤包括有从 词汇树上删除一个叶子节点; 4C4)进一步包括将当前字符串保存在存储器中,作为译码器下一 次迭代即时的先前字符串的步骤; 4C5)还包括将码字保存在存储器中,作为译码器下一次迭代时的 先前字符串的步骤; 4D)包括步骤: 4D1)通过将该码字与自由入口所关联的码字进行比较,确定该码 字是译码器词典中自由入口的码字,还是译码器词典中不同于自由入口 的一个节点的码字; 4D2)当码字是译器词典中自由入口的码字时,便译码出等于即时 的先前字符串和即时的先前字符串革新字符两者串接的一个当前字符 串; 4D3)当码字是不同于自由入口的一个节点的码字时,便译码出等 于译码器词典中与该码字对应的字符串的一个当前字符串,并且可以选 择; 4D4)进一步包括输出当前字符串的步骤;并且,还可以选择, 4D5)寸步包括步骤: 4D5a)在译码器词典中按新字符串检索适配,所述新字符串 等于即时的先前字符串和当前字符串革新字符两者的串接; 4D5b)当在译码器词典中不成功地适配新字符串时,通过将 新字符串与自由入口相关联来将新字符串加入译码器词典,并且, 还可以选择, 4D6)进一步包括从译码器词典中恢复下一个自由入口的步 骤,并且,还可以选择4D6a-4D6c中的至少一个步骤: 4D6a)其中,从译码器词典中恢复下一个自由入口的步骤包括 有从词汇树上删除一个叶子节点; 4D6b)还包括将当前字符串保存在存储器中,作为译码器下 一次迭代即时的先前字符串的步骤; 4D6c)还包括将该码字保存在存储器中,作为译码器下一次迭 代即时的先前字符串的步骤; 4E)其中,在接收到自由入口上的码字而译码出当前字符串的 步骤中,包括译码出解码器词典中与该码字对应的一个字符串,其 中,等于即时的先前字符串和即时的先前字符串革新字符两者串接 的字符串先前已指配给自由入口的码字;并且可以选择,进一步包 括输出当前字符串的步骤;并且,还可以选择,进一步包括4E1 -4E2的步骤: 4E1)在译码器词典中按新字符串检索适配,所述新字符串等 于即时的先前字符串和当前字符串革新字符两者的串接; 4E2)当在译码器词典中不成功地适配新字符串时,通过将新 字符串与自由入口相关联来将新字符串加入译码器词典;并且,还 可以选择,进一步包括从译码器词典中恢复下一个自由入口的步 骤; 并且,还可以选择4E3-4E4中的至少一个步骤: 4E3)其中,从译码器词典中恢复下一个自由入口的步骤包括 有从词汇树上删除一个叶子节点; 4E4)还包括将下一个自由入口与当前字符串和当前字符串革 新字符两者串接形成的字符串相关联的步骤,并且,还可以选择 4E4a-4E4b中的一个步骤: 4E4a)进一步包括将当前字符串保存在存储器中,作为译码 器下一次迭代即时的先前字符串的步骤; 4E4b)进一步包括将码字保存在存储器中,作为译码器下一 次迭代即时的先前字符串; 4F)包括的步骤有: 4F1)确定码字是否与有效入口相关联,或者是无效的; 4F2)当码字为无效的时,便开始一个差错补偿程序; 4F3)当码字为有效的,且码字与译码器词典中不是自由入口 的一个节点对应时,便译码出等于译码器词典中与该码字对应的字 符串的一个当前字符串; 4F4)当码字为有效的,且码字与译码器词典中的自由入口对 应时,便将码字译码为不是自由入口的一个节点的码字,其中,等 于即时的先前字符串和即时的先前字符串革新字符两者串接的字 符串先前已指配给自由入口的码字;并且可以选择; 4F5)进一步包括当前字符串的步骤;并且,还可以选择,包 括的步骤有: 4F5a)在译码器词典中按新字符串检索适配,其中,所述新字 符串等于即时的先前字符串和当前字符串革新字符两者的串接; 4F5b)当在译码器字典中不成功地适配新字符串时,通过将 新字符串与自由入口相关联来将新字符串加入译码器词典;并且可 以选择; 4F6)进一步包括从译码器词典中恢复下一个自由入口的步 骤,并可以选择4F6a-4F6b中的一个步骤: 4F6a)其中,从译码器词典中恢复下一个自由入口的步骤包括 有从词汇树上删除一个叶子节点; 4F6b)还包括步骤: 4F6b1)将当前字符串长度与预定最大字符串长度进行比 较; 4F6b2)当当前字符串长度等于预定最大字符串长度时,便标 记下一个自由入口为无效的; 4F6b3)当当前字符串长度不等于预定最大字符串长度时,将 下一个自由入口与当前字符串和当前字符串革新字符两者串接形 成的字符串相关联,并可以选择4F6b4-4F6b5中的一个步骤: 4F6b4)进一步包括将当前字符串保存在存储器中,作为译码 器下一次迭代即时的先前字符串的步骤; 4F6b5)进一步包括将码字保存在存储器中,作为译码器一次 迭代即时的先前字符串的步骤。 5.一种用以在数据压缩系统中对重复字符串有效地编码的装 置,其特征在于,包括: 5A)一个用于存储字符串的编码器词典,所述的编码器词典 中具有一个自由入口和零个或多个字符串,每一字符串具有与之关 联的一个相应的码字; 5B)一个字符串适配单元,用以相继输入字符在编码器词典内 查找输入字符的最长适配字符串,其方法是在编码器词典中迭代地 检索,使得对检索字符串的适配初始地等于单个输入字符,并且在 编码器词典中每次成功地适配后,扩展一个输入字符,而不首先检 查适配的检索字符串是否等于编码器词典中最新加入的字符串。 6.根据权利要求5的装置,其特征在于,还包括一个用于输 出与最长适配字符串对应的码字的一个码字发生器,并且可以选 择,进一步包括一个编码器词典更新单元,提供出将新字符串加入 编码器词典的方式,其中,新字符串等于最长适配字符串和下一个 输入字符两者的串接,并且,还可以选择6A-6B中的至少一个: 6A)其中,将新字符串加入编码器词典的方式包括有给新字 符串指配一个与编码器词典中自由入口对应的码字,而不保存使自 由入口作为最新加入的字符串的指针; 6B)其中,编码器词典更新单元进一步包括从编码器词典中恢 复下一个自由入口的方式;并且可以选择6B1-6B2中的一个: 6B1)其中,恢复下一个自由入口的方式包括从编码器词典中 删除一个字符串; 6B2)其中,字符串适配单元开始从紧随在最长适配字符串之 后的字符中迭代地进行检索。 7.一种用以在数据压缩系统中对重复字符串有效地译码的装 置,其特征在于,包括: 7A)一个用于存储字符串的译码器词典,所述的译码器词典 中具有一个自由入口和零个或多个字符串,每一字符串具有与之关 联的一个相应的码字; 7B)一个字符串译码单元具有从接收到的码字中产生当前字 符串的装置,其中,所述的当前字符串等于7B1-7B2中的一个: 7B1)与接收到的码字对应的译码器词典中的字符串,其中, 接收到的码字对应于译码器词典中不是自由入口的一个入口; 7B2)从先前译码出的字符串和先前译码出的字符串革新字 符两者串接中形成的字符串,其中,接收到的码字等于译码器词典 中的自由入口。 8.根据权利要求7的装置,其特征在于,还包括8A-8D中 的至少一个: 8A)一个用于存储先前译码的字符串的字符串存储器单元; 8B)还包括一个用于存储先前接收到的码字的字符串存储单 元; 8C)当码字对应于译码器词典中的自由入口时用以产生当前 字符串的装置中,包括产生出的当前字符串等于译码器词典中与接 收到的码字对应的字符串,其中,等于即时的先前字符串和即时的 先前字符串革新字符两者串接的字符串先前已指配给自由入口的 码字; 8D)其中,从接收到的码字中产生出当前字符串的装置确定 出接收到的码字是有效的或无效的,当接收到的码字为有效的时, 进一步包括产生出的当前字符串等于译码器词典中与接收到到的 码字对应的字符串。 9.一个数据通信设备,至少包含发射机数据通信设备和接收 机数据通信设备之一,其特征在于: 该发射机数据通信设备包括: 9A)一个用于从发射机DTE中接收发射数据的发射机DTE 接口; 9B)一个具有有效的重复字符串处理器的编码器,用于将发射 数据编码成压缩的数据,还包括: 9B1)一个用于存储字符串的编码器词典,所述的编码器词典 具有一个自由入口和零个或多个字符串,每一字符串具有与之关联 的一个相应的码字; 9B2)一个字符串适配单元,用以由相继输入字符在编码器词 典内查找输入字符的最长适配字符串,其方法是在编码器词典中迭 代地检索,使得对检索字符串的适配初始地等于单个输入字符,并 且在编码器词典中每次成功地适配后扩展一个输入字符,而不首先 检查适配的检索字符串是否等于编码器词典中最新加入的字符 串; 9C)一个用于在通信信道上传送压缩数据的发射机数据调制 解调器; 并可以选择,在编码器和发射机数据调制解调器之间进一步包 括一个发射机纠错单元; 并且,接收机包括的接收机数据通信设备中,包含有: 9D)一个用于从通信信道上接收压缩数据的接收机数据调制 解调器; 9E)一个具有有效的重复字符串处理器的译码器,用于将压缩 数据译码成接收数据,还包括: 9E1)一个用于存储字符串的译码器词典,所述的译码器词典 具有一个自由入口和零个或多个字符串,每一字符串具有与之关联 的一个相应的码字; 9E2)一个字符串译码单元,具有从接收到的码字中产生出当 前字符串的装置,其中,所述的当前字符串等于9E2a-9E2b中的 一个; 9E2a)与接收到的码字对应的译码器词典中的字符串,其中, 接收到码字对应于译码器词典中不是自由入口的一个入口; 9E2b)从先前译码出的字符串和先前译码出的字符串革新字 符两者串接中形成的字符串,其中,接收到码字等于译码器中的自 由入口; 9F)用于将接收数据传送给接收机DTE的一个接收机DTE接 口; 并且可以选择,在接收机数据调制解调器和译码器之间进一步 包括一个接收纠错单元。 10.一种用以在数据压缩系统中用于对重复字符串有效地编 码和译码的装置,其特征在于,包括: 10A)一个具有有效的重复字符串处理器的编码器,进一步包 括: 10A1)一个用于存储字符串的编码器词典,所述的编码器词 典具有一个自由入口和零个或多个字符串,每一字符串具有与之关 联的一个相应的码字; 10A2)一个字符串适配单元,用以由相继输入字符在编码器 词典内查找输入字符的最长适配字符串,其方法是在编码器词典中 迭代地检索,使得对检索字符串的适配初始地等于单个输入字符, 并且在编码器词典中的每次成功地适配后扩展一个输入字符,而不 首先检查适配的检索字符串是否等于编码器词典中最新加入的字 符串; 10B)一个具有有效的重复字符串处理器的译码器,还包括: 10B1)一个用于存储字符串的译码器词典,所述的译码器词 典具有一个自由入口和零个或多个字符串,每一字符串具有与之关 联的一个相应的码字; 10B2)一个字符串译码单元,具有从接收到的码字中产生出当 前字符串的装置,其中,所述的当前字符串等于10B2A-10B2B 中的一个; 10B2A)与接收到的码字对应的译码器词典中的字符串,其 中,接收到的码字对应于译码器词典中不是自由入口的一个入口; 10B2B)从先前译码出的字符串和先前译码出的字符串革新字 符两者串接中形成的字符串,其中,接收到码字等于译码器词典中 的自由入口。

说明书


数据压缩编码器/译码器及有效的重复 字符串处理的方法

    本发明涉及数据压缩,具体涉及提高处理输入数据中重复字符串的效率。

    数据通信是指通过传输系统从一个地点向另一个地点传送计算机编码的信息。数据通信导致在长距离上近乎即时的信息交换。

    数据通信使发送或接收数据的数据终端设备(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)或其它集成电路、高散逻辑电路、可编程逻辑电路内,或者装置在它们任意的组合电路内。

    上述各图不表示完整的编码器和译码器的实施。各图只是意在表示本发明是怎样工作的,并且,只表示出与本发明相关的数据压缩系统的那些部分。对于那些熟知本领域的技术人员来说,如何将本发明组合在新的或现有的数据压缩过程、系统或装置中,是十分清楚的。

    虽然,以上所描述的是示范性实施例,但十分明显,那些熟知本领域的技术人员可以做出许多变更和修改,而不背离本发明。因此,正如所附权利要求书中规定的那样,所有这样的变更和修改都包括在本发明的实质和范围之内。

数据压缩编码器/译码器及有效的重复字符串处理的方法.pdf_第1页
第1页 / 共29页
数据压缩编码器/译码器及有效的重复字符串处理的方法.pdf_第2页
第2页 / 共29页
数据压缩编码器/译码器及有效的重复字符串处理的方法.pdf_第3页
第3页 / 共29页
点击查看更多>>
资源描述

《数据压缩编码器/译码器及有效的重复字符串处理的方法.pdf》由会员分享,可在线阅读,更多相关《数据压缩编码器/译码器及有效的重复字符串处理的方法.pdf(29页珍藏版)》请在专利查询网上搜索。

编码器(200)和译码器(400)或(500)提高了对输入数据中重复字符串进行处理的效率。编码器继续进行其字符串适配程序,直至找到最长适配字符串为止,并没有由于按最新加入的字符串适配而导致过早的终止。因此,在对重复字符串编码中,编码器可以传送出与译码器中自由入口对应的码字。当译码器接收到与其自由入口对应的码字后,便恢复出编码的字符串,其方法是从后随有该字符串革新字符的即时的先前码字中输入该字符串。。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 电学 > 基本电子电路


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1