CN1100390C - 处理信息的方法和设备 - Google Patents

处理信息的方法和设备 Download PDF

Info

Publication number
CN1100390C
CN1100390C CN97181993A CN97181993A CN1100390C CN 1100390 C CN1100390 C CN 1100390C CN 97181993 A CN97181993 A CN 97181993A CN 97181993 A CN97181993 A CN 97181993A CN 1100390 C CN1100390 C CN 1100390C
Authority
CN
China
Prior art keywords
group
value
numeral
message
binary
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
Application number
CN97181993A
Other languages
English (en)
Other versions
CN1249084A (zh
Inventor
B·J·M·斯梅茨
J·阿贝里
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Telefonaktiebolaget LM Ericsson AB
Original Assignee
Telefonaktiebolaget LM Ericsson AB
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Telefonaktiebolaget LM Ericsson AB filed Critical Telefonaktiebolaget LM Ericsson AB
Publication of CN1249084A publication Critical patent/CN1249084A/zh
Application granted granted Critical
Publication of CN1100390C publication Critical patent/CN1100390C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion 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/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code

Abstract

本发明涉及用于编码与解码信息的方法和设备。用于编码包括第一组二进制数字(Y)的消息的方法包括以下步骤,其中每个所述二进制数字具有第一值(“0”)或第二值(“1”):接收第一组的比特(Y)(S200);生成第二组比特(ei,ei+1)(E)(S220-S370,图3B,3C)以响应第一组比特(Y);和选择第二组(E)中的比特(ei,ei+1)值,以使第二组(E)中具有第一二进制值的比特数量高于第一组(Y)中具有第一二进制值的比特数量。

Description

处理信息的方法和设备
本发明涉及用于编码信息的方法和用于解码信息的方法,本发明也涉及用于编码信息的设备和用于解码信息的设备。
在信息处理中,有时希望变换传送信息的消息,以使消息中的码元适于满足特定用途。变换消息的概念时常称为编码或解码。用于处理信息的电子设备通常包括用于存储信息的存储单元和用于在从存储单元检索之后显示所述信息的显示单元。为使存储单元中可存储的信息量最大和/或为减少存储单元的大小,在存储单元中能以压缩状态存储信息。
US5062152涉及利用非均匀概率密度处理具有幅度范围的模拟信号的方法,此方法包括将此模拟信号量化为落入多个信号电平之一,并根据量化电平的出现概率将二进制码方指定到量化电平。根据US5062152中所述的方法,每个码字预定为包括8个二进制值的数字。
US5488616涉及编码方法。根据US5488616,提供码元,每个码元具有一个出现概率。第一方法步骤是根据每个码元的出现概率给每个码元指定可变长度码字,此步骤利用Huffman(霍夫曼)编码。此后,以两种不同方式编码可变长度码字,以提供第一代码C32和第二代码C32。在最后步骤中,选择代码C32、C34之一或两个代码C32、C34来提供可逆的可变长度码。
本发明所解决的一个问题是减少存储一定量的信息所要求的存储空间量。更具体地说,本发明的实施例涉及以允许利用自身要求最小存储空间的信息检索程序检索信息的方式达到压缩信息的问题。
利用减少消息中比特数的方法解决上述问题,此方法包括以下步骤:接收包括多个字符的至少一个消息;和根据预定义的Huffman编码方法编码消息,以便生成压缩的消息,所压缩的消息具有减少的比特数。为了改善压缩效果,在Huffman编码之前是以下步骤:为每个字符计算表示此至少一个消息中此字符相对频率的值;和指定第一二进制编码的码元给具有最高相对频率的字符,此码元包括多个二进制数字。例如,如果接收的字符编码为8比特字,并且在接收的消息中没有多于64的不同字符,在码元中使用6比特的字长将是足够的。
第一二进制编码的码元中所有或基本上所有的二进制数字选择为第一二进制值,例如,所有比特可以设置为零。给每个唯一剩余字符指定一个唯一码元,以便生成第一编码消息。选择每个码元中的二进制数字,以使第一编码消息中具有第一二进制值的数字数量最大。
进一步处理第一编码消息,以便生成第二组二进制数字,此进一步处理包括步骤:选择第二组数字中的数字,以使第二组中具有第一二进制值的数字数量高于第一组中具有第一二进制值的数字数量。
根据优选实施例,此进一步处理适于顺序生成第二组数字,以使第二组数字中比特序列与无记忆Bernoulli(伯努利)源的输出相似。根据另一个实施例,此进一步处理适于生成第二组数字,以使第二组数字中比特序列的熵接近无记忆Bernoulli源的熵;并使得第二组数字中的比特序列分布基本上与第一编码消息中比特分布无关。
本发明所涉及的一个问题是提供用于以变换的消息适于有效压缩的方式变换消息的方法,利用根据权利要求5的方法、利用根据权利要求35的设备和利用根据权利要求48的计算机程序产品来解决这个问题。
本发明也涉及编码消息的问题,以便在例如通过无线电链路发送消息时要求最小的带宽或最小的功率,利用权利要求1、17与39来解决这个问题。
本发明的一个实施例是针对从编码的消息中检索诸如ASCII编码文本的信息的问题,利用根据权利要求24、31、43与51的方法与设备来解决这个问题。
本发明的一个实施例涉及编码模拟信号的问题,以使通过例如无线电链路发送此信号所要求的带宽或功率最小,利用根据权利要求15的方法来解决这个问题。
本发明的一个实施例涉及提供能在保持存储空间要求为最小的同时以多种语言显示文本消息的设备的问题,这个问题利用根据权利要求43的设备来解决。
本发明也涉及提供用于变换信息以使所变换的信息适于有效压缩的设备的问题,这个问题利用根据权利要求35的设备来解决。
本发明也涉及提供自身要求最小的存储空间的信息检索程序的问题。信息检索程序的目的是从压缩消息中检索诸如ASCII编码文本的信息。此问题利用根据权利要求51的计算机程序产品来解决。
本发明的优选实施例涉及编码消息,以使信息内容利用最小数量的二进制数字(比特)来表示。利用三个主要步骤来实现优选编码:
在第一步骤中,接收消息的每个字符变换为Hamming(汉明)码元。此步骤导致此消息中具有值为-(“1”)的比特数减少。另外,减少表示此信息所要求的比特数。
在第二步骤中,汉明码元解释为第一比特流Y,并对此比特流进行估算处理,从而生成第二比特流E。估算处理导致第二比特流E中具有值为零的比特比例高于第一比特流Y。另外,第二比特流E中的比特序列类似于无记忆Bernoulli源的输出。由于具有值为-(“1”)的比特数量非常低,并且由于第二比特流E中的比特序列类似于无记忆Bernoulli”源的输出,所以在第二比特流E中优化成功Huffman编码的条件。
在第三步骤中,利用Huffman编码来压缩第二比特流E,以便生成压缩的比特组C,此步骤导致表示信息所要求的比特数显著减少,这是因为第二比特流E提供Huffman编码的最佳条件。
为易于理解本发明,将利用示例并结合附图来描述本发明,其中,
图1A是表示用于生成人类语言消息中的字符与码元之间对应表的方法的流程图;
图1B表示变换表;
图2是表示根据本发明一个实施例的数据压缩方法的流程图;
图3A表示根据本发明一个实施例的有限状态机组;
图3B与3C是具体表示根据图2的流程图中步骤之一的流程图;
图3D是用于与根据图3A的有限状态机共同合作的变换表示例;
图3E是比特流的示例;
图4表示根据本发明一个实施例的数据压缩设备的第一实施例的示意方框图;
图5是在根据图4的数据压缩设备中使用的估算器的示意方框图;
图6是包括用于恢复已根据结合图2所述的方法进行压缩与存储的信息的装置的便携式电子设备的示意方框图;
图7表示根据本发明一个实施例的数据恢复设备;
图8是表示根据本发明一个实施例用于解码的方法的流程图;
图9A与图9B是详细表示根据图8的流程图中的步骤之一的流程图;
图10是包括用于编码与解码模拟信号的通信系统的示意方框图;
附录1表示用于第一组比特Y变换为第二组比特E的计算机程序伪码;
附录2表示用于比特流E变换为比特组Y的计算机程序伪码。
人类语言包括一定数量的字,并且其中一些字比另一些字更频繁使用。每个字能利用字符的特定组合来表示,或有时仅由一个字符来表示。这意味着,在任何一种特定语言中一些字符比另一些字符更频繁使用。在诸如移动电话机的电子设备中,存储一定数量的预定消息,每个消息将显示在移动电话机的显示单元上以响应某一事件。通常,这些消息存储在只读存储器中。为了显示消息,从存储器中读出相应数据并将每个字符相对应的ASCII码传送给显示单元,显示单元为响应此而显示构成所选消息的ASCII码的组合。
如上所述,在一个特定人类语言中或一个特定的预定消息组中,一些字符具有比另一些字符更高的相对频率。本发明涉及减少以预定语言表示信息所需的比特数量和/或减少以任何一种语言表示预定消息组所需的比特数量的方法。
图1A是表示用于获得变换表的方法流程图,以使所选消息组中的字符或所选语言中的字符能变换为码元,使得所选类型消息的总的Hamming加权将最小。
一个码元可以包括一个或多个分量。根据优选实施例,每个码元是二进制数字的组合。
在具有值“1”的数字数量最小时,Hamming加权最小。通过变换所有字符为相应的Hamming码元,实现两个重要目的。第一目的是给每个字符指定加权。如下所述,较低的Hamming加权也导致码元较大的可压缩性,从而提供Hamming加权与存储此码元所需的存储空间之间的链接。第二,以下述方法变换为Hamming码元减少消息中两个连续字符之间的加权差。换句话说,减少与第一码元相比第二码元中不同的数字位置数量。
结合图1A,第一步骤S10是选择人类语言。所选的人类语言例如可以是英语、法语、瑞典语或使用字符来组成消息的任何其他的人类语言。给变量指定所选语言的名字,并且识别变量的这种语言用于识别所生成的表。
在步骤S20中,收到完整的消息组,完整消息组中的字符数量例如可以是2500。根据本发明的一个实施例,每个字符由8个比特组成。
在步骤S30中,计数相互不同的字符数量,并给变量r指定计数值。在一般字母表中,相互不同的字符数量例如可以是64。
在步骤S40中,计算每个字符的相对频率,并在步骤S50中的降低相对频率的顺序排序字符。换句话说,最常用的字符放置在表的前面,而最不频繁使用的字符放置在表的最后。这样的一个表示例表示在图1B中。在图1B中示出具有多个存储位置20的存储单元10,每个存储位置例如可以包括8比特。第一存储位置具有语言识别变量,此变量例如可以是识别此表包括在一组英语语言消息中使用的字符的字母E。表中的第二存储位置表示存储在此特殊表中的字符数量。在此示例中,不同字符数量是64。第二存储位置包含具有最高相对频率P1的字符的ASCII码。在此示例中,最高频率的字符是“H”。在第四存储位置中存储具有第二最高相对频率P2的字符(在此示例中)“G”。在此示例中,64个不同的字符放置在此表中,以使具有最低相对频率P64的字符放置在表的最后位置中。
在步骤S60中,将仅具有零(0)的码元指定给具有最高相对频率P1的字符。在图1B所示的示例中,所选的消息组仅包含64个不同的字符,并因此将指定给第一字符的码元是包括全都是零的6个数字的码元。根据本发明,生成这里称为Hamming码元的增加Hamming加权的码元表。将Hamming码元指定给表中的字符,以便给具有最高相对频率P1的字符指定具有最低Hamming加权的Hamming码元,给具有最低相对频率P64的字符指定具有不低于任何一个其他Hamming码元的Hamming加权的Hamming码元。然而,由于知道第一Hamming码元是具有6个全都是零的数字的码元,所以有可能计算具有至多高一个加权步长的加权的后续Hamming码元。因此,根据本发明,不必实际存储完整的Hamming码元表。相反地,识别Hamming码元中有多少数字就足够了。由于在知道字符数量的情况下能计算Hamming码元中所要求的数字数量,所以只需具有计算从仅包含零的第一Hamming码元开始的后续Hamming码元的预定方式。
在步骤S70中,生成对应关系的表,并将此表传送到存储单元以便存储,如下所述的。由于实际上没有Hamming码元需要存储,所以对应关系表只需包括表示表名字的变量、表示表中字符数量的数字以及降低相对频率顺序的字符。利用此最少量的信息,有可能计算指定给每个字符的每个Hamming码元的值,这是生成对应关系表所需的唯一信息。因此,由于只需存储字符表和控制字(表示字符数量的数值),所以此对应关系表需要非常少量的存储空间。
变换消息的方法
图2是表示将消息变换为比特流的方法流程图,以使此比特流具有最少量的数字。
根据本发明实施例的第一步骤S100,包括多个字符X的消息ML变换为比特流Y,这通过接收消息ML(步骤S110)并利用上面结合图1B与1A所述的表将每个字符X变换为相应码元H来实现。根据步骤S120,消息中的连续字符连续变换为码元,以致得到码元序列H。根据本方法的下一步骤S130,作为比特流传送所生成的码元H。
根据步骤S140,将比特流Y提供给估算器,以便将接收的比特流变换为第二比特流E。步骤S140的用途是提供大多由零(0)构成的第二比特流E以响应利用步骤S130生成的比特流。步骤S140的另一用途是提供其数字尽可能使独立地并且相同地进行分配的变量随机化的第二比特流E。下面结合图3更详细地描述步骤S140。
根据步骤S150,在步骤S140中产生的第二比特流根据压缩算法进行压缩。根据本发明的一个实施例,所使用的压缩算法是Huffman编码。至于有关Huffman编码的详细信息,读者请查阅D.A.Huffman的“Amethod for the construction of minimum redundancy codes”Proc.IRE,40:1098-1101,1952。压缩步骤S150生成具有比第二比特流少的数字的第三比特流c。事实上,上述方法将英语语言消息ME减少为仅有57.8%的原始数量比特,对于蜂窝电话机的完全状态消息组获得此数字,其中英语原始消息要求2323字节的大小。0,578的压缩比包括将字符变换为相应Hamming码元所使用的变换表,这表示:消息的实际压缩比甚至更好,假定在要恢复此消息的接收端可获得变换表的话。
根据步骤S160,利用步骤S150生成的第三比特流存储在存储设备中。可选择地,利用步骤S150得到的第三比特流传送给输出端,以便发送给另一电子设备。
根据本发明,以上述方式获得有利的压缩比,上面的信息变换方法因此适于在将消息存储在存储设备中之前将此消息变换为压缩的比特流,这是因为所变换的消息基本上要求比原始消息更多的存储空间。在下表中提供11种不同语言的文本消息以及压缩此消息时获得的相应压缩比的示例。压缩比计算为压缩的消息大小加上被原始消息组大小除的变换表的大小。语言                原始大小           压缩比英语                2323               0.578德语                2638               0.571葡萄牙语                               2.543 0.569西班牙语            2494               0.581意大利语            2620               0.569挪威语              2376               0.576荷兰语              2665               0.571丹麦语              2345               0.577芬兰语              2497               0.576法语                2557               0.582瑞典语              2471               0.589
表1
从上面的示例(参见表1)中可以明白,压缩比几乎与原始消息中所使用的语言无关。
结合图3A、3B与3C更具体描述步骤S140。由于结合图3B与3C描述的方法使用一组有限状态机,所以在图3中示出这样的一组有限状态机的示例。为了根据本发明优选实施例执行根据步骤S140的方法,使用一组具有K2m个不同状态的有限状态机。
根据本发明优选实施例,如下选择参数K与m:K=6和m=10。由于根据此优选实施例在要进行编码的消息中通常使用的字母表中具有不多于26的字符,所以参数K选择为6。参数m选择为足够大以提供足够的“历史”,并选择为足够小以避免每个状态中差的统计值的问题,选择参数m的另一个考虑是:根据用于生成计数值V的计数器的存储器的可利用性,将它选择为合适的值,如下面结合图5与3C所述的。
为了表示本发明的基本原理,在图3A中示出仅具有3·22状态的一组状态机。因此,图3A所示的这组有限状态机是基于K=3与m=2的。m=2的事实表示,每个状态利用2个数字来表示,如图3A所示。图3A的这组有限状态机由3个不同的有限状态机110、120与130组成,这是因为K等于3。图3A所示的每个圆圈表示此组有限状态机110、120、130中的状态,并且根据本发明,在这组有限状态机的每个状态中具有计数值V。在此方法中,根据图3A的这组有限状态机具有总共12个不同的计数值,根据下述的方法分别控制每个计数值。
在下面的示例中,假定已根据结合图1A所述的方法分析一组消息,以致已建立根据图3D的字符X与码元H之间对应关系的表。在实际情况中,例如以ASCII码表示字符X,并且字符表前面是表示此表中字符数量的数字,但为了解释清楚,对应关系表表示为字母字符与3位Hamming码之间对应关系的直接表。图3D中的表以降低相对频率的顺序表示8个字符并以递增Hamming加权的顺序表示相应的Hamming码元。
结合图3B,步骤S200表示以诸如图3E所示的比特流的顺序比特流Y=y1,y2,y3,…yn的形式接收消息的方法步骤。在下一步骤S210中,估算器产生输出数字ei,其前面m个数字等于输入数字yi。在步骤S220中值i设置为m。
在后面的步骤S230中,建立数量为K的有限状态机组。换句话说,定义包括K个不同有限状态机的一组有限状态机。每个有限状态机包括2m个状态,并且在每个状态中具有计数值V。在步骤S230中,此组有限状态机中的所有计数值V设置为零。
对有限状态机进行排序,以致有状态机M1、M2,…Mj…Mk。参见图3B中的步骤S240,下面程序将从有限状态机Mj开始,其中j=(m mod k)+1。在所选的有限状态机中,最初选择状态S=(y1,y2,…ym)。
在所选的状态中,读值V(步骤S250),并随后(步骤S260)检查V是否>0。如果V>0,预测值Pi+1设置为-(1),如图3B的方框S270所示的。如果V<0,预测值Pi+1设置为零(0),如图3B的方框S280所示的。
参见图3B与图3E,读下一个输入数字yi+1(步骤S290),并在步骤S300中通过加上yi+1与Pi+1模(modulo)2来计算输出值ei+1。这里,1+1模2等于零,1+0模2等于1,并且0+1模2等于1。
接下来,在步骤S310中,检查数字yi+1的值。如果yi+1=1所选有限状态机的所选状态中的计数值V递增1,即V:=V+1,如图3C的方框S320所示的。如果yi+1=0,所选有限状态机的所选状态中的计数值V递减1,即V:=V-1,如图3C的方框S330所示的。
此后,在步骤S340中,选择下一个有限状态机Mj+1
在所选的有限状态机中,选择由数字yi+1的值表示的状态和前一状态(步骤S350),这以通常用于将一个状态改变为一个有限状态机中的另一状态的方式来完成。例如,参见图3A,当从第一有限状态机110中的状态“00”开始并且数字yi+1是“1”时,根据本发明,选择第二有限状态机120中的状态“01”。当第二有限状态机120中的当前状态是状态“01”并且数字yi+1是“1”时,将转变到第三有限状态机130中的状态“11”。如果当前有限状态机是最后(第K)有限状态机,则将以同样方式转变到第一有限状态机中的状态。
此后,索引值i递增1,如方框S360所示。此后,控制接收的比特流Y中是否剩余任何其他比特,如图3C的步骤S370所示的,而如果回答是“是(yes)”,再次从步骤S250开始继续,读所选有限状态机的所选状态中的计数值V。只一方面,如果这是消息中的最后比特,则结束此程序。
数据压缩设备
参见图4,示出数据压缩设备200的第一实施例的方框图。此数据压缩设备包括字符输入端210,用于接收要进行变换的消息字符。字符输入端210利用数据总线230耦合到变换单元220。数据总线根据本发明的一个实施例能并行传送8个数字字符。根据本发明的另一个实施例,接收字符中的数字串行传送到变换单元220。而且,要在字符输入端210中接收的字符可以包括其他数量的数字。建立变换单元以便以上面结合图2的步骤S110与S120所述的方式将接收的字符变换为具有低Hamming加权的码元。可以包括比相应字符低的数量的数字的所得到的码元通过总线240从输出端234传送到码元-比特流变换器250的输入端242。码元-比特流变换器250在其输出端252上传送具有数字yi的比特流给估算器单元260的输入端254。估算器单元260的用途是在保持消息中的信息内容的同时进一步减少比特流中具有值“1”的数字数量。估算器单元260产生比特流E=e1-en以响应比特流Y=y1-yn的接收,其中n是提供给估算器单元260的比特流中的数字数量。比特流E在估算器单元260的输出端262上进行传送,比特流E传送给压缩模块270,建立压缩模块270以便在保持消息中的信息内容的同时减少比特流中数字数量。压缩模块根据诸如Huffman编码的压缩算法操作。根据优选实施例,使用固定Huffman码。因此,压缩模块270产生比特流C=C1-Cr,其中r<n。压缩的比特流C传送给比特流输出端280,此输出端280可以耦合到存储单元,以使压缩的比特流存储在存储单元中。可选择地,比特流输出端280耦合到发射机单元,以使压缩的比特流C发送到另一电子单元。消息中的比特数量减少导致发送信道带宽较低的要求,从而增加传输效率。
参见图5,更详细地描述估算器单元260。估算器单元260具有用于接收包括比特yi的比特流Y的串行输入端300,接收的比特yi传送给交换单元310,建立交换单元310以便将前面m个数字直接交换到输出端320。比特流输入端300也耦合到模2加法器350的第一输入端340,并通过延迟单元355耦合到预测器单元330。延迟单元355记住一个比特,以致在接收比特yi+1时传送比特yi。预测器单元330具有耦合到加法器350的第二输入端360的输出端,加法器350具有耦合到估算器单元输出端320的输出端,因此建立估算器260执行上面结合图3B与3C描述的方法。
在上述方式中,建立预测器单元330以便预测下一比特yi+1的值Pi+1。换句话说,建立预测器单元330以便根据h<i+1的历史值yn的“猜想”Pi+1“猜想”比特yi+1具有什么值,利用有限状态机中的计数值提供“历史”值(参见图3B的S260-S280)。从图5中易于理解;如果预测正确,模2加法的结果ei+1是零(0)。
值ei+1代表预测比特值Pi+1与实际比特值yi+1之间的Hamming距离。因此,如果预测器进行正确预测,两个连续比特之间的Hamming距离ei+1是零(0)。从上面看出:参见表1,根据本发明的方法获得非常有利的压缩比,这个有益结果的一个原因是根据所述的预测方法的准确预测Pi+1
如下所述,参见图9,解码方法基于将已解码的比特值yi用作“历史”来进行同样类型的预测,以获得代表下一Hamming距离ei+1预测的值Pi+1。由于预测解码方法使用与预测编码相同类型的预测,所以解码结果将是正确的比特流Y。
电子数据处理设备
参见图6,示出包括用于诸如文本消息的信息的显示的显示单元410的数据处理设备400。数据处理设备400包括非易失性存储器420、微处理器430与读/写存储器440。存储器420具有第一存储部分450,其中存储用于控制数据处理设备400的正常功能的计算机程序。数据处理设备例如可以是诸如移动电话机的便携式电子设备。存储器420也具有第二存储部分460,其中存储用于编码和/或解码消息的程序。在另一个实施例中,用于编码和/或解码消息的程序存储在单独的非易失性记录介质462上,程序可以以可执行方式或以压缩状态进行存储。
下面在描述微处理器430执行某个功能时,应理解:微处理器执行存储在存储器450中的程序的某一部分或存储在记录介质462上的程序的某一部分。
微处理器430通过数据总线470耦合到显示单元410,利用显示在显示器410上的字符给数据处理设备的用户提供信息消息。特定消息可以进行显示以响应某一事件,例如微处理器已确定电子设备中的电池电压低于某一值,提示微处理器显示消息“CHANGE BATTERY(更换电池)”。
微处理器430利用数据总线480耦合到存储器420并利用数据总线490耦合到读/写存储器440,微处理器430也利用数据总线510与数据端口500通信。
结合图1A、1B、2、3A-3D所述的方法能由微处理器430通过微处理器执行存储在存储部分460中的程序来执行。为响应生成对应关系表的指令,根据结合图1A所述的方法,建立微处理器以等待在数据端口500上消息的接收,并在数据端口500上接收到消息时,字符临时存储在读/写存储器440中。当已临时存储接收消息的所有字符或接收消息组的所有字符时,建立微处理器以计数不同字符的数量和计算每个字符的相对频率。此后,建立微处理器430以便以上述方式给不同字符分配码元,以致生成对应关系表。
可选择地,建立微处理器以便通过数据端口500接收已准备好的对应关系表并在读/写存储器440中存储那个对应关系表。如结合图1B所述的,对应关系表可以限制为以数字开始并随后跟着同样数量字符的表。
此后,微处理器可以响应用于根据上面结合图3B所述的方法将接收消息或接收的消息组变换为减少的数字比特流E的指令。当此消息或消息组已变换为比特流时,此比特流存储在存储器440中。当然可以建立微处理器来逐比特或以例如8比特字排序进行存储,这取决于操作使用的存储器的最有效方式或取决于其他硬件考虑。
附录1表示用于消息组Y变换为比特流E的计算机程序伪码,此伪码对应图2与图3B和3C中所述的方法中的步骤S140。
数据恢复设备
参见图7,描述数据恢复设备600的第一实施例的方框图。此数据恢复设备包括输入端610,用于接收由许多数字Ci构成的压缩的比特流C。输入端610耦合到解压模块620,解压模块620安排为在保持信息内容的同时将比特流C扩展为较长的比特流E。解压模块620可以建立为根据固定Huffman码进行解码。
解压模块620传送扩展的比特流E到变换单元630的输入端622,变换单元630建立为主要执行上述估算器260相反的功能。因此,变换单元630串行传送包括许多码元H的比特流Y。为此,估算器260包括起着图5中转换器310作用的转换器632。延迟单元634与图5的单元355一样在接收比特yi+1时传送比特yi,并且预测器单元635生成预测值Pi+1以响应接收“历史”值yi。而编码器260中的预测器单元330以前馈方式进行耦合,解码器630中的预测器635的反馈方式进行耦合,以使输出Y用作解码输入比特串E的“历史”数据。
变换单元630建立为传送比特流Y到输出端638。变换单元640耦合到输出端630,用于将比特流变换为码元,通过数据总线将码元H传送到变换单元650的输入端642。变换单元650操作为将码元H变换为字符X,以便恢复原始消息。字符X从变换单元650传送到输出端660。在端口660上传送的字符例如可以是8比特ASCII码。
恢复消息的方法
图8是表示根据本发明一个实施例从压缩的比特流C中恢复消息M的方法流程图。根据第一步骤S600,接收压缩的比特流C,比特流C利用公知的诸如Huffman解码的解码/扩展方法扩展为比特流E(步骤S610),比特流E随后基本上通过相反地执行结合图3B与3C所述的方法(S620)变换为比特流Y。
此后,比特流Y变换为字符X,以便恢复原始消息M(步骤S630),这通过将比特流Y分为码元H(S640)来实现,并随后将每个码元H变换为相应字符X(步骤S650)。利用也包括在压缩的比特流C中的对应关系表将码元H变换为字符X。可选择地,已提供变换表,并且压缩的比特流C仅包括要变换为消息的信息。根据码元-字符变换步骤的第三实施例,压缩的比特流仅包括表示消息中不同字符数量的数字和字符表。为了获得变换表,诸如微处理器430(参见图6)的微处理器可以建立为根据可以在存储在存储部分460(图6)中的程序中提供的预定算法计算对应每个字符X的码元H。
当码元H已变换为字符X时,传送所得到的消息。
参见图6,可以在非易失性存储器420的存储部分700中提供压缩的比特流C。为响应消息显示指令,微处理器430可以使用存储在存储部分450中的程序,使用用于解压存储在存储器450的程序部分710中的数据恢复程序的标准扩展算法。存储在存储部分710中的程序码因而扩展和定位于存储器440的存储部分720中。如上所述,存储器440可以是随机存取存储器RAM。微处理器此后通过执行存储部分720的数据恢复程序继续。数据恢复程序的执行包括从非易失性存储器420的存储部分700中读出压缩的比特流C并随后执行方法步骤S610、S620、S640与S650的步骤,以使压缩的比特流C变换为构成消息M的字符串X。消息M或此消息的部分由微处理器430通过数据总线470传送到显示单元410。可选择地,根据环境,消息M可以通过数据总线510传送到数据端口500。
参见图9A与9B,具体描述比特流E如何变换为比特流Y(图8的S620)。结合图9A与9B所述的方法在此称为预测解码方法,并且上面结合图3B与3C所述的方法在此称为预测编码方法。通过比较根据图9的流程图与根据图3B和3C的流程图可以明白,大致以与预测编码相同的方式执行预测解码。因此,方法步骤S700-S870基本上对应上述的方法步骤S200-S370。解码与编码之间的不同主要在于,在编码方法中从输入端中读出数字yi+1(S290)并计算数字ei+1,在解码方法中却是相反的。参见图9B,读出输入数字ei+1并计算输出数字yi+1。这里,在解码方法的步骤S810中,有关值yi+1的问题涉及输出数字等于1还是等于0的问题,而在编码方法中步骤S310涉及输入值yi+1的值的问题。
附录2表示用于将比特流E变换为比特组Y的计算机程序伪码,此伪码对应图8中的步骤S620,即结合图9A与9B所述的方法。
参见图6,存储部分710中的数据恢复程序能限制为定义编码与解码方法之间不同的程序。因此,在一方面仅在存储器中存储解码程序与另一方面存储解码程序以及编码程序之间在存储空间使用中存在非常小的差异。而且,本技术领域读者将认识到,上述的编码方法与解码方法要求如此有益的一些并且算术上不复杂的步骤,以致程序自身要求有益少量的存储空间。因此,根据本发明的解码和/或编码消息的计算机程序在便携式电子设备中特别有益,在便携式电子设备中用于程序码的存储空间的使用直接转化为设备的大小。例如,在移动电话机中,大量的消息需要存储在存储器中,并且每个电话机应最好可设置为以用户所选的人类语言产生消息。因此,本发明的一个目的是在移动电话机的非易失性存储器的少量存储空间中提供大量的这样的消息组。由于根据本发明的解码程序要求这样的少量存储空间,所以所有不同的语言消息可以以编码状态进行存储,并在用户选择他/她想查看消息的语言时,将根据上述方法解码所选的消息组。由于在程序执行期间需要临时存储大量的计数值V,所以在预测编码和/或预测解码程序执行期间使用最大量的存储空间。由C表示每个计数值的比特数,则存储计数值所需的比特数是K·2m·C。根据优选实施例,C的值可以选择为等于2或3。
在上述的实施例中,消息的Hamming加权降低,以提供适于压缩的编码的消息。合适的Huffman码提供要压缩的消息的Hamming加权越低越有效的压缩。然而,通过选择不同的Huffman码,要压缩的消息的Hamming加权越高,获得越有效的压缩。因此,根据本发明,能以这样一种方式来将字符变换为码元,以使编码的消息的Hamming加权最大。在这种情况中,修改预测编码方法,以使此方法努力生成具有比输入比特流Y更高的Hamming加权的比特流E。
通信网络
图10表示通信网络735,此网络735包括通过无线电链路通信的两个单元740与750。单元740包括用于生成模拟信号的话筒760和用于将模拟信号量化为许多量化范围并给量化范围指定码字H的变换单元770。
因此,在收到模拟信号时,变换单元770以比特流Y的形式传送一系列码字H。根据优选实施例,比特流Y传送给上面具体描述类型的估算器单元260,估算器单元的输出E传送给也如上操作的压缩模块270,由压缩模块270传送的压缩的比特流C传送给收发信机780。收发信机780包括例如天线的通信端口790,用于与单元750通信。
单元750包括耦合到收发信机810的例如天线的通信端800,用于接收和传送信号。收发信机810耦合到上述类型的解压模块620,用于将压缩的比特流C变换为解压的比特流E。解压的比特流E传送到上面结合图7所述的类型的解码器630,解码器630的输出Y传送到变换单元820。
变换单元820将接收的比特流Y变换为模拟信号,此模拟信号例如传送到扬声器850。
变换单元820包括控制器825与存储器830,在存储器830中存储包括变换表的变换信息。存储器830保持有关码字H的字长的信息。利用此信息,由控制器825将接收的比特流Y分成码字H。
码字H顺序传送给数模(D/A)变换器840,D/A变换器840与存储器830中的变换表共同协作以便生成由码字H定义的信号电平。当码字H以与抽样原始信号相同的频率馈送给D/A变换器840时,D/A变换器的输出将类似于原始模拟信号。
变换单元770的功能如下:变换单元770接收具有非均匀概率密度幅度的模拟信号。例如,语音的幅度概率具有最大零的幅度,并以增加幅度降低。因此,在语音信号量化之后,最可能的量化电平范围是那些对应最低幅度的范围。为了使A/D变换的信号Y的Hamming加权最小,码字H应选择为使具有值“1”(一)的比特数量最小。用于指定具有最少零的码字给模拟信号的编码方案描述在US5062152中,其内容因而引入作为参考。
有益地,由变换单元770传送的数字信号Y能通过使码字H的字长适应于所要求的量化电平数量r进行最小化。例如,如果具有r=64个量化电平就足够,则码元仅需要包括6个比特。如果量化电平数量在65与128之间,要求(7)比特的字长,可由具有d个比特的字定义的量化电平数量r是:r=2d
因而,能利用下式建立码字H中所需的比特数量d:
d1=ln(r)/ln2
如果结果d1不是整数,通过将d1四舍五入为最接近的更大整数来建立比特数量d。例如,如果量化电平的所要求数量是r=190,结果d1=ln(170)/ln(2)=7,409,将d1四舍五入为最接近的更大整数得到d=8。因此,码字H中所要求的比特数量是d=8。码字H的字长d发送给单元750并存储在存储器830中,变量d由控制器825用于在接收到编码消息时将比特流Y分成正确长度的码字。
所要求的量化信号范围数量取决于模拟信号的最大幅度和幅度分解力的最大幅度。为了模拟信号的高保真度再生,电平范围应是小的,以获得高幅度分解力,因而应使用大量的量化信号电平。
为了建立模拟信号的最大幅度,测量某个时间期间的信号,能人工或自动设置幅度分解力。通过使码字的字长适应于历史的最大幅度和所选的幅度分解力,使数字信号Y中的比特数量最小。
变换单元770生成量化信号范围与码字之间的对应关系表,即变换表,此表存储在与变换单元770共同协作的存储器860中,存储在存储器860中的表用于根据已建立的对应关系给量化信号范围指定码字H。
另外,对应关系与字长d的表从变换单元770传送给收发信机780,以便传输给单元750。在由收发信机810收到对应关系表时,此表传送给变换单元820,以便存储在存储器830中。存储在存储器830中的表随后由D/A变换器840用于生成由码字H定义的信号电平。
根据通信网络735的另一个实施例,包括码字H的编码的消息直接从变换单元770传送给收发信机780,如图10中的虚线870所示。在那个实施例中,接收单元750也提供变换单元820与收发信机810之间的直接连接880。
根据通信网络735的另一个实施例,包括码字H的编码消息直接从变换单元770传送给压缩模块270。利用数据总线获得直接连接,如图10中的虚线882所示。单元750包括相应的数据总线884,提供解压缩模块620与变换单元820之间的直接连接。利用数据总线884的直接连接能减少由变换单元770传送的编码消息中的比特数量。
根据又一个实施例,在估算器单元260与收发信机780之间具有直接连接890,从而允许保持比比特流Y更少零的比特流E的传输。因此,此实施例具有进一步减少发送诸如语音或具有非均匀概率密度的音乐的信号所要求的功率。单元750包括收发信机810与解码器630之间的相应直接连接900。
当然,单元740可以用于接收编码的信号并且也解码这样的信号,因此,单元740可以包括类似上述部分620、630、820、825、830、840与850的部分。同样,单元750可以用于以上述方式编码模拟信号。
void main(int argc,char*argv[])
{
ifstream*IF;            /*消息码元              (S200)*/
ofstream*OF;
IF=new iftream(*++argv,ios::in);
OF=new ofstream(*++argv,ios::out);
short bit;
int state=0;
int count[1024][6];          /* 初始化6个状态机的计数值          */
char m=1;                /*   每个具有2^10=1024状态         */
for(int i=0;i<1024;i++)   /*                 (S230)     */
for(int j=0;j<6;j++)
  count[i][j]=0;
int k=0; /*保持当前使用的状态机(0-5)的值                    */
int state=0;/*当前使用的状态机的状态                     */
for(int i=0;i<10;i++)
  {
  bit=get_a_bit(IF);  /* 通过前面10个比特           */
  put_a_bit(OF,bit);  /*      (S210-S220)         */
  state<<=1;       /*查找最初状态             */
  state+=bit;      /* 在正确状态机中            */
  k=(k+1)%6;         /*           (S240)     */
  }
short bit=get_a_bit(IF);/*           (S290)    */
				
				<dp n="d18"/>
while(bit>=0)          /*对于每个比特      (S370)     */
 {
  if(count[buf][k]>0)  /*确定是否应倒置比特                (S250-S260)*/
   put_a_bit(OF,~bit);/*倒置比特                        */
  else
   put_a_bit(OF,bit);/*或不倒置比特           (S270,S280,S300)*/
  if(bit)         /*     更新计数器          (S310-330)     */
   count[buf][i]++;
  else
   count[buf][i]--;
  k=(k+1)%6;      /* 移到下一个状态机    (S340)     */
  state<<=1;    /* 计算新状态          (S350)     */
  state+=bit;
  state&amp;=statemask;
  i++;             /* 保持编码比特计数值    (S360)    */
  bit=get_a_bit(IF); /*                (S290)    */
 }
IF->close();
OF->close();
};
				
				<dp n="d19"/>
void main(int argc,char*argv[])
{
ifstream*IF;            /* 比特流        (S700)*/
ofstream*OF;
IF=new ifstream(*++argv,ios::in);
OF=new ofstream(*++argv,ios::out);
short bit;
int state=0;
int count[1024][6];          /*初始化6个状态机的计数值          */
char m=1;                 /*每个具有2^10=1024状态          */
for(int i=0;i<1024;i++)    /*                 (S730)   */
 for(int j=0;j<6;j++)
  count[i][j]=0;
int k=0;   /*   保持当前使用的状态机(0-5)的值            */
int state=0;/*  当前使用的状态机的状态                 */
for(int i=0;i<10;i++)
 {
  bit=get_a_bit(IF);/*通过前面10个比特            */
  put_a_bit(OF,bit);/*        (S710-S720)       */
  state<<=1;     /*查找初始状态             */
  state+=bit;    /*在正确状态机中             */
  k=(k+1)%6;      /*              (S740)    */
 }
				
				<dp n="d20"/>
  short inbit=get_a_bit(IF);/*                  (S790)      */
  while(inbit>=0)        /*对于每个比特         (S870)       */
   {
   if(count[buf][k]>0)     /*确定是否应倒置比特                   (S750-S760)*/

  bit=~inbit;    /*倒置比特                (S770-S780)         */
   else

  bit=inbit;     /*或不倒置比特              (S770-S780)         */
   put_a_bit(OF,bit);/*                        (S800)          */
   if(bit)          /* 更新计数器                (S810-830)        */

  count[buf][i]++;
   else

  count[buf][i]--;
   k=(k+1)%6;       /*移到下一个状态机        (S840)       */
   state<<=1;    /*计算新状态               (S850)      */
   state+=bit;
   state&amp;=statemask;
   i++;            /*保持编码比特计数值        (S860)     */
   bit=get_a_bit(IF);/*               (S790)      */
  }
 IF->close();
 OF->close();
};

Claims (47)

1.用于减少消息中比特数量的一种方法,此方法包括以下步骤:
根据预定义的Huffman编码方法编码消息,以便生成压缩的消息,所压缩的消息(C)具有减少数量的比特;其特征在于,在以下步骤之后执行Huffman编码:
接收包括多个字符(A、B、C)的至少一个消息(S20,图1A);
为每个字符计算表示此至少一个消息中此字符相对频率的值(P)(S40);
指定第一二进制编码的码元(H1)给具有最高相对频率(P1)的字符(S60),此码元(H1)包括多个二进制数字;
选择第一二进制编码的码元(H1)中所有或基本上所有的二进制数字为第一二进制值(0);
给每个唯一剩余字符指定唯一码元(H2,H3),以便生成第一编码的消息;此第一编码的消息由第一组数字(Y)构成;其中
选择每个码元(H2,H3)中的二进制数字,以使第一组数字(Y)中具有第一二进制值(0)的数字数量最大;
编码第一组数字(Y)(S220-S370,图3b,3c),以便生成第二组(E)二进制数字(ei,ei+1);和
选择第二组(E)数字中的数字(ei,ei+1),以使第二组(E)中具有第一二进制值(0)的数字数量高于第一组(Y)中具有第一二进制值(0)的数字数量。
2.根据权利要求1的方法,其中利用第一组(Y)数字的顺序处理来顺序地生成第二组(E)数字中的比特值(ei,ei+1)。
3.根据权利要求1或2的方法,其中
第一组数字(Y)的编码(S220-S370,图3b,3c)适于生成第二组(E)数字,以便第二组(E)数字中的比特序列类似无记忆Bernoulli源输出。
4.根据权利要求1、2或3的方法,其中
第一组数字(Y)的编码(S220-S370,图3b,3c)适于生成第二组(E)数字,以使第二组(E)数字中比特序列的熵接近具有对应第二组(E)中比特值的相对频率的参数的无记忆Bernoulli源的熵;和其中
第二组(E)数字中比特序列的分布基本上与第一编码消息(Y)中的比特分布无关。
5.在信息处理设备中,用于编码包括第一组(Y)二进制数字的消息的一种方法,每个所述二进制数字具有第一值(“0”)或第二值(“1”),此方法包括以下步骤:
接收第一组比特(Y)(S200);
生成第二组(E)比特(ei,ei+1)以响应第一组比特(Y)(S220-S370,图3b,3c);和
选择第二组(E)中的比特值(ei,ei+1),以使第二组(E)中具有第一二进制值的比特数量高于第一组(Y)中具有第一二进制值的比特数量。
6.根据权利要求5的编码方法,其中编码是使第二组(E)比特包括与第一组比特(Y)相同数量的比特。
7.根据权利要求5或6的编码方法,其中选择比特值,以使第二组比特(E)中比特序列的分布基本上与第一组数字(Y)中比特分布无关。
8.根据权利要求5,6或7的编码方法,其中选择比特值,以使第二组数字中比特序列的熵接近无记忆Bernoulli源的熵。
9.根据权利要求5-8中任何一个权利要求的编码方法,其中编码是使第二组数字中的比特序列类似无记忆Bernoulli源的输出。
10.根据权利要求5-8中任何一个权利要求的编码方法,其中生成第二组(E)二进制数字中的数字(ei)的过程包括:
设置第二组(E)中的m个前面的数字(ei)值等于第一组(Y)中m个前面数字(yi)的值,其中m是一个正整数。
11.根据权利要求5-10中任何一个权利要求的编码方法,其中生成第二组数字中的下一个数字(ei+1)的过程包括以下步骤:
生成预测值(Pi+1)以响应第一组数字(Y)中许多先前的数字(yi);
读第一组数字(Y)中实际数字(yi+1)的值;
计算预测值(Pi+1)与实际数字(yi+1)的值之间的Hamming距离(S300);
设置第二组数字(E)中的数字(ei+1)的值等于所计算的Hamming距离值。
12.根据权利要求5-9中任何一个权利要求的编码方法,其中生成第二组(E)二进制数字的数字(ei)的过程包括:
设置第二组(E)的m个前面的数字(ei)的值等于第一组(Y)中m个前面的数字(yi)的值,其中m是正整数;
生成预测值(Pi+1)以响应第一组数字(Y)中预定数量以先前数字(Yi);所述预定数量是等于或小于m的正整数;
读第一组数字(Y)中实际数字(yi+1)的值;
计算预测值(Pi+1)与实际数字(yi+1)的值之间的Hamming距离(S300);
设置第二组数字(E)中数字(ei+1)的值等于所计算的Hamming距离值。
13.根据权利要求11或12的编码方法,其中生成预测值(Pi+1)的过程包括以下步骤:
建立多个预测器计数值(V)(S230),每个预测器计数值(V)可根据第一组数字(Y)中的数字进行选择(S240,S350);
初始设置所有预测器计数值(V)为零;和此后选择第一组数字中的数字(Y1-Ym)组合;
f1)选择预测器计数值(V)以响应所选择的第一组数字(Y)中的数字组合;
f2)读所选择的预测器计数值(V);
f3)如果所选择的预测器计数值(V)高于预定值,设置预测值(Pi+1)为第一值(S260,S270),而如果所选的预测器计数值(V)低于预定值,设置预测值(Pi+1)为第二值(S260,S280);
f4)如果第一组数字(Y)中的实际数字(yi+1)值等于1(S310),增加所选的预测器计数值(V)(S320),而如果第一组数字(Y)中实际数字(yi+1)的值等于0(S310),降低所选的预测器计数值(V)(S330);
f5)选择第一组数字(Y)中新的数字组合;
重复步骤f1)-f5),直至已读出第一组数字(Y)中所有的数字(yi+1)。
14.根据权利要求11-13中任何一个权利要求的编码方法,其中计算预测值(Pi+1)与实际数字(yi+1)的值之间的Hamming距离(S300)的过程包括以下步骤:
将预测值(Pi+1)与实际数字(yi+1)的值相加模2(S300)。
15.用于编码具有非均匀概率密度幅度的模拟信号的一种方法,此方法包括:
将信号量化为落入多个信号电平范围之一内;和
通过给量化范围指定码字(H)来编码量化信号,每个码字具有多个具有第一值(“0”)或第二值(“1”)的二进制值数字;其中根据量化电平的出现概率以及此码字中具有第二值(“1”)的比特数量指定码字,以便给较高出现概率的量化范围指定具有比指定给较低出现概率的量化范围的那些码字更少的具有第二值(“1”)的比特的码字;
传送一系列码字作为第一组二进制数字(Y);
以权利要求5-14中任何一个权利要求所定义的方法编码第一组二进制数字(Y)。
16.根据权利要求15的编码方法,其中
利用定义信号电平范围与码字之间对应关系的表来执行编码步骤。
17.在信息处理设备中:用于编码消息的一种方法,此消息包括多个字符,此方法包括以下步骤:
接收消息;
给此消息的每个字符指定二进制编码的码元,以使接收的消息转换为第一编码消息(Y);每个码元包括多个二进制数字,并且每个所述二进制数字具有第一值或第二值;
将第一编码消息解释为第一组数字(Y);
以权利要求5-14中任何一个权利要求定义的方法编码第一组数字(Y)。
18.根据权利要求17的编码方法,其中
利用包括基本上能以降低或增加相对频率(P1,P2,P3)的顺序进行检索的字符的表执行变换步骤。
19.根据权利要求17的编码方法,其中
根据包括以下步骤的方法执行变换步骤:
接收包括多个字符(A、B、C)的至少一个消息(S20,图1A);
为每个字符计算表示此至少一个消息中此字符相对频率的值(P)(S40);
指定第一二进制编码的码元(H1)给具有最高相对频率(P1)的字符(S60),此码元(H1)包括多个二进制数字,以使第一二进制编码的码元(H1)中所有或基本上所有的二进制数字具有第一二进制值。
20.根据权利要求19的编码方法,其中
生成每个码元(H),以使编码消息中所有码元的Hamming加权和最大或最小。
21.根据权利要求19的编码方法,包括以下步骤:
生成字符表;和
存储此表(S70),以便基本上能以降低增加出现概率(P1,P2,P3)的顺序检索字符。
22.根据权利要求5-21中任何一个权利要求的方法,还包括步骤:
压缩编码的消息。
23.根据权利要求5-21中任何一个权利要求的方法,还包括步骤:
根据Huffman编码来编码第二组数字(E)。
24.用于从包括第一组比特的压缩消息中检索消息的一种方法,所述第一组具有第一数量的比特,此方法包括以下步骤:
根据预定的Huffman解码方法解码压缩消息(C),以便获得第一解码消息(E),此第一解码消息包括第二组(E)二进制数字;此第二组(E)具有第二数量的比特,此第二数量高于第一数量,其特征在于,在以下步骤之前执行Huffman解码:
根据第一解码消息(E)检索包括第三组(Y)二进制数字的第二解码消息,检索第二解码消息(Y)的过程包括以下步骤:
解码第二解码消息(E)(S720-S870,图9A,9B),以便生成第三组(Y)二进制数字(yi,yi+1);每个所述二进制数字(yi,yi+1)具有第一值(“0”)或第二值(“1”),其中
选择第三组数字(Y)中的二进制数字(yi,yi+1),以使第三组(Y)中具有第一二进制值(“0”)的数字数量低于第二组(E)中具有第一二进制值的数字数量;
解释第三组数字(Y)为一组码元(H);
将每个码元(H)变换为相应的二进制编码的字符(X),以便利用表示码元与字符之间对应关系的表检索第三解码消息。
25.一种数据解码方法,生成二进制数字的第一消息(Y;H1,H2,H3)以响应二进制数字的第二消息(E),每个二进制数字具有第一值或第二值;
生成第一消息(Y;H1,H2,H3)的过程包括以下步骤:
接收或读出第二消息(E)(S620);
生成第一消息(Y)以响应第二消息(E),以便检索第一组二进制数字;其中
选择第一组数字(Y)中的二进制数字(yi,yi+1),以使第一组(Y)中具有第一二进制值的数字数量低于第二组(E)中具有第一二进制值的数字数量。
26.根据权利要求25的方法,其中连续生成第一组中的数字(yi+1)。
27.根据权利要求25或26的方法,其中选择第一组(Y)中数字的二进制值的过程包括步骤:
设置第一组数字(Y)中的第一数字(yi)的值等于二进制数字的第二消息(E)中第一数字(ei)的值(图9A,S710)。
28.根据权利要求25或26的方法,其中生成第一组(Y)数字中的连续数字(yi+1)的过程包括以下步骤:
生成预测值(Pi+1)以响应第一组数字(Y)中许多先前的数字(yi);
读出第二组数字(E)中实际数字(ei+1)的值;
计算预测值(Pi+1)与实际数字(ei+1)的值之间的Hamming距离(S800);
设置第一组数字(Y)中连续数字(yi+1)的值等于所计算的Hamming距离值。
29.根据权利要求28的方法,其中生成预测值(Pi+1)的过程包括以下步骤:
建立多个预测器计数值(V)(S230),可根据第一组数字(Y)中的数字选择每个预测器计数值(V)(S740,S850);
初始设置所有的预测器计数值(V)为零;并随后
f1)选择预测器计数值(V);
f2)读出所选的预测器计数值(V);
f3)如果所选的预测器计数值(V)高于预测值,设置预测值(Pi+1)为第一值(S260,S270),而如果所选的预测器计数值(V)低于预定值,设置预测值(Pi+1)为第二组(S260,S280);
f4)如果第一组数字(Y)中的实际数字(yi+1)值等于1(S310),增加所选的预测器计数值(V)(S320),而如果第一组数字(Y)中的实际数字(yi+1)的值等于0,降低所选的预测器计数值(V)(S330);
g)重复步骤f1)-f4),直至已读出第一组数字(Y)中所有的数字(yi+1)。
30.根据权利要求29的方法,其中选择预测器计数值(V)的步骤包括以下步骤:
初始选择第一预测器计数值(V)以响应第一组数字(Y)中的数字组合;和
此后根据目前选择的预测器计数值(V)和第一组数字(Y)中最近生成的数字(yi+1)选择连续的预测器计数值(V)。
31.根据权利要求25-30中任何一个权利要求的解码方法,还包括步骤:
将第一组二进制数字(Y)分成多个码元。
32.根据权利要求31的解码方法,还包括步骤:
生成模拟信号以响应这多个码元。
33.根据权利要求31的解码方法,还包括步骤:
将每个码元变换为相应的二进制编码字符,以便检索解码的消息。
34.根据权利要求33的解码方法,其中变换包括步骤:
利用包括能以预定顺序进行检索的字符的表建立指定给每个码元(H)的字符(X)。
35.用于编码消息的一种设备,此设备包括:
第一输入端(254),用于接收第一组(Y)二进制数字,每个所述比特具有第一值或第二值;和
第一输出端(262);
信号编码装置(260),耦合到第一输入端和第一输出端;其中
建立编码装置(260)来生成第二组(E)比特(ei,ei+1),以响应第一组比特(Y);和
建立编码装置(260)来选择第二组(E)中的比特(ei,ei+1)的值,以使第二组(E)中具有第一二进制值的比特数量高于第一组(Y)中具有第一二进制值的比特数量。
36.根据权利要求35的编码设备,其中编码装置(260)操作,以使第二组(E)包括与第一组比特(Y)相同数量的比特。
37.根据权利要求35的编码设备,其中编码装置(260)包括:
用于设置第二组(E)中第一比特(ei)的值等于第一组(Y)中第一比特(yi)的值的装置。
38.根据权利要求35的编码设备,其中编码装置,包括:
用于生成预测值(Pi+1)以响应第一组数字(Y)中许多先前数字(yi)的装置;
用于读出第一组数字(Y)中实际数字(yi+1)的值的装置;
用于计算预测值(Pi+1)与实际数字(yi+1)的值之间的Hamming距离(S300)的装置;
设置第二组数字(Y)中连续数字(ei+1)的值等于所计算的Hamming距离值。
39.根据权利要求35-38中任何一个权利要求的编码装置,还包括:
第二输入端(210),用于接收包括多个字符的消息;
第二输出端(252),用于传送第一编码消息;
信号处理装置(220,250),耦合到第二输入端和第二输出端;
此信号处理装置设计为变换字符,以使接收的消息变换为包括二进制编码的码元(H)的第一编码消息(Y);
此信号处理装置包括一个装置(220),用于将接收的字符(X)变换为相应的二进制编码码元(H);每个码元包括多个二进制数字,并且每个所述二进制数字具有第一值或第二值;其中
第二输出端(252)耦合到根据根据权利要求35的第一输入端(254)。
40.用于解码消息的一种设备;此设备包括:
第一输出端(638),用于传送第一组(Y)二进制数字,每个所述二进制数字具有第一值或第二值;
第一输入端(622),用于接收第二组(E)二进制数字(ei,ei+1);
解码装置(630),耦合到此输入端和输出端;
建立此解码装置(630)来根据所述第二组(E)二进制数字生成第一组(Y)二进制数字;
建立此解码装置(630)来选择第一组(Y)中的比特值(yi,yi+1),以使具有第一二进制值的比特数量低于编码消息(E)中的比特数量。
41.根据权利要求40的解码设备,其中解码装置(630)操作,以使第一组比特(Y)包括与第二组(E)相同数量的比特。
42.根据权利要求40的解码设备,其中用于接收所述第二组(E)的第一输入端(622)耦合到用于从压缩数据组(C)中检索数据组(e)的设备输出端。
43.根据权利要求40或42的解码设备,包括:
第二输入端,用于接收所述第一组(Y)二进制数字;
用于从所述第一组(Y)二进制数字中提取多个码元(H)的装置;
用于传送包括多个消息字符的解码消息的输出端;
解码装置(650),耦合到此输入端与输出端;
存储器(420),包含表示各个字符与码元之间对应关系的数据;其中
为响应接收的码元,解码装置设计为根据存储器(420)中的数据所表示的对应关系选择消息字符。
44.根据权利要求43的解码设备,其中存储器数据包括:
记录在存储器中的字符表,用于提供码元与字符之间的对应关系。
45.用于信息处理的一种系统,包括:
根据权利要求35的编码器;和
根据权利要求40的解码器。
46.一种电子设备,包括:
根据权利要求35-44中任何一个权利要求的设备。
47.包括根据权利要求46的设备的一种移动电话机。
CN97181993A 1996-12-30 1997-12-18 处理信息的方法和设备 Expired - Fee Related CN1100390C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
SE96048343 1996-12-30
SE9604834A SE512613C2 (sv) 1996-12-30 1996-12-30 Metod och organ för informationshantering

