专利名称:利用源表示法的数据压缩系统的利记博彩app
本申请是共同未决的申请号为No.300037,现于1992年8月4日授权的美国专利No.5136618的部分继续申请。
本发明涉及一种具有高压缩度的用于压缩或传送数字或模拟数据序列的系统。
人们所熟知的数据传送,诸如电话和电线,无线和微波链路,光纤和类似的线路都具有传送数据的有限容量。从而相应地限制了处理数据的发送机和接收机的能力。作为一个一般的例子,许多办公室目前都具有传真机,这种传真机能够将数字数据(由要发送的文件的亮与暗的区域变换成数据比特序列,即许多1和0序列来获得的)通过电话线路传送到位于另外一个地方的接收机器。由于金属电话线的公知的物理上的和电气上的种种限制,数据不能被快于某一速率来予以传输。
另外,装在传真机里的调制解调器实际将数字数据送到电话线路上的数字数据也在其传输速率上有最高限制。无论传真机能够将一份文件以多快的速率变换为数字形式,如果其内部的调制解调器不能以高于,比如说2400个比特每秒的速度发送,则消息是不能以一种较快的速度发送和接收。最后,传真机能够在哪一个速度上扫描文件,也就限制了消息能够在哪一个速度上发送。
改善传送速率的一种方法是制造本身具有高速率的机器。如果,传真机能够足够快的速度扫描文件,如果其调制解调器能够以每秒4800比特,而不是2400比特传送,如果传输煤介能够以这一速率传送数据,和如果接收装置也能以这一速率接收,则传输速度就能够加倍。
改善传输速度的另外的方法是利用一种具有较宽带宽,即一种较高传输数据能力或容量的传输煤介。例如光纤的光脉冲的形式传送数据,和为此光纤与传统的以电信号形式传送数据的铜线相比较,具有非常之大的数据容量。
增加传输速度的另外还有一种方法是压缩要传送的数据。仍然以传真机做为例子,假设某人想传送一封信,而该信仅在一页标准白纸的上半部分具有十行的打字正文。在通常的传真机中,这份文件以大量的线来扫描,每条线包括大量相邻的点或图象单元(象素)。为了这个例子的目的,假设扫描器以连续1000行来扫描该文件,和每条线由1000个象素组成;换句话说,假设该传真机的扫描器将一页文件分解为1000×1000=1百万个点。
在扫描期间,作为例子每个象素以如下方式予以赋值,即如果象素几乎是黑的,则赋值为“1”;如果几乎是白的,则赋值为“0”。(更为先进的传真机利用不同的方案,和许多传真机甚至以几个灰度色调之一来代表每个象素。)在该例子中,因此该页可以由一百万个比特许多1和0的一个序列来代表。然而,对于仅有十行的实际正文来说,非常少的点是黑的,和可以说至少99%的所传数据序列将由零组成;具体地讲,该页的下半部分完全不含有正文,但是仍然需要500,000比特的全零来代表它。
在这个例子中一种传输方法将是传送它们所有的一百万个比特。从另一方面来说,这将会浪费时间和数据的存储空间,因为传输的主要部分将含有无用信息(例如代表正文的一些比特为有用信息)。传输500,000个下半页的比特所占用的时间被浪费掉了,因为当这些比特正在传输中,传输煤介,诸如电话线路不能再用于其他的消息传送。
人们能够通过观察要传送的数据序列具有某种结构来减小无用的传输。在该例子中,人们可以注意到大多数的“1”和特别是“0”,往往是以长串的形式出现,而不是随机的。另外,该页文件的下半部分是由单一的一串500,000个零来代表。
按照人们所公知的用于传真机的数据压缩方案,该方案识别许多被传真的文件的这种特性结构,人们不传送代表该文件的实际的“1”和“0”,而且也不传送当前比特串的长度。例如,代替10个“1”,跟着10个“0”,跟着5个“1”,跟着500,000个“0”的序列的传送,人们可以简单地传送数字10、10、5、和500,000。通过告诉接收的机器1是以“黑色”串为开始,和每个新的数字代表串的颜色的变化,这样人们可以仅传送四个数字(这四个数字能够仅由几十个比特来数字化表示)来取代500,000+10+10+5=500,025个比特的串。
当传真机的接收机接收了该信息串(10、10、5、500,000)后,该接收机打印10个黑点,而后转至打印10个白点,而后转至打印5个黑点,最后再转至打印500,000个白点。通过采取原有数据串结构的优点,因此人们能够在非常短的信息串中包含有相同的信息。进而,这种方案允许人们以较经济和快捷的方式发送相同的消息,并且容忍较低的传输煤介的容量。
接收机能够非常快地接收和存储该信息串(10、10、5、500,000),即使接收机实际上将用长的多的时间打印所传真的文件。然而,这种数据压缩方案的缺点是,这种方案实现的高度压缩仅仅当所传送的数据含有许多长串的无变化的二进制数字。如果该所传送的页是全黑(一百万个二进制“1”)或全白(一百万个二进制“0”)将会实现最高的压缩度,因为这种人们仅仅须传送一个数字(1,000,000),就完全地重现该文件的全文。
另一方面,如果原始文件包含黑白象素交替变化的上下纵横交错排列的图形,则该方案完全没有实现压缩,在这种情况下,该系统将必须发送1,000,000个“1”的信息串(每个串仅一个象素长,和每个象素后都有一次颜色的变化)。为此将不能简化二进制比特,而是1,000,000个比特的数据块(每个长度足以代表最长的可能传送的数目1000,000),实际上该方案以非常长的时间去传送该“已压缩”的数据流。为了使系统有效,该压缩系统要求输入的数据本身具有某种结构。
所给出的传真机的例子作为进行压缩的系统的一种类型是有用的,但是可能在各种情况下并不都能实现所期望的结果。数据压缩和效率的类似问题在许多其他技术领域中也能碰到,例如,数字形式的话音传输,数字电视,和在其中信息将以一种数字序列的形式被传送的一些其他领域。由于信息传输的绝大多数,诸如通过现代的传送方式(卫星、光纤等等)是以数字方式实现的(通过传送二进制数),通过数据压缩增加容量的目的在现代电信技术中许多方面都可找到。
因此,存在一种数据压缩系统的需要,该系统为传输或处理数据提供一个较高的能力,并且需要一种系统,该系统提供较快地处理数据的能力,从而导致较多的数据或信息通过。还存在一种系统和方法的需要,该系统和方法能提供比以前的技术更高的数据压缩能力。
从而,本发明的一个目的是提供一种用于数据通信的系统,该系统达到比现在系统可能实现的更高的数据压缩度。
本发明还有一个目的是提供一种用于处理数据或其他信息的方法和设备,该方法和设备具有比如前的技术可以实现的更高的处理数据的能力,并且比以前的方法与设备处理数据的速度更快。
本发明的另外一个目的是提供一种方法和设备,该方法和设备对于各种数据和信息处理设备而言能允许更高的数据或信息通过量。
本发明还有一个目的是提供一种方法和设备,该方法和设备用于增加由计算机处理的数据和能够从一个计算机传送到另一个计算机的数据容量与速度。
根据本发明,提供了一种数据压缩系统和方法,该系统和方法允许数据的处理和传输具有更高的容量,更快地数据处理,和因此更高的信息通过量和该系统和方法提供更高的数据压缩,而且全然没有丢失。数据压缩系统设置有一个装置,用来接收在输入端代表要予以传送的信息的串行数据。具有用来选择代表至少该串行数据的一个部分的一个或多个标号label的装置,该选择装置包含具有相应各标号的一些系统方程和该系统方程产生数字的数据序列。还具有用于传送这些标号的装置。
在本发明的另外一种形式中,数据压缩系统包括用于一个或多个方程的装置,代表正交基的一个或多个族表示该串行数据的至少一部分,其中每个方程具有一个相应的唯一标号。还具有用于将相应于所选的各方程的一个或多个标号传送到输出端的装置。
在本发明的另外的优选形式中,用于选择的装置包括用于选择一个或多个最大序列的装置。例如,提供一个数据压缩系统,该系统包括用于接收代表要传送的信息的串行数据的装置。还具有用于选择代表至少该串行数据的一部分的一个或多个最大序列的装置。还具有用于将一个或多个最大序列的表达式传送到一个输出端的装置。
这里还描述了一种用于构成一组将要用于数据压缩系统的算法的方法,诸如可以是多个有限状态机器的形式。该方法包括确定一组方程的步骤,其中在该组方程中的各个方程是彼此正交的,以形成要被用于代表一个数据序列的至少一部分的正交基并且保持该组正交基。该方法还包括为每个基分配一个唯一标号的步骤,其中每个标号表示在确定各个方程的步骤中所形成的相应的各个基。例如在一个优选实施例中,确定一组方程的步骤包括确定至少一个最大序列的步骤。该确定至少一个最大序列的步骤可以包括确定至少一个长度N的最大序列,和长度N的最大序列的N-1周期移位。
在本发明的另外的优选形式中,一个编码处理器将由源产生的数据序列分为N个二进制比特的数据块,该数据块而后再变换为N个数字的数据块。该N个数字相当于该二进制比特或数的算数值。值N最好选择为适当大小的Mersenne素数,从而能够有效地压缩,而且提供可以接受的快速计算。编码器而后为每一数据块计算出长度N的最大序列。该最大序列,加上其N-1周期移位,一个N矢量的基。该系统还可以提供由多少个“第0”个基将被移位得到不同的基矢量规定的数“i”。
而后N个矢量或基,例如可以储存在一个或多个处理器中,诸如发送计算机和接收计算机或者适合存储已压缩数据的计算机中,并分配唯一标号以便用于传输数据。在发送和接收计算机的情况下,变换输入数据,找到最大序列,选择一个或多个基N-1周期移位代表该数据的一部分。而后将用于最大序列的标号和相关的周期移位传送到接收计算机,和该接收计算机能够无丢失的重现该相同的数据块。另外一方面,系统发送用于最大序列的标号和基的标志(“第0”基的移位程度)。因此,在这个例子中通过确定一个适合的最大序列,系统可以增加由系统处理数据的容量,从而增加了由系统处理数据的速度和增加了数据或其他信息的通过量。该系统提供了相当高的数据压缩量。这种方法和系统可以用在包括上文已讨论过的传真机的很宽的应用范围。
人们将注意到,传真机例子的一个方面,利用所描述的数据压缩方案,人们不再传送代表原来消息(数字化的文件)的实际的数据串,而是传送使接收机器本身如何能够重建原消息的计划方案(blueprint)。人们传送该原来数据流特征的描述,而不是该数据流本身。
按照本发明,代之以传送一种缩短(压缩)方式的数据序列,按照本发明的系统构成串行数据的“构件式数据块”(buildingblocks)或“数据发生器”(datagenerators),该系统能够进行组合形成该数据源的模式,当该数据源被启动时,产生人们希望传送的相同的数据序列。代替传送数据,人们可以传送一种信息,该信息告诉接收机如何以这种一种方式组合其数据发生器,使该接收机自己重新产生该数据序列。“数据发生器”可以用数学方式描述为称之为“有限状态机器”,它可以利用一个或多个处理器来实现。这些有限状态机器的各种特性是预定义的和存储在发送机和接收机中。系统而后分析该输入序列,确定所构成的序列,有限状态机将产生该数据的输入序列。另外一种情况,该有限状态机的各种特性可以当系统初始化时产生。因此,用于产生该有限状态机的各特性的代码或指令可以传送到接收机。而后发送机和接收机同样地被组态,和而后发送机可以发送一些识别哪一个有限状态机,有限状态机组合的识别信号,最后将重建输入到发送机中的数据序列。
替代发送序列本身或者有关序列的特征,按照本发明的发送机代之以发送有限状态本身或其组合的识别信号,就能够再生输入序列;这种传送要求很少数据比特。而后接收机可以启动这种有限状态机,使之运行,去再生数据输入序列。因此,本发明发展了原始数据源的模型或表示,于是该模型在接收机中无丢失地再生所期望的数据序列。
图1是有两个数据处理单元的示意性表示,它们可以用于本发明的数据压缩。
图2是结合本发明各个方面的发送机和接收机的示意和方框图,和描述了按照本发明的方法。
图3A和3B是描述按照本发明方法分别进行分析、编码、综合、和解码整个方法的流程图。
按照本发明,在图2的上部描述的数据压缩系统可以由多种应用来实现。图1描述的一个发送和处理计算机2含有按照本发明接收和压缩数据的数据压缩系统,和输出一个或多个由数据压缩系统选择的代表串行数据至少一部分的最大序列到调制解调器3,传送这些最大序列到与接收计算机5相链接的接收调制解调器4,接收计算机5中含有为从由发送计算机2接收的各最大序列和其他信息中接收各最大序列和综合数据序列的综合和解码系统。
图1所描述的系统是简化的一种设备的表示,该系统有益地采用本发明,实现更容易和快捷地处理数据和信息。本发明包括传真机应用,传输数字形式和话音,数字电视或记录和类似的其他应用是容易想象出来的。
在深入探讨本发明的实际结构与操作之前,先理解源表示法的概念是有所裨益的。图2表示电信系统的一种极大简化后概念。在图2中,发送机10试图通过传输煤介12发送数据到接收机14。煤介12可以是电线、电磁辐射、光纤等等。
发送机包括,或者更为一般地讲,是连接到数据源16,该数据源产生一个可以变换为数字形式的输出信号。数据源例如可能是文件扫描器、话音数字器、含有人们希望传送的数据的计算机、电视摄象机、遥测或卫星扫描设备、以及任何无数潜在的能产生数字形式信息的现代设备。该数字数据(numericaldata)例如可以是来自原始数字数据(primarydigitaldata)的数字序列,或模拟数据的离散形式。在所说明的例子中,源16产生一个14个二进制数字的数字串。发送机还包含一个编码器17,其功能在后面描述。
接收机14包括控制器或处理器18和N个数字网络或有限状态机(标号为FSM1、FSM2、……FSMN)。每个有限状态机以二进制数字的有限数字串形式产生一个唯一输出信号X1、X2、……XN。例如FSM1被启动时,产生1100101序列。有限状态机的构成在数字电子学领域是公知的,和例如在出版物DigitalNetworksandComputerSystems,TaylorL.Booth,JohnWileyandSons,Inc,1971已进行了讨论。这篇论述令人感兴趣的是FSM1-FSMN部件产生的固定数目二进制数字的唯一数字串。
控制器18经输出线A1-AN连接到每个有限状态机FSM1-FSMN,和经输入线I1-IN从各状态机接收所产生的数据串。控制器18能够选择任何或全部状态机和组合它们的输出信号。在这一点上,人们应当会记起二进制,逻辑运算符与(AND)和或(OR)。给出两个二进制串X和Y,人们通过它们的单独的数字对相乘来形成X与Y。因此,101与(AND)001是001;就是说,仅仅如果在两个输入的二进制串的相应数字都是1,在结果的每个数字才是1。对于形成X或(OR)Y而言,仅当输入的两个二进制串在相对应的位置上二者其中一个或二者都是1的情况下,所形成的结果二进制串才都是1。因此,101或(or)011是111。
在图2所的例子中,源16产生了一个将被传送的14个二进制数字的输出串。如上所述,人们可能简化发送这14个比特,但可能未实现压缩。我们也可能尝试诸如传送二进制串长度的某种编码方案,但在这种情况下,因为人们无法假设无变化串的长度,即使这样一种方案将也不能增加传输效率。
另一方面,假设编码器17中含有关于状态机FSM1-FSMN产生的输出串的信息。编码器首先将源输出串分为每个具有7比特(与状态机的输出串的长度相同)的数据块B1和B2。而后编码器可以分析数据块B1和确定该数据块事实上能够通过形成X1与(AND)X2来获得,即(1100101 AND 1000110)=1000100=B1。同样,编码器可以确定B2=(X2 OR XN)。
代替发送整个14比特串,因此发送机可以简单地发送识别由控制器18选择的哪一个或哪些状态机的短的信号,同样短信号指示在它们的输出信号中将要执行哪些操作。而后,在进行适当组合以后,控制器18允许状态机运行操作,以便在接收机中再生源输出序列。从本质上讲,一些状态机,通过适当地组合,起到了源本身的作用,即在接收机中源被模拟了,和所有的发送的都是组成这个模型所需的信息。
如图2所示的有限状态机仅仅是能够用于代表一个数据源的结构类别的表示。在某些应用中,具有一个单一的状态机可能就足够了。该状态机取决于控制器给它舒适初始值,而产生不同的输出串。在另外的类型中,各状态机每个具有一组它们产生的输出数据序列,但是每个序列能够以不同的周期性次序产生;例如,一个状态机的输出是ABC,通过对每个字母向右移位一步和循环移位(Wrappingaround),将可能产生CAB和BCA,这样在一个序列中的一个字母变成下一个序列的第一个字母。(利用字母只是为了清楚的缘故,二进制数的串以同样方式可以循环移位)。
利用图2所示的例子,通过组合状态机FSM1-FSMN的输出或其他操作将有能塑造所有可能的源16的模型并非总是明显的,虽然几乎总有可能构造出将产生所期望的有限输出的有限输出的有限状态机。例如,假设仅具有产生X1=100和X2=010的状态机。没有“与”或“或”运算的简单组合能够产生在第三位置为“1”的输出;将要求另外不同的状态机,不同类型的输出,或不同可能的运算。
例如,如果还有产生X3=001的状态机,则通过X1、X2和X3的组合,可能重建3比特字的全部八个可能形式。换言之,X1、X2、和X3形成全部3比特数据序列重建的完全基(Completebasis)。十分清楚,通过选择状态机和其输出,和操作由哪些输出进行处理确定哪种源的类别,人们能够进行模拟和传送为模拟所需的各模拟参数。
仅利用7比特数据块B1和B2,由这样的传输系统能够实现的压缩度是相当小的,因此实际上可以取大于7比特来模拟源。另一方面,人们可以从理论上表示压缩度,人们也可以通过加大数据块的大小实现压缩度的大大增加;关键是从一些状态机或它们的等效物(诸如它们被期望的各输出序列的简化、存储的表)选出一组输出数据(基),和选出在这组数据上所执行的适合的运算,这样人们就能够有效地模拟一个所期望的或予期类别的源。本发明所提供的恰恰是这样一个关键,它确定一个大大高于3阶的完全基,这样按照本发明的系统能够重建产生非常长的数据序列的源,和因此能够实现高度的数据压缩。
作为完全基的最大序列按照本发明,二进制数字的数据序列首先被部分地变换为一个“实数”的等效序列,以便以通常可懂的方式(例如,不是进行各种“与”和“或”的运算,而可以利用通常的乘和加)对各个数字进行通常的算数运算。进行这种运算的一种方式是对每个二进制“1”分配给-1值和对每个二进制“0”分配给+1值,因此二进制序列(1、0、0、1)被变换为算数序列(-1、1、1、-1)。这种分配可以由公知的“有效”(aval)函数来表示,该“有效”意味着“算数值”,因此aval(X)=+1(实数)当X=0(二进制数)和=-1(实数)当X=1(二进制数)而后按照本发明的全部运算利用对数据序列的算数(aval)等效值的常规的算数运算来进行。
按照本发明的系统还对数据序列计算一个完全基,该完全基将全部模拟在一个预定类别中的所有源。这个计算的基是一个称为最大序列的集合。最大序列的理论是在一篇论文中导出的,下面给出简单的描述。
规格化返回到3位数字二进制系统,一个具有基矢量(1,0,0)、(0,1,0)和(1,1,0)的系统将是一个低效率的系统,因为这种系统通过以OR组合取前两个矢量将可能获得第三矢量。该第三矢量什么都不加,就有重建其他各矢量的能力,因为它类似于其他两个矢量。换言之,该第三矢量具有与其他各矢量太大的相关性。理论上讲,所有这些矢量或与其他各矢量正交并或者与其他各矢量的组合的关系之间都是不相关的。
给出一个长度N的数据序列,有几种方法产生一组N正交基矢量,利用这些矢量人们能够通过适当的运算重建源序列。用于产生这些矢量的一种通常的方法从Gram-Schmidt方法已公知。遗憾的是,为了产生一组N基矢量,这种方法要求约N2次计算。因此,这种方法要进行1000,000次数量的计算,将一组1000个非正交基矢量变换为正交形式。为了快速压缩,这种计算的负担常常是太重,并且在多数情况下显得不希望的慢。本发明所采取的一个较好的解决办法是启动一组已知是正交的或者至少是近似正交的矢量。
按照本发明,选择长度L的最大序列和其N-1周期移位作为基本序列。利用最大序列作为基本序列的缺点是最大序列在结构上是非常复杂的,除非该序列的长度为称之为Mersenne的素数,即对于长度N是一些素数和具有2p-1的形式,其中p本身是素数。(分别对于p=3,5,7和13,长度7、35、127和8191是全部Mersenne素数长度的例子)当N是一个Mersenne素数时,可以表示出长度N和其N-1周期移位的一个单一的最大序列组成用于实数N的全部序列的通用序列。换言之,如果给出一个实数N序列,人们还可以构成一个最大序列,与该最大序列的N-1周期移位序列(如同上面给出的ABC、CAB例子一样,向右或左移位一步和循环移位)一起能够用于重建实数N的任何序列。
这种结构还是十分有效的,人们能够从理论上证明利用不大于p的二进制数有可能构成用于实用N的数据序列的通用基,其中p≤1+log2(M(N)+1)和M(N)是不小于N的最小Mersenne素数。例如如果有一个实数的序列,而后仅需要1+log2(31+1)=1+5=6的二进制数用于完成重建。为了重建N=8191实数的任何序列,将仅需要13个二进制数。
因此,按照本发明的方法,是一个编码处理器将由一个源产生的数据序列分为N二进制比特的一些数据块,而后这些数据块再变换为N数字的数据块(相对应于二进制比特或数字的算数值)。N值选择为将是一个适当大小的Mersnne素数,以便能够有效的压缩,而且还适合可以接收的快速计算。N的大小将取决于应用,和取决于任何源序列结构的知识。
而后,编码器为每一数据块计算长度N的最大序列(利用预定的和定义明确的方程)。这个最大序列加上它的N-1周期移位形成一个N矢量的基。然而,应注意的是不需要发送全部N矢量;发送原来最大矢量(0移位)就足够了。因为所有其他的矢量具有相同部分,只是进行了一定位数的移位,一旦接收机有了第0基,则仅需要传送一个数字i,规定该第0基将要多少称位就能得到一个不同的基矢量。
当每个连续的源数据块足够地相似于最大序列被计算出来的那个数据块时,将被传送到接收机的值是基的各个指数(第0基移位的程度),和在接收机中的解码处理器而后可以重建该源数据块。事实上,接收机产生源的一个模型或表示,而后接收机再被启动重建“真正”源产生的数据序列。如果连续的数据块与前面的数据块的差别太大(按已知公式确定),则编码处理器重新计算一个新的最大序列和进行编码和再一次执行压缩步骤。
按照本发明,编码和解码处理器还对各种数据序列执行某些其他计算,以便将这些数据变换成更容易操作分析的形式。然而,将源数据分块为Mersenne素数长度的各数据块,计算最大值,和对于源的继续重建而言仅传送最大值移位指数。按照本发明的方法,与现有压缩系统可以提供的压缩度相比较,提供了对于长数据序列的更大的数据压缩度。
在上文对本发明的一般性描述的以后,下面将对本发明做更为详尽的讨论。
操作原理本发明的一般的操作原理如下所述对一个二进制数据源(输出序列)进行分析,确定哪个有限状态机,哪种有限状态机的标号集合的算法(有时称为发生器算法)形式(有时称为发生器类别算法)所有的确定操作产生二进制数据序列,将产生输入序列。这个所选择的有限状态机的标号被分配给该输入序列和为该输入序列分配源表示。通过从各发生器类别算法中选择其标号是输入序列的源表示的算法并初始化这一算法的操作,将输入序列恢复为输出序列。
在数据传输中源表示数据通信的利用如果利用源表示数据通信作为数据传输系统的一个操作单元,其中输入序列的源表示是其被表示为一个二进制序列(输入序列的源表示码),和如果这个源表示码是实际被传送的序列,和系统的接收单元按照上文源表示数据通信的描述作为输出序列恢复该输入序列,则其中该输入序列的输入序列的源表示码具有相同的比特定时,源表示数据通信的作用是,该输入序列被传送和其复制输出序列是利用一种码宽传输因子接收的,该因子是输入序列的长度(二进制单元或比特的数目)与输入序列的源表示的长度(同样定义)的比。
发生器类别算法的构成一种算法是一系列算数运算过程有限集合的规范,算法通过对分配给运算(输入)的各值的数进行算数运算,产生将一些数值分配给各个结果(输出)。一种算法是由一些代数方程描述的。为了描述起见,在该算法的规范中,一个算法的组成是由一些独立的方程表示的。算法可能有一些中间结果,和这些中间结果中的某些可能还是中间运算,这种算法称为将是递归的。这种概念还是算法的分解与并置的基础。算法的最后这些属性对于这里的讨论是严格辅助的。
因为一个发生器类别算法的所有构件必须产生二进制序列,所以该算法将总是仅仅考虑二进制算数算法。这就是说,该算法仅仅考虑其运算和结果都是二进制变量和由完全地包括二进制算数运算,而不管是由直接的或递归的公式表示的算法。这种算法必然是可约为所有初始和中间运算的线性函数(析取范式)(disjunctivenormalform)。从而任何发生器类型算法是所有二进制算数算法类型的一个小类。
每个有限二进制序列(在任何实现中,仅当有限序列时,一个源表示数据通过能够操作)具有至少一个(平凡)发生器算法(trival)generator algorithm。(对于二进制序列{an1≤n≤N}而言,该平凡发生器算法是{XO=1;Xn=an·XO;1≤n≤N}。)因此对于任何有限序列都存在一个发生器类别算法,和对于这个序列至少有一个发生器算法,该算法在其规范中具有一个清楚关系(方程)的最小数。这是一个最小序列发生器。刚刚给出的平凡发生器的例子表明,任何长度n序列的最小发生器在其规范中具有至少n+1个独立的(非冗余的)方程。
因此,对于任何有限序列的集存在一个发生器类别算法。如果这样的序列集的每个构件具有按照一些序列的一种固定集(基序列的集)的构件的算数组合的表示,那么这些基序列的最小发生器形成了一组基算法,和对于原来序列集的发生器类别算法的所有构件能够由一组基算法的构件按代数组合(基算法综合)来表示。这些代数组合必然是按照由基算法输出的相应算数组合的规范组成的公式(综合公式)实现的。这些基算法综合的成分和其他将清楚地取决于原来序列集的基序列表示的形式。
对于给出的序列集而言,一组基算法是通用于所有发生器算法的代数结构。这组基算法可以通过抛弃那些利用别的基算法综合出来的基算法而被减小,发生器类别算法的各构件的基算法综合而后可以按照这个最小的一组基算法重新启动。基算法综合还可以通过去消冗余项而减少复杂性。这些步骤的应用对于每个发生器算法将产生一个最小基算法综合,但是一般不能保证这个最小综合将是唯一的,对于一个给定的发生器算法来说,可能存在几个有效最小综合。虽然这样一个事实,一个特定发生器算法的任何最小基算法综合的规范将唯一的识别由那个发生器产生的二进制序列。如果识别的目的被限制为仅仅从原始序列集中进行选择,基发生器类别算法的构件规范的详述必然涉及这种识别,所有这些序列具有相同的基发生器组和不同仅在其基算法综合。
上面的讨论提供了用于识别的基和每个原始序列的精确重建对于任何二进制序列集,和对于这些集的基序列集,这些集的每个序列按照基集完全地规定了它的表示;
每个这种基的表示完全地规定了一个相应的综合公式;
每个这种综合公式完全地规定了对于原始序列的发生器算法。
原始序列通过执行发生器算法被恢复。
综上所述,任何原始序列的基表示规定了一个综合公式,和任何这种综合公式实现了原始序列的恢复。
通用基序列集基结构的数学理论被广阔地发展和可以认为对于任何数学领域的专业人员是公知的。包括二进制数的算数计算过程是通过利用整数值函数(ival)实现的,该整数值函数将二进制数变换为它们的相应用符号代表的实整数
ival(x)=1(实数)当X=1(二进制数);
=0(实数)当X=0(二进制数)。
ival的反函数表示为ival-1和以常规方式定义。
对于源表示数据通信的理论基础是按照定名为aval(算数值)(arithmeticvalue)和bval(二进制值)(binaryvalue)的第二对变换进行发展的。
aval(X)=+1(实数)当X=0(二进制数);
=-1(实数)当X=1(二进制数)。
这个函数是对二进制数和取实数值+1和-1定义的。bval函数是aval的反相和由以下关系定义bval(X)=1(二进制数)当X=-1(实数);
=0(二进制数)当X=+1(实数)。
这个函数是对实数+1和-1和取二进制数值定义的。
函数ival和aval通过两个等式联系起来aval(X)=1-2·ival(X);
ival(X)= (1-aval(X))/2 。
两个二进制序列的相关性是一个实数,该实数度量着该两个序列的相似程度。具有大的绝对相关值的序列对是高度相似的和具有小绝对相关值的序列对是高度不相似的。对于任何两个二进制序列的相关函数值是逐项一致的数减去逐项不一致的数。具有零相关性的序列是精确地有多少不同的项就有多少相同的项。十分清楚,其长度为奇数的序列不能具有零相关性,这种序列可存在相关值为+1或-1的最小相关度。具有相关值N的序列是逐项相同的,和具有相关值-N的序列是逐项互补。
假设两个二进制序列{Xn}和{Yn}的相关性为按照aval函数的一种非常简单的形式
符号
表示常规的二进制加。
换句话讲,二进制序列的相关是由aval函数给出算数求值序列的常规数值相关。如果在源表示数据通信计算中所有二进制数由其aval求值表示,那么相关性可以由常规的相关性公式实现。因此源表示数据通信的实现是通过输入序列的算数等效值应用aval函数取代所有输入序列进行初始化,和所有源表示数据通信的处理是利用常规算数运算执行的。
换句话讲,将二进制数据表示为+1和-1数的双唯一的序列。这一表示通过该表示的剩余项来理解,即aval注示将被删除,二进制数据序列将作为具有+1和-1的实数序列处理。这样相关函数公式简化为ρ({Xn},{yn})=ΣR=1NXn·Yn·]]>从标准的理论上讲,基本相关性是规格化的(正交和正常),即,若两个基序列是有差别的,则两个基序列的相关性具有0值(正交),若两个基序列是相同的,则相关性具有1值(正常)。对于任何序列通过乘法估算正常是容易实现的,但是对于正交来说如果所选择的相关性并未已具有这种特性,则要求某些计算的尝试。Gram-schmidt方法将把任何选择物基本元素的相关性变换为正规的相关性,但是如果该相关性具有上文的通用相关值,这种方法简化为一种简单的算法估算。因为一般Gram-Schmidt方法要对长度N的N序列的正交化进行N2次计算,这将具体地将源表示数据通信简化为启动一个具有某些小通用相关值的序列的相关性。
最大序列和其逐项周期移位对于这种选择讲是一个很强的选择物,这种序列集的适当的相互相关都具有相同的最小值(0,+1,或-1)。这种选择的缺点是最大序列从结构上被复杂化了,除非序列的长度为Mersenne素数,就是说,长度N是素数和具有2P-1的形式(对于这样一个N将是素数的P也必须是素数)。Mersenne素数已经找到那样的数值,即要求认为是Mersenne素数长度的序列对于任何取决于这样一种假设的源表示数据通信不是一个实际的限制。
最大值的公式表示如下如果和仅如果,Σn=0N-1]]>m(n mod N)m((n+k)mod N)=N 当K=0=-1当K≠0则{m(n)=±1n=0,1,2,…,N-1}是一个最大序列。
接着容易地得到Σn=0N-1m(n)=±1;]]>通过均匀地选择否定选择避免了互补的平凡复制。
通过线性算数变换将最大序列{m}的周期移位的集合变换为一个正规化基(相对于由相关运算产生的度量),如果{m}是该集合的任何单元,则其相应正规化基的单元是
m是各个单元被移位产生移位后的m的各个单元。
在这里这种处理过程称为算数变换。其反相是
n序列{
}是正规化的,因已由直接计算其相关性检验过了,和因此N个实数的任何序列可以唯一性地表示为{
}移位的线性组合;对于任何Mersenne素数和任何最大序列{m(n)}的选择,该最大值的移位产生了为表示长度N的全部数序列的通用基;该表示的计算过程是应用了刚刚描述过的对常规正交基计算的反向算数变换的原理实现的。总之当N是任何固定的Mersenne素数时,对于所有N实数的序列而言,长度N和其N-1周期移位的一个单一的最大序列组成了一个通用序列。
一个给定长度的最大序列具有结构上的特性,该特性将最大序列分为正常的和平凡的不同种类;当N是一个Mersenne素数时,最大序列的适当的不同种类是(N-1)/p。在数学意义上“正常”和“平凡”之间的差别是容易理解的,并因此不在这里详细讨论;适当地不同种类从结构上是涉及这样一种方法,即从一种这样的种类转变到阿贝群(Abeliangroup)的形式,即这些变换全是一种单一变换的迭代。
每个Mersenne素数长度2P-1的最大序列的这些种类的二进制形式是由长度p的二进制移位寄存器产生的,这种二进制算法的算数形式是
其中数{a(k)}具有+1或-1的值和是完全地确定最大序列种类的参数。这种表示的各种组合等效值对计算是有用的,而且这种表示在实现源表示数据通信计算算法被用作陈述。对于源表示数据通信而言,正如所看出的那样,所有这些公式的明显特点是,第一,精确地利用一个最大序列产生一个完全通用的基表示,和第二,任何这种最大序列要求仅由P~log2N二进制数{a(k)1≤k≤p}来规定。因为任何可实现的有限序列(一种可以想象到的方案是由某种装置记录)可以嵌入Mersenne素数长度的序列中,如下所述对于一个长度N可实现的序列集,总能够构成一个通用基,该通用基要求不大于P≤(1+log2M[N])+1的二进制数对其完全地规定,其中M[N]是不小于N的最小Mersenne素数。
利用通用的基表示产生的序列集的分段可以看出,每个最大序列的周期移位也是最大序列,和因此分段为不连续的最大序列的各子集在这个意义上是等效的,即这样一个子集的任何两个单元不仅是最大序列而且它们还是彼此的移位。属于不同子集的最大序列基本是不同的,在这种情况没有周期移位操作可以使它们相同。这些子集称之为最大序列的种类,和从结构上不同的种类一般是十分复杂的和定量的描述是困难的。然而,当N是一个Mersenne素数,若干长度N的最大序列的种类从结构上是由一个二进制值函数X(S)限定的,该函数的域是mod(N-1)/p的非负整数。该函数称为种类的特点或特征和规定了任何最大序列的二进制算法形式的符号分布。
该特征由以下关系限定
不是所有可能的这种二进制函数是特征,但是一个特征的任何周期移位也是一个特征。对各特征进行周期移位操作,形成阿贝群(Abeliangroup),因为所有周期移位都是通过精确的一个位置前进每一项的周期移位的迭代。至少总是存在一个特征,该特征相对于这个Abelian群是一个最大序列,即,对于该特征而言,仅当υ是(N-1)/p的倍数,对于所有S,χ(S+υmodN)≡χ(S)。该特征和其(N-1)/p-1周期移位将称为长度N的各最大序列的真特征和相应的种类称为那些最大序列的真种类。给出一个固定的长度NMersenne素数的最大序列的真种类的任何一个的特征的规格,那些最大序列的所有真种类通过仅为移位指数υ的规格就能全部被识别,指数υ的域简单地是(N-1)/p求模的整数。
上述结构是一般情况的一种特定的实现,当标准基表示方法应用到不同的但等效的任何集时,就产生这种结构。一般参数υ仅仅识别集的哪个基是在考虑中的;在最大种类情况下它的结构含义是极为有用的,但是对最大基状态保留了特权。而后,一般令B表示长度N二进制序列的有限不同基集合(finitecollectionofdistinctbases)。令L=|B|表示在B中基的数目,和令B的各个单元是由任何固定次序给定的。由以下次序标号B的各个单元
B={b(ν)ν=0,1,2,…,L-1}.
这里b(υ)是基的集合,和组成N个实数的N序列b(ν)={{b(n,k;ν)n=0,1,2,…,N-1}k-0,1,2,…,N-1}在上述最大序列的实现中,b(n、k;υ)是种类υ的一个最大序列的K项周期移位的第n系数和L等于(N-1)/p。任何二进制序列a(·)(实际上,任何序列)按照这些基的每个具有一个唯一基表示
现在,如果一个给定的序列a(·)相对于一个特定的基,比如说b(0),具有基表示系数{α(k)0≤K≤N-1},则任何相关的序列
能够仅由一个基指数υ的规定中产生。十分明显,所有这些序列具有一个公共的基表示d(·)和其不同仅在于选择用于它们从这些公共的基表示重建的该基的b(υ)。因此,可能的N项表示的总合产生长度N的所有序列的集的基表示分段,和这种分割的结构完全取决于各个基的集的系列B。基表示分段包括不连续的各序列集,和仅要其唯一的基指数υ的规定的给定的给定分段的任何序列的规定。综合概要如下规格化基的任何有限有序系列B将固定长度的序列的总和分段为具有公共基表示的不连续的序列集;任何序列完全针对分段被识别,该分段仅属于其相关的基的序指数的规定。
源表示数据通信的操作分析过程在源表示数据通信方法的一般性分析的描述中综合和开发了各种详细的过程讨论,具体如下规定一个N项规格化基的有序系列B。
将一个输入比特流分段为公共长度N的一些序列。
选择一个特定的基,和按照所选的基计算这些输出序列的第一个序列的基表示。
将后面的每个输入序列与该基表示产生的全分段序列相比较,寻找第一输入序列,和如果找到逐项一致,则相应的基的指数被记录作为该特定序列的表示数。当未找到逐项一致时,则计数新的基表示和重复上面的过程。
有限状态源代表数据通信方法的一般实现当上述公共基系列方法用于实现源表示数据通信时,由基表示产生的长度N的序列分段是独立于基系列结构的(结构和序);它们仅取决于输入序列。这些分段将被视为唯一由以基表示和第0基的以前选择的N项序列标号。因此,基表示独立于正在实现的特定源表示数据通信的历史,和这样构成了系统的各状态变量。在这种情况下,因为分析和综合两个过程是线性的(规格化基表示和重建方程是线性的),这一源表示数据通信的实现实际是一个线性有限状态系统,和因为输入序列仅输入到该系统(没有控制输入),该系统是一种线性有限状态自动系统。这种类型的系统已经被人们进行过广泛的研究和在出版的文献中存在着十分可观的数学基础(包括软件实现)。
然而,一种特定的源表示数据通信的实现可以在没有这种复杂程度的情况下被形成。初始步骤包括选择足够长度Mersenne素数(例如,最好是,至少213-1=8191具有630最大序列种类,或231-1=2147843647具有69273666个最大序列种类)为该长度的最大序列计算特征,构成每个种类的最大序列表示。而后基系列包括通过这些最大序列的所有移位产生规格化基。其余的步骤归结如下对于一个规格化基B的固定系列发生器类型算法包括来自单一基序列集B的各基元素的所有线性组合。在这种情况下综合公式是基系列的各单元规格。如果该序列长度是一个Mersenne素数,则综合公式对于长度N的最大序列而言可以减化为发生器算法。任何输入序列的源表示包括连续的二进制数据的数据块,这些数据块包括,初始化基表示,后面是基序列的指数。
一般的源表示数据通信要求的信息比特数的估算对于一个长度N序列数据块,源表示码对输入数据的R数据块如在第7部分描述的包括N串N二进制数(第一数据块基表示的二进制形式),后面跟着是R-1基数的指数,该指数是从0到L-1的数,L是在系列B中不同基的数。对于规定的基数表示要求的比特数是N2,和表示基指数要求的比特数是log2L;而后表示输入数据的R数据块要求的比特数是N2+(R-1)log2L.
表示N二进制数的R数据块要求的比特数是RN;这些数的比率是(N2+(R-1)log2L)/(RN) = (N)/(R) +(1- 1/(R) ) (log2L)/(N)
如果要求,当R=1时,该比率减小到N,但当R>>N时,该比率渐近到(log2L)/(N)当N是一个Mersenne素数,N~2P和L~2P/P,这样这个比率变为(p-log2p)/(2P)和十分清楚,该有效码带宽因子(这个比率的倒数)当输入序列在单一分段是长度N余数的数据块时,是无界的。
最大序列的种类的结构定义对于Mersenne素数N求模的剩余项类别Mersenne素数是2P-1形式的一个素数N。整数P是N求模剩余项倍增的子群的序,和整数L=(N-1)/p(如果N是一个Mersenne素数N-1是由P可除尽的)是N求模剩余项倍增子群的序;该第二子群相对于第一子群,与N求模剩余项类别的商群是同态的。整数2是序为p的子群的发生器,和总能找到一个整数g,该整数产生商群,即如gλ=1 mod N ()/() ()/() λ=L或0。而后,每个N求模剩余项类别的单元或是0或是对于某些服从0≤λ≤L-1,0≤ρ≤P-1的λ、ρ是gλ·2p的唯一形式。λ是求模L剩余项类别的一个单元和ρ是P求模剩余项类别的一个单元。
相对于发生器2的最大序列的符号不变式子群和特征通过使用公知的方法,可以建立长度N的Mersenne素数的任何最大序列{m(n)0≤n≤n-1},存在N求模剩余项类别的固定数K,即得到m((n+k)modN)=m((2n+k)modN),n=0,1,…,N-1.
这个结果称为最大序列“2”的取样特性。当K=0时,最大m称为主段(principalphase)。因为上述关系还将由满足的任何序列的补码来满足,对于主段序列习惯上通过m(0)=-1的附加要求来实现单值性。
按照上面说明的剩余项类别表示,“2”的取样特性描述了在发生器2其指数集的子群范围内主段最大序列的各单元的符号不变式。这个λ的函数是序列{m}的特征;
m((2ρgλ)mod N)=χ(λ),λ=0,1,…,L-1.
因为指数n的剩积表示仅排除n=0,该表示如下Σn=1N-1m(n)=Σn=0N-1m(n)-m(o)=(-1)-(-1)=0]]>=ΣP=0P-1Σλ=0L-1(m(2ρgλ)modN)=Σp=0p-1Σλ=0L-1x(λ)]]>=p·Σλ=0L-1x(λ).]]>结果为
Σλ=0L-1x(λ)=0]]>在主段中最大序列的结构上文按照最大序列的数规定了其特征,这规定可以被描述,以便呈现按照该特征的一些系数;所用的方法是Kronecker德尔他函数(δ(·)),仅当它的自变量是0的时候,定义为具有1值,和否则具有0值;
m(n)=-δ(n)+Σλ=0L-1Σp=0p-1δ((n-2ρgλ)modN)x(λ)]]>对于该特征定义的方程是从最大序列的相关条件中导出的;当将上面公式带入最大序列的相关性方程,结果为r(k)=Σn=0N-1m(n)m((n+k)modN)=(N+1)δ(k)-1]]>(定义最大序列的条件)
在K不为0时,它具有在N求模剩余项类型的各非零单元上倍增群各单元的特征;因此,K=gλ2ρmod N和最后表示的λ值是在这个K表示上建立的。注意特征X(λ)仅具有值+1和-1,在包含δ(K)项的和具有L值和当K=0,如果要求的话,因此公式的那部分简化为N。
方括号中的表示式仅取决于N求模剩余项的结构,和这样其计算在该公式中的基本步骤令X(λ1,λ2)=Σp1p1-0p-1δ((1-gλ12ρ1-gλ12ρ1)modN)]]>然后该方程-x((λ+L2)mod L)-x(λ)+]]>+Σλ1,λ==0L-1x((λ1,λ2)x(λ1+λ+L2)modL)x((λ2+λ)modN)=-1]]>是特征的定义方程(也称为特性方程)。当适当的归格化后,这些解是+1,-1序列,和仅在L步周期移位下重复它们自身的这些序列是各最大序列的真种类的特征。一般仅有L个这个方程的解,和它们都是互相移位的。每个这样的解从这段描述的定义的关系中在主段产生一个最大序列的种类。
商群发生器g的计算数N求模np的范围,n是N求模剩余项类型的非零的单元,包括商群发生器g的各项幂。该商群是L序,和这样这些数从0到L-1的N求模的各幂全都是商群发生器的各次幂。从这个数集中可以直接选择各原始数据gL=1。(这些是数g,仅当λ=L时,使gλ=1)。对于执行上述的过程这些数将是足够的,一般最简单的是最容易使用的。
下面的关系为这些描述提供了数论基础2p=1mod N;
n=gλ2ρmod N()/()np=(gλ2ρ)p=gpλ2pρ=(gp)λmod N;
g是gL=1mod N的一个原始根()/() ()/()gp是gL=1mod N(P、L是相对的素数)的一个原始根;
g是gL=1mod N的一个原始根{gλmod N0≤λ≤L-1}是L序的真阿贝群(Abelian gruop)。
源表示数据通信的一般流程图源表示数据通信方法基本上可以包括两个独立的系统方法;一个方法操作输入序列和产生其表示,和另一个方法操作该表示和重建原始输入序列。这两个系统分别称为分析系统(编码)和综合系统(解码)。显示看出,分析与发送有关和综合与接收有关。这些方法的一般流程图如图3所示,上文系统设计需要的各种部件也包括在其中。
权利要求
1.一种数据压缩系统,该系统包括用于在一个输入端接收代表将要传送的信息的串行数据的装置;用于选择代表串行数据的至少一部分的一个或多个最大序列的装置;和用于将相应于所选择的各最大序列的一个或多个标号发送给一个输出端的装置。
2.权利要求1的数据压缩系统,其中接收装置包括一个编码处理器,用于将串行数据分为一些二进制比特的数据块以及还包括用于将二进制比特数据块变换为数值的数据块的装置。
3.权利要求2的数据压缩系统,其中用于选择一个或多个最大序列的装置包括用于为第一数据块确定长度N的一个最大序列的装置,其中二进制比特的第一数据块包括一个N个二进制比特的数据块。
4.权利要求3的数据压缩系统,还包括用于与一个远端处理器通信的装置。
5.权利要求4的数据压缩系统,其中远端处理器包括用于接收从发送装置输出的相应于一个最大序列的一个标号的装置;用于综合来自发送装置的相应于该标号的最大序列串行数据的装置。
6.权利要求3的数据压缩系统,其中N是一个Mersenne素数。
7.权利要求6的数据压缩系统,还包括用于选择至少一个长度N的最大序列和数“i”的装置,该数“i”表示至少一个最大序列将被位移多少。
8.一种数据压缩的方法,该方法包括以下步骤在一个处理器的输入端,接收表示将要传送的信息的一个串行数据;选择一个或多个最大序列,该序列具有表示该串行数据的至少一部分的唯一标号;和发送给输出端一个或多个相应于代表该串行数据一部分的最大序列的标号。
9.权利要求8的数据压缩方法,其中接收步骤包括将该串行数据分为每个数据块中含有N个字符的数据块的步骤。
10.权利要求9的数据压缩方法,其中的划分步骤包括将该串行数据分为二进制比特数据块和变换该二进制比特数据块为数值数据块的步骤。
11.一种数据压缩系统,该系统包括用在输入端接收代表将要传送的信息的串行数据的装置;用于选择一个或多个方程的装置,这些方程表示一个或多个正交基系列,而这些正交基系列又代表该串行数据的至少一部分,其中每个方程具有一个相应的唯一标号;和用于发送给输出端一个或多个相应于所选方程的标号的装置。
12.权利要求11的系统,其中选择装置包括用于选择一个或多个最大序列的装置。
13.一种以多个有限状态机的形式构成一组用于数据压缩系统的算法的方法,该方法包括以下步骤确定一组方程,在该组方程中的各个方程彼此相互是正交的,以形成用于表示一个数据序列的至少一部分的正交基;保持一组正交基;和给每个基分配一个唯一标号,其中每个标号表示在确定该组方程步骤中形成的相应基。
14.权利要求13的方法,其中确定一组方程的步骤包括确定至少一个最大序列的步骤。
15.权利要求14的方法,其中确定至少一个最大序列包括确定至少一个长度N的最大序列和该长度N最大序列的N-1周期移位的步骤。
16.一种包括以下各步骤的数据传输方法为至少一个有限状态机预计算一组操作参数;将一个数据流划分为各数据块的序列;对于每个数据块,发送一组标号,从而每个标号唯一地识别一些状态机的一些组操作参数中的一组;和在接收机中,响应于所发送的各标号重建各个数据块,作为来自该有限状态机的一个输出序列的代数组合。
17.一种数据压缩系统,该系统包括用于在一个输入端接收代表将要发送的信息的一个串行数字数据;包括具有相应标号的各方程的各系统的装置,并且该装置用来选择一个或多个代表至少该串行数据的一部分的标号从而产生数字数据序列;和用于发送给输出端一个或多个相应于串行数据一部分的一些标号的装置。
全文摘要
本发明涉及一种数据压缩的方法和设备,该方法和设备包括用于在输入端接收代表将要发送的信息的一个串行数据的接收机和用于选择代表该串行数据的至少一部分的一个或多个最大序列的处理器。提供一个发送机,用于发送输出一个或多个最大序列,以便以压缩的形式处理数据。
文档编号H04B14/04GK1082784SQ93109259
公开日1994年2月23日 申请日期1993年8月3日 优先权日1992年8月3日
发明者小·L·E·莱特, E·G·基米 申请人:雷德班德技术有限公司