Publications (2)

Publication Number Publication Date
CN1249084A CN1249084A (zh) 2000-03-29
CN1100390C true CN1100390C (zh) 2003-01-29

Family

ID=20405183

Family Applications (2)

Application Number Title Priority Date Filing Date
CN97181993A Expired - Fee Related CN1100390C (zh) 1996-12-30 1997-12-18 处理信息的方法和设备
CN97181989A Expired - Fee Related CN1108015C (zh) 1996-12-30 1997-12-18 处理信息的方法和设备

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN97181989A Expired - Fee Related CN1108015C (zh) 1996-12-30 1997-12-18 处理信息的方法和设备

Country Status (15)

Country Link
US (2) US6218968B1 (zh)
EP (2) EP0948846A1 (zh)
JP (2) JP3995106B2 (zh)
KR (2) KR100375278B1 (zh)
CN (2) CN1100390C (zh)
AR (2) AR014862A1 (zh)
AU (2) AU730951B2 (zh)
BR (2) BR9713795A (zh)
CO (2) CO4771137A1 (zh)
EE (2) EE04409B1 (zh)
HK (2) HK1027227A1 (zh)
MY (2) MY118092A (zh)
SE (1) SE512613C2 (zh)
TR (2) TR199901513T2 (zh)
WO (2) WO1998029954A1 (zh)

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100293523B1 (ko) * 1998-02-25 2001-09-17 구본준, 론 위라하디락사 액정표시장치
US7981126B2 (en) * 1999-04-16 2011-07-19 Vital Access Corporation Locking compression plate anastomosis apparatus
KR100359118B1 (ko) * 2001-03-20 2002-11-04 주식회사 아름테크놀로지 균일 엔트로피 데이터에 대한 비손실 압축방법
GB2378361B (en) * 2001-08-01 2004-10-13 Roke Manor Research Method for compression of data
FR2835665B1 (fr) * 2002-02-04 2004-04-02 Canon Kk Codage et decodage de signal numerique
US6941412B2 (en) * 2002-08-29 2005-09-06 Sandisk Corporation Symbol frequency leveling in a storage system
US7212681B1 (en) * 2003-01-15 2007-05-01 Cisco Technology, Inc. Extension of two-dimensional variable length coding for image compression
US6961696B2 (en) * 2003-02-07 2005-11-01 Motorola, Inc. Class quantization for distributed speech recognition
US7194137B2 (en) * 2003-05-16 2007-03-20 Cisco Technology, Inc. Variable length coding method and apparatus for video compression
KR20050053996A (ko) 2003-12-03 2005-06-10 삼성전자주식회사 허프만 코드를 효율적으로 복호화하는 방법 및 장치
US7499596B2 (en) 2004-08-18 2009-03-03 Cisco Technology, Inc. Amplitude coding for clustered transform coefficients
US7471841B2 (en) 2004-06-15 2008-12-30 Cisco Technology, Inc. Adaptive breakpoint for hybrid variable length coding
US7454073B2 (en) 2004-06-15 2008-11-18 Cisco Technology, Inc. Video compression using multiple variable length coding processes for multiple classes of transform coefficient blocks
US7492956B2 (en) * 2004-08-18 2009-02-17 Cisco Technology, Inc. Video coding using multi-dimensional amplitude coding and 2-D non-zero/zero cluster position coding
US7454076B2 (en) * 2004-06-15 2008-11-18 Cisco Technology, Inc. Hybrid variable length coding method for low bit rate video coding
US7471840B2 (en) * 2004-08-18 2008-12-30 Cisco Technology, Inc. Two-dimensional variable length coding of runs of zero and non-zero transform coefficients for image compression
US7499595B2 (en) * 2004-08-18 2009-03-03 Cisco Technology, Inc. Joint amplitude and position coding for photographic image and video coding
US7680349B2 (en) * 2004-08-18 2010-03-16 Cisco Technology, Inc. Variable length coding for clustered transform coefficients in video compression
US7620258B2 (en) * 2004-08-18 2009-11-17 Cisco Technology, Inc. Extended amplitude coding for clustered transform coefficients
EP1675031B1 (en) * 2004-12-22 2010-01-06 Telefonaktiebolaget L M Ericsson (Publ) Watermarking computer program code by equivalent mathematical expressions
US7242328B1 (en) 2006-02-03 2007-07-10 Cisco Technology, Inc. Variable length coding for sparse coefficients
CN100468576C (zh) * 2007-05-30 2009-03-11 忆正存储技术(深圳)有限公司 闪存数据读写处理方法
US20100081284A1 (en) * 2008-09-29 2010-04-01 Applied Materials, Inc. Methods and apparatus for improving flow uniformity in a process chamber
KR101582223B1 (ko) * 2009-02-05 2016-01-04 삼성전자주식회사 미스얼라인 측정용 구조물 및 이를 이용한 패턴의 미스얼라인 측정방법
CN102811113B (zh) * 2012-07-12 2014-12-10 中国电子科技集团公司第二十八研究所 一种字符型报文压缩方法
US9575683B2 (en) 2012-11-30 2017-02-21 Sandisk Technologies Llc Processing shaped data
US9135155B2 (en) 2012-11-30 2015-09-15 Sandisk Technologies Inc. Storage and retrieval of shaped data
RU2510942C1 (ru) * 2012-12-05 2014-04-10 Владимир Петрович Панов Способ передачи и приема информации
RU2510941C1 (ru) * 2012-12-05 2014-04-10 Владимир Петрович Панов Система передачи и приема информации
US9165649B2 (en) 2013-12-20 2015-10-20 Sandisk Technologies Inc. Systems and methods of shaping data
WO2015112167A1 (en) * 2014-01-24 2015-07-30 Hewlett-Packard Development Company, L.P. Bit-flip coding
CN105022674B (zh) * 2014-04-25 2019-02-01 群联电子股份有限公司 解码方法、存储器存储装置、存储器控制电路单元
JP6511752B2 (ja) * 2014-09-19 2019-05-15 カシオ計算機株式会社 符号化装置、符号化方法、復号装置、復号方法、及び、プログラム
US10074427B2 (en) 2014-11-12 2018-09-11 Sandisk Technologies Llc Shaped data associated with an erase operation
US9912352B1 (en) * 2017-06-06 2018-03-06 Western Digital Technologies, Inc. Hamming distance based binary representations of numbers
US10719339B2 (en) * 2017-10-18 2020-07-21 Bank Of America Corporation Computer architecture for emulating a quantizer in a correlithm object processing system
US10727872B2 (en) * 2018-01-10 2020-07-28 Western Digital Technologies, Inc. Encoding and decoding of hamming distance-based binary representations of numbers
CN109979540B (zh) * 2018-11-29 2023-05-05 天津大学 一种dna信息存储编码方法
US10826536B1 (en) * 2019-10-03 2020-11-03 International Business Machines Corporation Inter-chip data transmission system using single-ended transceivers
WO2023236128A1 (en) * 2022-06-09 2023-12-14 Huawei Technologies Co., Ltd. Apparatus and methods for source coding and channel coding of low entropy signals

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3651459A (en) * 1970-05-15 1972-03-21 Philco Ford Corp Character distance coding
US4168513A (en) * 1977-09-12 1979-09-18 Xerox Corporation Regenerative decoding of binary data using minimum redundancy codes
US4396906A (en) * 1980-10-31 1983-08-02 Sri International Method and apparatus for digital Huffman encoding
US4516246A (en) * 1982-02-26 1985-05-07 Prentice Corporation Data compression system
US4546342A (en) * 1983-12-14 1985-10-08 Digital Recording Research Limited Partnership Data compression method and apparatus
US4535320A (en) * 1984-06-22 1985-08-13 Digital Recording Research Limited Partnership Method and apparatus for digital Huffman decoding
US4646061A (en) * 1985-03-13 1987-02-24 Racal Data Communications Inc. Data communication with modified Huffman coding
US4899149A (en) * 1986-02-28 1990-02-06 Gary Kahan Method of and apparatus for decoding Huffman or variable-length coees
GB8717124D0 (en) * 1987-07-20 1987-08-26 British Telecomm P c m signal coding
US4841299A (en) * 1987-08-31 1989-06-20 Digital Recording Research Limited Partnership Method and apparatus for digital encoding and decoding
US4813056A (en) * 1987-12-08 1989-03-14 General Electric Company Modified statistical coding of digital signals
JPH0834432B2 (ja) * 1989-01-31 1996-03-29 三菱電機株式会社 符号化装置及び符号化方法
US5254990A (en) * 1990-02-26 1993-10-19 Fujitsu Limited Method and apparatus for compression and decompression of data
JP2697479B2 (ja) * 1992-04-17 1998-01-14 国際電信電話株式会社 可逆可変長符号化方式
EP0582907A3 (en) * 1992-08-10 1995-05-10 Stac Electronics Inc Device and method for data compression using search by comparison of strings and Huffman coding.
GB9224893D0 (en) * 1992-11-27 1993-01-13 Philips Electronics Nv Encoding and decoding data
KR100186915B1 (ko) * 1994-07-13 1999-05-01 모리시다 요이치 디지털 부호화 장치 및 디지털 부호 복호화 장치
US6373412B1 (en) * 2000-12-15 2002-04-16 International Business Machines Corporation Fast JPEG huffman encoding and decoding

Also Published As

Publication number Publication date
KR20000069834A (ko) 2000-11-25
CN1249083A (zh) 2000-03-29
EE9900325A (et) 2000-02-15
WO1998029954A1 (en) 1998-07-09
KR20000069833A (ko) 2000-11-25
JP2001507542A (ja) 2001-06-05
EE04409B1 (et) 2004-12-15
EP0948845A1 (en) 1999-10-13
TR199901505T2 (xx) 1999-09-21
EE9900324A (et) 2000-02-15
JP2001507543A (ja) 2001-06-05
TR199901513T2 (xx) 1999-09-21
CO4771136A1 (es) 1999-04-30
CO4771137A1 (es) 1999-04-30
CN1108015C (zh) 2003-05-07
US6218968B1 (en) 2001-04-17
AU5581198A (en) 1998-07-31
JP3960627B2 (ja) 2007-08-15
SE9604834L (sv) 1998-07-01
AR008949A1 (es) 2000-02-23
MY118092A (en) 2004-08-30
EP0948846A1 (en) 1999-10-13
HK1027227A1 (en) 2001-01-05
BR9713639A (pt) 2000-04-11
AU739418B2 (en) 2001-10-11
AR014862A1 (es) 2001-04-11
AU5581098A (en) 1998-07-31
BR9713795A (pt) 2000-02-01
MY121639A (en) 2006-02-28
KR100378319B1 (ko) 2003-03-29
JP3995106B2 (ja) 2007-10-24
CN1249084A (zh) 2000-03-29
SE512613C2 (sv) 2000-04-10
US6556151B1 (en) 2003-04-29
AU730951B2 (en) 2001-03-22
SE9604834D0 (sv) 1996-12-30
KR100375278B1 (ko) 2003-03-10
WO1998029955A1 (en) 1998-07-09
HK1027228A1 (en) 2001-01-05

Similar Documents

Publication Publication Date Title
CN1100390C (zh) 处理信息的方法和设备
JP4865757B2 (ja) 限定されたビット数を用いる画像処理のための装置、画像処理システム、カメラモジュールおよび画像処理用回路
US8588540B2 (en) Arithmetic encoding apparatus executing normalization and control method
CN1155221C (zh) 编码方法及系统以及译码方法及系统
EP1147612A1 (en) Code book construction for variable to variable length entropy encoding
CN1783144A (zh) 使用后向自适应规则进行整数数据的无损自适应Golomb/Rice编码和解码
CN102687404A (zh) 用于数据压缩的数据值出现信息
KR20120018360A (ko) 가변 길이 코딩을 위한 방법 및 장치
CN1252187A (zh) 用于编码数据序列的一种方法和一种设备
US20020037111A1 (en) Encoding apparatus, decoding apparatus, encoding method, and decoding method
CN111341330B (zh) 音频编解码方法、存取方法及其相关设备及存储装置
JP2838964B2 (ja) 可変長符号化回路
Matos et al. Lossy-to-lossless compression of biomedical images based on image decomposition
US20120016918A1 (en) Method for Compressing Information
JPH0856164A (ja) データ符号化復号化装置及び方法
CN116567239A (zh) 编解码方法、装置、编解码器、设备及介质
JPH1117627A (ja) 移動電話機
KR100625670B1 (ko) 그림 데이터 압축 방법과 장치 및 그 기록매체
JP3146092B2 (ja) 符号化装置及び復号化装置
Teng et al. Embedded memory compression for video and graphics applications
Seena et al. Implementation of Data Compression using Huffman Coding
JPH0828668B2 (ja) 音声信号の符号化方法
JPS6348229B2 (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
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20030129

Termination date: 20100118